Giáo trình kỹ nghệ phần mềm Giáo trình Kỹ nghệ phần mềm 1 MỤC LỤC DANH MỤC HÌNH VẼ 11 DANH MỤC BẢNG BIỂU 13 THUẬT NGỮ SỬ DỤNG 18 LỜI NÓI ĐẦU 19 Chương 1 TỔNG QUAN VỀ PHẦN MỀM VÀ KỸ NGHỆ PHẦN MỀM 1 1 K.
Trang 1M C L C
DANH M C HÌNH V ……….11
DANH M C B NG BI U………13
THU T NG S D NG……… 18
L I NÓI U……… 19
Ch ng 1 T NG QUAN V PH N M M VÀ K NGH PH N M M 1.1 K ngh h th ng d a trên máy tính……….24
1.2 Khái ni m ph n m m……….26
1.3 Phân lo i ph n m m……… 29
1.4 Ch t l ng ph n m m……… 31
1.5 T ng quan v các ngôn ng l p trình………35
1.6 Khái ni m k ngh ph n m m……… 36
1.7 Ngu n nhân l c trong k ngh ph n m m………39
CÂU H I ÔN T P CH NG 1……….49
C h ng 2 C T YÊU C U PH N M M 2.1 Khái ni m đ c t yêu c u ph n m m……… 53
2.2 Xác đ nh yêu c u ph n m m……… 56
2.3 Phân tích yêu c u ph n m m……… 58
2.4 c t yêu c u ph n m m……… 62
2.5 T li u hóa đ c t yêu c u ph n m m……… … 63
2.6 Các ph ng pháp thu th p thông tin……….75
CÂU H I ÔN T P CH NG 2……….77
C h ng 3 N N T NG THI T K PH N M M 3.1 Vai trò c a thi t k ph n m m……… 80
3.2 Chi n l c thi t k ph n m m……… 82
3.3 Các ph ng pháp thi t k ……… 86
3.4 C s lý lu n thi t k ph n m m……….99
3.5 Thi t k mô đun hi u qu ………106
3.6 Thi t k d li u……… .108
3.7 Ký pháp thi t k b ng l u đ ……… 110
3.8 K thu t l p trình……… 112
3.9 Ngôn ng thi t k ……… 118
3.10 Tài li u thi t k ……… 120
CÂU H I ÔN T P CH NG 3……… 123
Trang 2C h ng 4 PHÂN TÍCH VÀ THI T K H NG CH C N NG
4.1 Khái ni m phân tích h th ng h ng ch c n ng……… 128
4.2 Bi u đ ch c n ng BFD………133
4.3 Bi u đ ng c nh……… 135
4.4 Bi u đ lu ng d li u DFD………141
4.5 Báo cáo phân tích h ng ch c n ng……….143
4.6 Chi n l c thi t k h ng ch c n ng………146
4.7 Thi t k ki n trúc ph n m m……… 147
4.8 Thi t k d li u……… 150
4.9 Thi t k gi i thu t……… 152
4.10 Thi t k giao di n………154
4.11 Tài li u thi t k ph n m m……… 156
CÂU H I VÀ BÀI T P CH NG 4……… 164
C h ng 5 PHÂN TÍCH VÀ THI T K H NG I T NG V I UML 5.1 Khái ni m phân tích và thi t k h ng đ i t ng và UML …… 170
5.2 Mô hình hóa ch c n ng nghi p v ….… ……… 182
5.3 Mô hình hóa c u trúc h th ng……….…197
5.4 Mô hình hóa s t ng tác trong h th ng……… 200
5.5 Mô hình hóa tr ng thái c a h th ng……… 205
5.6 Mô hình hóa ho t đ ng c a h th ng……… 209
5.7 Bi u đ thành ph n và bi u đ tri n khai……….…220
CÂU H I VÀ BÀI T P CH NG 5 ……… 217
C h ng 6 PHÂN TÍCH VÀ THI T K H NG TH I GIAN TH C 6.1 Khái ni m h th ng th i gian th c……… 220
6.2 C u trúc h th ng th i gian th c……… 223
6.3 C s d li u th i gian th c……….226
6.4 H đi u hành th i gian th c………229
6.5 Ngôn ng th i gian th c……… 230
6.6 Truy n thông th i gian th c……….232
6.7 Công c toán h c cho phân tích th i gian th c……… 235
6.8 Ph ng pháp thi t k DARTS cho h th ng th i gian th c…… 339
6.9 Ví d phân tích và thi t k th i gian th c……… 243
Trang 3CÂU H I ÔN T P CH NG 6 ……….…245
C h ng 7 KI M TH PH N M M 7.1 Khái ni m và l ch s ki m th ph n m m ……….248
7.2 Ph ng pháp ki m th h p tr ng (White Box Testing) ………259
7.3 Ph ng pháp ki m th h p đen (Black Box Testing)… ……265
7.4 Qui trình ki m th ph n m m ……… …….270
CÂU H I ÔN T P CH NG 7……… 271
Ch ng 8 B O TRÌ PH N M M
8.1 Khái ni m b o trì ph n m m……… 275
8.2 c đi m b o trì ph n m m……… 277
8.3 Qui trình b o trì ph n m m………280
8.4 Các ho t đ ng b o trì ph n m m………282
8.5 Nh ng khó kh n trong b o trì ph n m m……… 285
8.6 H s b o trì ph n m m……… 288
CÂU H I ÔN T P CH NG 8……… 289
C h ng 9 QU N LÝ D ÁN PH N M M 9.1 Khái ni m và qui trình qu n lý d án ph n m m……… 296
9.2 L p l ch qu n lý ti n trình d án ph n m m….……….299
9.3 Qu n lý ch t l ng ph n m m……….305
9.4 Qu n lý c u hình……… 310
9.5 Các ph ng pháp xác đ nh qui mô ph n m m………… ….…313
9.6 Qu n tr r i ro trong d án ph n m m………318
9.7 Các mô hình phát tri n ph n m m ……….326
CÂU H I ÔN T P CH NG 9……… 331
P h l c 1 NG D NG PHÂN TÍCH VÀ THI T K PH N M M P1.1 Mô t bài toán qu n lý xe v n t i……… 335
P1.2 Phân tích bài toán qu n lý xe v n t i………354
P1.3 Thi t k bài toán qu n lý xe v n t i……… 367
P2.1 Mô t bài toán qu n lý bán hàng……… 368
P2.2 Xây d ng Use Case bài toán bán hàng……… 371
P2.3 Xây d ng các l p c n b n……… 372
P2.4 Xây d ng bi u đ tu n t ……….376
Trang 4P2.5 Xây d ng các b ng d li u……….377
P2.6 Thi t k giao di n………382
CÂU H I ÔN T P ……….383
TÀI LI U THAM KH O………385
Trang 5Hình 3.1 Mô hình thi t k Top Down Design 84
Hình 3.2 Mô hình thi t k Bottom Up Design 86
Hình 3.4 th m i liên h gi a s mô đun và chi phí 91
Trang 7Hình 5.20 Mô hình k th a không có l p chung 193
Hình 5.22 Mô hình x lý bên trong đ i t ng 199
Trang 8Hình 6.10 Mô hình h th ng ki m soát không l u 241
Trang 10Hình P22 Các tác nhân c a bài toán bán hàng 364
Trang 12B ng 7.6 Các giá tr c a d li u h tên, mã sinh viên 265
Trang 13B ng 9.13 Tính toán chi phí ngu n l c cho d án ph n m m 314
B ng 9.14 K t qu tính toán theo ph ng pháp KLOC 314
CMM Capability Maturity Model
KPAs Key Process Area
SEI Software Engineering Institute
Trang 14Algorithm efficiency Hi u su t c a gi i thu t
Artificial intelligent software Ph n m m trí tu nhân t o
Business function diagram Bi u đ ch c n ng
Call- return model Mô hình g i - tr l i
Capability maturity model Mô hình t ng tr ng kh n ng
Trang 15Critical path method Ph ng pháp đ ng g ng
Engineering and scientific software Ph n m m khoa h c và công ngh
Enity- relationships model Mô hình quan h th c th
Event- based model Mô hình d a trên s ki n
Input- ouput analysis Phân tích vào- ra
Intergated development environment Môi tr ng phát tri n tích h p
Integrated software management Qu n tr ph n m m tích h p
Intergroup coordination Ph i h p nhóm
Interrupt- driven model Mô hình ng t
Trang 16Formal system development Phát tri n h th ng hình th c
Functional programming L p trinh hàm
Object- oriented analysis Phân tích h ng đ i t ng
Object- oriented design Thi t k h ng đ i t ng
Object- oriented programming L p trình h ng đ i t ng
Object- oriented model Mô hình h ng đ i t ng
Organization process definition nh ngh a ti n trình t ch c
Organization process focus Tiêu đi m ti n trình t ch c
Personal computer software Ph n m m máy tính cá nhân
Trang 17Procedural programming L p trình th t c
Process change management Qu n tr thay đ i ti n trình
Quantitative process management Qu n lý ti n trình đ nh l ng
Rapid application development Phát tri n ng d ng nhanh
Real- time software Ph n m m th i gian th c
Reference architectural model Mô hình ki n trúc tham chi u
Requirement management Qu n lý yêu c u
Requirement specification c t yêu c u
Requirement validation Th m đ nh yêu c u
Software product engineering K ngh s n xu t ph n m m
Software project planning L p k ho ch cho d án ph n m m
Software project tracking Theo giõi d án ph n m m
Software quality management Qu n lý ch t l ng ph n m m
Trang 18Software requirement specification c t yêu c u ph n m m
Software architecture Ki n trúc ph n m m
Software quality assurance m b o ch t l ng s n ph m
Software subcontract managent Qu n tr h p đ ng ph ph n m m
Structured programming L p trình c u trúc
Technology change management Qu n tr thay đ i công ngh
Structure analysic and design technology Phân tích và thi t k có c u trúc
Unified modeling language Ngôn ng mô hình hóa th ng nh t
Trang 19
L I NÓI U
Môn h c k ngh ph n m m (Software Engineering) có m t v trí quan tr ng trong
ch ng trình đào t o c a Vi n CNTT và Kinh t s trong giai đo n c a cu c cách m ng công nghi p 4.0 hi n nay
Giáo trình đ c xây d ng trên các đ nh h ng sau đây:
+ V đ i t ng s d ng: i t ng s d ng c a giáo trình là sinh viên chuyên ngành H
th ng thông tin qu n lý n m th 4 c a tr ng i h c Kinh t Qu c dân sau khi đã đ c trang b nh ng ki n th c c b n v h th ng thông tin, v l p trình và v c s d li u
+ V n i dung: Giáo trình ph i bao quát đ c toàn b nh ng ki n th c c b n c a k
ngh ph n m m hi n đ i
+ V k n ng: Sau khi h c xong môn h c này sinh viên s có k n ng thành th o trong
vi c phân tích, thi t k , ki m th và b o trì m t ph n m m theo đúng các qui trình chu n
Ch ng 2 c t yêu c u ph n m m Ch ng này trình bày khái ni m đ c t yêu c u
ph n m m, các k thu t phân tích và đ c t yêu c u ph n m m
Ch ng 3 N n t ng thi t k ph n m m Thi t k là v n đ trung tâm c a k ngh ph n
m m Ch ng này trình bày nh ng v n đ lý lu n n n t ng làm c s cho các ph ng
pháp thi t k ph n m m
Ch ng 4 Phân tích và thi t k h ng ch c n ng Ph ng pháp thi t k h ng ch c
n ng (còn g i là thi t k có c u trúc) là m t ph ng pháp thi t k kinh đi n, có nhi u ng
d ng trong nhi u l nh v c Ch ng này trình bày ph ng pháp phân tích và thi t k theo
h ng ti p c n này
Ch ng 5 Phân tích và thi t k h ng đ i t ng Ph ng pháp phân tích và thi t k
h ng đ i t ng là công c ch đ o trong vi c phát tri n các ph n m m chuyên nghi p
có qui mô l n Ch ng này trình bày các v n đ c b n v phân tích và thi t k h ng
đ i t ng
Ch ng 6 Phân tích và thi t k h ng th i gian th c Phân tích và thi t k th i gian th c
là công c xây d ng ph n m m cho các h th ng th i gian th c, trong đó có ph n m m
đúng còn có yêu
Trang 20c u r t kh t khe v y u t th i gian Ch ng này trình bày các n i dung c b n v
ph ng pháp phân tích và thi t k th i gian th c
Ch ng 7 Ki m th ph n m m Ki m th ph n m m là m t cu c ki m tra đ c ti n
hành đ cung c p cho các bên liên quan thông tin v ch t l ng c a s n ph m ho c d ch
v đ c ki m th ây là công đo n b t bu c trong qui trình s n xu t ph n m m qui
mô công nghi p Ch ng này trình bày khái ni m ki m th ph n m m, các ph ng pháp
ki m th , qui trình ki m th ph n m m
Ch ng 8 B o trì ph n m m B o trì ph n m m là vi c s a ch a các l i ch a đ c phát
hi n trong các giai đo n tr c trong chu k s ng c a m t ph n m m, đ ng th i nâng c p tính n ng s d ng và s an toàn v n hành cho 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 Ch ng này trình bày các v n đ c b n v b o trì ph n m m
Ch ng 9 Qu n lý d án ph n m m Ch ng này trình bày các v n đ c b n trong qui
trình qu n lý m t d án ph n m m nh l p k ho ch d án, qu n lý ti n trình d án, qu n
lý ch t l ng s n ph m, qu n lý r i ro …vv
gi i thi u hai ng d ng phân tích và thi t k ph n m m trên c s v n d ng các ki n th c
đã h c trong giáo trình đ gi i quy t m t s bài toán nh m nâng cao k n ng cho ng i
h c
Giáo trình K ngh ph n m m do PGS.TS Hàn Vi t Thu n làm ch biên và vi t các
ch ng 4,5,6,7, Ti n s oàn Quang Minh vi t ch ng 1,2,3, Th c s Nguy n Anh
Ph ng vi t ch ng 8, 9 và ph n ph l c
K ngh ph n m m là m t l nh v c khoa h c r ng l n Khi biên so n giáo trình này chúng tôi đã tham kh o nhi u tài li u c a các tác gi trong và ngoài n c Chúng tôi xin chân thành cám n t t c các tác gi này
Giáo trình K ngh ph n m m đ c biên so n làm tài li u h c t p cho sinh viên c a
Vi n CNTT và Kinh t s c a Tr ng i h c Kinh t Qu c dân Tuy đã r t c g ng
nh ng ch c ch n không tránh kh i thi u sót Chúng tôi r t mong s nh n đ c nh ng ý
ki n đóng góp c a b n đ c đ giáo trình đ c hoàn thi n h n trong các l n xu t b n sau này
Hà N i tháng 9 n m 2020
Các tác gi
Trang 21Trong ch ng này tr c h t chúng tôi trình m t cách t ng quan v k ngh h th ng
d a trên máy tính, là n n t ng k thu t và công ngh ng d ng ph n m m Sau đó s trình bày nh ng ki n th c c b n v ph n m m và k ngh ph n m m nh đ c tr ng c a
ph n m m, vòng đ i phát tri n c a ph n m m, ch t l ng ph n m m, ph ng pháp phân
lo i ph n m m, khái ni m k ngh ph n m m Con ng i là y u t quy t đ nh, trong l nh
v c KNPM đi u này l i càng th hi n rõ h n Vì th trong ph n cu i ch ng này s trình bày các v n đ liên quan đ n ngu n nhân l c trong k ngh ph n m m
T nh ng n m 1946 khi l n đ u tiên xu t hi n chi c máy tính thì đ ng th i c ng xu t
hi n ph n m m Có th nói máy tính và ph n m m là m t c p song sinh và ngay t khi ra
đ i ph n c ng và ph n m m luôn song hành cùng nhau phát tri n theo th i gian H n n a
s t ng thích gi a ph n c ng và ph n m m là r t quan tr ng, th hi n s thu n l i khi cài đ t và khi làm vi c Hoàn c nh đ phát tri n ph n m m g n li n ch t ch v i các th p
k ti n hoá c a h th ng máy tính Hi u n ng ph n c ng m nh h n, kích c nh h n và giá th p h n đã góp ph n t o ra các h th ng thông minh d a trên máy tính
Trang 22Nh v y vi c nghiên c u k ngh h th ng d a trên máy tính trong k ngh ph n
m m là không th thi u đ c ây là m t trong nh ng y u t mang l i s thành công cho quá trình xây d ng k ngh ph n m m nói chung và xây d ng t ng ph n m m nói riêng
th y rõ h n v t m quan trong c a vi c nghiên c u k ngh h th ng d a trên máy tính, sau đây chúng ta s đi sâu nghiên c u n i dung c a k ngh h th ng d a trên máy tính trong k ngh ph n m m
Ph n c ng: Các thi t b đi n t nh CPU, b nh , bàn phím, b c m bi n…vv
Con ng i: Ng i dùng và các thao tác viên ph n c ng và ph n m m
C s d li u: T p h p nh ng thông tin có t ch c, có th truy c p b ng ph n m m
Trang 23Hình nh ph bi n cho k ngh này đ c đ c tr ng b i giai đo n th hai Các yêu c u
c n đ c phân tích và m t c u hình ph n c ng s b đ c thi t k Các cu c h p xem xét
k thu t s đ c ti n hành khi thi t k ti n hóa thành các b n v k ngh chi ti t (b n đ c
t thi t k ) Ngày nay, vi c phân tích và thi t k đ c ti n hành v i các công c có máy tính tr giúp (CAE/CAD) Ngoài ra c ng c n có thêm các thành ph n ch a có s n; các thành ph n c n đi u ch nh và các b n m u đ c l p ráp B n m u này đ c ki m th đ
đ m b o r ng nó s đáp ng đ c m i yêu c u đ t ra
Giai đo n th ba c a k ngh ph n c ng t o ra các yêu c u tr c ti p v i k s thi t k
nh ng đòi h i g t gao h n kh n ng c a k s ch t o Tr c quá trình s n xu t ban đ u,
ng i ta ph i xác đ nh đ c các ph ng pháp b o đ m ch t l ng và ph i xác đ nh c
c u phân ph i s n ph m Các linh ki n thay th đ c đ a vào kho và ph i thi t l p t
ch c th c hi n cho vi c b o trì và s a ch a
M t khi k ngh h th ng, t c là vi c phân tích và đ nh ngh a h th ng đã đ c ti n hành thì các ch c n ng đ c c p phát cho ph n c ng Giai đo n đ u c a k ngh ph n
c ng bao g m vi c l p k ho ch phát tri n và phân tích yêu c u ph n c ng K ho ch phát tri n đ c ti n hành đ thi t l p ph m vi n ng l c c a ph n c ng T c là chúng ta
đ t ra nh ng câu h i sau đây:
1- âu là l p ph n c ng đáp ng đ c t t nh t t i các ch c n ng đã xác đ nh?
2- Ph n c ng nào có s n có th mua đ c; ngu n cung c p đâu, m c chi phí là bao nhiêu?
3- Chúng ta c n ph i thi t k và xây d ng thêm nh ng cái gì?
T nh ng câu h i này chúng ta có th thi t l p đ c l ch th c hi n và chi phí s b cho các ph n t h th ng ph n c ng Ti p đó, chúng ta ph i thi t l p m t l trình thi t k và cài đ t ph n c ng Vi c phân tích yêu c u h th ng ph n c ng đ c ti n hành đ xác đ nh các yêu c u chính xác v ch c n ng, hi u su t và giao di n cho m i thành ph n c a ph n
t ph n c ng Bên c nh đó các ràng bu c thi t k nh kích c , môi tr ng và các tiêu chí
ki m th c n đ c thi t l p C n ph i t o ra b n đ c t ph n c ng nh :
- Các thành ph n thu nh n thông tin (sensor, thi t b ngo i vi)
Trang 24đ c thi t k theo đ t hàng cho t ng ng d ng c th Ph n m m lúc đ u còn t ng đ i
đ n gi n, vi c thi t k là m t ti n trình không t ng minh và th ng là không có tài li u thi t k m t cách khoa h c
Th h th hai c a s ti n hoá máy tính tr i r ng gi a nh ng n m 1960 cho đ n cu i