Qua môn học này sinh viên cócái nhìn khái quát về qui trình phát tri nể ph nầ mềm, hi uể bi tế và thực hi nệ các giaiđoạn trong qui trình trên một ph nầ m mề cụ thể dựa trên những phương
Trang 1LỜI NÓI ĐẦU
Nhập môn Công Nghệ Ph nầ Mềm là môn học nh mằ giúp cho sinh viên có kiến thức cơ bản nh tấ trong lĩnh vực công nghệ phần mềm Qua môn học này sinh viên cócái nhìn khái quát về qui trình phát tri nể ph nầ mềm, hi uể bi tế và thực hi nệ các giaiđoạn trong qui trình trên một ph nầ m mề cụ thể dựa trên những phương pháp, kỹ thuật trong quá trình thu th pậ yêu c u,ầ phân tích, thi tế kế và cài đ t,ặ vi tế sưu li uệ
đã được minh họa cụ thể trong giáo trình Mục tiêu giáo trình là sinh viên có thể hiểu được những yêu c uầ công vi cệ c nầ phải làm ở mỗi giai đoạn của qui trình,
để có thể đảm trách công vi cệ ở một trong các giai đo n làmạ phần m m trongềnhững nhóm d án.ự
Trang 21
Trang 3TÀI I U Ệ THAM KH O Ả
1 Software Engineering
By Nguy n Xuân Huy – Institue of Infoễ rmation Technology
2 Nhập môn công ngh pệ hần mềm
Nguy n Ti n Huy – ĐH Khoa h c T Nhiênễ ế ọ ự
3 A Discipline for Software Engineering
Watts S Humphrey
4 Quá trình phát tri n ể ph n ầ m mề thống nh tấ
Nguy n Tu n Huy biên dễ ấ ịch –Nhà xu t b n th ng kêấ ả ố
5 Analyzing Requriements and Defining Solution Architechtures
Ian Lewis – Bruce Nielson
6 MCSD Analyzing Requirements Study Guide
Tata McGraw-Hill Pusblishing Company Limited
7 Software Engineering
Roger S.PressMan
8 Một s tài lố i u thamệ kh o t internet: Khoa CNTT ả ừ ĐH KHTN, ĐH BKHN, ĐH
C n Tầ hơ, và một s bài báo khoa ố học
- A Summary of Principles for User-Interface Design by Talin
- The Foundation for Verifiable Software Process Improvement
- Lecture Notes: Software Engineering I by Joey Paquet
2
Trang 4Chương 1: TỔNG QUAN V CÔNG Ề NGH Ệ PH N Ầ M M Ề
các nhà chuyên môn trong t ngừ lĩnh v cự chuyên ngành th cự hi nệ tốt nh tấ các thao tác nghiệp
vụ c aủ mình Nhiệm vụ chính y uế c aủ ph nầ mềm là cho phép các nhà chuyên môn th cự hiện các công vi cệ c aủ họ trên máy tính dễ dàng và nhanh chóng h nơ so với khi th cự
hi nệ cùng công vi c đó trong tệ h gế i i ớ th c.ự
Ho tạ đ ngộ c aủ m iọ ph nầ mềm là sự mô ph ngỏ lại các h atọ đ ngộ c aủ thế gi iớ th cự trong m tộ góc độ thu h pẹ nào đó trên máy tính Quá trình sử d ngụ m tộ ph nầ m mề chính là quá trình người dùng th cự hi nệ các công vi cệ trên máy tính để hoàn t tấ m tộ công vi cệ tương đương trong th gế i i ớ th c.ự
L pớ ph nầ m mề là hệ th ngố các ph nầ mềm trên cùng lĩnh v cự h atọ đ ngộ nào đó
Do cùng lĩnh v cự h atọ đ ngộ nên các ph nầ mềm này thường có c uấ trúc và ch cứ năng (công vi c ệ mà người dùng th cự hi nệ trên máy tính) tương tự nhau Mục tiêu c aủ ngành công nghệ phần mềm là hướng đ nế không nh ngữ xây d ngự được các ph nầ mềm có
ch tấ lượng mà còn cho phép xây d ngự dễ dàng m tộ ph nầ m mề m iớ từ các ph nầ m mề đã
Trang 53
Trang 68 Qu n lý thuê baoả đi n, đi nệ ệ tho i, nạ ước, …
9 Cho mượn sách, truy n, phiệ m, …
B ng 1.1 ả : Các ph n ầ m m và ề l p ớ ph n m m ầ ề tương ng ứ
1.1.2 Phân loại
Ph nầ mềm h th ng là nh ng ph nệ ố ữ ầ mềm đảm nh n công vậ iệc tích h p và đi uợ ề khi nể các thiết bị ph nầ c ngứ đ ngồ th iờ t oạ ra môi trường thu nậ lợi để các ph nầ m mề khác và người s d ngử ụ có thể thao tác trên đó như m tộ kh iố th ngố nh tấ mà không c nầ
ph iả quan tâm đến những chi ti tế kỹ thu tậ ph cứ tạp bên dưới như cách th cứ trao đổi dữ
li uệ gi aữ bộ nhớ chính và đĩa, cách hi nể th văn b n lên ị ả màn hình,
a) Thành phần giao ti p ế (giao di n) ệ
Cho phép ti pế nh nậ các yêu c uầ về vi cệ mu nố th cự hi nệ và cung c pấ các dữ li uệ ngu n liên ồ quan đ n ế công việc đó ho c ặ t ừ các thiết b ị thu th p ậ d ữ li u ệ (cân, đo nhi t ệ đ , ộ t ế bào quang h c, …)ọ
Cho phép trình bày các k tế quả c aủ vi cệ th cự hiện các yêu cầu cho người dùng (k tế quả
c aủ công vi cệ khi th cự hi nệ trên máy tính) hoặc đi uề khi nể h atọ đ ngộ các thi tế bị đi uề khiển
(đóng m ở c a, b t ử ậ mở máy…)
Trang 74
Trang 8M tộ cách tổng quát thành ph nầ giao ti pế là hệ th ngố các hàm chuyên về vi cệ
Cho phép lưu trữ l iạ (hàm ghi) các k tế quả đã xử lý (vi cệ mượn sách đã được
ki mể tra h pợ l ,ệ bảng lương tháng đã được tính) trên bộ nhớ phụ v iớ tổ ch cứ l uư trữ được xác định trước (t p tin có c u trúc, t p tin nh phân, c sậ ấ ậ ị ơ ở d lữ i u).ệ
Cho phép truy xu tấ lại (hàm đ c)ọ các dữ li uệ đã l uư trữ ph cụ vụ cho các hàm xử
50 h c sinh, …)ọ
Ti nế hành xử lý cho ra k tế quả mong đ iợ theo quy định tính toán có s nẵ trong thế giới th cự (quy tắc tính ti nề ph tạ khi trả sách tr ,ễ quy t cắ tính tiền đi n,ệ quy t cắ trả góp khi mua nhà…) ho cặ theo thuật gi iả t đ xuự ề ất (x pế th i khóa bi u tờ ể ự đ ng, nén nh…)ộ ả
Vi c ệ x ử lý d a ự trên dữ li u ệ ngu n ồ t ừ người s ử d ng ụ cung c p ấ (tính nghi mệ phương trình b cậ 2 d aự trên các hệ số đã nhập) ho cặ dữ li uệ l uư trữ đã có s nẵ (tính t nồ kho tháng dựa trên các phi uế nh pậ xu tấ đã l uư tr …)ữ ho cặ cả hai (tính tiền ph tạ d aự trên ngày trả sách được nh pậ vào và thông tin về lo iạ sách đã được l uư tr …)ữ tùy vào xử lý cụ
th ể Tương t ,ự vi cệ xử
lý cho ra kết quả có thể dùng để xu tấ cho người dùng xem qua thành ph nầ giao diện (trình bày nghiệm, xu tấ ti nề ph t),ạ hay cùng có thể l uư trữ lại qua thành ph nầ dữ lịêu (sổ sách hiện đang được mượn c aủ m t đ c gi …) ho c c ộ ộ ả ặ ả hai (b ng lả ương, b ng t nả ồ kho…)
M tộ cách tổng quát, thành ph nầ xử lý là hệ thống các hàm chuyên về xử lý tính toán,
Trang 9bi nế đ iổ dữ li u.ệ Các hàm này sẽ dùng dữ li uệ ngu nồ từ các hàm trong thành ph nầ giao diện
5
Trang 10(hàm nh p)ậ hay thành ph nầ dữ li uệ (hàm đ cọ dữ li u)ệ ki mể tra tính h pợ lệ (hàm ki mể tra) và sau đó ti nế hành xử lý (hàm xử lý) n uế c nầ thiết để cho ra k tế quả mà sẽ được trình bày cho người dùng xem qua các hàm trong thành ph nầ giao di nệ (hàm xu t)ấ hoặc
l uư trữ l iạ qua các hàm trong thành ph n d lầ ữ i u (hàmệ ghi)
STT Thành ph nầ Hàm Ý nghĩa Ghi chú
1 Thành ph nầ giao di nệ
Hàm nh pậHàm xuất
Nh p yêu cậ ầu,
d lữ i uệ nguồn Xu tấ
k t qu đã xế ả ử lý
C n xácầđịnh hình
th cứ
nh p/xuậ ất
và t ch cổ ứ
d lữ i uệ tương ngứ
2 Thành ph nầ
x lýử
Hàm kiểm tra
Hàm xửlý
Ki mể tra tính
h p l c aợ ệ ủ
d ữ li u.ệ
X lý tínhửtoán, phát sinh, bi n ế đổi trên d li uữ ệ
S d ngử ụ hàm nh p,ậ hàm đ c.ọ
S d ngử ụ hàm nh p,ậ hàm đ c,ọ hàm xu t,ấ hàm ghi
3 Thành ph nầ
d lữ i uệ
Hàm đ cọHàm ghi
Đ c d lọ ữ i uệ
t b nh phừ ộ ớ ụ vào b nhộ ớ chính
Ghi d lữ i uệ
t b nhừ ộ ớ chính vào bộ
nh phớ ụ
C n xácầđịnh cáchh
Trang 116
Trang 12chương trình c n ầ ph i ả th c ự hi n ệ được trong c ả nh ng ữ trường h p ợ mà d ữ li u ệ đ uầ vào là không h p ợ l ệ
Ví d , ụ n u ế m t ộ trong s ố các ch c ứ năng c a ủ ph n ầ mềm là s p ắ x p ế m t ộ t p ậ tin
có số
lượng m u ẫ tin tùy ý theo m tộ c tộ tùy ý theo chi uề tăng hoặc gi mả thì nh ngữ trường h pợ sau
là vi ph mạ tính đúng đ n c a chắ ủ ương trình:
Không th th c hi n để ự ệ ược (treo máy) khi t p tin ậ r ng (không có ỗ m u tin nào).ẫ
Không thể th cự hi nệ ho cặ th cự hi nệ nh ngư cho k tế quả sai khi các m u ẫ tin có
h nơ
100 c t ho c có quá nhộ ặ iều m u tin.ẫ
Không thể th cự hi nệ ho cặ cho k tế quả sai khi các cột có chi uề dài l nớ h nơ 125
bytes
Không th s p x p theo chi u ể ắ ế ề tăng d n….ầ
Tính đúng đ n c a ắ ủ m t s n ph mộ ả ẩ phần mềm được xác minh qua các căn c sau đây:ứ
Tính đúng đ n c a thuắ ủ ật toán
Tính tương đương c aủ chương trình v iớ thuật toán Thu tậ toán có thể đúng
nh ng chư ương trình l pậ ra không tương đương v i thuớ ật toán nên khi th cự hi nệ
S n ph mả ẩ có th ể m r ng, tăng cở ộ ường v ề m t ch c năng ặ ứ m tộ cách d dàng.ễ
1.2.3 Tính hi u ệ quả
Tính hi u qệ u c a ả ủ m t s n ph mộ ả ẩ phần mềm được xác định qua các tiêu chu n sau:ẩ
Hi u qu kinh t ho c ý nghệ ả ế ặ ĩa, giá tr thu đị ược do áp d ng s nụ ả ph mẩ đó
Trang 13 T cố độ xử lý c aủ ph nầ mềm (v) tính b ngằ tỉ lệ gi aữ kh iố lượng đ iố tượ c nng ầ
ph i ả x lý (ử m) và t ng thổ ời gian (t) c n thầ i t đ x lý các đ i tế ể ử ố ượng đó
7
Trang 14 S d ng t i u tài nguyên c a ử ụ ố ư ủ máy tính (CPU, bộ nh …)ớ
1.2.4 Tính ti n ệ dụng
S n ph mả ẩ ph i tính đ nả ế nh ng y u t tâmữ ế ố lý sau đây c a ngủ ười dùng:
D h c, có giao dễ ọ i nệ tr c quan ự t nhiên.ự
Đến nh ngữ năm 1960, trãi qua 10 năm phát tri n s lể ố ượng các ph nầ mềm đã tăng lên rất nhi uề và được ngứ d ngụ r ngộ rãi trong nhi uề lĩnh v c.ự Vào th iờ đi mể này phát sinh m tộ
- Có quá nhiều khuy t điế ểm trong các ph n ầ mềm được dùng trong xã hội
o Th c hi n không đúng yêu c u (tính toán sai, không n đự ệ ầ ổ ịnh…)
o Th i gian bờ ảo trì, nâng c p quá lâu, ấ t n chi phí cao, hi u quố ệ ả th p.ấ
Trang 158
Trang 16- Vi c tăng vệ ọt c a sủ ố lượng ph n ầ mềm là đi u hề ợp lý và đi u này s còn tề ẽ i p di n.ế ễ
- Các khuy tế đi mể c aủ ph nầ mềm có ngu nồ g cố chính từ phương pháp, cách th cứ tiến hành xây d ng ph n ự ầ mềm:
o Cảm tính: m i ngỗ ười theo m t phộ ương pháp riêng
o Thô s ,ơ đ nơ gi n:ả chỉ tập trung vào vi cệ l pậ trình mà ít quan tâm đ nế các công vi cệ c nầ làm khác trước khi l pậ trình (kh oả sát hi nệ tr ng,ạ phân tích yêu
c u,ầ thiết k …).ế
o Th công: công c h tủ ụ ỗ r chính khi xây ợ d ng ph n ự ầ mềm ch là trình biên ỉ dịch
V iớ các k t ế lu nậ như trên, h iộ nghị đã đề xu tấ khai sinh m tộ ngành khoa h cọ m i:ớ Công nghệ ph nầ mềm v iớ nhi mệ vụ chính là nghiên c uứ về các phương pháp ti nế hành xây dựng ph n ầ mềm
Do quá trình ti nế hóa c aủ ngành công nghệ ph nầ mềm nên khái ni mệ về nó cũng thay
đ iổ theo thời gian H nơ n aữ do đây là m tộ lĩnh v cự m iớ nên các khái niệm v nẫ còn phụ thu cộ
r t nhi u vào quan đi m ch quan cẩ ề ể ủ ủa t ng ngừ ười khác nhau C th nh sau:ụ ể ư
- Bauer[1969]: 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.ự
- Ghezzi[1991]: là m tộ lĩnh v cự c aủ khoa h cọ máy tính liên quan đ nế vi cệ xây dựng các ph n ầ m mề v a l n v a ph c t p b i ừ ớ ừ ứ ạ ở m t hay ộ m t s nhóm k s ộ ố ỹ ư
- IEEE[1993]:
Trang 179
Trang 181 Vi c ệ áp d ng ụ phương pháp ti p ế c n ậ có h ệ th ng, ố bài b n ả và
đư c ợ lượng hóa trong phát triển, v n hành và b o tậ ả rì ph n ầ mềm
2 Nghiên c u các phứ ương pháp ti pế cận được dùng trong (1)
- Sommervile[1995]: là lĩnh v c ự liên quan đ n ế lý thuy t, ế phương pháp và công cụ
dùng cho phát tri n ph n ể ầ mềm
- Kawamura[1995]: là lĩnh v cự h cọ v nấ về các kỹ thu t,ậ phương pháp lu nậ công ngh h c ệ ọ (lý lu n ậ và k ỹ thu t ậ được hi n ệ th c ự hóa trên các nguyên lý, nguyên t c ắ xác định) trong toàn bộ quy trình phát tri nể ph nầ mềm nhằm nâng cao cả chất và lượng c a s n xuủ ả ất ph n ầ mềm
- Pressman[1995]: là bộ môn tích hợp cả qui trình, các phươ pháp, các công cụ đểngphát tri n pể h n ầ mềm máy tính
Có thể định nghĩa tóm t tắ về công nghệ ph nầ m mề như sau: Công nghệ ph nầ mềm là m t ộ nghành khoa h c ọ nghiên c u ứ v ề việc xây d ng ự các ph n ầ mềm có chất lượng trong kho ng th i gian và chi phí ả ờ h p lý.ợ
M c tiêu nghiên c u đụ ứ ược chia thành 2 ph n rõ nét:ầ
1 Xây d ng ph n ự ầ mềm có ch t lấ ượng
2 Xây d ng ph n ự ầ mềm trong th i gian và chi phí ờ h p lý.ợ
1.3.3 Đối t ượ nghiên c u ng ứ
Hướng đ nế vi cệ xây dựng các ph nầ mềm có ch tấ lượng như đã nêu, ngành công ngh ph n ệ ầ mềm đ a ư ra 3 đ i ố tượng nghiên c u ứ chính: Qui trình công ngh ,ệ Phương pháp phát tri n, Công c và ể ụ môi trường phát tri n ph n ể ầ m m.ề
- Qui trình công nghệ ph nầ mềm: Hệ th ngố các giai đo nạ mà quá trình phát tri nể ph nầ mềm ph iả trải qua V iớ m iỗ giai đo nạ c nầ xác định rõ m cụ tiêu, kết quả nh nậ từ giai
đo nạ trước
đó cũng chính là k t qế u chuy n giao cho giai ả ể đo n k t tiạ ế ếp
- Phương pháp phát tri nể ph nầ mềm: Hệ th ngố các hướng d nẫ cho phép t ngừ bước thực hi n ệ m t giai đo n nào ộ ạ đó trong qui trình công ngh ph n ệ ầ mềm
- Công cụ và môi trường phát tri nể ph nầ mềm: Hệ th ngố các ph nầ mềm trợ giúp chính trong lĩnh v cự xây d ngự ph nầ mềm Các ph nầ m mề này sẽ hỗ trợ các chuyên viên tin h c trong ọ các bước xây d ng ự ph n ầ m m ề theo m t ộ phương pháp nào đó
v i ớ m t ộ qui trình được ch n tọ rước
Trang 1910
Trang 20Nói cách khác, chu kỳ s ngố c aủ m tộ ph nầ mềm là kho ngả th iờ gian mà trong đó một
s nả ph mẩ ph nầ mềm được phát triển, sử d ngụ và mở r ngộ cho đ nế khi s nả ph mẩ ph nầ mềm
đó không còn được s d ng n a.ử ụ ữ
Chu kỳ sống c aủ ph nầ mềm được phân chia được phân chia thành các pha chính như: xác định, phát tri n,ể kiểm th ,ử b oả trì (v nậ hành) Ph mạ vi và thứ tự các pha khác nhau tùy theo t ng mô hình c từ ụ h ể
2.1 Các b ướ c b c ơ ản trong xây dựng phần m m ề
2.1.1 Xác định
Đây là bước hình thành bài toán hoặc đề tài Ở bước này thiết kế trưởng ho cặ phân tích viên hệ th ngố ph iả biết được vai trò c aủ ph nầ m mề c nầ phát tri nể trong hệ th ng,ốđồng thời ph i ả ước lượng công việc, l p ậ lịch bi u và phân công công vể i c.ệ
Bên c nhạ đó chúng ta ph iả bi tế người đ tặ hàng mu nố gì Các yêu c uầ c nầ ph iả được thu th pậ đ yầ đủ và được phân tích theo chi uề ngang (r ng)ộ và chi uề d cọ (sâu) Công cụ
sử dụng chủ y uế ở giai đo nạ này là các lược đ ,ồ sơ đồ ph nả ánh rõ các thành ph nầ c aủ
hệ th ngố và m i liên quan gi a chúng v i nhau.ố ữ ớ
2.1.2 Phát tri n ể
D aự vào các n iộ dung đã xác định được, nhóm phát tri nể ph nầ mềm dùng ngôn ngữ đặc
t hình th cả ứ (d a trên các ki n trúc toán h c) ho c phi hình th c (t a ngôn ng t nhự ế ọ ặ ứ ự ữ ự iên)
ho c ặ k t h p c ế ợ ả hai đ ể mô t nh ng y u t sau đây cả ữ ế ố ủa chương trình:
Giá trị nh p, giá trậ ị xuất
Các phép bi n đế ổi
Các yêu c uầ c n đ t đầ ạ ượ ở m i đi mc ỗ ể c a chủ ương trình
Ph nầ đ cặ tả chỉ quan tâm chủ y uế đ nế giá trị vào, ra chứ không quan tâm đ nế c uấ trúc
và n i dung các thao tác c n th c hiộ ầ ự ện
Trang 2111
Trang 22Sau bước thi tế kế là bước tri nể khai các đ cặ tả chương trình thành m tộ s nả ph mẩ phần mềm d aự trên m tộ ngôn ngữ l pậ trình cụ th ể Trong giai đo nạ này các l pậ trình viên sẽ ti n hành cài đế ặt các thao tác c n thầ i t đế ể th c hi n đự ệ úng các yêu c u đã đầ ược đ cặ
t ả
Công vi c ệ cu i ố cùng của giai đo n ạ phát tri n ể là chúng ta c n ầ ph i ả chứng minh tính đúng đ nắ của chương trình sau khi đã ti nế hành cài đặt Tuy nhiên thông thường ở bước này chúng ta coi các chương trình như nh ngữ h pộ đen V nấ đề đ tặ ra là xây d ngự m tộ cách có ch đíchủ các t pậ dữ li uệ nh pậ khác nhau để giao cho chương trình
th cự hi nệ r iồ d aự vào k tế qu thu đả ược để đánh giá chương trình Công vi c ệ nh trênưđược g i là ọ ki mể th chử ương trình
Công vi c kệ i mể th nhử ằm vào các m c tiêu sau:ụ
Ki mể tra để phát hi nệ l iỗ c aủ chương trình L uư ý r ngằ kiểm thử không đ mả
b o tuy tả ệ đ iố tính đúng đ nắ c aủ chương trình do b nả ch tấ quy n pạ không hoàn toàn c a cách làm.ủ
Ki mể tra tính n đổ ịnh, hi u qu cũngệ ả nh kh năng t i đa cư ả ố ủa chương trình.Tùy theo m cụ đích mà người ta thi tế kế các tập dữ li uệ thử sao cho có thể phủ h tế các trường h pợ c n quan tâm.ầ
2.1.3 Bảo trì (Vận hành)
Công vi cệ qu nả lý vi cệ tri nể khai và sử d ngụ ph nầ mềm cũng là m tộ v nấ đề c nầ
đư c ợ quan tâm trong qui trình phát tri nể ph nầ mềm Trong quá trình xây d ngự ph nầ mềm, toàn b cácộ k tế qu ph nả ầ tích, thi tế k ,ế cài đặt và hồ sơ liên quan c n ph iầ ả được lưu trữ và quản lý c n ẩ th nậ nh mằ đ mả b oả cho công vi cệ được ti nế hành m tộ cách
hi uệ quả nh tấ và phục vụ cho công vi c bệ ảo trì ph n ầ m mề v sau.ề
Như v yậ công vi cệ quản lý không chỉ d ngừ lại trong quá trình xây d ngự ph nầ mềm
mà trái lại còn ph i đả ược tiến hành liên t c trong suụ ốt quá trình s ng c a nó.ố ủ
2.2 Một s mô ố hình tri n ể khai xây d ng ph ự ần m m ề
Có nhi uề mô hình c nậ khác nhau để tri nể khai các bước cơ b nả trong quá trình phát tri nể ph nầ mềm M iỗ mô hình s ẽ chia vòng đ iờ của ph nầ mềm theo m tộ cách khác nhau nh mằ đảm b oả qui trình phát tri nể ph nầ mềm sẽ d nẫ đ nế thành công Trong
ph nầ ti pế theo c aủ giáo trình chúng ta sẽ tìm hi uể qua các mô hình phát triển ph nầ mềm tiêu bi uể nh tấ đang được áp d ng.ụ
Trang 2312
Trang 242.2.1 Mô hình thác nước:
Mô hình thác nước là m t ộ trong nh ng ữ mô hình đ u ầ tiên và ph ổ bi n ế được
áp d ng trongụ quá trình phát triển ph nầ mềm Mô hình này chia quá trình phát tri nể ph nầ mềm thành nh ngữ giai đo nạ tu nầ tự n iố ti pế nhau M iỗ giai đo nạ sẽ có m tộ m cụ đích
nh tấ định K tế qu cuả ả giai đoạn trước sẽ là thông tin đ uầ vào cho giai đo nạ tiếp theo sau Tùy theo qui mô của ph n ầ mềm c n phát tri n ầ ể mà mô hình thác nước s có nh ngẽ ữ
bi n th khác nhau nế ể h sau:ư
Qui trình 2 giai đo n:ạ Là qui trình đ nơ gi nả nhất Theo qui trình này vi cệ phát triển
ph n ầ mềm ch trãi qua 2 giai đoỉ ạn:
o Xác định yêu c u:ầ Được ti nế hành ngay khi có nhu c uầ về vi cệ xây d ngự
o L p trình (cài đ t): ậ ặ Đư c ti n hành ngay sau khi k t thúc vợ ế ế iệc xác định yêu c u.ầ
- M c tiêu: ụ T o l p ph nạ ậ ầ mềm mong mu n theo yêu c u.ố ầ
- K t qu nhế ả ận: Danh sách các yêu cầu cùng các thông tin có liên quan
- K tế quả chuy nể giao: Chương trình ngu nồ c aủ ph nầ mềm v iớ c uấ trúc
cơ s d ở ữ li u ệ tương ng ứ (n u ế c n ầ thiết) và chương trình th c ự hi nệ được trên máy tính (chương trình nguồn đã được biên dịch)
Qui trình 3 giai đo n:ạ Là qui trình c iả ti nế c aủ qui trình 2 giai đo nạ bằng cách bổ sung thêm m t gộ iai đo n trung gian ạ m i gi a xác đớ ữ ịnh yêu c u và ầ l p trình (có s a đậ ử ổi)
o Xác định yêu c u: ầ được ti n ế hành ngay khi có nhu c u ầ v ề vi c ệ xây dựng
Trang 2513
Trang 26- M cụ tiêu: Mô tả các thành ph nầ c aủ ph nầ mềm (mô hình c aủ ph nầ mềm) trước khi ti n hành cài đế ặt.
- K t qu nhế ả ận: Danh sách các yêu cầu và thông tin liên quan
o L p trình (cài đ t): ậ ặ Đư c ti n hành ngay sau khi k t thúc vợ ế ế iệc thiết k ế
- M c tiêu: ụ T o l p ph nạ ậ ầ mềm theo yêu c u.ầ
- K t qu nhế ả ận: Mô hình ph n ầ mềm
- K tế quả chuy nể giao: Chương trình ngu nồ c aủ ph nầ mềm v iớ c uấ trúc
cơ s d ở ữ li u ệ tương ng ứ (n u ế c n ầ thiết) và chương trình th c ự hi nệ được trên máy tính (chương trình nguồn đã được biên dịch)
Qui trình 4 giai đo n:ạ Là qui trình c iả ti nế c aủ qui trình phía trước b ngằ cách bổ sung thêm m t gộ iai đo n ạ m i gi a xác đớ ữ ịnh yêu c u và thiầ ết k (có ế s a đử ổi)
o Xác định yêu c u:ầ Được ti nế hành ngay khi có nhu c uầ về vi cệ xây d ngự
o Phân tích: được ti n hành ngay sau khi ế k tế thúc vi c xác ệ định yêu c u.ầ
- M c ụ tiêu: Mô t ả l i ạ th ế gi i ớ th c ự thông qua các mô hình (mô hình thế
gi i ớ th c) tự rước khi thi t kế ế
- K t qu nhế ả ận: Danh sách các yêu cầu cùng các thông tin có liên quan
Trang 2714
Trang 28 Các mô hình khác (không gian, thời gian, con người…) n u ế c n thầ iết.
o Thi t kế ế: Được ti n hành ngay sau khi ế k t thúc vế i c phân tích.ệ
- M cụ tiêu: Mô tả các thành ph nầ c aủ ph nầ mềm (mô hình c aủ ph nầ mềm) trước khi ti n hành cài đế ặt
o L p trình (cài đ t): ậ ặ Đư c ti n hành ngay sau khi k t thúc vợ ế ế iệc thiết k ế
- M c tiêu: ụ T o l p ph nạ ậ ầ mềm theo yêu c uầ
- K t qu nhế ả ận: Mô hình ph n ầ mềm
- K tế quả chuy nể giao: Chương trình ngu nồ c aủ ph nầ mềm v iớ c uấ trúc
cơ s d ở ữ li u ệ tương ng ứ (n u ế c n ầ thiết) và chương trình th c ự hi nệ được trên máy tính (chương trình nguồn đã được biên dịch)
Qui trình 5 giai đo n:ạ Là qui trình c iả ti nế c aủ qui trình phía trước b ngằ cách bổ sung thêm m tộ giai đo nạ m iớ sau giai đo nạ l pậ trình nh mằ tăng cường độ tin c yậ
o Phân tích: được ti n hành ngay sau khi ế k tế thúc vi c xác ệ định yêu c u.ầ
- M c ụ tiêu: Mô t ả l i ạ th ế gi i ớ th c ự thông qua các mô hình (mô hình thế
gi i ớ th c) tự rước khi thi t kế ế
- K t qu nhế ả ận: Danh sách các yêu cầu cùng các thông tin có liên quan
- K t qu chế ả uy n giao:ể
Trang 2915
Trang 30 Mô hình xử lý (hệ th ngố các công vi cệ trong thế gi iớ th cự cùng với quan h giệ ữa chúng)
Mô hình dữ li uệ (hệ thống các loại thông tin được sử d ngụ trong thế
gi iớ th c cự ùng v i quan h gi a chớ ệ ữ úng)
Các mô hình khác (không gian, thời gian, con người…) n u ế c n thầ iết
o Thi t kế ế: Được ti n hành ngay sau khi ế k t thúc vế i c phân tích.ệ
- M cụ tiêu: Mô tả các thành ph nầ c aủ ph nầ mềm (mô hình c aủ ph nầ mềm) trước khi ti n hành cài đế ặt
o L p trình (cài đ t): ậ ặ Đư c ti n hành ngay sau khi k t thúc vợ ế ế iệc thiết k ế
- M c tiêu: ụ T o l p ph nạ ậ ầ mềm theo yêu c u.ầ
- K t qu nhế ả ận: Mô hình ph n ầ mềm
- K tế quả chuy nể giao: Chương trình ngu nồ c aủ ph nầ mềm v iớ c uấ trúc
cơ s d ở ữ li u ệ tương ng ứ (n u ế c n ầ thiết) và chương trình th c ự hi nệ được trên máy tính (chương trình nguồn đã được biên dịch)
o Ki mể th :ử Được ti nế hành ngay sau khi đã có k tế quả (từng ph n)ầ của việc lập trình
- M c tiêu: ụ Tăng đ tin ộ c y c a ph nậ ủ ầ mềm
- K t qu nhế ả ận:
Danh sách yêu c u.ầ
Mô hình phần mềm
Ph nầ mềm
- K t qu chế ả uy n giao: Pể h n ầ mềm v i đ tin ớ ộ c yậ cao (đã tìm và s a l i).ử ỗ
o B oả trì: Công vi cệ c aủ giai đo nạ bao g mồ vi cệ cài đ tặ và v nậ hành ph nầ mềm trong th cự tế
- M c tiêu: ụ đ mả b o ph nả ầ mềm v n hành ậ tốt
- K t qu nhế ả ận: ph n ầ mềm đã hoàn thàng
Trang 3116
Trang 32- K tế quả chuy nể giao: các ph nả ánh c aủ khách hàng trong quá trình sử dụng
ph n ầ mềm
Nh n xét: ậ
Mô hình thác nước giúp chúng ta có thể dễ dàng phân chia quá trình xây d ngự
ph n ầ mềm thành nh ngữ giai đo nạ hoàn toàn đ cộ l pậ nhau Tuy nhiên, các dự án l nớ hi mế khi tuân theo dòng ch yả tu nầ tự c aủ mô hình vì thường ph iả l pặ l iạ các bước để nâng cao ch tấ lượng H n n a, khách hàng hơ ữ iếm khi tuyên b h t các ố ế yêu c u trong giai đo nầ ạ phân tích
Mô hình này cũng có m tộ h nạ chế là chúng ta r tấ khó th cự hi nệ các thay đ iổ m tộ khi
đã th cự hi nệ xong m tộ gi iạ đo nạ nào đó Đi uề này làm cho vi cệ xây d ngự ph nầ mềm
r tấ khó thay đ iổ các yêu c uầ theo ý mu nố c aủ khách hàng Do đó, phương pháp này chỉ thích h pợ cho nh ng trữ ường h p ợ mà chúng ta đã hi u r t rõ các yêu c u c a khách hàng.ể ấ ầ ủ
Chú ý: Mô hình thác nước có thể được c iả tiến b ngằ cách cho phép quay lui khi phát
hi n lệ ỗi trong giai đo nạ phía trước
Trang 3317
Trang 34s ự Ngược l iạ cả hai phải quay l iạ giai đo nạ xác định yêu cầu Công vi cệ này được l pặ l iạ liên t c cho đ n khi ngụ ế ười sử d ng đ ng ý v i các ụ ồ ớ bản m u do nhà phát tri nẫ ể đ a ra.ưNhư v yậ đây là m tộ hướng ti pế c nậ t tố khi các yêu c uầ ch aư rõ ràng và khó đánh giá được tính hi uệ quả c aủ các thuật toán Tuy nhiên, mô hình này cũng có nhược điểm
là tính c u trúc không cao do đó khách hàng d ấ ễ m t tin tấ ưởng
2.2.3 Mô hình xoắn ốc
Mô hình này chính là sự k tế h pợ c aủ mô hình b nả m u ẫ thi tế kế và mô hình thác nước được l pặ lại nhi uề l n.ầ Ở l nầ l pặ ti pế theo hệ thống sẽ được tìm hi uể và xây
d ngự hoàn thiện h n l nơ ở ầ lặp trước đó
Ở m iỗ l nầ l pặ các yêu c uầ c aủ người sử d ngụ sẽ được hi uể ngày càng rõ ràng
h nơ và các b nả mẫu ph nầ mềm cũng ngày m tộ hoàn thi nệ h n.ơ Ngoài ra ở cu iố m iỗ
l nầ l pặ sẽ có thêm công đo n phân tích ạ m c đứ ộ r i ro đ quy tủ ể ế định xem có nên đi ti pế theo hướng này nữa hay không
18
Trang 35Mô hình này phù h pv iợ ớ các hệ thống ph nầ mềm l nớ do có khả năng ki mể soát r iủ ro ở
t ngừ bước ti nế hóa Tuy nhiên v nẫ ch aư được sử d ngụ r ngộ rãi như mô hình thác nước hoặc b n ả m u doẫ đòi h i năng l c qu n lý, ỏ ự ả năng l c phân tích r i ro cao.ự ủ
có tính ch tấ như là ngôn ngữ th ngố nh tấ để các thành viên tham gia xây d ngự ph nầ mềm
có thể trao đ i thông tin trong vi c xây ổ ệ d ng ph nự ầ mềm
Trang 3619
Trang 37• Ước lượng r i ro, chi phíủ
• L p và theo dõi ậ k ho chế ạ tri n khai.ểTrong ph nầ ti pế theo của giáo trình này, chúng ta chỉ quan tâm đ nế các phương pháp xây d ng.ự Về phương pháp tổ ch cứ qu nả lý chúng ta có thể tham kh oả trong giáo trình “Quản
lý d án xây d ng các hự ự ệ th ng thông tin”.ố
mu nố c aủ nhà xây d ng ph n ự ầ mềm
b) T d ừ ướ i lên
Ngược l iạ v iớ phương pháp từ trên xu ng,ố phương pháp từ dưới lên là cách gi iả quyết v n đ theo hấ ề ướng t ngổ h p V i phợ ớ ương pháp này, chúng ta ti n hành xây d ngế ự
nh ng thành ph nữ ầ chi tiết, cụ thể mà mà chúng ta dự tính là sẽ có trong hệ th ng.ố Sau
đó, các nhà phát tri nể ph nầ mềm sẽ ti nế hành k tế h pợ các thành ph nầ chi ti tế này lại
v iớ nhau để t oạ nên các thành ph n chính ầ mà h th ng c n ph i có.ệ ố ầ ả
20
Trang 383.2.2 Cách ti n hành ế
a) Ph ươ ng pháp h ướ ng ch c năng ứ
V iớ phương pháp này công vi cệ xây d ngự ph nầ mềm được th cự hi nệ d aự trên các
ch c năngứ mà hệ th ngố c nầ th cự hi n.ệ Hay nói cách khác chúng ta chú tr ngọ đ nế thành
ph nầ xử lý c a h th ng:ủ ệ ố
• Các thao tác tính toán
• Các thao tác phát sinh
• Các thao tác bi n đ i….ế ổ
Phương pháp chung để gi iả quyết v nấ đề là áp d ngụ nguyên lý “chia để trị” Khi
ti n hànhế xây dựng ph nầ mềm theo phương pháp này, chúng ta sẽ chia các công vi cệ lớn mà h ệ th ngố c nầ th cự hi nệ hành các công vi cệ nhỏ h nơ đ cộ l pậ nhau Vi cệ phân chia các công vi c đệ ược ti nế hành cho đ nế khi các công vi cệ thu được đủ nhỏ để chúng
ta có thể ti nế hành xây d ng hoàn chự ỉnh Hình dưới: Minh h a cách tọ i pế c n theo hậ ướng
ch c nứ ăng
Phương pháp hướng ch cứ năng chú tr ngọ đ nế cách để gi iả quy tế v nấ đề nh ngư không
có khả năng che d uấ các thông tin tr ngạ thái của hệ th ng.ố Đi uề này dẫn đ nế vi cệ các
ch c năngứ trong hệ th ngố không tương thích với nhau trong việc th cự hi nệ thay đ iổ các thông tin trong hệ thống Chính vì v yậ mà cách ti pế c nậ này chỉ thích h pợ khi trong hệ thống có r tấ ít thông tin cần ph iả qu nả lý và chia sẻ gi aữ các ch cứ năng v iớ nhau Để mô hình hóa cách xử
lý thông tin trong hệ thống dùng lược đ dòng d lồ ữ i u (Data Flow Diagraệ ms)
DFD là m tộ công cụ đ nơ gi nả và h uữ ích để miêu tả cách th cứ ho tạ đ ngộ c aủ hệ
th ng DFD s d ng các ký hố ử ụ iệu sau để mô t h thả ệ ống:
• Ô vuông có góc tròn được dùng để bi u di n các cể ễ h c năngứ c a h th ng.ủ ệ ố
Trang 3921
Trang 40• Ô vuông dùng đ bi uể ể di n thành pễ h n d lầ ữ i u trong h th ng.ệ ệ ố
• Hình tròn dùng đ bi uể ể di n các thàễ nh ph n bên ngoài có giao tầ i p vế ới hệ th ng.ố
• D uấ mũi tên dùng đ biể ểu di n hễ ướng di chuy nể c a d lủ ữ iệu
• Các t khóa “and” và “or” dùng đ liên k t các dòng ừ ể ế d lữ i u khi c n thi t.ệ ầ ế