ð 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

M CL C
M C L C ............................................................................................................. I CHƯƠNG 1.
1.1. 1.2.

PH N M M VÀ CÔNG NGH PH N M M .............................. 1

T ng quan v khái ni m Ph n m m (software) ............................................................................1 ð c ñi m 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. T m 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. S n 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 ñi n .......................................................................................................... 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. V n ñ gi m kích c c a ph n m m........................................................................................... 20 1.9. 1.10. 1.11. Cái nhìn chung v công ngh ph n m m..................................................................................... 21 Hư ng tương lai c a công ngh ph n m m ................................................................................ 22 T ng k t ......................................................................................................................................... 23

CHƯƠNG 2.
2.1. 2.2.

PHÂN TÍCH VÀ ð C T YÊU C U ......................................... 24

ð i cương v phân tích và ñ c t ................................................................................................. 24 Nghiên c u kh thi ........................................................................................................................ 25

i

2.2.1. 2.2.2. 2.2.3. 2.2.4. 2.3. N 2.3.1. 2.3.2. 2.3.3.

Kh thi v kinh t ....................................................................................................................... 26 Kh thi v k thu t ..................................................................................................................... 26 Kh thi v pháp lý ...................................................................................................................... 27 Tính kh thi v ho t ñ ng ........................................................................................................... 27 n t ng c a phân tích yêu c u ................................................................................................... 27 Các nguyên lý phân tích ............................................................................................................. 27 Mô hình hóa ............................................................................................................................... 28 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. 2.7. ð nh d ng ñ c t yêu c u ............................................................................................................. 36 T ng 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. T m 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 ñi n 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 ñi m 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. M t s v n ñ thi t k ................................................................................................................ 53 3.4.2. M t s hư ng d n thi t k .......................................................................................................... 54 3.5. T ng k t ......................................................................................................................................... 54

CHƯƠNG 4.

L P TRÌNH ............................................................................... 56

ii

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. L a 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. L p trình tránh l i ........................................................................................................................ 61 4.3.1. L p trình th l i.......................................................................................................................... 62 4.3.2. L p trình phòng th .................................................................................................................... 62 4.4. L 4.4.1. 4.4.2. 4.4.3. 4.5. 4.6. p trình hư ng hi u qu th c hi n ........................................................................................... 63 Tính hi u qu chương trình ........................................................................................................ 63 Hi u qu b nh ......................................................................................................................... 64 Hi u qu nh p/xu t..................................................................................................................... 64

T ng k t ......................................................................................................................................... 65 M u th c t (Case Study) ................................................................. Error! Bookmark not defined.

CHƯƠNG 5.
5.1.

XÁC MINH VÀ TH M ð NH ................................................... 66

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. B o trì ph n m m.......................................................................................................................... 71

CHƯƠNG 6.
6.1. 6.2. 6.3.

QU N LÝ D

ÁN PHÁT TRI N PH N M M.......................... 73

Khái ni m d án ............................................................................................................................ 73 Các v n ñ thư ng x y ra ñ i v i m t d án ph n m m ........................................................... 73 ð 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. L p k ho ch th c hi n d án..................................................................................................... 76 6.4.3. T ch c th c hi n d án ............................................................................................................. 77

iii

6.4.4. 6.4.5.

Qu n lý quá trình th c hi n d án .............................................................................................. 77 K t 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. Qu n lý r i ro ............................................................................................................................. 81

CHƯƠNG 7.
7.1. 7.2. 7.3.

QUY TRÌNH PHÁT TRI N PH N M M .................................. 83

Gi i thi u ....................................................................................................................................... 83 Qui trình là gì? .............................................................................................................................. 83 M t s quy trình m u SEP, ISO, CMM/CMMI ......................................................................... 84

CHƯƠNG 8.

CASE STUDY BÀI TOÁN ðĂNG KÝ H C PH N ................... 87

8.1. Phát bi u bài toán (Vision) ........................................................................................................... 87 8.1.1. B ng 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. ð 8.4.1. 8.4.2. 8.4.3. 8.4.4. 8.4.5. 8.4.6. 8.4.7. 8.4.8. 8.4.9. 8.4.10. c t b sung (Supplementary Specification) ......................................................................... 100 M c tiêu ................................................................................................................................... 100 Ph m vi..................................................................................................................................... 101 Tài li u tham kh o .................................................................................................................... 101 Ch c năng ................................................................................................................................ 101 Tính kh d ng .......................................................................................................................... 101 Tính n ñ nh ............................................................................................................................. 101 Hi u su t................................................................................................................................... 101 S h tr ................................................................................................................................... 101 Tính b o m t ............................................................................................................................ 101 Các ràng bu c thi t k ......................................................................................................... 102

iv

8.5.

Sơ ñ ch c năng (Use Case Diagram) ....................................................................................... 103 c t các ch c năng (Use Case Description) ........................................................................... 104 Close Registration (K t thúc ñăng ký) ..................................................................................... 104 Login (ðăng nh p) ................................................................................................................... 105 Maintain Professor Information (Qu n lý thông tin giáo sư) ................................................... 106 Maintain Student Information (Qu n lý thông tin sinh viên) ................................................... 108 Register for Courses (ðăng ký h c ph n) ................................................................................ 109 Select Courses to Teach (ðăng ký d y) ................................................................................... 112 Submit Grades (N p ñi m)....................................................................................................... 113 View Report Card (Xem phi u ñi m) ...................................................................................... 114

8.6. ð 8.6.1. 8.6.2. 8.6.3. 8.6.4. 8.6.5. 8.6.6. 8.6.7. 8.6.8. 8.7. 8.8.

Phân tích yêu c u ........................................................................................................................ 115 Thi t k h th ng ......................................................................................................................... 115

TÀI LI U THAM KH O.................................................................................. 116

v

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 c u 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ý, toán h c, qu n 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 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 khăn nho nh . Gi ñây khi chúng ta có nh ng chi c máy tính kh ng l khăn y tr nên vô cùng l n. Như v y ngành công nghi p ñi n t không 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 là vi c s d ng s n ph m c a h . . Khi m i xu t p m t vài khó thì nh ng khó gi i quy t khó t o nên chính

1.1.

T ng 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 l nh ñư 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 toán nào ñó.

1.2.

ð c ñi m 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 v i 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 ñi m 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 l p trình b c cao.

1

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.
1.3.1.

Phân lo i ph n m m
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 ñi u 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 ñi u hành, các trình ñi u khi n (driver), ph n s n(firmware) và BIOS. ðây là các lo i ph n m m mà h ñi u hành liên l c v i chúng ñ ñi u 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 hoà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 b ng 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 ñi u 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 ñi m: 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 ñi m: 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 ñi u khi n, ph n m m h tr bán hàng... Ưu ñi m: 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 ñi m: Thông thư ng ñây là nh ng ph n m m ng d ng chuyên ngành h p.

2

1.4.

T m 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 ñi m 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 m m 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 m m 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 ño n:

a. Nh ng năm ñ u (t 1950 ñ n 1960):
Giai ño n 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 k t 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 m m 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 l p 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 d ng 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

-

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 ñi u hành, chương trình d ch 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 th c 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. M ng toà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 c u 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 ñi u khi n trong robot, ô tô, thi t b y t , ñ ñi n 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 nhi u cách ti p c n phát tri n ph n m m truy n th ng trong các lĩnh v c ng d ng. 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 c u 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 m i cũng tăng ñáng k . Ph n m m trí tu nhân t o ng d ng các thu t toá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

-

ð 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 C u trúc d li u ph c t p và nhi u giao di n ngoài

b. Ph n m m th i gian th c
Ph n m m ñi u ph i, phân tích ho c ki m soát các s ki n th gi i th c ngay khi chúng xu t hi n ñư c g i là ph n m m th i gian th c. ði n hình là các ph n m m ñi u 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 ngoà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 soát ho c ñưa ra ñáp ng môi trư ng ngoài Thành ph n ñi u ph i ñ ñi u 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. ði n 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 ñi m 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 toán (tính toá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 toán cao.

e. Ph n m m nhúng
N m trong b nh ch ñ c và ñư c dùng ñ ñi u 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 toán nghi p v nh như x lý văn b n, trang tính, ñ h a, qu n tr CSDL nh ... Y u t giao di n ngư i-máy r t ñư c chú tr ng.

5

g. Ph n m m trí tu nhân t o
Dùng các thu t toán phi s ñ gi i quy t các v n ñ ph c t p mà tính toá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.

Ngoà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 d ng 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.
1.5.1.

Sơ lư c v quá trình t o ph n m m
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 toán và các mã gi ), sau ñó m u này ñư c mã hoá 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 hoàn h o thì ph n m m ñó ph i ñư c ñi u 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 m t 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 ñi u 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.

S n 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 hoá qui trình s n xu t ph n m m cũng là ñ i tư ng ñư c c u 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 d n 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 c a ph n m m.

6

1.6.1.
-

Ph n m m và ph n m m t t

Ph n m m 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 B n thu c tính ch ch t mà m t 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 ñi u mà ngư i tiêu dùng mong m i và không th t b i nhi u hơn nh ng ñi u ñã ñư c ñ c t . ði u 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 b ng 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. M t 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 c a 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

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í. ði u 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 t p 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 ñi n
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 soá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 soá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 ñi u 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 r t 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 thoá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 c ng b mòn cũ ñi, nhưng nó cũng thoá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 thoá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

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 hoà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 m m (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 ño n 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à ñi u này nh hư ng l n ñ n giá thành và ch t lư ng ph n m m. Ngoài ra, còn t n t i r t 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 l n 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 ñã d n ñ 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 m m 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

1.7.
1.7.1.

Công ngh ph n m m
ð nh nghĩa

M t ñ nh nghĩa ban ñ u v công ngh ph n m m do Fritz Bauer nêu ra là: Vi c thi t l p và s d ng các nguyên lý công ngh ñúng ñ n ñ thu ñư c ph n m m m t cách kinh t v a tin c y v a làm vi c hi u qu trên các máy th c. Cô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 soá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 c u trúc d li u, ki n trúc chương trình và th t c thu t toá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 t o 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. T o 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 soát ñ ñ m b o ch t lư ng và ñi u hòa thay ñ i.

10

-

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 soá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 ñ s n 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à ñi u 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 c u 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 c nh) 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 ñi n

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 ñi n, ñô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 vi c 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 m t 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

-

K t 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 c u) ñ 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. L p 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 l i 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 ngoài (h ñi u hành m i, thi t b ngo i vi m i, yêu c u 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ó. M t s các v n ñ có th g p ph i khi dùng mô hình vòng ñ i c ñi n 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 ñi n ñòi h i ñi u 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 ñi n 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

tích, thi t k , mã hóa, ki m th và b o trì. Vòng ñ i c ñi n 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ã hoá

Ki m th

B o trì
Hình 1.1. Mô hình vòng ñ i c ñi n.

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 ño n. 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: M c 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 toán, v thích nghi h ñi u hành hay giao di n ngư i máy c n có.

Khi ñã có b n 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: B n 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. B n m u cài ñ t ch m t t p con ch c năng c a ph n m m mong ñ i.

13

-

B n 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 ño n 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). M t 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 hoà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 soá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 m u 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. K t thúc S n ph m cu i cùng T ph p Yêu c u Thi t k nhanh Làm m n yêu c u Xây d ng b nm u ðánh giá c a khách hàng B tñ u

Hình 1.2. Mô hình làm b n m u.

14

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 l i, 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 t o 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 g m b n ho t ñ ng chính: L p 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

V i m i l n l p xo n c (b t ñ u t tâm), các phiên b n ñư c hoàn thi n d n. N u phân tích r i ro ch ra r ng yêu c u không ch c ch n thì b n m u có th ñư c s d ng trong giai ño n 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. T i 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 d ng”. 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 r ng cách ti p c n ti n hóa là ki m soá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 c c 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 hoàn toàn.

15

L p k ho ch K ho ch ban ñ u

Phân tích r i ro R i ro ban ñ u R i 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

B n m u ñ u tiên ðánh giá c a khách hàng ðánh giá B n m u ti p theo

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 ñi m 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

-

kh năng làm trang tính kh năng t o tài li u

M i 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 c n 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 t i.

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 ph n 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 t i 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

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. M t 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ì. L p 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 ño n 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. T o 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 toàn th v v n ñ c n gi i quy t, ch không ch là gi i pháp c a ño n mã lúc ñó. ði u 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, ñi u 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 m t 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

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 m m 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 ñi u 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 ñi n 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 c a vòng ñ i c ñi n. 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 ñi n. K t 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 m m c n phát tri n s là y u t quy t ñ nh t i ch n khuôn c nh. M i cách ti p c n ñ u có ưu ñi m riêng và b ng cách t h p khéo léo các cách ti p c n 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 ñi m 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 soá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 m t 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 ño n 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 ñi n 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 t o 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ư: T o 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

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 t o nhi u tài li u.

1.8.8.

V n ñ 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 l c 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 c a 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 c a 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 ño n 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 l c 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. Ngoà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.
B ng 1.1. Năng l c bi u di n c a ngôn ng

Ngôn ng Assembly C FORTRAN 77 COBOL 85 Ada 83 C++ Ada 95 Java

LOC/FP 320 128 105 91 71 56 55 55

20

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 ño n chính b t k mô hình công ngh ph n m m ñư c ch n l a. Ba giai ño n 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 ño n 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 ño n 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 d ng, có ba bư c riêng v n xu t hi n dư i d ng: 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 . L p 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 ño n phát tri n t p trung vào khái ni m th nào. T c là, trong giai ño n 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 m m 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 l p 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 d ng trong giai ño n 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

-

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 toá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: M t 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 ño n 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 ño n b o trì áp d ng l i các bư c c a giai ño n xác ñ nh và phát tri n, nhưng là vi c th c hi n trong hoàn c nh ph n m m hi n có. Có ba ki u thay ñ i g p ph i trong giai ño n b o trì: S a ñ 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 m m ñ s a các khi m khuy t (l i l p trình, thu t toán, thi t k ...). Thích nghi: Qua th i gian, môi trư ng ban ñ u (như CPU, h ñi u 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 m m ñ thích h p v i nh ng thay ñ i môi trư ng ngoà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ì hoàn thi n m r ng ph n m m ra ngoài các yêu c u ch c năng g c c a nó.

-

-

1.10. Hư ng tương lai c a công ngh ph n m m
L p trình ñ nh d ng tương lai c a công ngh (ICSE là d ng vi t t t c ngh Qu c t v K ngh và các phương pháp linh ho t s gi vai trò quan tr ng trong ph n m m. ICSE 2005 ñã tham gia theo dõi c hai ch ñ này. a International Conference on Software Engineering t c là H i Ph n m m.)

L p trình ñ nh d ng (aspect-oriented programming) s giúp ngư i l p trình ng x v i 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 c a 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

Thí d : L p trình ñ nh d ng có thêm vào các cơ c u ki m soát hi u ch nh l i, biên b n và khoá 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 d ng 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 m t 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.

H i ngh Future of Software Engineering (FOSE) tin r ng ICSE 2000 ñã h sơ hoá 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. T ng 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 m m ñã 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 soát nó khó hơn nhi u so v i ph n t v t 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 m m, m i mô hình ñ u có nh ng m t m nh và ñi m y u, nhưng nói chung t t c ñ u có m t dãy các giai ño n t ng quát là: xác ñ nh, phát tri n và b o trì.

23

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 m m. 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 m m ñá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 r t 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. M c ñích c a giai ño n 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 ph n m m. Do ñó yêu

24

c u 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 m u ñ n m b t yêu c u là c n thi t. Nghiên c u kh thi Phân tích yêu c u Xác ñ nh yêu c u Báo cáo kh thi Mô hình h th ng Tài li u ñ nh nghĩa yêu c u ð ct yêu c u

Tài li u yêu c u
Hình 2.1. Quá trình hình thành các yêu c u.

Tài li u ñ c t yêu c u

2.2.

Nghiên c u kh thi

ðây là giai ño n 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 ño n này ngư i phân tích ph i làm rõ ñư c các ñi m m nh và ñi m y u c a 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 ñi m 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 m t ñi m cân b ng gi a nhu c u 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

(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à r i 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 c a vi c ch t o ph n m m có ch t lư ng s b gi m ñi. Trong giai ño n 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. L i í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 hay dùng ñ ch tài li u nghiên c u kh thi v kinh t là lu n ch ng ng kinh t nói chung ñư c coi như n n t ng cho h u h t các h th ng th ng qu c phòng, h th ng lu t, các h th ng ph c v cho các nghiên n ch ng kinh t bao g m:

M t thu t ng kinh t . Lu n ch (các ngo i l là h c u ñ c bi t). Lu -

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 h n 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

Kh o 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 m t h th ng 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 ño n phân tích. ði u 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: R i 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 d ng h th ng không ?

26

-

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 g m 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à ñi u 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.
2.3.1.

N n t ng c a phân tích yêu c u
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 ñi m riêng. Tuy nhiên, t t c các phương pháp này ñ u có quan h v i m t 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 d ng. 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

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 d ng. Khi th c th là m t v t v t lý (như toà nhà, máy bay, máy móc) thì ta có th xây d ng 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 c n xây d ng. Các mô hình t p trung vào ñi u 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 ñi m 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 t ng 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 hoà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 m m 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

Tác nhân

Kho d li u

Ti n trình
Hình 2.2. Ký pháp DFD.

Lu ng d li u

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 m c 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 g i là bi u ñ n n t ng hay bi u ñ ng c nh h th ng, bi u di n cho toà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 toà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

ð t vé Khách hàng Vé DFD m c 0 B ng gi tàu H th ng bán vé

Khách hàng

Phân tích ñơn ñ t vé

Ki m tra gi tàu

ð t ch

Phát hành vé

Khách hàng

Ch ñ ñ t DFD m c 1

B ng giá vé

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 b ng các hình ch nh t 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

Th c th

Thu c tính

Quan h

K th a

Ngư i

Phương ti n giao thông

Bi n ñă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. Ngoà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.
2.4.1.

Xác ñ nh và ñ c t yêu c u
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 ngoài

31

c a 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 d c 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 hoàn thi n khi n cho chi phí tăng và ch m th i ñi m 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 c u 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

ð 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 hoàn toà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 m t 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. M t 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

M t 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 ño n 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 d ng 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 c u (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

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 c u 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 hoàn toà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 c ng, 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 ñi n 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 h p 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à hoàn toà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ó x ng ñá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 ñi u 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: V i 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 c u. 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

-

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 b c 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 c n 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 v i các nhu c u th c t . Bư c 6: L p 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 hoàn thi n. 2.5.2 L i í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 m m 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 M t 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 B n m u ñó ñư c dùng làm cơ s cho vi c vi t ñ c t m t s n ph m.

-

-

M c 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. ði u ñó 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.

T o b n m u là m t k thu t gi m b t r i ro. M t r i ro l n trong vi c phát tri n ph n m m là các sai sót mà ñ n giai ño n cu i m i phát hi n và vi c ch nh s a vào th i ñi m ñó 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 tri n có th là th p hơn n u ta phát tri n b n m u. H n ch c a cách ti p c n t o b n m u là:

35

-

ð ñơ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 ñi m v s an toàn - nguy k ch. Các yêu c u phi ch c năng như ñ tin c y, ñ an toà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 hoàn thi n v ch c năng/hi u năng, ngư i dùng có th không dùng b n m u y như cách dùng m t h th ng th c ñang ho t ñ ng. Do ñó, ch t lư ng ñánh giá c a khách hàng nhi u khi không cao.

-

2.6.

ð nh d ng ñ c t yêu c u

K t 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 M c ñích M c 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 c u. 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 d ng, yêu c u k t n i v i các h th ng khác...

36

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 ñi u 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 ngoài Mô t các giao di n c a ph n m m v i môi trư ng bên ngoà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 toàn và kh năng ph c h i M c ñ b o m t d li u, cách th c truy c p vào h th ng. ð an toàn c a h th ng ñ i v i các trư ng h p b t thư ng như m t ñi n... 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

2.7.

T ng 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 m m. 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 m t b n ñ 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 bi u 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 ño n ñ 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. ð ti n 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 b o 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

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 ñi m kĩ thu t c a ph n m m ñư 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 toán cũng như m t khung nhìn ki n trúc.

3.1.
3.1.1.

Khái ni m v thi t k ph n m m
Khái ni m

Có th ñ nh nghĩa thi t k là m t quá trình áp d ng 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ó. B n 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 m t bi u di n thi t k . T nh ng mô t quan ni m v toà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 . M c 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 th c 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 C n 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.

T m quan tr ng

T m quan tr ng c a thi t k ph n m m có th ñư c phát bi u b ng m t t “ch t lư ng”. Thi 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

không n ñ nh - m t 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 c u trúc Thi t k

Thi t k ki n trúc C u trúc d li u

Các yêu c u khác

L p trình Thi t k thu t toá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 ño n chính sau: Nghiên c u ñ hi u ra v n ñ . Không hi u rõ v n ñ thì không th có ñư c thi t k h u hi u. Ch n m t (hay m t s ) gi i pháp thi t k và xác ñ nh các ñ c ñi m 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

K t 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 t o 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 toá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 c p 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 toán: các thu t toá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 , g i 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). ði u 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. V i 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 l c) như trong hình 3.2.

41

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 c a các môñun cơ s là m i môñun ñ m nh n m t ch c năng cơ b n.

Chi phí

Tăng 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

M t 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 b o 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 M i quan h (g i nhau) gi a 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

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. N i 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 toán là: C u trúc tu n t C u trúc r nhánh C u trúc l p

M i thu t toán ñ u có th mô t d a trên 3 c u trúc trên. Có ba lo i hình mô t thư ng ñư c s d ng trong thi t k : D ng 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 l p 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 d ng 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 b n 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 toán thư ng ñư c mô t b ng pseudo code.

43

3.1.6.

Ch t lư ng thi t k

Không có cách nào hay ñ xác ñ nh ñư c th nào là thi t k t t. Tiêu chu n d b o trì là tiêu chu n t t cho ngư i dùng. M t thi t k d b o trì có th thích nghi v i vi c c i biên các ch c năng và vi c thêm các ch c năng m i. M t thi t k như th ph i d hi u và vi c s a ñ i ch có hi u ng c c b . Các thành ph n thi t k ph i là k t dính (cohesive) theo nghĩa là t t c các b ph n trong thành ph n ph i có m t quan h logic ch t ch , các thành ph n ghép n i (coupling) v i nhau là l ng l o. Ghép n i càng l ng l o thì càng d thích nghi, nghĩa là càng d s a ñ i ñ phù h p v i hoàn c nh m i. ð xem m t thi t k có là t t hay không, ngư i ta ti n hành thi t l p m t s ñ ño ch t lư ng thi t k : S k t dính (Cohesion) :S k t dính c a m t môñun là ñ ño v tính kh p l i v i nhau c a các ph n trong môñun ñó. N u m t môñun ch th c hi n m t ch c năng logic ho c là m t th c th logic, t c là t t c các b ph n c a môñun ñó ñ u tham gia vào vi c th c hi n m t công vi c thì ñ k t dính là cao. N u m t ho c nhi u b ph n không tham gia tr c ti p vào vi c ch c năng logic ñó thì m c ñ k t dính c a nó là th p. Thi t k là t t khi ñ k t dính cao. Khi ñó chúng ta s d dàng hi u ñư c t ng môñun và vi c s a ch a m t môñun s không (ít) nh hư ng t i các môñun khác. Constantine và Yourdon ñ nh ra 7 m c k t dính theo th t tăng d n sau ñây: o K t dính gom góp: các công vi c không liên quan v i nhau, song l i b bó vào m t môñun. o K t dính logic: các thành ph n cùng th c hi n các ch c năng tương t v logic ch ng h n như vào/ra, x lý l i,... ñư c ñ t vào cùng m t mô ñun. o K t dính th i ñi m: t t c các thành ph n cùng ho t hóa m t lúc, ch ng h n như các thao tác kh i t o ñư c bó l i v i nhau. o K t dính th t c: các ph n t trong môñun ñư c ghép l i trong m t dãy ñi u khi n. o K t dính truy n thông: t t c các ph n t c a môñun cùng thao tác trên m t d li u vào và ñưa ra cùng m t d li u ra. o K t dính tu n t : trong m t môñun, ñ u ra c a ph n t này là ñ u vào c a ph n t khác. o K t dính ch c năng: M i ph n c a môñun ñ u là c n thi t ñ thi hành cùng m t ch c năng nào ñó. Các l p k t dính này không ñư c ñ nh nghĩa ch t ch và cũng không ph i luôn luôn xác ñ nh ñư c. M t ñ i tư ng k t dính n u nó th hi n như m t th c th ñơn: t t c các phép toán trên th c th ñó ñ u n m trong th c th ñó. V y có th xác ñ nh m t l p k t dính n a là:

44

o K t dính ñ i tư ng: m i phép toán ñ u liên quan ñ n thay ñ i, ki m tra và s d ng thu c tính c a m t ñ i tư ng, là cơ s cung c p các d ch v c a ñ i tư ng. S ghép n i (Coupling):Ghép n i là ñ ño s n i ghép v i nhau gi a các ñơn v (môñun) c a h th ng. H th ng có n i ghép cao thì các môñun ph thu c l n nhau l n. H th ng n i ghép l ng l o thì các môñun là ñ c l p ho c là tương ñ i ñ c l p v i nhau và chúng ta s d b o trì nó. Các mô ñun ñư c ghép n i ch t ch n u chúng dùng các bi n chung và n u chúng trao ñ i các thông tin ñi u khi n (ghép n i chung nhau và ghép n i ñi u khi n). Ghép n i l ng l o ñ t ñư c khi b o ñ m r ng các thông tin c c b ñư c che d u trong các môñun và các môñun trao ñ i thông tin thông qua danh sách tham s (giao di n) xác ñ nh. Có th chia ghép n i thành các m c t ch t ch ñ n l ng l o như sau: o Ghép n i n i dung: hai hay nhi u môñun dùng l n d li u c a nhau, ñây là m c x u nh t, thư ng x y ra ñ i v i các ngôn ng m c th p dùng các d li u toàn c c hay l m d ng l nh GOTO. o Ghép n i chung: m t s môñun dùng các bi n chung, n u x y ra l i thao tác d li u, s khó xác ñ nh ñư c l i ñó do môñun nào gây ra. o Ghép n i ñi u khi n: m t môñun truy n các thông tin ñi u khi n ñ ñi u khi n ho t ñ ng c a m t môñun khác. o Ghép n i dư th a: môñun nh n thông tin th a không liên quan tr c ti p ñ n ch c năng c a nó, ñi u này s làm gi m kh năng thích nghi c a môñun ñó. o Ghép n i d li u: Các môñun trao ñ i thông tin thông qua tham s và giá tr tr l i. o Ghép n i không có trao ñ i thông tin: môñun th c hi n m t ch c năng ñ c l p và hoàn toàn không nh n tham s và không có giá tr tr l i. Ưu vi t c a thi t k hư ng ñ i tư ng là do b n ch t che d u thông tin c a ñ i tư ng d n t i vi c t o ra các h ghép n i l ng l o. Vi c th a k trong h th ng hư ng ñ i tư ng l i d n t i m t d ng khác c a ghép n i, ghép n i gi a ñ i tư ng m c cao và ñ i tư ng k th a nó. S hi u ñư c (Understandability): S hi u ñư c c a thi t k liên quan t i m t s ñ c trưng sau ñây: o Tính k t dính: có th hi u ñư c thành ph n ñó mà không c n tham kh o t i m t thành ph n nào khác hay không? o ð t tên: ph i chăng là m i tên ñư c dùng trong thành ph n ñó ñ u có nghĩa? Tên có nghĩa là nh ng tên ph n ánh tên c a th c th trong th gi i th c ñư c mô hình b i thành ph n ñó.

45

o So n tư li u: Thành ph n có ñư c so n th o tư li u sao cho ánh x gi a các th c th trong th gi i th c và thành ph n ñó là rõ ràng. o ð ph c t p: ñ ph c t p c a các thu t toán ñư c dùng ñ th c hi n thành ph n ñó như th nào? ð ph c t p cao ám ch nhi u quan h gi a các thành ph n khác nhau c a thành ph n thi t k ñó và m t c u trúc logic ph c t p mà nó dính líu ñ n ñ sâu l ng nhau c a c u trúc ifưthenưelsse. Các thành ph n ph c t p là khó hi u, vì th ngư i thi t k nên làm cho thi t k thành ph n càng ñơn gi n càng t t. ða s công vi c v ño ch t lư ng thi t k ñư c t p trung vào c g ng ño ñ ph c t p c a thành ph n và t ñó thu ñư c m t vài ñ ño v s d hi u c a thành ph n. ð ph c t p ph n ánh ñ d hi u, nhưng cũng có m t s nhân t khác nh hư ng ñ n ñ d hi u, ch ng h n như t ch c d li u và ki u cách mô t thi t k . Các s ño ñ ph c t p có th ch cung c p m t ch s cho ñ d hi u c a m t thành ph n. S thích nghi ñư c (Adaptability): M t thi t k d b o trì thì nó ph i s n sàng thích nghi ñư c, nghĩa là các thành ph n c a chúng nên ñư c ghép n i l ng l o. M t thành ph n có th là ghép n i l ng l o theo nghĩa là ch h p tác v i các thành ph n khác thông qua vi c truy n các thông báo. S thích nghi ñư c còn có nghĩa là thi t k ph i ñư c so n th o tư li u t t, d hi u và nh t quán. o ð có ñ thích nghi thì h th ng còn c n ph i ph i t ch a. Mu n là t ch a m t cách hoàn toàn thì m t h th ng không nên dùng các thành ph n khác ñư c xác ñ nh ngo i lai. Tuy nhiên, ñi u ñó l i mâu thu n v i kinh nghi m nói r ng các thành ph n hi n có nên là dùng l i ñư c. V y là c n có m t cân b ng gi a tính ưu vi t c a s dùng l i các thành ph n và s m t mát tính thích nghi ñư c c a h th ng. M t trong nh ng ưu vi t chính c a k th a trong thi t k hư ng ñ i tư ng là các thành ph n này có th s n sàng thích nghi ñư c. Cơ c u thích nghi ñư c này không d a trên vi c c i biên thành ph n ñã có mà d a trên vi c t o ra m t thành ph n m i th a k các thu c tính và các ch c năng c a thành ph n ñó. Chúng ta ch c n thêm các thu c tính và ch c năng c n thi t cho thành ph n m i. Các thành ph n khác d a trên thành ph n cơ b n ñó s không b nh hư ng gì.

3.2.
3.2.1.

Thi t k hư ng ch c năng
Cách ti p c n hư ng ch c năng

Thi t k hư ng ch c năng là m t cách ti p c n thi t k ph n m m trong ñó b n thi t k ñư c phân gi i thành m t b các ñơn th tác ñ ng l n nhau, mà m i ñơn th có m t ch c năng ñư c xác ñ nh rõ ràng. Các ch c năng có các tr ng thái c c b nhưng chúng chia s v i nhau tr ng thái h th ng, tr ng thái này là t p trung và m i ch c năng ñ u có th truy c p ñư c. Nhi u t ch c ñã phát tri n các chu n và các phương pháp d a trên s phân gi i ch c năng. Nhi u phương pháp thi t k k t h p v i công c CASE ñ u là

46

hư ng ch c năng. Vô kh i các h th ng ñã ñư c phát tri n b ng cách s d ng phương pháp ti p c n hư ng ch c năng. Các h th ng ñó s ñư c b o trì cho m t tương lai xa xôi. B i v y thi t k hư ng ch c năng v n s còn ñư c ti p t c s d ng r ng rãi. Trong thi t k hư ng ch c năng, ngư i ta dùng các bi u ñ lu ng d li u (mô t vi c x lý d li u), các lư c ñ c u trúc (nó ch ra c u trúc c a ph n m m), và các mô t thi t k chi ti t. Thi t k hư ng ch c năng g n v i các chi ti t c a m t thu t toán c a ch c năng ñó nhưng các thông tin tr ng thái h th ng là không b che d u. Vi c thay ñ i m t ch c năng và cách nó s d ng tr ng thái c a h th ng có th gây ra nh ng tương tác b t ng ñ i v i các ch c năng khác. Cách ti p c n ch c năng ñ thi t k là t t nh t khi mà kh i lư ng thông tin tr ng thái h th ng ñư c làm nh nh t và thông tin dùng chung nhau là rõ ràng.

3.2.2.

Bi u ñ lu ng d li u

Bi u ñ lu ng d li u ch ra cách th c bi n ñ i d li u vào thành d li u ra thông qua m t dãy các phép bi n ñ i. Bư c th nh t c a thi t k hư ng ch c năng là phát tri n m t bi u ñ lu ng d li u h th ng. Bi u ñ này không nh t thi t bao g m các thông tin ñi u khi n nhưng nên l p tư li u các phép bi n ñ i d li u. Bi u ñ lu ng d li u là m t ph n h p nh t c a m t s các phương pháp thi t k và các công c CASE thư ng tr giúp cho vi c t o ra bi u ñ lu ng d li u.

3.2.3.

Lư c ñ c u trúc

Lư c ñ c u trúc ch ra c u trúc các thành ph n theo th b c c a h th ng. Nó ch ra r ng các ph n t c a m t bi u ñ lu ng d li u có th ñư c th c hi n như th nào v i tư cách là m t th b c c a các ñơn v chương trình. Lư c ñ c u trúc có th ñư c dùng như là m t mô t chương trình nhìn th y ñư c v i các thông tin xác ñ nh các s l a ch n và các vòng l p. Lư c ñ c u trúc ñư c dùng ñ trình bày m t t ch c tĩnh c a thi t k .

3.2.4.

Các t ñi n d li u

T ñi n d li u v a có ích cho vi c b o trì h th ng v a có ích trong quá trình thi t k . V i m i khái ni m thi t k , c n có m t t khóa mô t ng v i t khóa (entry) c a t ñi n d li u cung c p thông tin v khái ni m ñó (ki u, ch c năng c a d li u...). ðôi khi ngư i ta g i cái này là m t mô t ng n c a ch c năng thành ph n. Các t ñi n d li u dùng ñ n i các mô t thi t k ki u bi u ñ và các mô t thi t k ki u văn b n. M t vài b công c CASE cung c p m t phép n i t ñ ng bi u ñ lu ng d li u và t ñi n d li u.

47

3.3.
3.3.1.

Thi t k hư ng ñ i tư ng
Cách ti p c n hư ng ñ i tư ng

Thi t k hư ng ñ i tư ng d a trên chi n lư c che d u thông tin c u trúc vào bên trong các thành ph n. Cái ñó ng m hi u r ng vi c k t h p ñi u khi n logic và c u trúc d li u ñư c th c hi n trong thi t k càng ch m càng t t. Liên l c thông qua các thông tin tr ng thái dùng chung (các bi n t ng th ) là ít nh t, nh v y kh năng hi u ñư c nâng lên. Thi t k là tương ñ i d thay ñ i vì s thay ñ i c u trúc m t thành ph n có th không c n quan tâm t i các hi u ng ph trên các thành ph n khác. Vi c che d u thông tin trong thi t k hư ng ñ i tư ng là d a trên s nhìn h ph n m m như là m t b các ñ i tư ng tương tác v i nhau ch không ph i là b các ch c năng như cách ti p c n ch c năng. Các ñ i tư ng có m t tr ng thái riêng ñư c che d u và các phép toán trên tr ng thái ñó. Thi t k bi u th các d ch v ñư c yêu c u cùng v i nh ng h tr mà các ñ i tư ng có tương tác v i nó cung c p.

3.3.2.
-

Ba ñ c trưng c a thi t k hư ng ñ i tư ng

Thi t k hư ng ñ i tư ng bao g m các ñ c trưng chính sau: Không có vùng d li u dùng chung. Các ñ i tư ng liên l c v i nhau b ng cách trao ñ i thông báo. Các ñ i tư ng là các th c th ñ c l p, d thay ñ i vì r ng t t c các tr ng thái và các thông tin bi u di n ch nh hư ng trong ph m vi chính ñ i tư ng ñó thôi. Các thay ñ i v bi u di n thông tin có th ñư c th c hi n không c n s tham kh o t i các ñ i tư ng khác. Các ñ i tư ng có th phân tán và có th ho t ñ ng tu n t ho c song song. ðây là m t trong nh ng lý do khi n cho thi t k hư ng ñ i tư ng ñư c s d ng r ng rãi trong các h th ng nhúng.

-

3.3.3.

Cơ s c a thi t k hư ng ñ i tư ng

Cơ s c a thi t k hư ng ñ i tư ng là các l p. L p là m t tr u tư ng mô t cho m t nhóm s v t. ð i tư ng c a m t l p là m t th c th (c th hóa) c a l p ñó. Thi t k c a m t l p bao g m: C u trúc d li u (thu c tính) Hàm, th t c (ch c năng) Giao di n (cung c p kh năng trao ñ i d li u ñ i v i các l p khác, v b n ch t là các ch c năng c a ñ i tư ng)

48

Vi c cài ñ t các giao di n là m t y u t quan tr ng ñ ñ m bao che d u c u trúc d li u. T c là thi t k n i t i c a ñ i tư ng ñ c l p v i giao di n do ñó chúng ta có th s a ñ i thi t k mà không s nh hư ng t i các ñ i tư ng khác. Các ñ i tư ng trao ñ i v i nhau b ng cách truy n các thông báo. T c là m t ñ i tư ng yêu c u m t ñ i tư ng khác th c hi n m t ch c năng nào ñó. Thông báo bao g m: tên ñ i tư ng, tên phương th c, và các tham s . Vòng ñ i c a m t ñ i tư ng khi h th ng ho t ñ ng như sau: Kh i t o: h th ng t o ra ñ i tư ng b ng cách xác l p vùng d li u ñ ng th i t ñ ng th c hi n các ch c năng liên quan ñ n kh i t o ñ i tư ng. Ho t ñ ng: ñ i tư ng nh n các thông báo và th c hi n các ch c năng ñư c yêu c u. Phá h y: h th ng gi i phóng vùng nh ñã ñư c c p phát sau khi th c hi n t ñ ng các thao tác c n thi t ñ h y ñ i tư ng.

Nh có ch c năng kh i t o và phá h y ñư c g i t ñ ng chúng ta có th t ñ ng hóa ñư c m t s công vi c và tránh ñư c nhi u sai sót trong l p trình như quên kh i t o d li u, quên c p phát hay quên gi i phóng vùng nh ñ ng. S k th a. K th a là m t khái ni m quan tr ng trong thi t k hư ng ñ i tư ng. M t l p có th ñư c ñ nh nghĩa d a trên s k th a m t ho c nhi u l p ñã ñư c ñ nh nghĩa. K th a ñây bao g m o K th a c u trúc d li u o K th a ch c năng Kh năng k th a giúp cho rút g n ñư c chương trình và nâng cao tính tái s d ng. M t chi n lư c chung là trư c tiên t o ra các l p tr u tư ng (ñ có th dùng chung) và ñ i v i các bài toán c th t o ra các l p k th a b ng cách thêm các thông tin ñ c thù.

3.3.4.
-

Các bư c thi t k

Thi t k hư ng ñ i tư ng bao g m các bư c chính sau: Xác ñ nh l p ñ i tư ng. Xác ñ nh thu c tính cho l p: các bi n c a l p Xác ñ nh hành vi (ch c năng): các hàm Xác ñ nh tương tác gi a các l p ñ i tư ng: giao di n (thông báo). Áp d ng tính k th a: xây d ng các l p tr u tư ng có các thu c tính chung, ñây là m t khâu ñ c trưng c a thi t k hư ng ñ i tư ng.

49

Ví d , gi s c n xây d ng các l p hình tròn, elíp và ña giác. Có th th y elip và hình tròn có m t s các thu c tính chung như t a ñ tâm, chúng ta có th xây d ng l p hình nón ch a các thu c tính chung này. Gi a hình nón và ña giác l i có th tìm ra các thu c tính chung như m u n n, m u biên..., và có th xây d ng l p tr u tư ng hình hình h c ch a các thu c tính này. Phương pháp xác ñ nh ñ i tư ng Xác ñ nh ñ i tư ng là m t trong nhưng công ño n thi t k quan tr ng, ph thu c nhi u vào kinh nghi m và bài toán c th . Có m t s phương pháp ñư c ñ xu t, m t trong các phương pháp này là phân tích t v ng c a “câu yêu c u”. C th là danh t trong câu yêu c u s ñư c coi là ñ i tư ng và ñ ng t s ñư c coi là ch c năng. Ví d : V i yêu c u Ph n m m Email cung c p cho user kh năng g i thư, ñ c thư và so n th o thư ñi n t ., chúng ta có th sơ b t o ra các ñ i tư ng ph n m m, user, email và các ch c năng g i, nh n, so n th o.

3.3.5.
-

Ưu như c ñi m c a thi t k hư ng ñ i tư ng

Thi t k hư ng ñ i tư ng có các ưu ñi m chính sau: D b o trì vì các ñ i tư ng là ñ c l p. Các ñ i tư ng có th hi u và c i biên như là m t th c th ñ c l p. Thay ñ i trong th c hi n m t ñ i tư ng ho c thêm các d ch v s không làm nh hư ng t i các ñ i tư ng h th ng khác. Các ñ i tư ng là các thành ph n dùng l i ñư c thích h p do tính ñ c l p c a chúng và kh năng k th a cao. Có m t vài l p h th ng th hi n ph n ánh quan h rõ ràng gi a các th c th có th c (ch ng h n như các thành ph n ph n c ng) v i các ñ i tư ng ñi u khi n nó trong h th ng. ði u này ñ t ñư c tính d hi u c a thi t k .

-

Như c ñi m chính c a thi t k hư ng ñ i tư ng là s khó nh n ra các ñ i tư ng c a m t h th ng. Cách nhìn t nhiên ñ i v i nhi u h th ng là cách nhìn ch c năng.

3.3.6.

Quan h gi a thi t k và l p trình hư ng ñ i tư ng

Thi t k hư ng ñ i tư ng là m t chi n lư c thi t k , không ph thu c vào ngôn ng th c hi n c th nào. Các ngôn ng l p trình hư ng ñ i tư ng có các kh năng bao gói ñ i tư ng, và k th a làm cho vi c th c hi n thi t k hư ng ñ i tư ng an toàn hơn và ñơn gi n hơn. M t thi t k hư ng ñ i tư ng cũng có th ñư c th c hi n trong m t ngôn ng th t c ki u như PASCAL ho c C (không có các ñ c ñi m bao gói như v y). Ada không ph i là ngôn ng l p trình hư ng ñ i tư ng vì nó không tr giúp s th a k c a các l p, nhưng

50

l i có th th c hi n các ñ i tư ng trong Ada b ng cách s d ng các gói ho c các nhi m v (tasks), do ñó Ada cũng ñư c dùng ñ mô t các thi t k hư ng ñ i tư ng. Tuy nhiên, cũng ph i nh n m nh r ng chúng ta có th mô t thi t k hư ng ñ i tư ng trên các ngôn ng truy n th ng nhưng chúng ta không th ki m tra ñư c s tuân th tư tư ng hư ng ñ i tư ng trên các ngôn ng này, nghĩa là ngư i phát tri n v n có th truy c p ñ n c u trúc d li u v t lý c a ñ i tư ng và vi c ñó làm vô nghĩa khái ni m che d u thông tin. Vi c ch p nh n thi t k hư ng ñ i tư ng như là m t chi n lư c h u hi u d n ñ n s phát tri n r ng rãi các phương pháp thi t k hư ng ñ i tư ng và các ngôn ng l p trình hư ng ñ i tư ng.

3.3.7.

Quan h gi a thi t k hư ng ñ i tư ng và hư ng ch c năng

Có nhi u quan ni m khác nhau v quan h gi a thi t k hư ng ñ i tư ng và thi t k hư ng ch c năng. Có ngư i cho r ng, hai chi n lư c thi t k này h tr l n nhau, c th là DFD dưa ra mô hình v các thu c tính và ch c năng Lu ng giao tác ñưa ra hư ng d n v tương tác gi a các ñ i tư ng (thông báo) Mô hình ERD ñưa ra hư ng d n xây d ng ñ i tư ng

Thêm n a, thi t k n i t i c a l p ñ i tư ng có nhi u ñi m tương ñ ng v i thi t k hư ng ch c năng. M t quan ñi m khác cho r ng thi t k hư ng ñ i tư ng và thi t k hư ng ch c năng là hai cách ti p c n hoàn toàn khác nhau, các khái ni m như che d u thông tin, k th a là ñ c trưng quan tr ng và b n ch t c a thi t k hư ng ñ i tư ng và n u không d t b cách nhìn thi t k hư ng ch c năng thì không th khai thác hi u qu các ñ c trưng này.

3.4.

Thi t k giao di n ngư i s d ng

Thi t k h th ng máy tính bao g m m t ph r t r ng các công vi c t thi t k ph n c ng cho ñ n thi t k giao di n ngư i s d ng. Giao di n c a h th ng thư ng là tiêu chu n so sánh ñ phán xét v h th ng. Giao di n ñư c thi t k kém s gây ra nh ng nh m l n cho ngư i s d ng, khi n cho h không s d ng ñư c các ch c năng c n thi t và trong trư ng h p x u có th th c hi n các thao tác nguy hi m như phá h y thông tin c n thi t. T m quan tr ng c a giao di n còn ñư c xem xét trên hai y u t :

51

-

Khía c nh nghi p v : ngư i dùng thông qua giao di n ñ tương tác v i h th ng, ñây là khâu nghi p v th công duy nh t do ñó n u ñư c thi t k t t s nâng cao t c ñ x lý công vi c và d n t i hi u qu kinh t cao. Khía c nh thương m i: ñ i v i các s n ph m bán hàng lo t, giao di n ñư c thi t k t t (d s d ng, ñ p) s gây n tư ng v i khách hàng và là y u t chính khi khách hàng ch n mua s n ph m.

-

Ngoài các y u t hi u qu công vi c, ñ p, d h c d s d ng, m t thi t k giao di n hi n ñ i nên có tính ñ c l p cao v i kh i chương trình x lý d li u. ð i v i nhi u h th ng, giao di n là b ph n có t m quan tr ng ch ch t và có yêu c u s a ñ i thư ng xuyên. Do ñó, ñ ti n cho vi c s a ñ i, giao di n nên ñư c thi t k có tính môñun hóa cao và nên có ñ ñ c l p t i ña v i kh i chương trình x lý d li u. ði u này cũng d n ñ n kh năng chúng ta có th xây d ng nhi u giao di n khác nhau cho các ñ i tư ng s d ng khác nhau hay ch y trên các h th ng khác nhau. Có hai dòng giao di n chính là: Giao di n dòng l nh: là lo i giao di n ñơn gi n nh t, thư ng ñư c thi t k g n ch t v i chương trình và có tính di chuy n cao (tương ñương v i chương trình). Giao di n dòng l nh phù h p v i các ng d ng thu n túy x lý d li u, nh t là ñ i v i các chương trình mà ñ u ra là ñ u vào c a chương trình khác. Giao di n dòng l nh g n nh , d xây d ng nhưng thư ng khó h c, khó s d ng và ch phù h p v i ngư i dùng chuyên nghi p trong các ng d ng ñ c thù. Giao di n ñ h a: s d ng các c a s , menu, icon... cho phép ngư i dùng có th truy c p song song ñ n nhi u thông tin khác nhau; ngư i dùng thư ng tương tác b ng cách ph i h p c bàn phím và con chu t; giao di n ñ h a d h c, d s d ng và tr nên r t thông d ng và có ñ chu n hóa cao.

-

Nhìn trên khía c nh ñ c l p v i kh i chương trình x lý, có m t s cách th c xây d ng giao di n khác nhau: Giao di n ñ h a (GUI) truy n th ng: là giao di n ñ h a ñư c thi t k có ñ liên k t cao v i chương trình (ñư c xây d ng cùng ngôn ng , cùng b công c ...), h u h t các chương trình trên máy tính cá nhân s d ng lo i giao di n này. X protocol: giao di n ñ h a s d ng giao th c X protocol, ph bi n trên các máy Unix/Linux. Lo i giao di n này có ưu di m là có th ho t ñ ng ñ c l p v i kh i chương trình còn l i, t c là ta có th ch y giao di n trên m t máy tính trong khi ñó ph n x lý bên trong l i ho t ñ ng trên m t máy khác. ðáng ti c là phương th c này v n chưa ph bi n trên các máy tính cá nhân (ch y h ñi u hành MS Windows).

-

52

-

Client/server: m t cách ti p c n ñ hư ng t i tính ñ c l p và kh chuy n c a giao di n là xây d ng giao di n như là m t chương trình client, tương tác v i kh i chương trình x lý (server) thông qua các giao th c trao ñ i thông tin trên m ng (TCP/IP). Web based: m t trong các cách th c xây d ng giao di n ph bi n hi n nay là d a trên n n web, s d ng các trình duy t web ñ trao d i thông tin v i server. Tuy có m t s như c ñi m v an toàn thông tin và t c ñ nhưng v i tính ñ c l p hoàn toàn v i ph n x lý, ñ chu n hóa cao và kh năng s n có trên h u h t các thi t b n i m ng, phương th c này ñang ñư c ng d ng r ng rãi.

-

Thi t k giao di n khác v i thi t k các ch c năng khác c a ph n m m ñi m hư ng t i ngư i s d ng, c n ngư i s d ng ñánh giá. Các công ño n thi t k khác như thi t k d li u, thi t k thu t toán che d u ho t ñ ng k thu t chi ti t kh i khách hàng. Ngư c l i, khách hàng (ngư i dùng ti m n) nên tham gia vào quá trình thi t k giao di n. Kinh nghi m và kh năng c a h c n ph i ñư c tính ñ n khi thi t k giao di n.

3.4.1.
-

M t s v n ñ thi t k

Trong thi t k giao di n, c n chú ý t i m t s v n ñ sau: Th i gian ph n h i. Chúng ta c n quan tâm t i hai lo i th i gian là o Th i gian ñáp ng trung bình: là th i gian trung bình mà h th ng ph n h i ñ i v i m t yêu c u c a ngư i dùng. Th i gian ñ sinh ra “k t qu th c s ” c a yêu c u s ph thu c vào b n ch t yêu c u, thu t toán, t c ñ c a máy tính, tuy nhiên chúng ta c n quan tâm khía c nh tâm lý là n u ngư i dùng ñ i quá lâu mà không nh n ñư c thông tin gì thì h s nghĩ là có v n ñ và có th s ti n hành các thao tác ngoài mong ñ i như l p l i thao tác hay d ng h th ng. o ð bi n thiên c a th i gian: ñ bi n thiên c a th i gian cũng là ñ i lư ng c n quan tâm. N u ñ bi n thiên l n, ví d m t thao tác thư ng ñư c ñáp ng trong 1 giây mà có trư ng h p ph i m t 5 giây m i hoàn thành thì cũng có th làm cho ngư i dùng ñưa ra các thao tác sai. Các ti n ích. M t giao di n t t c n có các ti n ích ñ tr giúp ngư i s d ng. Có các lo i ti n ích sau o Tích h p: là ti n ích ñư c tích h p vào giao di n như nút Help cung c p các thuy t minh v thao tác. o Ph thêm: là các ti n ích ph thêm như các tài li u tr c tuy n. o Macro: m t s chương trình còn cho phép ngư i dùng t ñ ng hóa m t s thao tác b ng các l nh ki u macro. Thông báo. Các thông báo do h th ng ñưa ra c n

53

o Có nghĩa: m i thông báo c n có nghĩa ñ i v i ngư i dùng. o Ng n g n: các thông báo c n ng n g n ñi vào b n ch t v n ñ , ñ c bi t là ñ i v i ki u giao di n dòng l nh. o Có tính xây d ng: thông báo nên có tính xây d ng như ñưa ra các nguyên nhân và các hư ng kh c ph c.

3.4.2.
-

M t s hư ng d n thi t k

Dư i ñây là m t s y u t mà giao di n t t nên có: Hư ng ngư i dùng: ñ i tư ng ngư i dùng ph i rõ ràng, giao di n nên ñư c thi t k có tính ñ n năng l c, thói quen... c a lo i ñ i tư ng ñó. Có kh năng tùy bi n cao: giao di n nên có kh năng tùy bi n cao ñ ph c v cho các cá nhân có cách s d ng khác nhau, các môi trư ng ho t ñ ng khác nhau.

Các ph n m m trên h UNIX v i giao di n theo chu n X protocol thư ng ñư c thi t k có ñ tùy bi n r t cao. Nh t quán: các bi u tư ng, thông báo, cách th c nh p d li u ph i nh t quán và nên tuân theo các chu n thông thư ng. An toàn: nên có ch ñ xác nh n l i ñ i v i các thao tác nguy hi m (như xóa d li u) và nên có kh năng ph c h i tr ng thái cũ (undo). D h c, d s d ng: giao di n luôn c n ñư c thi t k hư ng t i tính d h c, d s d ng, t c là không ñòi h i ngư i dùng ph i có các năng l c ñ c bi t. Ví d như không c n nh nhi u thao tác, không ñòi h i ph i thao tác nhanh, các thông tin trên màn hình d ñ c... M t cách t t nh t ñ xây d ng giao di n d h c d s d ng là tuân theo các chu n giao di n thông d ng.

3.5.

T ng k t

Thi t k là cái lõi c a công ngh ph n m m. Trong khi thi t k ngư i ta s phát tri n, xét duy t và làm tư li u cho vi c làm m n d n các chi ti t th t c, c u trúc chương trình, c u trúc d li u. Thông qua thi t k và xét duy t, chúng ta có th th m ñ nh ñư c ch t lư ng ph n m m. Tính môñun (trong c chương trình và d li u) và khái ni m tr u tư ng làm cho ngư i thi t k có kh năng ñơn gi n hóa và dùng l i các thành ph n ph n m m. Vi c làm m n ñưa ra m t cơ ch ñ bi u di n các t ng k ti p c a chi ti t ch c năng. C u trúc chương trình và d li u ñóng góp cho m t quan ñi m t ng th v ki n trúc ph n m m, trong khi th t c l i ñưa ra nh ng chi ti t c n thi t cho vi c cài ñ t thu t toán. Che d u thông tin và ñ c l p ch c năng ñưa ra nh ng tr c c m ñ ñ t t i tính môñun có hi u qu . Thi t k ph n m m có th ñư c xem xét ho c theo cách nhìn k thu t ho c theo cách nhìn qu n lý d án. Theo quan ñi m k thu t, thi t k bao g m 4 ho t ñ ng: thi t k d

54

li u, thi t k ki n trúc, thi t k th t c và thi t k giao di n. Theo quan ñi m qu n lý, thi t k ti n hóa t thi t k sơ b sang thi t k chi ti t. Ký pháp thi t k , ñi kèm v i các khái ni m l p trình có c u trúc làm cho ngư i thi t k bi u di n ñư c chi ti t th t c theo cách th c làm thu n ti n cho vi c d ch sang mã chương trình. Chúng ta có th s d ng các ký pháp ñ h a, b ng và ngôn ng mô t . Còn nhi u phương pháp thi t k ph n m m quan tr ng như thi t k hư ng ch c năng, hư ng ñ i tư ng. Nh ng phương pháp này, ñư c k t h p v i nh ng n n t ng ñã trình bày trên t o nên cơ s cho m t cách nhìn ñ y ñ v thi t k ph n m m.

55

CHƯƠNG 4. L P TRÌNH
4.1. Ngôn ng l p trình
Ngôn ng l p trình là phương ti n ñ liên l c gi a con ngư i và máy tính. Ti n trình l p trình - s liên l c thông qua ngôn ng l p trình - là m t ho t ñ ng con ngư i. L p trình là bư c c t lõi trong ti n trình công ngh ph n m m.

4.1.1.

ð c trưng c a ngôn ng l p trình

Cách nhìn công ngh ph n m m v các ñ c trưng c a ngôn ng l p trình t p trung vào nhu c u xác ñ nh d án phát tri n ph n m m riêng. M c d u ngư i ta v n c n các yêu c u riêng cho chương trình g c, có th thi t l p ñư c m t t p h p t ng quát nh ng ñ c trưng công ngh : d d ch thi t k sang chương trình, có trình biên d ch hi u qu , kh chuy n chương trình g c, có s n công c phát tri n, d b o trì.

Bư c l p trình b t ñ u sau khi thi t k chi ti t ñã ñư c xác ñ nh, xét duy t và s a ñ i n u c n. V lý thuy t, vi c sinh chương trình g c t m t ñ c t chi ti t nên là tr c ti p. D d ch thi t k sang chương trình ñưa ra m t ch d n v vi c m t ngôn ng l p trình ph n x g n gũi ñ n m c nào cho m t bi u di n thi t k . M t ngôn ng cài ñ t tr c ti p cho các k t c u có c u trúc, các c u trúc d li u ph c t p, vào/ra ñ c bi t, kh năng thao tác bit, và các k t c u hư ng s v t s làm cho vi c d ch t thi t k sang chương trình g c d hơn nhi u (n u các thu c tính này ñư c xác ñ nh trong thi t k ). M c d u nh ng ti n b nhanh chóng trong t c ñ x lý và m t ñ nh ñã b t ñ u làm gi m nh nhu c u chương trình siêu hi u qu , nhi u ng d ng v n còn ñòi h i các chương trình ch y nhanh, g n (yêu c u b nh th p). Các ngôn ng v i trình biên d ch t i ưu có th là h p d n n u hi u năng ph n m m là yêu c u ch ch t. Tính kh chuy n chương trình g c là m t ñ c trưng ngôn ng l p trình có th ñư c hi u theo ba cách khác nhau: Chương trình g c có th ñư c chuy n t b x lý này sang b x lý khác và t trình biên d ch n sang trình biên d ch kia v i r t ít ho c không ph i s a ñ i gì. Chương trình g c v n không thay ñ i ngay c khi môi trư ng c a nó thay ñ i (như vi c cài ñ t b n m i c a h ñi u hành).

56

-

Chương trình g c có th ñư c tích h p vào trong các b trình ph n m m khác nhau v i ít hay không c n thay ñ i gì vì các ñ c trưng c a ngôn ng l p trình.

Trong s ba cách hi u v tính kh chuy n này thì cách th nh t là thông d ng nh t. Vi c ñưa ra các chu n (do t ch c tiêu chu n qu c t IFO hay Vi n tiêu chu n qu c gia Mĩ - ANSI) góp ph n làm nâng cao tính kh chuy n. Tính s n có c a công c phát tri n có th làm ng n b t th i gian c n ñ sinh ra chương trình g c và có th c i thi n ch t lư ng c a chương trình. Nhi u ngôn ng l p trình có th c n t i m t lo t công c k c trình biên d ch g l i, tr giúp ñ nh d ng chương trình g c, các ti n nghi so n th o có s n, các công c ki m soát chương trình g c, thư vi n chương trình con m r ng trong nhi u lĩnh v c ng d ng, các trình duy t, trình biên d ch chéo cho phát tri n b vi x lý, kh năng b x lý macro, công c công ngh ngư c và nh ng công c khác. Trong th c t , khái ni m v môi trư ng phát tri n ph n m m t t (bao hàm c các công c ) ñã ñư c th a nh n như nhân t ñóng góp chính cho công ngh ph n m m thành công. Tính d b o trì c a chương trình g c có t m qu n tr ng ch ch t cho t t c các n l c phát tri n ph n m m không t m thư ng. Vi c b o trì không th ñư c ti n hành ch ng nào ngư i ta còn chưa hi u ñư c ph n m m. Các y u t c a c u hình ph n m m (như tài li u thi t k ) ñưa ra m t n n t ng cho vi c hi u bi t, nhưng cu i cùng thì chương trình g c v n ph i ñư c ñ c và s a ñ i theo nh ng thay ñ i trong thi t k . Tính d d ch thi t k sang chương trình là m t y u t quan tr ng ñ d b o trì chương trình g c. Bên c nh ñó, các ñ c trưng t làm tài li u c a ngôn ng (như chi u dài ñư c phép c a tên g i, ñ nh d ng nhãn, ñ nh nghĩa ki u, c u trúc d li u) có nh hư ng m nh ñ n tính d b o trì.

4.1.2.

L a ch n ngôn ng l p trình

Các ñ c trưng c a ngôn ng l p trình s quy t ñ nh mi n ng d ng c a ngôn ng . Mi n ng d ng là y u t chính ñ chúng ta l a ch n ngôn ng cho m t d án ph n m m. C thư ng là m t ngôn ng hay ñư c ch n cho vi c phát tri n ph n m m h th ng. Trong các ng d ng th i gian th c chúng ta hay g p các ngôn ng như Ada, C, C++ và c h p ng do tính hi u qu c a chúng. Các ngôn ng này và Java cũng ñư c dùng cho phát tri n ph n m m nhúng. Trong lĩnh v c khoa h c k thu t thì FORTRAN v i kh năng tính toán v i ñ chính xác cao và thư vi n toán h c phong phú v n còn là ngôn ng th ng tr . Tuy v y, PASCAL và C cũng ñư c dùng r ng rãi. COBOL là ngôn ng cho ng d ng kinh doanh và khai thác CSDL l n nhưng các ngôn ng th h th tư ñã d n d n chi m ưu th .

57

BASIC v n ñang ti n hóa (Visual Basic) và ñư c ñông ñ o ngư i dùng máy tính cá nhân ng h m c dù ngôn ng này r t hi m khi ñư c nh ng ngư i phát tri n h th ng dùng. Các ng d ng trí tu nhân t o thư ng dùng các ngôn ng như LISP, PROLOG hay OPS5, tuy v y nhi u ngôn ng l p trình (v n năng) khác cũng ñư c dùng. Xu hư ng phát tri n ph n m m hư ng ñ i tư ng xuyên su t ph n l n các mi n ng d ng ñã m ra nhi u ngôn ng m i và các d b n ngôn ng qui ư c. Các ngôn ng l p trình hư ng ñ i tư ng ñư c dùng r ng rãi nh t là Smalltalk, C++, Java. Ngoài ra còn có Eiffel, Objectư PASCAL, Flavos và nhi u ngôn ng khác. V i ñ c trưng hư ng ñ i tư ng, tính hi u qu th c hi n cũng như có nhi u công c và thư vi n, C++ hi n ñang ñư c s d ng r ng rãi trong lĩnh v c phát tri n các ng d ng nghi p v . Java cũng là m t ngôn ng hư ng ñ i tư ng ñang ñư c s d ng r ng rãi cho phát tri n các d ch v Web và ph n m m nhúng vì các lý do ñ an toàn cao, tính trong sáng, tính kh chuy n và hư ng thành ph n. Theo m t s th ng kê thì t c ñ phát tri n m t ng d ng m i b ng Java cao hơn ñ n 2 l n so v i các ngôn ng truy n th ng như C hay th m chí C++. Các ngôn ng biên d ch (script) v i nh ng câu l nh và thư vi n m nh hi n ñang r t ñư c chú ý. ASP, JavaScript, PERL... ñang ñư c s d ng r ng rãi trong l p trình Web.

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

Nói chung, ch t lư ng c a thi t k ph n m m ñư c thi t l p theo cách ñ c l p v i các ñ c trưng ngôn ng l p trình. Tuy nhiên thu c tính ngôn ng ñóng m t vai trò trong ch t lư ng c a thi t k ñư c cài ñ t và nh hư ng t i cách thi t k ñư c xác ñ nh. Ví d như kh năng xây d ng mô ñun và bao gói chương trình. Thi t k d li u cũng có th b nh hư ng b i các ñ c trưng ngôn ng . Các ngôn ng l p trình như Ada, C++, Smalltalk ñ u h tr cho khái ni m v ki u d li u tr u tư ng - m t công c quan tr ng trong thi t k và ñ c t d li u. Các ngôn ng thông d ng khác, như PASCAL, cho phép ñ nh nghĩa các ki u d li u do ngư i dùng xác ñ nh và vi c cài ñ t tr c ti p danh sách móc n i và nh ng c u trúc d li u khác. Các tính năng này cung c p cho ngư i thi t k ph m vi r ng hơn trong các bư c thi t k sơ b và chi ti t. Các ñ c trưng c a ngôn ng cũng nh hư ng t i ki m th ph n m m. Các ngôn ng tr c ti p h tr cho các k t c u có c u trúc có khuynh hư ng gi m b t ñ ph c t p c a chương trình, do ñó có th làm cho nó d dàng ki m th . Các ngôn ng h tr cho vi c ñ c t các chương trình con và th t c ngoài (như FORTRAN) thư ng làm cho vi c ki m th tích h p ít sinh l i hơn.

58

4.2.

Phong cách l p trình

Phong cách l p trình bao hàm m t tri t lý v l p trình nh n m nh t i tính d hi u c a chương trình ngu n. Các y u t c a phong cách bao g m: tài li u bên trong chương trình, phương pháp khai báo d li u, cách xây d ng câu l nh và các k thu t vào/ra.

4.2.1.

Tài li u chương trình

Tài li u bên trong c a chương trình g c b t ñ u v i vi c ch n l a các tên g i ñ nh danh (bi n và nhãn), ti p t c v i v trí và thành ph n c a vi c chú thích, và k t lu n v i cách t ch c tr c quan c a chương trình. Vi c l a ch n các tên g i ñ nh danh có nghĩa là ñi u ch ch t cho vi c hi u chương trình. Nh ng ngôn ng gi i h n ñ dài tên bi n hay nhãn làm các tên mang nghĩa mơ h . Cho dù m t chương trình nh thì m t tên g i có nghĩa cũng làm tăng tính d hi u. Theo ngôn t c a mô hình cú pháp/ng nghĩa tên có ý nghĩa làm “ñơn gi n hóa vi c chuy n ñ i t cú pháp chương trình sang c u trúc ng nghĩa bên trong”. M t ñi u rõ ràng là: ph n m m ph i ch a tài li u bên trong. L i chú thích cung c p cho ngư i phát tri n m t ý nghĩa truy n thông v i các ñ c gi khác v chương trình g c. L i chú thích có th cung c p m t hư ng d n rõ r t ñ hi u trong pha cu i cùng c a công ngh ph n m m - b o trì. Có nhi u hư ng d n ñã ñư c ñ ngh cho vi c vi t l i chú thích. Các chú thích m ñ u và chú thích ch c năng là hai ph m trù ñòi h i cách ti p c n có hơi khác. L i chú thích m ñ u nên xu t hi n ngay ñ u c a m i modul. ð nh d ng cho l i chú thích như th là: 1. M t phát bi u v m c ñích ch rõ ch c năng mô ñun. 2. Mô t giao di n bao g m: - M t m u cách g i - Mô t v d li u - Danh sách t t c các mô ñun thu c c p 3. Th o lu n v d li u thích h p (như các bi n quan tr ng và nh ng h n ch , gi i h n v cách dùng chúng) và các thông tin quan tr ng khác. 4. L ch s phát tri n bao g m: - Tên ngư i thi t k modul (tác gi ). - Tên ngư i xét duy t và ngày tháng. - Ngày tháng s a ñ i và mô t s a ñ i. Các chú thích ch c năng ñư c nhúng vào bên trong thân c a chương trình g c và ñư c dùng ñ mô t cho các kh i chương trình.

4.2.2.

Khai báo d li u

Th t khai báo d li u nên ñư c chu n hóa cho dù ngôn ng l p trình không có yêu c u b t bu c nào v ñi u ñó. Các tên bi n ngoài vi c có nghĩa còn nên mang thông tin v ki u c a chúng. Ví d , nên th ng nh t các tên bi n cho ki u s nguyên, ki u s th c...

59

C n ph i chú gi i v m c ñích ñ i v i các bi n quan tr ng, ñ c bi t là các bi n t ng th . Các c u trúc d li u nên ñư c chú gi i ñ y ñ v c u trúc và ch c năng, và các ñ c thù v s d ng. ð c bi t là ñ i v i các c u trúc ph c t p như danh sách móc n i trong C hay Pascal.

4.2.3.

Xây d ng câu l nh

Vi c xây d ng lu ng logic ph n m m ñư c thi t l p trong khi thi t k . Vi c xây d ng t ng câu l nh tuy nhiên l i là m t ph n c a bư c l p trình. Vi c xây d ng câu l nh nên tuân theo m t qui t c quan tr ng hơn c : m i câu l nh nên ñơn gi n và tr c ti p. Nhi u ngôn ng l p trình cho phép nhi u câu l nh trên m t dòng. Khía c nh ti t ki m không gian c a tính năng này khó mà bi n minh b i tính khó ñ c n y sinh. C u trúc chu trình và các phép toán ñi u ki n ñư c ch a trong ño n trên ñ u b che l p b i cách xây d ng nhi u câu l nh trên m t dòng. Cách xây d ng câu l nh ñơn và vi c t t l minh h a cho các ñ c trưng logic và ch c năng c a ño n này. Các câu l nh chương trình g c riêng l có th ñư c ñơn gi n hóa b i: Tránh dùng các phép ki m tra ñi u ki n ph c t p Kh b các phép ki m tra ñi u ki n ph ñ nh Tránh l ng nhau nhi u gi a các ñi u ki n hay chu trình Dùng d u ngo c ñ làm sáng t các bi u th c logic hay s h c Dùng d u cách và/ho c các ký hi u d ñ c ñ làm sáng t n i dung câu l nh Ch dùng các tính năng chu n c a ngôn ng

ð hư ng t i chương trình d hi u luôn nên ñ t ra câu h i: Li u có th hi u ñư c ñi u này n u ta không là ngư i l p trình cho nó không?

4.2.4.
-

Nh p/xu t

Vào ra c a các mô ñun nên tuân th theo m t s hư ng d n sau: Làm h p l m i cái vào. Ki m tra s tin c y c a các t h p kho n m c vào quan tr ng. Gi cho ñ nh d ng cái vào ñơn gi n. Dùng các ch báo cu i d li u thay vì yêu c u ngư i dùng xác ñ nh “s các kho n m c”. Gi cho ñ nh d ng cái vào th ng nh t khi m t ngôn ng l p trình có các yêu c u ñ nh d ng nghiêm ng t.

60

4.3.
-

L p trình tránh l i

Tránh l i và phát tri n ph n m m vô l i d a trên các y u t sau: S n ph m c a m t ñ c t h th ng chính xác. Ch p nh n m t cách ti p c n thi t k ph n m m d a trên vi c bao gói d li u và che d u thông tin. Tăng cư ng duy t l i trong quá trình phát tri n và th m ñ nh h th ng ph n m m. Ch p nh n tri t lý ch t lư ng t ch c: ch t lư ng là bánh lái c a quá trình ph n m m. Vi c l p k ho ch c n th n cho vi c th nghi m h th ng ñ tìm ra các l i chưa ñư c phát hi n trong quá trình duy t l i và ñ ñ nh lư ng ñ tin c y c a h th ng. Có hai cách ti p c n chính h tr tránh l i là: L p trình có c u trúc: Thu t ng này ñư c ñ t ra t cu i nh ng năm 60 và có nghĩa là l p trình mà không dùng l nh goto, l p trình ch dùng các vòng l p while và các phát bi u if ñ xây d ng ñi u khi n và trong thi t k thì dùng cách ti p c n trên - xu ng. Vi c th a nh n l p trình có c u trúc là quan tr ng b i vì nó là bư c ñ u tiên bư c t cách ti p c n không khuôn phép t i phát tri n ph n m m. L p trình có c u trúc bu c ngư i l p trình ph i nghĩ c n th n v chương trình c a h , và vì v y nó ít t o ra sai l m trong khi phát tri n. L p trình có c u trúc làm cho chương trình có th ñư c ñ c m t cách tu n t và do ñó d hi u và d ki m tra. Tuy nhiên nó ch là bư c ñ u tiên trong vi c l p trình nh m ñ t ñ tin c y t t. Có m t vài khái ni m khác cũng hay d n t i các l i ph n m m: o Các s th c d u ch m ñ ng: các phép toán s th c ñư c làm tròn khi n cho vi c so sánh các k t qu s th c, nh t là so sánh b ng gi a hai s th c là không kh thi. S th c d u ph y ñ ng có ñ chính xác khác nhau khi n cho k t qu phép tính không theo mong mu n. Ví d , trong phép tính tính phân chúng ta c n c ng các giá tr nh trư c v i nhau n u không chúng s b làm tròn. o Các con tr và b nh ñ ng: con tr là các c u trúc b c th p khó qu n lý và d gây ra các l i nghi m tr ng ñ i v i h th ng. Vi c c p phát và thu h i b nh ñ ng ph c t p và là m t trong các nguyên nhân chính gây l i ph n m m. o Song song: l p trình song song ñòi h i k thu t cao và hi u bi t sâu s c v h th ng. M t trong các v n ñ ph c t p c a song song là qu n lý tương tranh. o ð quy. o Các ng t. Các c u trúc này có ích, nhưng ngư i l p trình nên dùng chúng m t cách c n th n.

61

-

Phân quy n truy c p d li u: Nguyên lý an ninh trong quân ñ i là các cá nhân ch ñư c bi t các thông tin có liên quan tr c ti p ñ n nhi n v c a h . Khi l p trình ngư i ta cũng tuân theo m t nguyên lý tương t cho vi c truy c p d li u h th ng. M i thành ph n chương trình ch ñư c phép truy c p ñ n d li u nào c n thi t ñ th c hi n ch c năng c a nó. Ưu ñi m c a vi c che d u thông tin là các thông tin b che d u không th b s p ñ (thao tác trái phép) b i các thành ph n chương trình mà ñư c xem r ng không dùng thông tin ñó. Ti n hóa c a s phân quy n truy c p là che d u thông tin, hay nói chính xác hơn là che d u c u trúc thông tin. Khi ñó, chúng ta có th thay ñ i c u trúc thông tin mà không ph i thay ñ i các thành ph n khác có s d ng thông tin ñó.

4.3.1.

L p trình th l i

ð i v i các h th ng ñòi h i ñ tin c y r t cao như h th ng ñi u khi n bay thì c n ph i có kh năng dung th l i (fault tolerance), t c là kh năng ñ m b o cho h th ng v n ho t ñ ng chính xác ngay c khi có thành ph n sinh l i. Có b n ho t ñ ng c n ph i ti n hành n u h th ng là th l i: Phát hi n l i. ð nh ra m c ñ thi t h i. H i ph c sau khi g p l i: H th ng ph i h i ph c v tr ng thái mà nó bi t là an toàn. Cũng có th là ch nh lý tr ng thái b h y ho i (h i ph c ti n), cũng có th là lui v m t tr ng thái trư c mà an toàn (h i ph c lùi). Ch a l i: C i ti n h th ng ñ cho l i ñó không xu t hi n n a. Tuy nhiên trong nhi u trư ng h p phát hi n ñư c ñúng nguyên nhân gây l i là r t khó khăn vì nó x y ra b i m t t h p c a thông tin vào và tr ng thái c a h th ng. Thông thư ng, th l i ñư c th c hi n b ng cách song song hóa các ch c năng, k t h p v i b ñi u khi n th l i. B ñi u khi n s so sánh k t qu c a các kh i chương trình th c hi n cùng nhi m v và s d ng nguyên t c ña s ñ ch n k t qu .

-

4.3.2.

L p trình phòng th

L p trình phòng th là cách phát tri n chương trình mà ngư i l p trình gi ñ nh r ng các mâu thu n ho c các l i chưa ñư c phát hi n có th t n t i trong chương trình. Ph i có ph n m m ki m tra tr ng thái h th ng sau khi bi n ñ i và ph i ñ m b o r ng s bi n ñ i tr ng thái là kiên ñ nh. N u phát hi n m t mâu thu n thì vi c bi n ñ i tr ng thái là ph i rút l i và tr ng thái ph i tr v tr ng thái ñúng ñ n trư c ñó. Nói chung m t l i gây ra m t s s p ñ tr ng thái: các bi n tr ng thái ñư c gán các tr không h p lu t. Ngôn ng l p trình như Ada cho phép phát hi n ra các l i ñó ngay trong th i gian biên d ch. Tuy nhiên vi c ki m tra biên d ch ch h n ch cho các giá tr
62

tĩnh và m t vài phép ki m tra th i gian th c là không th tránh ñư c. M t cách ñ phát hi n l i trong chương trình Ada là dùng cơ ch x lý b t thư ng k t h p v i ñ c t mi n tr . H i ph c l i là m t quá trình c i biên không gian tr ng thái c a h th ng sao cho hi u ng c a l i là nh nh t và h th ng có th ti p t c v n hành, có l là trong m t m c suy gi m. H i ph c ti n liên quan ñ n vi c c g ng ch nh l i tr ng thái h th ng. H i ph c lùi liên quan ñ n vi c lưu tr ng thái c a h th ng bi t. m t tr ng thái ñúng ñã

H i ph c ti n thư ng là m t chuyên bi t ng d ng. Có hai tình th chung mà khi ñó h i ph c ti n có th thành công: Khi d li u mã b s p ñ : Vi c s d ng k thu t mã hóa thích h p b ng cách thêm các d li u dư th a vào d li u cho phép s a sai khi phát hi n l i. Khi c u trúc n i b s p ñ : N u các con tr ti n và lùi ñã có trong c u trúc d li u thì c u trúc ñó có th tái t o n u như còn ñ các con tr chưa b s p. K thu t này thư ng ñư c dùng cho vi c s a ch a h th ng t p và cơ s d li u.

H i ph c lùi là m t k thu t ñơn gi n liên quan ñ n vi c duy trì các chi ti t c a tr ng thái an toàn và c t gi tr ng thái ñó khi mà sai l m ñã b phát hi n. H u h t các h qu n tr cơ s d li u ñ u có b h i ph c l i. CSDL ch c p nh t d li u m t khi giao d ch ñã hoàn t t và không phát hi n ñư c v n ñ gì. N u giao d ch th t b i thì CSDL không ñư c c p nh t. M t k thu t khác là thi t l p các ñi m ki m tra thư ng kỳ mà chúng là các b n sao c a tr ng thái h th ng. Khi mà m t l i ñư c phát hi n thì tr ng thái an toàn ñó ñư c tái lưu kho t ñi m ki m tra g n nh t. Trư ng h p h th ng dính líu t i nhi u quá trình h p tác thì dãy các giao ti p có th là các ñi m ki m tra c a các quá trình ñó không ñ ng b và ñ h i ph c thì m i quá trình ph i tr l i tr ng thái ban ñ u c a nó.

4.4.
4.4.1.

L p trình hư ng hi u qu th c hi n
Tính hi u qu chương trình

Tính hi u qu c a chương trình g c có liên h tr c ti p v i tính hi u qu c a thu t toán ñư c xác ñ nh trong thi t k chi ti t. Tuy nhiên, phong cách l p trình có th có m t tác ñ ng ñ n t c ñ th c hi n và yêu c u b nh . T p h p các hư ng d n sau ñây bao gi cũng có th áp d ng ñư c khi thi t k chi ti t ñư c d ch thành chương trình: ðơn gi n hóa các bi u th c s h c và lôgic trư c khi ñi vào l p trình. Tính c n th n t ng chu kỳ l ng nhau ñ xác ñ nh li u các câu l nh hay bi u th c có th ñư c chuy n ra ngoài hay không

63

-

Khi có th , hãy tránh dùng m ng nhi u chi u Khi có th hãy tránh vi c dùng con tr và danh sách ph c t p Dùng các phép toán s h c “nhanh” Không tr n l n các ki u d li u, cho dù ngôn ng có cho phép ñi u ñó Dùng các bi u th c s h c và logic b t kì khi nào có th ñư c

Nhi u trình biên d ch có tính năng t i ưu t ñ ng sinh ra chương trình hi u qu b ng cách d n nén các bi u th c l p, th c hi n tính chu trình, dùng s h c nhanh và áp d ng các thu t toán có hi u qu liên quan khác. V i nh ng ng d ng trong ñó tính hi u qu có ý nghĩa quan tr ng, nh ng trình biên d ch như th là công c l p trình không th thi u ñư c.

4.4.2.

Hi u qu b nh

Tính hi u qu b nh ph i ñư c tính vào ñ c trưng phân trang c a h ñi u hành. Nói chung, tính c c b c a chương trình hay vi c b o trì lĩnh v c ch c năng qua các k t c u có c u trúc là m t phương pháp tuy t v i làm gi m vi c phân trang và do ñó làm tăng tính hi u qu . H n ch b nh trong phát tri n ph n m m nhúng là m i quan tâm r t th c t , m c d u b nh giá th p, m t ñ cao v n ñang ti n hóa nhanh chóng. N u yêu c u h th ng c n t i b nh t i thi u (như s n ph m giá th p, kh i lư ng l n) thì trình biên d ch ngôn ng c p cao ph i ñư c trù tính c n th n v i tính năng nén b nh , hay như m t phương k cu i cùng, có th ph i dùng t i h p ng .

4.4.3.

Hi u qu nh p/xu t

Các thi t b vào ra thư ng có t c ñ ch m hơn r t nhi u so v i kh năng tính toán c a máy tính và t c ñ truy c p b nh trong. Vi c t i ưu vào ra có th làm tăng ñáng k t c ñ th c hi n. M t s hư ng d n ñơn gi n ñ tăng cư ng hi u qu vào/ra: S các yêu c u vào/ra nên gi m c t i thi u M i vi c vào/ra nên qua b ñ m ñ làm gi m phí t n liên l c. V i b nh ph (như ñĩa) nên l a ch n và dùng phương pháp thâm nh p ñơn gi n nh t ch p nh n ñư c. Nên x p kh i vào/ra v i các thi t b b nh ph . Vi c vào/ra v i thi t b cu i hay máy in nên nh n di n các tính năng c a thi t b có th c i ti n ch t lư ng hay t c ñ .

64

4.5.

T ng k t

Bư c l p trình là m t ti n trình d ch (chuy n hóa) thi t k chi ti t thành chương trình mà cu i cùng ñư c bi n ñ i thành các l nh mã máy th c hi n ñư c. Các ñ c trưng c a ngôn ng l p trình có nh hư ng l n ñ n quá trình xây d ng, ki m th cũng như b o trì ph n m m. Phong cách l p trình quy t ñ nh tính d hi u c a chương trình g c. Các y u t c a phong cách bao g m vi c làm tài li u bên trong, phương pháp khai báo d li u, th t c xây d ng câu l nh, và k thu t l p trình vào/ra. L p trình c n hư ng t i hi u qu th c hi n, t c là tích ki m tài nguyên ph n c ng (m c ñ s d ng CPU, b nh ...). M c d u tính hi u qu có th là yêu c u c c kì quan tr ng, chúng ta nên nh r ng m t chương trình ho t ñ ng hi u qu mà l i không d hi u d n ñ n khó b o trì thì giá tr c a nó cũng b h n ch .

65

CHƯƠNG 5. XÁC MINH VÀ TH M ð NH
5.1. Gi i thi u
Xác minh và th m ñ nh là s ki m tra vi c phát tri n ph n m m. Là công vi c xuyên su t quá trình phát tri n ph n m m, ch không ch khâu ki m th khi ñã có mã ngu n. Xác minh (verification) là s ki m tra xem s n ph m có ñúng v i ñ c t không, chú tr ng vào vi c phát hi n l i l p trình. Th m ñ nh (validation) là s ki m tra xem s n ph m có ñáp ng ñư c nhu c u ngư i dùng không, có ho t ñ ng hi u qu không, t c là chú tr ng vào vi c phát hi n l i phân tích, l i thi t k . Tóm l i, m c ñích c a th m ñ nh và xác minh là Phát hi n và s a l i ph n m m ðánh giá tính dùng ñư c c a ph n m m

Có hai khái ni m là th m ñ nh/xác minh tĩnh và th m ñ nh/xác minh ñ ng. Th m ñ nh và xác minh tĩnh là s ki m tra mà không th c hi n chương trình, ví d như xét duy t thi t k , xét duy t yêu c u, nghiên c u mã ngu n, s d ng các bi n ñ i hình th c (suy lu n) ñ ki m tra tính ñúng ñ n c a chương trình. Th m ñ nh và xác minh tĩnh ñư c ti n hành m i khâu trong vòng ñ i ph n m m. V lý thuy t, có th phát hi n ñư c h u h t các l i l p trình, tuy nhiên phương pháp này không th ñánh giá ñư c tính hi u qu c a chương trình. Th m ñ nh và xác minh ñ ng là s ki m tra thông qua vi c th c hi n chương trình, ñư c ti n hành sau khi ñã phát tri n chương trình (mã ngu n). Hi n v n là k thu t ki m tra chính. C hai hư ng nêu trên ñ u r t quan tr ng và chúng b khuy t l n nhau. Trong chương này, chúng ta ñi sâu vào tìm hi u v th m ñ nh và xác minh ñ ng, g i là s th nghi m (ki m th ) chương trình. Có hai lo i th nghi m (ñ ng) là: Th nghi m (tìm) khuy t t t: ñư c thi t k ñ phát hi n khuy t t t c a h th ng (ñ c bi t là l i l p trình). Th nghi m th ng kê: s d ng các d li u (thao tác) ph bi n c a ngư i dùng (d a trên s th ng kê) ñ ñánh giá tính dùng ñư c c a h th ng. Th nghi m c n ph i có Tính l p l i: th nghi m ph i l p l i ñư c ñ phát hi n thêm l i và ki m tra xem l i ñã ñư c s a hay chưa. B t c khi nào s a mã chương trình chúng ta ph i th nghi m l i (k c ñ i v i các th nghi m ñã thành công).

66

-

Tính h th ng: vi c th nghi m ph i ti n hành m t cách có h th ng ñ ñ m b o ki m th ñư c m i trư ng h p, n u ti n hành th nghi m m t cách ng u nhiên thì không ñ m b o ñư c ñi u này. ðư c l p tài li u: ñ ki m soát xem cái nào ñã ñư c th c hi n, k t qu như th nào...

-

5.2.

Khái ni m v phép th

M t phép th ñư c g i là thành công n u nó phát hi n ra khi m khuy t c a ph n m m. Chú ý là phép th ch ch ng minh ñư c s t n t i c a l i trong h th ng ch không ch ng minh ñư c h th ng không có l i. M t phép th (ca th nghi m) bao g m Tên c a mô ñun th nghi m D li u vào D li u ra mong mu n (ñúng) D li u ra th c t (khi ñã ti n hành th nghi m)

Các ca th nghi m nên ñư c thi t k khi chúng ta t o các tài li u phân tích và thi t k , ch không ph i là khi ñã vi t xong mã ngu n.

5.2.1.

Th nghi m ch c năng và th nghi m c u trúc

Có hai k thu t th nghi m tìm khuy t t t chính là th nghi m ch c năng và th nghi m c u trúc.

5.2.2.

Th nghi m ch c năng

Th ngi m ch c năng (functional testing) còn g i là th nghi m h p ñen (black box testing) là s th nghi m s d ng các ca th nghi m ñư c thi t k d a trên ñ c t yêu c u, tài li u ngư i dùng nh m m c ñích phát hi n ra các khi m khuy t. Th nghi m ch c năng nhìn nh n mô ñun ñư c th nghi m như là m t h p ñen, và ch quan tâm ñ n ch c năng (hành vi) c a mô ñun, t c là ki m tra xem có ho t ñ ng ñúng v i ñ c t hay không. Các ca ki m th bao g m các trư ng h p bình thư ng và không bình thư ng (d li u không h p l ...) c a mô ñun. Thông thư ng, không th th nghi m v i m i d li u, chi n lư c chung khi thi t k d li u th nghi m là phân ho ch (d li u) tương ñương. Phân ho ch tương ñương chia mi n d li u vào ra thành các vùng, mà m i vùng ch a các d li u có cùng hành vi. Do ñó, ñ i v i m i vùng d li u ch c n xây d ng m t ca th nghi m. Thêm vào ñó là các ca s d ng ñ i v i biên gi i c a các vùng. Theo kinh nghi m, các sai sót v l p trình thư ng s y ra ñ i v i các d li u biên. Ví d , ñ i v i hàm tính tr tuy t ñ i c a s nguyên, có th chia mi n ñ i s thành 2 vùng: Vùng d li u = 0

67

-

Vùng d li u < 0 Do ñó các d li u ñ u vào ñ ki m th có th là 100, ư20, và 0.

Ngoài các ca th nghi m trên, thông thư ng còn c n ki m tra v i các d li u ñ c thù như: Biên c a s trong máy tính (ví d ư32768, 32767) 0, s âm, s th p phân Không có input Input ng u nhiên Input sai ki u... Th nghi m ch c năng có th giúp chúng ta Phát hi n s thi u sót ch c năng Phát hi n khi m khuy t Sai sót v giao di n gi a các mô ñun S không hi u qu c a chương trình L i kh i t o, l i k t thúc

Tuy nhiên th nghi m ch c năng ch d a trên ñ c t nên không th ki m th ñư c các trư ng h p không ñư c khai báo trong ñ c t , không ñ m b o th h t ñư c các kh i mã ngu n c a mô ñun. Th nghi m ch c năng cũng không phát hi n ñư c các ño n mã y u (có kh năng sinh l i v i m t tr ng thái ñ c bi t nào ñó c a h th ng), và trong nhi u trư ng h p vi c ñ m b o xây d ng ñ y ñ các ca th nghi m là khó khăn. Ví d , hàm tính tr tuy t ñ i sau có th thoát ñư c th nghi m ch c năng tuy có l i. int abs(int n) { if (n>0) return n; else (n<0) return ưn; }

5.2.3.

Th nghi m c u trúc

Th nghi m c u trúc (structural testing) là s th nghi m d a trên phân tích chương trình. K thu t chính ñây là xác ñ nh ñư ng ñi (path) c a chương trình (ñi u khi n) t input ñ n output. M c ñích c a th nghi m c u trúc là ki m tra t t c các ñư ng ñi có th . T c là ñ m b o m i l nh ñ u ñư c th c hi n ít nh t m t l n trong m t ca th nghi m

68

nào ñó. Th nghi m c u trúc chú tr ng vào phân tích các c u trúc r nhánh và các vòng l p. Ví d : int max(int x, int y, int z) { if (x>y) { if (x>z) return x; else return z; } else { if (y > z) return y; else return z; } } Trong ví d trên có 4 ñư ng ñi có th do ñó c n ít nh t 4 ca th nghi m ñ th nghi m t t c các ñư ng ñi này. Th nghi m c u trúc xem xét chương trình m c ñ chi ti t và phù h p khi ki m tra các mô ñun nh . Tuy nhiên th nghi m c u trúc có th không ñ y ñ vì ki m th h t các l nh không ch ng t là chúng ta ñã ki m th h t các trư ng h p có th . Có kh năng t n t i các t h p l nh khác nhau gây l i. Ngoài ra, chúng ta không th ki m th h t các ñư ng ñi ñ i v i các vòng l p l n. Tóm l i, th nghi m ch c năng và th nghi m c u trúc ñ u r t quan tr ng và chúng b khuy t l n nhau.

5.3.
-

Quá trình th nghi m

Quá trình th nghi m có th chia làm các giai ño n như sau: Th nghi m ñơn v : là bư c th nghi m ñ i v i t ng ch c năng (hàm) nh m m c ñích chính là phát hi n l i l p trình, thư ng s d ng nhi u th nghi m c u trúc. Th nghi m mô ñun: th nghi m mô ñun (liên k t m t s hàm) Th nghi m h con: n u h th ng bao g m m t s h con ñ c l p thì ñây là bư c ti n hành th nghi m v i t ng h con riêng bi t Th nghi m h th ng (tích h p): th nghi m s ho t ñ ng t ng th h th ng, ki m tra tính ñúng ñ n c a giao di n, tính ñúng ñ n v i ñ c t , và tính dùng ñư c. Ch y u s d ng th nghi m ch c năng. Th nghi m nghi m thu (alpha): th nghi m ñư c ti n hành b i m t nhóm nh ngư i s d ng dư i s hư ng d n c a ngư i phát tri n, s d ng các d li u th c, th m ñ nh tính dùng ñư c c a h th ng.

-

69

-

Th nghi m beta: là m r ng c a th nghi m alpha, ñư c ti n hành v i m t s l n ngư i s d ng không có s hư ng d n c a ngư i phát tri n, ki m tra tính n ñ nh, ñi m t t và không t t c a h th ng.

Các bư c th nghi m ban ñ u n ng v ki m tra l i l p trình (xác minh), các bư c th nghi m cu i thiên v ki m tra tính dùng ñư c c a h th ng (th m ñ nh). Ngoài ra còn m t bư c hay m t khái ni m th nghi m khác ñư c g i là th nghi m quay lui. Th nghi m quay lui ñư c ti n hành m i khi chúng ta s a mã chương trình: Khi s a l i Khi nâng c p chương trình

5.3.1.

Th nghi m gây áp l c

ð i v i m t s h th ng quan tr ng, ngư i ta còn ti n hành th nghi m gây áp l c (stress testing). ðây là lo i (bư c) th nghi m ñư c ti n hành khi ñã có phiên b n làm vi c, nh m tìm hi u ho t ñ ng c a h th ng trong các trư ng h p t i tr ng l n (d li u l n, s ngư i s d ng l n, tài nguyên h n ch ...). M c ñích c a th nghi m áp l c là Tìm hi u gi i h n ch u t i c a h th ng Tìm hi u v ñ c trưng c a h th ng khi ñ t và vư t gi i h n ch u t i (khi b s p ñ )

Ngoài ra th nghi m áp l c còn nh m xác ñ nh các tr ng thái ñ c bi t như t h p m t s ñi u ki n d n ñ n s s p ñ c a h th ng; tính an toàn c a d li u, c a d ch v khi h th ng s p ñ .

5.4.

Chi n lư c th nghi m

Khi th nghi m h con và th nghi m h th ng (tích h p), có các chi n lư c th nghi m chính là th nghi m dư i lên (bottomưup testing) và th nghi m trên xu ng (topdown testing).

5.4.1.

Th nghi m dư i lên

Th nghi m dư i lên ti n hành th nghi m v i các mô ñun m c ñ th p trư c. Mô ñun thư ng c p (mô ñun g i) ñư c thay th b ng chương trình ki m th có nhi n v ñ c d li u ki m th , g i mô ñun c n ki m th và ki m tra k t qu . Như c ñi m c a th nghi m dư i lên là Phát hi n ch m các l i thi t k Ch m có phiên b n th c hi n ñư c c a h th ng

70

5.4.2.

Th ngi m trên xu ng

Th nghi m trên xu ng ti n hành th nghi m v i các mô ñun m c cao trư c, các mô ñun m c th p ñư c t m th i phát tri n v i các ch c năng h n ch , có giao di n gi ng như trong ñ c t . Mô ñun m c th p có th ch ñơn gi n là tr l i k t qu v i m t vài ñ u vào ñ nh trư c. Th nghi m trên xu ng có ưu ñi m là Phát hi n s m các l i thi t k , do ñó có th thi t k , cài ñ t l i v i giá r Có phiên b n ho t ñ ng s m (v i tính năng h n ch ) do ñó có th s m ti n hành th m ñ nh

Như c ñi m c a ki m th trên xu ng là các ch c năng c a mô ñun c p th p nhi u khi r t ph c t p do ñó khó có th mô ph ng ñư c, d n ñ n không ki m th ñ y ñ ch c năng ho c ph i ñình ch ki m th cho ñ n khi các mô ñun c p th p xây d ng xong.

5.5.

B o trì ph n m m

B o trì ph n m m (ti ng Anh software maintenance) bao g m ñi u ch nh các l i mà chưa ñư c phát hi n trong các giai ño n trư c c a chu kỳ s ng c a m t ph n m m, nâng c p tính năng s d ng và an toàn v n hành c a ph n m m. B o trì ph n m m có th chi m ñ n 65%-75% công s c trong chu kỳ s ng c a m t ph n m m ([1]). Quá trình phát tri n ph m m m bao g m r t nhi u giai ño n: thu th p yêu c u, phân tích, thi t k , xây d ng, ki m tra, tri n khai và b o trì ph n m m. Nhi m v c a giai ño n b o trì ph n m m là gi cho ph n m m ñư c c p nh t khi môi trư ng thay ñ i và yêu c u ngư i s d ng thay ñ i. Theo IEEE (1993), thì b o trì ph n m m ñư c ñ nh nghĩa là vi c s a ñ i m t ph n m m sau khi ñã bàn giao ñ ch nh l i các l i phát sinh, c i thi n hi u năng c a ph n m m ho c các thu c tính khác, ho c làm cho ph n m m thích ng trong m t môi trư ng ñã b thay ñ i. B o trì ph n m m ñư c chia thành 4 lo i: S a l i cho ñúng (corrective): là vi c s a các l i ho c h ng hóc phát sinh. Các l i này có th do l i thi t k , l i logic ho c l i coding s n ph m. Ngoài ra, các l i cũng có th do quá trình x lý d li u, ho c ho t ñ ng c a h th ng. Thích ng (adaptative): là vi c ch nh s a ph n m m cho phù h p v i môi trư ng ñã thay ñ i c a s n ph m. Môi trư ng ñây có nghĩa là t t các các y u t bên ngoài s n ph m như quy t c kinh doanh, lu t pháp, phương th c làm vi c,... Hoàn thi n: ch nh s a ñ ñáp ng các yêu c u m i ho c thay ñ i c a ngư i s d ng. Lo i này t p trung vào nâng cao ch c năng c a h th ng, ho c các ho t ñ ng tăng cư ng hi u năng c a h th ng, ho c ñơn gi n là c i thi n giao di n. Nguyên nhân là

-

-

71

v i m t ph n m m thành công, ngư i s d ng s b t ñ u khám phá nh ng yêu c u m i, ngoài yêu c u mà h ñã ñ ra ban ñ u, do ñó, c n c i ti n các ch c năng. B o v (preventive): m c ñích là làm h th ng d dàng b o trì hơn trong nh ng l n ti p theo.

72

CHƯƠNG 6. QU N LÝ D
6.1. Khái ni m d án

ÁN PHÁT TRI N PH N M M

D án là t p h p các công vi c ñư c th c hi n b i m t t p th (có th có chuyên môn khác nhau, th c hi n công vi c khác nhau, th i gian tham gia d án khác nhau), nh m ñ t ñư c m t k t qu như d ki n, trong th i gian d ki n, v i m t kinh phí d ki n. Trong thu t nh c a chuyên ngành Kĩ ngh ph n m m, Qu n lý d án ph n m m là các ho t ñ ng trong l p k ho ch, giám sát và ñi u khi n tài nguyên d án (ví d như kinh phí, con ngư i), th i gian th c hi n, các r i ro trong d án và c quy trình th c hi n d án; nh m ñ m b o thành công cho d án. Qu n lý d án ph n m m c n ñ m b o cân b ng gi a ba y u t : th i gian, tài nguyên và ch t lư ng. Ba y u t này ñư c g i là tam giác d án:

6.2.
-

Các v n ñ thư ng x y ra ñ i v i m t d án ph n m m

Th i gian th c hi n d án vư t m c d ki n Chi phí th c hi n d án vư t m c d ki n K t qu c a d án không như d ki n

6.3.

ð i cương v qu n lý d án

Qu n lý d án là t ng ñ u tiên trong phát tri n ph n m m. Chúng ta g i là t ng qu n lý vì nó là bư c k thu t cơ s kéo dài su t vòng ñ i ph n m m. Trách nhi m c a ngư i qu n lý d án Qu n lý th i gian: L p l ch, ki m tra ñ i chi u quá trình th c hi n d án v i l ch trình, ñi u ch nh l ch trình khi c n thi t Qu n lý tài nguyên: xác ñ nh, phân b và ñi u ph i tài nguyên Qu n lý s n ph m: thêm, b t các ch c năng phù h p v i yêu c u c a khách hàng Qu n lý r i ro: xác ñ nh, phân tích r i ro và ñ xu t gi i pháp kh c ph c T ch c cách làm vi c M c tiêu c a vi c qu n lý d án phát tri n ph n m m là ñ m b o cho d án ðúng th i h n Không vư t d toán ð y ñ các ch c năng ñã ñ nh Th a mãn yêu c u c a khách hàng (t o ra s n ph m t t)

73

Qu n lý d án bao g m các pha công vi c sau sau Th i gian o T o l p k ho ch, ñi u ch nh k ho ch o Ki m tra/ñ i chi u các ti n trình con v i k ho ch o Gi m t ñ m m d o nh t ñ nh trong k ho ch o Ph i thu c các ti n trình con Tài nguyên: thêm ti n, thêm thi t b , thêm ngư i... S n ph m: thêm b t ch c năng c a s n ph m... R i ro: phân tích và tìm phương pháp x lý, ch p nh n m t s r i ro Thi t l p: vi t ñ án Ư c lư ng chi phí Phân tích r i ro L p k ho ch Ch n ngư i Theo dõi và ki m soát d án Vi t báo cáo và trình di n s n ph m Ti n hành qu n lý d án là ngư i qu n lý d án, có các nhi m v và quy n h n như

Ngoài ra, ngư i qu n lý d án còn c n ph i quan tâm ñ n s ph i thu c v i các d án khác và thông tin cho ngư i qu n lý c p trên... Phương pháp ti p c n c a ngư i qu n lý d án Hi u rõ m c tiêu (tìm cách ñ nh lư ng các m c tiêu b t c khi nào có th ) Hi u rõ các ràng bu c (chi phí, l ch bi u, tính năng...) L p k ho ch ñ ñ t dư c m c tiêu trong các ràng bu c Giám sát và ñi u ch nh k ho ch T o môi trư ng làm vi c n ñ nh, năng ñ ng cho nhóm

Qu n lý t i s d n ñ n s ch m tr c a d án, tính năng y u kém và tăng chi phí phát tri n. M t ví d kinh ñi n v qu n lý t i là d án h ñi u hành OS360 c a IBM b ch m 2 năm so v i k ho ch.

74

6.4.

Các ho t ñ ng c a qu n lý d án

Các ho t ñ ng chính trong qu n lý d án ph n m m

6.4.1.
-

Xác ñ nh d án ph n m m c n th c hi n

Xác ñ nh yêu c u chung: Trư c tiên c n xác ñ nh các yêu c u ch c năng (công vi c ph n m m th c hi n) cũng như phi ch c năng (công ngh dùng ñ phát tri n ph n m m, s d ng trong h ñi u hành nào...) c a ph n m m. Sau ñó c n xác ñ nh rõ tài nguyên c n thi t ñ xây d ng ph n m m. Tài nguyên ñây có th g m có nhân t con ngư i, các thành ph n, ph n m m có th s d ng l i, các ph n c ng ho c công c có s n c n dùng ñ n; trong ñó nhân t con ngư i là quan tr ng nh t. ði u cu i cùng là xác ñ nh th i gian c n thi t ñ th c hi n d án. Trong quá trình này c n ph i n m b t ñư c bài toán th c t c n gi i quy t cũng như các ho t ñ ng mang tính nghi p v c a khách hàng ñ có th xác ñ nh rõ ràng yêu c u chung c a ñ án, xem xét d án có kh thi hay không. Vi t ñ án: Vi t ñ án là quá trình xây d ng tài li u mô t ñ án ñ xác ñ nh ph m vi c a d án, trách nhi m c a nh ng ngư i tham gia d án; là cam k t gi a ngư i qu n lý d án, ngư i tài tr d án và khách hàng. N i dung c a tài li u mô t ñ án thư ng có nh ng n i dung sau: o B i c nh th c hi n d án: Căn c pháp lý ñ th c hi n d án, hi n tr ng công ngh thông tin c a khách hàng trư c khi có d án, nhu c u ng d ng ph n m m c a khách hàng, ñ c ñi m và ph m vi c a ph n m m s xây d ng. o M c ñích và m c tiêu c a d án: Xác ñ nh m c ñích t ng th : Tin h c hóa ho t ñ ng nào trong quy trình nghi p v c a khách hàng? Xác ñ nh m c tiêu c a ph n m m: lư ng d li u x lý, l i ích ph n m m ñem l i. o Ph m vi d án: Nh ng ngư i liên quan t i d án, các ho t ñ ng nghi p v c n tin h c hóa. o Ngu n nhân l c tham gia d án: Cán b nghi p v , ngư i phân tích, ngư i thi t k , ngư i l p trình, ngư i ki m th , ngư i cài ñ t tri n khai d án cho khách hàng, ngư i hư ng d n khách hàng s d ng ph n m m, ngư i b o trì d án ph n m m. o Ràng bu c th i gian th c hi n d án: Ngày nghi m thu d án, ngày bàn giao d án. o Ràng bu c kinh phí: Kinh phí trong t ng giai ño n th c hi n d án.

75

o Ràng bu c công ngh phát tri n: Công ngh nào ñư c phép s d ng ñ th c hi n d án. o Ch kí các bên liên quan t i d án.

6.4.2.

L p k ho ch th c hi n d án

L p k ho ch th c hi n d án là ho t ñ ng di n ra trong su t quá trình t khi b t ñ u th c hi n d án ñ n khi bàn giao s n ph m v i nhi u lo i k ho ch khác nhau nh m h tr k ho ch chính c a d án ph n m m v l ch trình và ngân sách. Các lo i k ho ch th c hi n d án K ho ch ñ m b o ch t lư ng: Mô t các chu n, các qui trình ñư c s d ng trong d án. K ho ch th m ñ nh: Mô t các phương pháp, ngu n l c, l ch trình th m ñ nh h th ng. K ho ch qu n lý c u hình: Mô t các th t c, c u trúc qu n lý c u hình ñư c s d ng. K ho ch b o trì: D tính các yêu c u v h th ng, chi phí, n l c c n thi t cho b o trì. K ho ch phát tri n ñ i ngũ: Mô t kĩ năng và kinh nghi m c a các thành viên trong nhóm d án s phát tri n như th nào. Quy trình l p k ho ch th c hi n d án Thi t l p các ràng bu c c a d án: th i gian, nhân l c, ngân sách ðánh giá bư c ñ u v các "tham s " c a d án: quy mô, ñ ph c t p, ngu n l c Xác ñ nh các m c th i gian trong th c hi n d án và s n ph m thu ñư c ng v i m i m c th i gian Trong khi d án chưa hoàn thành ho c chưa b h y b thì th c hi n l p ñi l p l i các công vi c sau: o L p l ch th c hi n d án o Th c hi n các ho t ñ ng theo l ch trình o Theo dõi s ti n tri n c a d án, so sánh v i l ch trình o ðánh giá l i các tham s c a d án o L p l i l ch th c hi n d án cho các tham s m i o Th a thu n l i các ràng bu c và s n ph m bàn giao c a m i m c th i gian

76

o N u có v n ñ n y sinh thì xem xét l i các kĩ thu t kh i ñ u ñưa ra các bi n pháp c n thi t C u trúc k ho ch th c hi n d án: T ch c d án Phân tích các r i ro Yêu c u v tài nguyên ph n c ng, ph n m m Phân công công vi c L p l ch d án Cơ ch ki m soát và báo cáo

6.4.3. 6.4.4. 6.4.5.

T ch c th c hi n d án Qu n lý quá trình th c hi n d án K t thúc d án

6.5.

ð ño ph n m m

ð qu n lý chúng ta c n ñ nh lư ng ñư c ñ i tư ng qu n lý c n qu n lý, ñây là ph n m m và qui trình phát tri n. Chúng ta c n ño kích c ph n m m, ch t lư ng ph n m m, năng su t ph n m m...

6.5.1.

ðo kích c ph n m m

Có hai phương pháp ph bi n ñ ño kích c ph n m m là ño s dòng l nh (LOC Lines Of Code) và ño ñi m ch c năng (FP - Function Points). ð ño LOC tương ñ i tr c quan, tuy nhiên ph thu c r t nhi u vào ngôn ng l p trình c th . T kích c c a ph n m m (LOC), chúng ta có th tính m t s giá tr như Hi u năng = KLOC/ngư iưtháng Ch t lư ng = s khi m khuy t/KLOC Chi phí = giá thành/KLOC

Các thông s c a các d án ñã phát tri n trong quá kh s ñư c dùng d ph c v cho ư c lư ng cho các ph n m m s phát tri n. ði m ch c năng FP ñư c tính d a trên ñ c t yêu c u và ñ c l p v i ngôn ng phát tri n. Tuy nhiên nó l i có s ph thu c vào các tham s ñư c thi t l p d a trên kinh nghi m. Mô hình cơ s c a tính ñi m ch c năng là FP = a1I+ a2O + a3 E + a4 L + a5F,

77

Trong ñó I : s Input O: s Output E: s yêu c u L: s t p truy c p F: s giao di n ngo i lai (devices, systems)

6.5.2.
-

ð ño d a trên th ng kê

Ngư i ta còn thi t l p m t s ñ ño ph n m m d a trên th ng kê như sau: ð tin c y MTBF - Mean Time Between Failure: th i gian ch y liên t c c a h th ng Th i gian khôi ph c h th ng MTTR - Mean Time To Repair Tính s n có M TBF/(M TBF + M TTR)

6.6.
6.6.1.

Các tác v c n thi t
Ư c lư ng

Công vi c ñ u tiên c a ngư i qu n lý d án là ư c lư ng - ư c lư ng v kích c , chi phí, th i gian ti n hành d án. Vi c này thông thư ng ñư c ti n hành b ng cách phân rã ph n m m c n phát tri n thành các kh i nh và áp d ng các kinh nghi m (các thông s như kích c , chi phí, năng l c nhân viên...) ñ i v i các ph n m m ñã phát tri n ñ ư c lư ng, ñánh giá công vi c. M t mô hình ư c lư ng hay ñư c dùng là mô hình COCOMO - Constructive Cost Model ư c lư ng chi phí t s dòng l nh. Dùng mô hình này ta s có th ư c lư ng các thông s sau: N l c phát tri n E = aLb Th i gian phát tri n T = cEd S ngư i tham gia N = E/T

Trong ñó a,b,c,d là các tham s tùy thu c vào t ng lo i d án (xem b ng 6.1). ði m ñáng chú ý ñây là t n l c phát tri n chúng ta suy ra th i gian và s ngư i tham gia vào d án.
Hình 6.1. COCOMO - Các tham s cơ s

organic Semi-detached embeded

a 3.2 3.0 2.8

b 1.05 1.12 1.2

c 2.5 2.5 2.5

d 0.38 0.35 0.32

78

Các bư c ti n hành c a COCOMO như sau: Thi t l p ki u d án (organic: ñơn gi n, semiưdetached: trung bình, embeded: ph c t p) Xác l p các mô ñun và ư c lư ng dòng l nh Tính l i s dòng l nh trên cơ s tái s d ng Tính n l c phát tri n E cho t ng mô ñun Tính l i E d a trên ñ khó c a d án (m c ñ tin c y, kích c CSDL, yêu c u v t c ñ , b nh ,...) Tính th i gian và s ngư i tham gia

Ví d : Ph n m m v i 33.3 nghìn dòng l nh và các tham s a,b,c,d l n lư t là 3.0, 1.12, 2.5, 0.35, ta tính ñư c: E = 3.0*33.31.12 = 152ngư iưtháng T = 2.5*E 0.35 = 14.5 tháng N = E/D ˜ 11ngư i C n nh r ng ño ph n m m là công vi c r t khó khăn do H u h t các thông s ñ u không ño ñư c m t cách tr c quan R t khó th m ñ nh ñư c các thông s Không có mô hình t ng quát Các k thu t ño còn ñang thay ñ i

Chúng ta không th ki m soát ñư c quá trình s n xu t ph n m m n u không ư c lư ng (ño) nó. M t mô hình ư c lư ng nghèo nàn v n hơn là không có mô hình nào và ph i liên t c ư c lư ng l i khi d án ti n tri n.

6.6.2.

Qu n lý nhân s

Chi phí (tr công) con ngư i là ph n chính c a chi phí xây d ng ph n m m. Ngoài ra, năng l c c a ngư i phát tri n ph n m m l i r t bi n thiên, kéo theo s ph c t p trong tính toán chi phí. Phát tri n ph n m m ñư c ti n hành theo nhóm. Kích thư c t t c a nhóm là t 3 ñ n 8 ngưòi. Ph n m m l n thư ng ñư c xây d ng b i nhi u nhóm nh . M t nhóm phát tri n có th g m các lo i thành viên sau: Ngư i phát tri n Chuyên gia v mi n ng d ng Ngư i thi t k giao di n

79

-

Th thư ph n m m (qu n lý c u hình ph n m m) Ngư i ki m th

M t nhóm phát tri n c n có ngư i qu n lý, và ngư i có vai trò lãnh ñ o v m t kĩ thu t. M t ñ c trưng c a làm vi c theo nhóm là s trao ñ i thông tin (giao ti p) gi a các thành viên trong nhóm. Th i gian dùng cho vi c giao ti p có th chi m ñ n n a t ng th i gian dành cho pháp tri n ph n m m. Ngoài ra, th i gian không dùng cho phát tri n s n ph m cũng chi m m t ph n l n th i gian còn l i c a ngư i l p trình. M t ngư i có th ñ ng th i làm vi c cho nhi u nhóm (d án) ph n m m khác nhau. ði u này làm cho vi c tính toán giá thành ph n m m ph c t p. C n ghi nh , trong s n xu t ph n m m thì Năng l c c a các thành viên là không ñ ng ñ u Ngư i t t (nh t) có th s n xu t hơn 5 l n trung bình, ngư i kém có th không cho k t qu gì M t s công vi c quá khó ñ i v i m i ngư i

Không nên tăng s thành viên m t cách vô ý th c, vì như th ch làm tăng s ph c t p giao ti p gi a các thành viên, khi n công vi c nhi u khi ch m l i. M t s vi c (ph c t p, ñăc thù) ch nên ñ m t ngư i làm.

6.6.3.

Qu n lý c u hình

Qu n lý c u hình ph n m m (còn g i là qu n lý mã ngu n) là m t công vi c quan tr ng trong s n xu t ph n m m. Mã ngu n (và d li u) là s n ph m chính c a d án ph n m m. Qu n lý c u hình ñư c t ñ ng hóa thông qua các công c . Nhi m v chính c a công c qu n lý là: Lưu tr mã ngu n T o ra m t ñi m truy c p duy nh t (phiên b n th ng nh t) cho ngư i l p trình s a ñ i, thêm b t mã ngu n. Do ñó chúng ta có th d dàng: Ki m soát ñư c tính th ng nh t c a mã ngu n Ki m soát ñư c s s a ñ i, lý do c a s s a ñ i, lý l ch các l n s a ñ i D dàng lưu tr và truy c p t i các phiên b n khác nhau c a ph n m m T i ưu hóa vùng ñĩa c n thi t cho lưu tr Phương th c ho t ñ ng c a các công c này là: Qu n lý t p chung (mã ngu n, tư li u, công c phát tri n...)

80

-

Các t p ñư c t o m t l n duy nh t, các phiên b n s a ñ i ch ghi l i sai phân ñ i v i b ng c S d ng phương pháp check out/check in khi s a ñ i t p

Thông thư ng, ngư i phát tri n khi mu n s a ñ i mã ngu n s th c hi n thao tác check out t p ñó. Khi t p ñã b check out thì các ngư i phát tri n khác ch có th m t p dư i d ng ch ñ c. Khi k t thúc s a ñ i và ghi t p vào CSDL, ngư i s a ñ i ti n hành check in ñ thông báo k t thúc công vi c s a ñ i, ñ ng th i có th ghi l i các thông tin liên quan (lý do s a ñ i...) ñ n s s a ñ i. D li u ñư c lưu tr c a d án thông thư ng bao g m: Mã ngu n D li u Tư li u Công c phát tri n (chương trình d ch...), thư ng c n ñ ñ m b o tương thích v i các phiên b n cũ, và ñ ñ m b o chương trình ñư c t o l i (khi s a l i...) ñúng như cái ñã phân phát cho khách hàng Các ca ki m th

-

M t s các công c qu n lý c u hình ph bi n là RCS, CVS trên HðH Solaris và SourceSafe c a Microsoft.

6.6.4.

Qu n lý r i ro

Qu n lý r i ro là m t công vi c ñ c bi t quan tr ng và khó khăn trong phát tri n ph n m m. Có các nguyên nhân (r i ro) sau d n ñ n ch m d t d án: Chi phí phát tri n quá cao Quá ch m so v i l ch bi u Tính năng quá kém so v i yêu c u Qu n lý r i ro bao g m các công vi c chính sau: D doán r i ro ðánh giá kh năng x y ra và thi t h i Tìm gi i pháp kh c ph c

Dư i ñây là các r i ro thư ng x y ra khi phát tri n ph n m m và các phương pháp kh c ph c chúng:

81

-

Thi u ngư i phát tri n: s d ng nh ng ngư i t t nh t; xây d ng nhóm làm vi c; ñào t o ngư i m i K ho ch, d toán không sát th c t : ư c lư ng b ng các phương pháp khác nhau; l c, lo i b các yêu c u không quan tr ng. Phát tri n sai ch c năng: ch n phương pháp phân tích t t hơn; phân tích tính t ch c/mô hình nghi p v c a khách hàng Phát tri n sai giao di n: phân tích thao tác ngư i dùng; t o k ch b n cách dùng; t o b n m u. Yêu c u quá cao: l c b t yêu c u; phân tích chi phí/l i ích. Thay ñ i yêu c u liên t c: áp d ng thi t k che d u thông tin; phát tri n theo mô hình ti n hóa.

82

CHƯƠNG 7. QUY TRÌNH PHÁT TRI N PH N M M
7.1. Gi i thi u

Cũng như m i ngành s n xu t khác, qui trình là m t trong nh ng y u t c c kỳ quan tr ng ñem l i s thành công cho các nhà s n xu t ph n m m, nó giúp cho m i thành viên trong d án t ngư i cũ ñ n ngư i m i, trong hay ngoài công ty ñ u có th x lý ñ ng b công vi c tương ng v trí c a mình thông qua cách th c chung c a công ty, hay ít nh t c p ñ d án. Có th nói qui trình phát tri n/xây d ng ph n m m (Software Development/Engineering Process - SEP) có tính ch t quy t ñ nh ñ t o ra s n ph m ch t lu ng t t v i chi phí th p và năng su t cao, ñi u này có ý nghĩa quan tr ng ñ i v i các công ty s n xu t hay gia công ph n m m c ng c và phát tri n cùng v i n n công nghi p ph n m m ñ y c nh tranh.

7.2.

Qui trình là gì?

Qui trình có th hi u là phương pháp th c hi n ho c s n xu t ra s n ph m. Tương t như v y, SEP chính là phương pháp phát tri n hay s n xu t ra s n ph m ph n m m. Thông thư ng m t qui trình bao g m nh ng y u t cơ b n sau: Th t c (Procedures) Hư ng d n công vi c (Activity Guidelines) Bi u m u (Forms/templates) Danh sách ki m ñ nh (Checklists) Công c h tr (Tools) V i các nhóm công vi c chính: ð c t yêu c u (Requirements Specification): ch ra nh ng “ñòi h i” cho c các yêu c u ch c năng và phi ch c năng. Phát tri n ph n m m (Development): t o ra ph n m m th a mãn các yêu c u ñư c ch ra trong “ð c t yêu c u”. Ki m th ph n m m (Validation/Testing): ñ b o ñ m ph n m m s n xu t ra ñáp ng nh ng “ñòi h i” ñư c ch ra trong “ð c t yêu c u”. Thay ñ i ph n m m (Evolution): ñáp ng nhu c u thay ñ i c a khách hàng.

83

Tùy theo mô hình phát tri n ph n m m, các nhóm công vi c ñư c tri n khai theo nh ng cách khác nhau. ð s n xu t cùng m t s n ph m ph n m m ngư i ta có th dùng các mô hình khác nhau. Tuy nhiên không ph i t t c các mô hình ñ u thích h p cho m i ng d ng.

7.3.

M t s quy trình m u SEP, ISO, CMM/CMMI

Ph n này s không ñi sâu vào tìm hi u các mô hình phát tri n ph n m m mà ch cung c p m t cái nhìn t ng quát v chúng, cũng như m i quan h gi a SEP v i ISO và CMM/CMMI. V n ñ ñư c ñ t ra là làm th nào c i ti n qui trình ñ c i thi n ch t lư ng và năng su t? Câu tr l i chính là qui trình khung (Process Framework - PF). PF s ch ra nh ng yêu c u mà m t qui trình ph i ñáp ng tùy theo m i m c ñ . PF không ch ra b t kỳ m t qui trình c th nào mà ch ñưa ra nh ng yêu c u m i m c ñ trư ng thành khác nhau c a qui trình ph i ñ t ñư c. ðây chính là nh ng hư ng d n cho các ho t ñ ng c i ti n ñ nâng m c ñ trư ng thành t th p lên cao. Có nhi u PF, nhưng ph bi n nh t là ISO và CMM (Capability Maturity Model) ñư c các t ch c th gi i công nh n. ISO nh m chung ñ n nhi u lo i t ch c c s n xu t l n d ch v , trong khi CMM ñư c dành riêng cho các t ch c phát tri n ph n m m. ð i v i ph n m m, ISO ch ra m c ñ ch t lư ng yêu c u t i thi u mà m t SEP ph i ñ t (ISO certified) và vi c c i ti n qui trình ñư c th c hi n thông qua qui trình ki m ñ nh, trong khi CMM bao g m nh ng th c ti n t t nh t (best practices) ñư c t p h p rút t a t r t nhi u t ch c phát tri n ph n m m khác nhau và chúng ñư c t ch c thành 5 m c ñ trư ng thành khác nhau (Level 1 - Initial, Level 2 - Repeatable, Level 3 - Defined, Level 4 - Managed, Level 5 - Optimizing). Ngày nay, ph n m m không ñ ng riêng m t mình mà thư ng là m t b ph n trong h th ng hoàn ch nh. Do ñó, CMMI (Capability Maturity Model Integration) ra ñ i hư ng ñ n các qui trình cho vi c xây d ng c h th ng, bao g m c vi c tích h p ñ xây d ng và b o trì toàn b h th ng.

7.3.1.

Các mô hình SEP

Mô hình SEP còn ñư c g i là chu trình hay vòng ñ i ph n m m (SLC - Software Life Cycle). SLC là t p h p các công vi c và quan h gi a chúng v i nhau di n ra trong quá trình phát tri n ph n m m. Có khá nhi u mô hình SLC khác nhau, trong ñó m t s ñư c ng d ng khá ph bi n trên th gi i: Các mô hình m t phiên b n (Single-version models) • • Mô hình Waterfall (Waterfall model) Mô hình ch V (V-model)
84

• • • • • •

Các mô hình nhi u phiên b n (Multi-version models) Mô hình m u (Prototype) Mô hình ti n hóa (Evolutionary) Mô hình l p và tăng d n (Iterative and Incremental) Mô hình phát tri n ng d ng nhanh (RAD) Mô hình xo n (Spiral)

Mô hình Waterfall

Mô hình này bao g m các giai ño n x lý n i ti p nhau như ñư c mô t trong Hình 1.

Phân tích yêu c u và tài li u ñ c t (Requirements and Specifications): là giai ño n xác ñ nh nh ng “ñòi h i” (“What”) liên quan ñ n ch c năng và phi ch c năng mà h th ng ph n m m c n có. Giai ño n này c n s tham gia tích c c c a khách hàng và k t thúc b ng m t tài li u ñư c g i là “B n ñ c t yêu c u ph n m m” hay SRS (software requirement specification), trong ñó bao g m t p h p các yêu c u ñã ñư c duy t (reviewed) và nghi m thu (approved) b i nh ng ngư i có trách nhi m ñ i v i d án (t phía khách hàng). SRS chính là n n t ng cho các ho t ñ ng ti p theo cho ñ n cu i d án.

Phân tích h th ng và thi t k (System Analysis and Design): là giai ño n ñ nh ra “làm th nào” (“How”) ñ h th ng ph n m m ñáp ng nh ng “ñòi h i” (“What”) mà khách hàng yêu c u trong SRS. ðây là chính là c u n i gi a “ñòi h i” (“What”) và mã (Code) ñư c hi n th c ñ ñáp ng yêu c u ñó.

Hi n th c và ki m th t ng thành ph n (Coding and Unit Test): là giai ño n hi n th c “làm th nào” (“How”) ñư c ch ra trong giai ño n “Phân tích h th ng và thi t k ”.

Ki m th (Test): giai ño n này s ti n hành ki m th mã (code) ñã ñư c hi n th c, bao g m ki m th tích h p cho nhóm các thành ph n và ki m th toàn h th ng (system test). M t khâu ki m th cu i cùng thư ng ñư c th c hi n là nghi m thu (acceptance test), v i s tham gia c a khách hàng trong vai trò chính ñ xác ñ nh h th ng ph n m m có ñáp ng yêu c u c a h hay không.

85

Cài ñ t và b o trì (Deployment and Maintenance): ñây là giai ño n cài ñ t, c u hình và hu n luy n khách hàng. Giai ño n này s a ch a nh ng l i c a ph n m m (n u có) và phát tri n nh ng thay ñ i m i ñư c khách hàng yêu c u (như s a ñ i, thêm hay b t ch c năng/ñ c ñi m c a h th ng).

Th c t cho th y ñ n nh ng giai ño n sau m i có kh năng nh n ra sai sót trong nh ng giai ño n trư c và ph i quay l i ñ s a ch a. ðây chính là ki u waterfall d ng l p (Iterative Waterfall) và ñư c minh ho trong Hình 1.

Mô hình ch V

Trong mô hình Waterfall, ki m th ñư c th c hi n trong m t giai ño n riêng bi t. Còn v i mô hình ch V, toàn b qui trình ñư c chia thành hai nhóm giai ño n tương ng nhau: phát tri n và ki m th . M i giai ño n phát tri n s k t h p v i m t giai ño n ki m th tương ng như ñư c minh h a trong Hình 2. Tinh th n ch ñ o c a V-model là các ho t ñ ng ki m th ph i ñư c ti n hành song song (theo kh năng có th ) ngay t ñ u chu trình cùng v i các ho t ñ ng phát tri n. Ví d , các ho t ñ ng cho vi c l p k ho ch ki m th toàn h th ng có th ñư c th c hi n song song v i các ho t ñ ng phân tích và thi t k h th ng.

86

CHƯƠNG 8. CASE STUDY BÀI TOÁN ðĂNG KÝ H C PH N
8.1. Phát bi u bài toán (Vision)
Là trư ng ban IT c a trư ng ð i h c KHTN, b n ñư c yêu c u phát tri n m t h th ng ñăng ký h c ph n m i. H th ng m i cho phép sinh viên ñăng ký h c ph n và xem phi u ñi m t m t máy tính cá nhân ñư c k t n i vào m ng n i b c a trư ng. Các giáo sư cũng có th truy c p h th ng này ñ ñăng ký l p d y và nh p ñi m cho các môn h c. Do kinh phí b gi m nên trư ng không ñ kh năng thay ñ i toàn b h th ng trong cùng m t lúc. Trư ng s gi l i cơ s d li u (CSDL) s n có v danh m c h c ph n mà trong ñó lưu tr toàn b thông tin v h c ph n. ðây là m t CSDL quan h và có th truy c p b ng các câu l nh SQL thông qua các server c a trư ng. Hi u su t c a h th ng cũ này r t kém nên h th ng m i ph i b o ñ m truy c p d li u trên h th ng cũ m t cách h p lý hơn. H th ng m i s ñ c các thông tin h c ph n trên CSDL cũ nhưng s không c p nh t chúng. Phòng ðào t o s ti p t c duy trì các thông tin h c ph n thông qua m t h th ng khác. ñ u m i h c kỳ, sinh viên có th yêu c u danh sách các h c ph n ñư c m trong h c ký ñó. Thông tin v m i h c ph n, ví d như là tên giáo sư, khoa, và các môn h c ph n tiên quy t s ñư c cung c p ñ giúp sinh viên ch n l a. H th ng m i cho phép sinh viên ch n b n h c ph n ñư c m trong h c kỳ t i. Thêm vào ñó m i sinh viên có th ñưa ra hai môn h c thay th trong trư ng h p không th ñăng ký theo nguy n v ng chính. Các h c ph n ñư c m có t i ña là là 100 và t i thi u là 30 sinh viên. Các h c ph n có ít hơn 30 sinh viên s b h y. ð u m i h c kỳ, sinh viên có m t kho ng th i gian ñ thay ñ i các h c ph n ñã ñăng ký. Sinh viên ch có th thêm ho c h y h c ph n ñã ñăng ký trong kho ng th i gian này. Khi quá trình ñăng ký hoàn t t cho m t sinh viên, h th ng ñăng ký s g i thông tin t i h th ng thanh toán (billing system) ñ sinh viên có th ñóng h c phí. N u m t l p b h t ch trong quá trình ñăng ký, sinh viên s ñư c thông báo v s thay ñ i trư c khi xác nh n vi c ñăng ký h c ph n. cu i h c kỳ, sinh viên có th truy c p vào h th ng ñ xem phi u ñi m. B i vì thông tin v ñi m c a m i sinh viên c n ñư c gi kín, nên h th ng c n có cơ ch b o m t ñ ngăn ch n nh ng truy c p không h p l . Các giáo sư có th truy c p vào h th ng ñ ñăng ký nh ng h c ph n mà h s d y. H cũng có th xem danh sách các sinh viên ñã ñăng ký vào l p c a h , và cũng có th nh p ñi m sau m i khóa h c.

87

8.1.1. 8.1.1.1.

B ng chú gi i Gi i thi u

Tài li u này ñư c dùng ñ ñ nh nghĩa các thu t ng ñ c thù trong lĩnh v c c a bài toán, gi i thích các t ng có th không quen thu c ñ i v i ngư i ñ c trong các mô t use case ho c các tài li u khác c a d án. Thư ng thì tài li u này có th ñư c dùng như m t t ñi n d li u không chính th c, ghi l i các ñ nh nghĩa d li u ñ các mô t use case và các tài li u khác có th t p trung vào nh ng gì h th ng ph i th c hi n.

8.1.1.2.

Các ñ nh nghĩa

B ng chú gi i này bao g m các ñ nh nghĩa cho các khái ni m chính trong H th ng ñăng ký h c ph n. Course (H c ph n): M t môn h c ñư c d y trong trư ng. Course Offering (L p): M t l p h c c th ñư c m trong m t h c kỳ c th – cùng m t h c ph n có th ñư c m song song nhi u l p trong m t h c kỳ. Thông tin g m c ngày h c trong tu n và gi h c. Course Catalog (Danh m c h c ph n) : Danh m c ñ y ñ c a t t c các h c ph n ñư c d y trong trư ng. Faculty : Khoa hay toàn b cán b gi ng d y c a trư ng.. Finance System (H th ng thanh toán): H th ng dùng ñ x lý các thông tin thanh toán h c phí. Grade (ði m s ): S ñánh giá cho m t sinh viên c th trong m t l p c th . Professor (Giáo sư): Ngư i gi ng d y trong trư ng. Report Card (Phi u ñi m): Toàn b ñi m s cho t t c h c ph n m t sinh viên ñã h c trong m t h c kỳ xác ñ nh. Roster (Danh sách sinh viên ñăng ký): T t c sinh viên ñăng ký vào m t l p h c c th . Student (Sinh viên): Ngư i ñăng ký vào h c các l p c a trư ng. Schedule (L ch h c): Các h c ph n mà m t sinh viên ñã ch n h c trong h c kỳ hiên t i. Transcript (B n sao h c b ): B n sao t t c ñi m s cho t t c các h c ph n c a m t sinh viên c th ñư c chuy n cho h th ng thanh toán ñ h th ng này l p hóa ñơn cho sinh viên.

-

88

8.2.
8.2.1.
8.2.1.1.

Business Vision
Introduction
Purpose

M c ñích c a tài li u Vision này là ñ xác ñ nh nh ng yêu c u m c cao c a h th ng Sms2003 trong ñ án xây d ng h th ng thông tin tích h p trên Web c a khoa CNTT dư i d ng nh ng ch c năng c n thi t c a end user 8.2.1.2. Scope Vision ñư c áp d ng cho h th ng Sms2003 mà nó s ñư c phát tri n trong trong ñ án xây d ng h th ng thông tin tích h p trên WEB t i Khoa CNTT trư ng ð i h c Khoa H c T Nhiên. Và nó s ñư c phát tri n trên h th ng client – server v i giao di n và k t h p v i cơ s d li u cũ ñã t n t i. H th ng Sms2003 cho phép sinh viên có th ñăng ký và hi u ch nh h c ph n, xem ñi m, xem th i khóa bi u, xem và hi u ch nh thông tin cá nhân,. . . . Cho phép giáo viên có th nh p ñi m m t cách nhanh chóng d dàng. ,…. . 8.2.1.3. 8.2.1.4. 8.2.1.5. Definitions, Acronyms and Abbreviations References Overview Xem Glossary H th ng IS-EDU c a khoa CNTT

8.2.2.
8.2.2.1.

Positioning
Business Opportunity

Do h th ng hi n t i IS-EDU ñư c s d ng v i các cơ s d li u chưa ñư c th ng nh t. Nên D án này s ñư c thay th toàn b h th ng cũ nh m th ng nh t chung m t cơ s d li u cho các sinh viên và giáo viên…ñ ti n vi c qu n lý và s d ng. Cho phép sinh viên, giáo viên có th truy c p t b t kỳ máy tính nào trong trư ng hay trên các máy tính nhà có k t n i internet

89

8.2.2.2.

Problem Statement Cơ s d li u c a các sinh viên ñư c lưu tr và không có s th ng nh t nhi u nơi

The problem of

affects The impact of which is

Sinh viên, Giáo viên, Qu n tr h th ng, Phòng ñào t o Ch m và làm r c r i trong vi c truy xu t, ñăng nh p và ñăng ký h c ph n, không th a mãn yêu c u c a sinh viên và giáo viên

A successful solution would

Sinh viên có th s d ng chung m t account ñư c c p cho các phân h trên h thông Web c a khoa CNTT. C i ti n ñư c h th ng và các ch c năng ñăng ký, qu n tr có hi u qu hơn

8.2.2.3. For Who

Product Position Statement Sinh viên, Giáo viên, Ngư i dùng bên ngoài Ngư i quan tâm, d y và qu n tr các h c ph n Là công c Giúp cho quá trình ñăng ký h c ph n c a sinh viên nhanh chóng, hi u qu . Giúp tra c u thông tin và k t qu h c t p c a sinh viên nhanh chóng, m i lúc, m i nơi H th ng máy tính l i th i M t s quy trình v n còn l i

The (product name) That

Unlike

Our product

Cung c p m t h th ng ñăng ký hi u qu hơn, nhanh chóng hơn, d s d ng hơn cho sinh viên và giáo viên. Các thông tin v khóa h c, giáo viên, ñi m, vi c ñăng ký h c ph n ñư c c p nh t thư ng xuyên. Sinh viên, giáo viên, ngư i bên ngoài h th ng có th truy c p t b t kỳ m t PC nào có k t n i internet

8.2.3.

Stakeholder and User Descriptions

Ph n này Mô t lo i ngư i dùng c a h th ng Sms2003. Có 3 lo i ngư i dùng : Ngư i dùng bên ngoài ( Ch ñư c xem các thông tin như th i khóa bi u, danh sách các

90

môn h c, tìm ki m thông tin sinh viên ), Sinh viên (Ngư i ñã có account trong h th ng và ñư c thêm quy n hi u ch nh thông tin cá nhân, ñăng ký và hi u ch nh h c ph n,…), Giáo viên (Ngư i ñã có account trong h th ng và ñư c them quy n hi u ch nh thông tin cá nhân, nh p ñi m cho sinh viên c a l p mình…), Qu n tr h th ng ( s ñư c thêm quy n thông báo v vi c h y h c ph n …. . ) 8.2.3.1. Market Demographics Ngư i dùng trư ng ñ i h c thì tương ñ i l n và thành th o do ñó ñòi h i tính linh ñ ng và th i gian h i ñáp nhanh. Nh ng ngư i dùng h th ng này thì ña s là sinh viên và giáo viên, có trình ñ hi u bi t v máy tính t t và h u h t h ñ u có máy tính cá nhân nhà. Vì v y kh năng mà xem thông tin, ñăng ký nhà là r t l n nên ñòi h i tính s ng sàng h th ng cao. Hơn n a, h th ng ñăng ký h c ph n ch ho t ñ ng chính th c vào ñ u m i h c kỳ, trong th i gian cho phép nên s sinh viên truy c p cùng lúc r t l n, ñòi h i ph i ñ m b o gi i quy t tình tr ng t t ngh n m ng H th ng Sms2003 ñư c xây d ng và k t n i t i m ng LAN c a trư ng. Sinh viên và giáo viên có th truy c p mi n phí t i LAN thông qua máy tính phòng máy, thư vi n có k t n i LAN 8.2.3.2. Name Stakeholder Summary Represents Role

Ngư i qu n lý Khoa Công ngh thông tin và trư ng Theo dõi ti n trình phát khoa Công ngh ð i h c Khoa h c t nhiên tri n c a d án thông tin. Ngư i qu n tr Ngư i qu n tr d li u ñư c nh p ð m b o h th ng s ñáp ng ñư c nh ng yêu c u c a admin ngư i mà ph i qu n lý d li u ñăng ký h c ph n, bao g m d li u giáo viên và sinh viên. ð m b o h th ng ñáp ng ñư c nhu c u c a sinh viên ð m b o h th ng ñáp

Sinh viên

Nh ng Sinh viên

Giáo viên

Các giáo viên trong khoa

ng ñư c nhu c u c a giáo viên

91

8.2.3.3. Name Ngư i qu n tr

User Summary Description ðưa ra các thông báo v vi c ñăng ký h c ph n, qu n lý cơ s d li u c a h th ng sms2003, m l p cho sinh viên ñăng ký và ñóng l p khi h t th i h n ðăng ký h c ph n, hi u ch nh thông tin cá nhân,. . . Nh p ñi m cho sinh viên, hi u ch nh thông tin cá nhân Stakeholder

Sinh viên

Giáo viên

Ngư i bên ngoài Tìm ki m, xem các thông tin v sinh h th ng viên, l p h c, th i khóa bi u,… ? 8.2.3.4. User environment Ngư i dùng trư ng ñ i h c thì tương ñ i l n và thành th o, hơn n a sms2003 l i là m t trong nh ng phân h quan tr ng nh t, ñòi h i ph i ñáp ng ñư c nhi u truy c p ñ ng th i do ñó nó ñòi h i tính linh ñ ng và th i gian h i ñáp thì nhanh, gi i quy t ñư c tình tr ng ngh n m ng. Nh ng ngư i dùng h th ng này thì có h c và có trình ñ hi u bi t v máy tính t t và h u h t h ñ u có máy tính cá nhân nhà. Vì v y kh năng mà xem thông tin và th o lu n nhà là r t l n nên ñòi h i tính s ng sàng h th ng cao 8.2.3.5. Stakeholder Profiles Qu n lý IT:

Th y cô khoa Công ngh thông tin trư ng ð i h c Khoa h c T nhiên ( tr c ti p Cô Nhi, anh Vũ ) Ngư i quy t ñ nh xây d ng h th ng Description Ngư i hi u rõ tình tr ng ho t ñ ng c a Khoa Type Responsibilities Miêu t khoa Công ngh thông tin và quan sát tình tr ng d án Success Criteria S thành công là hoàn thành công vi c ñúng th i gian và t ch c t t cơ s thi t k ñ ti n cho vi c k th a sau này Project reviewer Involvement Không có Deliverables Representative

92

Comments / Issues -

Th i gian th c hi n ng n so v i kh i lư ng công vi c quá nhi u

Ngư i qu n tr (Phòng giáo v ):

Representative Description Type

Th y cô phòng giáo v Ngư i dùng Có tính chuyên nghi p, có kĩ năng v máy tính. Ngư i qu n tr ñư c hu n luy n và giàu kinh nghi m v i vi c s d ng và x lý theo hư ng ñ i tư ng Responsibilities Qu n lý cơ s d li u c a sinh viên, giáo viên, m và ñóng l p, nh p và s a ñi m, thay ñ i thông tin sinh viên, ñưa các thông báo c n thi t v th i khóa bi u, ñăng ký h c ph n… Success Criteria Thành công ñ i v i Ngư i qu n tr là làm gi m các thao tác x lý công vi c, d dàng hơn trong vi c qu n lý thông tin. H th ng ph i ñ m b o tính s n sàng, tin c y, an toàn, d h c, th c hi n nhanh Involvement Project reviewer ñ c bi t quan tâm ñ n nh ng yêu c u ch c năng và kh năng s d ng ñư c c a nh ng ñ c ñi m ñư c ngư i qu n tr yêu c u Không có Không có

Deliverables Comments / Issues Giáo viên:

Representative Description Type Responsibilities Success Criteria Involvement Deliverables Comments / Issues Sinh viên:

Các th y cô khoa công ngh thông tin Ngư i dùng Ngư i có trình ñ vi tính, giàu kinh nghi m trong vi c s d ng Nh p ñi m cho sinh viên, xem các thông tin cá nhân H th ng ñ m b o luôn s n sàng cho giáo viên nh p ñi m, xem thông tin… Project reviewer ñ c bi t quan tâm ñ n nh ng yêu c u ch c năng và ti n d ng c a nh ng ñ c ñi m ñư c giáo viên yêu c u Không có Không có

Các sinh viên khoa công ngh thông tin Ngư i dùng Có trình ñ vi tính tương ñ i t t ð m b o cho 1000 sinh viên truy c p h th ng cùng lúc ñ ðăng ký h c ph n, xem ñi m và các thông tin cá nhân Success Criteria 20% Sinh viên s dùng h th ng ngay l n ñ u tiên mà không c n hư ng d n trư c. H th ng ñư c s d ng và làm vi c t t Project reviewer ñ c bi t quan tâm ñ n nh ng yêu c u ch c năng và Involvement Representative Description Type Responsibilities

93

Deliverables Comments / Issues 8.2.3.6. 8.2.3.7.

ti n d ng c a nh ng ñ c ñi m ñư c sinh viên yêu c u Không có Không có

User Profiles Key Stakeholder / User Needs

Xem ph n 3. 5 Nh ng miêu t v nh ng sinh viên, giáo viên, cũng như h th ng ñăng ký h c ph n hi n t i ñ xác ñ nh nh ng v n ñ ngư i dùng trên h th ng cũ và nh ng nguy n v ng c n ñư c c i ti n. T ng h p báo cáo ñư c li t kê dư i ñây ñư c s p theo nh ng quan h quan tr ng t cao t i th p Need Sinh viên ñăng ký h c ph n Priority Cao Concerns Sinh viên Current Solution Proposed Solutions Sinh viên mu n ñăng ký h c ph n nhanh hơn, hi u qu hơn, ít x y ra l i hơn trên h th ng m i.

Hi n t i, sinh viên ñăng ñăng ký ký h c ph n trên h th ng h c ph n sms2002 (+ñăng ký b ng ch m và gi y) nhưng v n còn m t không hi u s l i. qu .

TB S m truy c p ñi m sinh viên

Trên h Ph i xin phi u ñi m, ñ i Sinh viên mu n truy th ng cũ, 2-3 ngày m i ñư c nh n c p h th ng ñ nh n phi u ñi m. sinh viên phi u ñi m v n không xem ñư c ñi m.

8.2.3.8.

Alternatives and Competition

Tòan th ngư i dùng không bi t v b t c s l a ch n có th làm ñư c hay cách t gi i quy t. Toàn th ngư i dùng h tr chi n lư c mà h th ng nên ñư c phát tri n bên trong trư ng ð i H c ñ làm gi m t n kém, ñ m b o nh ng ch c năng thích h p, và ñ ñ m b o ti p t c h tr và duy trì trên h th ng.

8.2.4.

Product Overview

Ph n này cung c p cái nhìn t ng quan m c ñ cao v kh năng th c hi n c a h th ng, ghép n i v i bên ngoài h th ng, h th ng cơ s d li u và ñ nh c u hình c a h th ng

94

8.2.4.1.

Product Perspective
Yêu c u: Sinh viên ñăng ký Xem ñi m Ch n h c ph n Nh p ñi m Thông tin sinh viên Thông tin giáo viên

Sinh Viên Giáo Viên Ngư i qu n tr

Yêu c u tính ti n sinh viên

H th ng tính ti n

H th ng ñăng ký h c ph n

Tr l i: ði m Thông tin khóa h c Thông tin giáo viên Thông tin sinh viên

Thông tin khóa h c H th ng danh sách các h c ph n

8.2.4.2.

Summary of Capabilities Supporting Features H th ng truy c p h th ng cơ s d li u danh sách khóa h c ñ hi n th thông tin trên t t c các khóa h c ñư c yêu c u. ð i v i m i khóa h c, sinh viên và giáo viên có th xem mô t khóa h c, ñi u ki n tiên quy t, nh ng giáo viên ñư c phân công, phòng h c, th i gian. T t c các thông tin ñăng ký h c ph n ngay l p t c ñư c lưu vào Cơ S D Li u ðăng Ký ñ c p nh t thông tin và thông báo nh ng l p ñã ñ y ch ho c b h y. Sinh viên có th xem ñi m c a h trong b t kỳ khóa h c nào b ng cách cung c p mã s sinh viên và password. Sinh viên có th truy c p h th ng ñăng ký t b t c PC c a trư ng hay PC nhà có n i internet. Giáo viên nh p ñi m c a t t c các sinh viên

Customer Support System: Customer Benefit Xem thông tin khóa h c

C p nh t thông tin ñăng ký

D dàng và nhanh chóng truy c p xem ñi m môn h c

95

Truy c p t b t c PC c a trư ng

vào cơ s d li u t PC c a h . Sinh viên có th truy c p h th ng ñăng ký t PC c a trư ng hay t PC nhà có n i internet. S cài ñ t c a các thành ph n client c a h th ng ñăng ký h c ph n là ñ d dàng theo dõi ti n trình s d ng internet. Sinh viên có th truy c p h th ng ñăng ký h c ph n t b t kỳ PC c a trư ng hay t PC nhà có n i internet. ð truy c p ñư c ph i nh p ñúng ID và password.

D dàng và thu n ti n khi truy c p t PC nhà An tòan và b o m t

Thông tin cá nhân c a sinh viên ñư c b o v , không cho ngư i khác s a ñ i. Ngay l p t c ph n h i khi l p h c ñã Các thông tin ñăng ký ngay l p t c ñư c lưu h t ch hay b h y b vào cơ s d li u ñ cung c p thông tin c p nh t v nh ng l p h c ñã ñ y ch ho c b h y b . 8.2.4.3. Assumptions and Dependencies Nh ng gi ñ nh và nh ng s ph thu c sau ñây liên quan ñ n kh năng c a h th ng ñư c phác th o trong tài li u vision H th ng cơ s d li u l p h c ñang t n t i s ñư c ti p t c h tr cho ñ n năm 2008. S giao ti p bên ngoài c a h th ng cơ s d li u l p h c s không thay ñ i Gi s r ng trư ng s ti p t c th c hi n và h tr Server ñ n năm 2008 Gi s r ng tài chính thêm vào s có s n trư c 2008 ñ thay th h th ng cũ Cài ñ t h th ng ñăng ký h c ph n ñúng lúc 2003 ph thu c vào ngu n tài chính ñư c c p Cost and Pricing V ràng bu c tài chính, chi phí ñ phát tri n h th ng ph i không vư t quá 20.000$. ði u này lư ng trư c ñư c r ng các máy tính hi n t i c a trư ng s ñư c s d ng như nh ng máy ñích mà không c n yêu c u ngân qu ph n c ng 8.2.4.5. Licensing and Installation ñây không có yêu c u licensing cho Version 1. 0 c a h th ng

8.2.4.4.

8.2.5.
-

Constraints

H th ng s không ñòi h i b t kỳ phát tri n ph n c ng.

96

-

Gi lý thuy t và th c hành không ñư c trùng nhau Thi u r t nhi u ràng bu c dây:

o Sinh viên: trong qui trình ñăng ký, lý thuy t trư c, th sau, ch ñư c ñăng ký l p TH c a l p LT…. o Giáo viên : không cho ñăng ký trùng gi , ràng bu c khi nh p, chinh s a thông tin ñi m….

8.2.6.

Quality Ranges

Xác ñ nh ch t lư ng cho vi c thi hành, nh ng l i ch p nh n ñư c, tính ti n d ng và nh ng ñ c ñi m tương t cho h th ng Sms2003 Tính s n sàng :H th ng s s n sàng dùng trong 24gi / ngày, 7 ngày / tu n. Tính ti n d ng :H th ng s d ñ dùng và thích h p, h th ng giúp ñ tr c tuy n, không c n xem sách hư ng d n. Tình b o trì :H th ng thi t k không sao cho d b o trì. T t c d li u c th nên ñư c ñưa vào b ng và vi c s a ch a không c n s biên d ch l i c a h th ng

8.2.7.
-

Precedence and Priority

ðăng nh p ðăng ký h c ph n K t n i v i cơ s d li u S a ch a thông tin sinh viên S a ch a thông tin giáo viên Xem k t qu h c t p c a sinh viên Ch n l p d y

8.2.8.
8.2.8.1. 8.2.8.2. -

Other Product Requirements
Applicable Standards System Requirements

Màn hình n n trên giao di n ngư i dùng s là Window 9x/2000 H th ng s có nh ng cái chung g n v i h th ng cũ Các thành ph n server c a h th ng s ho t ñ ng và ch y dư i h ñi u hành Window 2000/XP

97

-

Các thành ph n client c a h th ng s ho t ñ ng và ch y dư i b t kỳ m t máy tính 486 Microprocessor hay t t hơn Các thành ph n client c a h th ng s ho t ñ ng và ch y dư i h ñi u hành Window 98/2000/XP hay Window NT Các thành ph n client c a h th ng ñòi h i 64 MB RAM và 60 MB Disk Space

8.2.8.3. -

Performance Requirements

H th ng h tr cho 2000 ngư i dùng có th truy xu t cơ s d li u ñ ng th i và th i gian truy xu t t i cơ s d li u không quá 10 giây H th ng s hoàn t t 80% giao d ch trong 2 phút Environmental Requirements Không có

8.2.8.4.

8.2.9.
8.2.9.1.

Documentation Requirements
User Manual

Ph n này mô t tài li u nh ng yêu c u cu h th ng User Manual s mô t vi c dùng h th ng Sms2003 t quan ñi m c a sinh viên, giáo viên, qu n tr h th ng. User Manual s bao g m : Nh ng yêu c u t i thi u cu h th ng S cài ñ t c a PC client Logging On Logging Off T t c nh ng ñ c ñi m c a h th ng Nh ng thông tin h tr c a khách hàng User Manual kho ng 50-100 trang, có th in thành sách ho c làm file online help. 8.2.9.2. 8.2.9.3. Online Help Installation Guides, Configuration, Read Me File H th ng giúp ñ online s có ñ i v i m i ch c năng c a h th ng Hư ng d n cài ñ t bao g m Nh ng yêu c u t i thi u cu h th ng C u trúc l nh ñ Installation Nh ng tham s rõ ràng cho vi c ñ nh c u hình

98

-

B ng cách nào ñ kh i t o cơ s d li u B ng cách nào ñ gi l i cơ s d li u ñã t n t i Nh ng thông tin h tr c a khách hàng B ng cách nào ñ yêu c u Upgrades

T p tin Read Me s ch a ñ ng ñ y ñ nh ng thông tin ñ Installation và bap g m thêm : Nh ng ñ c ñi m c a phiên b ng m i Nh n bi t l i và các cách gi i quy t khác

8.3.
8.3.1.

Business Glossary
Introduction

Glossary ch a nh ng ñ nh nghĩa v nh ng khóa h c và l p h c trong h th ng ñăng ký h c ph n. Glossary này s ñư c m r ng thông qua toàn chu kỳ d án. M i ñ nh nghĩa không bao g m trong tài li u này có th ñư c bao g m trong Mô hình Rational Rose Model. Nh ng thu t ng chung ñư c s d ng bên ngoài d án này nên ñư c ghi chú trong Glossary. 8.3.1.1. Purpose Tài li u này ñư c dùng ñ ñ nh nghĩa các thu t ng ñ c thù trong lĩnh v c c a bài toán, gi i thích các t ng có th không quen thu c ñ i v i ngư i ñ c trong các mô t use case ho c các tài li u khác c a d án. Thư ng thì tài li u này có th ñư c dùng như m t t ñi n d li u không chính th c, ghi l i các ñ nh nghĩa d li u ñ các mô t use case và các tài li u khác có th t p trung vào nh ng gì h th ng ph i th c hi n

8.3.2.
8.3.2.1. 8.3.2.2. 8.3.2.3. 8.3.2.4.

Definitions
ði u ki n tiên quy t Registrar Course Course Offering (L p)

Là ñi u ki n c n ph i th c hi n trư c khi mu n th c hi n m t vi c nào ñó Là ngư i qu n tr h th ng, qu n lý m i cơ s d li u sinh viên, giáo viên M t môn h c ñư c d y trong trư ng. M t l p h c c th ñư c m trong m t h c kỳ c th – cùng m t h c ph n có th ñư c m song song nhi u l p trong m t h c kỳ. Thông tin g m c ngày h c trong tu n và gi h c, giáo viên...

99

8.3.2.5. 8.3.2.6. 8.3.2.7. 8.3.2.8. 8.3.2.9. 8.3.2.10. 8.3.2.11.

Course Catalog (Danh m c h c ph n) Billing System (H th ng thanh toán) Grade (ði m s ) Professor (Giáo sư) Report Card (Phi u ñi m) Student (Sinh viên) Schedule (L ch h c)

Danh m c ñ y ñ c a t t c các h c ph n ñư c d y trong trư ng. H th ng dùng ñ x lý các thông tin thanh toán h c phí. S ñánh giá cho m t sinh viên c th trong m t l p c th . Ngư i gi ng d y trong trư ng. Toàn b ñi m s cho t t c h c ph n m t sinh viên ñã h c trong m t h c kỳ xác ñ nh. Ngư i ñăng ký vào h c các l p c a trư ng. Các h c ph n (trong phi u ñăng ký h c ph n) mà m t sinh viên ñã ch n h c trong h c kỳ hiên t i. 8.3.2.12. 8.3.2.13. 8.3.2.14. Others: (Nh ng ngư i khác) GradStudent Newcomer T t c nh ng ngư i mu n truy c p h th ng ñ xem thông tin.. Sinh viên ñã t t nghi p, s b xóa kh i cơ s d li u c a trư ng Ngư i chu n b tr thành sinh viên c a trư ng, n p thông tin cá nhân c a mình ñ trư ng nh p vào cơ s d li u 8.3.2.15. NewProfessor Ngư i chu n b ñư c nh n vào d y t i trư ng, n p thông tin cá nhân ñ trư ng nh p vào cơ s d li u 8.3.2.16. RetireProfessor Giáo sư ñã v hưu, thông tin c a ngư i này ph i b xóa kh i cơ s d li u trư ng

8.4.
8.4.1.

ð c t b sung (Supplementary Specification)
M c tiêu

M c tiêu c a tài li u này là ñ ñ nh nghĩa các yêu c u c a H th ng ñăng ký h c ph n. ð c t b sung này li t kê các yêu c u chưa ñư c th hi n trong các use case. ð c t b sung cùng các use case trong mô hình use case th hi n ñ y ñ các yêu c u c a h th ng.

100

8.4.2.

Ph m vi

ð c t b sung áp d ng cho H th ng ñăng ký h c ph n ñư c các sinh viên l p OOAD phát tri n ð c t này v ch rõ các yêu c u phi ch c năng c a h th ng, như là tính n ñ nh, tính kh d ng, hi u năng, và tính h tr cũng như các yêu c u ch c năng chung cho m t s use case. (Các yêu c u ch c năng ñư c ch rõ trong ph n ð c t use case).

8.4.3.

Tài li u tham kh o

Không có.

8.4.4.
-

Ch c năng
H tr nhi u ngư i dùng làm vi c ñ ng th i.

- N u m t l p b h t ch trong khi m t sinh viên ñang ñăng ký h c có l p ñó thì sinh viên này ph i ñư c thông báo.

8.4.5.

Tính kh d ng

Giao di n ngư i dùng tương thích Windows 95/98.

8.4.6.

Tính n ñ nh

H th ng ph i ho t ñ ng liên t c 24 gi m t ngày, 7 ngày m i tu n, v i th i gian ngưng ho t ñ ng không quá 10%.

8.4.7.

Hi u su t

1. H th ng ph i h tr ñ n 2000 ngư i dùng truy xu t CSDL trung tâm ñ ng th i b t kỳ lúc nào, và ñ n 500 ngư i dùng truy xu t các server c c b . 2. H th ng ph i cho phép truy xu t ñ n CSDL danh m c h c ph n cũ v i ñ tr không quá 10 giây. 3. H th ng ph i có kh năng hoàn t t 80% giao d ch trong vòng 2 phút.

8.4.8.

S h tr

Không có.

8.4.9.

Tính b o m t

1. H th ng ph i ngăn ch n sinh viên thay ñ i l ch h c c a ngư i khác, và ngăn các giáo sư thay ñ i l p d y c a các giáo sư khác. 2. Ch có giáo sư m i có th nh p ñi m cho sinh viên.

101

3. Ch có cán b ñào t o m i ñư c phép thay ñ i thông tin c a sinh viên.

8.4.10.

Các ràng bu c thi t k

H th ng ph i tích h p v i h th ng có s n, H th ng danh m c h c ph n, m t CSDL RDBMS. H th ng ph i cung c p giao ñi n d a trên Windows.

102

8.5.

Sơ ñ ch c năng (Use Case Diagram)

View Report Card

Student Register for Courses

Login

Course Catalog

Select Courses to Teach

Professor

Submit Grades

Registrar

Maintain Professor Information

Maintain Student Information

Close Registration

Billing Syst em

Hình 8.1. Sơ ñ ch c năng h th ng ñăng ký môn h c

103

8.6.
8.6.1.
8.6.1.1.

ð c t các ch c năng (Use Case Description)
Close Registration (K t thúc ñăng ký)
Tóm t t

Use case này cho phép cán b ñào t o (Registrar) k t thúc quá trình ñăng ký. Casc h c ph n không ñ sinh viên s b h y. M i h c ph n ph i có t i thi u là 30 sinh viên. H th ng thanh toán (billing system) ñư c thông báo v các sinh viên thu c các h c ph n không bi h y, nh ñó ñ tính h c phí cho t ng sinh viên. 8.6.1.2. 8.6.1.2.1. Dòng s ki n Dòng s ki n chính

Use case này b t ñ u khi cán b ñào t o yêu c u h th ng k t thúc quá trình ñăng ký. H th ng ki m tra xem có ai còn ñang ñăng ký không. N u có thì m t thông ñi p ñư c g i ñ n cán b ñào t o và use case k t thúc. Quá trình k t thúc ñăng ký không th th c hi n n u còn ngư i ñang ñăng ký. V i m i l p, h th ng s ki m tra ñã có giáo sư nào ñăng ký d y và có ít nh t 30 sinh viên ñăng ký chưa. Sau ñó h th ng s ghi nh n l p này cho m i l ch h c có ñăng ký nó. V i m i l ch h c, h th ng s làm ñ y các l ch h c: n u l ch h c chưa ñ s h c ph n chính ñư c ch n t i ña, h th ng s c g ng ch n thêm trong các h c ph n thay th . H c ph n thay th ñ u tiên còn ch s ñư c ch n. N u không có h c ph n như v y thì l ch h c ñư c gi nguyên. H th ng ñóng t t c các l p ñang m . N u lúc này l p nào không có ñ ít nh t 30 sinh viên (m t s sinh viên có th ñư c thêm vào thông qua quá trình làm ñ y l ch h c), h th ng s h y l p này. H th ng s h y l p này trong t t c l ch h c có ch a nó. H th ng tính toán h c phí c a m i sinh viên trong h c kỳ hi n t i và g i giao d ch này ñ n H th ng thanh toán. H th ng thanh toán s g i hoá ñơn ñ n m i sinh viên, g m c l ch h c c a h Các dòng s ki n khác M t h c ph n không có ngư i ñăng ký d y o N u trong Dòng s ki n chính không có giáo sư nào ñăng ký d y m t l p nào ñó thì h th ng s h y l p h c này và h y l p này trong t t c l ch h c có ch a nó. H th ng thanh toán (Billing System) không s n sàng

-

-

-

-

8.6.1.2.2. -

104

o N u h th ng không th liên l c v i H th ng thanh toán, h th ng s c th g i l i yêu c u sau m t kho n th i gian ñ nh trư c. H th ng s ti p t c c g i l i yêu c u cho ñên khi k t n i ñư c v i H th ng thanh toán. 8.6.1.3. Không có. 8.6.1.4. 8.6.1.5. ði u ki n tiên quy t Post-Conditions Cán b ñào t o ph i ñăng nh p vào h th ng ñ use case này th c hi n N u use case th c hi n thành công, quá trình ñăng ký s ñư c ñóng. N u không, tr ng thái h th ng v n gi nguyên không ñ i. 8.6.1.6. Không có. ði m m r ng Các yêu c u ñ t bi t

8.6.2.
8.6.2.1. 8.6.2.2. 8.6.2.2.1.

Login (ðăng nh p)
Tóm t t Dòng s ki n Dòng s ki n chính

Use case này mô t cách m t ngư i dùng ñăng nh p vào H th ng ñăng ký h c ph n.

Use case này b t ñ u khi m t actor mu n ñăng nh p vào H th ng ñăng ký h c ph n. H th ng yêu c u actor nh p tên và m t kh u. Actor nh p tên và m t kh u. H th ng ki m ch ng tên và m t kh u ñư c nh p và cho phép actor ñăng nh p vào h th ng. Các dòng s ki n khác Tên/M t kh u sai o N u trong Dòng s ki n chính, actor nh p sai tên ho c m t kh u, h th ng s hi n th m t thông báo l i. Actor có th ch n tr v ñ u c a Dòng s ki n chính ho c h y b vi c ñăng nh p, lúc này use case k t thúc. 8.6.2.3. Không có. 8.6.2.4. Không có. ði u ki n tiên quy t Các yêu c u ñ t bi t

8.6.2.2.2. -

105

8.6.2.5.

Post-Conditions

N u use case thành công, actor lúc này ñã ñăng nh p vào h th ng. N u không tr ng thái h th ng không thay ñ i. 8.6.2.6. Không có. ði m m r ng

8.6.3.
8.6.3.1.

Maintain Professor Information (Qu n lý thông tin giáo sư)
Tóm t t

Use case này cho phép cán b ñào t o duy trì thông tin giáo sư trong h th ng ñăng ký. Bao g m thêm, hi u ch nh và xóa giáo sư ra kh i h th ng. 8.6.3.2. 8.6.3.2.1. Dòng s ki n Dòng s ki n chính

Use case này b t ñ u khi ngư i cán b ñào t o mu n thêm, thay ñ i, và/ho c xóa thông tin giáo sư trong h th ng. H th ng yêu c u cán b ñào t o ch n ch c năng mu n th c hi n (Add a Professor, Update a Professor, ho c Delete a Professor). Sau khi cán b ñào t o cung c p thông tin ñư c yêu c u, m t trong các lu ng ph sau ñư c th c hi n. o N u cán b ñào t o ch n “Add a Professor”, lu ng ph Add a Professor ñư c th c hi n. o N u cán b ñào t o ch n “Update a Professor”, lu ng ph Update a Professor ñư c th c hi n. o N u cán b ñào t o ch n “Delete a Professor”, lu ng ph Delete a Professor ñư c th c hi n. Add a Professor (Thêm m t giáo sư) o H th ng yêu c u cán b ñào t o nh p vào các thông tin c a giáo sư. Bao g m: Tên, ngày sinh, s CMND, tình tr ng hôn nhân, khoa o Sau khi cán b ñào t o cung c p thông tin ñư c yêu c u, h th ng s phát sinh và gán m t s ID ñ c nh t cho giáo sư này. Giáo sư này ñư c thêm vào h th ng. o H th ng cung c p cho cán b ñào t o s ID c a giáo sư m i. Update a Professor (Hi u ch nh thông tin m t giáo sư) o H th ng yêu c u cán b ñào t o nh p vào s ID c a giáo sư.

106

o Cán b ñào t o nh p s ID giáo sư. H th ng truy xu t và hi n th thông tin c a giáo sư này. o Cán b ñào t o thay ñ i m t s thông tin c a giáo sư. G m b t c thông tin nào ñư c ch ra trong lu ng ph Add a Professor. o Sau khi cán b ñào t o c p nh t xong các thông tin c n thi t, h th ng c p nh t m u tin c a giáo sư này. Delete a Professor (Xóa m t giáo sư) o H th ng yêu c u cán b ñào t o nh p vào s ID c a giáo sư. o Cán b ñào t o nh p s ID giáo sư. H th ng truy xu t và hi n th thông tin c a giáo sư này. H th ng nh c ngư i dùng xác nh n thao tác xóa giáo sư. Các b ñào t o xác nh n xóa. H th ng xóa thông tin c a giáo sư này ra kh i h th ng. 8.6.3.2.2. Các dòng s ki n khác Không tìm th y giáo sư o N u trong lu ng ph Update a Professor ho c Delete a Professor không t n t i giáo sư nào có s ID ñư c nh p vào thì h th ng s hi n th m t thông báo l i. Cán b ñào t o có th nh p m t s ID khác ho c h y b thao tác, lúc này use case k t thúc. Thao tác xóa b h y o N u trong lu ng ph Delete A Professor ngư i cán b ñào t o quy t ñinh không xóa giáo sư này n a, thao tác xóa b h y và Dòng s ki n chính ñư c b t ñ u l i t ñ u. 8.6.3.3. Không có. 8.6.3.4. 8.6.3.5. ði u ki n tiên quy t Post-Conditions Cán b ñào t o ph i ñăng nh p vào h th ng trư c khi use case b t ñ u. N u use case thành công, thông tin giáo sư ñư c thêm, c p nh t ho c xóa kh i h th ng. Ngư c l i, tr ng thái c a h th ng không thay ñ i. 8.6.3.6. Không có. ði m m r ng Các yêu c u ñ t bi t

107

8.6.4.
8.6.4.1.

Maintain Student Information (Qu n lý thông tin sinh viên)
Tóm t t

Use case này cho phép cán b ñào t o duy trì thông tin sinh viên trong h th ng ñăng ký h c ph n. Bao g m thêm, hi u ch nh và xóa sinh viên ra kh i h th ng. 8.6.4.2. 8.6.4.2.1. Dòng s ki n Dòng s ki n chính

Use case này b t ñ u khi ngư i cán b ñào t o mu n thêm, thay ñ i, và/ho c xóa thông tin sinh viên trong h th ng. H th ng yêu c u cán b ñào t o ch n ch c năng mu n th c hi n (Add a Student, Update a Student, ho c Delete a Student) Sau khi cán b ñào t o cung c p thông tin ñư c yêu c u, m t trong các lu ng ph sau ñư c th c hi n. o N u cán b ñào t o ch n “Add a Student”, lu ng ph Add a Student ñư c th c hi n. o N u cán b ñào t o ch n “Update a Student”, lu ng ph Update a Student ñư c th c hi n. o N u cán b ñào t o ch n “Delete a Student”, lu ng ph Delete a Student ñư c th c hi n. Add a Student o H th ng yêu c u cán b ñào t o nh p vào các thông tin c a giáo sư. Bao g m: tên, ngày sinh, s CMND, tình tr ng hôn nhân, ngày t t nghi p. o Sau khi cán b ñào t o cung c p thông tin ñư c yêu c u, h th ng s phát sinh và gán m t s ID ñ c nh t cho sinh viên này. The student is added to the system. Sinh viên này ñư c thêm vào h th ng. o H th ng cung c p cho cán b ñào t o s ID c a sinh viên m i. Update a Student o H th ng yêu c u cán b ñào t o nh p vào s ID c a sinh viên. o Cán b ñào t o nh p s ID sinh viên. H th ng truy xu t và hi n th thông tin c a sinh viên này. o Cán b ñào t o thay ñ i m t s thông tin c a sinh viên. G m b t c thông tin nào ñư c ch ra trong lu ng ph Add a Student. o Sau khi cán b ñào t o c p nh t xong các thông tin c n thi t, h th ng c p nh t m u tin c a sinh viên này.

108

-

Delete a Student o H th ng yêu c u cán b ñào t o nh p vào s ID c a sinh viên. o Cán b ñào t o nh p s ID sinh viên. H th ng truy xu t và hi n th thông tin c a sinh viên này. o H th ng nh c ngư i dùng xác nh n thao tác xóa sinh viên. o Các b ñào t o xác nh n xóa. o H th ng xóa thông tin c a sinh viên này ra kh i h th ng.

8.6.4.2.2. -

Các dòng s ki n khác

Không tìm th y sinh viên o N u trong lu ng ph Update a Student ho c Delete a Student không t n t i sinh viên nào có s ID ñư c nh p vào thì h th ng s hi n th m t thông báo l i. Cán b ñào t o có th nh p m t s ID khác ho c h y b thao tác, lúc này use case k t thúc.

-

Thao tác xóa b h y o N u trong lu ng ph Delete A Student ngư i cán b ñào t o quy t ñinh không xóa giáo sư này n a, thao tác xóa b h y và Dòng s ki n chính ñư c b t ñ u l i t ñ u.

8.6.4.3. Không có. 8.6.4.4. 8.6.4.5.

Các yêu c u ñ t bi t ði u ki n tiên quy t Post-Conditions

Cán b ñào t o ph i ñăng nh p vào h th ng trư c khi use case b t ñ u. N u use case thành công, thông tin sinh viên ñư c thêm, c p nh t ho c xóa kh i h th ng. Ngư c l i, tr ng thái c a h th ng không thay ñ i. 8.6.4.6. Không có. ði m m r ng

8.6.5.
8.6.5.1.

Register for Courses (ðăng ký h c ph n)
Tóm t t

Use case này cho phép m t sinh viên ñăng ký các l p h c ñư c m trong h c kỳ hi n t i. Sinh viên này còn có th c p nh t ho c xóa các l p h c ñã ch n n u các thay ñ i này di n ra trong th i gian cho phép thay ñ i ñăng ký vào ñ u h c kỳ. H th ng Danh m c h c ph n cung c p m t danh sách t t c các l p ñư c m trong h c kỳ hi n t i.

109

8.6.5.2. 8.6.5.2.1.

Dòng s ki n Dòng s ki n chính

Use Case này b t ñ u khi m t sinh viên mu n ñăng ký h c ph n, ho c thay ñ i th i khóa bi u ñã ñăng ký. H th ng yêu c u sinh viên ch n ch c năng mu n th c hi n (Create a Schedule, Update a Schedule, or Delete a Schedule). Sau khi sinh vi ên cung c p thông tin ñư c yêu c u, m t trong các lu ng ph sau ñư c th c hi n. o N u cán b ñào t o ch n “Creat a Schedule”, lu ng ph Creat a Schedule ñư c th c hi n. o N u cán b ñào t o ch n “Update a Schedule”, lu ng ph Update a Schedule ñư c th c hi n. o N u cán b ñào t o ch n “Delete a Schedule”, lu ng ph Delete a Schedule ñư c th c hi n. Create a Schedule o H th ng l y danh sách h c ph n có m trong h c kỳ t h th ng Course Catalog System và th hi n dư i d ng danh sách cho sinh viên ch n. o Sinh viên ch n 4 h c ph n b t bu c và hai h c ph n t ch n t danh sách trên. o Sau khi sinh viên ch n, h th ng t o m t th i khóa bi u ñăng ký h c ph n ch a nh ng h c ph n sinh viên ñã ñăng ký. o Sinh viên ki m tra và xác nh n th i khóa bi u, Submit Schedule ñư c th c thi. Update a Schedule o H th ng l y và hi n th th i khóa bi u mà sinh viên ñã ñăng ký (trong h c kỳ hi n t i) o H th ng l y danh sách h c ph n có m trong h c kỳ t h th ng Course Catalog System và th hi n dư i d ng danh sách cho sinh viên ch n. o Sinh viên có th c p nh t l i b ng cách xóa và t o m i. Sinh vi ên có th ch n thêm nh ng môn h c m i ho c lo i b nh ng h c ph n ñã ñăng ký. o Sau khi sinh viên l a ch n xong, h th ng c p nh t l i th i khóa bi u cho sinh viên. o Lu ng s ki m Submit Schedule ñư c th c hi n. Delete a Schedule

110

o H th ng l y và hi n th th i khóa bi u mà sinh viên ñã ñăng ký (trong h c kỳ hi n t i). o H th ng yêu c u sinh viên xác nh n vi c xóa. o Sinh viên xác nh n vi c xóa. o H th ng xóa th i khóa bi u c a sinh viên. o H th ng xóa th i khóa bi u c a sv Submit Schedule o ð i v i m i h c ph n trong th i khóa bi u, chưa ñư c ñánh d u là “enrolled in”, h th ng s ki m tra sinh viên ñã ñ nh ng ñi u ki n tiên quy t chưa, ví d như h c ph n ñó có m và không có mâu thu n trong th i khóa bi u (như là trùng gi ...).H th ng s thêm sinh viên vào h c ph n ñã ch n. H c ph n ñư c ñánh d u là “enrolled in” trong th i khóa bi u. o Th i khóa bi u ñư c lưu vào h th ng. 8.6.5.2.2. Các dòng s ki n khác Save a Schedule o T i m i th i ñi m sinh viên có th ch n lưu th i khóa bi u trư c khi submit. Unfulfilled Prerequisites, Course Full, or Schedule Conflicts o N u lu ng s ki n ph Submit Schedule, n u sinh viên chưa ch n ñ các môn h c theo qui ñ nh, ho c h c ph n ñã ñ y, ho c trong th i khóa bi u b xung ñ t gi a các h c ph n (trùng gi ...), thông báo l i s ñư c g i ñ n sv.Sinh viên ph i ch n h c ph n khác và use case ti p t c ho c sinh viên h y vi c ñăng ký và use case kh i t o l i t ñ u. No Schedule Found o Khi trong hai lu ng s ki n Update a Schedule Delete a Schedule, h th ng không nh n ñư c th i khóa bi u c a sinh viên, thông báo l i s hi n th trên màn hình. Course Catalog System Unavailable o N u không k t n i ñư c v i h th ng Course Catalog, h th ng s hi n th thông báo cho sinh viên. Course Registration Closed o Khi th i gian ñăng ký cho h c kỳ hi n t i ñã k t thúc, sinh viên vào ñăng ký s nh n ñư c thông báo và h th ng không cho phép sinh viên ti p t c.

111

-

Delete Cancelled o N u trong dòng s ki n ph Delete A Schedule, sinh viên quy t ñ nh không xóa th i khóa bi u, l nh xóa b hu b và Dòng s ki n chính ñư c re-started l i t ñ u.

8.6.5.3. Không có. 8.6.5.4. 8.6.5.5.

Các yêu c u ñ t bi t ði u ki n tiên quy t Post-Conditions

Giáo sư ph i ñăng nh p vào h th ng trư c khi use case b t ñ u. N u use case thành công, các l p mà giáo sư ch n d y s ñư c c p nh t. Ngư c l i, tr ng thái c a h th ng vãn không ñ i. 8.6.5.6. Không có. ði m m r ng

8.6.6.
8.6.6.1.

Select Courses to Teach (ðăng ký d y)
Tóm t t

Use case này cho phép m t giáo sư ch n t danh m c h c ph n các l p h c mà minh có th d y ñư c và mu n d y trong h c kỳ s p t i. 8.6.6.2. 8.6.6.2.1. t i. H th ng truy xu t và hi n th danh sách các l p mà giáo sư có th d y trong h c kỳ hi n t i. H th ng cũng truy xu t và hi n th các l p h c mà giáo sư này ñã ñăng ký d y. Giáo sư ch n thêm/b b t các l p mà minh mu n d y trong h c kỳ s p t i. H th ng xóa giáo sư ra kh i nh ng l p b giáo sư b b t. H th ng ki m tra các l p h c ñư c ch n xem có mâu thu n v i nhau hau không (ví d như có cùng ngày, gi d y). N u như khong có mâu thu n, h th ng c p nh t thông tin l p h c cho m i l p h c ñư c giáo sư ch n (ví d như ghi nh n giáo sư là ngư i gi ng d y cho l p này). Các dòng s ki n khác Không có l p h c nào Dòng s ki n Dòng s ki n chính

Use case này b t ñ u khi m t giáo sư mu n ñăng ký d y m t s l p trong h c kỳ s p

-

8.6.6.2.2. -

112

o N u trong Dòng s ki n chính, giáo sư không thích h p ñ d y b t c môn nào ñư c m trong h c kỳ s p t i h th ng s hi n th thông báo l i. Giáo sư nh n thông báo này và use case k t thúc. Mâu thu n trong l ch d y o N u h th ng th y mâu thu n trong l ch d y khi c ñăng ký các l p giáo sư s d y, h th ng s hi n th m t thông báo l i r ng l ch d y là mâu thu n. H th ng cũng ch ra các l p h c gây mâu thu n. Giáo sư có th ho c gi i quy t mâu thu n này (ví d như h y d y m t s l p, ho c h y thao tác. Trong trư ng h p này, ch n l a c a giáo sư s b m t và usee case k t thúc. H th ng Danh m c h c ph n không s n sàng o N u h th ng không th k t n i ñư c v i H th ng Danh m c h c ph n, h th ng s hi n th m t thông báo l i ñ n sinh viên. Giáo sư nh n thông báo l i và use case k t thúc. ðăng ký h c ph n ñã b ñóng o N u khi use case m i b t ñ u, nó xác ñinh ñư c r ng quá trình ñăng ký cho h c kỳ này ñã b ñóng, m t thông báo s ñư c hi n th cho giáo sư và use case k t thúc. Giáo sư không th thay ñ i l p d y sau khi quá trình ñăng ký cho h c kỳ này ñã b ñóng. N u m t s thay ñ i giáo sư x y ra sau khi quá trình ñăng ký b ñóng nó ñư c x lý bên ngoài pajm vi c a h th ng. 8.6.6.3. Không có. 8.6.6.4. 8.6.6.5. ði u ki n tiên quy t Post-Conditions Giáo sư ph i ñăng nh p vào h th ng trư c khi use case b t ñ u. N u use case thành công, các l p mà giáo sư ch n d y s ñư c c p nh t. Ngư c l i, tr ng thái c a h th ng vãn không ñ i. 8.6.6.6. Không có. ði m m r ng Các yêu c u ñ t bi t

8.6.7.
8.6.7.1.

Submit Grades (N p ñi m)
Tóm t t

Use case này cho phép giáo sư n p ñi m cúa sinh viên trong các l p mình d y v a hoàn t t trong h c kỳ trư c.

113

8.6.7.2. 8.6.7.2.1.

Dòng s ki n Dòng s ki n chính

Use case này b t ñ u khi có m t giáo sư mu n vào ñi m cho sinh viên mình d y. H th ng hi n th danh sách các l p h c ñư c giáo sư d y trong h c kỳ v a qua.. Giáo sư ch n m t l p trong danh sách. H th ng l y ra m t danh sách t t c các sinh viên ñã ñăng ký l p h c này. H th ng hi n th m i sinh viên cùng ñi m s (n u ñã ñư c cho trư c ñó). V i m i sinh viên, giáo sư nh p ñi m: A, B, C, D, F, ho c I. H th ng ghi nhân ñi m cúa sinh viên trong l p h c này. N u giáo sư mu n b qua m t sinh viên nào ñó, ñi m s có th ñ tr ng và nh p vào sau. Giáo sư cũng có th thay ñ i ñi m cho m t sinh viên b ng cách nh p vào ñi m m i. Các dòng s ki n khác Không d y l p nào trong h c kỳ v a qua o N u trong Dòng s ki n chính, giáo sư ñã không d y m t l p nào trong h c kỳ v a qua thì h th ng s hi n th m t thông báo l i. Giáo sư xem thông báo này và use case k t thúc. 8.6.7.3. Không có. 8.6.7.4. 8.6.7.5. ði u ki n tiên quy t Post-Conditions Giáo sư ph i ñăng nh p vào h th ng trư c khi use case b t ñ u. N u use case thành công, ñi m c a sinh viên s ñư c c p nh t. Ngư c l i, trang thái c a h th ng không thay ñ i. 8.6.7.6. Không có. ði m m r ng Các yêu c u ñ t bi t

8.6.7.2.2. -

8.6.8.
8.6.8.1.

View Report Card (Xem phi u ñi m)
Tóm t t

Use case này cho phép m t sinh viên xem b n ñi m c a mình trong h c kỳ v a hoàn t t trư c ñó. 8.6.8.2. 8.6.8.2.1. Dòng s ki n Dòng s ki n chính

Use case này b t ñ u khi m t sinh viên xem b n ñi m c a mình trong h c kỳ v a hoàn t t

114

-

H th ng truy xu t và hi n th thông tin v ñi m cho m i l p h c mà sin viên này ñã hoàn t t trong h c kỳ trư c ñó Khi sinh viên này báo r ng ñã xem xong ñi m thì use case k t thúc. Các dòng s ki n khác Không có thông tin v ñi m o N u trong Dòng s ki n chính h th ng không th tìm th y thông tin ñi m trong h c kỳ trư c c a sinh viên, m t thông báo s ñư c hi n th . Sau khi sinh viên xem xong thông báo này, use case k t thúc.

8.6.8.2.2.

8.6.8.3. Không có. 8.6.8.4. 8.6.8.5. 8.6.8.6. Không có.

Các yêu c u ñ t bi t ði u ki n tiên quy t Post-Conditions ði m m r ng

Sinh viên ph i ñăng nh p vào h th ng trư c khi use case b t ñ u. Tr ng thái c a h th ng không thay ñ i sau khi use case này th c hi n.

8.7. 8.8.

Phân tích yêu c u Thi t k h th ng

115

TÀI LI U THAM KH O
[1] Kent Beck, Extreme Programming Explained, Addison & Wasley, 2000. [2] Bruce Eckel, Thinking in Java, 3rd ed., 2002. [3] Mike Gancarz, The Unix Philosophy, Digital Press, 1994. [4] Roger S. Pressman (d ch: Ngô Trung Vi t), Công ngh ph n m m, T p I,II,III, NXB Giáo d c, 1997. [5] Walker Royce, Software Project Management - A Unified Framework, AddisonWesley, 1998. [6] Stephen R. Schach, Classical and ObjectưOriented Software Engineering with UML and C++, 4th ed., McGrawưHill, 1999. [7] Ian Sommerville, Software Engineering, 6th ed., AddisonưWasley, 2001. [8] Nguy n Qu c To n, Bài gi ng v Nh p môn Công trình h c ph n m m, Khoa Công ngh , 1999. [9] Lê ð c Trung, Công ngh ph n m m, NXB Khoa h c và K thu t, 2001. [10] Ngô Trung Vi t, Nguy n Kim ánh (biên so n), Nh p môn Công ngh ph n m m, NXB Khoa h c và k thu t, 2003. [11] Nguy n Văn V , Phân tích thi t k các h th ng thông tin hi n ñ i, NXB Th ng kê, 2002. [12] Software Engineering 6th Edition (presentation)- Ian Summerville [13] Bài gi ng Nh p môn kĩ ngh ph n m m - Nguy n Ng c Bình - ð i h c Công Ngh , ð i h c Qu c Gia Hà N i

116

Sign up to vote on this title
UsefulNot useful