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

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

24 16 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

Định dạng
Số trang 24
Dung lượng 1,27 MB

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

Trang 2

2

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

Trang 3

3

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

Trang 4

4

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

Dương Thành Vương,

21/12/2021

Trang 5

5

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

Trang 6

6

Trang 7

7

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ụ 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

Trang 8

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:

Trang 9

9

• 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

Trang 10

10

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

Trang 11

11

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

Trang 13

13

@Configuration

public class ServiceConfiguration {

@Bean

public InventoryService inventoryService() {

return new InventoryService();

}

@Bean

public ProductService productService() {

return new ProductService(inventoryService());

Trang 14

14

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

-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

Trang 15

15

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

Trang 16

- 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

Trang 17

17

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

Trang 18

- 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

Spring boot)

Trang 19

19

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 21

21

Trang 22

22

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

Trang 23

23

5.3 Các Controller

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

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%

Core và Spring Bean

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

100%

và Spring Web MVC của Spring Framework Tìm hiểu về Apache Tomcat Webserver, khái niệm Dispatcher Servlet

100%

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w