Bài giảng Công nghệ Phần mềm - Nguyễn Chánh Thành

pdf 61 trang huongle 4470
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ Phần mềm - Nguyễn Chánh Thành", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_nguyen_chanh_thanh.pdf

Nội dung text: Bài giảng Công nghệ Phần mềm - Nguyễn Chánh Thành

  1. ðI H C K THU T CƠNG NGH Khoa Cơng ngh Thơng tin BÀI GI NG MƠN H C CƠNG NGH PH N M M Biên so n: Nguy n Chánh Thành THÁNG 08 N ĂM 2008
  2. MC L C MC L C I CH ƯƠ NG 1. PH N M M VÀ CƠNG NGH PH N M M 1 1.1. Tng quan v khái ni m Ph n m m (software) 1 1.2. ðc đim c a ph n m m 1 1.3. Phân lo i ph n m m 2 1.3.1. Theo ph ươ ng th c ho t đ ng 2 1.3.2. Theo kh n ăng ng d ng 2 1.4. Tm quan tr ng và s ti n hĩa c a ph n m m 3 1.4.1. Ti n hĩa c a ph n m m 3 1.4.2. S ng d ng c a ph n m m 4 1.5. Sơ l ưc v quá trình t o ph n m m 6 1.5.1. V m t thi t k 6 1.5.2. Sn xu t và phát tri n 6 1.6. Khĩ kh ăn, thách th c đ i v i phát tri n ph n m m 6 1.6.1. Ph n m m và ph n m m t t 7 1.6.2. ðc tr ưng phát tri n và v n hành ph n m m 8 1.6.3. Nhu c u và đ ph c t p 9 1.7. Cơng ngh ph n m m 10 1.7.1. ðnh ngh ĩa 10 1.8. Các mơ hình phát tri n s n ph m ph n m m 11 1.8.1. Mơ hình vịng đi c đin 11 1.8.2. Mơ hình làm b n m u 13 1.8.3. Mơ hình xo n c 15 1.8.4. K thu t th h th t ư 16 1.8.5. Mơ hình l p trình linh ho t 17 1.8.6. T h p các mơ hình 19 1.8.7. Tính kh th c a quá trình cơng ngh 19 1.8.8. Vn đ gi m kích c c a ph n m m 20 1.9. Cái nhìn chung v cơng ngh ph n m m 21 1.10. Hưng t ươ ng lai c a cơng ngh ph n m m 22 1.11. Tng k t 23 CH ƯƠ NG 2. PHÂN TÍCH VÀ ðC T YÊU C U 24 2.1. ði c ươ ng v phân tích và đc t 24 2.2. Nghiên c u kh thi 25 i
  3. 2.2.1. Kh thi v kinh t 26 2.2.2. Kh thi v k thu t 26 2.2.3. Kh thi v pháp lý 27 2.2.4. Tính kh thi v ho t đ ng 27 2.3. Nn t ng c a phân tích yêu c u 27 2.3.1. Các nguyên lý phân tích 27 2.3.2. Mơ hình hĩa 28 2.3.3. Ng ưi phân tích 31 2.4. Xác đnh và đc t yêu c u 31 2.4.1. Xác đnh yêu c u 31 2.4.2. ðc t yêu c u 32 2.4.3. Th m đ nh yêu c u 33 2.5. Làm b n m u trong quá trình phân tích 34 2.5.1. Các b ưc làm b n m u 34 2.6. ðnh d ng đ c t yêu c u 36 2.7. Tng k t 38 CH ƯƠ NG 3. THI T K PH N M M 39 3.1. Khái ni m v thi t k ph n m m 39 3.1.1. Khái ni m 39 3.1.2. Tm quan tr ng 39 3.1.3. Quá trình thi t k 40 3.1.4. Cơ s c a thi t k 41 3.1.5. Mơ t thi t k 42 3.1.6. Ch t l ưng thi t k 44 3.2. Thi t k h ưng ch c n ăng 46 3.2.1. Cách ti p c n h ưng ch c n ăng 46 3.2.2. Bi u đ lu ng d li u 47 3.2.3. Lưc đ c u trúc 47 3.2.4. Các t đin d li u 47 3.3. Thi t k h ưng đ i t ưng 48 3.3.1. Cách ti p c n h ưng đ i t ưng 48 3.3.2. Ba đc tr ưng c a thi t k h ưng đ i t ưng 48 3.3.3. Cơ s c a thi t k h ưng đ i t ưng 48 3.3.4. Các b ưc thi t k 49 3.3.5. Ưu nh ưc đim c a thi t k h ưng đ i t ưng 50 3.3.6. Quan h gi a thi t k và l p trình h ưng đ i t ưng 50 3.3.7. Quan h gi a thi t k h ưng đ i t ưng và h ưng ch c n ăng 51 3.4. Thi t k giao di n ng ưi s d ng 51 3.4.1. Mt s v n đ thi t k 53 3.4.2. Mt s h ưng d n thi t k 54 3.5. Tng k t 54 CH ƯƠ NG 4. LP TRÌNH 56 ii
  4. 4.1. Ngơn ng l p trình 56 4.1.1. ðc tr ưng c a ngơn ng l p trình 56 4.1.2. La ch n ngơn ng l p trình 57 4.1.3. Ngơn ng l p trình và và s nh h ưng t i cơng ngh ph n m m 58 4.2. Phong cách l p trình 59 4.2.1. Tài li u ch ươ ng trình 59 4.2.2. Khai báo d li u 59 4.2.3. Xây d ng câu l nh 60 4.2.4. Nh p/xu t 60 4.3. Lp trình tránh l i 61 4.3.1. Lp trình th l i 62 4.3.2. Lp trình phịng th 62 4.4. Lp trình h ưng hi u qu th c hi n 63 4.4.1. Tính hi u qu ch ươ ng trình 63 4.4.2. Hi u qu b nh 64 4.4.3. Hi u qu nh p/xu t 64 4.5. Tng k t 65 4.6. Mu th c t (Case Study) Error! Bookmark not defined. CH ƯƠ NG 5. XÁC MINH VÀ TH M ð NH 66 5.1. Gi i thi u 66 5.2. Khái ni m v phép th 67 5.2.1. Th nghi m ch c n ăng và th nghi m c u trúc 67 5.2.2. Th nghi m ch c n ăng 67 5.2.3. Th nghi m c u trúc 68 5.3. Quá trình th nghi m 69 5.3.1. Th nghi m gây áp l c 70 5.4. Chi n l ưc th nghi m 70 5.4.1. Th nghi m d ưi lên 70 5.4.2. Th ngi m trên xu ng 71 5.5. Bo trì ph n m m 71 CH ƯƠ NG 6. QU N LÝ D ÁN PHÁT TRI N PH N M M 73 6.1. Khái ni m d án 73 6.2. Các v n đ th ưng x y ra đ i v i m t d án ph n m m 73 6.3. ði c ươ ng v qu n lý d án 73 6.4. Các ho t đ ng c a qu n lý d án 75 6.4.1. Xác đnh d án ph n m m c n th c hi n 75 6.4.2. Lp k ho ch th c hi n d án 76 6.4.3. T ch c th c hi n d án 77 iii
  5. 6.4.4. Qu n lý quá trình th c hi n d án 77 6.4.5. Kt thúc d án 77 6.5. ð đo ph n m m 77 6.5.1. ðo kích c ph n m m 77 6.5.2. ð đo d a trên th ng kê 78 6.6. Các tác v c n thi t 78 6.6.1. Ưc l ưng 78 6.6.2. Qu n lý nhân s 79 6.6.3. Qu n lý c u hình 80 6.6.4. Qun lý r i ro 81 CH ƯƠ NG 7. QUY TRÌNH PHÁT TRI N PH N M M 83 7.1. Gi i thi u 83 7.2. Qui trình là gì? 83 7.3. Mt s quy trình m u SEP, ISO, CMM/CMMI 84 CH ƯƠ NG 8. CASE STUDY BÀI TỐN ðĂ NG KÝ H C PH N 87 8.1. Phát bi u bài tốn (Vision) 87 8.1.1. Bng chú gi i 88 8.1.1.1. Gi i thi u 88 8.1.1.2. Các đnh ngh ĩa 88 8.2. Business Vision 89 8.2.1. Introduction 89 8.2.2. Positioning 89 8.2.3. Stakeholder and User Descriptions 90 8.2.4. Product Overview 94 8.2.5. Constraints 96 8.2.6. Quality Ranges 97 8.2.7. Precedence and Priority 97 8.2.8. Other Product Requirements 97 8.2.9. Documentation Requirements 98 8.3. Business Glossary 99 8.3.1. Introduction 99 8.3.2. Definitions 99 8.4. ðc t b sung (Supplementary Specification) 100 8.4.1. Mc tiêu 100 8.4.2. Ph m vi 101 8.4.3. Tài li u tham kh o 101 8.4.4. Ch c n ăng 101 8.4.5. Tính kh d ng 101 8.4.6. Tính n đ nh 101 8.4.7. Hi u su t 101 8.4.8. S h tr 101 8.4.9. Tính b o m t 101 8.4.10. Các ràng bu c thi t k 102 iv
  6. 8.5. Sơ đ ch c n ăng (Use Case Diagram) 103 8.6. ðc t các ch c n ăng (Use Case Description) 104 8.6.1. Close Registration (K t thúc đă ng ký) 104 8.6.2. Login ( ðă ng nh p) 105 8.6.3. Maintain Professor Information (Qu n lý thơng tin giáo s ư) 106 8.6.4. Maintain Student Information (Qu n lý thơng tin sinh viên) 108 8.6.5. Register for Courses ( ðă ng ký h c ph n) 109 8.6.6. Select Courses to Teach ( ðă ng ký d y) 112 8.6.7. Submit Grades (N p đim) 113 8.6.8. View Report Card (Xem phi u đim) 114 8.7. Phân tích yêu c u 115 8.8. Thi t k h th ng 115 TÀI LI U THAM KH O 116 v
  7. CH ƯƠ NG 1. PH N M M VÀ CƠNG NGH PH N M M Cơng ngh ph n m m hay k ngh ph n m m (ti ng Anh: software engineering) là s áp d ng m t cách ti p c n cĩ h th ng, cĩ k lu t, và đnh l ưng đưc cho vi c phát tri n, ho t đ ng và b o trì ph n m m. Ngành h c Cơng ngh ph n m m bao trùm ki n th c, các cơng c , và các ph ươ ng pháp cho vi c đ nh ngh ĩa yêu cu ph n m m, và th c hi n các tác v thi t k ph n m m, xây d ng ph n m m, ki m th ph n m m (software testing), và b o trì ph n m m. Cơng ngh ph n m m cịn s d ng ki n th c c a các l ĩnh v c nh ư k thu t máy tính, khoa h c máy tính, qu n lý, tốn h c, qun lý d án, qu n lý ch t l ưng, cơng thái h c ph n m m (software ergonomics), và k ngh h th ng (systems engineering). Trích d n m t câu nĩi c a Edsger Dijkstra v cơng ngh ph n m m: Khi máy tính ch ưa xu t hi n, thì vi c l p trình ch ưa cĩ khĩ kh ăn gì c. Khi m i xu t hi n m t vài chi c máy tính ch c n ăng kém thì vi c l p trình b t đ u g p m t vài khĩ kh ăn nho nh . Gi đây khi chúng ta cĩ nh ng chi c máy tính kh ng l thì nh ng khĩ kh ăn y tr nên vơ cùng l n. Nh ư v y ngành cơng nghi p đin t khơng gi i quy t khĩ kh ăn nào c mà h ch t o thêm ra nh ng khĩ kh ăn m i. Khĩ kh ăn mà h t o nên chính là vi c s d ng s n ph m c a h . 1.1. Tng quan v khái ni m Ph n m m (software) Ph n m m (Hán Vi t cịn g i là nhu li u; ti ng Anh: software) là m t t p h p nh ng câu lnh đưc vi t b ng m t ho c nhi u ngơn ng l p trình theo m t tr t t xác đ nh nh m t đ ng th c hi n m t s ch c n ăng ho c gi i quy t m t bài tốn nào đĩ. 1.2. ðc đim c a ph n m m Tr ưc đây, đ t o ra ch ươ ng trình máy tính ng ưi ta ph i làm vi c tr c ti p vi các con s 0 ho c 1, hay cịn g i là ngơn ng máy. Cơng vi c này vơ cùng khĩ kh ăn, chi m nhi u th i gian, cơng s c và đc bi t d gây ra l i. ð kh c ph c nh ưc đim này, ng ưi ta đ xu t ra h p ng , m t ngơn ng cho phép thay th dãy 0 ho c 1 này b i các t g i nh ti ng Anh. Tuy nhiên, c i ti n này v n cịn ch ưa th t thích h p v i đa s ng ưi dùng máy tính, nh ng ng ưi luơn mong mu n các l nh chính là ý ngh ĩa c a các thao tác mà nĩ mơ t . Vì v y, ngay t nh ng n ăm 1950, ng ưi ta đã xây d ng nh ng ngơn ng l p trình mà câu l nh c a nĩ g n v i ngơn ng t nhiên. Các ngơn ng này đưc g i là ngơn ng lp trình b c cao. 1
  8. Ch ươ ng trình máy tính th ưng đưc t o ra b i con ng ưi, nh ng ng ưi này đưc g i là l p trình viên, tuy nhiên c ũng t n t i nh ng ch ươ ng trình đưc sinh ra b i các ch ươ ng trình khác. 1.3. Phân lo i ph n m m 1.3.1. Theo ph ươ ng th c ho t đ ng Ph n m m h th ng dùng đ v n hành máy tính và các ph n c ng máy tính, ví d nh ư các h điu hành máy tính Windows XP, Linux, Unix, các th ư vi n đ ng (cịn g i là th ư vi n liên k t đ ng; ti ng Anh: dynamic linked library - DLL) c a h điu hành, các trình điu khi n (driver), ph n s n(firmware) và BIOS. ðây là các lo i ph n m m mà h điu hành liên l c v i chúng đ điu khi n và qu n lý các thi t b ph n c ng. Ph n m m ng d ng đ ng ưi s d ng cĩ th hồn thành m t hay nhi u cơng vi c nào đĩ, ví d nh ư các ph n m m v ăn phịng (Microsoft Offices, Lotus 1-2-3, FoxPro), ph n m m doanh nghi p, ph n m m qu n lý ngu n nhân l c XETA, ph n m m giáo d c, cơ s d li u, ph n m m trị ch ơi, ch ươ ng trình ti n ích, hay các lo i ph n m m ác tính. Các ph n m m chuy n d ch mã bao g m trình biên d ch và trình thơng d ch: các lo i ch ươ ng trình này s đ c các câu l nh t các mã ngu n đưc vi t b i các l p trình viên bng m t ngơn ng l p trình và d ch nĩ sang d ng ngơn ng máy mà máy tính cĩ th hi u đưc, hay d ch nĩ sang m t d ng khác nh ư là t p tin đ i t ưng (object file) và các t p tin th ư vi n (library file) mà các ph n m m khác (nh ư h điu hành ch ng h n) cĩ th hi u đ v n hành máy tính th c thi các l nh. 1.3.2. Theo kh n ăng ng d ng Nh ng ph n m m khơng ph thu c, nĩ cĩ th đưc bán cho b t k ỳ khách hàng nào trên th tr ưng t do. Ví d : ph n m m v c ơ s d li u nh ư Oracle, đ h a nh ư Photoshop, Corel Draw, so n th o và x lý v ăn b n, b ng tính Ưu đim: Thơng th ưng đây là nh ng ph n m m cĩ kh n ăng ng d ng r ng rãi cho nhi u nhĩm ng ưi s d ng. Khuy t đim: Thi u tính uy n chuy n, tùy bi n. Nh ng ph n m m đưc vi t theo đơn đt hàng hay h p đ ng c a m t khách hàng c th nào đĩ (m t cơng ty, b nh vi n, tr ưng h c ). Ví d : ph n m m điu khi n, ph n mm h tr bán hàng Ưu đim: Cĩ tính uy n chuy n, tùy bi n cao đ đáp ng đưc nhu c u c a m t nhĩm ng ưi s d ng nào đĩ. Khuy t đim: Thơng th ưng đây là nh ng ph n m m ng d ng chuyên ngành h p. 2
  9. 1.4. Tm quan tr ng và s ti n hĩa c a ph n m m Máy tính khác v i các máy mĩc thơng th ưng đim nĩ cĩ th th c hi n các nhi m v r t khác nhau b ng cách s d ng các ph n m m khác nhau. T c là ph n m m t o ra s khác bi t gi a các máy tính và c ũng quy t đ nh n ăng l c c a máy tính. Cho đ n nh ng năm 1990, xu h ưng c a ngành cơng nghi p máy tính là phát tri n ph n c ng nh m gi m giá thành h th ng và t ăng n ăng l c x lý c ũng nh ư l ưu tr d li u. Do nhu c u ph n mm t ăng lên nhanh chĩng, thách th c hay m c tiêu c a ngành cơng nghi p máy tính hi n nay là s c i thi n ch t l ưng và gi m giá thành c a ph n m m. Cĩ th nĩi kh n ăng c a ph n c ng bi u th cho ti m n ăng c a h th ng cịn ph n mm là m t c ơ ch giúp chúng ta khai thác ti m n ăng này. Chúng ta hãy xem xét t m quan tr ng c a ph n m m trên khía c nh s ti n hĩa và ph m vi ng d ng c a chúng. 1.4.1. Ti n hĩa c a ph n m m S ti n hĩa c a ph n m m g n li n v i s ti n hĩa c a ph n c ng và cĩ th chia làm 4 giai đon: a. Nh ng n ăm đ u (t 1950 đ n 1960): - Giai đon này ph n c ng thay đ i liên t c, s l ưng máy tính r t ít và ph n l n m i máy đu đưc đ t hàng chuyên d ng cho m t ng d ng đ c bi t. - Ph ươ ng th c chính là x lý theo lơ (batch), t c là “gĩi” các ch ươ ng trình cĩ s d ng kt qu c a nhau l i thành m t kh i d t ăng t c đ th c hi n. - Th i k ỳ này l p trình máy tính đưc coi là ngh thu t “theo b n n ăng”, ch ưa cĩ ph ươ ng pháp h th ng. Vi c phát tri n ph n m m ch ưa đưc qu n lý. - Mơi tr ưng l p trình cĩ tính ch t cá nhân; thi t k , ti n trình ph n mm khơng t ưng minh, th ưng khơng cĩ tài li u. S n xu t cĩ tính đơn chi c, theo đơn đt hàng. Ng ưi lp trình th ưng là ng ưi s d ng và kiêm c vi c b o trì và s a l i. b. Th i k ỳ tr i r ng t nh ng n ăm 1960 đ n gi a nh ng n ăm 1970: - Các h th ng đa nhi m, đa ng ưi s d ng (ví d : Multics, Unix, ) xu t hi n d n đ n khái ni m m i v t ươ ng tác ng ưi máy. K thu t này m ra th gi i m i cho các ng dng và địi h i m c đ tinh vi h ơn cho c ph n m m và ph n c ng. - Nhi u h th ng th i gian th c v i các đ c tr ưng thu th p, phân tích và bi n đ i d li u t nhi u ngu n khác nhau và ph n ng (x lý, t o output) trong m t kho ng th i gian nh t đ nh xu t hi n. - Ti n b l ưu tr tr c tuy n làm xu t hi n th h đ u tiên c a h qu n tr CSDL. 3
  10. - S l ưng các h th ng d a trên máy tính phát tri n, nhu c u phân ph i m r ng, th ư vi n ph n m m phát tri n, quy mơ ph n m m ngày càng l n làm n y sinh nhu c u s a ch a khi g p l i, c n s a đ i khi ng ưi dùng cĩ yêu c u hay ph i thích nghi v i nh ng thay đ i c a mơi tr ưng ph n m m (ph n c ng, h điu hành, ch ươ ng trình dch m i). Cơng vi c b o trì ph n m m d n d n tiêu t n nhi u cơng s c và tài nguyên đn m c báo đ ng. c. Th i k ỳ t gi a nh ng n ăm 1970 đ n đ u nh ng n ăm 1990: - H th ng phân tán (bao g m nhi u máy tính, m i máy thc hi n m t ch c n ăng và liên l c v i các máy khác) xu t hi n làm t ăng quy mơ và đ ph c t p c a ph n m m ng d ng trên chúng. - Mng tồn c c và c c b , liên l c s gi i thơng cao phát tri n m nh làm t ăng nhu c u thâm nh p d li u tr c tuy n, n y sinh yêu cu l n phát tri n ph n m m qu n lý d li u. - Cơng ngh ch t o các b vi x lý ti n b nhanh khi n cho máy tính cá nhân, máy tr m đ bàn, và các thi t b nhúng (dùng cho điu khi n trong robot, ơ tơ, thi t b y t , đ đin gia d ng, ) phát tri n m nh khi n cho nhu c u v ph n m m t ăng nhanh. - Th tr ưng ph n c ng đi vào n đ nh, chi phí cho ph n m m t ăng nhanh và cĩ khuynh hưng v ưt chi phí mua ph n c ng. d. Th i k ỳ sau 1990: - Cơng ngh hưng đ i t ưng là cách ti p c n m i đang nhanh chĩng thay th nhiu 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. - S phát tri n c a Internet làm cho ng ưi dùng máy tính t ăng lên nhanh chĩng, nhu cu ph n m m ngày càng l n, quy mơ và đ ph c t p c a nh ng h th ng ph n m m mi c ũng t ăng đáng k . - Ph n m m trí tu nhân t o ng d ng các thu t tốn phi s nh ư h chuyên gia, m ng nơ ron nhân t o đưc chuy n t phịng thí nghi m ra ng d ng th c t m ra kh năng x lý thơng tin và nh n d ng ki u con ng ưi. 1.4.2. S ng d ng c a ph n m m Chúng ta cĩ th chia ph n m m theo mi n ng d ng thành 7 lo i nh ư sau: a. 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ác c u trúc thơng tin ph c t p nh ưng xác đnh (trình biên d ch, trình so n th o, ti n ích qu n lý t p) 4
  11. - ðc tr ưng 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 - Cu trúc d li u ph c t p và nhi u giao di n ngồi b. Ph n m m th i gian th c Ph n m m điu ph i, phân tích ho c ki m số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. ðin hình là các ph n m m điu khi n các thi t b t đ ng. Ph n m m th i gian th c bao g m các thành t : - Thành ph n thu th p d li u đ thu và đnh d ng thơng tin t mơi tr ưng ngồi - Thành ph n phân tích đ bi n đ i thơng tin theo yêu c u c a ng d ng - Thành ph n ki m sốt ho c đưa ra đáp ng mơi tr ưng ngồi - Thành ph n điu ph i đ điu hịa 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 nh ng ràng bu c th i gian ch t ch . c. Ph n m m nghi p v Là các ph n m m ph c v các ho t đ ng kinh doanh hay các nghi p v c a t ch c, doanh nghi p. ðây cĩ th coi là l ĩnh v c ng d ng ph n m m l n nh t. ðin hình là các h th ng thơng tin qu n lý g n ch t v i CSDL, các ng d ng t ươ ng tác nh ư x lý giao tác cho các đim bán hàng. d. Ph n m m khoa h c và cơng ngh - ðưc đ c tr ưng b i các thu t tốn (tính tốn trên ma tr n s , mơ ph ng ). - Th ưng địi h i ph n c ng cĩ n ăng l c tính tốn cao. e. Ph n m m nhúng - Nm trong b nh ch đ c và đưc dùng đ điu khi n các s n ph m và h th ng cho ng ưi dùng và th tr ưng cơng nghi p. - Cĩ các đc tr ưng c a ph n m m th i gian th c và ph n m m h th ng. f. Ph n m m máy tính cá nhân - Bùng n t khi xu t hi n máy tính cá nhân, gi i quy t các bài tốn nghi p v nh nh ư x lý v ăn b n, trang tính, đ h a, qu n tr CSDL nh - Yu t giao di n ng ưi-máy r t đưc chú tr ng. 5
  12. g. Ph n m m trí tu nhân t o - Dùng các thu t tốn phi s đ gi i quy t các v n đ ph c t p mà tính tốn hay phân tích tr c ti p khơng qu n lý n i - Các ng d ng chính là: h chuyên gia (h c ơ s tri th c), nh n d ng (hình nh và ti ng nĩi), ch ng minh đ nh lý và ch ơi trị ch ơi, mơ ph ng. Ngồi ra, chúng ta cịn cĩ th k đ n m t d ng ph n m m đ c bi t là ph n m m ph c v cơng ngh ph n m m. ðĩ là các ph n m m nh ư ch ươ ng trình d ch, ph n m m g r i, các cơng c h tr phân tích thi t k (CASE) Các ph n m m này cĩ th xu t hi n d ưi dng ph n m m máy tính cá nhân, ph n m m h th ng ho c là ph n m m nghi p v . 1.5. Sơ l ưc v quá trình t o ph n m m 1.5.1. V m t thi t k Tùy theo m c đ ph c t p c a ph n m m làm ra, ng ưi thi t k ph n m m s ít nhi u dùng đn các ph ươ ng ti n đ t o ra m u thi t k theo ý mu n (ch ng h n nh ư là các s ơ đ kh i, các l ưu đ, các thu t tốn và các mã gi ), sau đĩ m u này đưc mã hố b ng các ngơn ng l p trình và đưc các trình d ch chuy n thành các kh i l nh (module) hay/và các t p kh thi. T p h p các t p kh thi và các kh i l nh đĩ làm thành m t ph n m m. Th ưng khi m t ph n m m đưc t o thành, đ cho hồn h o thì ph n m m đĩ ph i đưc điu ch nh hay s a ch a t khâu thi t k cho đ n khâu t o thành phiên b n ph n m m mt s l n. M t ph n m m thơng th ưng s t ươ ng thích v i m t hay vài h điu hành, tùy theo cách thi t k , cách vi t mã ngu n và ngơn ng l p trình đưc dùng. 1.5.2. Sn xu t và phát tri n Vi c phát tri n và đư a ra th tr ưng c a m t ph n m m là đi t ưng nghiên c u c a b mơn k ngh ph n m m hay cịn g i là cơng ngh ph n m m (software engineering). B mơn này nghiên c u các phươ ng pháp t ch c, cách th c s d ng ngu n tài nguyên, vịng quy trình s n xu t, cùng v i các m i liên h v i th tr ưng, c ũng nh ư liên h gi a các y u t này v i nhau. T i ưu hố qui trình s n xu t ph n m m c ũng là đi t ưng đưc cu xét c a b mơn. 1.6. Khĩ khăn, thách th c đ i v i phát tri n ph n m m T nh ng n ăm 60, nhi u d án ph n m m l n khơng thành cơng nh ư các d án OS 360 (tiêu t n m t s ti n và th i gian g p nhi u l n d ki n) và TSS 360 (khơng đt các ch tiêu k thu t, h u nh ư khơng ho t đ ng) c a IBM. Do đĩ, vi c phát tri n ph n m m dn d n đã đưc nh n th c là m t l ĩnh v c đ y khĩ kh ăn và ch a nhi u r i ro. Chúng ta s xem xét các khĩ kh ăn và thách th c trên các khía c nh đ c tr ưng, qui mơ và nhu c u ca ph n m m. 6
  13. 1.6.1. Ph n m m và ph n m m t t Ph n mm thơng th ưng đưc đ nh ngh ĩa bao g m: - các l nh máy tính nh m th c hi n các ch c n ăng xác đ nh - các c u trúc d li u cho phép ch ươ ng trình thao tác v i d li u - các tài li u giúp cho ng ưi dùng cĩ th v n hành đưc ph n m m Bn thu c tính ch ch t mà mt h ph n m m t t ph i cĩ là: - 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. ðây đưc coi là đc tính ch ch t nh t c a m t ph n m m t t. ð cĩ th b o trì đưc, ph n m m ph i cĩ m t thi t k t t cĩ tính modun hĩa cao, đưc vi t b ng ngơn ng b c cao và đưc l p tài li u (tài li u phân tích, thi t k , chú thích mã ngu n, h ưng d n ng ưi dùng ) đy đ. - ðáng tin c y: ph n m m ph i th c hi n đưc điu mà ng ưi tiêu dùng mong m i và khơng th t b i nhi u h ơn nh ng điu đã đưc đ c t . ðiu này cĩ ngh ĩa là ph n m m ph i th a mãn đưc nhu c u c a ng ưi dùng. ð đ t đưc y u t đáng tin c y, tr ưc tiên ng ưi phát tri n c n ph i hi u m t cách đúng đ n yêu c u c a ng ưi dùng và sau đĩ c n th a mãn đưc các yêu c u này b ng các thi t k và cài đt t t. - Cĩ hi u qu : ph n m m khi ho t đ ng ph i khơng lãng phí tài nguyên h th ng nh ư b nh , b x lý. N u ph n m m ch y quá ch m hay địi h i quá nhi u b nh thì dù cĩ đưc cài đt r t nhi u ch c n ăng c ũng s khơng đưc đưa vào s d ng. Tuy nhiên, ngo i tr các ph n m m nhúng hay th i gian th c đ c bi t, ng ưi ta th ưng khơng c c đ i hĩa m c đ hi u qu vì r ng vi c đĩ cĩ th ph i dùng đm các k thu t đc thù và cài đt bng ngơn ng máy khi n cho chi phí t ăng cao và ph n m m r t khĩ thay đi (tính b o trì kém). - D s d ng: 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, cĩ các tài li u h ưng d n và các ti n ích tr giúp. ð i t ưng chính c a các ph n m m nghi p v th ưng là ng ưi khơng am hi u v máy tính, h s xa lánh các ph n m m khĩ h c, khĩ s d ng. Cĩ th th y rõ, vi c t i ưu hĩa đng th i các thu c tính này là r t khĩ kh ăn. Các thu c tính cĩ th m u thu n l n nhau, ví d nh ư tính hi u qu và tính d s d ng, tính b o trì. Quan h gi a chi phí c i ti n và hi u qu đ i v i t ng thu c tính khơng ph i là tuy n tính. Nhi u khi m t c i thi n nh trong b t k ỳ thu c tính nào c ũng cĩ th là r t đ t. Mt khĩ kh ăn khác c a vi c phát tri n ph n m m là r t khĩ đ nh l ưng các thu c tính ca ph n m m. Chúng ta thi u các đ đo và các chu n v ch t l ưng ph n m m. V n đ giá c ph i đưc tính đ n khi xây d ng m t ph n m m. Chúng ta s xây d ng đưc m t 7
  14. ph n m m dù ph c t p đ n đâu n u khơng h n ch v th i gian và chi phí. ðiu quan tr ng là chúng ta ph i xây d ng m t ph n m m t t v i m t giá c h p lý và theo m t l ch bi u đưc đ nh tr ưc. 1.6.2. ðc tr ưng phát tri n và v n hành ph n m m Chúng ta cĩ th th y khĩ kh ăn hàng đu c a vi c phát tri n ph n m m là do tính ch t ph n m m là h th ng logic, khơng ph i là h th ng v t lý. Do đĩ nĩ cĩ đ c tr ưng khác bi t đáng k v i các đ c tr ưng c a ph n c ng. D ưi đây là 3 y u t chính t o ra s ph c tp trong quá trình phát tri n c ũng nh ư s d ng, b o trì ph n m m. a. Ph n m m khơng đưc ch t o theo ngh ĩa c đin Ph n m m c ũng đưc đưc thi t k , phát tri n nh ư ph n c ng, nh ưng nĩ khơng đnh hình tr ưc. Ch khi phát tri n xong ng ưi ta cĩ s n ph m c th và hi u đưc nĩ cĩ hi u qu hay khơng. T c là các b ưc trung gian, chúng ta r t khĩ ki m sốt ch t l ưng c a ph n m m. Giá thành c a ph n c ng ch y u b chi ph i b i giá thành nguyên v t li u và chúng ta t ươ ng đi d ki m sốt. Trong khi đĩ, giá thành ph n m m ch y u t p chung vào chi phí nhân cơng. Quá trình phát tri n ph n m m ph thu c vào con ng ưi (hi u bi t, kh năng v n d ng, kinh nghi m và cách th c qu n lý) và đưc ti n hành phát tri n trong điu ki n mơi tr ưng (k thu t, xã h i) đa d ng và khơng ng ng thay đ i. Do đĩ chúng ta rt khĩ ưc l ưng đưc chi phí c ũng nh ư hi u qu c a ph n m m. b. Ph n m m khơng h ng đi nh ưng thối hĩa theo th i gian Ph n m m khơng c m ng đ i v i nh ng tác đ ng c a mơi tr ưng v n gây cho ph n cng b mịn c ũ đi, nh ưng nĩ c ũng thối hĩa theo th i gian. Th c t , ph n m m tr i qua th i gian s d ng c n ph i đưc thay đ i (b o trì) đ đáp ng nhu c u luơn thay đ i c a t ch c s d ng nĩ. M i khi thay đ i, s xu t hi n thêm m t s khi m khuy t m i khơng th tránh làm cho s l i ti m n trong ph n m m t ăng lên. D n d n, ph n m m b thối hĩa do t l sai h ng ngày càng t ăng lên đn m c gây ra nh ng thi t h i khơng th ch p nh n đưc. Vi c b o trì ph n m m ph c t p h ơn nhi u và cĩ b n ch t khác h n so v i b o trì ph n c ng do s ph c t p c a h th ng ph n m m và s khơng cĩ s n ph n thay th cho b ph n b l i. Chúng ta khơng thay th b ph n b l i b ng cái cĩ s n mà th c t ph i t o ra m t mơ đun m i. Do đĩ, thơng th ưng ch cĩ nhà s n xu t ph n m m m i b o trì (s a ch a) đưc h ng hĩc. S r t khĩ ưc l ưng đưc chi phí cho b o trì ph n m m. 8
  15. c. Ph n l n ph n m m đ u đưc xây d ng t đ u, ít khi đưc l p ráp t thành ph n cĩ s n - Ph n m m khơng cĩ danh m c các thành ph n c đ nh nh ư ph n c ng. - Ph n m m th ưng đưc đ t hàng theo m t đơn v hồn ch nh, theo yêu c u riêng c a khách hàng. - Ph n m m ít khi cĩ th l p ráp theo m t khuơn m u cĩ s n. Yêu c u v i ph n m m thay đi theo mơi tr ưng c th mà đĩ nĩ đưc xây d ng. Mơi tr ưng c a ph n mm (g m ph n c ng, ph n m m n n, con ng ưi và t ch c) khơng th đ nh d ng t tr ưc và l i thay đi th ưng xuyên. Nh ng y u t này d n đ n chi phí cho ph n m m cao và r t khĩ đ m b o đưc l ch bi u cho phát tri n ph n m m. 1.6.3. Nhu c u và đ ph c t p Tuy ngành cơng nghi p máy tính đã b ưc sang giai đon phát tri n th t ư nh ưng các thách th c đ i v i phát tri n ph n m m máy tính khơng ng ng gia t ăng vì nh ng nguyên nhân sau: - Kh n ăng xây d ng các ch ươ ng trình m i khơng gi đưc cùng nh p v i nhu c u v ph n m m t ăng lên nhanh chĩng, đc bi t khi Internet phát tri n và s l ưng ng ưi dùng t ăng cao. Ngày nay, s n xu t ph n m m đã tr thành m t ngành cơng nghi p khơng l tuy v y n ăng su t khơng cao, khơng đáp ng đưc địi h i c a xã h i và điu này nh h ưng l n đ n giá thành và ch t l ưng ph n m m. Ngồi ra, cịn t n t i rt nhi u ch ươ ng trình đưc thi t k và l p tài li u s ơ sài khi n cho vi c b o trì r t khĩ kh ăn và kém tài nguyên. Phát tri n các ph n m m m i d b o trì đ thay th các h th ng c ũ tr thành nhu c u c p bách. - Cùng v i s phát tri n c a ph n c ng, quy mơ và đ ph c t p c a các ph n m m m i ngày càng t ăng. M t s ph n m m hi n đ i cĩ kích th ưc đưc tính b ng đơn v tri u dịng l nh (H ðH Unix, Windows ). M t v n đ khĩ kh ăn trong s n xu t ph n m m ln là đ ph c t p t ăng v t, các kinh nghi m s n xu t s n ph m nh khơng ng d ng đưc cho mơi tr ưng làm vi c theo nhĩm và phát tri n s n ph m l n. - S tinh vi và n ăng l c c a ph n c ng đã v ưt xa kh n ăng xây d ng ph n m m đ cĩ th s d ng đưc các ti m n ăng c a nĩ. T t c các khĩ kh ăn và thách th c nêu trên đã dn đ n vi c ch p nh n th c hành cơng ngh ph n m m đ cĩ th t o nhanh các ph n mm cĩ nh t l ưng ngày m t cao, cĩ quy mơ và s l ưng ngày m t l n và cĩ nh ng tính n ăng t ươ ng ng v i ti m n ăng ph n c ng. 9
  16. 1.7. Cơng ngh ph n m m 1.7.1. ðnh ngh ĩa Mt đ nh ngh ĩa ban đ u v cơng ngh ph n m m do Fritz Bauer nêu ra là: Vi c thi t lp 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ơng ngh ph n m m là m t quá trình g m m t lo t 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 sốt đưc ti n trình phát tri n ph n m m, 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 , trong nh ng gi i h n nh t đ nh. a. Các ph ươ ng pháp Ch ra cách làm v m t k thu t đ xây d ng ph n m m, đưc s d ng trong các bưc: 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 cu trúc d li u, ki n trúc ch ươ ng trình và th t c thu t tốn, mã hĩa ki m th và b o trì. Các ph ươ ng pháp cho cơng ngh ph n m m th ưng đưa ra các ký pháp đ h a hay h ưng ngơn ng đ c bi t, cách th c th c hi n và m t t p các tiêu chu n v ch t l ưng c a s n ph m ph n m m. b. Các cơng c Cung c p s h tr t đ ng hay bán t đ ng đ phát tri n ph n m m theo t ng ph ươ ng pháp khác nhau. Khi các cơng c đưc tích h p đ n m c các thơng tin do chúng to ra cĩ th đưc dùng cho các cơng c khác thì h th ng h tr phát tri n ph n m m đã đưc thi t l p và cịn đưc g i là cơng ngh ph n m m cĩ máy tính h tr (CASE - Computer Aided Software Engineering). c. Các th t c Các th t c là ch t keo dán các ph ươ ng pháp và cơng c l i v i nhau làm cho chúng đưc s d ng h p lý và đúng h n trong quá trình phát tri n ph n m m. Th t c bao g m: - Xác đnh ra trình t các ph ươ ng pháp s đưc áp d ng cho m i d án. - To s n ph m c n bàn giao (tài li u báo cáo, b n m u, ) c n cho vi c ki m sốt đ đm b o ch t l ưng và điu hịa thay đi. 10
  17. - Xác đnh nh ng c t m c mà t i đĩ cĩ các s n ph m nh t đnh đưc bàn giao đ cho ng ưi qu n lý ph n m m n m đưc ti n đ và ki m sốt đưc k t qu . 1.8. Các mơ hình phát tri n s n ph m ph n m m Quá trình phát tri n ph n m m là t p h p các thao tác và các k t qu t ươ ng quan đ sn xu t ra m t s n ph m ph n m m. H u h t các thao tác này đưc ti n hành b i các k sư ph n m m. Các cơng c h tr máy tính v k thu t ph n m m cĩ th đưc dùng đ giúp trong m t s thao tác. Cĩ 4 thao tác là n n t ng c a h u h t các quá trình ph n m m là: - ðc t ph n m m: Các ch c n ăng c a ph n m m và điu ki n đ nĩ ho t đ ng ph i đưc đ nh ngh ĩa. - S phát tri n ph n m m: ð ph n m m đ t đưc đ c t thì ph i cĩ quá trình phát tri n này. - ðánh giá ph n m m: Ph n m m ph i đưc đánh giá đ ch c ch n r ng nĩ làm nh ng gì mà khách hàng mu n. - S ti n hĩa c a ph n m m: Ph n m m ph i ti n hĩa đ th a mãn s thay đ i các yêu cu c a khách hàng. Sau đây, chúng ta s xem xét m t s cách ti p c n (cịn g i là mơ hình hay khuơn cnh) c ơ b n trong ti n trình phát tri n ph n m m. 1.8.1. Mơ hình vịng đi c đin Dưi đây mơ t cơng ngh ph n m m đưc ti n hành theo mơ hình vịng đi c đin, đơi khi cịn đưc g i là mơ hình thác n ưc (hình 1.1). Mơ hình này yêu c u ti p c n m t cách h th ng, tu n t và ch t ch (xong b ưc này m i chuy n sang b ưc sau) đ i v i vic phát tri n ph n m m, b t đ u m c phân tích h th ng và ti n d n xu ng phân tích, thi t k , mã hĩa, ki m th và b o trì: a. Cơng ngh và phân tích h th ng Cơng ngh và phân tích h th ng bao g m vi c thu th p yêu c u m c h th ng v i mt l ưng nh thi t k và phân tích m c đ nh. M c đích c a b ưc này là xác đnh khái quát v ph m vi, yêu c u c ũng nh ư tính kh thi c a ph n m m. b. Phân tích yêu c u ph n m m - Phân tích yêu c u đưc t p trung vi c thu th p và phân tích các thơng tin c n cho ph n m m, các ch c n ăng c n ph i th c hi n, hi u n ăng c n cĩ và các giao di n cho ng ưi s d ng. 11
  18. - Kt qu c a phân tích là t ư li u v yêu c u cho h th ng và ph n m m ( đ c t yêu cu) đ khách hàng duy t l i và dùng làm tài li u cho ng ưi phát tri n. c. Thi t k - Là quá trình chuy n hĩa các yêu c u ph n m m thành các mơ t thi t k - Thi t k g m nhi u b ưc, th ưng t p trung vào 4 cơng vi c chính: thi t k ki n trúc ph n m m, thi t k c u trúc d li u, thi t k chi ti t các th t c, thi t k giao di n và tươ ng tác. - Lp t ư li u thi t k (là m t ph n c a c u hình ph n m m) đ phê duy t d. Mã hĩa Bi u di n thi t k b ng m t hay m t s ngơn ng l p trình và d ch thành mã máy th c hi n đưc. e. Ki m th Ti n trình ki m th bao g m vi c - phát hi n và s a l i ph n logic bên trong ch ươ ng trình hay cịn g i là l i l p trình, - ki m tra xem ph n m m cĩ ho t đ ng nh ư mong mu n khơng, t c là phát hi n và s a li v ch c n ăng nh ư thi u h t, sai sĩt v ch c n ăng; và ki m tra xem ph n m m cĩ đm b o tính hi u qu trong th c hi n hay khơng. f. B o trì Bao g m các cơng vi c s a các l i phát sinh khi áp d ng ch ươ ng trình ho c thích ng nĩ v i thay đ i trong mơi tr ưng bên ngồi (h điu hành m i, thi t b ngo i vi m i, yêu cu ng ưi dùng) ho c yêu c u b sung ch c n ăng hay nâng cao hi u n ăng c n cĩ. Mt s các v n đ cĩ th g p ph i khi dùng mơ hình vịng đi c đin là: - Các d án th c hi m khi tuân theo dịng ch y tu n t mà mơ hình đ ngh . Bao gi vi c l p l i c ũng xu t hi n và t o ra các v n đ trong vi c áp d ng mơ hình này. - Khách hàng th ưng khĩ phát bi u m i yêu c u m t cách t ưng minh t đ u. Vịng đi c đin địi h i điu này và th ưng khĩ thích h p v i s b t tr c t nhiên t n t i vào lúc đu c a nhi u d án. - ðịi h i khách hàng ph i kiên nh n. B n làm vi c đưc c a ch ươ ng trình ch cĩ đưc vào lúc cu i c a th i gian d án. M t sai sĩt nh trong phân tích/thi t k n u đ n khi cĩ ch ươ ng trình làm vi c m i phát hi n ra, cĩ th s là m t th m h a. Tuy v y, mơ hình vịng đi c đin cĩ m t v trí quan tr ng trong cơng vi c v cơng ngh ph n m m. Nĩ đưa ra m t tiêu b n trong đĩ cĩ th b trí các ph ươ ng pháp cho phân 12
  19. tích, thi t k , mã hĩa, ki m th và b o trì. Vịng đi c đin v n cịn là m t mơ hình đưc s d ng r ng rãi, nh t là đi v i các d án v a và nh . Phân tích Thi t k Mã hố Ki m th Bo trì Hình 1.1. Mơ hình vịng đi c đin. Ch y u c a mơ hình này là nĩ khơng linh ho t. Các b ph n c a đ án chia ra thành nh ng ph n riêng c a các giai đon. H th ng phân ph i đơi khi khơng dùng đưc vì khơng th a mãn đưc yêu c u c a khách hàng. M c dù v y mơ hình này ph n nh th c t cơng ngh . Nh ư là m t h qu đây v n là mơ hình c ơ s cho đa s các h th ng phát tri n ph n m m - ph n c ng. 1.8.2. Mơ hình làm b n m u Cách ti p c n làm b n m u cho cơng ngh ph n m m là cách ti p c n t t nh t khi: - Mc tiêu t ng quát cho ph n m m đã xác đnh, nh ưng ch ưa xác đnh đưc input và output. - Ng ưi phát tri n khơng ch c v hi u qu c a thu t tốn, v thích nghi h điu hành hay giao di n ng ưi máy c n cĩ. Khi đã cĩ bn m u, ng ưi phát tri n cĩ th dùng ch ươ ng trình đã cĩ hay các cơng c ph n m m tr giúp đ sinh ra ch ươ ng trình làm vi c. Làm b n m u là t o ra m t mơ hình cho ph n m m c n xây d ng. Mơ hình cĩ th cĩ 3 d ng: - Bn m u trên gi y hay trên máy tính mơ t giao di n ng ưi-máy làm ng ưi dùng hi u đưc cách các t ươ ng tác xu t hi n. - Bn m u cài đt ch m t t p con ch c n ăng c a ph n m m mong đ i. 13
  20. - Bn m u là m t ch ươ ng trình cĩ th th c hi n m t ph n hay t t c ch c n ăng mong mu n nh ưng m c s ơ l ưc và c n c i ti n thêm các tính n ăng khác tùy theo kh n ăng phát tri n. Tr ưc h t ng ưi phát tri n và khách hàng g p nhau và xác đnh m c tiêu t ng th cho ph n m m, xác đ nh các yêu c u đã bi t, các mi n c n kh o sát thêm. Ti p theo là giai đon 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 (input và output), và xây d ng m t b n m u. Ng ưi dùng đánh giá và làm m n các yêu c u cho ph n m m. Ti n trình này l p đi l p l i cho đ n khi b n m u tho mãn yêu c u c a khách hàng, đng th i giúp ng ưi phát tri n hi u k h ơn nhu c u nào c n ph i th c hi n (hình 1.2). Mt bi n th c a mơ hình này là mơ hình th ăm dị, trong đĩ các yêu c u đưc c p nh t liên t c và b n m u đưc ti n hĩa liên t c đ tr thành s n ph m cu i cùng. Mơ hình làm b n m u cĩ m t s v n đ nh ư: - Do s hồn thi n d n (ti n hĩa) c a b n m u, ph n m m nhi u khi cĩ tính c u trúc khơng cao, d n đ n khĩ ki m sốt, khĩ b o trì. - Khách hàng nhi u khi th t v ng v i vi c phát tri n ph n m m do h nh m t ưng b n mu là s n ph m cu i cùng h ưng t i ng ưi s d ng. Khách hàng c ũng cĩ th khơng dành nhi u cơng s c vào đánh giá b n m u. Bt đ u Kt thúc Tp h p Sn ph m Yêu c u cu i cùng Thi t k nhanh Làm m n yêu c u Xây d ng bn m u ðánh giá c a khách hàng Hình 1.2. Mơ hình làm b n m u. 14
  21. 1.8.3. Mơ hình xo n c Mơ hình xo n c đưc Boehm đưa ra n ăm 1988. ðây là mơ hình phát tri n t mơ hình thác n ưc cho th y m c đ t ng quát h ơn c a các pha s n xu t c a m t s n ph m. Mơ hình này đư a thêm vào 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 b ưc l p li, m i b ưc b t đ u b ng vi c phân tích r i ro r i t o b n m u, c i to và phát tri n b n m u, duy t l i, và c th ti p t c (hình 1.3). N i dung m t b ưc gm b n ho t đ ng chính: - Lp k ho ch: xác đ nh m c tiêu, các gi i pháp và ràng bu c - Phân tích r i ro: phân tích các ph ươ ng án và xác đnh/gi i quy t r i ro - Cơng ngh : phát tri n s n ph m “m c ti p theo” - ðánh giá: đánh giá c a khách hàng v k t qu c a cơng ngh Vi m i l n l p xo n c (b t đ u t tâm), các phiên b n đưc hồn thi n d n. N u phân tích r i ro ch ra r ng yêu c u khơng ch c ch n thì b n m u cĩ th đưc s d ng trong giai đon cơng 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. Ti m t vịng xo n c, phân tích r i ro ph i đi đ n quy t đ nh “ti n hành ti p hay dng”. N u r i ro quá l n thì cĩ th đình ch d án. Mơ hình xo n c c ũng cĩ m t s v n đ nh ư khĩ thuy t ph c nh ng khách hàng l n rng cách ti p c n ti n hĩa là ki m sốt đưc. Nĩ địi h i tri th c chuyên gia đánh giá r i ro chính xác và d a trên tri th c chuyên gia này mà đt đưc thành cơng. Mơ hình xo n c địi h i n ăng l c qu n lý cao, n u khơng qu n lý t t thì r t d r ơi vào tr ng thái s a đ i cc b khơng cĩ k ho ch c a mơ hình làm b n m u (th ăm dị). Và mơ hình này cịn tươ ng đi m i và cịn ch ưa đưc s d ng r ng rãi nh ư vịng đi ho c làm b n m u. C n ph i cĩ thêm m t s n ăm n a tr ưc khi ng ưi ta cĩ th xác đ nh đưc tính hi u qu c a mơ hình này v i s ch c ch n hồn tồn. 15
  22. Lp k ho ch Phân tích r i ro K ho ch ban đ u Ri ro ban đ u Ri ro d a trên k ho ch s a đ i K ho ch d a trên đánh giá c a khách hàng Bn m u đ u tiên ðánh giá c a Bn m u ti p theo khách hàng ðánh giá Cơng ngh Hình 1.3. Mơ hình xo n c. 1.8.4. K thu t th h th t ư Thu t ng k thu t th h th t ư (4GT - fourth generation technology) bao g m m t ph m vi r ng các cơng c ph n m m cĩ các đim chung: - Cho phép ng ưi phát tri n xác đ nh m t s đ c trưng c a ph n m m m c cao. - T đ ng sinh ra mã ch ươ ng trình g c theo nhu c u c a ng ưi phát tri n. Hi n nhiên là ph n m m đưc bi u di n m c tr u t ưng càng cao thì ch ươ ng trình cĩ th đưc xây d ng càng nhanh h ơn. Mơ hình 4GT đi v i cơng ngh ph n m m t p trung vào kh n ăng xác đ nh ph n m m đ i v i m t máy m c đ g n v i ngơn ng t nhiên hay dùng m t ký pháp đem l i ch c n ăng cĩ ý ngh ĩa. Hi n t i, m t mơi tr ưng phát tri n ph n m m h tr cho khuơn c nh 4GT bao g m m t s hay t t c các cơng c sau: - ngơn ng phi th t c đ truy v n CSDL - b sinh báo cáo - b thao tác d li u - b t ươ ng tác và xác đnh màn hình - b sinh ch ươ ng trình - kh n ăng đ h a m c cao 16
  23. - kh n ăng làm trang tính - kh n ăng t o tài li u Mi m t trong nh ng cơng c này đã t n t i, nh ưng ch cho vài l ĩnh v c ng d ng đc thù. Ví d : các tính n ăng macro trong các ph n m m b ng tính, c ơ s d li u, kh năng t sinh mã trong các cơng c thi t k giao di n “kéo - th ” V i nh ng ng d ng nh , cĩ th chuy n tr c ti p t b ưc thu th p yêu c u sang cài đt b ng cơng c 4GT. Tuy nhiên v i nh ng h th ng l n, c n ph i cĩ m t chi n l ưc thi t k . Vi c dùng 4GT thi u thi t k (v i các d án l n) s gây ra nh ng khĩ kh ăn nh ư ch t l ưng kém, khĩ b o trì khi n cho ng ưi dùng khĩ ch p nh n. V n cịn nhi u tranh cãi xung quanh vi c dùng khuơn c nh 4GT: - Ng ưi ng h cho là 4GT làm gi m đáng k th i gian phát tri n ph n m m và làm tăng r t nhi u hi u su t c a ng ưi xây d ng ph n m m. - Nh ng ng ưi ph n đ i cho là các cơng c 4GT hi n t i khơng ph i t t c đ u d dùng hơn các ngơn ng l p trình, r ng 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 đưc phát tri n b ng cách dùng 4GT l i m ra v n đ m i. Cĩ th tĩm t t hi n tr ng c a cách ti p cn 4GT nh ư sau: - Lĩnh v c ng d ng hi n t i cho 4GT m i ch 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 là nhân t ch ch t cho các c ơ s d li u l n. Tuy nhiên, c ũng đã xu t hi n các cơng c CASE m i h tr cho vi c dùng 4GT đ t đ ng sinh ra khung ch ươ ng trình. - ði v i các ng d ng v a và nh : th i gian c n cho vi c t o ra ph n m m đưc gi m đáng k và kh i l ưng phân tích/thi t k c ũng đưc rút b t. - ði v i ng d ng l n: các ho t đ ng phân tích, thi t k và ki m th chi m ph n l n th i gian và vi c lo i b b t l p trình b ng cách dùng 4GT nhi u khi đem l i hi u qu khơng đáng k so v i tính r ưm rà, kém hi u qu c a ph n m m xây d ng b ng ph ươ ng pháp này. Tĩm l i, 4GT đã tr thành m t ph n quan tr ng c a vi c phát tri n ph n m m nghi p v và r t cĩ th s đưc s d ng r ng rãi trong các mi n ng d ng khác trong th i gian ti. 1.8.5. Mơ hình l p trình linh ho t Là quá trình mà trong đĩ c u trúc kh i đ ng s nh nh ưng linh đng và l n d n c a các đ án phn m m nh m tìm ra các khĩ kh ăn tr ưc khi nĩ tr thành v n đ cĩ th d n ti nh ng h y ho i. Quá trình này nh n m nh s g n nh và t p trung h ơn là các ph ươ ng pháp truy n th ng. Các quá trình linh ho t dùng các thơng tin ph n h i thay vì dùng các 17
  24. k ho ch, nh ư là m t c ơ ch di u khi n chính. Các thơng tin ph n h i cĩ đưc t các th nghi m và các phiên b n phát hành c a ph n m m tham gia. Các quá trình linh ho t th ưịng cĩ hi u qu h ơn các ph ươ ng pháp c ũ, nĩ dùng ít th i gian l p trình đ s n xu t ra nhi u ch c n ăng h ơn, ch t l ưng cao h ơn, nh ưng nĩ khơng cung c p m t kh n ăng k ho ch lâu dài. Mt cách ng n g n các phu ơng pháp này cung ng hi u qu cao nh t cho v n đ u t ư, nh ưng l i khơng đ nh rõ hi u qu gì. Lp trình c c đoan (XP - eXtreme Programming) do Kent Beck đ xu t là m t ph ươ ng pháp ti p c n m i cho phát tri n ph n m m. XP đưa ra nhi u h ưng d n m i, đơi khi trái ng ưc l i v i các cách th c phát tri n ph n m m đưc đ xu t t tr ưc đ n nay. Hai khái ni m đ c đáo m i và quan tr ng hàng đu trong XP là “t o các ca th nghi m tr ưc tiên” và “l p trình đơi”. a) T o các ca th nghi m tr ưc tiên Thơng th ưng, th nghi m (và tr ưc đĩ là t o ca th nghi m) đưc ti n hành vào giai đon cu i c a quá trình phát tri n, khi b n đã cĩ mã ngu n và chuy n sang ki m ch ng tính đúng đn c a nĩ. Nhi u tr ưng h p vi c ki m th khơng đưc coi tr ng và ch đưc ti n hành khi b n cịn th i gian và kinh phí. XP thay đi quan ni m này b ng cách đ t cho ki m th m t t m quan tr ng ngang b ng (cĩ th là l n h ơn) vi c vi t mã. Các ca ki m th đưc thi t k tr ưc khi vi t mã và ph i đưc th c hi n thành cơng m i khi ch ươ ng trình đích đưc t o ra. To ca th nghi m tr ưc đem l i nhi u l i th . Th nh t, nĩ giúp b n xác đ nh m t cách rõ ràng giao di n c a modun. H ơn th , đ t o đưc ca th nghi m, b n c n ph i hi u rõ ch c n ăng c a nĩ. T c là, XP yêu c u b n ph i hi u m t cách rõ ràng các yêu c u c a modun tr ưc khi b n b t tay vào phát tri n nĩ. b) L p trình đơi XP đư a ra khái ni m mang tính cách m ng (và trái ng ưc l i quan ni m t tr ưc đ n nay) là mã ngu n c a m t mơ đun ph i đưc vi t b i 2 l p trình viên dùng chung m t máy tính. Giá tr c a l p trình đơi là trong khi m t ng ưi vi t mã thì ng ưi th hai ngh ĩ v nĩ. Ng ưi th hai này s cĩ trong đ u m t b c tranh tồn th v vn đ c n gi i quy t, ch khơng ch là gi i pháp c a đon mã lúc đĩ. ðiu này s gián ti p đ m b o m t ch t lưng t t h ơn và d n t i m t gi i pháp mang tính t ng th h ơn. ðng th i, điu này giúp cho h theo đưc các ch d n c a XP, đ c bi t là vi c “t o ca th nghi m tr ưc”. N u ch mt ng ưi l p trình, h s r t d t b vi c này, nh ưng v i hai ng ưi l p trình cùng làm vi c thì h cĩ th thay đ i nhau và gi đưc các nguyên t c c a XP. 18
  25. 1.8.6. T h p các mơ hình Chúng ta đã xem xét các mơ hình cơng ngh ph n mm nh ư là các cách ti p c n khác nhau t i cơng ngh ph n m m ch khơng ph i là các cách ti p c n b sung cho nhau. Tuy nhiên trong nhi u tr ưng h p chúng ta cĩ th và c ũng nên t h p các khuơn c nh đ đ t đưc s c m nh c a t ng khuơn c nh cho m t d án riêng l . Ví d , khuơn c nh xo n c th c hi n điu này m t cách tr c ti p, t h p c làm b n m u và các y u t c a vịng đi c đin trong m t cách ti p c n ti n hĩa t i cơng ngh ph n m m. Các k thu t th h th tư cĩ th đưc dùng đ cài đt b n m u hay cài đt h th ng s n xu t trong b ưc mã hĩa ca vịng đi c đin. Chúng ta cĩ th làm b n m u trong b ưc phân tích c a mơ hình vịng đi c đin. Kt lu n đây là chúng ta khơng nên b l thu c v i b t c khuơn c nh c th nào. Tính ch t và qui mơ c a ph n mm c n phát tri n s là y u t quy t đ nh t i ch n khuơn cnh. M i cách ti p c n đ u cĩ ưu đim riêng và b ng cách t h p khéo léo các cách ti p cn thì chúng ta s cĩ m t ph ươ ng pháp h n h p ưu vi t h ơn các ph ươ ng pháp đưc dùng đc l p. 1.8.7. Tính kh th c a quá trình cơng ngh Do đc đim là các ph n t lơgic nên quá trình phát tri n ph n m m r t khĩ ki m sốt. Ng ưi ta tìm cách kh c ph c v n đ này b ng cách làm cho quá trình phát tri n tr nên “nhìn th y đưc”, t c là m i b ưc (ho t đ ng) trong ti n trình phát tri n ph i t o ra mt s n ph m hay tài li u t ươ ng ng. Ng ưi qu n lý d án và c khách hàng s ti n hành xét duy t các tài li u này. Các tài li u s tr nên r t h u ích cho cơng đon ki m th và nâng c p ph n m m. Ví d , đ i v i ho t đ ng phân tích chúng ta cĩ các tài li u nh ư: báo cáo nghiên c u kh thi, mơ hình h th ng, phác h a yêu c u, đ c t yêu c u Chúng ta hãy so sánh tính kh th c a các khuơn c nh đã bi t: - Vịng đi c đin cĩ tính kh th cao do các b ưc phát tri n t ưng minh, mơ hình xo n c c ũng cĩ tính kh th t t. - ði v i mơ hình làm b n m u, n u t n s s a ch a là l n thì tính kh th kém và vi c to ra tài li u là khơng hi u qu . - 4GT thì m i ch dùng v i nh ng ng d ng nghi p v đ c thù nên khĩ phát bi u gì v tính kh th c a nĩ. Vi c xây d ng tài li u c ũng cĩ nh ng v n đ nh ư: - To ra các chi phí ph làm ch m ti n trình phát tri n - Khi phát hi n v n đ v thi t k , nhi u khi do khơng mu n thay đ i các tài li u đã đưc xét duy t, ng ưi phát tri n cĩ xu h ưng dùng các gi i pháp c c b khơng hi u qu . 19
  26. Các mơ hình phát tri n truy n th ng th ưng chú tr ng t i khâu l p tài li u đ nâng cao tính kh th . Ng ưc l i, mơ hình l p trình c c đoan (XP) l i khơng khuy n khích vi c to nhi u tài li u. 1.8.8. Vn đ gi m kích c c a ph n m m Nh ư chúng ta đã bi t, ph n m m hi n nay càng l n, càng ph c t p. M t m t, n ăng lc c a nhĩm l p trình khơng ph i là tuy n tính so v i n ăng l c c a t ng cá nhân. ð ph c t p c ũng t ăng theo c p s nhân, kéo theo chi phí c ũng t ăng theo c p s nhân so v i kích c ca ch ươ ng trình c n phát tri n. Do đĩ, vi c tìm cách gi m kích c , đ ph c t p ca ch ươ ng trình là ưu tiên hàng đu c a cơng ngh ph n m m. T i các b ưc phân tích thi t k , gi m kích c đưc th c hi n thơng qua áp d ng chi n l ưc “chia đ tr ”. T c là chúng ta chia ph n m m thành các modun con cĩ tính đc l p cao. ð ph c t p c a t ng modun s nh h ơn nhi u so v i c h th ng, các modun con c ũng cĩ th đưc phát tri n song song. T i giai đon mã hĩa, gi m kích c cĩ th th c hi n đưc thơng qua các ph ươ ng th c nh ư: - Dùng l i: dùng l i các th ư vi n đã phát tri n, các th ư vi n th ươ ng m i - T sinh mã: s d ng các cơng c t đ ng h tr cơng ngh ph n m m (visual modeling tools, GUI builders, CASE tools ) - K thu t h ưng đ i t ưng: k thu t h ưng đ i t ưng h tr phát tri n modun cĩ tính dùng l i cao nh cĩ c ơ ch che d u thơng tin và kh n ăng k th a - Dùng các ngơn ng b c cao (các ngơn ng cĩ c u trúc và n ăng l c bi u di n cao) Chúng ta xem xét ví d v vi c l a ch n ngơn ng . Vi c ch n ngơn ng ph thu c nhi u vào mi n ng d ng, các ràng bu c v hi u n ăng c a ph n m m, tuy nhiên n ăng lc bi u di n c a ngơn ng c ũng là m t y u t quan tr ng. B ng 1.1 đưa ra m t th ng kê liên quan đn n ăng l c bi u di n c a ngơn ng : s dịng l nh/ đơn v ch c n ăng. VB khơng ph i là m t ngơn ng cĩ c u trúc cao nh ưng đưc s d ng r ng rãi trong các ng d ng v a và nh cho mơi tr ưng Windows. Ngồi tính d h c, d dùng, m t trong nh ng nguyên nhân giúp VB lan r ng chính là n ăng l c bi u di n cao. Bng 1.1. Năng l c bi u di n c a ngơn ng Ngơn ng LOC/FP Assembly 320 C 128 FORTRAN 77 105 COBOL 85 91 Ada 83 71 C++ 56 Ada 95 55 Java 55 20
  27. Visual Basic 35 1.9. Cái nhìn chung v cơng ngh ph n m m Ti n trình phát tri n cơng ngh ph n m m ch a ba giai đon chính b t k mơ hình cơng ngh ph n m m đưc ch n l a. Ba giai đon này là xác đnh, phát tri n và b o trì, đưc g p ph i trong m i d án phát tri n ph n m m, b t k t i mi n ng d ng, kích c và đ ph c t p. Giai đon xác đ nh t p trung vào khái ni m cái gì. T c là trong khi xác đnh, ng ưi phát tri n ph n m m c g ng t p trung vào xác đnh thơng tin nào c n đưc x lý, ch c năng và hi u n ăng nào là c n cĩ, giao di n nào c n đưc thi t l p, ràng bu c thi t k nào hi n cĩ và tiêu chu n h p l nào c n cĩ đ xác đ nh ra m t h th ng thành cơng. Yêu c u ch ch t c a h th ng và ph n m m c ũng đưc xác đ nh. M c d u các ph ươ ng pháp đưc áp d ng trong giai đon xác đ nh thay đ i tùy theo mơ hình cơng ngh ph n m m (hay t h p các mơ hình) đưc áp dng, cĩ ba b ưc riêng v n xu t hi n d ưi dng: - Phân tích h th ng: Phân tích h th ng xác đ nh ra vai trị c a t ng ph n t trong m t h th ng d a trên máy tính, t c là v ch ra vai trị mà ph n m m (c n phát tri n) s gi . - Lp k ho ch d án ph n m m: M t khi vai trị c a ph n m m đã đưc thi t l p, r i ro đã đưc phân tích, tài nguyên đã đưc c p phát, chi phí đã đưc ưc l ưng thì ph i xác đnh c th các cơng vi c c n th c hi n và l p l ch th c hi n chúng. - Phân tích yêu c u: Trong b ưc phân tích h th ng chúng ta ch xác đ nh đưc vai trị chung c a ph n m m. Sau khi đã chính th c quy t đinh phát tri n ph n m m, chúng ta c n ph i phân tích đ xác đ nh chi ti t l ĩnh v c thơng tin, các ch c n ăng c ũng nh ư các ràng bu c khi v n hành c a ph n m m. Phân tích yêu c u là khâu k thu t quan tr ng đ u tiên đ đ m b o ch t l ưng (tính đáng tin c y) c a ph n m m. N u xác đ nh sai yêu c u thì các b ưc k thu t khác cĩ t t đn đâu thì ph n m m c ũng s khơng đưc đưa vào s d ng. Giai đon phát tri n t p trung vào khái ni m th nào. T c là, trong giai đon này ng ưi phát tri n ph n m m t ng b ưc xác đ nh cách c u trúc d li u và ki n trúc ph n mm c n xây d ng, cách các chi ti t th t c đưc cài đt, cách d ch thi t k vào ngơn ng lp trình (hay ngơn ng phi th t c) và cách th c hi n ki m th . Ph ươ ng pháp đưc áp dng trong giai đon phát tri n s thay đ i tùy theo mơ hình nh ưng cĩ ba b ưc đ c thù bao gi c ũng xu t hi n d ưi d ng: 21
  28. - Thi t k ph n m m: Là quá trình “d ch” các yêu c u ph n m m thành m t t p các bi u di n (d a trên đ h a, b ng, hay ngơn ng ), mơ t cho c u trúc d li u, ki n trúc, th t c thu t tốn và đc tr ưng giao di n. - Mã hĩa: Các bi u di n thi t k ph i đưc bi u di n b i m t (hay m t vài) ngơn ng nhân t o (ngơn ng l p trình qui ưc hay ngơn ng phi th t c đưc dùng trong khuơn c nh 4GT) mà s t o ra k t qu là các l nh th c hi n đưc trên máy tính. - Ki m th ph n m m: Mt khi ph n m m đã đưc cài đt d ưi d ng máy th c hi n đưc, c n ph i ki m th nĩ đ phát hi n các l i phân tích, thi t k , cài đt và đánh giá tính hi u qu . Giai đon b o trì t p trung vào nh ng 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 hĩa và s nâng cao gây ra b i s thay đ i yêu c u c a ng ưi dùng. Giai đon b o trì áp d ng l i các b ưc c a giai đon xác đnh và phát tri n, nh ưng là vi c th c hi n trong hồn c nh ph n m m hi n cĩ. Cĩ ba ki u thay đ i g p ph i trong giai đon b o trì: - Sa đ i: Cho dù cĩ các ho t đ ng b o đ m ch t l ưng t t nh t, v n cĩ th là khách hàng s phát hi n ra khi m khuy t trong ph n m m. B o trì s a đ i làm thay đi ph n mm đ s a các khi m khuy t (l i l p trình, thu t tốn, thi t k ). - Thích nghi: Qua th i gian, mơi tr ưng ban đ u (nh ư CPU, h điu hành, ngo i vi) đ phát tri n ph n m m cĩ th s thay đ i. B o trì thích nghi th c hi n vi c s a đ i ph n mm đ thích h p v i nh ng thay đ i mơi tr ưng ngồi. - Nâng cao: Khi ph n m m đưc dùng, khách hàng/ng ưi dùng s nh n ra nh ng ch c năng ph s cĩ l i. B o trì hồn thi n m r ng ph n m m ra ngồi các yêu c u ch c năng g c c a nĩ. 1.10. Hưng t ươ ng lai c a cơng ngh ph n m m Lp trình đnh d ng và các ph ươ ng pháp linh ho t s gi vai trị quan tr ng trong tươ ng lai c a cơng ngh ph n m m. ICSE 2005 đã tham gia theo dõi c hai ch đ này. (ICSE là d ng vi t t t c a International Conference on Software Engineering t c là H i ngh Qu c t v K ngh Ph n m m.) - Lp trình đnh d ng (aspect-oriented programming) s giúp ng ưi l p trình ng x vi các yêu c u khơng liên quan đn các ch c n ăng th c t c a ph n m m b ng cách cung ng các cơng c đ thêm hay b t các kh i mã ít b thay đ i trong nhi u vùng ca c a mã ngu n. L p trình đnh d ng mơ t các đ i t ưng và hàm nên ng x nh ư th nào trong m t tình hu ng c th . 22
  29. Thí d : L p trình đnh d ng cĩ thêm vào các c ơ c u ki m sốt hi u ch nh l i, biên b n và khố cho t t c các đ i t ưng c a m t s ki u. Các nhà nghiên c u đang tìm cách ng dng l p trình đnh d ng đ thi t k mã cho m c tiêu thơng th ưng. - Phát tri n ph n m m linh ho t: nh m h ưng d n các đ án phát tri n ph n m m mà trong đĩ bao g m vi c tho mãn các nhu c u thay đ i và s c nh tranh c a th tr ưng mt cách nhanh chĩng. Các quá trình c ng k nh, n ng v h s ơ tính nh ư là TickIT, CMM và ISO 9000 đang lu m d n t m quan tr ng. Hi ngh Future of Software Engineering (FOSE) tin r ng ICSE 2000 đã h s ơ hố các tính n ăng hi n đ i nh t c a k ngh ph n m m và nêu ra nhi u v n đ c n đưc gi i quy t trong th p niên t i. ð án Feyerabend cĩ ý đ nh tìm hi u t ươ ng lai c a k ngh ph n m m qua tìm ki m và xu t b n các ý ki n sáng t o. 1.11. Tng k t Ph n m m đã tr thành ph n t ch ch t c a các h th ng máy tính. Phát tri n ph n mm đã ti n hĩa t xây d ng m t cơng c x lý thơng tin thành m t ngành cơng nghi p. Ph n m m là ph n t lơgíc cho nên vi c ki m sốt nĩ khĩ h ơn nhi u so v i ph n t vt lý. Khĩ cĩ th t i ưu hĩa đng th i các tính n ăng c n cĩ c a ph n m m. Ví d , các tính năng nh ư giao di n đ h a d s d ng và s ho t đ ng hi u qu , tích ki m tài nguyên h th ng trong h u h t các tr ưng h p là lo i tr l n nhau. Thách th c l n đ i v i vi c phát tri n ph n m m là chúng ta ph i xây d ng ph n m m t t theo m t l ch trình và kinh phí đnh tr ưc. Cơng 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 và th t c đ phát tri n ph n m m máy tính. Cĩ m t s mơ hình khác nhau cho cơng ngh ph n mm, m i mơ hình đu cĩ nh ng m t m nh và đim y u, nh ưng nĩi chung t t c đ u cĩ mt dãy các giai đon t ng quát là: xác đnh, phát tri n và b o trì. 23
  30. CH ƯƠ NG 2. PHÂN TÍCH VÀ ðC T YÊU C U 2.1. ði c ươ ng v phân tích và đc t Phân tích và đnh rõ yêu c u là b ưc k thu t đ u tiên trong ti n trình cơng ngh ph n mm. Cơng vi c b ưc này là tìm hi u xem chúng ta ph i phát tri n cái gì, ch khơng ph i là phát tri n nh ư th nào. ðích cu i cùng c a khâu phân tích là t o ra đ c t yêu c u, là tài li u ràng bu c gi a khách hàng và ng ưi phát tri n và là c ơ s c a h p đ ng. Ho t đ ng phân tích là ho t đ ng ph i h p gi a khách hàng và ng ưi phân tích (bên phát tri n). Khách hàng phát bi u yêu c u và ng ưi phân tích hi u, c th hĩa và bi u di n l i yêu c u. Ho t đ ng phân tích gi m t vai trị đc bi t quan tr ng trong phát tri n ph n m m, giúp cho đ m b o ch t l ưng c a ph n m m (ph n m m đáng tin c y). Ph n mm đáng tin c y cĩ ngh ĩa là ph i th c hi n đưc chính xác, đ y đ yêu c u c a ng ưi s d ng. N u phân tích khơng t t d n đ n hi u l m yêu c u thì vi c s a ch a s tr nên rt t n kém. Chi phí đ s a ch a sai sĩt v yêu c u s t ăng lên g p b i n u nh ư sai sĩt đĩ đưc phát hi n mu n, ví d nh ư b ưc thi t k hay mã hĩa. Vi c phân tích, n m b t yêu c u th ưng g p các khĩ kh ăn nh ư - Các yêu c u th ưng mang tính đ c thù c a t ch c đ t hàng nĩ, do đĩ nĩ th ưng khĩ hi u, khĩ đ nh ngh ĩa và khơng cĩ chu n bi u di n - Các h th ng thơng tin l n cĩ nhi u ng ưi s d ng thì các yêu c u th ưng r t đa d ng và cĩ các m c ưu tiên khác nhau, th m chí mâu thu n l n nhau - Ng ưi đ t hàng nhi u khi là các nhà qu n lý, khơng ph i là ng ưi dùng th c s do đĩ vi c phát bi u yêu c u th ưng khơng chính xác Trong phân tích c n phân bi t gi a yêu c u và m c tiêu c a h th ng. Yêu c u là m t địi h i mà chúng ta cĩ th ki m tra đưc cịn m c tiêu là cái tr u t ưng h ơn mà chúng ta hưng t i. Ví d , giao di n c a h th ng ph i thân thi n v i ng ưi s d ng là m t m c tiêu và nĩ t ươ ng đi khơng khách quan và khĩ ki m tra. Cĩ ngh ĩa là v i m t phát bi u chung chung nh ư v y thì khách hàng và nhà phát tri n khĩ đ nh ra đưc m t ranh gi i rõ ràng đ nĩi r ng ph n m m đã th a mãn đưc địi h i đĩ. V i m t m c tiêu nh ư v y, m t yêu c u cho nhà phát tri n cĩ th là giao di n đ h a mà các l nh ph i đưc ch n b ng menu. Mc đích c a giai đon phân tích là xác đnh rõ các yêu c u c a ph n m m c n phát tri n. Tài li u yêu c u nên d hi u v i ng ưi dùng, đng th i ph i ch t ch đ làm c ơ s cho h p đ ng và đ cho ng ưi phát tri n d a vào đĩ đ xây d ng phn m m. Do đĩ yêu 24
  31. cu th ưng đưc mơ t nhi u m c chi ti t khác nhau ph c v cho các đ i t ưng đ c khác nhau. Các m c đĩ cĩ th là: - ðnh ngh ĩa (xác đ nh) yêu c u: mơ t m t cách d hi u, v n t t v yêu c u, h ưng vào đi t ưng ng ưi đ c là ng ưi s d ng, ng ưi qu n lý - ðc t yêu c u: mơ t chi ti t v các yêu c u, các ràng bu c c a h th ng, ph i chính xác sao cho ng ưi đ c khơng hi u nh m yêu c u, h ưng vào đi t ưng ng ưi đ c là các k s ư ph n m m (ng ưi phát tri n), k s ư h th ng (s làm vi c b o trì) Các tài li u yêu c u c n đưc th m đ nh đ đ m b o th a mãn nhu c u ng ưi dùng. ðây là cơng vi c b t bu c đ đ m b o ch t l ưng ph n m m. ðơi khi vi c xác đ nh đ y đ yêu c u tr ưc khi phát tri n h th ng là khơng th c t và khi đĩ vi c xây d ng các b n mu đ n m b t yêu c u là c n thi t. Nghiên c u Phân tích kh thi yêu c u Xác đnh yêu c u Báo cáo kh thi ðc t yêu c u Mơ hình h th ng Tài li u đnh ngh ĩa yêu c u Tài li u yêu c u Tài li u đ c t yêu c u Hình 2.1. Quá trình hình thành các yêu c u. 2.2. Nghiên c u kh thi ðây là giai đon cĩ t m quan tr ng đ c bi t, vì nĩ liên quan đn vi c l a ch n gi i pháp. Trong giai đon này ng ưi phân tích ph i làm rõ đưc các đim m nh và đim y u ca h th ng c ũ, đánh giá đưc m c đ , t m quan tr ng c a t ng v n đ , đ nh ra các v n đ c n ph i gi i quy t (ví d : nh ng d ch v m i, th i h n đáp ng, hi u qu kinh t ). Sau đĩ ng ưi phân tích ph i đ nh ra m t vài gi i pháp cĩ th (s ơ b ) và so sánh cân nh c các đim t t và khơng t t c a các gi i pháp đĩ (nh ư tính n ăng c a h th ng, giá c cài đt, b o trì, vi c đào t o ng ưi s d ng ). ðĩ là vi c tìm ra mt đim cân b ng gi a nhu cu và kh n ăng đáp ng. M i d án đ u kh thi khi ngu n tài nguyên vơ h n và th i gian vơ h n. Nh ưng vi c xây d ng h th ng l i ph i làm v i s h n h p v tài nguyên và khĩ 25
  32. (n u khơng ph i là khơng hi n th c) b o đ m đúng ngày bàn giao. Phân tích kh thi và ri ro cĩ liên quan v i nhau theo nhi u cách. N u r i ro c a d án là l n thì tính kh thi ca vi c ch t o ph n m m cĩ ch t l ưng s b gi m đi. Trong giai đon nghiên c u kh thi, chúng ta t p trung vào b n l ĩnh v c quan tâm chính: 2.2.1. Kh thi v kinh t Chi phí phát tri n c n ph i cân x ng v i l i ích mà h th ng đưc xây d ng đem l i. Tính kh thi v kinh t th hi n trên các n i dung sau: - Kh n ăng tài chính c a t ch c cho phép th c hi n d án. - Li ích mà d án phát tri n HTTT mang l i đ bù đp chi phí ph i b ra xây d ng nĩ. - T ch c ch p nh n đưc nh ng chi phí th ưng xuyên khi h th ng ho t đ ng Mt thu t ng hay dùng đ ch tài li u nghiên c u kh thi v kinh t là lu n ch ng kinh t . Lu n ch ng kinh t nĩi chung đưc coi nh ư n n t ng cho h u h t các h th ng (các ngo i l là h th ng qu c phịng, h th ng lu t, các h th ng ph c v cho các nghiên cu đ c bi t). Lu n ch ng kinh t bao g m: - các m i quan tâm, nh t là phân tích chi phí/l i ích - chi n l ưc phát tri n dài hn c a cơng ty - s nh h ưng t i các s n ph m l i nhu n khác - chi phí cho tài nguyên c n cho vi c xây d ng và phát tri n th tr ưng ti m n ăng 2.2.2. Kh thi v k thu t Kho c u v ch c n ăng, hi u su t và ràng bu c cĩ th nh h ưng t i kh n ăng đ t t i mt h thng ch p nh n đưc. Nĩi cách khác, kh thi k thu t là xem xét kh n ăng k thu t hi n t i cĩ đ đ m b o th c hi n gi i pháp cơng ngh d đ nh áp d ng hay khơng. Kh thi k thu t th ưng là l ĩnh v c khĩ thâm nh p nh t t i giai đon phân tích. ðiu th c ch t là ti n trình phân tích và xác đnh nhu c u c n đưc ti n hành song song v i vi c xác nh n tính kh thi k thu t. Các xem xét th ưng đưc g n v i tính kh thi k thu t bao g m: - Ri ro xây d ng: li u các ph n t h th ng cĩ th đưc thi t k sao cho đ t đưc ch c năng và hi u su t c n thi t th a mãn nh ng ràng bu c trong khi phân tích khơng? - Cĩ s n tài nguyên: cĩ s n các nhân viên cho vi c xây d ng ph n t h th ng đang xét khơng? Các tài nguyên c n thi t khác (ph n c ng và ph n m m) cĩ s n cho vi c xây dng h th ng khơng ? 26
  33. - Cơng ngh : cơng ngh liên quan đã đt t i tr ng thái s n sàng h tr cho h th ng ch ưa? 2.2.3. Kh thi v pháp lý Nghiên c u và đư a ra phán quy t v cĩ hay khơng s xâm ph m, vi ph m pháp lu t hay khĩ kh ăn pháp lý t vi c xây d ng và v n hành h th ng. Tính kh thi pháp lý bao gm m t ph m vi r ng các m i quan tâm k c h p đ ng, ngh ĩa v pháp lý, s vi ph m và vơ s các b y pháp lý khác mà th ưng là các nhân viên k thu t khơng bi t t i. Trong nưc, v n đ kh thi v pháp lý v n ch ưa đưc coi tr ng m t cách đúng m c m c dù đã cĩ m t s lu t liên quan đn CNTT và b o h b n quy n. 2.2.4. Tính kh thi v ho t đ ng ðánh giá tính kh thi c a vi c v n hành h th ng. Trong m i ph ươ ng án ng ưi ta c n xem xét h th ng cĩ th v n hành trơi ch y hay khơng trong khuơn kh t ch c và điu ki n qu n lý mà t ch c đĩ (ng ưi dùng, khách hàng) cĩ. M c đ các ph ươ ng án đưc xem xét t i trong nghiên c u kh thi th ưng b gi i h n b i các ràng bu c v chi phí và th i gian. 2.3. Nn t ng c a phân tích yêu c u 2.3.1. Các nguyên lý phân tích Trên hai th p k qua, ng ưi ta đã xây d ng ra m t s ph ươ ng pháp phân tích và đc t ph n m m. Nh ng ng ưi nghiên c u đã xác đnh ra các v n đ và nguyên nhân c a chúng, và đã xây d ng ra các qui t c và th t c đ v ưt qua chúng. M i ph ươ ng pháp đu cĩ kí pháp và quan đim riêng. Tuy nhiên, t t c các ph ươ ng pháp này đu cĩ quan h v i mt t p h p các nguyên lý c ơ b n: - Mi n thơng tin c a v n đ ph i đưc bi u di n l i và hi u rõ. - Các mơ hình mơ t cho thơng tin, ch c n ăng và hành vi h th ng c n ph i đưc xây dng. - Các mơ hình (và v n đ ) ph i đưc phân ho ch theo cách đ l ra các chi ti t theo ki u phân t ng (hay c p b c). - Ti n trình phân tích ph i đi t thơng tin b n ch t h ưng t i chi ti t cài đt. B ng cách áp d ng nh ng nguyên lý này, ng ưi phân tích ti p c n t i v n đ m t cách h th ng. Mi n thơng tin c n đưc xem xét sao cho ng ưi ta cĩ th hi u rõ ch c n ăng m t cách đy đ . Các mơ hình đưc dùng đ cho vi c trao đ i thơng tin đưc d dàng theo m t cách ng n g n. Vi c phân ho ch v n đ đưc s d ng đ làm gi m đ ph c t p. Nh ng cách nhìn nh n c t gĩc đ b n ch t và gĩc đ cài đt v ph n m m đ u c n thi t đ bao 27
  34. hàm đưc các ràng bu c logic do yêu c u x lý áp đ t nên cùng các ràng bu c v t lý do các ph n t h th ng khác áp đ t nên. 2.3.2. Mơ hình hĩa Chúng ta t o ra các mơ hình đ thu đưc hi u bi t rõ h ơn v th c th th c t c n xây dng. Khi th c th là m t v t v t lý (nh ư tồ nhà, máy bay, máy mĩc) thì ta cĩ th xây dng m t mơ hình gi ng h t v hình d ng, nh ưng nh h ơn v qui mơ. Tuy nhiên, khi th c th c n xây d ng là ph n m m, thì mơ hình c a chúng ta ph i mang d ng khác. Nĩ ph i cĩ kh n ăng mơ hình hĩa thơng tin mà ph n m m bi n đ i, các ch c n ăng (và ch c năng con) làm cho phép bi n đ i đĩ th c hi n đưc, và hành vi c a h th ng khi phép bi n đ i x y ra. Trong khi phân tích các yêu c u ph n m m, chúng ta t o ra các mơ hình v h th ng cn xây d ng. Các mơ hình t p trung vào điu h th ng ph i th c hi n, khơng chú ý đ n cách th c nĩ th c hi n. Trong nhi u tr ưng h p, các mơ hình chúng ta t o ra cĩ dùng kí pháp đ ho mơ t cho thơng tin, x lý, hành vi h th ng, và các đc tr ưng khác thơng qua các bi u t ưng phân bi t và d nh n di n. Nh ng ph n khác c a mơ hình cĩ th thu n túy v ăn b n. Thơng tin mơ t cĩ th đưc cung c p b ng cách dùng m t ngơn ng t nhiên hay m t ngơn ng chuyên d ng cho mơ t yêu c u. Các mơ hình đưc t o ra trong khi phân tích yêu c u cịn đĩng m t s vai trị quan tr ng: - Mơ hình tr giúp cho ng ưi phân tích trong vi c hi u v thơng tin, ch c n ăng và hành vi c a h th ng, do đĩ làm cho nhi m v phân tích yêu c u đưc d dàng và h th ng hơn. - Mơ hình tr thành tiêu đim cho vi c xem xét và do đĩ, tr thành ph n m u ch t cho vi c xác đ nh tính đ y đ , nh t quán và chính xác c a đ c t . - Mơ hình tr thành n n tng cho thi t k , cung c p cho ng ưi thi t k m t cách bi u di n ch y u v ph n m m cĩ th đưc “ánh x ” vào hồn c nh cài đt. Dưi đây là m t s mơ hình (ph ươ ng pháp) hay đưc dùng trong phân tích: a) Bi u đ lu ng d li u Khi thơng tin đi qua ph n mm nĩ b thay đ i b i m t lo t các phép bi n đ i. Bi u đ lu ng d li u (Data Flow Diagram - DFD) là m t k thu t v ra lu ng d li u di chuy n trong h th ng và nh ng phép bi n đ i đưc áp d ng lên d li u. Ký pháp c ơ b n c a bi u đ lu ng d li u đưc minh h a trên hình 2.2. 28
  35. Kho d li u Tác nhân Ti n trình Lu ng d li u Hình 2.2. Ký pháp DFD. Bi u đ lu ng d li u cĩ th đưc dùng đ bi u di n cho m t h th ng hay ph n m m b t kì m c tr u t ưng nào. Trong th c t , DFD cĩ th đưc phân ho ch thành nhi u mc bi u di n cho chi ti t ch c n ăng và lu ng thơng tin ngày càng t ăng. Do đĩ ph ươ ng pháp dùng DFD cịn đưc g i là phân tích cĩ c u trúc. M t DFD m c 0, c ũng cịn đưc gi là bi u đ n n t ng hay bi u đ ng c nh h th ng, biu di n cho tồn b ph n t ph n m m nh ư m t hình trịn v i d li u vào và ra đưc ch ra b i các m ũi tên t i và đi tươ ng ng. M t DFD m c 1 c th hĩa c a DFD m c 0 và cĩ th ch a nhi u hình trịn (ch c n ăng) v i các m ũi tên (lu ng d li u) n i l n nhau. M i m t trong các ti n trình đưc bi u di n m c 1 đ u là ch c n ăng con c a tồn b h th ng đưc mơ t trong bi u đ ng c nh. Hình 2.3 minh h a m t DFD cho h th ng bán vé t u. 29
  36. ðt vé H th ng Khách hàng bán vé Vé DFD m c 0 Bng gi tàu Khách hàng Ki m tra Phân tích gi tàu đơ n đt vé ðt ch Phát hành vé Khách hàng Ch đ đ t Bng giá vé DFD m c 1 Hình 2.3. Bi u đ lu ng d li u c a m t h th ng bán vé t u. b) Bi u đ th c th quan h Ký pháp n n t ng cho mơ hình hĩa d li u là bi u đ th c th - quan h (Entity - Relation Diagram). T t c đ u xác đ nh m t t p các thành ph n ch y u cho bi u đ ERD: th c th , thu c tính, quan h và nhi u ch báo ki u khác nhau. M c đích chính c a bi u đ ERD là bi u di n d li u và m i quan h c a các d li u (th c th ). Ký pháp c a bi u đ ERD cũng t ươ ng đi đơn gi n. Các th c th đưc bi u di n bng các hình ch nht cĩ nhãn. M i quan h đưc ch ra b ng hình thoi. Các m i n i gi a s v t d li u và m i quan h đưc thi t l p b ng cách dùng nhi u đưng n i đ c bi t (hình 2.4). 30
  37. Th c th Thu c tính K th a Quan h Ph ươ ng ti n Bi n Ng ưi giao thơng Cĩ đă ng ký Xe máy Hình 2.4. Mơ hình th c th quan h ng ưi - ph ươ ng ti n giao thơng. 2.3.3. Ng ưi phân tích Ng ưi phân tích đĩng vai trị đc bi t quan tr ng trong ti n trình phân tích. Ngồi kinh nghi m, m t ng ưi phân tích t t c n cĩ các kh n ăng sau: - Kh n ăng hi u th u các khái ni m tr u t ưng, cĩ kh n ăng t ch c l i thành các phân tích logic và t ng h p các gi i pháp d a trên t ng d i phân chia. - Kh n ăng rút ra các s ki n thích đáng t các ngu n xung kh c và l n l n. - Kh n ăng hi u đưc mơi tr ưng ng ưi dùng/khách hàng. - Kh n ăng áp d ng các ph n t h th ng ph n c ng và/ho c ph n m m vào mơi tr ưng ng ưi s d ng/khách hàng. - Kh n ăng giao ti p t t d ng vi t và nĩi. - Kh n ăng tr u t ưng hĩa/t ng h p v n đ t các s ki n riêng l . 2.4. Xác đnh và đc t yêu c u 2.4.1. Xác đnh yêu c u Xác đnh yêu c u là mơ t tr u t ưng v các d ch v mà h th ng c n cung c p và các ràng bu c mà h th ng c n tuân th khi v n hành. Nĩ ch mơ t các hành vi bên ngồi 31
  38. ca h th ng mà khơng liên quan t i các chi ti t thi t k . Yêu c u nên đưc vi t sao cho cĩ th hi u mà khơng c n m t ki n th c chuyên mơn đc bi t nào. Các yêu c u đưc chia thành hai lo i: - Các yêu c u ch c n ăng: các d ch v mà h th ng c n cung c p - Các yêu c u phi ch c n ăng: các ràng bu c mà h th ng c n tuân th . Các yêu c u phi ch c n ăng cĩ th chia làm 3 ki u: - Yêu c u s n ph m: các yêu c u v t c đ , b nh , đ tin c y, v tính kh chuy n và tái s d ng - Yêu c u v quá trình: yêu c u đ i v i quá trình xây d ng s n ph m nh ư các chu n ph i tuân theo, các ph ươ ng pháp thi t k , ngơn ng l p trình - Yêu c u khác: các yêu c u khơng thu c hai nhĩm trên nh ư v tính pháp lý, v chi phí, v thành viên nhĩm phát tri n Các yêu c u phi ch c n ăng th ưng r t đ c thù v i t ng khách hàng và do đĩ khĩ phân tích và đc t m t cách đ y đ và chính xác. V nguyên t c, yêu c u c a h th ng ph i v a đ y đ v a khơng đưc mâu thu n nhau. ði v i các h th ng l n ph c t p thì chúng ta khĩ đt đưc hai y u t này trong các b ưc phân tích đ u. Trong các b ưc duy t l i yêu c u c n ph i b sung, ch nh lý t ư li u yêu c u. 2.4.2. ðc t yêu c u Tài li u xác đ nh yêu c u là mơ t h ưng khách hàng và đưc vi t b i ngơn ng c a khách hàng. Khi đĩ cĩ th dùng ngơn ng t nhiên và các khái ni m tr u t ưng. Tài li u dc t yêu c u ( đ c t ch c n ăng) là mơ t h ưng ng ưi phát tri n, là c ơ s c a h p đ ng làm ph n m m. Nĩ khơng đưc phép m ơ h , n u khơng s d n đ n s hi u nh m b i khách hàng ho c ng ưi phát tri n. V i m t yêu c u m ơ h thì ng ưi phát tri n s th c hi n nĩ m t cách r nh t cịn khách hàng thì khơng mu n v y. Do đĩ khách hàng cĩ th địi h i s a đ i ch c n ăng ph n m m khi nĩ đã g n hồn thi n khi n cho chi phí t ăng và ch m th i đim bàn giao. Chi phí cho s a các sai sĩt trong phát bi u yêu c u là r t l n, đc bi t là khi các sai sĩt này đưc phát hi n khi đã b t đ u xây d ng h th ng. Theo m t s th ng kê thì 85% mã ph i vi t l i do thay đ i yêu c u và 12% l i phát hi n trong 3 năm đu s d ng là do đc t yêu c u khơng chính xác. Do đĩ, vi c đ c t chính xác yêu cu là m i quan tâm đưc đ t lên hàng đu. Cĩ hai ph ươ ng pháp đc t là - ðc t phi hình th c: là cách đc t b ng ngơn ng t nhiên - ðc t hình th c: là cách đc t b ng các ngơn ng nhân t o (ngơn ng đ c t ), các cơng th c và bi u đ 32
  39. ðc t phi hình th c (ngơn ng t nhiên) thu n ti n cho vi c xác đ nh yêu c u nh ưng nhi u khi khơng thích h p v i đ c t yêu c u vì: - Khơng ph i lúc nào ng ưi đ c và ng ưi vi t đ c t b ng ngơn ng t nhiên c ũng hi u các t nh ư nhau. - Ngơn ng t nhiên quá m m d o do đĩ các yêu c u liên quan đn nhau cĩ th đưc bi u di n b ng các hình th c hồn tồn khác nhau và ng ưi phát tri n khơng nh n ra các m i liên quan này. - Các yêu c u khĩ đưc phân ho ch m t cách h u hi u do đĩ hi u qu c a vi c đ i thay ch cĩ th xác đ nh đưc b ng cách ki m tra t t c các yêu c u ch khơng ph i mt nhĩm các yêu c u liên quan. Các ngơn ng đ c t ( đ c t hình th c) kh c ph c đưc các h n ch trên, tuy nhiên đa s khách hàng l i khơng thơng th o các ngơn ng này. Thêm n a m i ngơn ng đ c t hình th c th ưng ch ph c v cho m t nhĩm l ĩnh v c riêng bi t và vi c đ c t hình th c là m t cơng vi c t n kém th i gian. Mt cách ti p c n là bên c nh các đ c t hình th c ng ưi ta vi t các chú gi i b ng ngơn ng t nhiên đ giúp khách hành d hi u. 2.4.3. Th m đ nh yêu c u Mt khi các yêu c u đã đưc thi t l p thì c n th m đ nh xem chúng cĩ th a mãn các nhu c u c a khách hàng hay khơng. N u th m đ nh khơng đưc ti n hành ch t ch thì các sai sĩt cĩ th lan truy n sang các giai đon thi t k và mã hĩa khi n cho vi c s a đ i h th ng tr nên r t t n kém. M c tiêu c a th m đ nh là ki m tra xem yêu c u mà ng ưi phân tích xác đnh cĩ th a mãn 4 y u t sau khơng: - Th a mãn nhu c u c a ng ưi dùng: c n ph i th a mãn đưc các nhu c u b n ch t c a ng ưi dùng (khách hàng). - Các yêu c u khơng đưc mâu thu n nhau: v i các h th ng l n các yêu c u r t đa dng và cĩ kh n ăng s mâu thuân nhau. Khi đĩ ng ưi phân tích ph i lo i b t các yêu cu (khơng ch ch t) đ sau cho các yêu c u đưc mơ t trong tài li u yêu c u khơng mâu thu n nhau. - Các yêu c u ph i đ y đ : c n ch a m i ch c n ăng và ràng bu c mà ng ưi dùng đã nh m đ n. - Các yêu c u ph i hi n th c: yêu c u ph i hi n th c v các khía c nh k thu t, kinh t và pháp lý. 33
  40. 2.5. Làm b n m u trong quá trình phân tích ði v i các h th ng ph c t p, nhi u khi chúng ta khơng n m ch c đưc yêu cu c a khách hàng, chúng ta c ũng khĩ đánh giá đưc tính kh thi c ũng nh ư hi u qu c a h th ng. M t cách ti p c n đ i v i tr ưng h p này là xây d ng b n m u. B n m u v a đưc dùng đ phân tích yêu c u v a cĩ th ti n hĩa thành s n ph m cu i cùng. B n m u ph n m m hồn tồn khác v i b n m u ph n c ng. Khi phát tri n các h th ng ph n cng, thì th c t ng ưi ta phát tri n m t b n m u h th ng đ th m đ nh thi t k h th ng. M t b n m u h th ng đin t cĩ th đưc th c hi n và đưc th nghi m b ng cách dùng các thành ph n ch ưa đưc l p ráp vào v tr ưc khi đ u t ư vào các m ch tích hp chuyên d ng đ t ti n đ th c hi n m t đ i s n ph m m i c a h th ng. B n m u ph n m m khơng ph i nh m vào vi c th m đ nh thi t k (thi t k c a nĩ th ưng là hồn tồn khác v i h th ng đưc phát tri n cu i cùng), mà là đ th m đ nh yêu c u c a ng ưi s d ng. 2.5.1. Các b ưc làm b n m u Xây d ng b n m u bao g m 6 b ưc sau: - Bưc 1: ðánh giá yêu c u ph n m m và xác đnh li u ph n m m c n xây d ng cĩ xng đáng đ làm b n m u khơng Khơng ph i t t c các ph n m m đ u cĩ th đưa t i làm b n m u. Ta cĩ th xác đ nh m t s nhân t làm b n m u: l ĩnh v c ng d ng, đ ph c t p ng d ng, đ c tr ưng khách hàng và đc tr ưng d án. ð đ m b o tính t ươ ng tác gi a khách hàng v i b n m u, chúng ta c n đm b o các điu ki n: o Khách hàng ph i cam k t dùng tài nguyên đ đánh giá và làm m n b n m u (chi ti t hĩa yêu c u) o Khách hàng ph i cĩ kh n ăng đưa ra nh ng quy t đ nh v yêu c u m t cách k p th i - Bưc 2: Vi m t d án ch p thu n đưc, ng ưi phân tích xây d ng m t cách bi u di n v n t t cho yêu c u. Tr ưc khi cĩ th b t đ u xây d ng m t b n m u, ng ưi phân tích ph i bi u di n mi n thơng tin và các l ĩnh v c, hành vi và ch c n ăng c a v n đ r i xây d ng m t cách ti p c n h p lý t i vi c phân ho ch. Cĩ th ng d ng các nguyên lý phân tích n n t ng (phân tích top ưdown) và các ph ươ ng pháp phân tích yêu cu. - Bưc 3: Sau khi đã duy t xét mơ hình yêu c u, ph i t o ra m t đ c t thi t k v n t t cho b n m u Vi c thi t k ph i xu t hi n tr ưc khi b t đ u làm b n m u. Tuy nhiên thi t k t p trung ch y u vào các v n đ thi t k d li u và ki n trúc m c đ nh ch khơng t p trung vào thi t k th t c chi ti t. 34
  41. - Bưc 4: Ph n m m b n m u đưc t o ra, ki m th và làm m n. B n m u nên đưc xây d ng m t cách nhanh chĩng và v i m t chi phí nh . M t cách lý t ưng, b n m u nên đưc l p ráp t các kh i ch c n ăng (th ư vi n ) đã cĩ. Cĩ th dùng các ngơn ng bc cao hay các cơng c t đ ng đ xây d ng b n m u. - Bưc 5: Khách hàng đánh giá và làm m n yêu c u. B ưc này là c t lõi c a cách ti p cn làm b n m u. Chính đây mà khách hàng cĩ th xem xét cách bi u di n đưc cài đt cho yêu c u ph n m m, g i ý nh ng thay đ i làm cho ph n m m đáp ng t t h ơn vi các nhu c u th c t . - Bưc 6: Lp l i các b ưc 4 và 5 cho t i khi t t c các yêu c u đã đưc hình th c hĩa đy đ hay cho t i khi b n m u đã ti n hĩa thành m t ph n m m hồn thi n. 2.5.2 Li ích và h n ch c a phát tri n b n m u. Phát tri n b n m u đem l i các l i ích sau: o S hi u l m gi a nh ng ng ưi phát tri n ph n m m và nh ng ngưi s d ng ph n mm cĩ th đưc nh n th y rõ khi các ch c n ăng c a h th ng đưc trình di n. o S thi u h t các d ch v ng ưi dùng cĩ th đưc phát hi n. o S khĩ s d ng ho c s nh m l n các d ch v ng ưi dùng cĩ th đưc th y rõ và đưc s a l i. o ði ng ũ phát tri n ph n m m cĩ th tìm ra đơc các yêu c u khơng đ y đ ho c khơng kiên đnh khi h phát tri n b n m u. o Mt h th ng ho t đ ng đưc (m c d u là h n ch ) là b ng ch ng thuy t minh cho tính kh thi và tính h u ích c a ng d ng cho các nhà qu n lý. o Bn m u đĩ đưc dùng làm c ơ s cho vi c vi t đ c t m t s n ph m. Mc dù m c tiêu ch y u c a vi c t o b n m u là đ phát tri n, th m đ nh các yêu c u ph n m m, nĩ c ũng cĩ các l i ích khác nh ư: - Dùng đ hu n luy n ng ưi s d ng ngay t tr ưc khi h th ng đưc phân ph i. - Dùng trong quá trình th nghi m h th ng. ðiu đĩ ngh ĩa là cùng các tr ưng h p th nh ư nhau v a dùng cho th b n m u v a cho th h th ng. K t qu khác nhau cĩ ngh ĩa là cĩ sai sĩt. To b n m u là m t k thu t gi m b t r i ro. M t r i ro ln trong vi c phát tri n ph n mm là các sai sĩt mà đn giai đon cu i m i phát hi n và vi c ch nh s a vào th i đim đĩ là r t t n kém. Kinh nghi m cho th y vi c t o b n m u s gi m b t s các v n đ c a đc t yêu c u và giá c t ng c ng c a vi c phát trin cĩ th là th p h ơn n u ta phát tri n bn m u. H n ch c a cách ti p c n t o b n m u là: 35
  42. - ð đơn gi n hĩa vi c t o b n m u ng ưi ta cĩ th b qua các yêu c u ph c t p. S th t h n là khơng th t o b n m u m t vài ph n quan tr ng nh t c a h th ng nh ư các đc đim v s an tồn - nguy k ch. - Các yêu c u phi ch c n ăng nh ư đ tin c y, đ an tồn hay hi u n ăng th ưng khơng đưc bi u th đ y đ trong b n m u. - Do tính ch ưa hồn thi n v ch c n ăng/hi u n ăng, ng ưi dùng cĩ th khơng dùng b n mu y nh ư cách dùng mt h th ng th c đang ho t đ ng. Do đĩ, ch t l ưng đánh giá ca khách hàng nhi u khi khơng cao. 2.6. ðnh d ng đ c t yêu c u Kt qu c a b ưc phân tích là t o ra b n đ c t yêu c u ph n m m (Software Requirement Specification - SRS). ðc t yêu c u ph i ch rõ đưc ph m vi c a s n ph m, các ch c n ăng c n cĩ, đ i t ưng ng ưi s d ng và các ràng bu c khi v n hành s n ph m. Cĩ nhi u chu n khác nhau trong xây d ng tài li u, d ưi đây là m t đ nh d ng RSR thơng d ng (theo chu n IEEE 830-1984). 1 Gi i thi u 1.1 Mc đích Mc này gi i thi u m c đích c a tài li u yêu c u. Th ưng ch đơn gi n là đnh ngh ĩa “ đây là tài li u yêu c u v ph n m m XYZ”. 1.2 Ph m vi Nêu pham vi đ c p c a tài li u yêu c u. 1.3 ðnh ngh ĩa ðnh ngh ĩa các khái ni m, các t vi t t t, các chu n đưc s d ng trong tài li u yêu cu. 1.4 Tài li u tham kh o Nêu danh m c các tài li u tham kh o dùng đ t o ra b n đ c t yêu c u. 1.5 Mơ t chung v tài li u Mơ t khái quát c u trúc tài li u, g m cĩ các ch ươ ng, m c, ph c l c chính nào. 2.6.1.1.1. 2 Mơ t chung 2.1 T ng quan v s n ph m Mơ t khái quát v s n ph m. 2.2 Ch c n ăng s n ph m Khái quát v ch c n ăng s n ph m. 2.3 ði t ưng ng ưi dùng Mơ t v đ i t ưng ng ưi dùng. 2.4 Ràng bu c t ng th Khái quát v các ràng bu c c a ph n m m: ràng bu c ph n c ng, mơi tr ưng s dng, yêu c u k t n i v i các h th ng khác 36
  43. 2.5 Gi thi t và s l thu c Mơ t các gi thi t khi áp d ng tài li u: ví d nh ư tên ph n c ng, ph n m m, h điu hành c th . 2.6.1.1.2. 3 Yêu c u chi ti t Mơ t các yêu c u 3.1 Yêu c u ch c n ăng Mơ t chi ti t v các yêu c u ch c n ăng. 3.1.1 Yêu c u ch c n ăng 1 3.1.1.1 Gi i thi u 3.1.1.2 D li u vào 3.1.1.3 X lý 3.1.1.4. K t qu 3.1.2 Yêu c u ch c n ăng 2 3.1.n Yêu c u ch c n ăng n 3.2 Yêu c u giao di n ngồi Mơ t các giao di n c a ph n m m v i mơi tr ưng bên ngồi. 3.2.1 Giao di n ng ưi dùng 3.2.2 Giao di n ph n c ng 3.2.3 Giao di n ph n m m 3.2.4 Giao di n truy n thơng 3.3 Yêu c u hi u su t Mơ t v hi u su t, ví d nh ư th i gian ph n h i v i s ki n, s giao d ch đưc th c hi n/giây, 3.4 Ràng bu c thi t k Mơ t các ràng bu c thi t k , ví d các ràng bu c v ngơn ng , v cơng ngh , v c ơ s d li u và v chu n giao ti p. 3.5 Thu c tính Mơ t các thu c tính c a ph n m m. 3.5.1 Tính b o m t, an tồn và kh n ăng phc h i Mc đ b o m t d li u, cách th c truy c p vào h th ng. ð an tồn c a h th ng đi v i các tr ưng h p b t th ưng nh ư m t đin Kh n ăng ph c h i c a h th ng sau khi g p s c . 3.5.2 Tính b o trì Các ch c n ăng, giao di n địi h i ph i d s a đi (d b o trì). 3.6 Các yêu c u khác Các yêu c u khác liên quan đn s n ph m. 37
  44. 2.7. Tng k t Phân tích và đnh rõ yêu c u là b ưc k thu t đ u tiên trong ti n trình cơng ngh ph n mm. T i b ưc này các phát bi u chung v ph m vi ph n m m đưc làm m n thành mt bn đ c t c th đ tr thành n n t ng cho m i ho t đ ng cơng ngh ph n m m sau đĩ. Vi c phân tích ph i t p trung vào các mi n thơng tin, ch c n ăng và hành vi c a v n đ . ð hi u rõ yêu c u, ng ưi ta t o ra mơ hình, phân ho ch v n đ và t o ra nh ng biu di n mơ t cho b n ch t c a yêu c u r i sau đĩ đi vào các chi ti t. Trong nhi u tr ưng h p, khơng th nào đc t đưc đ y đ m i v n đ t i giai đon đ u. Vi c làm b n m u th ưng giúp ch ra cách ti p c n khác đ t đĩ cĩ th làm m n thêm yêu c u. ð tin hành đúng đn vi c làm b n m u, cĩ th c n t i các cơng c và k thu t đ c bi t. K t qu c a vi c phân tích là t o ra b n đ c t các yêu c u ph n m m. ð c t c n đưc xét duy t đ đ m bo r ng ng ưi phát tri n và khách hàng cĩ cùng nh n bi t v h th ng c n phát tri n. 38
  45. CH ƯƠ NG 3. THI T K PH N M M Thi t k ph n m m (Software design) là m t quá trình gi i quy t v n đ và l p k ho ch cho m t gi i pháp ph n m m.Sau khi các m c đích và đc đim k ĩ thu t c a ph n mm đưc quy t đ nh, l p trình viên s thi t k ho c thuê ng ưi thi t k đ phát tri n m t k ho ch cho gi i pháp ph n m m. Nĩ bao g m các thành ph n c p th p, các v n đ thu t tốn c ũng nh ư m t khung nhìn ki n trúc. 3.1. Khái ni m v thi t k ph n m m 3.1.1. Khái ni m Cĩ th đ nh ngh ĩa thi t k là m t quá trình áp dng nhi u k thu t và các nguyên lý đ t o ra mơ hình c a m t thi t b , m t ti n trình hay m t h th ng đ chi ti t mà theo đĩ cĩ th ch t o ra s n ph m v t lý t ươ ng ng v i nĩ. Bn ch t thi t k ph n m m là m t quá trình chuy n hĩa các yêu c u ph n m m thành mt bi u di n thi t k . T nh ng mơ t quan ni m v tồn b ph n m m, vi c làm m n (chi ti t hĩa) liên t c d n t i m t bi u di n thi t k r t g n v i cách bi u di n c a ch ươ ng trình ngu n đ cĩ th ánh x vào m t ngơn ng l p trình c th . Mc tiêu thi t k là đ t o ra m t mơ hình bi u di n c a m t th c th mà sau này s đưc xây d ng. Mơ hình chung c a m t thi t k ph n m m là m t đ th cĩ h ưng, các nút bi u di n các th c th cĩ trong thi t k , các liên k t bi u di n các m i quan h gi a các thc th đĩ. Ho t đ ng thi t k là m t lo i ho t đ ng đ c bi t: - Là m t quá trình sáng t o, địi h i cĩ kinh nghi m và s nhanh nh y và sáng t o - Cn ph i đưc th c hành và h c b ng kinh nghi m, b ng kh o sát các h đang t n t i, ch h c b ng sách v là khơng đ. 3.1.2. Tm quan tr ng Tm 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 t k là n ơi ch t l ưng ph n m m đưc nuơi d ưng trong quá trình phát tri n: cung c p cách bi u di n ph n m m cĩ th đưc xác nh n v ch t l ưng, là cách duy nh t mà chúng ta cĩ th chuy n hĩa m t cách chính xác các yêu c u c a khách hàng thành s n ph m hay h th ng ph n m m cu i cùng. Thi t k ph n m m là cơng c giao ti p làm c ơ s đ cĩ th mơ t m t cách đ y đ các d ch v c a h th ng, đ qu n lý các r i ro và l a ch n gi i pháp thích h p. Thi t k ph n m m ph c v nh ư m t n n t ng cho m i b ưc cơng ngh ph n m m và b o trì. Khơng cĩ thi t k cĩ nguy c ơ s n sinh m t h th ng 39
  46. khơng n đ nh - mt h th ng s th t b i. M t h th ng ph n m m r t khĩ xác đnh đưc ch t l ưng ch ng nào ch ưa đn b ưc ki m th . Thi t k t t là b ưc quan tr ng đ u tiên đ đ m b o ch t l ưng ph n m m. Mơ hình thơng tin Mơ hình cu trúc Thi t k Thi t k ki n trúc Cu trúc Các yêu c u d li u khác Lp trình Thi t k thu t tốn Mơ đun ch ươ ng trình Hình 3.1. Vai trị c a thi t k ph n m m trong quá trình cơng ngh . 3.1.3. Quá trình thi t k Thi t k ph n m m là quá trình chuy n các đ c t yêu c u d ch v thơng tin c a h th ng thành đc t h th ng ph n m m. Thi t k ph n m m tr i qua m t s giai đon chính sau: - Nghiên c u đ hi u ra v n đ . Khơng hiu rõ v n đ thì khơng th cĩ đưc thi t k hu hi u. - Ch n m t (hay m t s ) gi i pháp thi t k và xác đnh các đ c đim thơ c a nĩ. Ch n gi i pháp ph thu c vào kinh nghi m c a ng ưi thi t k , vào các c u ki n dùng l i đưc và vào s đơn gi n c a các gi i pháp kéo theo. N u các nhân t khác là t ươ ng t thì nên ch n gi i pháp đơn gi n nh t. - Mơ t tr u t ưng cho m i n i dung trong gi i pháp. Tr ưc khi t o ra các t ư li u chính th c ng ưi thi t k c n ph i xây d ng m t mơ t ban đ u s ơ khai r i chi ti t hĩa nĩ. Các sai sĩt và khi m khuy t trong m i m c thi t k tr ưc đĩ đưc phát hi n và ph i đưc ch nh s a tr ưc khi l p t ư li u thi t k . 40
  47. Kt qu c a m i ho t đ ng thi t k là m t đ c t thi t k . ð c t này cĩ th là m t đ c t tr u t ưng, hình th c và đưc to ra đ làm rõ các yêu c u, nĩ c ũng cĩ th là m t đ c t v m t ph n nào đĩ c a h th ng ph i đưc th c hi n nh ư th nào. Khi quá trình thi t k ti n tri n thì các chi ti t đưc b sung vào đc t đĩ. Các k t qu cu i cùng là các đc t v các thu t tốn và các c u trúc d li u đưc dùng làm c ơ s cho vi c th c hi n h th ng. Các ho t đ ng thi t k chính trong m t h th ng ph n m m l n: Các n i dung chính c a thi t k là: - Thi t k ki n trúc: Xác đ nh h t ng th ph n m m bao g m các h con và các quan h gi a chúng và ghi thành tài li u - ðc t tr u t ưng: các đ c t tr u t ưng cho m i h con v các d ch v mà nĩ cung cp c ũng nh ư các ràng bu c chúng ph i tuân th . - Thi t k giao di n: giao di n c a t ng h con v i các h con khác đưc thi t k và ghi thành tài li u; đ c t giao di n khơng đưc m ơ h và cho phép s d ng h con đĩ mà khơng c n bi t v thi t k n i t i c a nĩ. - Thi t k các thành ph n: các d ch v mà m t h con cung c p đưc phân chia cho các thành ph n h p thành c a nĩ. - Thi t k c u trúc d li u: thi t k chi ti t và đc t các c u trúc d li u (các mơ hình v th gi i th c c n x lý) đưc dùng trong vi c th c hi n h th ng. - Thi t k thu t tốn: các thu t tốn đưc dùng cho các d ch v đưc thi t k chi ti t và đưc đ c t . Quá trình này đưc l p l i cho đ n khi các thành ph n h p thành c a m i h con đưc xác đnh đ u cĩ th ánh x tr c ti p vào các thành ph n ngơn ng l p trình, ch ng h n nh ư các gĩi, các th t c và các hàm. 3.1.4. Cơ s c a thi t k Ph n m m đưc chia thành các thành ph n cĩ tên riêng bi t và xác đnh đưc đ a ch , gi là các mơ đun, đưc tích h p đ th a mãn yêu c u c a v n đ . Ng ưi ta nĩi r ng: tính mơ đun là thu c tính riêng c a ph n m m cho phép m t ch ươ ng trình tr nên qu n lý đưc theo cách thơng minh. Ng ưi đ c khơng th nào hi u th u ph n m m nguyên kh i (nh ư m t ch ươ ng trình l n ch g m m t mơ đun). ðiu này d n đ n k t lu n “chia đ tr ” s d gi i quy t m t v n đ ph c t p h ơn khi chia nĩ thành nh ng ph n qu n lý đưc. Vi cùng m t t p h p các yêu c u, nhi u mơ đun h ơn cĩ ngh ĩa là kích c t ng mơ đun nh ; đ ph c t p gi m và chi phí cho phát tri n mơ đun gi m. Nh ưng khi s các mơ đun tăng lên thì n l c liên k t chúng b ng vi c làm giao di n cho các mơ đun c ũng t ăng lên. ðc tr ưng này d n đ n đưng cong t ng chi phí (n lc) nh ư trong hình 3.2. 41
  48. Chúng ta nên mơ đun hĩa nh ưng c n ph i duy trì chi phí trong vùng lân c n c a chi phí t i thi u. Mơ đun hĩa cịn ch ưa đ hay quá m c đ u nên tránh. M t g i ý cho kích c ca các mơ đun c ơ s là m i mơ đun đ m nh n m t ch c n ăng c ơ b n. Tăng chi phí Chi phí S mơ đun Hình 3.2. Tính mơ đun và chi phí ph n m m. 3.1.5. Mơ t thi t k Mt b n thi t k ph n m m là m t mơ hình mơ t m t đ i t ưng c a th gi i th c cĩ nhi u thành ph n và các m i quan h gi a chúng v i nhau. Vi c mơ t thi t k c n đ m bo th c hi n đưc các yêu c u: - Làm c ơ s cho vi c tri n khai ch ươ ng trình - Làm ph ươ ng ti n giao ti p gi a các nhĩm thi t k các h con - Cung c p đ thơng tin cho nh ng ng ưi b o trì h th ng Thi t k th ưng đưc mơ t hai m c: thi t k m c cao (high level design) và thi t k chi ti t (low level design). Thi t k m c cao hay thi t k ki n trúc ch ra: - Mơ hình t ng th c a h th ng - Cách th c h th ng đưc phân rã thành các mơ đun - Mi quan h (g i nhau) gia các mơ đun - Cách th c trao đ i thơng tin gi a các mơ đun (giao di n, các d li u dùng chung, các thơng tin tr ng thái) 42
  49. Tuy nhiên thi t k m c cao khơng ch ra đưc th t th c hi n, s l n th c hi n c a mơ đun, c ũng nh ư các tr ng thái và ho t đ ng bên trong c a m i mơ đun. Ni dung c a các mơ đun đưc th hi n m c thi t k chi ti t. Các c u trúc c ơ s c a thi t k chi ti t hay cịn g i là thi t k thu t tốn là: - Cu trúc tu n t - Cu trúc r nhánh - Cu trúc l p Mi thu t tốn đ u cĩ th mơ t d a trên 3 cu trúc trên. Cĩ ba lo i hình mơ t th ưng đưc s d ng trong thi t k : - Dng v ăn b n phi hình th c: Mơ t b ng ngơn ng t nhiên các thơng tin khơng th hình th c hĩa đưc nh ư các thơng tin phi ch c n ăng. Bên c nh các cách mơ t khác, mơ t v ăn b n th ưng đưc b sung đ làm cho thi t k đưc đ y đ và d hi u h ơn. - Các bi u đ : Các bi u đ đưc dùng đ th hi n các m i quan h gi a các thành ph n lp lên h th ng và là mơ hình mơ t th gi i th c. Vi c mơ t đ th c a các thi t k là r t cĩ l i vì tính tr c quan và cho m t b c tranh t ng th v h th ng. Trong th i gian g n đây, ng ưi ta đã xây d ng đưc m t ngơn ng đ th dành riêng cho các thi t k ph n m m v i tên g i: ngơn ng mơ hình hĩa th ng nh t (Unified Modeling Model - UML). T i m c thi t k chi ti t, cĩ m t s các d ng bi u đ hay đưc s dng là flow chart, JSP, Nassi ưShneiderman diagrams. - Gi mã (pseudo code): Hi n nay, gi mã là cơng c đưc ưa chu ng đ mơ t thi t k m c chi ti t. Các ngơn ng này thu n ti n cho vi c mơ t chính xác thi t k , tuy nhiên l i thi u tính tr c quan. D ưi đây là m t ví d s d ng gi mã: Procedure Write Name if sex = male write "Mr." else write "Ms." endif write name end Procedure Nĩi chung thì c ba lo i bi u di n trên đây đu đưc s d ng trong thi t k h th ng. Thi t k ki n trúc th ưng đưc mơ t b ng đ th (structure chart)và đưc b sung v ăn bn phi hình th c, thi t k d li u lơgic th ưng đưc mơ t b ng các b ng, các thi t k giao di n, thi t k c u trúc d li u chi ti t, thi t k thu t tốn th ưng đưc mơ t b ng pseudo code. 43