Tải bản đầy đủ (.pdf) (24 trang)

Báo cáo thực tập phát triển phần mềm quản lý nhân sự bằng SPRING FRAMEWORK

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 24 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP
PHÁT TRIỂN PHẦN MỀM QUẢN LÝ NHÂN SỰ BẰNG SPRING
FRAMEWORK
Công ty thực tập: DXC Technology Vietnam
Sinh viên thực hiện: Dương Thành Vương – 18521677
Người phụ trách hướng dẫn: Mai Chí Thành

Thành phố Hồ Chí Minh, Ngày 12 Tháng 12 năm 2021


NHẬN XÉT
(Của giảng viên)
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________


___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
2


LỜI NÓI ĐẦU
Tài liệu này được tạo ra bởi yêu cầu của học phần Thực tập tốt nghiệp SE501.M11, học kì I năm học 2021-2022 của Trường Đại học Cơng nghệ Thơng
tin, Đại học Quốc gia Thành phố Hồ Chí Minh.
Hệ sinh thái Java đã và đang là một trong những tech stack quan trọng nhất trong
các giải pháp phần mềm, với sự thay đổi chóng mặt của khoa học công nghệ trong
thời đại cách mạng công nghiệp 4.0 cũng như đại dịch Covid-19, chứng minh mạnh

mẽ hơn tầm quan trọng của việc làm chủ và vận dụng nền tảng công nghệ này trong
việc phát triển các giải pháp phần mềm.
Sau 3 năm học tập và rèn luyện tại trường Trường Đại học Công nghệ Thông tin,
Đại học Quốc gia Thành phố Hồ Chí Minh. Em đã chọn cơng ty DXC Technology
để làm nơi tiếp tục học hỏi, làm quen với môi trường công nghiệp phần mềm
chuyên nghiệp với công cụ chính là ngơn ngữ lập trình Java và Spring Framework
Báo cáo này bao gồm các thông tin về: Giới thiệu công ty DXC Technology
Vietnam, các nội dung đào tạo và cơng việc trong q trình thực tập tại cơng ty,
nhật ký chi tiết quá trình thực tập và kết luận.
Cách đọc tài liệu: Nội dung của tài liệu được đưa vào các mục, được đánh số bắt
đầu từ Chương I, chi tiết xem thêm tại mục lục.

3


LỜI CẢM ƠN
Cảm ơn công ty DXC Technology đã tạo điều kiện cho phép em thực tập tại công
ty, hơn nữa là được thực tập từ xa tại nhà do ảnh hưởng của dịch bệnh, hệ sinh thái
phần mềm hỗ trợ của công ty về các mặt đào tạo, liên lạc, thơng tin… cũng góp
phần khơng nhỏ trong kết quả thực tập của em.
Trong ba tháng thực tập, ngoài việc tìm hiểu và cài đặt thành cơng một hệ thống
phần mềm Web bằng ngôn ngữ Java và Spring Framework, em cịn được tham gia
các buổi training về các cơng nghệ như NodeJS, MongoDB, được tham gia các
khóa đào tạo về kỹ năng mềm, ngoại ngữ, quy trình phát triển phần mềm… Kết quả
đạt được là nhờ vào công sức chỉ dạy và tạo điều kiện của các anh chị Senior
Developer, Manager, Human Resource…
Lời cảm ơn đặc biệt tới anh Mai Chí Thành và anh Trần Quang Mẫn đã sắp sếp các
buổi training, review, giải đáp các thắc mắc của một developer chưa có kinh
nghiệm là em trong suốt q trình thực tập


Dương Thành Vương,
21/12/2021

4


Mục lục
CHƯƠNG I. GIỚI THIỆU CHUNG VỀ CÔNG TY DXC
TECHNOLOGY VIETNAM .................................................................. 7
I. Giới thiệu chung về công ty ...............................................................................................7
II. Một số sản phẩm của công ty ...........................................................................................7
1. DXC Assure ..................................................................................................................... 7
2. DXC Platform X™ ............................................................................................................ 8
3. DXC Cyber Defense ........................................................................................................ 8
III. Văn hóa cơng ty.................................................................................................................8
1. Cơ cấu tổ chức ................................................................................................................ 8
2. Sứ mệnh và giá trị ........................................................................................................... 8

Chương II. Nội dung thực tập ................................................................ 9
I. Tìm hiểu cơng cụ quản lý software project Apache Maven..............................................9
1. Giới thiệu về Apache Maven ............................................................................................ 9
2. Mơ hình Dự Án Đối Tượng (Project Object Model -POM) ................................................ 9
3. Maven Repository .......................................................................................................... 10
II. Tìm hiểu về Spring Framework .......................................................................................11
1. Giới thiệu về Spring Framework..................................................................................... 11
2. Các module chính của Spring Framework ..................................................................... 14
III. Tỉm hiểu công cụ Ánh Xạ Đối Tượng Quan Hệ Hibernate ............................................15
1. Ánh xạ đối tượng quan hệ (Object Relational Mapping) ................................................. 15
2. Hibernate Object Relational Mapper .............................................................................. 15
IV Tìm hiểu mơ hình Model-View-Controller và Spring MVC .............................................16

1. Model-View Controller.................................................................................................... 16
2. Spring MVC ................................................................................................................... 16
V. Dự án thực tập: Chương trình quản lý nhân sự bằng Spring MVC .............................16
1. Mô tả ............................................................................................................................. 16
2. Yêu cầu chức năng ........................................................................................................ 17
3. Yêu cầu kỹ thuật ............................................................................................................ 18
4. Thực hiện dự án ............................................................................................................ 19

Chương III. Quá trình thực tập ........................................................... 23
Chương IV Kết luận .............................................................................. 24
5


6


CHƯƠNG I. GIỚI THIỆU CHUNG VỀ CÔNG TY DXC
TECHNOLOGY VIETNAM
I. Giới thiệu chung về công ty
DXC Technology là một công ty dịch vụ IT hàng đầu thế giới, nằm trong bảng xếp
hạng Fortune 500. Có mặt tại trên 70 quốc gia với hơn 130000 nhân viên. DXC
Technology Vietnam là một công ty con của DXC tại thị trường Châu Á – Thái
Bình Dương, hiện tại là một trong những cơng ty công nghệ tốp đầu tại Việt Nam.
DXC Technology cung cấp dịch vụ trên toàn bộ Technology Stack dành cho các cơ
quan, doanh nghiệp bao gồm:










Dịch vụ Analytics and Engineering
Dịch vụ Ứng dụng
Dịch vụ Cloud
Dịch vụ tư vấn
Dịch vụ BpaaS và BPO
Dịch vụ IT Outsourcing
Dịch vụ văn phịng thơng minh
Dịch vụ an ninh thông tin

Địa chỉ: E Town, 364 Cộng Hịa, Phường 13, Tân Bình, Thành phố Hồ Chí Minh
Số điện thoại: 028 3923 8520

II. Một số sản phẩm của công ty
1. DXC Assure
Hệ thống giải pháp phần mềm, BPaaS, BPO cho các nhà cung cấp Bảo Hiểm ở mọi
quốc gia, lĩnh vực và tầm cỡ cung cấp một hệ sinh thái cloud, microservice,
REST… cho các doanh nghiệp thực hiện cung cấp bảo hiểm trong việc xây dựng
các hệ thống mới và duy trì các hệ thống cũ
DXC Assure hiện tại là nhà cung cấp số 1 toàn cầu cho các hệ thống bảo hiểm. Với
hơn 1900 khách hàng và hơn 11 triệu người tiêu dùng bảo hiểm được quản lý

7


2. DXC Platform X™
DXC Platform X™ là hệ thống tự động hóa thơng minh cung cấp giải pháp dự

đốn, giảm thiểu các bất thường trong hệ thống sử dụng trí tuệ nhân tạo.
3. DXC Cyber Defense
Hệ thống báo cáo tình huống bất ngờ, quản lý xâm phạm thông tin, vulnerability
scanning, penetration testing dành cho các hệ thống thông tin hiện đại ở nhiều cấp
độ, dịch vụ diễn tập hack và chống hack dẫn dắt bởi các chuyên viên IT có kinh
nghiệm cao.

III. Văn hóa cơng ty
1. Cơ cấu tổ chức
DXC Technology Việt Nam là một công ty con của DXC Technology, được tổ
chức thành theo mơ hình thứ bậc với các phòng ban lớn như Application Delivery,
Service Delivery, Human Resource, Finance…
Trong các phịng ban với mỗi dự án sẽ có tổ chức là các đội ngũ nhỏ từ 5 đến 10
người phụ trách một khía cạnh của dự án, ví dụ Application Development Team,
Database Administration Team, Application Support and Maintenance Team…
Mỗi Team sẽ bao gồm một Team Leader, một đến hai Senior Member và các
Associate.
Các Team của các chi nhánh DXC Technology trên toàn thế giới thường xuyên hợp
tác, trao đổi và làm việc trên các dự án tạo nên một môi trường làm việc đa dạng,
phong phú và năng động.
2. Sứ mệnh và giá trị
DXC mang sứ mệnh cung cấp dịch vụ IT để hiện đại hóa và thúc đẩy sáng tạo trên
toàn bộ các lĩnh vực, ở mọi nơi trên thế giới
Giá trị của DXC:

8


• Deliver: Sẽ làm những gì đã nói
• Collaborate: Làm việc như một đội ngũ, toàn cầu cũng như sở tại

• Community: Tin vào việc dẫn dắt và xây dựng một cơng ty thúc đẩy cộng
đồng
• Care: Chăm sóc lẫn nhau và tạo một văn hóa bao quát và thân thuộc
• Do: Làm việc ngay thẳng, chính đáng

CHƯƠNG II. NỘI DUNG THỰC TẬP
I. Tìm hiểu cơng cụ quản lý software project Apache Maven
1. Giới thiệu về Apache Maven
Apache Maven là công cụ quản lý và định nghĩa dự án phần mềm tự động thường
dùng cho các dự án phần mềm Java. Maven hỗ trợ việc quản lý các build, report,
document… từ một nguồn thông tin duy nhất
Maven cung cấp giải pháp cho hai khía cạnh lớn của việc build một phần mềm:
build như thế nào và cần các dependency là gì.

2. Mơ hình Dự Án Đối Tượng (Project Object Model -POM)
Một POM sẽ cung cấp tất cả các cấu hình cho một dự án phần mềm: các thông tin
về tác giả, dependency, các bước build, các plugin…
Các POM cũng có thể được liên kết với nhau bởi một POM gốc (root POM) cho
những dự án có nhiều Module.
Với Maven, những cấu hình này được lưu trong một file XML có cấu trúc như hình

9









Tag “project” thể hiện dự án phần mềm
Các tag “groupId”, “artifactId” thể hiện thông tin dự án
Tag “packaging” thể hiện hướng dẫn package project
Tag “build” thể hiện các cấu hình build
Các tag “plugins”, “dependencies” thể hiện các plugin và dependency

3. Maven Repository
Maven Repository là một repository lưu trữ các build artifact và dependency
Có hai loại repository: local và remote
- Local Repository chạy trên máy tính cài đặt maven , nó lưu trữ các download
từ remote và các bản build chưa release
- Remote: Do một bên thứ ba thiết lập để cung cấp nguồn download cho các
artifact của họ. Maven Central Repository là Repository mặc định khi cài đặt
Maven, ngoài ra cịn có các repository của google,…

10


II. Tìm hiểu về Spring Framework
1. Giới thiệu về Spring Framework
Spring Framework là một nền tảng mã nguồn mở cung cấp khả năng xây dựng các
Enterprise Application.
Về bản chất Spring là một container, hay thường gọi là “Spring application
context”, container này sẽ tạo và quản lý các thành phần ứng dụng hay còn gọi là
“component” hoặc “spring bean”, những thành phần này được kết nối với nhau để
tạo nên một ứng dụng hồn chỉnh.
Q trình các bean được kết nối với nhau được thực hiện dựa trên một pattern gọi
là “dependency injection”, thay vì để cho các thành phần ứng dụng tạo ra và quản
lý vòng đời của các đối tượng mà chúng cần, thì ứng dụng dependency injection sẽ
dựa vào container để tạo và quản lý những đối tượng này rồi “inject” chúng vào

những bean cần thiết. Quá trình này có thể sử dụng constructor (constructor-based
dependency injection) hay method (setter-based dependency injection)
Ví dụ một mơ hình Dependency Injection đơn giản:

11


Cách tạo ra các bean được khai báo cho Spring container bằng xml:
<beans>

/>
<constructor-arg ref="inventoryService" />
</bean>
</beans>

Hoặc Java:

12


@Configuration
public class ServiceConfiguration {
@Bean
public InventoryService inventoryService() {
return new InventoryService();
}
@Bean
public ProductService productService() {

return new ProductService(inventoryService());
}
}

Spring Framework bao gồm các chức năng được tổ chức thành khoảng 20 module,
các module này được nhóm thành các nhóm: Core Container, Data
Access/Integration, Web, AOP (Aspect Oriented Programming), Instrumentation,
và Test

13


2. Các module chính của Spring Framework
2.1 Core Container:
- Bao gồm Core, Beans, Context, và Expression Language.
- Các module Spring Core và Spring Bean Inversion of Control và Dependency
Injection, đảm bảo tách được các phần specification và configuration khỏi logic
phần mềm
- Spring Context: hỗ trợ việc truy cập các object như một framework
- Spring Expression Language: hỗ trợ một loại ngôn ngữ expression để query
object graph trong run time của chương trình

2.2 Data Access/Integration
- Bao gồm JDBC, ORM, OXM, JMS và Transaction
- Spring JDBC: Cung cấp một layer trên đóng gói JDBC truyền thống, giảm mức
độ phức tạp của code JDBC
- Spring ORM: cung cấp khả năng tích hợp các API ánh xạ đối tượng quan hệ phổ
biến như JPA, JDO, Hibernate, iBatis…
- Spring OXM: cung cấp layer trên đóng gói hỗ trợ ánh xạ đối tượng – XML cho
AXB, Castor, XMLBeans, JiBX và XStream

2.3 Web
-Bao gồm Web, Web-Servlet, Web-Struts, và Web-Portlet
- Spring Web: cung cấp các tính năng tích hợp web cũng như khả năng khởi tạo
một Application Context hướng Web
- Spring Web-Servlet: Chứa implementation của mơ hình Model-View Controller
của Spring Framework (Spring MVC)
2.4 AOP và Instrumentation
- Spring AOP: cung cấp một implementation của Aspect Oriented Programming và
tích hợp với AspectJ

14


III. Tỉm hiểu công cụ Ánh Xạ Đối Tượng Quan Hệ Hibernate
1. Ánh xạ đối tượng quan hệ (Object Relational Mapping)
Ánh xạ đối tượng quan hệ hay Object Relational Mapping là một kỹ thuật lập trình
để chuyển đổi dữ liệu giữa các hệ thống khơng tương thích, cụ thể là các đối tượng
trong bộ nhớ của các ngôn ngữ lập trình hướng đối tượng và các dịng trong các
bảng của cở sở dữ liệu quan hệ
Việc sử dụng các công cụ ánh xạ đối tượng quan hệ (Object Relational Mapper) có
thể giúp người phát triển giảm thiểu thời gian và cơng sức trong q trình phát triển
do khơng phải tập trung vào các câu lệnh và Logic SQL, ngoài ra các vấn đề như
việc tuân thủ các quy tắc của từng nhà cung cấp SQL cũng được đóng gói, trừu
tượng hóa để sử dụng dễ dàng hơn.
2. Hibernate Object Relational Mapper
Hibernate ORM là một công cụ ánh xạ quan hệ-đối tượng mã nguồn mở cho ngơn
ngữ lập trình Java
Hibernate cung cấp một framework để ánh xạ một domain model hướng đối tượng
thành các bảng dữ liệu trong một cơ sở dữ liệu quan hệ cũng như việc query data từ
cơ sở dữ liệu, Hibernate sẽ tự tạo các câu truy vấn SQL và chuyển đổi các result set

thành những đối tượng Java tương ứng.

3. Hibernate Query Language
Hibernate cung cấp cho người dùng một ngôn ngữ dựa trên SQL để thực hiện các
câu truy vấn, điều này khiến cho người phát triển không phải học hết các syntax
của các hệ cơ sở dữ liệu khác nhau cũng như không phải viết lại chương trình nếu
có thay đổi cơ sở dữ liệu
Ví dụ: HQL đơn giản

15


IV Tìm hiểu mơ hình Model-View-Controller và Spring MVC
1. Model-View Controller
MVC là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy
tính. MVC chia thành ba phần được kết nối với nhau. Chúng bao gồm Model (dữ
liệu), View (giao diện) và Controller (bộ điều khiển).
- Model: Quản lý dữ liệu và business logic
- View: Quản lý giao diện người dùng
- Controller: Quản lý liêc lạc giữa Model và View. Lấy dữ liệu từ Model và
render view tương ứng
2. Spring MVC
Spring MVC là cách implement kiến trúc MVC của Spring Framework, được thiết
kế xoay quanh một Java Servlet chính gọi là Dispatcher Servlet.
Spring MVC hỗ trợ cấu hình các request handler, request mapping, view resolution,
file upload…

V. Dự án thực tập: Chương trình quản lý nhân sự bằng Spring
MVC
1. Mô tả

công cụ quản lý để theo dõi việc phân cơng nhiệm vụ trong dự án. Nói chung, mỗi
nhân viên sẽ phải đăng ký tài khoản của mình để nhận được mô tả công việc - kế
hoạch khi tham gia dự án. Nhân viên quản lý tác vụ sẽ quản lý tất cả các nhiệm vụ
sẽ giao cho nhân viên để hoàn thành.

16


2. Yêu cầu chức năng
2.1 Chức năng nhân viên:
2.1.1 Nhân viên quản lý – Manager
- CRUD các Project
- CRUD các Task trong Project
- Thêm và Xóa Nhân viên trong dự án
- Giao Task cho nhân viên
- Xem/Tìm các Task trong project mà bản thân đang tham gia hoặc giám sát
- Xem báo cáo về nhân viên (số giờ làm việc, số Task)
- Xem báo cáo về thời gian của các Task
2.1.2 Nhân viên bình thường
- Xem/Tìm các Task trong project mà bản thân đang tham gia
- Tạo Task mới
2.1.3 Cả hai
- Cập nhật Status của Task
- Sắp xếp Task theo người được giao, Priority (Ưu tiên), ngày hết hạn
- Xem ma trận quản lý thời gian:

2.2 Chức năng Admin
- Thêm nhân viên
- Cập nhật, xóa nhân viên


17


- Báo cáo: cho dự án (ai quản lý, số task, số giờ, số nhân viên), cho cả công ty
(số nhân viên đang làm việc, số giờ làm việc)

-

2.3 System constraints
Xác nhận ID của dự án là duy nhất
Xác nhận ID và Email của nhân viên là duy nhất
Xác nhận ID của Task là duy nhất
Validate Input của số giờ làm việc

3. Yêu cầu kỹ thuật

Framework: Spring MVC, Hibernate. (Bonus if: Spring Security, Applying
Spring boot)


Client side: AngularJS, Bootstrap, HTML5/CSS3, Responsive web.



Database system: MySQL or MongoDB



All CRUD operation should have JUnit tests.




Sample data should be prepared before presentation



Pagination on returned result in search function.



Source control: GitHub / SVN

18


4. Thực hiện dự án
4.1 Khảo sát yêu cầu
4.1.1 Mô hình hóa Usecase:

19


4.1.2 Mơ hình hóa Class

4.2 Thiết kế
Mơ hình cơ sở dữ liệu SQL

20



21


5. Cài đặt
5.1 Cài đặt các Hibernate Entities

5.2 Cài đặt các configuration chính của một web app bằng xml

22


5.3 Các Controller

CHƯƠNG III. Q TRÌNH THỰC TẬP
Q trình thực tập tại công ty được ghi chép theo tuần trong bảng sau
Tuần

Nội dung chính

Hồn thành

1

Tìm hiểu về Apache Maven, Java Compiler

100%

Cài đặt môi trường phát triển Java 8 với Eclipse
IDE
Cài đặt các phần mềm khác của công ty: Outlook,

Teams, Okta Verify,…

2

Tìm hiểu về Spring Framework, các Module Spring 100%
Core và Spring Bean.
Tìm hiểu các khái niệm Dependency Injection,
Inversion of Control

3

Tìm hiểu về kiến trúc MVC, Module Spring Web
và Spring Web MVC của Spring Framework

100%

Tìm hiểu về Apache Tomcat Webserver, khái niệm
Dispatcher Servlet
23


4

Tìm hiểu về Java Persistence API (JPA) và
Hibernate

100%

Tìm hiểu và nắm rõ khái niệm Persistence, vịng
đời Persistence, Object Relational Mapping

5

Tìm hiểu về Logging, Log level, các công cụ Log4J 100%
và SLF4J
Tìm hiểu về Spring Security, Authentication,
Authorization

6, 7

Chuỗi training bổ sung về Nodejs

100%

8

Chuỗi traning bổ sung về NoSQL và Mongodb

100%

9

Nhận yêu cầu dự án thực tập: Chương trình quản lý 100%
nhân sự bằng Spring MVC
Phân tích yêu cầu và lên kế hoạch dự án

10, 11, 12

Cài đặt dự án thực tập

70%


CHƯƠNG IV KẾT LUẬN
Qua q trình thực tập tại cơng ty DXC Technology đã cho em nhiều kiến thức mới
về Spring Framework và ngơn ngữ lập trình Java, cũng như được làm quen với một
môi trường công nghiệp Công Nghệ Phần Mềm chuyên nghiệp, năng động với tư
cách là một Software Developer
Ngoài ra, em cũng đã được tạo điều kiện để có thể trở thành nhân viên chính thức
của DXC Technology, một lần nữa xin cảm ơn công ty và Trường đã tạo điều kiện
và cung cấp những kiến thức và kỹ năng để em có thể đạt được kết quả ngày hôm
nay.

24



×