Đại học quốc gia Hà Nội - Khoa công nghệ
Bộ môn công nghệ phần mềm
_________________________ PGS. Nguyễn Quốc Toản, PGS.TS. Nguyễn Văn Vỵ,
PGS.TS.Vũ Đức Thi, TS. Lê văn Phùng
Bài giảng
Kỹ nghệ phần mềm
(nhập môn)
1. Vấn đề quản lý dự án phần mềm (tiến trình phát triển dự án phần mềm và việc quản lý nó)
2. Phân tích hệ thống và yêu cầu phần mềm (các vấn đề cơ bản trong phân tích, phơng pháp mô
hình hoá yêu cầu, các kí pháp, )
3. Thiết kế và cài đặt phần mềm (nhấn mạnh tới các định mức thiết kế cơ bản dẫn tới hệ thống chất
lợng cao và các phơng pháp thiết kế để chuyển một mô hình phân tích thành giải pháp phần
mềm)
4. Đảm bảo, kiểm chứng và duy trì tính toàn vẹn phần mềm (nhấn mạnh vào các hoạt động đợc
ứng dụng để đảm bảo chất lợng trong suốt tiến trình phần mềm )
5. Vai trò của tự động hoá (nhấn mạnh sự hỗ trợ của máy tính lên tiến trình phát triển phần mềm )
Quan tâm đến thiết kế : chủ đề 3
Quan tâm đến phơng pháp: cả 5 chủ đề
Quan tâm đến quản lý: chủ đề 1 và 4 Công trình học phần mềm không phải là chính việc sản sinh ra sản phẩm mà nó liên quan
đến việc sản sinh ra sản phẩm một cách hiệu quả.
Với những nguồn lực không hạn chế thì đa số các vấn đề phần mềm là giải quyết đợc.
Thử thách đối với kỹ s phần mềm là tạo ra phần mềm chất lợng cao với hạn chế về nguồn
lực và phải theo một lịch định trớc.
Kỹ nghệ phần mềm
________________________________________________________________________
_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
2
_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
3
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 trng 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
Phần mềm -nhân tố đánh giá sự khác biệt, điều này thể hiện ở chỗ:
. Tính đầy đủ và đúng thời hạn của thông tin do phần mềm cung cấp (và các CSDL liên quan)
khác biệt một công ty này với các đối thủ cạnh tranh
. thiết kế và " tính thân thiện con ngời" của sản phẩm phần mềm cũng làm khác biệt nó với các
sản phẩm cạnh tranh có cùng chức năng tơng tự khác. Sự thông minh và chức năng do phần
mềm đợc nhúng trong đó đa ra thờng làm khác biệt 2 sản phẩm tiêu thụ hay công nghiệp
tơng tự nhau
Nh vậy, chính phần mềm tạo ra sự khác biệt đó
I.1.Sự phát triển của phần mềm
Thách thức trớc những năm 1990: phát triển phần cứng nhằm giảm giá thành xử lý và lu
trữ dữ liệu. Ví dụ vào những năm 1980 tiến bộ trong vi điện tử: phát sinh năng lực tính toán mạnh,
giá thành thấp đáng kể
Thách thức trong những năm 1990: cải thiện chất lợng và giảm giá thành của các giải pháp
dựa trên máy tính - giải pháp đợc cài đặt bằng phần mềm
Khả năng lu trữ của phần cứng biểu thị cho tiềm năng tính toán. Còn phần mềm -một cơ
chế giúp chúng ta chế ngự và khai thác tiềm năng này
.1.1.1.Quá trình tiến hoá của phần mềm
1.Những năm đầu(từ 1950 đến 1960):
Phần cứng thay đổi liên tục, phần lớn đợc chuyên dụng cho ứng dụng đặc biệt.
Phần mềm đợc coi là nghệ thuật, cha có phơng pháp hệ thống. Phát triển phần mềm cha
đợc quản lý
Môi trờng phần mềm có tính cá nhân thiết kế -tiến trình không tờng minh, thờng
không có tài liệu.
Kết quả: Học đợc việc cài đặt hệ thống dựa trên máy tính, không học đợc mấy về kỹ nghệ
máu, ) máy tính cá nhân và các máy trạm để bàn
- Chi phí phần mềm có khuynh hớng > chi phí mua máy tính
4. Thời kỳ sau 1990 (Thời kỳ thứ t mới chỉ bắt đầu):
- Kỹ nghệ hớng sự vật là cách tiếp cận mới đang nhanh chóng thay thế nhiều cách tiếp cận phát
triển phần mềm truyền thống trong các lĩnh vực ứng dụng
- Hệ chuyên gia và phần mềm trí tuệ nhân tạo: chuyển từ phòng thí nghiệm thực tế
- Phần mềm mạng nơ ron nhân tạo: mở ra khả năng nhận dạng và thực hiện khả năng xử lý thông
tin kiểu con ngời 1.1.2.Các thách thức đối với phần mềm máy tính
Các thách thức đối với phần mềm máy tính gia tăng vì những nguyên nhân sau:
1. Sự tinh vi của phần cứng đã vợt quá khả năng của chúng ta để xây dựng phần mềm
đạt tới tiềm năng của phần cứng
2. Khả năng xây dựng các chơng trình mới không thể giữ cùng nhịp với nhu cầu có các
chơng trình mới
3. Khả năng bảo trì các chơng trình hiện có rất khó khăn vì thiết kế sơ sài, tài nguyên
không thích hợp
Tất cả các thách thức trên chấp nhận thực hành kỹ nghệ phần mềm
1.2.Phần mềm
1.2.1.Mô tả về phần mềm
Việc mô tả phần mềm trong sách giáo khoa có 1 trong những dạng sau:
Hai quá trình này phụ thuộc vào con ngời
Chi phí phần mềm tập trung vào kỹ nghệ khái niệm xởng phần mềm khuyến cáo sử
dụng công cụ tự động
2.Phần mềm không "hỏng đi"
Phần mềm không cảm ứng đối với những khiếm khuyết môi trờng vốn gây cho phần cứng
bị mòn cũ đi
t t
Đờng cong hỏng hóc cho HW Đờng cong hỏng hóc cho SW (lý tởng)
Thực tế, phần mềm sẽ trải qua sự thay đổi (bảo trì). Khi thay đổi đợc thực hiện có thể là
một số khiếm khuyết mới sẽ đợc đa vào, gây ra cho đờng cong tỷ lệ hỏng hóc trở thành có đầu
nhọn nh trong hình vẽ dới đây. Trớc khi đờng cong đó có thể trở về tỷ lệ hỏng hóc ổn định ban
đầu thì một thay đổi khác lại đ
ợc yêu cầu, lại gây ra đờng cong phát sinh đỉnh nhọn một lần nữa.
Dần dần, mức tỷ lệ hỏng hóc tối thiểu bắt đầu nâng lên- phần mềm bị thoái hoá do sự thay đổi.
ỷ
lệ
hỏn
g
thay
đổi
Đ
ờ
n
g
co
n
g
t
h
ực
tế
Đ
ờ
n
g
co
n
g
lắp ráp lại thành chơng trình mới. 1.2.3. Các thành phần của phần mềm
Phần mềm máy tính (gọi tắt là phần mềm ) là thông tin tồn tại dới 2 dạng cơ sở: thành
phần máy không thực hiện đợc và các thành phần máy thực hiện đợc. ở đây chỉ xét những thành
phần phần mềm trực tiếp đa tới các lệnh máy thực hiện đợc
Mọi thành phần phần mềm đều bao gồm một cấu hình
Thành phần phần mềm đợc tạo ra thông qua một loạt những hoạt động chuyển hoá
(translation) yêu cầu của ngời dùng thành mã máy thực hiện đợc: một mô hình yêu cầu (hay bản
mẫu) dịch thiết kế dịch dạng ngôn ngữ xác định cấu trúc dữ liệu, thuộc tính, thủ tục
phần mềm, các yêu cầu liên quan dịch lệnh mã máy thực hiện đợc
Tính tái dụng là một đặc trng quan trọng của thành phần phần mềm chất lợng cao, tức là
thành phần cần đợc thiết kế và cài đặt sao cho ngời ta có thể dùng lại chúng trong nhiêù chơng
trình khác nhau (th viện chơng trình con mẫu về khoa học)
Chú ý: ngày nay đã mở rộng cách nhìn về việc dùng lại để bao hàm không chỉ các thuật toán
mà còn cả cấu trúc dữ liệu. Ví dụ: các giao diện tơng tác thờng đợc xây dựng bằng cách dùng
các thành phần dùng lại có khả năng tạo ra cửa sổ đồ hoạ, menu kéo xuống và rất nhiều cơ chế
tơng tác. Cấu trúc dữ liệu và chi tiết xử lý cần để xây đựng giao diện đợc đặt bên trong các th
viện các thành phần dùng lại.
Các thành phần phần mềm đợc xây dựng bằng cách nào?
Dùng ngôn ngữ lập trình với vốn từ vựng hạn chế, một văn phạm hoàn toàn xác định rõ cùng
với các quy tắc thành lập chặt chẽ về cú pháp và ngữ nghĩa. Các thuộc tính này là điều chủ chốt
trong việc dịch thành mã máy. Các dạng ngôn ngữ hiện dùng ngày nay là các ngôn ngữ mức máy,
ngôn ngữ cấp cao và ngôn ngữ phi thủ tục.
+Ngôn ngữ mức máy: là một biểu diễn ký hiệu cho tập lệnh của đơn vị xử lý trung tâm
-Nếu phần mềm viết tốt, bảo trì đợc, t liệu tốt ngôn ngữ máy giúp sử dụng bộ
nhớ hiệu quả, tăng đợc tốc độ thực hiện
-Nội dung thông tin nói tới ý nghĩa và hình dạng của thông tin vào và ra
-Tính tất định thông tin nói tới việc tiên đoán trớc trật tự và thời gian của thông tin
Phân loại phần mềm ứng dụng (7 loại):
1. Phần mềm hệ thống:
-Là một tập hợp các chơng trình đợc viết để phục vụ cho các chơng trình khác
-Xử lý cấu trúc thông tin phức tạp nhng xác định (trình biên dịch, trình soạn thảo, tiện ích
quản lý tệp)
-Đặc trng bởi tơng tác chủ yếu với phần cứng máy tính
-Phục vụ nhiều ngời dùng
-Cấu trúc dữ liệu phức tạp và nhiều giao diện ngoài
2. Phần mềm thời gian thực
Phần mềm điều phối hoặc phân tích hoặc kiểm soát các sự kiện thế giới thực ngay khi chúng
xuất hiện đợc gọi là phần mềm thời gian thực.
Phần mềm thời gian thực bao gồm các yếu tố:
-Một thành phần thu thập dữ liệu để thu và định dạng thông tin từ ngoài
-Một thành phần phân tích để biến đổi thông tin theo yêu cầu của ứng dụng
-Một thành phần kiểm soát hoặc đa ra đáp ứng môi trờng ngoài
-Một thành phần điều phối để điều hoà các thành phần khác sao cho có thể duy trì việc đáp
ứng thời gian thực.
Hệ thống thời gian thực phải đáp ứng trong những ràng buộc thời gian chặt chẽ
3.Phần mềm nghiệp vụ
Xử lý thông tin nghiệp vụ là lĩnh vực ứng dụng phần mềm lớn nhất
Các hệ thống rời rạc: hệ thông tin quản lý
Các ứng dụng phần mềm nghiệp vụ còn bao gồm cả tính toán tơng tác (nh xử lý giao tác
cho các điểm bán hàng) ngoài ứng dụng xử lý dữ liệu
-Chứng minh định lý và chơi trò chơi
-Phát triển mạng nơ ron nhân tạo: mô phỏng cấu trúc của việc xử lý trong bộ óc.
1.3. Kỹ nghệ phần mềm
1.3.1. Định nghĩa
Fritz Bauer nêu ra định nghĩa ban đầu về kỹ nghệ phần mềm :
Kỹ nghệ phần mềm là việc thiết lập và sử dụng các nguyên lý công nghệ đúng đắn để thu
đợc phần mềm một cách kinh tế vừa tin cậy vừa làm việc hiệu quả trên các máy thực
Các định nghĩa về sau đều nhấn mạnh vào yêu cầu về một kỷ luật công nghệ trong việc phát
triển phần mềm
Kỹ nghệ phần mềm - sự phát triển của kỹ nghệ phần cứng và hệ thống. Nó bao gồm một tập
các bớc chứa đựng 3 yếu tố chủ chốt:
- Phơng pháp
-Công cụ
-Thủ tục
Các yếu tố này giúp ngời quản lý kiểm soát đợc tiến trình phát triển phần mềm và cung
cấp cho ngời kỹ s phần mềm một nền tảng để xây dựng phần mềm chất lợng cao theo một cách
thức hiệu quả
1.Các phơng pháp (đa ra các "cách làm" về mặt kỹ thuật để xây dựng phần mềm ):
Các phơng pháp bao hàm trong nhiều nhiệm vụ: lập kế hoạch, ớc lợng dự án, phân tích
yêu cầu hệ thống và phần mềm , thiết kế cấu trúc dữ liệu, kiến trúc chơng trình và thủ tục thuật
toán, mã hoá kiểm thử và bảo trì
Các phơng pháp cho kỹ nghệ phần mềm thờng đa ra các ký pháp đồ hoạ hay hớng ngôn
ngữ đặc biệt, đa ra một tập các tiêu chuẩn về chất lợng sản phẩm phần mềm.
2.Các công cụ (cung cấp sự hỗ trợ tự động hay bán tự động cho từng phơng pháp):
Khi các công cụ đợc tích hợp đến mức các thông tin do chúng tạo ra có thể đợc dùng cho
các công cụ khác thì hệ thống hỗ trợ cho việc phát triển phần mềm đã đợc thiết lập và còn đợc gọi
mô hình thác nớc sau:
1.Kỹ nghệ và phân tích hệ thống
K
ỹ
n
g
hệ hệ
thốn
g
Phân tích &
đ
ị
nh rõ
y
êu cầu
Thiết kế hệ thống
&
p
hần mềm
Mã hoá
Kiểm thử đơn vị, tích
h
ợp
& h
ệ
thốn
-Lập t liệu thiết kế (một phần của cấu hình phần mềm )
4.Mã hoá
-Dịch thiết kế thành dạng mã máy đọc đợc
5. Kiểm thử
-Việc kiểm thử bắt đầu sau khi đã sinh ra mã
-Tiến trình kiểm thử tập trung vào phần logic bên trong chơng trình đảm bảo tất cả các câu
lệnh đều đợc kiểm thử. Về phần chức năng bên ngoài thì đảm bảo rằng việc kiểm thử phát hiện ra
lỗi và đảm bảo những cái vào xác định sẽ tạo ra kết quả thực tế thống nhất với kết quả muốn có.
6.Bảo trì
Phần mềm chắc chắn có những thay đổi sau khi đợc bàn giao cho khách hàng (trừ phần
mềm nhúng)
Do lỗi hoặc thích ứng với thay đổi trong môi trờng bên ngoài (hệ điều hành mới, thiết bị
ngoại vi mới) hoặc yêu cầu nâng cao chức năng hay hiệu năng bảo trì
Bảo trì áp dụng lại các bớc vòng đời cho chơng trình hiện tại ( không phải mới)
Nhận xét
:
-Vòng đời cổ điển là khuôn cảnh cũ nhất và đợc sử dụng rộng rãi nhất cho kỹ nghệ phần
mềm
-Các dự án thực hiếm khi tuân theo dòng chảy tuần tự. Việc lập bao giờ cũng xuất hiện và
gây ra các vấn đề khi áp dụng khuôn cảnh này
-Khách hàng khó phát biểu hết yêu cầu tờng minh của dự án dễ có bất trắc
-Khách hàng phải kiên nhẫn. ở cuối thời gian dự án mới có bản chơng trình làm việc đợc.
Nếu chơng trình gặp lỗi thảm hoạ
-Có vị trí quan trọng và xác định trong công việc và kỹ nghệ phần mềm: đa ra các phơng
pháp khoa học, đa ra các bớc tổng quát áp dụng đợc cho mọi khuôn cảnh kỹ nghệ phần mềm
còn là mô hình thủ tục đợc sử dụng rộng rãi
định các yêu cầu nào đã biết, miền nào cần khảo sát thêm. Rồi đến việc thiết kế nhanh. Thiết kế
nhanh tập trung vào việc biểu diễn các khía cạnh của phần mềm thấy đợc đối với ngời dùng (cách
đa vào và định dạng đa ra). Thiết kế nhanh xây dựng một bản mẫu ngời dùng đánh giá
làm mịn các yêu cầu cho phần mềm. Tiến trình lặp đi lặp lại xảy ra để cho bản mẫu đợc vi chỉnh
thoả mãn yêu cầu của khách, đồng thời giúp ngời phát triển hiểu kỹ hơn cần phải thực hiện nhu cầu
nào.
Tậ
p
hợ
p
y
êu
cầu và làm
mịn xác định
mục tiêu tổng
thể, khảo sát
thêm để định rõ
yêu cầu
thiết kế
nhanh
(input,
output)
Xâ
y
dựn
g
bản mãu
Đánh
4. Đánh giá của khách hàng: khẳng định kết quả của kỹ nghệ
-Với mỗi lần lặp xung quanh xoắn ốc (bắt đầu từ tâm), xác định thêm các phiên bản đợc
hoàn thiện dần. Nếu phân tích rủi ro chỉ ra rằng không chắc chắn trong các yêu cầu thì việc làm bản
mẫu có thể đợc sử dụng trong góc phần t kỹ nghệ; các mô hình và các mô phỏng khác cũng đợc
dùng để làm rõ hơn vấn đề và làm mịn yêu cầu
Khách đa ra những gợi ý thay đổivòng xoáy mới. Tại mỗi vòng xung quanh xoắn ốc, cao
điểm của việc phân tích rủi ro là quyết định tiến hành hay không tiến hành. Nếu rủi ro quá lớn thì
có thể đình chỉ dự án
Mọi mạch đi xung quanh xoắn ốc đều đòi hỏi kỹ nghệ (góc đông-nam) có thể đợc thực
hiện bằng cách tiếp cận vòng đời và làm bản mẫu. Tất nhiên số các hoạt động phát triển phải tăng
lên khi hoạt động chuyển xa hơn ra khỏi trung tâm vòng xoáy ốc
Nhận xét:
-Khuôn cảnh mô hình xoắn ốc đối với kỹ nghệ phần mềm hiện tại là cách tiếp cận thực tế
nhất đến việc phát triển cho các hệ thống và phần mềm quy mô lớn. Trong đó ngời ta dùng cách
làm bản mẫu nh một cơ chế làm giảm bớt rủi ro.
-Mô hình này tơng đối mới và còn cha đợc sử dụng rộng rãi nh vòng đời/ làm bản mẫu
yêu cầu ban
đầu
bản mẫu ban đầu
bản mẫu tiếp theo
đánh giá
của khách
hàng
kế hoạch
dựa trên ý
kiến của
khách hàn
g
p
hân tích rủi ro dựa
trên phản ứng của
khách hàng
Quyết định có tiếp
tục hay không ?
(cao điểm của việc
phân tích rủi ro)
Hớng tới hệ thống
hoàn chỉnh
Kỹ nghệ phần mềm
________________________________________________________________________
Nhận xét:
-Việc dùng khuôn cảnh 4GT còn nhiều tranh cãi:
+Ngời ủng hộ: cho rằng 4GT làm giảm đáng kể thời gian phát triển phần mềm, tăng hiệu
suất của ngời phát triển phần mềm
+Ngời phản đối: cho rằng 4GT không phải tất cả đều dễ dàng hơn các ngôn ngữ lập trình,
các chơng trình gốc do các công cụ này tạo ra là không hiệu quả và rằng việc bảo trì các hệ
thống phần mềm lớn hơn đợc phát triển bằng cách dùng 4GT sẽ sinh ra nhiều vấn đề mới.
-Đối với CSDL lớn, 4GT chỉ mới giới hạn vào các ứng dụng hệ thông tin nghiệp vụ, đặc biệt, việc
phân tích thông tin và làm báo cáo (nhân tố chủ chốt cho các CSDL lớn).
-Đối với ứng dụng vừa và nhỏ
, thời gian thu thập dữ liệu sơ bộ cần để tạo phần mềm đợc giảm
đáng kể. Khối lợng thiết kế cho các ứng dụng nhỏ
cũng đợc rút bớt
-Để phát triển phần mềm lớn
đòi hỏi tập trung nhiều vào phân tích, thiết kế và kiểm thử để đạt tới
việc tiết kiệm thời gian là chủ yếu.
Tậ
p
hợ
p
Sơ đồ tổ hợp các khuôn cảnh
Trong mọi trờng hợp, công việc bắt đầu: xác định mục tiêu, phơng án, ràng buộc (thu thập
yêu cầu sơ bộ). Từ điểm này, bất kỳ một con đờng nào rẽ nhánh đều có thể chọn. Ví dụ: đờng bên
trái (vòng đời cổ điển). Nếu yêu cầu còn cha đợc chắc chắn thì có thể sử dụng bản mẫu để xác
định yêu cầu đầy đủ hơn.
Bằng cách dùng bản mẫu nh một bản hớng dẫn, ngời phát triển có thể trở lại vòng đời cổ
điển (thiết kế, mã hoá, kiểm thử). Theo một cách khác, bản mẫu có thể tiến hoá thành hệ thống sản
xuất, quay trở về khuôn cảnh vòng đời để kiểm thử.
ệ
4
Tập hợp các yêu cầu ban đầu
(xác định các mục tiêu, các
phơng án, các ràng buộc)
phân tích yêu cầu
làm b ản mẫu
4GT
Mô hình xoáy ốc
thiết kế
Mã hoá
Kiểm chứng
4GT
Bản mẫu:
vòng thứ n
4GT
Mô hình:
vòng thứ n
hệ thốn
g
hoạt độn
g
Bảo trì
Kỹ nghệ phần mềm
________________________________________________________________________
_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
Các phơng pháp thay đổi tuỳ theo khuôn cảnh kỹ nghệ phần mềm (hay tổ hợp các khuôn
cảnh) đợc áp dụng, song tối thiểu cần có 3 bớc riêng dới dạng:
- Phân tích hệ thống :
Đã đợc mô tả trong vòng đời cổ điển
Xác định vai trò của từng phần tử trong hệ thống dựa trên máy tính
Vạch ra vai trò mà phần mềm giữ
- Lập kế hoạch dự án phần mềm :
Xác định nhiệm vụ, công việc
Lập lịch
- Phân tích yêu cầu :
Xác định phạm vi cho phần mềm
Xác định chi tiết lĩnh vực thông tin và chức năng phần mềm phải đảm nhận trớc khi
sang giai đoạn phát triển.
Hệ thống máy tính bao gồm 3 phần:
1. Các máy tính: máy chủ, máy trạm, máy đơn lẻ, các trang thiết bị mạng, hỗ trợ mạng và truyền thông
2. phần mềm hệ thống : hệ điều hành mạng, trạm, các chơng trình dịch, các ngôn ngữ lập trình, các hệ quản trị dữ
liệu
3. Các phần mềm ứng dụng: giải quyết một lớp bài toán cụ thể nào đó
+Các bớc tổng quát cần thực hiện :
Kỹ nghệ phần mềm
________________________________________________________________________
_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
mở rộng để trở thành đặc tả phần mềm
-Xây dựng bản mẫu phần mềm + khách đánh giá củng cố yêu cầu / giới hạn tài
nguyên dịch thành các đặc trng thiết kế phần mềm
+Phân tích tổng thể phần mềm xác định ra những tiêu chuẩn hợp lệ phục vụ kế hoạch
kiểm thử tỏ rằng các yêu cầu đợc đáp ứng
+ Do cả ngời xây dựng phần mềm lẫn khách hàng tiến hành
.Bản đặc tả yêu cầu phần mềm :
-là tài liệu bàn giao, đợc tạo ra do kết quả của bớc phân tích yêu cầu và xác định
phần mềm
-thể hiện đỉnh điểm kết quả cuộc họp xét duyệt kỹ thuật giữa khách hàng và ngời
phát triển phần mềm
Kế hoạch dự án phần mềm
-Hình thành khi các yêu cầu (chấp nhận đợc) đã đợc xác định
-Là cơ sở để đánh giá lại tính đúng đắn
-Là tài liệu bàn giao của giai đoạn xác định cho giai đoạn tiếp theo 1.4.2. Giai đoạn phát triển
chức năn
g
p
hần mềm
lập kế
hoạch dự
án phần
mềm
_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
18
+Tập trung vào thế nào?
Khi xác định, ngời phát triển phần mềm cố gắng xác định cách cấu trúc dữ liệu và
kiến trúc phần mềm cần đợc thiết kế, cách các chi tiết thủ tục đợc cài đặt, cách dịch thiết kế thành
ngôn ngữ lập trình, cách thực hiện kiểm thử
+ Phơng pháp áp dụng: thay đổi nhng có 3 bớc đặc thù bao giờ cũng xuất hiện dới dạng:
1.Thiết kế phần mềm: thiết kế việc chuyển hoá các yêu cầu về phần mềm tập các
biểu diễn (dựa trên đồ hoạ, bảng, hay ngôn ngữ)
+mô tả cấu trúc dữ liệu , +kiến trúc phần mềm
+mô tả thủ tục thuật toán, +đặc trng giao diện
2.Mã hoá: các biểu diễn thiết kế dịch thành 1 ngôn ngữ nhân tạo kết quả là các
lệnh thực hiện đợc trên máy tính
3.Kiểm thử phần mềm : phát hiện khiếm khuyết khi vận hành, trong logic và trong
cài đặt
+Các bớc tổng quát cần đợc thực hiện :
Đây là giai đoạn xây dựng hoặc triển khai việc chuyển hoá các yêu cầu thành phần tử
hệ thống vận hành mà ta quen gọi là phần mềm
Kỹ nghệ phần mềm
________________________________________________________________________
_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
19
-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 cha)
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 nhng 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ậ
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
(đơn vị,
tích hợp
và hợp lệ)
Gỡ lỗi
p
há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ân
g
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ơn
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
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
2 December, 2008