Mô tả nội dung, kết quả từng giai đoạn trong QTPM thông dụng và trường hợp sử dụng
Giới thiệu CASE (Computer-aided software engineering) hỗ trợ cho các hoạt động trong QTPM
Tổ chức nhân sự trong dự án phần mềm
92 trang |
Chia sẻ: Mr Hưng | Lượt xem: 867 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Nội dung kết quả từng giai đoạn trong quy trình phát triển phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đại Học Sư Phạm Tp. Hồ Chí MinhNỘI DUNG KẾT QUẢ TỪNG GIAI ĐOẠN TRONG QUY TRÌNH PHÁT TRIỂN PHẦN MỀMTài liệuPressman, Software Engineering, chapter 2Ivan Sommerville, Software Engineering, chapter 2Mục tiêuMô tả nội dung, kết quả từng giai đoạn trong QTPM thông dụng và trường hợp sử dụngGiới thiệu CASE (Computer-aided software engineering) hỗ trợ cho các hoạt động trong QTPMTổ chức nhân sự trong dự án phần mềmQuy trình ptpmXây dựng phần mềm cần phải thực hiện theo trình tự nào?Cần bao nhiêu người tham gia? vai trò của từng thành viên? tổ chức quản lý các thành viên?Giao tiếp giữa các thành viên trong hệ thống?Quy trình ptpmQuy trình ptpmDevelopmentBusiness AnalystBộ phận phát triển phần mềmBộ phận tiếp nhận yêu cầu của khách hàngQuy trình ptpmQui trình ptpmMột tập các hoạt động để phát triển một hệ thống phần mềmĐặc tả;Phân tích;Thiết kế;Cài đặt;Kiểm tra.Một mô hình Quy trình CNPM là một cách trình bày trừu tượng của một qui trình. Nó biểu diễn một mô tả của một qui trình từ một góc nhìn cụ thể nào đó.Giai đoạn khảo sátKhảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìKết quả:Nội dung:Xác định quy trình xử lý nghiệp vụThu thập biểu mẫu thống kêTài liệu đặc tả kiến trúc hệ thống:Yêu cầu chức năngYêu cầu phi chức năngKiến trúc hệ thốngGiai đoạn khảo sát (tt)Xét Hệ thống quản lý giáo vụ tại trường đại họcQui trình xử lý nghiệp vụXử lý nhập họcXử lý nhập điểmXử lý sinh viên tốt nghiệpQuản lý giảng viênBáo biểu thống kêHồ sơ sinh viênHồ sơ giảng viênBảng điểm sinh viênBảng điểm theo lớpDanh sách lớp.Giai đoạn khảo sát (tt)Kết quảYêu cầu chức năng:Lưu trữ những thông tin gì ?Tra cứu theo tiêu chuẩn nào ?Xử lý tính toán theo công thức nào ?Kết xuất, thống kê ? Yêu cầu phi chức năng:Cài đặt trên môi trường nào ? Windows ? Web ?Sử dụng hệ quản trị cơ sở dữ liệu nào ? Access/SQL Server/Oracle/DB2Sử dụng công nghệ gì ? Java/.NET/Delphi/PHP/Giai đoạn khảo sát (tt)Xét hệ thống quản lý giáo vụ trường đại học:Kiến trúc hệ thống:Windows ApplicationDatabase ServerGiai đoạn khảo sát (tt)Xét hệ thống quản lý giáo vụ trường đại học:Kiến trúc hệ thống:Web ServerDatabase ServerClientGiai đoạn phân tíchKhảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìKết quả:Nội dung:Phân tích khả thiXây dựng mô hình dữ liệu mức quan niệmXây dựng mô hình xử lýHồ sơ phân tích:Mô hình ERD (CDM)Mô hình DFDPhương án triển khai hệ thốngGiai đoạn phân tích (tt)Xét hệ thống quản lý giáo vụ tại trường đại học:Mô hình thực thể kết hợp (ERD)CDM – Conceptual Data ModelERD – Entity Relationship DiagramGiai đoạn phân tích (tt)Xét hệ thống quản lý giáo vụ tại trường đại học:Mô hình xử lý DFDGiai đoạn phân tích (tt)Xét hệ thống quản lý giáo vụ trường đại học:Phương án triển khai - PA1Giai đoạn phân tích (tt)Xét hệ thống quản lý giáo vụ trường đại học:Phương án triển khai – PA2Giai đoạn phân tích (tt)Xét hệ thống quản lý giáo vụ trường đại học:Phương án triển khai – PA3Khảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìKết quả:Nội dung:Thiết kế dữ liệuThiết kế xử lýThiết kế giao diệnHồ sơ thiết kế:Mô hình PDMKiến trúc ModuleHệ thống chức năngHệ thống giao diệnGiai đoạn thiết kếGiai đoạn thiết kế (tt)Xét hệ thống quản lý giáo vụ tại trường đại học:Mô hình vật lý (PDM)PDM – Physical Data ModelGiai đoạn thiết kế (tt)Kiến trúc phân hệ - ModuleGiai đoạn thiết kế (tt)Hệ thống chức năng Module Quản lý Sinh viênGiai đoạn thiết kế (tt)Hệ thống giao diện phân hệ sinh viên:Giai đoạn thiết kế (tt)Hệ thống giao diện phân hệ sinh viên:Giai đoạn thiết kế (tt)Module quản lý sinh viên:Giai đoạn thiết kế (tt)Hệ thống giao diện phân hệ sinh viên:Giai đoạn thiết kế (tt)Hệ thống giao diện phân hệ sinh viên:Giai đoạn thiết kế (tt)Hệ thống giao diện phân hệ Giảng viên:Giai đoạn thiết kế (tt)Hệ thống giao diện phân hệ Giảng viên:Giai đoạn thiết kế (tt)Hệ thống giao diện phân hệ Giảng viên:Khảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìKết quả:Nội dung:Tạo CSDLTạo giao diệnCài đặt các xử lýSource code:Giao diệnDLLActiveX ControlSample DatabaseChương trình: EXE, Web AppGiai đoạn cài đặtKhảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìKết quả:Nội dung:Kiểm lỗiKiểm lỗi phân hệKiểm lỗi hệ thốngRoadmapTest planTest caseBugTest reportGiai đoạn kiểm traKhảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìKết quả:Nội dung:Đóng gói sản phẩmCài đặt thử nghiệm với dữ liệu thật của khách hàngHướng dẫn sử dụngChương trình cài đặtTài liệu hướng dẫn cài đặtTài liệu hướng dẫn cấu hình hệ thốngGiai đoạn triển khaiSưu liệu/Tài liệu liên quanTài liệu kỹ thuậtTài liệu khảo sátTài liệu phân tíchTài liệu thiết kếTài liệu hướng dẫn lập trìnhTài liệu hướng dẫn đóng gói chương trìnhTài liệu hướng dẫn người dùngBrocheInstallation guideUser ManualRelease NotesUpgrade or Hot fixing guide (Version History)Bài tập tình huốngKết quả khảo sát hiện trạng hệ thống quản lý nhân sự tiền lương tại một doanh nghiệp thu thập được các thông tin sau:Mỗi nhân viên có một mã nhân viên duy nhất, và có họ tên, ngày tháng năm sinh và được lãnh lương theo hệ bậc lương của mình. Đồng thời một nhân viên thì chỉ thuộc biên chế của một và chỉ một phòng ban. Ví dụ: Nhân viên tên A có mã số NV1 thuộc biên chế phòng Tổng Hợp (với mã phòng TH) sinh năm 1986 lãnh lương chuyên viên chính. Thông tin cần quản lý về phòng ban bao gồm: tên phòng ban, mã phòng ban và số lương nhân viên và người trưởng phòng.Ví dụ: phòng Tổng Hợp có mã TH, số lượng nhân viên là 5 có trưởng phòng là Nhân Viên A.Mức lương gồm tên, số tiền và mô tả yêu câu công việc. Ví dụ: Mức lương chuyên viên chính là 2,5 triệu VNĐ, cần tối thiểu 5 năm kinh nghiệm.*Bài tập tình huốngKết quả khảo sát hiện trạng hệ thống quản lý nhân sự tiền lương tại một doanh nghiệp thu thập được các thông tin sau:Mỗi nhân viên có một mã nhân viên duy nhất, và có họ tên, ngày tháng năm sinh và được lãnh lương theo hệ bậc lương của mình. Thông tin cần quản lý về phòng ban bao gồm: tên phòng ban, mã phòng ban và số lương nhân viên và người trưởng Mức lương gồm tên, số tiền và mô tả yêu câu công việc. Ngoài các chức năng thêm, xóa, sửa nhân viên, phòng ban, mức lương và lưu vào hệ thống. Hằng tháng cần có báo cáo bảng lương tổng hợp của toàn công ty và bảng lương chi tiết cho từng người. Các chức năng cần có phản hồi trong vòng 30 giây và dùng tối đa là 3 lần click chuột là có thể sử dụng. Ứng dụng cần được triển khai trên web và chạy tốt với IE và Firefox?Xác định các yêu cầu nào là chức năng, phi chức năng?Vẽ hệ thống phân cấp nhóm chức năng?Vẽ sơ đồ Use case, ERD và sitemap?*Khảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìKết quả:Nội dung:Hỗ trợ sữa lỗiTheo dõi thay đổi yêu cầuNâng cấpTài liệu hướng dẫn giải quyết sự cốTài liệu hướng dẫn nâng cấpHostfix / Service PackGiai đoạn bảo trìMô hình thác nước mở rộngKhảo sátPhân tíchThiết kếCài đặtKiểm traTriển khaiBảo trìMô hình dựa trên componentDựa trên việc tái sử dụng có tính hệ thống trong đó hệ thống được tích hợp từ các thành phần đã có.Các bướcPhân tích thành phần;Chỉnh sửa yêu cầu;Thiết kế hệ thống với ý tưởng tái sử dụng;Phát triển và tích hợp.Kiểm traCách tiếp cận này đang ngày càng được sử dụng nhiều khi các chuẩn thành phần dần thống nhất.Phát triển xoắn ốcQui trình được biểu diễn ở dạng xoắn ốc thay vì một dãy các hoạt động với quay lui.Mỗi lần lặp trong xoắn ốc biểu diễn một pha trong qui trình. Không có các pha cố định như đặc tả hay thiết kế - số lần lặp trong xoắn ốc được chọn phụ thuộc vào nhu cầu.Các rủi ro được đánh giá và giải tỏa một cách rõ ràng xuyên suốt qui trình.Quy trình xoắn ốcTiếp xúcKhách hàngLập kế hoạchPhân tích rủi roPhân tích, thiết kếXây dựng và triển khaiĐánh giácủa khách hàngHoạt động trong qui trìnhĐặc tả phần mềmThiết kế và cài đặt phần mềmKiểm tra phần mềmTiến hóa phần mềmĐặc tả phần mềmQuá trình lập ra những dịch vụ nào là cần thiết và ràng buộc trong quá trình vận hành và phát triển hệ thống.Qui trình kỹ thuật thu thập yêu cầuNghiên cứu thực tế;Phân tích và suy luận ra yêu cầu;Đặc tả yêu cầu;Kiểm tra yêu cầu.Thiết kế và cài đặt phần mềmQuá trình chuyển đặc tả hệ thống thành hệ thống thực hiện được.Thiết kế phần mềmThiết kế một cấu trúc phần mềm nhằm hiện thực hóa đặc tả;Cài đặtChuyển cấu trúc này thành một chương trình thực thi được;Hoạt động thiết kế và cài đặt thường quan hệ mật thiết với nhau và có thể đan xen nhau.Hoạt động của quá trình thiết kếThiết kế kiến trúcĐặc tả trừu tượngThiết kế giao diệnThiết kế thành phầnThiết kế cấu trúc dữ liệuThiết kế giải thuậtPhương pháp cấu trúcCách tiếp cận hệ thống để phát triển một thiết kế phần mềm.Bản thiết kế thường được sưu liệu lại thành một tập các mô hình đồ họa.Một số mô hình có thể cóMô hình đối tượng (Object);Mô hình trình tự (Sequence);Mô hình chuyển trạng thái (Statechart);Mô hình cấu trúc;Mô hình luồng dữ liệu (DFD).Lập trình và gỡ lỗiChuyển một bản thiết kế thành một chương trình và loại bỏ các lỗi khỏi chương trình đó.Lập trình là một hoạt động cá nhân – không có một qui trình lập trình thông dụng.Lập trình viên tiến hành một vài kiểm tra chương trình để phát hiện các lỗi trong chương trình và loại bỏ các lỗi đó trong quá trình gỡ lỗi.Qui trình gỡ lỗiKiểm tra phần mềmSự xác minh và kiểm tra nhằm chỉ ra rằng một hệ thống phù hợp với đặc tả của nó và đáp ứng yêu cầu của khách hàng.Bao gồm qui trình xem xét và kiểm tra, và kiểm thử hệ thống.Kiểm thử hệ thống bao gồm thực thi hệ thống với các “test case” vốn được dẫn xuất từ bản đặc tả của dữ liệu thật được xử lý bởi hệ thống.Qui trình kiểm traCác bước kiểm thửComponent hay unit testing Mỗi thành phần được kiểm thử một cách độc lập; Thành phần có thể là hàm hay đối tượng hay một nhóm dính liền của các thực thể này.System testing (test hệ thống)Kiểm thử toàn bộ hệ thống. Kiểm thử các tính chất nổi bật là đặc biệt quan trọng.Acceptance testing (test chấp nhận)Kiểm thử với dữ liệu khách hàng để kiểm tra hệ thống đáp ứng nhu cầu của khách hàng.Tiến hóa phần mềmPhần mềm bản chất vốn linh động và có thể thay đổi. Khi nhu cầu thay đổi do ngữ cảnh công việc thay đổi, phần mềm để hỗ trợ công việc đó cũng phải tiến hóa và thay đổi.Rational Unified Process (RUP)Rational Unified Process (RUP)Một mô hình qui trình hiện đại được dẫn xuất từ các nghiên cứu trên UML và các qui trình đi kèm.Thường được mô tả từ 3 góc nhìnMột góc nhìn động mô tả các pha theo thời gian;Một góc nhìn tĩnh mô tả các hoạt động của qui trình;Một góc nhìn thực tế đề nghị các thói quen tốt.Mô hình pha của RUPCác pha của RUPSơ bộThành lập các trường hợp công việc (business case) cho hệ thống.Chi tiếtPhát triển sự hiểu biết của lĩnh vực vấn đề đang giải quyết và kiến trúc hệ thống.Xây dựngThiết kế hệ thống, lập trình và kiểm thử.Chuyển giaoTriển khai hệ thống trong môi trường vận hành của nó.Thói quen tốt trong RUPPhát triển phần mềm theo cách lặpQuản lý yêu cầuSử dụng kiến trúc dựa trên componentMô hình hóa phần mềm một cách trực quanXác minh chất lượng phần mềmKiểm soát thay đổi ở phần mềmCASEComputer-aided software engineering (CASE) là các công cụ phần mềm được chuẩn hóa để hỗ trợ các qui trình phát triển và tiến hóa phần mềm.Tự động hóa các hoạt độngTrình sọan thảo đồ họa cho phát triển mô hình phần mềm;Thư viện dữ liệu để quản lý các thực thể thiết kế;Trình xây dựng GUI cho việc xây dựng giao diện người dùng;Trình gỡ lỗi để hỗ trợ tìm lỗi;Trình dịch tự động để tạo phiên bản mới của một chương trình.Phân loại CASEPhân loại giúp chúng ta hiểu được các kiểu công cụ CASE khác nhau và sự hỗ trợ của chúng cho các hoạt động trong qui trình.Góc nhìn chức năngCác công cụ được phân loại theo chức năng cụ thể của chúng.Góc nhìn qui trìnhCác công cụ được phân loại theo các hoạt động của qui trình mà nó hỗ trợ.Góc nhìn kết hợpCác công cụ được phân loại theo tổ chức của chúng thành các đơn vị kết hợp. Tổ chức nhân sựProject ManagerProduct ManagerTesterArchitectDeveloperDevelopment TeamsInfrastructureArchitectSolutionArchitectProject ManagerDeveloperTesterEnd UserTổ chức nhân sựVai trò của các thành viênBusiness AnalystVai tròTiếp nhận, thu thập tài liệu mô tả yêu cầu của khách hàngYêu cầu chức năngYêu cầu phi chức năngNắm được toàn bộ các qui trình hoạt động của hệ thốngChuyển giao yêu cầu và hỗ trợ cho các thành viênBusiness AnalystCông việcLàm việc trực tiếp với khách hàng để xác định toàn bộ yêu cầu của hệ thốngHỗ trợ các thành viên trong quá trình xây dựng kịch bản demo, bộ dữ liệu test,Tiếp nhận yêu cầu cập nhật của khách hàng trong quá trình bảo trìXây dựng hồ sơ đặc tả yêu cầuXây dựng các kịch bản khai thácBusiness AnalystPhần mềm sử dụngPower DesignerBusiness Process ModelRequirement ModelUse – Case diagramRational RequisiteProMicrosoft OfficeWordExcelVisioPublisherPower PointWorkflowVisual Team System 2005Business Analyst RoleProject ManagerVai tròLập và theo dõi kế hoạch thực hiện dự ánThời gianNhân sựNgân sáchPhân công, theo dõi và hỗ trợ các thành viên trong dự ánQuản trị rủi roProject ManagerCông việcLập kế hoạch thực hiện dự ánLàm việc trực tiếp với Business Analyst để nắm được yêu cầu, kế hoạch thực hiện triển khai dự ánLàm việc với Architect để xác định kế hoạch chi tiết cho giai đoạn cài đặt phần mềmLàm việc với Developer để xây dựng kế hoạch chi tiết cho giai đoạn cài đặt phần mềmLàm việc với nhóm test để xây dựng kế hoạch chi tiết cho giai đoạn kiểm chứng phần mềm.Project ManagerPhần mềm sử dụngProject ManagementMicrosoft Office Project 2003Microsoft Project Professional 2003Microsoft Project Web Access 2003Microsoft Sharepoint Portal 2003Microsoft Windows Sharepoint ServiceeTimeMachine SolutioneTimeMachine EnterpriseETM.NETeTimeMachine WorkfloweTimeMachine PathFinderPrimaveraProject ManagerPhần mềm sử dụngSource Code ManagementVisual SourcesafeVisual Team System 2005Project Manager RoleArchitectVai tròThiết kế kiến trúc hệ thống phần mềmThiết kế prototypeThiết kế giao diện(môhình)Thiết kế dữ liệu(môhình)Thiết kế xử lý (mô hình)ArchitectCông việcChọn kiến trúc hệ thốngMô hình 1 lớp, 2 lớp, 3 lớpWindows, Web,..Thiết kế kiến trúc hệ thốngKiến trúc các phân hệChức năng của mỗi phân hệThiết kế giao diệnThiết kế xử lýThiết kế dữ liệuArchitectCông việcƯớc lượng chi phí: nhân sự, thời gian thực hiệnLàm việc với Project Manager xây dựng kế hoạch chi tiết cài đặt phần mềmHỗ trợ nhóm Test chuẩn bị môi trường test, cài đặt cấu hình hệ thốngHỗ trợ Techincal writer viết các sưu liệu kỹ thuật, hướng dẫn cài đặt triển khai hệ thốngArchitectPhần mềm sử dụngPower DesignerConceptual Data ModelPhysical Data ModelObject-Oriented Model (UML Model)Rational Rose (IBM Rational)UML ModelMicrosoft ProjectWeb AccessSharepointWorkflowVisual Team System 2005Architect RoleDeveloperVai tròTham gia vào giai đoạn cài đặt phần mềmThực hiện kiểm tra đơn vị (Unit Test)Sửa lỗi(Bug)Công việcSử dụng công cụ và môi trường phát triển phần mềm để viết codeTạo giao diện (Dos/Win/Web)Viết code xử lýDeveloperCông việcSử dụng các Third-party Component để phát triển tạo giao diện ứng dụngComponentOneInfragisticsIntersoftSử dụng các bộ thư viện SDK để viết xử lýPocket PC SDKDirectX SDKOpenGL SDKDeveloperCông việcSử dụng hệ quản trị cơ sở dữ liệu để cài đặt cơ sở dữ liệuTableViewStored procedureTạo báo cáo, thống kê theo biểu mẫu (Report)Sửa lỗi (Bug) phát sinh từ testerDeveloperPhần mềm sử dụngIDE (Integrite Development Environment)Visual studio 6.0Visual studio.Net 2003/2005/2008Borland DelphiNetBeanJbuilderPHP.DeveloperPhần mềm sử dụngDBMS (Database Management System)AccessSQL Server 2000/2005/2008Oracle 9i/10i/11iMy SQLDB2 (IBM)DeveloperPhần mềm sử dụngReport ToolCrystal ReportData Dynamic ReportComponentOne ReportProject Management ToolDeveloper RoleWorkflowDeveloper RoleVisual Team SystemDeveloper RoleTesterVai tròKiểm lỗi phần mềmKiểm lỗi bản đóng góiKiểm lỗi tài liệuUser guideInstallation GuideRelease NotesTroubleshootingTesterCông việcChuẩn bị môi trường testWindows XP, 2000, 2003, 2008LinuxIE, FireFox, Netscape, MozillaTest Database, Test dataViết test caseThực hiện test các test case trong từng môi trường khác nhauMô tả Bug và chi tiết các bước để tạo ra bugTheo dõi quá trình Fix BugBáo cáo kết quả testTesterPhần mềm sử dụngWeb testingTest Manager RoleTester RoleAutomation TestLoad testingCode AnalysisProject Management ToolTester RoleWorkflowTester rolePackerVai tròLàm việc với Developer, Architect, Tester để chuẩn bị bản đóng góiRedistribute ComponentRuntime LibraryDB Script,Đóng gói phầnmềmLàm việc với Tester để tiến hành kiểm lỗi và sửa lỗi bản đóng góiPackerPhần mềm sử dụngInstallShieldWise InstallProject Management ToolPacker RoleWorkflowPacker roleTechnical WriterCông việcViết các tài liệu kỹ thuậtTài liệu khảo sátTài liệu phân tíchTài liệu thiết kếTài liệu hướng dẫn lập trìnhTài liệu hướng dẫn đóng gói chương trìnhTài liệu hướng dẫn người dùngBrocheInstallation guideUser ManualRelease NotesUpgrade or Hot fixing guide (Version History)Technical WriterPhần mềm sử dụngMicrosoft OfficeeHelp/RoboHelpHTML Help/Help WorkshopPageMakerAcrobat Writer/DistillerProject Management ToolTechnical RoleWorkflowTechnical roleTóm tắtQTPM là các hoạt động liên quan đến sản xuất và tiến hóa một hệ thống phần mềm. Mô hình QTPM là sự biểu diễn trừu tượng của các QTPM.Các hành động thông dụng là: đặc tả, thiết kế và cài đặt, kiểm tra và tiến hóa.Các mô hình qui trình thông dụng mô tả sự tổ chức của các QTPM. Ví dụ: mô hình thác nước, phát triển tiến hóa, dựa trên thành phần..Mô hình qui trình lặp mô tả QTPM như là một chu kỳ của các hoạt động..Tóm tắtThu thập yêu cầu là quá trình phát triển đặc tả phần mềm.Quá trình thiết kế và cài đặt chuyển bản đặc tả thành chương trình thực thi được.Kiểm tra bao gồm kiểm tra rằng hệ thống đáp ứng đặc tả của nó và nhu cầu người dùng.Tiến hóa liên quan đến việc thay đổi hệ thống sau khi nó được sử dụng.RUP là một mô hình qui trình thông dụng mà tách biệt các hoạt động từ các pha.Công nghệ CASE hỗ trợ các hoạt động của qui trình phần mềm.Tham khảoBài giảng này có tham khảo:Slide bài giảng “Công nghệ Phần mềm”, Trần Ngọc Bảo, ĐH Sư phạm TpHCM.Slide bài giảng Kỹ nghệ phần mềm, ĐH Công nghệ, ĐHQG Hà NộiCâu hỏi và thảo luận?
Các file đính kèm theo tài liệu này:
- chuong1_1_noi_dung_cong_viec_va_ket_qua_cua_tung_giai_doan_trong_quy_trinh_phat_trien_phan_mem_3938.ppt