ROGER S. PRESSMAN
KĨ NGHỆ PHẻN MỀM
CÁCH TIẾP CẬÌ CllA l ư ò l THỰC H Ẳ l
TẬ P II
Người dịch : NGÔ TRUNG VIỆT
ịTáỉ bán lần thứ nhất)
NHÀ XUẤT BẢN GIÁO DUC
SOFTWARE ENGINEERING
A Practitioner’s Approach
Third Edition
Roger s. Pressman, Ph.D.
McGraw-Hill, Inc.
6T7.3
GD-0!
1536/498 - 00
Mil SỐ: 7H4I2TI
LÒI GIỚI THIỆU
^’n sách "Kỉ nghệ phấn Itìểm, cách tiếp cận của người
thực hành" của Tiến sỉ Roger s. Pressman đă được tái bản lấn
thứ 3 vào nám 1992. So vói lán xuất bản đẩu (1982), sách lấn
tái bản sau cùng đã được hiệu chỉnh bổ sung nhiéu kiến thức
mới, hiện đại của lĩnh vực kỉ nghệ phẩn mểm.
Nội dung của sách phong phú, khá hoàn chỉnh, bao quát háu
hết các vấn đé chính yếu của kl nghệ phấn mém.
Tiến sỉ Pressman không những là một nhà khoa học tên tuổi
có uy tín về các phương pháp, công cụ kỉ nghệ phán mém mà
còn ià một nhà sư phạm nhiẽu kinh nghiệm. Các nội dung đã
được tác già trình bày một cách hệ thống, cd tính khoa học và
sư phạm cao.
Chính vi lẽ đd, sách có thể phục vụ thích hợp sát thực đông
đảo bạn đọc. Đây là một tài liệu quý, giúp các giáo viên Đại
học có thể tham khảo để biên soạn các giáo trỉnh giảng dạy một
loạt các chuyên để bậc Đại học và sau Đại học về kỉ nghệ phán
mém. Sinh viên, học viên cao học, các chuyên gia phát triển
phẩn mém cđ thể tỉm thấy trong sách nhiéu kiến thức cơ bản,
chuẩn mực giúp họ nám vững các nội dung đang được giảng
dạy tại các trường Đại học. Các câu hỏi cuối mỗi chương được
soạn khá công phu, giúp người đọc tự kiểm tra kỉến thức của
niỉnh, qua đó giúp họ hệ thống hda một cách toàn diện, củng
có và nâng cao hiểu biết sâu sác hơn về kỉ nghệ phấn mểm.
Hiện nay số lượng giáo trỉnh cd chất lượng cao phục vụ sát
thực chuyên ngành Công nghệ thông tin tại các trường Đại học
eòn rất hiếm hoi. Bản dịch là một đdng góp cd giá trị gdp phắn
vào sự nghiệp đào tạo cán bộ Công nghệ thông tin.
Xin được giới thiệu với đông đào bạn đọc.
IIỒ s i ĐẰM
KHOA CỎNC; NOHỆ T ì ỉ i m ; TIN
ĐẠI ÍỈỌC Q l ỉ ố c GIA IIÀ NỘI
3
Kf NGHỆ PHẦN MỀM
Cách tiếp cận của người thực hành
Tảc giả : Tiến sỉ Roger
s.
Pressman
Nhà xuất bản : McGraw-Hill, Inc.
Xuất bàn lấn thứ 3 cd sửa chữa và
bổ
sung : 1982, 1987, 1992.
”Roger Pressman đá viét một cuốn sách hướng dán toàn diện
và nhát quán vè linh vực kỉ nghệ phần mềm cho cả sinh viên
CNTT lăn người làm phần mềm vầ các nhà quản Ỉỉ hành ngh^
CNTT hay càn tới việc thực hành CNTT,"
Phần m ém ÍK KK
”Đâỵ là cuốn sách giáo khoa hiện đại kính điển, rõ ràn£ uở
sâu sắc về kỉ nghệ phản mềm, vối rát nhiều tranh vẽy cău hỡi
và tài liệu tham khảo.., Tôi xin giói thiệu nó cho bát k ì ai
muốn hỏi : Kỉ nghệ phàn mèm là gì và bây giờ nó dang ớ đ&u
AC M C'omputing Reviews
”Một bản mới nhất, một xù lí sảu sấc v'ê tiến trình ki nghé
phàn mèm."
B y ic lkx>k C lub
LÒI TÁC GIẤ
Trong hai thập kỉ qua, kỉ nghệ phần mém đã đi tới một kỉ
nguyên mới. Ngày nay người ta thừa nhận nó là một bộ môn
chính thống, một lỉnh vực nghiên cứu xứng đáng, một khảo cứu
ti mỉ và một lỉnh vực tranh luận sôi nổi. Trong toàn bộ ngành
công nghiệp, "kỉ sư phẩn mém" đả thay thế cho "người lập trình”
xem như một tên gọi công việc. Các phương pháp, thủ tục và
công cụ ki nghệ phấn mém đă được chấp nhận và ứng dụng thành
công trong rất nhiểu lỉnh vực ứng dụng công nghiệp. Các nhà
quản lí và người hành nghể CNTT đểu nhận ra nhu cấu về một
cách tiếp cận có nguyên tác hơn tới việc phát triển phẩn mém.
Nhưng các vấn để được thào luận trong các lấn xuất bàn
thứ nhất và thứ hai của cuốn sách này vản còn lại với chúng
ta. Nhiểu cá nhân và công ti vẫn còn phát triển phẩn mểm
một cách tùy tiện. Nhiểu nhà chuyên môn và sinh viên vản còn
chưa biết tới các phương pháp hiện đại. Và kết quà là chất
lượng phấn mểm mà chúng ta sàn xuất ra bị ảnh hưởng. Bên
cạnh đó, các cuộc tranh luận vể bản chất thực của cách tiếp
cận kỉ nghệ phấn mém vẫn tiếp tục. Kỉ nghệ phần mém vẫn
nằm trong tình trạng nghiên cứu trái ngược nhau. Cđ những
quan điểm được thay đổi, có những tiến bộ nhất định nhưng
còn rất nhiéu việc phải làm để đạt được độ chín muồi của
ĩầguyên tác tiếp cận.
Lấn xuất bản thứ ba của cuốn Kỉ nghệ phàn mèm : Cách
tiếp cận cùa người thực hànỉi giống như hai lấn đầu dự định
dành cho cả sinh viên lản những người hành nghể CNTT và
vẫn duy trì định dạng cùng phong cách như các lán trước,
(ịuyển sách vẫn như một tài liệu hướng dẫn cho các nhà chuyên
niỏn cõng nghiệp và sách nhập niốn nâng cao cho sinh
viên các
nám cuối bậc đại học và
nám đấu bậc cao học.
Giống như các lán xuất bản trước, các phương pháp kỉ nghệ
phấn mềm đươc trỉnh bày theo trinh tự thời gian chúng được
áp dụng trong khi phát triển phấn mềm. Tuy nhiên lấn xuát
bản thứ ba này còn làm nhiéu điéu hơn là việc chỉ cập nhật
đơn thuấn. Quyển sách đã được cấu trúc lại để thích hợp với
sự phát triển vượt bậc trong lỉnh vực này và để nhấn mạnh
vào những phương pháp và công cụ kỉ nghệ phẩn mém quan
trọng. Thay vì duy trì một quan điểm vòng đời chật chẽ, lấn
xuất bản này trinh bày các hoạt động tổng quát đă được thực
hiện bất kể tới mô hlnh kỉ nghệ phẩn mém đâ được chọn.
Các chương vẫn còn được giữ lại như các lấn xuất bản trước
thì cũng được chỉnh lí và cập nhật để phản ánh khuynh hướng
và kỉ thuật hiện thời. Nhiéu mục mới chủ chốt đâ được thêm
vào cho các chương vể kỉ nghệ hệ thống máy tính, cơ bản vé
phân tích yêu cấu, thiết kế hướng dòng dữ liệu, thiết kế hướng sự
vật, thiết kế thời gian thực, đàm bảo chất lượng phấn mém, kỉ
thuật kỉểm thử phẩn mém và bảo trì. Bên cạnh những cải biên
này, tám chương mới đă được thêm vào cho lán xuất bản thứ ba.
Chương nguyên gốc ban đẩu vễ quản lí dự án phần mém đã
được bỏ đi và thay thế bởi ba chương mới vé cách đo, ước lượng
và lập kế hoạch dự án phán mểm. Một chương mối vế phân
tích cò cẩu trúc trinh bày các kí pháp và cách tiếp cận tới cả
những ứng dụng qui ước lản thời gian thực. Chương vé phân
tích hướng sự vật và mô hình hóa dữ liệu nêu ra cách xử lí
chi tiết cho các kỉ thuật mô hình hóa mới và quan trọng này.
Nảm chương hiện cd vé thiết kế phần mềm đã được tảng
cường thêm với một chương mới vể thiết kế giao diện người
dùng. Quản lí cău hình phần mém - một chủ đề đã trở thành
th en ch ố t cho việc p h át tr iể n phần m ém th àn h côn g
bây giờ
được xử lí trong một chương tách biệt. Vai trò của tự động hóa
trong kỉ nghệ phấn mểtti được xem xét trong hai chương mới
vé kỉ nghệ phần mém cd máy tính trợ giúp (CASE). Một chương
nhán mạnh vào cổng cụ phán mém và ứng dụng của chúng còn
chương kia thảo luận vé các môi trường và kho CASE tích hợp.
Chương cuối (cũng mới) hướng tới thế kỉ hai mốt và xem xét
lại những thay đổi sẽ ảnh hưởng tới cách tiếp cận của chúng
ta tớl kỉ nghệ phấn mém.
6
Nhiéu thí dụ, vấn đé và điểm cấn đào sâu mới đả được bổ
sung và cập nhật cho mọi chương.
Cuón sách gốm 24 chương cho lán xuất bản thứ ba này, được
chia thành nâm phẩn. Điểu này được thực hiện để gói gọn các
chủ đé và trợ giúp cho giảng viên, những người không cd đủ
thời gian dạy cà cuốn sách trong một học kỉ. Phấn I - "Phẩn
mém - Tiến trình và việc quản lí ntí” trình bày một bàn luận
thấu đáo vé các vấn đế quản lí dự án phẩn mểm. Phấn II "Phân tích hệ thống và các yêu cấu phần mém" - bao gổm nảm
chương bao quát các vấn đé cơ bàn của phân tích và các phương
pháp mô hình hóa yêu cáu và kí pháp. Phấn III - "Thiết kế
và cài đặt phẩn mém" - trình bày một bàn luận sâu sác vê
thiết kế 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 iượng cao và các phương pháp thiết
kế để dịch một mô hình phân tích thành giải pháp phần mém.
Phán IV - "Đảm bào, kiểm chứng và duy trì tính toàn vẹn
phán méni" - 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 trinh kỉ nghệ phần mém.
Phấn V - "Vai trò của tự động hóa" - thảo luận vé tác động
của CASE (kỉ nghệ phấn mềm với máy tính hỗ trợ) lên tiến
trỉnh phát triển phẩn mểm.
Việc tổ chức theo nám phấn của lẩn xuất bản thứ ba này
giúp cho giảng viên "gộp chùm” các chủ đé dựa trên thời gian
giảng dạy và nhu cấu của sinh viên. Cd thể xảy dựng một giáo
trinh toàn bộ cho một học phán xung quanh một hay nhiểu
phấn trong nãm phấn này. Chẳng hạn, "giáo trình thiết kế^ cđ
th ể nhấn mạnh riêng vào phấn III ; "giáo trình phương pháp"
có thể trinh bày các chương được tuyển lựa từ các phấn II,
III, IV và V ; còn "giáo trình quản H" sẽ nhấn mạnh vào các
phấn I và IV. Bằng cách tổ chức lấn xuất bản thứ ba theo cách
mày, tôi có V định cu n g cấp cho các giản g viên m ột số p hư ơng
íán lựa chọn g iả n g dạy.
Sách Hướng dân giảng viên cho lấn xuất bản thứ ba của
íruôn Kỉ nghê phân mèm : Cách tiếp cận của người thực hành
củng đă có do nhà xuăt bản McGraw-Hill cung cấp. Sách Hướng
cdàn giáng viên trình bàv các gợi ý để thực hiện nhiéu kiểụ
7
giảo trình kì nghệ phắn mểm, hướng dẫn nhiéu khuyến cáo cho
các dự án phẩn niềm có liên quan tới một giáo trình, trinh bày
các giải pháp cho vấn đề được tuyển lựa và các nguổn tham
khào tới các tài liệu giàng dạy bổ sung, để tạo nên một "hệ
thống" cho việc giảng dạy kỉ nghệ phấn mểm.
Vân đàn kỉ nghệ phán mềm vẫn tiếp tục rộng mở vói một
tỉ lệ bùng nổ. Một lần nữa, tôi xin cám ơn nhiéu tác giả sách,
báo, tạp chí, những người đã cung cấp cho tôi cái nhìn sáng
suốt, các ý tường mới và những bình luận trong suốt thập kỉ
qua. Nhiểu người đă được nêu trích dản trong các chương sách.
Tất cả đểu có công do sự đóng góp của họ vào lỉnh vực tiến
triển nhanh chdng này. T5i cũng muốn cám ơn những người
đã đọc duyệt lại cho lần xuất bản thứ ba, James Cross, Đại
học Auburn ; Mahesh Dodavi, Đại học Iowa ; William s. Junk,
Đại học Idaho ; và Laurie Werth, Đại học Texas. Những đóng
gdp và phê bỉnh của họ là vô giá.
Nội dung của lần xuất bản thứ ba này của cuốn Ki nghệ
phàn mèm : Cách tiếp cận cùa người thực hành đã được ỉàm
sắc nét thêm bởi hàng trâm nhà chuyên môn công nghiệp, giáo
sư đại học và sinh viên, nhừng người đã dùng nhừng lấn xuất
bàn thứ nhất và thứ hai của cuốn sách này và đá bỏ thời gian
để trao đổi các gợi ý, phê bình và ý tưởng của họ. Bên cạnh
đó tôi cũng xin cám ơn riêng với nhiều khách hàng công nghiệp
trong toàn Bác MI và châu Âu, những người chác chán đă dạy
cho tôi nhiéu hơn những gỉ tôi có thể dạy cho họ.
Cuối cùng, tôi xin cám ơn Barbara, Mathew và Michael vỉ
đã dung thứ cho lịch biểu du hành của tôi, đả hiểu biết vé
những tối làni việc tại ván phòng và vản còn tiếp tục cổ vũ
tôi cho việc xuất bản tiếp vé "cuốn sách này”.
k ( k ; i<:k s . p r k s s m a n
8
THIẾT KẾ VÀ CÀI ĐẶT
PHẨN MỀM
■
l l r
i L , _______
*
NỀN TẢNG THIẾT KẾ PHẦN MỀM
Thiết kế là bước đầu tiên trong giai đoạn phát triển cho bất kì sản
phẩm hay hệ thống công nghệ nào. Nó có thể được định nghĩa là:
tiên rành áp dụng nhiều kĩ thuật và nguyên lí với mục đích xức (íịnh
ra một thiết hị, một tiến trình hay một hệ rhống đủ chi tiết icíế cho
phép thực hiện nó về mặt vật //.”
Mục tiêu thiết kế là để tạo ra một mô hình hay biểu diễn ciủa một
thực thể mà sau này sẽ được xây dựng. Tiến trình phát triển mtô hình
này tổ hợp trực giác và đánh giá dựa trên kinh nghiệm trong viiệc xây
dựng các thực thể iư(Jng lự, một tập các nguyên lí và/hoặc cấc trực
cảm hưi3fng dẫn cách tiến triển mô hình này, một tập các tiêu chuẩn
để có thể đánh giá chất lượng, và một tiến trình lặp lại để cuối cùng
dẫn ttì biểu diễn thiết kế chung cuộc.
Thiết kế phần mồm máy tính, giống như cách liếp cận t h i i í i k í
công nghệ trong các lĩnh vực khác, liên tục thay đổi khi các pihưtrnị:
pháp mứi, cách phùn tích lốt hm» vh hiòu biết rộng hơn liên hi rí ICn.
Khỏng eiống như thiết kế cư khí hay điộn tử. Ihiốl kố phán mềrni có I f
ngay giai đoạn lưitng đối sớm trong sự tiốn hoá cùa IIÓ. Chíiiiị: la đ;ì
nôu ý tưởng nghiỏm chinh vé Ihiối kố phần mồm (như cái đôi I.ập với
10
“lập trình” hay “viết mã”) chí ít thì cũng đã hơn ba thập kỉ nay. Do
đổ, phUítng pháp luận thiết kế phần mểm thiếu độ sâu, sự mềm dẻo và
bản :hất định tính mà thông thường có gắn với nhiểu bộ môn thiết kế
kĩ nghệ cổ điển. Tuy nhiên, các kĩ thuật cho thiết kế phần mềm thì đã
có, Iiôu chuẩn vổ chất lượng thiết kế cũng có sẵn, và chúng ta có thể
áp ding được kí pháp Ihiết k ế .
Chương này trình bày các khái niệm cơ bản áp dụng được cho
tnọi thiết kế phần mềm. Các chưcTng 11 cho tới 15 xem xét nhiều
phương pháp thiết kế phần mềm.
10.1
THIẾT K Ế PHẦN MẩM VÀ KĨ NGHỀ PHẨN MỂM
Thiết kế phần mềm nằm ở trung tâm kĩ thuật của tiến trình kĩ
nghé phần mém và được áp dụng bất kể tới khuôn cảnh phát triển
được sử dụng. Một khi các yêu cầu phần mềm đã được phân tích và
đặc tả Ihì thiết kế phần mềm là một trong ba hoạt động kĩ thuật thiếìkế. lập trình và kiểm thừ - những hoạt động cần để xây dựng và
kiểrn chứng phần mổm. Từng hoạt động này biến đổi thồng tin theo
cácl- cuối cùng tạo ra phần mềm máy tính h(Ịfp lệ.
Luồng thông tin trong giai đoạn kĩ thuật này của tiến trình kĩ
nghé phần mém được minh hoạ trong Hình 10.1. Các yêu cầu phần
inén, được biểu thị bởi các mô hình thông tin, chức năng và hành vi,
là d i vào cho bước thiết kế. Bằng việc sử dụng mộl trong một số
ph ưếng pháp thiết kế (được thảo luận Irong các chư(Tng sau), bước
ihiiếi kế tạo ra thiết kế dữ liệu, thiết kế kiến trúc và thiết kế thủ tục.
Thiià kê dữ liệu chuyển mồ hình lĩnh vực thông tin đã được tạo ra
trorụ bước phân tích thành các cấu trúc dữ liệu sẽ cần cho viộc cài
(lậu )hần mứm. Thiết k ế kiến trúc định nghĩa ra mối quan hô giữa các
thiàrh phần cấu trúc chính của chưítng trình. Thiết k ế thủ tục biến đổi
aíic thành phán cấu trúc thành mô tà thù lục của phần mém. Chưtmg
irìinằ gốc được.sinh l a rỏi viộc kiổm Ihứ được Ihực hiện để tích hi/ị) và
làimhcíỊ) lọ phần mổm.
11
Mô hinh
chức năng
Mô hinh
thông tin
Mô hinh
hành vi
Thiết kế dữ liệu
Thiết kê'
kiến trúc
Cãc yêu cấu
khác
Thiết kê'
thủ tục
Mô đun
chương trinh
Phấn mểm
đâ tích hợp
và kiểm thử
Hình 10.1 Thiết kế phần mểm và kĩ nghệ phẩn mềm
Thiết kế, lập trình và kiểm thử chiếm đến 75 phần trăm hay hơn
cùa chi phí kĩ nghộ phần mềm (Irừ bảo trì). Chính tại các bước này
mà chúng ta quyết định rằng sự thành công cùa việc cài dặt phần
mổm sẽ bị ảnh hưởng, và điều quan trọng là làm dễ dàng cho việc bảo
trì phần mồm. Những quyết định này được thực hiộn trong thiốt kế
phần mém, làm cho nó thành bước thử nghiiỊm Irona eiai doạn phát
triển.
12
Tầm quan trọng của thiết kế phần mém cổ thể được phát biểu
bằng một từ - chất lượng. Thiếl kế là n(ti chất lưítng được nuôi dưỡng
irone việc phái triổn phần mổm. Thiết kế cung cấp cho ta cách biổu
diổn phần mồm cổ thể được xác nhận vể chất lưtmg. Thiết kế là cách
duy nhất mà chúng la có thể dịch một cách chính xác các yôu cầu của
khách hàng ihành sản phẩm hay hệ thống phần mồm cuối cùng. Thiết
kế phần mổm phục vụ như một nồn tảng (Hình 10.2) cho mọi bước kĩ
nghỏ phần mồm và bảo trì phần mồm sau đổ. Không có thiết kế, ta có
nguy cơ dựng nôn một hệ thống không ổn định - một hệ thống sẽ thất
bại khi có một thay đổi nhỏ; một hệ thông cổ thể khó mà thử được;
mộl hộ thống mà neưíM ta khônc Ihể nào xác nhận được chất lưi;mg
chừng nào chưa đến cuối liến trình kiôm thử. khi thCti eian CÒII rất
Iigản và nhiều tiồn đã phải chi ra.
'niBíiýi'H
1
.
Có thiết kê
Không thiết kê
Hinh 10.2 Tẩm quan trọng của thiết kế
13
10.2
TIẾN TRÌNH THIẾT K Ể
Thiết kế phần mềm là một tiến trình qua dó các yôu cầu ilược
dịch thành một biổu diẻn phần mém. Ban đầu biểu diỗn mô là cho
quan điểm toàn hộ vồ phần mềm. Việc làm mịn tiếp sau dẫn tới một
biểu diỗn Ihiếl kế rất gần với chưiíng trình gốc.
Theo quan diổm quản lí dự án, ihiết kế phần mềm được tiến hành
theo hai bước. Thiết k ế sơ hộ quan tâm tới việc dịch các yỏu cầu
thành kiến Irúc dữ liệu và phần mồm. Thiết k ế chi tiết tập trung vào
việc làm mịn biổu diỗn kiến Irúc để dẫn uíri cấu trúc dữ liệu chi tiết và
biểu diễn thuật toán cho phần mổm.
Trong phạm vi thiêì kế sư bộ và chi tiết, có xuất hiện một số hoạt
động thiết kế khác nhau. Bôn cạnh việc thiết kế dữ liệu, kiến trúc và
thủ tục, nhiéu ứng dụne hiện đại có hoạt độnt: thiết k ế giao diện phân
biệt. Thiết kế giao diện lập ra cách bô trí và C(T chế tưimg lác cho
tưcTng lác người - máy. Mối quan hệ giữa các khía cạnh kĩ Ihuậl và
quản lí của thiết kế được minh hoạ trong Hình 10.3.
Khía cạnh
quản lí
Thiết kế dữ liệu
Khía cạnh ^
kĩ thuât
Thiết kê t hú tục
Thiết kê giao diện
Hình 10.3 Quan hệ gữa khía cạnh kĩ thuật và quản II của thiết kế
14
ỈO.2.1 Thiết kế và chất lượng phần mềm
Trong toàn bộ tiến Irình thiết kế, chất lượngcủa thiết kế tiến hoá
đưực khẳng định bằng mội loạt các cuộc họp xét duyệt kĩ thuật chính
thức, được mô tả trong Chưcíng 17. Để đánh giá chất lưímg cua một
biểu diỗn thiết kế, chúng ta phải Ihiết lập các tiôu chuẩn cho thiết kế
tốt. Phần cuối chưctng này chúng ta sẽ mô tả chi tiết các tiồu chuẩn
thiết kế. Hiện tại, chúng ta đưa ra các hưórng dẫn sau:
1. Thiết kế nôn nôu ra cách tổ chức theo cấp bậc đổ dùng cách kiểm
soát ihông minh trong số các thành phần phần mém.
2. Thiết kế nôn theo các mô đun; tức là phần mổm nên được phân
hoạch một cách logic thành các thành phần thực hiện những chức
năng và chức năng con xác định.
3. Thiết kế nên chứa cách biểu diễn phân biệt và tách biệt giữa dữ
liệu và thủ tục.
4. Thiếl kế nên dẫn tóri các mô đun (như chương tnnh con hay thủ
tục) nôu ra các đặc trưng chức năng đặc biệt.
5. Thiếl kế nên dẫn tới giao diện làm rút gọn độ phức tạp của việc
nối ghép giữa các mô đun và với mòi trưímg bốn ngoài.
6. Thiết kế nồn được hưcíìig theo cách dùng một phưưng pháp lặp lại
được điểu khiổn bới thông tin có trong phân tích các yêu cầu phần
mồm.
Các đặc trưng trôn của một thiết kế tôì không thể có được bởi sự
may mắn. Tiến trình thiết kế kĩ nghệ phần mểm cổ vũ cho thiết kế tốt
thôing qua việc áp dụng các neuyôn lí thiết kế cơ bản, phưtmg pháp
luậ.n hộ ihống và viôc íiuyỌt xó) thấu đáo.
15
10.2.2 Tiến huá của thiết kê phần mềm
Tiến hoá của thiíl kế phần niổm là một tiến liình liỏn lục đã trải
qua ba thập kỉ vừa qua. Công trình thiết kế ban đầu tập trung vào các
tiôu chuẩn đổ phái Iriổn các chưtmg trình kiểu mô đun và các phưímg
pháp làm mịn kiến trúc phần mổm theo cách thức lừ trôn xuống. Các
khía cạnh ihủ tục của định nghía thiết kế đã tiến hoá thành một triết lí
gọi là l(fp trinh có cấu trúc. Công trình về sau đã đề nghị các phưtTng
pháp để dịch từ luổng dữ liệu hay cấu trúc dữ liệu thành một định
nghĩa Ihiết kế. Các cách tiếp cận mứi h(m đổ nehị vổ tiếp cận hướng
sự vật tới việc suy dẫn ra thiết kế.
Nhiéu phương pháp thiết kế, phát triển từ những cỏng trình đã
đưực nôu trỏn, hiộn đang được áp dụng cho loàn bộ ngành cỏng
nghiệp. Giống như các phưítng pháp phân tích đã được trình bày
trong các chương trưtk', mỗi phươnc pháp thiết kế phẩn mềm đổu đưa
vào nhữrm cách trực cảm và kí pháp duy nhất, cũng như một cách
nhìn thiổn cận thế nào đó vé cái gì đặc Irưng cho chất lưííng thiếl kế.
Ây vậy mà mỏi mội phưcrng pháp này (được mô tả chi tiết trong các
Chưttng 11 đến 15) đều có một số đặc trưng chunu: (1) một cư chế để
dịch từ bidu diễn miển thông lin thành biểu diỗn thiết kế, (2) mộl kí
pháp đổ bidu diỗn các thành phần chức nãng và giao diện của chúng,
(3) cách trực cảm đổ làm mịn và phân hoạch, và (4) các hưứng dẫn vổ
định giá chất lượng.
Bất kể phưimg pháp luận Ihiếl kế nào đưực dùng, người kT sư
phần mẻm phải áp dụne một lập các khái niộm nổn tảng cho Ihiếl kế
dữ liệu, kiến trúc và thủ tục. Từng khái niệm này được xem xét trtnig
các mục sau đây.
10.3
NÉN TẢNG THlẾT KẺ
Tập h(Tp các khái nitỉm thiốt kế nén làng dã liốn hoá qua ba lhậ|)
ki. Mặc dầu mức độ quan tâm trong từng khái niộm này có thay đổi
16
qua nhiểu năm, nhưng chúng đã đímg vũíig qua thử thách của thời
gian. Mỏi khái niệm đều cung cấp cho người thiết kế phẩn mểm một
nền tảng để lừ đó người ta có thể áp dụng nhiều phương pháp thiết kế
phức tạp. Mỗi khái niệm đềũ giúp ngưềrt kĩ sư phần mểtn trả lời cho
các câu hỏi sau:
•
Có thể dùng tiêu chuẩn nào để phân hoạch phần mềm thành các
thành phần riêng lẻ?
•
Làm sao phân tách chức năng hay cấu trúc dữ liệu khỏi biểu diễn
quan niộm của phần mểm?
•
Liệu có những tiốu chuẩn thống nhất để xác định chất lưcmg kĩ
thuật của thiết kế phần mềm không?
M. A. Jackson có lần đã nói: “Cái bắt đầu của sự khôn ngoan đối
với người lập trình [kĩ sư phần mểm] là việc thừa nhận sự khác biệt
giữa bắt đầu làm chương trình và hiểu vấn để một cách đúng đắn.”
Các khái niệm thiết kế phần mềm nền tảng cung cấp một khuôn khổ
cần thiết để “hiểu vấn đề một cách đúng đắn.”
10.3.1 Trừu tưcmg
Khi chúng ta xem xél một giải pháp mô đun cho bất kì vấn đề
nào, có ihể đậl ra nhiổu mức âộ trừit tượng. Tại mức trừu tượng cao
nhất, một giải pháp được phát biểu theo thuật ngữ đại thể bằng cách
dùng ngôn ngữ của môi trường vấn đề. Tại mức trừu tượng thấp hơn,
người ta lấy khuynh hướng thủ tục nhiều hơn. Thuật ngữ hướng vấn
ctó thường đi đôi Vííti thuật ngữ hướng cài đặt Irong một nổ lực để phát
biểu ra giải pháp. Cuối cùng, tại mức trừu tượng thấp nhất, giải pháp
dưực phái hiểu theo cách có thổ được cài đặl trực tiếp. Waserman nêu
ra một dịnh nghĩa có ích;
Khái iiiỌiTi làm lí về "trừu Wcnig” cho phép người ta tập trung vào vấn
ử niức lổng quát nào (ló không xét tới cac chi
ni ĩiết
tiet mức
miK.' thấp
tnap không
icnong liên
iiẽn
can: \ ìỌc dùnjỉ Irừii lượng h»á cũng cho phép nguời
làm việc với kháỉiỉỉỆtnL,
rời la làm
kháỉ iỉỉỆtnL,
■
J > í.íẢi
: c GìA ìHá
wổ!
■^ *>
-
K2~KNPMT2
và thuật ngO quen thuộc trong môi trường vắùi dổ mà không phải biên đổi
chúng thành một cấu trúc ichổng quen thuộc...
Mỗi bước trong tiến trình kĩ nghệ phần mểm đều là sự làm mịn
cho một mức trừu tượng của giải pháp phần mềm. Trong kĩ nghệ hệ
thống, phần mềm được dùng như một phần tử của hệ thống dựa trên
máy tính. Trong phân tích các yêu cầu phần mểm, giải pháp phần
mểm được phát biểu dưói dạng “đó là cái quen thuộc trong môi
trường vấn đề.” Khi chúng ta chuyển từ thiết kế sơ bộ sang thiết kế
chi tiết thì mức độ trừu tượng được rút lại. Cuối cùng, ta đi tới mức
trừu tượng thấp nhất khi sinh ra chương trình gốc.
Khi chúng ta chuyển qua các mức trừu tượng khác nhau, chúng
ta làm việc để tạo ra các trim tượng thủ tục và dữ liệu. Trìùi tượng thủ
tục là một dãy các lệnh có tên, có một chức năng xác định và giới
hạn. Một thí dụ vể trừu tượng thù tục là từ “đi vào” cửa. “Đi vào” kéo
theo mộl dãy dài các bước thủ tục (như bước tới cửa, lại gần và nắm
lấy quả đấm, xoay quả đấm cửa và kéo cửa ra, bước vào cửa mở
v.v...). Trừu tượng dữ liệu là một tập hợp các dữ liệu có tên mô tả cho
một sự vật dữ liệu (chương 8). Thí dụ vé trừu tưcỊTng dữ liệu là “séc
thanh toán.” Đối tượng dữ liệu này thực chất là một lập hợp nhiéu
mẩu thông tin khác nhau (như tên người thanh toán, số tiền thanh
toán, tiền thuế, FICA, V.V..) Vậy chúng ta có thể tham khảo tới mọi
dữ liệu bằng cách nói tên của trừu tượng dữ liệu.
Để minh hoạ cho phần mềm được xác định bởi ba mức trừu
tượng thù tục, chúng ta xét vấn để sau; Phái triển phần mềm thực hiện
tất cả các chức năng liên quan tới hệ thống làm bản vẽ hai chiều cho
ứng dụng thiết kế có trợ giúp máy tính mức thấp (CAD).
T rừ u tượng I. Phần mềm sẽ được tổ hợp vào trong giao diện đồ
hoạ máy tính làm cho việc trao đổi trực quan với người vẽ S(t đố thiết
kế thành khả hiện, chuột sẽ thay thế cho bàn vẽ và ô ke. Mọi viộc vẽ
đường thẳng và đường cong, mọi íính toán hình hục, mọi cách xét
theo bộ phận và phụ sè do phần mềm CAD thực hiện... Các đưìmg vẽ
18
sỗ được lưu trữ trong một tệp đ ư ^ g vẽ bao gồm mọi thông tin hình
học, văn bản và các thông tin phụ.
Tại mức này của trừu tượng, người ta phát biểu giải pháp dưới
dạng môi trường vấn đé.
Trừu tượng II
Phần mểm CAD thực hiện:
''
nhiệm
nhiệm
nhiệm
nhiệm
vụ giao tiếp với người dùng;
vụ tạo đường vẽ 2 chiều;
vụ hiển thị đồ hoạ;
vụ quản lí tệp đường vẽ;
kết thúc ;
Tại mức trừu tượng này, từng nhiệm vụ phần mềm chính được
liên kết với phần mềm CAD đều được ghi ra. Thuật ngữ đã vượt ra
khỏi môi trường vấn đồ nhưng vẫn chưa mang nghĩa cài đặt riêng.
Trừu tưtmg III
procedure: tạo đường vẽ 2-D;
repeat until
nhiệm vụ giao tiếp với bộ số hoá;
xác định yêu cầu vẽ;
line: nhiệm vụ vẽ đường;
circle: nhiệm vụ vẽ đường tròn;
end ;
do while < xuất hiện tương tác bàn phítn>
nhiệm vụ giao tiếp với bàn phím;
chọn phân tích/tính toán:
view: nhiệm vụ xem phụ;
section: nhiệm vụ tạo đường cắt;
19
- Xem thêm -