Bài giảng Kỹ nghệ phần mềm (Nhập môn) - Nguyễn Quốc Toản - Chương 1: Phần mềm và kỹ nghệ phần mềm
I.1.Sự phát triển của phần mềm
.1.1.1.Quá trình tiến hoá của phần mềm 1.1.2.Các thách thức đối với phần mềm máy tính
1.2.Phần mềm
1.2.1.Mô tả về phần mềm 1.2.2.Các đặc tr-ng phần mềm
1.2.3. Các thành phần của phần mềm
1.2 4.Việc ứng dụng phần mềm
1.3. Kỹ nghệ phần mềm
1.3.1. Định nghĩa
1.3.2. Mô hình Vòng đời cổ điển
1.3.3. Mô hình làm bản mẫu
1.3 4.Mô hình xoắn ốc
1.3.5. Kỹ thuật thế hệ thứ 4 1.3.6. Tổ hợp các khuôn cảnh
1.4. Các b-ớc tổng quát trong tiến trình kỹ nghệ phần mềm
1.4.1.Giai đoạn xác định 1.4.2. Giai đoạn phát triển
1.4.3. Giai đoạn bảo trì
I.5.Đánh giá tổng quát về chất l-ợng hệ thống
hiết kế : -Mô tả về thiết kế kiến trúc và dữ liệu (tức là xây dựng một kiến trúc modul xác định giao diện, thiết lập cấu trúc dữ liệu, các tiêu chí định giá chất l−ợng) -Thiết kế sơ bộ: xét duyệt tính đầy đủ và khả năng theo dõi các yêu cầu phần mềm -Đặc tả thiết kế là bản thảo sơ bộ đ−ợc bàn giao và trở thành một phần của cấu hình phần mềm • Thiết kế thủ tục: -Xét thủ tục cuả từng thành phần modul của thiết kế -Các mô tả thủ tục chi tiết đ−ợc bổ sung vào bản đặc tả thiết kế • Mã hoá: dùng ngôn ngữ lập trình thích hợp/ công cụ CASE -Đ−ợc đánh giá là kết quả của việc thiết kế tốt -Bản in ch−ơng trình ngôn n gữ gốc cho từng modul thành phần phần mềm là cấu hình bàn giao • Hoạt động kiểm chứng và làm hợp lệ: -Kiểm thử hiệu suất chức năng của từng modul -Kiểm thử tích hợp chức năng và giao diện -Kiểm thử tính hợp lệ (xác nhận mọi yêu cầu đã đ−ợc đáp ứng ch−a) Sau từng b−ớc có thể tiến hành gỡ lỗi-chẩn đoán-sửa lỗi • Kế hoạch và thủ tục kiểm thử: xây dựng cho từng b−ớc kiểm thử 1.4.3. Giai đoạn bảo trì Giai đoạn bảo trì tập trung vào những thay đổi. Thay đổi gắn với việc sửa lỗi, thích ứng khi môi tr−ờng phần mềm tiến hoá và sự nâng cấp Giai đoạn bảo trì áp dụng lại các b−ớc của giai đoạn xác định và phát triển nh−ng trong hoàn cảnh phần mềm đã có. +Có 3 kiểu thay đổi gặp phải trong giai đoạn bảo trì: 1.Sửa đổi: thay đổi phần mềm để khắc phục khiếm khuyết 2.Thích nghi: môi tr−ờng ban đầu thay đổi (CPU, hệ điều hành, ngoại vi) để phát triển phần mềm → thay đổi. Bảo trì thích nghi thực hiện việc sửa đổi phần mềm để thích hợp với những thay đổi môi tr−ờng ngoài. thiết kế dữ liệu và kiến trúc duyệt xét thiết kế thủ tục duyệt xét lập trình duyệt xét Đặc tả thiết kế sơ bộ Đặc tả thiết kế chi tiết bản mẫu mã gốc ch−ơng trình tài liệu bàn giao Kiểm thử (đơn vị, tích hợp và hợp lệ) gỡ lỗi Kế hoạch, thủ tục, kết quả kiểm thử tài liệu bàn giao Kỹ nghệ phần mềm ________________________________________________________________________ _______________________________________________________________________ Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng 20 3.Nâng cao: chức năng phụ phát sinh→ bảo trì hoàn thiện mở rộng phần mềm ra ngoài các yêu cầu chức năng gốc của nó +Các b−ớc tổng quát cần thực hiện : Sai sót có thể gây ra việc trở lại các b−ớc tr−ớc Đây là giai đoạn kiểm chứng, bàn giao và bảo trì: cần tìm ra tối đa số lỗi tr−ớc khi bàn giao sản phẩm cho khách hàng, chuẩn bị phần mềm để bàn giao, bảo trì phần mềm thông qua cuộc đời có ích của nó. • Tr−ớc khi bàn giao: cần tiến hành một loạt hoạt động đảm bảo chất l−ợng, chú ý các tài liệu bàn giao có chứa danh mục, cơ chế kiểm soát, cấu hình thích hợp • Sau khi bàn giao: Bảo trì- sửa lỗi, thích nghi môi tr−ờng và nâng cao chức năng. Những thay đổi về phần mềm bao gồm không chỉ có mã máy mà còn phải có toàn bộ cấu hình (nh− mọi ch−ơng trình, dữ liệu, t− liệu đã đ−ợc phát triển trong các giai đoạn xác định và xây dựng) Nhận xét: -Trong các khuôn cảnh vòng đời cổ điển và mô hình xoáy trôn ốc: các giai đoạn và các b−ớc đ−ợc mô tả đều đ−ợc xác định một cách t−ờng minh -Trong các khuôn cảnh làm bản mẫu và 4GT: một số b−ớc đ−ợc nêu ra nh−ng không đ−ợc xác định t−ờng minh. Cách tiếp cận tới từng b−ớc có thể biến động từ khuôn cảnh nọ sang khuôn cảnh kia, nh−ng toàn bộ cách tiếp cận yêu cầu bao gồm việc xác định, phát triển và bảo trì vẫn không thay đổi. -Có thể tiến hành từng giai đoạn theo kỉ luật và ph−ơng pháp đã đ−ợc xác định rõ hoặc cũng có thể làm lộn xộn qua mỗi b−ớc một cách ngẫu nhiên. Từ đây, chúng ta quan tâm đến cách tiếp cận tới việc phát triển phần mềm nhấn mạnh vào kỷ luật và ph−ơng pháp đã đ−ợc xác định rõ - một cách tiếp cận quen gọi là kỹ nghệ phần mềm -Ng−ời ta có thể chia việc phát triển phần mềm bao gồm 4 pha: +Phân tích và xác định yêu cầu +Thiết kế hệ thống và thiết kế phần mềm +Thực hiện và thử nghiệm các đơn vị của phần mềm +Tích hợp và thử nghiệm hệ thống Kiểm thử (đơn vị, tích hợp và hợp lệ) Gỡ lỗi phát hành và phân phối duyệt xét Bảo trì (sửa đổi, thích nghi môi tr−ờng, nâng cao) duyệt xét Kế hoạch, thủ tục và kết quả việc kiểm chứng Tài liệu ng−ời dùng Ch−ơng trình vận hành mã gốc ch−ơng trình Tài liệu đã sửa tài liệu bàn giao tài liệu bàn giao tài liệu bàn giao tài liệu bàn giao Kỹ nghệ phần mềm ________________________________________________________________________ _______________________________________________________________________ Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng 21 Khi đó vòng đời phần mềm đ−ợc biểu diễn theo 5 giai đoạn: 1.Giai đoạn phân tích và xác định yêu cầu 2.Giai đoạn thiết kế hệ thống và thiết kế phần mềm 3.Giai đoạn thực hiện và thử nghiệm các đơn vị của phần mềm 4.Giai đoạn tích hợp và thử nghiệm hệ thống 5.Giai đoạn vận hành và bảo trì -Mô hình quá trình phần mềm: tạo nguyên mẫu (phát triển một hệ để cho ng−ời dùng thực nghiệm, rồi thiết lập các yêu cầu mới, tạo nguyên mẫu mới cho tới khi sản phẩm đạt yêu cầu) là gần giống nh− mô hình thăm dò (phát triển càng nhanh càng tốt một hệ thống rồi cải biên hệ thống đó cho tới khi nó thực hiện đ−ợc những yêu cầu) Trong một số tr−ờng hợp riêng biệt, mô hình quá trình phần mềm có thể theo kiểu tập hợp các thành phần dùng lại đ−ợc để xây dựng phần mềm thoả mãn các yêu cầu. -Bên cạnh mô hình thác n−ớc phổ dụng (quá trình phần mềm đ−ợc chia thành một số giai đoạn, khi mỗi giai đoạn kết thúc thì quá trình chuyển sang giai đoạn kế tiếp), ng−ời ta có nghiên cứu các mô hình khác nh−: +Mô hình biến đổi hình thức: phát triển một đặc tả hình thức của một hệ phần mềm, biến đổi đặc tả đó (bảo đảm tính đúng đắn của các phép biến đổi) cho tới khi có đ−ợc một ch−ơng trình thoả mãn các yêu cầu. -Theo Raccoon thì trong những năm gần đây ng−ời ta quan tâm đến mô hình xoắn ốc nhiều hơn cả. Mô hình đ−ợc Boehm đ−a ra năm 1988. Mô hình này dựa trên việc phân tích yếu tố rủi ro. Quá trình phát triển đ−ợc chia thành nhiều thời kỳ, mỗi thời kỳ bắt đầu bằng việc phân tích rủi ro rồi tạo nguyên mẫu, cải tạo và phát triển hệ thống, duyệt lại, và cứ thế tiếp tục -Theo Ian Sommerville thì Boehm đã đ−a ra các tỷ lệ chi phí trong phần việc nh− bảng sau: Kiểu hệ thống phân tích yêu cầu & thiết kế (%) thực hiện (mã hoá) (%) thử nghiệm (%) 1.Các hệ thống lệnh và điều khiển 2.Các hệ thống điều hành 3.Các hệ thống khoa học 4.Các hệ thống tác nghiệp 46 33 44 44 20 17 26 28 34 50 30 28 I.5.Đánh giá tổng quát về chất l−ợng hệ thống Việc đánh giá tổng quát về chất l−ợng hệ thống bao gồm việc đánh giá chất l−ợng tài liệu đặc tả, chất l−ợng thiết kế và chất l−ợng của phần mềm công trình (kỹ nghệ) tốt thông qua các thuộc tính chung. Bốn thuộc tính chủ chốt mà một hệ phần mềm tốt hẳn là phải có: • Có thể bảo trì đ−ợc: phần mềm tuổi thọ dài phải đ−ợc viết và đ−ợc lập t− liệu sao cho việc thay đổi có thể tiến hành đ−ợc mà không quá tốn kém • Đáng tin cậy: phần mềm phải thực hiện đ−ợc điều mà ng−ời tiêu dùng mong mỏi và không thất bại nhiều hơn những điều đã đ−ợc đặc tả Kỹ nghệ phần mềm ________________________________________________________________________ _______________________________________________________________________ Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng 22 • Có hiệu quả: hệ thống phải không lãng phí nguồn lực bộ nhớ, bộ xử lý. Không đòi hỏi phải cực đại hoá độ hiệu quả vì rằng việc đó có thể làm cho phần mềm rất khó thay đổi • Có giao diện ng−ời sử dụng thích hợp: giao diện ng−ời sử dụng phải phù hợp với khả năng và kiến thức của ng−ời dùng hệ thống Giá cả phải đ−ợc tính đến khi xây dựng 1 phần mềm công trình tốt. Bảo trì đ−ợc coi là thuộc tính chủ chốt vì rằng các chi phí gắn kết với sản phẩm phần mềm chủ yếu là trong giai đoạn phần mềm đó đ−ợc đ−a vào sử dụng Việc tối −u hoá mọi thuộc tính này là rất khó khăn. Quan hệ giữa chi phí và sự cải thiện từng thuộc tính không phải là tuyến tính và các cải thiện nho nhỏ trong bất kỳ thuộc tính nào cũng là rất đắt. Kỹ nghệ phần mềm ________________________________________________________________________ _______________________________________________________________________ Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng 23 Tóm tắt Phần mềm đã trở thành phần tử chủ chốt trong tiến hoá của các hệ thống và sản phẩm dựa trên máy tính. Hơn 40 năm qua, bản thân phần mềm đã tiến hoá từ một công cụ phân tích thông tin và giải quyết vấn đề → một ngành công nghiệp Kỹ nghệ phần mềm là một bộ môn tích hợp cả các ph−ơng pháp, công cụ, thủ tục để phát triển kỹ nghệ phần mềm máy tính. Có thể đề ra một số khuôn cảnh khác nhau cho kỹ nghệ phần mềm, mỗi khuôn cảnh đều có điểm mạnh, điểm yếu, nh−ng nói chung tất cả đều có một dãy các giai đoạn tổng quát. ? củng cố 1. Môn học kỹ nghệ phần mềm (SE) phục vụ cho ai là chính và tại sao họ cần nó ? 2. Ph−ơng pháp tiếp cận của ng−ời thực hành là gì ? 3. Các chủ đề cần quan tâm trong SE ? 4. Tại sao nói phần mềm là nhân tố để đánh giá sự khác biệt ? 5. Việc chấp nhận thực hành SE là do các thách thức nào ? 6. Các thành phần phần mềm đ−ợc xây dựng bằng cách nào ? 7. Bản chất của ứng dụng phần mềm đ−ợc xác định bởi các nhân tố nào ? 8. Phần mềm ứng dụng đ−ợc phân loại theo các chủ đề nào ? 9. Anh (chị) hiểu thế nào là SE ? 10. So sánh các cách tiếp cận cơ bản trong tiến trình phát triển phần mềm ? (chú ý đến các sơ đồ) 11. ý nghĩa của việc tổ hợp các khuôn cảnh ? (chú ý đến các sơ đồ) 12. Nêu và phân tích các b−ớc tổng quát trong tiến trình SE ? (chú ý đến sơ đồ) 13. Giới thiệu tóm tắt các kiểu mô hình quá trình phần mềm ? 14. Nêu các thuộc tính chủ chốt mà hệ phần mềm tốt phải có? 2 December, 2008
File đính kèm:
- Bài giảng Kỹ nghệ phần mềm (Nhập môn) - Nguyễn Quốc Toản - Chương 1 Phần mềm và kỹ nghệ phần mềm.pdf