CHƯƠNG 1: TONG QUAN VE QUY TRINH PHAT TRIEN PHAN MEM 1. Quy trinh phit trién phan mềm 1. Quy trình phIt triển phần mềm là gì? - Quy trình phát triển phần mềm là một cấu trúc bao gồm tập hợp các thao tác và các kết quả tương quan sử dụng trong việc phát triển để sản xuất ra một sản phâm phan mềm. Nhìn chung, một quy trình phat trién phan mềm bao gồm các giai đoạn như sau: a.
Dac ta phan mềm ~_ Nhiệm vụ: Thực hiện khảo sát chi tiết yêu cầu của khách hàng để từ đó tổng hợp vào tài liệu giải pháp. Tài liệu này phải mô tả đầy đủ các yêu cầu về chức năng, phi chức năng vả giao điện. -_ Kết quá: Đầu ra của giai đoạn này là Tài liệu đặc tả yêu cầu - Dac ta phan mềm (hay còn gọi là kỹ thuật xác định yêu câu) là quy trình tìm hiểu và định nghĩa những dịch vụ nào được khách hàng yêu cầu và các ràng buộc trong quá trình vận hành và xây dựng hệ thống. s* Quy trình xác định yêu cầu bao gồm bốn pha chính: - - Nghiên cứu tính khả thi: Nghiên cửu tính khả thi giúp xác định những yêu cầu của người sử dụng có thoả mãn những công nghệ hiện tại hay không.
Về góc độ kinh doanh, nghiên cứu khả thi nhằm xác định hệ thống đưa ra có mang lại lợi nhuận không. Việc nghiên cứu khả thi nên được thực hiện một cách nhanh chóng và không quá tốn kém. Kết quả của việc nghiên cứu khả thi sẽ xác định có nên tiếp tục xây dựng hệ thông nữa hay không. - _ Phân tích và rút ra các yêu cầu: đây là quy trình đưa ra các yêu cầu hệ thống thông qua một số phương pháp như: quan sát hệ thông hiện tại, phỏng vấn và thảo luận với người sử dụng, phân tích nhiệm vụ, phân tích tài liệu hoặc hệ thong cũ.
Trong pha nay, chung ta co thé phải xây dựng một hoặc nhiều mô hình hệ thông và các mẫu thử. - _ Đặc tả yêu cầu: Pha này sẽ tư liệu hoá những thông tin thu thập được. Có hai loại yêu cầu cần được xác định: e - Yêu cầu của người sử dụng: là những yêu cầu bằng ngôn ngữ tự nhiên. Kiêu yêu cầu này được việt bởi người sử dụng.
e© Yêu cầu hệ thống: là những tài liệu có cầu trúc, đươc mô hình hoá, mô tả chỉ tiết về các chức năng, dịch vụ và các ràng buộc vận hành của hệ thống. Yêu cầu hệ thông sẽ định nghĩa những gì cần phải xây dựng, cho nên nó có thê trở thành bản hợp đồng giữa khách hàng và nhà thầu. Các yêu cầu hệ thông được chia làm 2 loại: Các yêu câu hệ thông chức năng: Là các dịch vụ mà hệ thống phải cung cấp Các yêu cầu phi chức năng: Là các ràng buộc mà hệ thống phải tuân theo Đánh giá yêu cầu: pha này sẽ kiểm tra lại các yêu cầu xem chúng có đúng thực tế hay không, có thống nhất không, có đầy đủ không. Nếu phát hiện ra lỗi thì ta phải chỉnh sửa các lôi này Phân tích Phân tích và \ khả thi rút ra yêu câu yêu cầu a Danh gia yêu cầu Các mô hình hé thon Êu cầu cua người ử đụng và hệ thôn Ỷ [ Tư liệu hoá - yêu câu Hình 1.1: Quy trình xác định yêu cầu a Thiết kế “+ Nhiém vụ: Thực hiện thiết kế và tổng hợp vào tài liệu thiết kẻ.
s% Kết quả: Tài liệu thiết kế tổng thể, thiết kế module, thiết kế CSDL - La quatrinh thiét ké cau tric phan mềm dựa trên những tài liệu đặc tả. Hoạt động thiết kế bao gồm những công việc chính sau: - _ Thiết kế kiến trúc: Thiết kế các hệ thống con cấu thành lên hệ thống cần xây dựng và mỗi quan hệ giữa chúng được xác định và tư liệu hoá. - Đặc tả trừu tượng: với mỗi hệ thong con, phải có một bản đặc ta về các dịch vụ của nó và những ràng buộc khi nó vận hành. - _ Thiết kế giao diện: với mỗi hệ thống con, các giao điện của nó với những hệ thống 6 con khác phải được thiết kế và tư liệu hoá.
- _ Thiết kế thành phân: các địch vụ cung cấp cho các thành phần khác và các giao điện tương tác với chúng phải được thiết kẻ. - _ Thiết kế cấu trúc đữ liệu (thiết kế đữ liệu): cau trúc đữ liệu được sử dụng để cài đặt hệ thong phải được thiết kế một cách chỉ tiết và cụ thê. - Thiết kế thuật toán: Các thuật toán được sử dụng đề cung cấp các dịch vụ phải được thiết kế chỉ tiết và chính xác. LƠ” tà Các hoạt động yêu câu ÿ : thiết kế (Thiet key, ⁄ A ⁄ / : hệ thông phân mêm iao điện thành phản | {tric dik liéu | thuật toán at Các sản phâm thiết kế Hình 1.2: Mô hình chung của quy trình thiết kế b— Lập trình s* Nhiệm vụ: Lập trình viên thực hiện lập trình dựa trên tài liệu Giải pháp và Thiết kế đã được phê duyệt.
s* Kết qua: Source code. - La quy trình chuyén đôi từ tài liệu đặc tả hệ thống thành một hệ thống thực, có thể vận hành được và phải loại bỏ các lỗi của chương trình. -_ Lập trình là một hành động cá nhân, không có quy trình lập trình chung. Người lập trình phải thực hiện một số kiểm thử để phát hiện ra lỗi trong chương trình và loại bỏ nó trong quy trình gỡ lỗi.
-_ Trong ba giai đoạn: thiết kê, cài dat va bảo trì thì thiết kế là giai đoạn quan trong nhất, chịu trách nhiệm đến 80% đối với sự thành công của một sản phâm. Cài đặt là việc thực thi những øì đã thiết kế. Nếu trong quá trình cài đặt có xuất hiện van dé thi phải quay lại sửa bản thiết kế. Quá trình thiết kế tốt là cơ sở dé quản lý và giảm chỉ phí cho công việc bảo trì phần mềm sau này.
c Kiém thir “+ Nhiém vu: Tester tao kich ban kiém thir (test case) theo tài liệu đặc tả yêu cầu, thực hiện kiểm thử và cập nhật kết quả vào kịch bản kiêm thử, log lỗi trên các tool quản lý lỗi. s* Kết quả: Test case „ lỗi trên hệ thông quản lý lỗi. d Triển khai s% Nhiệm vụ: Triển khai sản phẩm cho khách hàng. %% Kết quả: Biên bản triển khai với khách hàng.
Một số quy trình cho phÏĨt triển phần mềm -_ Có khá nhiều mô hình phát triển phần mềm hiện nay ví dụ như: a. M6 hinh Agile Agile Methodology Launch Launch Launch Hình 1.3: Mô hình phát triển phần mềm Agile b. Mộ hình tháp nước Requirements Hình 1.4: Phát triển phần mềm theo mô hình tháp nước c. Mô hình chữ V Mô hình chữ V (V-Mode) Phan tich yeu cz Kiểm thứ chãp nhận Thiết kế cãp cao Kiem thu ne thong Thiet ké chi tiét Kiếm thử tích hợp Coding Kiểm thử đơn v Hình 1.5: Phát triển phần mềm theo mô hình chữ V d.
Mô hình xoắn Ốc — spiral Model 10 Cumulative _ cost ? re Alternate Objective Evaluation Hình 1.6: Phat trién phan mém theo mé hinh xoan 6c e. Mô hình mau thi (Prototyping model) - Mô hình xây dựng tiễn triển Phiên bản ban đâu Phác thao = ác phiên bản mô tả trung gian Phiên bản cuoi cung Hình 1.7: Mô hình mẫu thử £ Mô hình phát triển dựa trên thành phần 11 Thành phan dé xay dung hé lập kế hoạch Phân tích lỗi , - ~ thống \o2 on’ Hop nhat cho [Tìm trong thư kiện thành phần phiên bản thứ Giao tiép voi ane khach hang IBồ sung thành #3 \Xây dựng u phần vào thư : nếu thành viên sd King Đánh giá của phần phần không khách hàng thích " hop Shen tich hop Hình 1.8: Mô hình phát triển dựa trên thành phần ( Dacta ` “Phântích ` “ Điều chính` hiét ké hé tho Š_ Yêu câu } ) ( thanh phan } \_yéu cau Z tai sy dun — Phát triển “ Đánh giá ( vàtchh ; \ hệ thống | Hình 1.9: mô hình phIt triển dựa trên thành phần g._ Mô hình phát triển ứng dụng nhanh Đội1 Mô bình oe nghiệp vụ (1) Hình 1.10: Mô hình phát triển ứng dụng nhanh 12 h. Mộ hình tăng trưởng Pain ef Tait a:a Ệ=<=>| ‘Bis dag Bin tn? sexs nà: pa eee] Se? woe COWES is Ban tang 4 ap eS Hình LLI1: Mô hình tăng trưởng ¡ Phát triển các hệ thống hình thức hóa Hình 1.12: Phát triển hệ thống hình thức hóa } Phát triển hướng sử dụng lại 13 Hình 1.13: Phát triển theo hướng sử dụng lại 1. Mô hình Azile quy trình Scrum 1.
Agile là gì? - _ Agile là một phương pháp phát triển phần mềm linh hoạt đề làm sao đưa sản phẩm đến tay người dùng cảng nhanh càng tốt càng sớm càng tốt. Ưu nhược điểm của Agile a Uu diém - Bản giao sản phẩm nhanh chóng, liên tục => đảm bảo sự hài lòng của khách hàng - Khach hang, dev va tester lién tục trao đổi với nhau => hợp tác, trao đôi hàng ngày => gần gũi hơn. - Việc vừa trao đổi vừa feedback qua lại trong quá trình phát triển sẽ giúp nâng cao giá trị của sản phâm. - — Tiên độ được theo dõi sát xao mỗi ngày.
- Có thê đối ứng dễ đàng theo các thay đôi yêu cầu, thay đổi đặc điểm giữa quá trình phát triển. Nhược điểm - Phát triển theo mô hình Agile thường sẽ tạo lịch trình cho mỗi thay đôi, mỗi yêu cầu nên việc kiểm soát, tiễn độ tông thê project khá khó. 14 - Dw anco thé dé dang off-track(léch hudng) néu dai diện khách hàng không rõ kết quả cuối cùng mà họ muốn. - Đôi khi đặc điểm giao tiếp với khách hàng thường xuyên của mô hình Agile bị phản tác dụng, dự án sẽ phát triển trong tình trạng khách hàng cứ mãi trao đối mà không đưa ra được yêu câu chính xác.
Tuyên ngôn Agile - _ Các nhà phát triển nhân mạnh mười hai nguyên lý phía sau Tuyên ngôn Agile dé giúp các nhà phát triển có được gợi ý trong thực hành và vận dụng các phương pháp Agile trong thực tiễn. Các nguyên lý được liệt kê sau đây: 1) Ưu tiên cao nhất của chúng tôi là thỏa mãn khách hàng thông qua việc chuyên giao sớm và liên tục các phần mềm có giá frỊ. 2) Chào đón việc thay đổi yêu cầu, thậm chí rất muộn trong quá trình phát triển. Các quy trình linh hoạt tận dụng sự thay đổi cho các lợi thế cạnh tranh của khách hàng.
3) Thường xuyên chuyên giao phần mềm chạy tốt tới khách hàng. Từ vài tuần đến vài tháng, ưu tiên cho các khoảng thời gian ngắn hơn.