Giáo trình Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_cong_nghe_phan_mem_chuong_2_quy_trinh_xay_dung_ph.pdf
Nội dung text: Giáo trình Công nghệ phần mềm - Chương 2: Quy trình xây dựng phần mềm
- Chương 2 QUY TRÌNH XÂY DỰNG PHẦN MỀM
- Mở đầu . Giới thiệu: . Quy trình xây dựng phần mềm (còn gọi tắt là quy trình phần mềm) là một tập hợp các hành động được thực hiện trong quá trình xây dựng một hệ thống phần mềm. . Trong chương này, chúng ta sẽ tìm hiểu một số mô hình phát triển phần mềm thường được ứng dụng và đánh giá ưu và nhược điểm của chúng. Sau đó, chúng ta sẽ nghiên cứu chi tiết những công việc phải làm trong quá trình xây dựng một phần mềm và cách thực hiện . Mục tiêu: . Hiểu rõ quy trình phần mềm . Nắm được một số mô hình phát triển phần mềm . Xác định chi tiết những công việc phải làm trong quy trình phần mềm và cách thực hiện chúng. . Có thể ứng dụng những mô hình phát triển phần mềm đã nghiên cứu trên những hệ thống phần mềm cụ thể. 11/12/2021 2
- Một số mô hình . Giới thiệu: . Mô hình phát triển phần mềm là một thể hiện trừu tượng của quy trình phần mềm. Nó biểu diễn các đặc tả về quy trình từ những khía cạnh cụ thể; do đó, nó chỉ cung cấp một phần thông tin về quy trình phần mềm. . Mô hình phát triển phần mềm phổ biến thường được sử dụng: . Mô hình thác nước . Mô hình xây dựng tiến triển . Công nghệ phần mềm dựa thành phần . Mô hình phát triển lặp lại, tăng thêm . Mô hình xoắn ốc 11/12/2021 3
- Một số mô hình . Mục tiêu: . Phải hiểu rõ 5 mô hình phát triển phần mềm cơ bản. . Phân biệt được sự khác nhau giữa các mô hình; ưu và nhược điểm của từng mô hình. . Biết rõ đối với loại hệ thống nào thì nên áp dụng mô hình phát triển nào cho phù hợp. 11/12/2021 4
- Một số mô hình . Mô hình thác nước: . Các pha của mô hình thác nước bao gồm: . Phân tích và xác định các yêu cầu . Thiết kế hệ thống và phần mềm . Cài đặt và kiểm thử đơn vị . Tích hợp và kiểm thử hệ thống . Vận hành và bảo trì. . Trong mô hình thác nước, năm pha trên phải được thực hiện một cách tuần tự; kết thúc pha trước, rồi mới được thực hiện pha tiếp theo. Do đó, nhược điểm chính của mô hình thác nước là rất khó khăn trong việc thay đổi các pha đã được thực hiện. 11/12/2021 5
- Một số mô hình . Mô hình thác nước . Cho nên, mô hình này chỉ thích hợp khi các yêu cầu đã được tìm hiểu rõ ràng và những thay đổi sẽ được giới hạn một cách rõ ràng trong suốt quá trình thiết kế. 11/12/2021 6
- Một số mô hình . Mô hình xây dựng tiến triển: . Mô hình xây dựng tiến triển dựa trên ý tưởng xây dựng một mẫu thử ban đầu và đưa cho người sử dụng xem xét; sau đó, tinh chỉnh mẫu thử qua nhiều phiên bản cho đến khi thoả mãn yêu cầu của người sử dụng thì dừng lại. 11/12/2021 7
- Một số mô hình . Mô hình xây dựng tiến triển . Có hai phương pháp để thực hiện mô hình này: . Phát triển thăm dò: . Mục đích : để làm việc với khách hàng và để đưa ra hệ thống cuối cùng từ những đặc tả sơ bộ ban đầu. Phương pháp này thường bắt đầu thực hiện với những yêu cầu được tìm hiểu rõ ràng và sau đó, bổ sung những đặc điểm mới được đề xuất bởi khách hàng. Cuối cùng, khi các yêu cầu của người sử dụng được thoả mãn thì cũng là lúc chúng ta đã xây dựng xong hệ thống. . Loại bỏ mẫu thử: . mục đích là để tìm hiểu các yêu cầu của hệ thống. Phương pháp này thường bắt đầu với những yêu cầu không rõ ràng và ít thông tin. Các mẫu thử sẽ được xây dựng và chuyển giao tới cho người sử dụng. Từ đó, ta có thể phân loại những yêu cầu nào là thực sự cần thiết và lúc này mẫu thử không còn cần thiết nữa. Như vậy, mẫu thử chỉ có tác dụng để làm sáng tỏ yêu cầu của người sử dụng. 11/12/2021 8
- Một số mô hình . Mô hình xây dựng tiến triển . Tuy nhiên, nhược điểm của mô hình xây dựng tiến triển là: thiếu tầm nhìn của cả quy trình; các hệ thống thường hướng cấu trúc nghèo nàn; yêu cầu các kỹ năng đặc biệt. . Mô hình xây dựng tiến triển chỉ nên áp dụng với những hệ thống có tương tác ở mức độ nhỏ hoặc vừa; trên một phần của những hệ thống lớn; hoặc những hệ thống có thời gian chu kỳ tồn tại ngắn. 11/12/2021 9
- Một số mô hình . Mô hình xây dựng tiến triển: 11/12/2021 10
- Một số mô hình . CNPM dựa thành phần: . Mô hình này dựa trên kỹ thuật tái sử dụng một cách có hệ thống; trong đó hệ thống được tích hợp từ nhiều thành phần đang tồn tại hoặc các thành phần thương mại COTS (Commercial-off-the-shelf). 11/12/2021 11
- Một số mô hình . CNPM dựa thành phần (tt1): . Các trạng thái chính của quy trình bao gồm: . Phân tích thành phần sẵn có . Điều chỉnh yêu cầu . Thiết kế hệ thống với kỹ thuật tái sử dụng . Xây dựng và tích hợp hệ thống 11/12/2021 12
- Một số mô hình . Mô hình phát triển lặp lại, tăng thêm: . Mô hình này được đề xuất dựa trên ý tưởng thay vì phải xây dựng và chuyển giao hệ thống một lần thì sẽ được chia thành nhiều vòng, tăng dần. Mỗi vòng là một phần kết quả của một chức năng được yêu cầu. . Các yêu cầu của người sử dụng được đánh thứ tự ưu tiên. Yêu cầu nào có thứ tự ưu tiên càng cao thì càng ở trong những vòng phát triển sớm hơn. 11/12/2021 13
- Một số mô hình . Mô hình phát triển lặp lại, tăng thêm: . Từ đó, chúng ta có thể thấy rõ một số ưu điểm của mô hình phát triển tăng vòng: . Sau mỗi lần tăng vòng thì có thể chuyển giao kết quả thực hiện được cho khách hành nên các chức năng của hệ thống có thể nhìn thấy sớm hơn. . Các vòng trước đóng vai trò là mẫu thử để giúp tìm hiểu thêm các yêu cầu ở những vòng tiếp theo. . Những chức năng của hệ thống có thứ tự ưu tiên càng cao thì sẽ được kiểm thử càng kỹ. 11/12/2021 14
- Một số mô hình . Mô hình phát triển lặp lại, tăng thêm : 11/12/2021 15
- Một số mô hình . Mô hình xoắn ốc: . Trong mô hình xoắn ốc, quy trình phát triển phần mềm được biểu diễn như một vòng xoắn ốc. Các pha trong quy trình phát triển xoắn ốc bao gồm: . Thiết lập mục tiêu: xác định mục tiêu cho từng pha của dự án. . Đánh giá và giảm thiểu rủi ro: rủi ro được đánh giá và thực hiện các hành động để giảm thiểu rủi ro. . Phát triển và đánh giá: sau khi đánh giá rủi ro, một mô hình xây dựng hệ thống sẽ được lựa chọn từ những mô hình chung. . Lập kế hoạch: đánh giá dự án và pha tiếp theo của mô hình xoắn ốc sẽ được lập kế hoạch. 11/12/2021 16
- Một số mô hình . Mô hình xoắn ốc 11/12/2021 17
- Các hoạt động trong quy trình PM . Giới thiệu: . Trong quy trình phần mềm gồm 4 hoạt động cơ bản. Những hoạt động này bao gồm: . Đặc tả: các chức năng của hệ thống và những ràng buộc khi vận hành hệ thống cần phải được xác định một cách đầy đủ và chi tiết. . Thiết kế và cài đặt: phần mềm được xây dựng phải thoả mãn đặc tả của nó. . Đánh giá: phần mềm phải được đánh giá và thẩm định để đảm bảo rằng nó đã thoả mãn tất cả các yêu cầu. . Cải tiến: phần mềm cần phải cải tiến và điều chỉnh để phù hợp với những thay đổi về yêu cầu hệ thống. . Với mỗi mô hình khác nhau thì các hoạt động này cũng được tổ chức theo các cách khác nhau. Ví dụ, trong mô hình thác nước, chúng được tổ chức một cách tuần tự. Trong mô hình tiến triển, các hoạt động này có thể gối lên nhau. Trong các phần tiếp sau đây, chúng ta sẽ nghiên cứu cụ thể từng hoạt động. 11/12/2021 18
- Các hoạt động . Mục tiêu: . Xác định rõ những công việc nào cần phải làm trong quy trình phát triển phần mềm. . Từng công việc đó được thực hiện cụ thể ra sao . Phải nhớ một điều rằng: khi xây dựng bất kỳ phần mềm nào, chúng ta đều phải thực hiện bốn công việc trên. Tuy nhiên, với việc sử dụng các mô hình phát triển phần mềm khác nhau thì trình tự thực hiện các công việc trên cũng khác nhau. 11/12/2021 19
- Các hoạt động . Đặc tả phần mềm . Đặc tả phần 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 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. 11/12/2021 20
- Các hoạt động . Đặc tả phần mềm . Quy trình xác định yêu cầu bao gồm bốn pha chính: . Nghiên cứu khả thi: Nghiên cứu 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ệ thống cũ Trong pha này, chúng ta có 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ử. 11/12/2021 21
- Các hoạt động . Đặc tả phần mềm . Quy trình xác định yêu cầu bao gồm bốn pha chính: . Đặ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: . 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 bổ sung thêm cho các biểu đồ của các dịch vụ mà hệ thống cung cấp và các ràng buộc vận hành của nó. Kiểu yêu cầu này được viết bởi người sử dụng. . Yêu cầu hệ thống: là những tài liệu có cấu trúc mô tả chi 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. . Đá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. 11/12/2021 22
- Các hoạt động . Đặc tả phần mềm 11/12/2021 23
- Các hoạt động . Thiết kế phần mềm và cài đặt . Thiết kế phần mềm là quá trình thiết kế cấu trúc phần 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: 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ệ thống con, phải có một bản đặc tả 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 diện của nó với những hệ thống con khác phải được thiết kế và tư liệu hoá. . Thiết kế thành phần: các dịch vụ cung cấp cho các thành phần khác và các giao diện tương tác với chúng phải được thiết kế. . Thiết kế cấu trúc dữ liệu: cấu trúc dữ liệu được sử dụng để cài đặt hệ thống phải được thiết kế một cách chi 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ế chi tiết và chính xác. 11/12/2021 24
- Các hoạt động . Thiết kế phần mềm và cài đặt 11/12/2021 25
- Các hoạt động . Thiết kế phần mềm và cài đặt . Cài đặt là 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. 11/12/2021 26
- Các hoạt động . Đánh giá phần mềm . Đánh giá phần mềm hay còn gọi là thẩm tra và đánh giá (V&V Verification and validation) được sử dụng để chỉ ra rằng hệ thống đã thực hiện theo đúng các đặc tả và thoả mãn mọi yêu cầu của khách hàng. . Đánh giá phần mềm bao gồm các công đoạn: kiểm tra, xem xét lại, và kiểm thử hệ thống. Kiểm thử hệ thống tức là cho hệ thống thực hiện trên những trường hợp có dữ liệu thật được lấy từ tài liệu đặc tả hệ thống. Quy trình kiểm thử gồm các pha sau: . Kiểm thử thành phần (đơn vị): các thành phần được kiểm thử một cách độc lập, thành phần có thể là một chức năng hoặc một đối tượng hoặc một nhóm các thực thể gắn kết với nhau. . Kiểm thử hệ thống: kiểm thử toàn bộ hệ thống. . Kiểm thử chấp thuận: kiểm thử trên dữ liệu của khách hàng để kiểm tra hệ thống có đáp ứng tất cả các yêu cầu của khách hàng 11/12/2021 hay không. 27
- Các hoạt động . Đánh giá phần mềm . Khi chuyển giao hệ thống cho khách hàng thì quy trình kiểm thử beta sẽ được thực hiện. Khách hàng sẽ thông báo các lỗi cho đội dự án. Những lỗi này sẽ được chỉnh sửa và tiếp tục kiểm thử beta hoặc chuyển giao thực sự cho khách hàng. 11/12/2021 28
- Các hoạt động . Cải tiến phần mềm . Khi các yêu cầu hệ thống thay đổi theo sự thay đổi của các yêu cầu nghiệp vụ thì phần mềm phải cải tiến và thay đổi để hỗ trợ khách hàng. Thông thường chi phí để bảo trì và cải tiến thường đắt hơn nhiều so với chi phí xây dựng phần mềm. 11/12/2021 29