SDLC (chu trình phát triển phần mềm) là một chuỗi các hoạt động của nhà phân tích(Analyst), nhà thiết kế (Designer), người phát triển (Developer) và người dùng (User) để phát triển và thực hiện một hệ thống thông tin. Những hoạt động này được thực hiện trong nhiều giai đoạn khác nhau chẳng hạn như phân tích yêu cầu (requirement), thiết kế (design), mã hóa (coding)
Nếu lên kế hoạch tốt trong các giai đoạn thì sẽ giúp bạn theo dõi được lịch trình, chi phí và chất lượng của dự án phần mềm.
9 trang |
Chia sẻ: lylyngoc | Lượt xem: 1646 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Tiến trình phát triển và một số mô hình phát triển phầm mềm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TIẾN TRÌNH PHÁT TRIỂN VÀ MỘT SỐ MÔ HÌNH
PHÁT TRIỂN PHẦM MỀM
I. Tìm hiểu về chu trình phát triển phần mềm (Software Development Life Cycle - SDLC)
1. Định nghĩa
SDLC (chu trình phát triển phần mềm) là một chuỗi các hoạt động của nhà phân tích(Analyst), nhà thiết kế (Designer), người phát triển (Developer) và người dùng (User) để phát triển và thực hiện một hệ thống thông tin. Những hoạt động này được thực hiện trong nhiều giai đoạn khác nhau chẳng hạn như phân tích yêu cầu (requirement), thiết kế (design), mã hóa (coding)
Nếu lên kế hoạch tốt trong các giai đoạn thì sẽ giúp bạn theo dõi được lịch trình, chi phí và chất lượng của dự án phần mềm.
2. Các giai đoạn của phát triển phần mềm
Có 6 giai đoạn chính trong SDLC
Phân tích tính khả thi (Feasibility analysis): Bao gồm phân tích yêu cầu dự án về dữ liệu đầu vào và đầu ra mong muốn, xử lý cần thiết để biến đổi đầu vào tới đầu ra, phân tích chi phí - lợi ích, và tiến độ của dự án. Phân tích tính khả thi cũng bao gồm tính khả thi kỹ thuật của một dự án về công cụ phần mềm, phần cứng, và các chuyên gia phần mềm có tay nghề cao.Vào cuối của giai đoạn này, một báo cáo khả thi cho toàn bộ dự án được tạo ra.
Phân tích yêu cầu và đặc tính kỹ thuật (Requirement analysis and specification): Bao gồm thu thập, phân tích, xác nhận, và xác định yêu cầu. Vào cuối giai đoạn này phải đưa ra được một tài liệu “Đặc điểm kỹ thuật” – Software Requirement Specification (SRS). Tài liệu này như một thỏa thuận bằng văn bản giữa nhóm phát triển và khách hàng. SRS bao gồm các thông tin như: các chức năng của phần mềm cần có, hiệu suất, phần mềm, phần cứng, hệ thống mạng yêu cầu của dự án.
Thiết kế (Design): Bao gồm các chuyển đồi từ các yêu cầu quy định trong SRS thành các sơ đồ phân cấp chức năng, luồng dữ liệu, mã giả, từ điển dữ liệu, mối quan hệ giữa các thực thể và chương trình. Cuối giai đoạn này sẽ đưa ra được tài liệu thiết kế chi tiết và logic để cho lập trình viên có thể dùng ngôn ngữ lập trình để lập trình phần mềm.
Mã hóa (Coding): Bao gồm việc triển khai các tài liệu thiết kế thành ngôn ngữ lập trình. Cuối giai đoạn này sẽ cho ra được mã nguồn của chương trình để làm đầu vào cho quá trình kiểm thử tiếp theo.
Kiểm thử (Testing): Phát hiện lỗi trong phần mềm, lên kế hoạch kiểm tra với các bộ tài liệu thiết kế và dữ liệu kiểm thử. Cuối giai đoạn này sẽ đưa ra được báo cáo về các lỗi của phần mềm trong khi thử nghiệm.
Bảo trì (Maintenance): Quá trình này tiến hành sau khi phần mềm được giao cho khách hàng. Đảm bảo phần mềm vận hành ổn định, khắc phục lỗi trong quá trình vận hành một cách nhanh chóng. Nâng cấp phần mềm, thêm tính năng nếu được khách hàng yêu cầu.
II. Các mô hình trong SDLC
Trong SDLC có 3 loại mô hình. Việc chọn mô hình phát triển phần mềm rất quan trọng. Nó ảnh hưởng đến việc phân bổ nhân lực, kiểm soát chi phí, và quản lý chất lượng phần mềm.
Các loại mô hình:
Mô hình tuyến tính
Mô hình lặp đi lặp lại
Mô hình gia tăng, cộng dồn
1. Mô hình tuyến tính
Mô hình tuyến tính được sử dụng cho các dự án đã xác định và hiểu rõ được yêu cầu trước khi bắt đầu thiết kế phần mềm.
Xuất hiện từ năm 1970 thay thế phương pháp code – and - fix
Có 2 mô hình phổ biến dạng tuyến tính:
Mô hình thác nước (Waterfall model)
Mô hình nguyên mẫu (Prototyping model)
1.1 Mô hình thác nước (Waterfall model)
- Mô hình thác nước mô tả quá trình phát triển phần mềm trong một dòng chảy tuần tự, tuyến tính.
- Điều này có nghĩa là một giai đoạn được bắt đầu khi hoàn tất giai đoạn trước nó. Và khi sang giai đoạn mới bạn không thể quay trở lại giai đoạn phía trước.
- Mô hình thác nước bao gồm 7 giai đoạn:
Khái niệm (Conception): Nhận thức vấn đề, xác định mục tiêu phải đạt được khi giải quyết vấn đề, ước tính lợi ích mà hệ thống mới đạt được so với hệ thống hiện tại, xác định các khu vực bị ảnh hưởng.
Bắt đầu (Initiation): Nghiên cứu ở cấp độ vĩ mô những yêu cầu của khánh hàng, xác định các giải pháp thay thế và lợi ích do giải pháp đó mang lại.
Phân tích (Analysis): Nghiên cứu chi tiết các yêu cầu của khách hàng và hệ thống cần được xây dựng, nhưng đầu tiên của giai đoạn ta phải đóng băng các yêu cầu của khách hàng.
Thiết kế (Design): Chuyển đổi từ các yêu cầu thành mô hình logic, mã giả…để có thể dùng ngôn ngữ lập trình được.
Xây dựng (Construction): Lập trình từ những thiết kế bằng ngôn ngữ lập trình để máy có thể đọc được.
Tích hợp và kiểm thử (Integration and testing): Liên quan đến việc thử nghiệm và tích hợp tất cả các module thành một hệ thống hoàn chỉnh, kiểm tra rà xoát lỗi phát sinh.
Triển khai và bảo trì (Implementation and maintenance): Bao gồm các công việc như cài đặt hệ thống, đào tạo cho nhân viên điều hành hệ thống.
Các mô hình thác nước thường được sử dụng cho các dự án nhỏ, các yêu cầu của khách hàng đã rõ ràng. Mô hình này chỉ được sử dụng khi yêu cầu của khách hàng đã đóng băng và không có gì thay đổi để tránh việc phải thay đổi kế hoạch hoặc thiết kế. Nhưng mô hình này thường không sử dụng cho các dự án lớn, các yêu cầu của khách hàng thường được phát sinh khi thực hiện dự án.
1.2 Mô hình nguyên mẫu (Prototyping model)
Mô hình nguyên mẫu còn được gọi là mô hình tiến hóa của mô hình thác nước. Trong mô hình thác nước có rất nhiều lỗi có thể sảy ra nếu có sự thay đổi bất thường của hệ thống do khoảng cách sự hiểu biết của khách hàng và đội ngũ phát triển. Điều này dẫn đến việc phải chỉnh sửa lại một hoặc nhiều phần có khi là toàn bộ hệ thống, tốn kém về thời gian, chi phí. Để khắc phục điều này khái niệm mô hình nguyên mẫu được giới thiệu.
Mô hình nguyên mẫu tức là ta tạo một mẫu của hệ thống cho thấy sự hạn chế và chức năng khả năng của hệ thống đó. Sau khi xây dựng nguyên mẫu sẽ giao cho khách hàng đánh giá. Mẫu thử nghiệm này sẽ giúp khách hàng hình dung các chức năng sẽ có trong hệ thống của mình sau này. Đội ngũ phát triển sẽ tiếp nhận yêu cầu của khách hàng để chỉnh sửa cho đến khi nào khách hàng và đội ngũ phát triển hiểu chính xác các yêu cầu của khánh hàng. Sau đó sẽ đóng băng các yêu cầu đó lại và tiếp tục sang giai đoạn sau.
Sau khi nguyên mẫu được hoàn thiện thì sẽ tiếp tục các giai đoạn giống như ở mô hình thác nước.
Ví dụ như trang web thương mại điện tử, bán hàng trực tuyến là một loại ta có thể thực hiện mô hình nguyên mẫu.
Một hạn chế của mô hình nguyên mẫu là trình độ chuyên môn của đội ngũ phát triển phải cao để phát triển mẫu thử nghiệm.
2. Mô hình lặp đi lặp lại
Mô hình lặp lại là sự tiến hóa của mô hình nguyên mẫu, được sử dụng khi yêu cầu của khách hàng phát sinh và thay đổi trong quá trình phát triển phần mềm. Sau mỗi lần đưa sản phẩn cho khách hàng đánh giá, các yêu cầu trở lên rõ ràng hơn, và đội ngũ phát triển có thể lên kế hoạch cho các lần lặp lại tiếp theo.
Các loại mô hình có trong kiểu mô hình lặp lại:
Mô hình xoắn ốc (Spiral model)
Win-win Spiral model
2.1 Mô hình xoắc ốc (Spiral model)
Mô hình xoắc ốc bao gồm các tính chất của mô hình thác nước và mô hình nguyên mẫu. Mô hình này rất hữu ích đối với các phần mềm được phát hành thành nhiều phiên bản.
Trong mỗi lần lặp lại của mô hình xoắn ốc thì tương đương một mô hình thác nước. Vào cuối phiên bản đầu tiên khách hàng đánh giá phần mềm và cung cấp các thông tin phản hồi. Dựa trên thông tin phản hồi, quá trình phát triển phiên bản tiếp theo sẽ dần hoàn thiện hơn. Quá trình lặp lại trong suốt vòng đời của phần mềm.
Một ví dụ của mô hình xoắn ốc là hệ điều hành Windows từ các phiên bản Windows 3.1 đến Windows 2003. Microsoft đã phát triển hệ điều hành phiên bản đầu tiên là Windows 3.1. Sau đó nhận được sự đánh giá phản hồi Windows 3.1 của thị trường rộng lớn Microsoft đã lên kế hoạch để phát triển một phiên bản mới của hệ điều hành đó là Windows 95 được cải tiến và tính linh hoạt về đồ họa. Tương tự các phiên bản Windows tiếp theo ra đời.
Có 6 giai đoạn trong mô hình xoắn ốc:
Bàn bạc với khách hàng (Customer Communication): Tạo ra sự hiểu biết hệ thống và hiểu ý tưởng của khách hàng và nhà phân tích.
Lập kế hoạch (Planning): Lập lịch, ước tính thời gian, chi phí, nguồn lực cho dự án.
Phân tích rủi ro (Risk Analysis): Bao gồm xác định, đánh giá và giám sát quản lý rủi ro, chẳng hạn như trượt tiến độ và chi phí gia tăng.
Kỹ nghệ (Engineering): Bao gồm việc thu thập yêu cầu và thiết kế hệ thống phần mềm.
Xây dựng và phát hành (Construction and release): Bao gồm mã hóa, thử nghiệm, và triển khai phần mềm cho khách hàng và cung cấp các tài liệu hỗ trợ người sử dụng.
Đánh giá của khách hàng (Customer Evaluation): Bao gồm việc đánh giá và phản hồi thực hiện tiếp theo trong các phiên bản phần mềm.
2.2 Mô hình win-win Spiral
Win-win Spiral là sự mở rộng của mô hình xoắn ốc. Trong mô hình này nhóm nghiên cứu phát triển tổ chức cuộc thảo luận thương lượng các yêu cầu của khách hàng. Mô hình này được gọi là win-win bởi vì nó đem lại chiến thắng cho cả nhà phát triển và khách hàng. Khách hàng chiến thắng bởi họ nhận được sản phẩm phần mềm đáp ứng hầu hết các yêu cầu của họ trong khi đội ngũ phát triển chiến thắng bằng cách cung cấp phần mềm được phát triển với tất cả các yêu cầu sau khi đàm phán với khách hàng.
Có 6 giai đoạn của mô hình win-win Spiral
Xác định yêu cầu.
Đàm phán với khách hàng.
Thiết lập yêu cầu mới sau khi đàm phán với khách hàng.
Đánh giá quá trình và sản phẩn thay thế, phân tích rủi ro.
Lựa chọn sản phẩm được thông qua.
Xem phản hồi từ khách hàng.
3. Mô hình gia tăng
Trong mô hình gia tăng, yêu cầu phần mềm được chia nhỏ ra thành các đơn vị chức năng khác nhau. Các đơn vị chức năng có chứa một nhóm nhiệm vụ tương ứng. Mỗi đơn vị chức năng được thực hiện trong “một tăng” và sản phẩn cuối cùng được tạo ra sau khi hoàn thiện hết tất cả các chức năng trong quá trình phát triển.
Mỗi tăng của mô hình gia tăng bao gồm 3 giai đoạn: Phân tích, thiết kế, thực hiện.
Ví dụ: Một ngân hàng muốn một phần mềm tự động hóa các công việc ngân hàng cho vay bảo hiểm, mua ô to, mua nhà, cho vay cá nhân. Ngân hàng muốn tự động ngay lập tức bởi vì có thể tăng cường các dịch vụ của khách hàng. Trong trường hợp này bạn có thể sử dụng mô hình gia tăng. Trước tiên bạn thực hiện các tính năng cho vay cá nhân. Trong các tăng tiếp theo bạn triển khai các chức năng dịch vụ bảo hiểm, mua nhà, mua ôtô và các tính năng khác của ngân hàng.
Hạn chế của mô hình gia tăng là chỉ có thể sử dụng trong các ứng dụng lớn.