Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
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
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ự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) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ LỜI NÓI ĐẦU Tài liệu tạo yêu cầu học phần Thực tập tốt nghiệp SE501.M11, học kì I năm học 2021-2022 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 tech stack quan trọng giải pháp phần mềm, với thay đổi chóng mặt khoa học cơng nghệ thời đại cách mạng công nghiệp 4.0 đại dịch Covid-19, chứng minh mạnh mẽ tầm quan trọng việc làm chủ vận dụng tảng công nghệ việc phát triển giải pháp phần mềm Sau năm học tập rèn luyện 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ụ ngơn ngữ lập trình Java Spring Framework Báo cáo bao gồm thông tin về: Giới thiệu công ty DXC Technology Vietnam, nội dung đào tạo cơng việc q trình thực tập công ty, nhật ký chi tiết trình thực tập kết luận Cách đọc tài liệu: Nội dung tài liệu đưa vào mục, đánh số Chương I, chi tiết xem thêm mục lục 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 công ty, thực tập từ xa nhà ảnh hưởng dịch bệnh, hệ sinh thái phần mềm hỗ trợ công ty mặt đào tạo, liên lạc, thơng tin… góp phần khơng nhỏ kết thực tập em Trong ba tháng thực tập, việc tìm hiểu cài đặt thành cơng hệ thống phần mềm Web ngôn ngữ Java Spring Framework, em tham gia buổi training công nghệ NodeJS, MongoDB, tham gia khóa đào tạo kỹ mềm, ngoại ngữ, quy trình phát triển phần mềm… Kết đạt nhờ vào công sức dạy tạo điều kiện anh chị Senior Developer, Manager, Human Resource… Lời cảm ơn đặc biệt tới anh Mai Chí Thành anh Trần Quang Mẫn sếp buổi training, review, giải đáp thắc mắc developer chưa có kinh nghiệm em suốt q trình thực tập Dương Thành Vương, 21/12/2021 Mục lục CHƯƠNG I GIỚI THIỆU CHUNG VỀ CÔNG TY DXC TECHNOLOGY VIETNAM I Giới thiệu chung công ty .7 II Một số sản phẩm công ty DXC Assure DXC Platform X™ DXC Cyber Defense III Văn hóa cơng ty .8 Cơ cấu tổ chức Sứ mệnh giá trị 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 Giới thiệu Apache Maven Mơ hình Dự Án Đối Tượng (Project Object Model -POM) Maven Repository 10 II Tìm hiểu Spring Framework .11 Giới thiệu Spring Framework 11 Các module Spring Framework 14 III Tỉm hiểu công cụ Ánh Xạ Đối Tượng Quan Hệ Hibernate 15 Ánh xạ đối tượng quan hệ (Object Relational Mapping) 15 Hibernate Object Relational Mapper 15 IV Tìm hiểu mơ hình Model-View-Controller Spring MVC .16 Model-View Controller 16 Spring MVC 16 V Dự án thực tập: Chương trình quản lý nhân Spring MVC .16 Mô tả 16 Yêu cầu chức 17 Yêu cầu kỹ thuật 18 Thực dự án 19 Chương III Quá trình thực tập 23 Chương IV Kết luận 24 CHƯƠNG I GIỚI THIỆU CHUNG VỀ CÔNG TY DXC TECHNOLOGY VIETNAM I Giới thiệu chung công ty DXC Technology công ty dịch vụ IT hàng đầu giới, nằm bảng xếp hạng Fortune 500 Có mặt 70 quốc gia với 130000 nhân viên DXC Technology Vietnam công ty DXC thị trường Châu Á – Thái Bình Dương, công ty công nghệ tốp đầu Việt Nam DXC Technology cung cấp dịch vụ toàn Technology Stack dành cho 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 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ông ty DXC Assure Hệ thống giải pháp phần mềm, BPaaS, BPO cho nhà cung cấp Bảo Hiểm quốc gia, lĩnh vực tầm cỡ cung cấp hệ sinh thái cloud, microservice, REST… cho doanh nghiệp thực cung cấp bảo hiểm việc xây dựng hệ thống trì hệ thống cũ DXC Assure nhà cung cấp số toàn cầu cho hệ thống bảo hiểm Với 1900 khách hàng 11 triệu người tiêu dùng bảo hiểm quản lý DXC Platform X™ DXC Platform X™ hệ thống tự động hóa thơng minh cung cấp giải pháp dự đoán, giảm thiểu bất thường hệ thống sử dụng trí tuệ nhân tạo DXC Cyber Defense Hệ thống báo cáo tình bất ngờ, quản lý xâm phạm thông tin, vulnerability scanning, penetration testing dành cho hệ thống thông tin đại nhiều cấp độ, dịch vụ diễn tập hack chống hack dẫn dắt chuyên viên IT có kinh nghiệm cao III Văn hóa cơng ty Cơ cấu tổ chức DXC Technology Việt Nam công ty DXC Technology, tổ chức thành theo mơ hình thứ bậc với phịng ban lớn Application Delivery, Service Delivery, Human Resource, Finance… Trong phòng ban với dự án có tổ chức đội ngũ nhỏ từ đến 10 người phụ trách khía cạnh dự án, ví dụ Application Development Team, Database Administration Team, Application Support and Maintenance Team… Mỗi Team bao gồm Team Leader, đến hai Senior Member Associate Các Team chi nhánh DXC Technology toàn giới thường xuyên hợp tác, trao đổi làm việc dự án tạo nên môi trường làm việc đa dạng, phong phú động Sứ mệnh giá trị DXC mang sứ mệnh cung cấp dịch vụ IT để đại hóa thúc đẩy sáng tạo toàn lĩnh vực, nơi giới Giá trị DXC: • Deliver: Sẽ làm nói • Collaborate: Làm việc đội ngũ, tồn cầu sở • Community: Tin vào việc dẫn dắt xây dựng công ty thúc đẩy cộng đồng • Care: Chăm sóc lẫn tạo văn hóa bao quát thân thuộc • Do: Làm việc thẳng, đá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 Giới thiệu Apache Maven Apache Maven công cụ quản lý định nghĩa dự án phần mềm tự động thường dùng cho dự án phần mềm Java Maven hỗ trợ việc quản lý build, report, document… từ nguồn thông tin Maven cung cấp giải pháp cho hai khía cạnh lớn việc build phần mềm: build cần dependency Mơ hình Dự Án Đối Tượng (Project Object Model -POM) Một POM cung cấp tất cấu hình cho dự án phần mềm: thơng tin tác giả, dependency, bước build, plugin… Các POM liên kết với POM gốc (root POM) cho dự án có nhiều Module Với Maven, cấu hình lưu file XML có cấu trúc hình • • • • • Tag “project” thể dự án phần mềm Các tag “groupId”, “artifactId” thể thông tin dự án Tag “packaging” thể hướng dẫn package project Tag “build” thể cấu hình build Các tag “plugins”, “dependencies” thể plugin dependency Maven Repository Maven Repository repository lưu trữ build artifact dependency Có hai loại repository: local remote - Local Repository chạy máy tính cài đặt maven , lưu trữ download từ remote build chưa release - Remote: Do bên thứ ba thiết lập để cung cấp nguồn download cho artifact họ Maven Central Repository Repository mặc định cài đặt Maven, ngồi cịn có repository google,… 10 II Tìm hiểu Spring Framework Giới thiệu Spring Framework Spring Framework tảng mã nguồn mở cung cấp khả xây dựng Enterprise Application Về chất Spring container, hay thường gọi “Spring application context”, container tạo quản lý thành phần ứng dụng hay gọi “component” “spring bean”, thành phần kết nối với để tạo nên ứng dụng hồn chỉnh Q trình bean kết nối với thực dựa pattern gọi “dependency injection”, thay thành phần ứng dụng tạo quản lý vòng đời đối tượng mà chúng cần, ứng dụng dependency injection dựa vào container để tạo quản lý đối tượng “inject” chúng vào bean cần thiết Q trình sử dụng constructor (constructor-based dependency injection) hay method (setter-based dependency injection) Ví dụ mơ hình Dependency Injection đơn giản: 11 Cách tạo bean khai báo cho Spring container xml: 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 chức tổ chức thành khoảng 20 module, module nhóm thành nhóm: Core Container, Data Access/Integration, Web, AOP (Aspect Oriented Programming), Instrumentation, Test 13 Các module Spring Framework 2.1 Core Container: - Bao gồm Core, Beans, Context, Expression Language - Các module Spring Core Spring Bean Inversion of Control Dependency Injection, đảm bảo tách phần specification configuration khỏi logic phần mềm - Spring Context: hỗ trợ việc truy cập object framework - Spring Expression Language: hỗ trợ loại ngôn ngữ expression để query object graph run time chương trình 2.2 Data Access/Integration - Bao gồm JDBC, ORM, OXM, JMS Transaction - Spring JDBC: Cung cấp layer đóng gói JDBC truyền thống, giảm mức độ phức tạp code JDBC - Spring ORM: cung cấp khả tích hợp API ánh xạ đối tượng quan hệ phổ biến JPA, JDO, Hibernate, iBatis… - Spring OXM: cung cấp layer đóng gói hỗ trợ ánh xạ đối tượng – XML cho AXB, Castor, XMLBeans, JiBX XStream 2.3 Web -Bao gồm Web, Web-Servlet, Web-Struts, Web-Portlet - Spring Web: cung cấp tính tích hợp web khả khởi tạo Application Context hướng Web - Spring Web-Servlet: Chứa implementation mơ hình Model-View Controller Spring Framework (Spring MVC) 2.4 AOP Instrumentation - Spring AOP: cung cấp implementation Aspect Oriented Programming tích hợp với AspectJ 14 III Tỉm hiểu công cụ Ánh Xạ Đối Tượng Quan Hệ Hibernate Ánh xạ đối tượng quan hệ (Object Relational Mapping) Ánh xạ đối tượng quan hệ hay Object Relational Mapping kỹ thuật lập trình để chuyển đổi liệu hệ thống khơng tương thích, cụ thể đối tượng nhớ ngôn ngữ lập trình hướng đối tượng dịng bảng cở sở liệu quan hệ Việc sử dụng công cụ ánh xạ đối tượng quan hệ (Object Relational Mapper) giúp người phát triển giảm thiểu thời gian cơng sức q trình phát triển tập trung vào câu lệnh Logic SQL, vấn đề việc tuân thủ quy tắc nhà cung cấp SQL đóng gói, trừu tượng hóa để sử dụng dễ dàng Hibernate Object Relational Mapper Hibernate ORM 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 framework để ánh xạ domain model hướng đối tượng thành bảng liệu sở liệu quan hệ việc query data từ sở liệu, Hibernate tự tạo câu truy vấn SQL chuyển đổi result set thành đối tượng Java tương ứng Hibernate Query Language Hibernate cung cấp cho người dùng ngôn ngữ dựa SQL để thực câu truy vấn, điều khiến cho người phát triển học hết syntax hệ sở liệu khác viết lại chương trình có thay đổi sở liệu Ví dụ: HQL đơn giản 15 IV Tìm hiểu mơ hình Model-View-Controller Spring MVC Model-View Controller MVC mẫu kiến trúc phần mềm để tạo lập giao diện người dùng máy tính MVC chia thành ba phần kết nối với Chúng bao gồm Model (dữ liệu), View (giao diện) Controller (bộ điều khiển) - Model: Quản lý liệu business logic - View: Quản lý giao diện người dùng - Controller: Quản lý liêc lạc Model View Lấy liệu từ Model render view tương ứng Spring MVC Spring MVC cách implement kiến trúc MVC Spring Framework, thiết kế xoay quanh Java Servlet gọi Dispatcher Servlet Spring MVC hỗ trợ cấu hình request handler, request mapping, view resolution, file upload… V Dự án thực tập: Chương trình quản lý nhân Spring MVC Mô tả công cụ quản lý để theo dõi việc phân công nhiệm vụ dự án Nói chung, nhân viên phải đăng ký tài khoản để nhận mơ tả cơng việc - kế hoạch tham gia dự án Nhân viên quản lý tác vụ quản lý tất nhiệm vụ giao cho nhân viên để hoàn thành 16 Yêu cầu chức 2.1 Chức nhân viên: 2.1.1 Nhân viên quản lý – Manager - CRUD Project - CRUD Task Project - Thêm Xóa Nhân viên dự án - Giao Task cho nhân viên - Xem/Tìm Task project mà thân tham gia giám sát - Xem báo cáo nhân viên (số làm việc, số Task) - Xem báo cáo thời gian Task 2.1.2 Nhân viên bình thường - Xem/Tìm Task project mà thân tham gia - Tạo Task 2.1.3 Cả hai - Cập nhật Status Task - Sắp xếp Task theo người 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 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ông ty (số nhân viên làm việc, số làm việc) - 2.3 System constraints Xác nhận ID dự án Xác nhận ID Email nhân viên Xác nhận ID Task Validate Input số làm việc 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 Thực 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 sở liệu SQL 20 21 Cài đặt 5.1 Cài đặt Hibernate Entities 5.2 Cài đặt configuration web app xml 22 5.3 Các Controller CHƯƠNG III Q TRÌNH THỰC TẬP Q trình thực tập cơng ty ghi chép theo tuần bảng sau Tuần Nội dung Hồn thành Tìm hiểu Apache Maven, Java Compiler 100% Cài đặt môi trường phát triển Java với Eclipse IDE Cài đặt phần mềm khác cơng ty: Outlook, Teams, Okta Verify,… Tìm hiểu Spring Framework, Module Spring 100% Core Spring Bean Tìm hiểu khái niệm Dependency Injection, Inversion of Control Tìm hiểu kiến trúc MVC, Module Spring Web Spring Web MVC Spring Framework 100% Tìm hiểu Apache Tomcat Webserver, khái niệm Dispatcher Servlet 23 Tìm hiểu Java Persistence API (JPA) Hibernate 100% Tìm hiểu nắm rõ khái niệm Persistence, vịng đời Persistence, Object Relational Mapping Tìm hiểu Logging, Log level, công cụ Log4J 100% SLF4J Tìm hiểu Spring Security, Authentication, Authorization 6, Chuỗi training bổ sung Nodejs 100% Chuỗi traning bổ sung NoSQL Mongodb 100% Nhận yêu cầu dự án thực tập: Chương trình quản lý 100% nhân Spring MVC Phân tích yêu cầu 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 trình thực tập cơng ty DXC Technology cho em nhiều kiến thức Spring Framework ngôn ngữ lập trình Java, làm quen với môi trường công nghiệp Công Nghệ Phần Mềm chuyên nghiệp, động với tư cách Software Developer Ngoài ra, em tạo điều kiện để trở thành nhân viên thức DXC Technology, lần xin cảm ơn công ty Trường tạo điều kiện cung cấp kiến thức kỹ để em đạt kết ngày hôm 24 ... DUNG THỰC TẬP I Tìm hiểu cơng cụ quản lý software project Apache Maven Giới thiệu Apache Maven Apache Maven công cụ quản lý định nghĩa dự án phần mềm tự động thường dùng cho dự án phần mềm Java... - Xem ma trận quản lý thời gian: 2.2 Chức 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ông ty (số nhân viên làm việc,... tập công ty, thực tập từ xa nhà ảnh hưởng dịch bệnh, hệ sinh thái phần mềm hỗ trợ công ty mặt đào tạo, liên lạc, thông tin… góp phần khơng nhỏ kết thực tập em Trong ba tháng thực tập, việc tìm