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

pdf24 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2186 | Lượt tải: 0download
Tóm tắt nội dung 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, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfBà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