1. Trang chủ
  2. » Công Nghệ Thông Tin

phát triển phần mềm quản lý nhân sự bằng SPRING FRAMEWORK

23 21 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát Triển Phần Mềm Quản Lý Nhân Sự Bằng Spring Framework
Tác giả Dương Thành Vương
Người hướng dẫn Mai Chí Thành
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Báo Cáo Thực Tập
Năm xuất bản 2021-2022
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 23
Dung lượng 515,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠ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ự

Trang 1

ĐẠ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)

Trang 2

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

Trang 3

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 quá 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

Trang 4

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 quá trình thực tập

Trang 5

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

Trang 6

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ụ 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ự đoán, giảm thiểu các bất thường trong hệ thống sử dụng trí tuệ nhân tạo

Trang 7

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 10ngườ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ợptá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

• 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

Trang 8

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) chonhữ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

Trang 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

Trang 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ácEnterprise 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 hoàn chỉnh

Quá 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

Trang 11

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

Trang 12

@Bean

public InventoryService inventoryService() {

return new InventoryService();

}

@Bean

public ProductService productService() {

return new ProductService(inventoryService());

- Bao gồm Core, Beans, Context, và Expression Language

- Các module Spring Core và Spring Bean Inversion of Control và DependencyInjection, đảm bảo tách được các phần specification và configuration khỏi logicphần mềm

Trang 13

- 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 choAXB, 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ạomột Application Context hướng Web

- Spring Web-Servlet: Chứa implementation của mô hình Model-View Controllercủ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ó

Trang 14

thể giúp người phát triển giảm thiểu thời gian và công sức trong quá 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 setthà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

Trang 15

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ỗinhâ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)

Trang 16

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

- 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

Trang 17

• 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:

Trang 20

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

Trang 21

CHƯƠNG III QUÁ TRÌNH THỰC TẬP

Quá trình thực tập tại công ty được ghi chép theo tuần trong bảng sau

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

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,…

100%

2 Tìm hiểu về Spring Framework, các Module

Spring Core và Spring Bean

Tìm hiểu các khái niệm Dependency Injection, Inversion of Control

100%

3 Tìm hiểu về kiến trúc MVC, Module Spring

Web và Spring Web MVC của Spring Framework

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

100%

23

Trang 22

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

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

100%

5 Tìm hiểu về Logging, Log level, các công cụ

Log4J và SLF4J Tìm hiểu về Spring Security, Authentication, Authorization

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ý nhân sự bằng Spring MVC Phân tích yêu cầu và lên kế hoạch dự án

100%

CHƯƠNG IV KẾT LUẬN

Qua quá 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ứccủ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ômnay

Ngày đăng: 10/03/2022, 20:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w