Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
601,19 KB
Nội dung
MỤC LỤC LỜI CẢM ƠN Lời đầu tiên, xin chân thành cảm ơn Trường Đại học Công nghệ nói chung Khoa Công Nghệ Thông Tin nói riêng tạo điều kiện cho tham gia thực tập chuyên ngành, hội cho cọ sát thực tế, ứng dụng kiến thức trường vào thực tiễn, hoc tập quy trình kĩ làm việc Dù không dài thực học thực tế đáng giá cho sinh viên cuối khóa, giúp tự tin đối diện với công ty, với hội việc làm sau này, cho phép bày tỏ lời cảm ơn sâu sắc tới TS Nguyễn Thị Huyền Châu, cô tận tình hướng dẫn, bảo trình thực đề tài thực tập chuyên ngành Tôi xin cảm ơn chân thành tới Ban lãnh đạo công cổ phần phần mềm FPT, anh Hoàng Việt Thắng, anh Đàm Anh Tuấn, chị Trịnh Thị Thanh Huyền anh chị quản lý, hướng dẫn công ty tạo điều kiện giúp đỡ trình thực tập chuyên ngành Mặc dù cố gắng thực đề tài thực tập chuyên ngành phạm vi khả cho phép chắn không tránh khỏi thiếu sót, mong nhận đánh giá, góp ý, bảo tận tình thầy cô anh chị để đề tài thực tập chuyên ngành hoàn thiện Tôi xin chân thành cảm ơn! Hà Nội, ngày 30 tháng năm 2013 Sinh viên thực Lê Văn Hưng I Giới thiệu chung I.1 Giới thiệu công ty Tên đơn vị thực tập: Công ty cổ phần phần mềm FPT (FPT Sofware) Địa chỉ: Tầng 4, tòa nhà Toyota Mỹ Đình, số 15 Phạm Hùng, Quận Cầu Giấy, Hà Nội Lịch sử phát triển: Được thành lập năm 1988 nhóm nhà khoa học trẻ lĩnh vực Vật lý, Toán, Cơ, Tin học, sau năm, FPT thành lập phận tin học mang tên ISC (Informatic Service Center) Đến tháng 12 năm 1994, đủ lớn, ISC tách thành phận chuyên sâu dự án, phân phối, phần mềm… Bộ phận phần mềm lúc có tên FSS (FPT Software Solutions - tên tiếng Việt Xí nghiệp Giải pháp Phần mềm FPT) Từ 1994 đến 1998, FSS tiếp tục phát triển cung cấp giải pháp phần mềm cho lĩnh vực Ngân hàng, Kế toán, Thuế, Hải quan, Công an Cuối năm 1998 đầu 1999, sau chiến lược xuất phần mềm định hình, nhóm chuyên gia tách từ FSS để thành lập FSU1 (FPT Strategic Unit #1) phận chịu trách nhiệm mũi nhọn sứ mệnh Toàn Cầu Hoá FSU1 tiền thân FSOFT ngày Năm 2001 đánh dấu hợp đồng OSDC với Mỹ đặc biệt OSDC với NTT-IT - khách hàng Nhật FSOFT Năm 2001 năm FSOFT bắt đầu dự án CMM-4, với mục tiêu đạt chứng CMM mức vòng năm FSOFT đạt CMM mức vào tháng 3/2002, trở thành công ty khu vực Đông Nam Á đạt chứng Năm 2002 năm FSOFT củng cố lại sơ đồ tổ chức, việc thành lập Trung tâm sản xuất Phòng chức Cuối 2002, lần doanh số FSOFT vượt ngưỡng triệu USD Năm 2003 đem cho FSOFT nhiều khách hàng mới, đặc biệt khách hàng lớn Nhật Hitachi, Sanyo, Nissen, IBM Japan FSOFT thành lập Văn phòng thành phố Hồ Chí Minh Đầu năm 2004, FSOFT trở thành Công ty cổ phần phần mềm FPT Trụ sở Tp Hồ Chí Minh chuyển nhà e-town FSOFT đạt CMM mức (mức cao nhất) vào tháng Để phục vụ tốt khách hàng Nhật, Văn phòng đại diện FSOFT mở Tokyo Năm 2004 năm gặt hái nhiều thành công Công ty Phần mềm FPT, với doanh số xuất năm 2004 tăng trưởng 200% so với năm 2003 Năm 2005 năm đánh dấu bước phát triển công ty mặt, giúp FSOFT khẳng định vị trí công ty phần mềm hàng đầu Việt Nam Tháng 8/2005 thành lập Chi nhánh Đà Nẵng, tháng 11 thành lập Công ty FSOFT JAPAN Tokyo, tháng 12 khai trương Trung tâm Tuyển dụng Đào tạo nhà Simco, Hà nội Hết năm 2005, FSOFT tăng trưởng 114% doanh số, trở thành công ty phần mềm Việt Nam có 1000 nhân viên Tháng 10, năm 2007, Trung tâm sản xuất phần mềm chuyển đến làm việc tập trung Tòa nhà FPT Phạm Hùng (Hà nội) Cuối năm 2007, doanh số Fsoft đạt 29,6 triệu USD, tăng 79% so với doanh thu năm 2006; số nhân viên thức 2,287 người Năm 2008 diễn với việc thành lập Công ty chi nhánh Pháp, Malaysia, Mỹ, Australia; doanh số đạt 42 triệu USD với 2600 nhân viên FSOFT có hệ thống khách hàng rộng lớn toàn giới Mỹ, Châu Âu, Nhật Bản, nước Châu Á Thái Bình Dương (Malaysia, Singapore, Australia) Trong chiến lược gia nhập hàng ngũ nhà cung cấp dịch vụ phần mềm hàng đầu giới, Công ty tập trung phát triển nguồn nhân lực chất lượng cao – giá trị cốt lõi đóng góp vào tăng trưởng công ty Với 80% nhân viên FSOFT thục tiếng Anh 200 người sử dụng tiếng Nhật, FPT Sofware không ngừng tìm kiếm tạo hội cho tài trẻ Mục tiêu năm 2009, Fsoft đạt doanh thu 47 triệu USD với số nhân viên 2600 người Các lĩnh vực hoạt động FPT Sofware hoạt động lĩnh vực gia công xuất phần mềm Hiện FPT Software gia công xuất phần mềm sang nhiều nước giới Mỹ, Châu Âu, Nhật Bản nước Châu Á Thái Bình Dương (Malaysia, Singapore, Australia) I.2 Giới thiệu công việc Bắt đầu thực tập từ ngày 1/7/2013, em bắt đầu làm quen với môi trường thực tập: - Thời gian làm việc: buổi sáng từ thứ tới thứ 6, làm việc từ 8h30 đến 12h - Trong ngày đầu tiên, em làm quen với anh chị tham gia hướng dẫn chúng em trình thực tập Được nghe anh chị giới thiệu nhóm công nghệ mà chúng em lựa chọn để tìm hiểu trình thực tập, em giới thiệu lịch sử phát triễn, đặc điểm, lĩnh vực hoạt động, đối tác văn hóa tập đoàn FPT, FPT Sofware - Trong tuần tiếp theo, em tham gia khóa học Technical Java SQL, khóa học cung cấp cho em kiến thức Java Core, JSP, Struts2 framework, mô hình MVC… kiến thức nâng cao Microsoft SQL Server - Sau buổi học lớp, em giao tập công việc theo ngày Trước bắt đầu buổi học, em bạn lớp làm Quizzes test để đánh giá kiến thức chúng em thu từ việc học làm ngày hôm trước Kết thúc môn Technical Java SQL, chúng em có Final test để đánh giá toàn khả người sau môn học - Tiếp sau khóa học đó, em bắt đầu tham gia vào Mock Project, nhóm chúng em gồm thành viên Giai đoạn đầu sau kick off, chúng em vừa hướng dẫn quy trình phát triển phần mềm áp dụng trực tiếp vào project Service Directory Sau cùng, nắm vững quy trình phát triển, nhóm chúng em trực tiếp triển khai phát triển module project hướng dẫn anh Đàm Anh Tuấn II Đề tài thực tập II.1 Giới thiệu toán Bài toán lựa chọn làm Mock Project ứng dụng framework Struts2, Hibernate, Spring việc phát triển ứng dụng Service Diretory quản lý dịch vụ (services) mà công ty (và tổ chức liên quan) cung cấp • Mô hình Use case: • Mô hình mối quan hệ thực thể: User ReferenceData RefID RefCode RefValue UserID Department Directorate Account Email Role Password Team DirectorateID DepartmentID OrgID (FK) ContactID (FK) DirectorateID (FK) ContactID (FK) TeamID DepartmentID (FK) ContactID (FK) TrustDistrict TrustDistrictID Name Description TrustRegionID (FK) SupportingMaterial SupportingMaterialID OrgID (FK) UserID (FK) Contact Organisation OrgID ContactID OrgName ContactID (FK) FirstName ManagerID Programme TrustRegion TrustRegionID Name Description CountryID (FK) Country ProgrammeID GovOfficeRegion ContactID (FK) GovOfficeRegionID GovOfficeRegionName CountyID (FK) CountryID (FK) Premise PremiseID Service ServiceID (FK) ServiceID ContactID (FK) Town County CountryID CountyID CountryID (FK) CountryName TownID CountyID (FK) CountryID (FK) CountyName TownName Address AddressID PostCode TownID (FK) CountyID (FK) CountryID (FK) II.2 Mô tả công việc Nhóm dự án em tham gia, gồm thành viên a Vai trò: Thành viên b Công việc: - Đọc, hiểu rõ ràng tài liệu Software Requirements Specification, đặt câu hỏi - Phân tích yêu cầu, hoàn thiện Detail Design - Thiết kế sở liệu Lập trình: Tìm hiều frame work Struts2 , Hibernate, Spring cách tích hợp chúng, cách mapping chúng project Proper type Validate form, điều hướng hành động,… với Javascript Xử lý tab động Các module: Lookup (Contact, Address, Business) Department Chỉnh sửa, hoàn thiện toàn giao diện với CSS - Ngoài ra, trình thực project, em thành viên nhóm phối hợp, giúp đỡ công việc, giải vấn đề lớn như: Paging, Filter, Sorting Colunm, cấu hình tích hợp framework III Tóm tắt lý thuyết, giải pháp thuật toán liên quan III.1 Các công nghệ nghiên cứu áp dụng J2EE gì? J2EE(J2EE khung ứng dụng Web hoạt động hiệu mà công ty giới IBM, Oracle, Sun áp dụng hiệu dự án họ Điểm đặc biệt khung ứng dụng sử dụng công nghệ luông mang tính cạnh tranh cao ví dụ Struts, Hibernate, Spring, JSF, EJB … Tuy nhiên, J2EE sản phẩm cụ thể mà đặc tả đưa hãng Sun Với kiến trúc J2EE, bạn phải lựa chọn, kết nối thành phần khác để hình thành nên mô hình phát triển ứng dụng Bản thân Sun không đưa mô hình phát triển dạng đóng gói có nhiều sản phẩm từ hàng thứ ba : IBM, WebSphere, BEA WebLogic, mô hình xây dựng hỗ trợ lập trình J2EE hỗ trợ ngôn ngữ lập trình Java tương lai có lẽ ngôn ngữ lập trình hỗ trợ thêm kiến trúc Nhưng khung ứng dụng J2EE ngôn ngữ Java có tính khả chuyển cao Một chương trình viết Java thực thi máy ảo Java (Java Virtual Machine) thay trực tiếp hệ điều hành cụ thể Do đó, mã chương trình chuyển từ hệ điều hành sang hệ điều hành khác (có hỗ trợ JVM) để thực thi cách dễ dàng Tính khả chuyển hệ điều hành J2EE có phần lớn sản phẩm J2EE hỗ trợ cho nhiều hệ điều hành Hơn nữa, J2EE cung cấp thiết kế mẫu (design pattern) mà đúc rút từ kinh nghiệm thực tế chuyên gia phần mềm giới Và bạn hoàn toàn thừa hưởng mẫu thiết kế mà không cần phải bắt đầu xây dựng chi tiết từ đầu loạt công ty nhóm phần mềm tiêu tốn thời gian công sức để tìm phương án tối ưu cho vấn đề họ gặp phải trình phát triển dự án Ví dụ với tầng Web ứng dụng Kiến trúc J2EE tổng quát + EJB (Enterprice java bean) container : quản lý thực thi thành phần enterprice bean + Web Container : quản lý thực thi thành phần JSP Servlet + Application Client Container : quản lý thực thi thành phần phía client (ví dụ applet) JSP a JSP Giới thiệu: JSP (viết tắt tiếng Anh JavaServer Pages) biết đến với tên khác Java Scripting Preprocessor - "Bộ tiền xử lý văn lệnh Java" - công nghệ Java cho phép cácnhà phát triển tạo nội dung HTML, XML hay số định dạng khác trang web cách động, hồi âm yêu cầu trình khách Công nghệ cho phép người ta nhúng mã Java số hành động xử lý định trước (pre-defined actions) vào nội dung tĩnh trang b Servlet Servlet mô-đun mã Java chạy server ứng dụng để trả lời yêu cầu clients Struts2 Giới thiệu: Struts framework theo mô hình MVC Struts hỗ trợ Annotation dựa cấu hình để dễ dàng tạo trực quan Lớp Action Struts hoạt động mô hình ứng dụng web Không giống Struts, lớp Action Struts đối tượng POJO chuẩn đơn giản hóa việc kiểm tra mãStruts kèm theo hàm APIs để cấu hình Interceptors nhằm làm giảm đáng kể Coupling ứng dụng Phần View Struts đánh giá cao hỗ trợ nhiều kiểu kết khác Velocity, FreeMarker, JSP III.2 Giải pháp thuật toán giải vấn đề Struts 2.x : MVC Java web framework sử dụng dự án, dùng để thị, giao tiếp với người dùng Spring 3.x : Sử dụng chế Dependency Injection hỗ trợ Spring giúp việc quản lý đối tượng – beans Hibernate 3.x : Sử dụng Object-Relational Mapping (ORM) framework giúp việc mapping tự động ghi lưu trữ Relational Database thành Java Objects (POJOs – Plain Old Java Object) POJOs thành ghi database MySQL 5.6.x : Sử dụng để lưu trữ liệu hệ thống HTML/CSS JavaScript, Struts tablib : Sử dụng để xây dựng giao diện xử lý kiện phía client Git github để quản lý mã nguồn quản lý version Maven : dùng để build project 10 III.3 Quá trình phát triển hệ thống • Phân tích yêu cầu Hệ thống xây dựng theo theo hệ thống có thật, requirement specification cung cấp sẵn, công việc giai đoạn nghiên cứu, tìm hiểu yêu cầu để hiểu rõ hệ thống • Kiến trúc hệ thống Hệ thống xây dụng theo kiến trúc tầng, tầng sử dụng dịch vụ tầng cung cấp, tầng sử dụng dịch vụ tầng liền kề bên cung cấp • Presentation Layer : Là tầng hiển thị, giao diện giao tiếp với người dung • Business Layer : Xử lý business rules hệ thống • Data Access Layer : Xử lý thao tác với sở liệu Hệ thống xây dựng theo kiến trúc tầng, tầng có nhiệm vụ riêng, có tính độc lập cao, dễ dàng cho việc phát triển nâng cấp Sơ đồ phân chia tầng 11 • Thiết kế hệ thống Phân chia Java packages Các packages phân chia theo tầng sau • action : nằm tầng Presentation, dùng để respond request người dùng • bo : nằm tầng business, interfaces, chứa methods để xử lý business rules • bo.impl : nằm tầng Business, cài đặt interfaces package bo • dao : nằm tầng Data access, interfaces, chứa methods làm giao tiếp với sở liệu 12 • dao.impl : nằm tầng Data access, cài đặt interfaces package dao • Xây dựng hệ thống Module quản lý Organisation • Liệt kê danh sách Organisation o Sử dụng phương pháp phân trang để thị phần danh sách Organisation database mà không hiển thị hết, hiển thị phần cần dùng tới 13 o Hiển thị Organisation theo tiêu chí định sẵn o Sắp xếp thứ tự Organisation theo thuộc tính • Thêm Organisation o Sử dụng Search Helper để tìm kiếm liệu database để giúp việc nhập liệu vào text-box với trường bị giới hạn liệu có sẵn database o Sử dụng Ajax tabs để hiển thị phần form tạo Organisation • Xóa Organisation – thay đổi trạng thái Organisation • Sửa đổi thông tin Organisation • Viết Unit test cho Java class o Sử dụng JUnit 4.x để viết Testcase cho Java class Class diagram mô tả cấu trúc module quản lý Organiation 14 Các modules khác xây dựng gồm chức tương tự IV Kết thu IV.1 Các kiến thức thu • Có kiến thức tảng Java Enterprise • Hiểu biết quy trình phát triển phần mềm • Có kiến thức Java web framework : Struts 2.x • Có kiến thức Spring framework • Có kiến thức Hibernate framework • Có kiến thức quản lý mã nguồn, quản lý version • Có kiến thức việc build tự động projects 15 • Có kiến thức việc tích hợp frameworks IV.2 Kết dự án • List Organisation • Organisation Detail 16 • Lookup 17 IV.3 Các kỹ thu • Nâng cao kỹ làm việc nhóm : kết hợp thành viên nhóm xử lý vấn đề • Kỹ lãnh đạo, quản lý: Cùng team leader biết cách phân chia, điều phối công việc, đảm bảo tiến độ dự án • Kỹ giao tiếp : giao tiếp với thành viên nhóm để giải vấn đề • Kỹ thuyết trình : thuyết trình, báo cáo tiến độ dự án • Kỹ giải vấn đề • Kỹ làm việc áp lực Ý kiến đánh giá: ……………………………………….………………………… ……………………………………….………………………… ……………………………………….………………………… 18 ……………………………………….………………………… ……………………………………….………………………… Ý kiến đánh giá: ……………………………………….………………………… ……………………………………….………………………… ……………………………………… ……………………………………….………………………… ………………………… ……………………………………….………………………… ……………………………………… ……………………………………….………………………… ………………………… ……………………………………….………………………… ……………………………………… ……………………………………….………………………… ………………………… ……………………………………….………………………… ……………………………………… ……………………………………….………………………… ………………………… ……………………………………….………………………… ……………………………………… ……………………………………….………………………… ………………………… ……………………………………… ………………………… Hà Nội, ngày tháng năm 20 ……………………………………… Người hướng dẫn (Ký, ghi rõ họ tên & dấu công ty) ………………………… ……………………………………… …………………………………………………………… …… …………………………………………………………… …….………………………… ……………………………………… ………………………… ……………………………………… ………………………… ……………………………………… ………………………… ……………………………………… ………………………… 19 Điểm số: …… Điểm chữ: ………… [...]... như sau • action : nằm tại tầng Presentation, dùng để respond các request của người dùng • bo : nằm tại tầng business, là các interfaces, chứa các methods để xử lý các business rules • bo.impl : nằm tại tầng Business, cài đặt các interfaces của package bo • dao : nằm tại tầng Data access, là các interfaces, chứa các methods làm giao tiếp với cơ sở dữ liệu 12 • dao.impl : nằm tại tầng Data access, cài... thành viên của nhóm cùng xử lý các vấn đề • Kỹ năng lãnh đạo, quản lý: Cùng team leader biết cách phân chia, điều phối công việc, đảm bảo tiến độ của dự án • Kỹ năng giao tiếp : giao tiếp với thành viên của nhóm để cùng giải quyết các vấn đề • Kỹ năng thuyết trình : thuyết trình, báo cáo tiến độ của dự án • Kỹ năng giải quyết các vấn đề mới • Kỹ năng làm việc dưới áp lực Ý kiến đánh giá: ……………………………………….…………………………... Organiation 14 Các modules khác được xây dựng gồm các chức năng tương tự IV Kết quả thu được IV.1 Các kiến thức thu được • Có kiến thức cơ bản về nền tảng Java Enterprise • Hiểu biết về quy trình phát triển phần mềm • Có kiến thức cơ bản về Java web framework : Struts 2.x • Có kiến thức cơ bản về Spring framework • Có kiến thức cơ bản về Hibernate framework • Có kiến thức về quản lý mã nguồn, quản lý version... interfaces của package dao • Xây dựng hệ thống Module quản lý Organisation • Liệt kê danh sách các Organisation o Sử dụng phương pháp phân trang để hiện thị một phần danh sách các Organisation trong database mà không hiển thị hết, chỉ hiển thị những phần cần dùng tới 13 o Hiển thị Organisation theo các tiêu chí định sẵn o Sắp xếp thứ tự các Organisation theo từng thuộc tính • Thêm mới một Organisation o... ………………………… ……………………………………….………………………… ……………………………………… ……………………………………….………………………… ………………………… ……………………………………… ………………………… Hà Nội, ngày tháng năm 20 ……………………………………… Người hướng dẫn (Ký, ghi rõ họ tên & dấu công ty) ………………………… ……………………………………… …………………………………………………………… …… …………………………………………………………… …….………………………… ……………………………………… ………………………… ……………………………………… ………………………… ……………………………………… ………………………… ……………………………………… …………………………... Organisation o Sử dụng Search Helper để tìm kiếm dữ liệu trong database để giúp việc nhập dữ liệu vào text-box với những trường bị giới hạn dữ liệu có sẵn trong database o Sử dụng các Ajax tabs để hiển thị các phần của form tạo mới Organisation • Xóa một Organisation – thay đổi trạng thái của một Organisation • Sửa đổi thông tin một Organisation • Viết Unit test cho các Java class o Sử dụng JUnit 4.x để viết...III.3 Quá trình phát triển hệ thống • Phân tích yêu cầu Hệ thống được xây dựng theo phỏng theo một hệ thống có thật, requirement specification được cung cấp sẵn, vì thế công việc chính của giai đoạn này là nghiên cứu, tìm hiểu yêu cầu để hiểu rõ của hệ thống • Kiến trúc hệ thống Hệ thống được xây dụng theo kiến trúc 3 tầng, tầng trên sử dụng dịch vụ do tầng dưới cung