PHÂN TÍCH THI T K
HƯ NG ð I TƯ NG
CH
ð
Ti n trình phát tri n ph n m m theo hư ng đ i tư ng
1. Gi i thi u Ngơn ng mơ hình hóa th ng nh t UML
3. Mơ hình hóa nghi p v
4. Mơ hình hóa trư ng h p s d ng
5. Mơ hình hóa tương tác đ i tư ng
6. Bi u đ l p và gói
7. Bi u đ chuy n tr ng thái và bi u đ ho t đ ng
8. Bi u đ ki n trúc v t lý và phát sinh mã trình
9. Mơ hình hóa d li u
10. Bài h c th c nghi m
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 2/59
Tài li u tham kh o chính
1. ð ng Văn ð c, Phân tích thi t k hư ng đ i tư ng b ng
UML, Nhà xu t b n Giáo d c, 287 trang. 2002.
2. Zhiming Liu, Object-Oriented Software Development with
UML, UNU/IIST, 169 pp, 2002.
3. Ph n m m: Rational Rose Enterprise Edition 2002, IBM
Rational Software. 2002.
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 3/59
Bài 1
Ti n trình phát tri
ph n m m theo hư ng ñ
n
i tư ng
L ch s phương pháp hư ng ñ i tư ng
n
Kh ng ho ng ph n m m
n
n
NATO Software Engineering Conference, Germany, 1968
Th ng kê c a chính ph M v các d án SW c a B qu c phòng, 1970.
Project value $M
D án ph n m m c a US defence
(E. Balagurusamy)
3.5
3
2.5
2
1.5
1
0.5
0
Paid for but Delivered but Abandoned Used after
not received
not used or reworked change
Used as
delivered
Projects
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 5/59
K ngh ph n m m
n
n
Khái ni m k ngh ph n m m (software engineering) xu t
hi n vào cu i 1960 – khi b t đ u có máy tính th h 3
Các đ c tính ch y u c a h th ng ph n m m hi n nay
n
Nó mơ hình hóa các ph n c a th gi i th c
n
R t l n và ph c t p
n
Nó là tr u tư ng
n
Ph i có tính đ c l p cao
n
Ph i d b o trì:
n
n
khi th gi i th c thay đ i, ph n m m ph i ñáp ng các yêu c u thay
ñ i
Ph i thân thi n v i ngư i s d ng
n
UI là ph n r t quan tr ng c a h th ng ph n m m
Phân tích thi t k hư ng đ i tư ng
Bài 1 - 6/59
K ngh ph n m m
n
Phát tri n ph n m m b kh ng ho ng vì khơng có phương pháp ñ t t
n
n
n
n
n
Th c t : Giá ph n c ng gi m nhanh, giá ph n m m tăng cao
ð đáp ng địi h i c a ph n m m c n có
n
n
n
K thu t áp d ng cho các h th ng nh trư c ñây không phù h p cho các
h th ng l n
Các d án l n thư ng b kéo dài hàng năm do v y làm tăng kinh phí
Ph n m m khơng tin c y, khó b o hành
Lý thuy t, k thu t, phương pháp, công c m i đ đi u khi n ti n trình
phát tri n h th ng ph n m m
K ngh ph n m m: Liên quan t i lý thuy t, phương pháp và cơng c
c n đ phát tri n ph n m m
M c tiêu: S n xu t ph n m m ñ c l p, ñúng h n, phù h p kinh phí và
đáp ng m i yêu c u ngư i s d ng
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 7/59
S n ph m ph n m m
n
K ngh ph n m m ñ s n xu t
n
n
H th ng ph n m m
Các tài li u
n
n
n
Thi t k h th ng
Tài li u s d ng: Cài ñ t? và S d ng ph n m m?
Các ñ c tính cơ b n c a ph n m m
n
Có th s d ng đư c
n
n
Tính d b o hành
n
n
D dàng m r ng ñ ñáp ng các yêu c u thay ñ i (ph n m m m m d o)
Tính đ c l p
n
n
n
C n có UI phù h p, tài li u rõ ràng
Các tính ch t cơ b n như tin c y, an tồn
Khơng gây tác h i v v t lý, kinh t ngay c khi h th ng h ng
Tính hi u qu
n
Khơng tiêu t n quá nhi u tài nguyên h th ng như b nh , th i gian CPU
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 8/59
S n ph m ph n m m
n
ð th a mãn đ ng th i m i tính ch t c a s n ph m ph n
m m như nói trên là r t khó khăn
n
n
Thí d gi a giá c v i tính năng
ð xây d ng h th ng ph n m m t t ta c n
n
Xác đ nh đúng đ n ti n trình phát tri n ph n m m
n
n
n
n
Các pha c a ho t ñ ng
S n ph m c a m i pha
Phương pháp và k thu t áp d ng trong t ng pha và mơ hình hóa
s n ph m c a chúng
Công c phát sinh ra s n ph m
S n ph m ph n m m ñư c xem như mơ hình c a th gi i th c.
Nó ph i đư c duy trì đ ln ln ph n ánh chính xác s thay đ i
trong th gi i th c
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 9/59
Ti n trình phát tri n ph n m m
n
n
n
n
M i k ngh (engineering) ñ u ñ c p ñ n s n xu t s n ph m theo
ti n trình
T ng quát thì ti n trình (process) xác ñ nh ai (Who) làm gì (What) và
làm khi nào (When) và làm như th nào (How) ñ ñ t t i m c đích
mong mu n.
Ti n trình phát tri n ph n m m (Software Development Process SDP) là ti n trình xây d ng s n ph m ph m m m hay nâng c p ph n
m m đang có.
Thí d ti n trình phát tri n ph n m m:
n
Rational Unified Process - RUP
New or changed
requirements
Software Development
Software Development
Process
Process
Phân tích thi t k hư ng đ i tư ng
New or changed
system
Bài 1 - 10/59
Ti n trình phát tri n ph n m m
n
n
Ti n trình phát tri n ph n m m mơ t t p các ho t
ñ ng c n thi t ñ chuy n ñ i t yêu c u ngư i s d ng
sang h th ng ph n m m
Yêu c u ngư i s d ng xác ñ nh m c tiêu phát tri n
ph n m m
n
n
Khách hàng và k sư tin h c xác ñ nh các d ch v mà h th ng
c n có (yêu c u ch c năng c a h th ng)
Yêu c u ch c năng mô t cái mà h th ng ph i làm
(What) không mô t h th ng làm như th nào (How)
n
Khách hàng cũng có các ràng bu c phi ch c năng: th i gian
đáp ng, chu n ngơn ng ...
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 11/59
Ti n trình phát tri n ph n m m
n
Thu th p và phân tích u c u là cơng vi c r t khó khăn
n
n
n
n
n
Yêu c u c a khách hàng thư ng đư c mơ t b ng khái ni m,
ñ i tư ng và các thu t ng khó hi u v i k sư tin h c
Các yêu c u c a khách hàng thư ng thi u c u trúc, thi u chính
xác, dư th a, ph ng ch ng, thi u nh t quán
Các yêu c u thi u tính kh thi
Do v y
n
n
Các u c u thư ng là khơng hồn ch nh
B t kỳ ti n trình phát tri n nào đ u b t ñ u t thu th p và phân
tích u c u
Các ho t đ ng trong SDP và các k t qu liên quan hình
thành pha đ u tiên c a ti n trình và g i nó là Phân tích
u c u
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 12/59
Thu th p và phân tích yêu c u
n
M c tiêu
n
n
Tài li u ñ c t yêu c u ñư c s d ng như
n
n
n
n
Hình thành tài li u đ c t yêu c u (Requirement Specification)
Cam k t gi a khách hàng và t ch c phát tri n h th ng v cái mà h
th ng có th làm (và cái mà h th ng không th làm)
Cơ s ñ ñ i ngũ phát tri n phát tri n h th ng
Mơ hình tương đ i đ y ñ v cái h th ng ñòi h i
Ti n trình phân tích u c u bao g m các ho t đ ng l p
Developer
Developer
Understanding
Understanding
Client
Client
Domain Expert
Domain Expert
User
User
Requirement
Requirement
Capture
Capture
Feasibility
Feasibility
Study
Study
Validation
Validation
Classification
Classification
Specification document
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 13/59
Các ho t đ ng c a phân tích u c u
n
Hi u lĩnh v c v n ñ
n
n
n
n
Thu th p u c u
n
n
n
n
n
n
Phân tích viên trình bày hi u bi t v lĩnh v c v n ñ
Khám phá các quan ni m
Suy ra các yêu c u khách hàng
Phân tích viên c n có cách thu th p nhu c u khách hàng sao cho h có
th cùng tham gia vào d án
Phân tích viên, khách hàng, chuyên gia lĩnh v c ng d ng và ngư i s
d ng h th ng cùng phát hi n và thu th p yêu c u
K năng tr u tư ng là r t quan tr ng ñ thu th p nh ng cái chính, b
qua cái khơng c n thi t
Phân l p
ðánh giá
Nghiên c u kh thi
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 14/59
Các ho t đ ng c a phân tích u c u
n
n
n
Hi u lĩnh v c v n ñ
Thu th p yêu c u
Phân l p
n
n
n
ðánh giá
n
n
n
ð u vào c a ho t ñ ng này là t p h p phi c u trúc c a các yêu c u
thu th p ñư c trong pha trư c ñ t ch c chúng thành các nhóm dính
li n nhau
G n m c ưu tiên cho các yêu c u theo t m quan tr ng c a chúng ñ i
v i khách hàng và ngư i s d ng
Ki m tra xem các yêu c u có nh t quán và ñ y ñ
Gi i quy t các mâu thu n gi a các yêu c u
Nghiên c u kh thi
n
n
D báo kh năng th a mãn s d ng ph n c ng, ph n m m c a các
yêu c u ñã nh n ra
Quy t ñ nh các bư c ti p theo n u n u h th ng đ xu t có hi u qu
Phân tích thi t k hư ng đ i tư ng
Bài 1 - 15/59
Phân tích yêu c u
n
Khi nào k t thúc phân tích u c u?
n
n
Khơng có quy lu t nh t ñ nh
ð ti n t i bư c phát tri n ph n m m ti p theo hãy tr l i các câu h i
sau:
n
n
Khách hàng, ngư i s d ng cu i cùng và ngư i phát tri n đã hi u tr n v n
h th ng?
Mơ hình c a h th ng địi h i xây d ng đã đư c hình thành đ y đ ?
n
n
n
n
n
có đ y đ các ch c năng (d ch v )
có đ y đ đ u vào- đ u ra
c n lo i d li u nào
Chú ý: Chưa mơ t quy t đ nh cài đ t nào mơ hình này
ð c t u c u và mơ hình c a h th ng t i m c này c n ph i ñư c
hi u ch nh, b sung khi c n thi t trong các pha phát tri n ti p theo.
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 16/59
Phân tích yêu c u
n
ð c t yêu c u
n
n
n
là thơng báo chính th c cái địi h i h th ng ph i đư c phát
tri n
Nó khơng ph i là tài li u thi t k
Mơ t đ c t u c u
n
n
Ngơn ng đ c t
Ký pháp ñ h a
Pha thu th p và phân tích yêu c u r t quan tr ng.
Pha thu th p và phân tích yêu c u r t quan tr ng.
N u không phát hi n ra ll ii t ii pha này thì r t khó
N u khơng phát hi n ra
t pha này thì r t khó
và t n kém đ phát hi n ra nó pha ti p theo.
và t n kém ñ phát hi n ra nó pha ti p theo.
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 17/59
Thi t k h th ng
n
Sau khi có đ c t yêu c u, hai ti n trình thi t k h th ng ti p theo
n
Thi t k ki n trúc (logíc)
n
n
n
Thi t k chi ti t (v t lý)
n
n
n
Phân ho ch các yêu c u thành các thành ph n
Tài li u thi t k ki n trúc mô t m i thành ph n c n làm gì và chúng tương tác
v i nhau như th nào ñ hình thành các ch c năng h th ng
Thi t k t ng thành ph n
Tài li u thi t k chi ti t mô t m i thành ph n và c h th ng ph i làm cái nó
c n làm như th nào
Các ho t đ ng c a thi t k
H th ng c t lõi
là c th
ph thu c cài đ t
Mơ hình h th ng
ð c t yêu c u
Thi tt k logíc:
Thi k logíc:
Phân ho ch
Phân ho ch
Thành ph n làm cái gì?
Thành ph n làm cái gì?
Quan h các thành ph n
Quan h các thành ph n
Tr u tư ng
ð c l p cài ñ t
Ki n trúc t ng th
Thi tt k chi ti t:
Thi k chi ti t:
Làm m n
Làm m n
Thành ph n làm như th nào?
Thành ph n làm như th nào?
Thi tt k các quan h
Thi k các quan h
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 18/59
Thi t k h th ng
n
Tài li u c a pha thi t k ki n trúc là mơ hình ki n trúc
n
n
n
n
Thi t k chi ti t th c hi n nhi u bư c làm m n mô hình
ki n trúc
Mơ hình thi t k chi ti t mô t :
n
n
n
ð c t thành ph n, mô t cái mà thành ph n ph i làm b ng
cách ch ra giao di n gi a các thành ph n
Mơ hình h th ng đây ch y u mơ t “what”, ít mơ t “how”
thi t k ch c năng c a m i thành ph n
thi t k giao di n c a m i thành ph n
Mô hình h th ng t i m c này đư c xem như h th ng
c t lõi
n
n
n
nó là c th
ph thu c cài đ t
xác đ nh “How”
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 19/59
L p trình và ki m th mun
n
n
M i thành ph n trong pha thi t k ñư c hi n
th c thành m t mun chương trình
Ki m ch ng hay ki m th m i mun chương
trình theo đ c t có t pha thi t k
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 20/59
Tích h p và ki m th h th ng
n
n
n
T h p các mun chương trình thành h th ng
Ki m th h th ng chương trình đ đ m b o ñáp
ng ñ y ñ yêu c u
Khi ngư i phát tri n th a mãn v i s n ph m
n
n
khách hàng ki m th h th ng
Pha này k t thúc khi khách hàng ch p nh n s n
ph m
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 21/59
B o trì h th ng
n
n
n
Pha này b t đ u khi h th ng ñư c cài ñ t s d ng
th c t , sau khi ñã c p phát s n ph m cho khách hàng
B o trì bao g m m i thay đ i s n ph m ñ khách hàng
ñ ng ý r ng h ñã th a mãn v i s n ph m.
B o trì bao g m
n
s a ph n m m
n
n
nâng c p ph n m m
n
n
n
lo i b các l i mà không phát hi n trong các pha trư c đó
Hi u năng: B sung ch c năng, tăng t c đ th c hi n chương
trình
Thích nghi: Các thay ñ i cho phù h p v i mơi trư ng ph n m m
ho t đ ng thay đ i, thí d u c u m i c a chính ph
Th i gian trung bình:
n
s a l i 17,5%, hi u năng 60%, thích nghi 18%.
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 22/59
Mơ hình thác nư c
n
n
Các ho t đ ng phát tri n ph n m m có th
bi u di n b ng mơ hình thác nư c
Vịng đ i (life cycle) ph n m m
n
Ti n trình phát tri n s n ph m ph n m m
Phân tích
Phân tích
yêu c u
yêu c u
Thi tt k
Thi k
Vi tt chương trình
Vi chương trình
Ki m th mun
Ki m th mun
Tích h p và ki m
Tích h p và ki m
th h th ng
th h th ng
Chuy n giao
Chuy n giao
và b o trì
và b o trì
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 23/59
Mơ hình thác nư c
n
Nh n xét mơ hình thác nư c
n
Khó phân bi t rõ ràng gi i h n các pha, nhi u pha g i lên
nhau và cung c p thơng tin cho nhau
n
n
n
n
n
Ti n trình phát tri n khơng ph i là mơ hình tuy n tính mà là
trình t l p các ho t đ ng phát tri n
Ti n trình phát tri n bao g m các l p thư ng xuyên
n
n
n
Khi thi t k m i nh n ra các yêu c u m i
Khi vi t mã trình nh n th y m t vài thi t k có v n đ ...
Khi b o trì hi u năng, có th th c hi n l i m t vài hay toàn b
các bư c trư c đó
Khó nh n ra các ñi m m u ch t ñ l p k ho ch và báo cáo k t
qu
Do v y, sau m t vài l n l p thư ng ph i ñưa ra các v t ph m như
ñ c t ... ñ ti p t c các bư c sau.
ðơi khi r t khó phân ho ch các ho t ñ ng phát tri n trong d
án thành các bư c trong mơ hình.
Phân tích thi t k hư ng ñ i tư ng
Bài 1 - 24/59
Mơ hình thác nư c
Cost
8%
7%
Requirement
12%
Design
Implement
Integrate
6%
Maintain
67%
Effort to Correct
Source of Error
%
60
%
56
100
50
40
30
20
10
27
7
0
10
Incomplete requirements
Design
Coding
Others
82
80
60
40
20
13
1
4
0
Phân tích thi t k hư ng đ i tư ng
Bài 1 - 25/59