Khoa Công ngh
Thông tin
Trư ng ð i h c Bách khoa
ð i h c ðà N ng
BÀI GI NG
PHÂN TÍCH VÀ THI T K H TH NG
HƯ NG ð I TƯ NG
Nguy n Thanh Bình
Công ngh ph n m m
(0)
Nguy n Thanh Bình
Khoa Công ngh Thông tin
Trư ng ð i h c Bách khoa
ð i h c ðà N ng
M c ñích
Hi u và n m ñư c
Khái ni m công ngh ph n m m
Các mô hình phát tri n ph n m m
Các ho t ñ ng phát tri n ph n m m
Các k thu t và phương pháp cơ b n trong
phát tri n ph n m m
Áp d ng công ngh ph n m m trong phát
tri n ph n m m
2
1
N i dung
Chương 1: Gi i thi u Công ngh ph n m m
Chương 2: Các mô hình phát tri n ph n m m
Chương 3: Phân tích và ñ c t yêu c u
Chương 4: Các k thu t ñ c t
Chương 5: Thi t k
Chương 6: L p trình và ngôn ng l p trình
Chương 7: Ki m th
Chương 8: Qu n tr d án ph n m m
3
Tài li u tham kh o
Ian Sommerville, Software Engineering, 7th edition, Pearson
Education, 2004.
M. Gaudel, B. Marre, F. Schlienger, G. Bernot, Précis de
génie logiciel, Masson, 2001.
Stephen R. Schach, Classical and Object-Oriented Software
Engineering, NXB IRWIN, 1996.
Ronald Leach, Introduction to Software Engineering, CRC
Press, 1999.
G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling
Language User Guide, Addision-Wesley, 1999.
Craig Larman, Applying UML and Patterns: An Introduction
to Object-Oriented Analysis and Design and Iterative
Development, Third Edition, Addision-Wesley, 2004.
Glenford J. Myers, The art of software testing, Wiley, 2004.
Boris Beizer, Software Testing Techniques, Second Edition.
4
2
Gi i thi u
công ngh ph n m m
(1)
Nguy n Thanh Bình
Khoa Công ngh Thông tin
Trư ng ð i h c Bách khoa
ð i h c ðà N ng
N i dung
L ch s phát tri n ph n m m và
kh ng ho ng ph n m m ?
Công ngh ph n m m
Khái ni m
M c ñích
Nguyên t c
Ch t lư ng ph n m m
Phân lo i ph n m m
2
1
L ch s phát tri n ph n m m
1946, máy tính ñi n t ra ñ i
1950, máy tính ñư c thương m i hóa
Ph n m m b t ñ u ñư c phát tri n
Nh ng năm 1960
nh ng th t b i v phát tri n ph n m m
• s n ph m ph n m m ph c t p
• nhi u l i
• t ch c s n xu t: giá thành, ti n ñ , ...
Ngư i ta nói ñ n “Kh ng ho ng ph n m m”
3
L ch s phát tri n ph n m m
T th công ñ n công ngh
• Chương trình nh
• D án l n
• không chuyên nghi p
• chuyên nghi p
• 1 ngư i làm
• nhi u ngư i làm
• ngư i s d ng = ngư i phát tri n • khách hàng & nhà cung c p
• 1 s n ph m = mã ngu n
• nhi u s n ph m
• ti n trình phát tri n ñơn gi n
• ti n trình phát tri n ph c t p
1968, h i th o khoa h c ñ u tiên v “Công ngh ph n m m”
4
2
Kh ng ho ng ph n m m
V m t s n ph m
ch t lư ng s n ph m ph n m m
•
•
•
•
•
không ñáp ng yêu c u th c t
khó s d ng
không tin c y
khó b o trì
khách hàng không hài lòng
5
Kh ng ho ng ph n m m
V m t qu n lý
K ho ch
• không ñánh giá ñúng giá thành
• không ñúng ti n ñ
• chi phí phát tri n / chi phí b o trì
V m t pháp lý
• h p ñ ng không r ràng, không ch t ch
Nhân l c
• ñào t o
• giao ti p
Thi u tiêu chu n ñánh giá s n ph m
Thi u quy trình qu n lý
6
3
Kh ng ho ng ph n m m
ði u tra c a General Acounting Office
(1982) trên nhi u s án v i t ng v n ñ u tư
$68.000.000
Không giao s n ph m: 29%
Không ñư c s d ng: 47%
B cu c: 19%
ðư c s d ng sau khi ñã ch nh s a: 3%
T t: 2%
7
Kh ng ho ng ph n m m
8
4
Công ngh ph n m m
Khái ni m
Công ngh ph n m m
nghiên c u và phát tri n các phương pháp,
kĩ thu t và công c nh m xây d ng các
ph n m m m t cách kinh t , có ñ tin c y
cao và ho t ñ ng hi u qu
thi t k , xây d ng, và b o trì các ph n m m
ph c t p, b n v ng và ch t lư ng
9
Công ngh ph n m m
M c ñích
M c ñích
áp d ng th c t
•
•
•
•
các ki n th c khoa h c,
các nguyên t c kinh t ,
các nguyên t c qu n lí,
các k thu t và công c thích h p
ñ s n xu t và b o trì các ph n m m nh m b o ñ m
4 yêu c u (FQCD):
• ph n m m t o ra ph i ñáp ng ñư c yêu c u ngư i s
d ng
• ph n m m ph i ñ t ñư c các tiêu chu n v ch t lư ng
• giá thành ph i n m trong gi i h n ñ t ra
• ti n ñ xây d ng ph n m m ph i ñ m b o
10
5
Công ngh ph n m m
Nguyên t c
Các nguyên t c cơ b n
Ch t ch (rigor and formality)
Chia nh (separation of concerns)
Mô-ñun hóa (modularity)
Tr u tư ng (abstraction)
Phòng ng a s thay ñ i (anticipation of
change)
T ng quát hóa (generality)
Gi i quy t t ng bư c (incrementality)
11
Công ngh ph n m m
Nguyên t c
Ch t ch (rigor and formality)
s d ng mô hình lý thuy t và toán h c
áp d ng cho t t c các bư c, t t c các s n
ph m
Ví d
• “ch n z là giá tr l n nh t c a x và y”
• z = max(x, y)
12
6
Công ngh ph n m m
Nguyên t c
Chia nh (separation of concerns)
Làm ch ñ ph c t p
• ch t p trung m t lĩnh v c cùng m t lúc
Chia v n ñ thành các ph n nh hơn
• Gi i quy t m t ph n nh s ñơn gi n hơn
• “chia ñ tr ” (divide and conquer)
Có th chia nh theo
• th i gian: l p k ho ch
• khái ni m: giao di n / thu t toán
• x lý: chia các x lý con
13
Công ngh ph n m m
Nguyên t c
Mô-ñun hóa (modularity)
Chia nh ñ ph c t p
• d hi u
• d qu n lý các h th ng ph c t p
Quan h m t thi t v i nguyên t c “chia nh ”
Các phương pháp mô-ñun hóa
• chi n lư c t trên xu ng (top-down)
• chi n lư c t dư i lên (bottom-up)
Ch t lư ng c a mô-ñun hóa
• liên k t l ng l o (low coupling)
• k t c cao (high cohesion)
14
7
Công ngh ph n m m
Nguyên t c
Tr u tư ng (abstraction)
Lo i b nh ng gì không quan tr ng
Ch xem xét các y u t quan tr ng
S d ng các mô hình
• mô hình cho ngư i s d ng
• mô hình cho ngư i phát tri n
Ví d
• ngôn ng l p trình / c u trúc ph n c ng
• xây d ng tài li u
• ñ c t b i ñi u ki n trư c và sau
15
Công ngh ph n m m
Nguyên t c
Phòng ng a s thay ñ i (anticipation of
change)
ph n m m là s n ph m thư ng xuyên ph i
thay ñ i
d báo các y u t có th thay ñ i
•
nh hư ng có th
các thay ñ i thư ng g p
• trong ñ c t yêu c u
• trong ng c nh s d ng
• kh năng v công ngh
16
8
Công ngh ph n m m
Nguyên t c
T ng quát hóa (generality)
xem xét v n ñ trong ng c nh t ng quát
gi i quy t v n ñ l n hơn
m c ñích
• tái s d ng d dàng
• có th s d ng các công c có s n
• s d ng design patterns
• chi phí có th tăng cao
17
Công ngh ph n m m
Nguyên t c
Gi i quy t t ng bư c (incrementality)
Nguyên t c
•
•
•
•
xác ñ nh m t ph n (t p con)
phát tri n
ñánh giá
b tñ ul i
Áp d ng cho
• phát tri n m t s n ph m
• mô ñ c t / m t ki n trúc / ...
• mô hình phát tri n
• mô hình l p
18
9
Ch t lư ng ph n m m
Tính ñúng ñ n (correctness)
th c hi n ñúng các ñ c t v ch c năng
(functional specification)
Tính tin c y (reliability)
ñáp ng ñư c nh ng yêu c u ñ t ra
Tính b n v ng (robustness)
ho t ñ ng t t trong nh ng ñi u ki n s d ng
khác nhau
19
Ch t lư ng ph n m m
Tính hi u qu (efficiency)
s d ng hi u qu các ngu n tài nguyên (b
nh , CPU, ...)
Tính thân thi n (user friendlyness)
d s d ng
Tính d ki m tra (verifiability)
d ki m tra ch t lư ng
20
10
Ch t lư ng ph n m m
Tính d b o trì (maintainability)
d xác ñ nh và s a l i
d t o ra nh ng phiên b n m i khi có s m
r ng
Tính tái s d ng (reusability)
d tái s d ng trong nh ng ph n m m m i
Tính kh chuy n (portability)
d s d ng trong các môi trư ng m i
21
Ch t lư ng ph n m m
Tính d hi u (understandability)
d hi u ñ i v i ngư i s d ng cũng như ñ i
v i ngư i phát tri n
Tính h p tác (interoperability)
d h p tác v i các ph n m m khác
S n xu t hi u qu (productivity)
ti n trình s n xu t ph n m m ph i hi u qu
22
11
Ch t lư ng ph n m m
Kh năng giao s n ph m ñúng h n
(timeliness)
giao s n ph m theo t ng gói
Tính trong su t (visibility)
ñ i v i ngư i phát tri n/ngư i qu n lý
• hi u r ti n ñ phát tri n
• hi u r nh hư ng c a các quy t ñ nh
ñ i v i khách hàng
• hi u r ti n ñ phát tri n
• hi u r nh hư ng c a các quy t ñ nh
23
Ch t lư ng ph n m m
S th a hi p gi a các tiêu chu n ch t
lư ng
tính thân thi n / tính b n v ng
tính kh chuy n / tính hi u qu
24
12
Phân lo i ph n m m
Các h th ng thông tin (Information Systems)
qu n lý thông tin
cơ s d li u + giao tác
Các h th ng th i gian th c (Real-Time
System)
các h th ng khi ho t ñ ng c n ph i tr l i
các s ki n v i m t th i gian ñư c quy ñ nh
nghiêm ng t
25
Phân lo i ph n m m
Các h th ng phân tán (Distributed Systems)
m ng máy tính
phân tán d li u
phân tán x lí
Các h th ng nhúng (Emmbedded Systems)
giao ti p v i các h th ng/m ch ñi n t
26
13
Mô hình phát tri n
(2)
Nguy n Thanh Bình
Khoa Công ngh Thông tin
Trư ng ð i h c Bách khoa
ð i h c ðà N ng
N i dung
Các ho t ñ ng phát tri n ph n m m
Các mô hình phát tri n ph n m m
2
1
Các ho t ñ ng phát tri n
ph n m m
Phân tích tính kh thi
Phân tích và ñ c t yêu c u
Thi t k
Mã hóa
Ki m th
B o trì
3
Các ho t ñ ng phát tri n
ph n m m
Phân tích tính kh thi
xác ñ nh v n ñ c n gi i quy t,
xem xét các gi i pháp và kĩ thu t khác nhau
• thu n l i
• b tl i
ñánh giá v th i gian, giá thành, ngu n tài
nguyên c n thi t
S n ph m: tài li u phân tích
4
2
Các ho t ñ ng phát tri n
ph n m m
Phân tích và ñ c t yêu c u (1)
xác ñ nh nhu c u c a khách hàng/ngư i s
d ng
• xác ñ nh bài toán, ch không ph i là gi i pháp
khó khăn
• khách hàng không bi t r cái h c n
• khách hàng không trình bày r cái h mu n
• các thay ñ i
S n ph m: tài li u ñ c t yêu c u
5
Các ho t ñ ng phát tri n
ph n m m
Phân tích và ñ c t yêu c u (2)
các bư c
•
•
•
•
kh o sát, t ng h p yêu c u
phân tích yêu c u
ñ c t yêu c u
h p th c hóa yêu c u
6
3
Các ho t ñ ng phát tri n
ph n m m
Phân tích và ñ c t yêu c u (3)
T ng h p và
phân tích yêu c u
ð c t yêu c u
H p th c hóa
yêu c u
Mô hình h th ng
Yêu c u h th ng
c a ngư i s d ng
Tài li u ñ c t
yêu c u
7
Các ho t ñ ng phát tri n
ph n m m
Thi t k (1)
chuy n t tài li u ñ c t yêu c u thành c u trúc lô-gíc có
th cài ñ t ñư c
gi i pháp cho v n ñ ñã ñư c ñ c t
thi t k ki n trúc
• các moñun và giao di n c a các mô-ñun
thi t k giao di n
thi t k các mô-ñun
• c u trúc d li u
• thu t toán
S n ph m: tài li u thi t k
8
4
- Xem thêm -