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
ehamingway@gmail.com 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.

ehamingway@gmail.com

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.

D án ph n m m c a US defence
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

(E. Balagurusamy)

Project value $M

Projects
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 5/59

ehamingway@gmail.com

K ngh ph n m m
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 n n n

n

Nó mô hình hóa các ph n c a th gi i th c R t l n và ph c t p Nó là tr u tư ng Ph i có tính ñ c l p cao Ph i d b o trì:
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 UI là ph n r t quan tr ng c a h th ng ph n m m

n

Ph i thân thi n v i ngư i s d ng
n

ehamingway@gmail.com

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

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

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

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

n

n

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

ehamingway@gmail.com

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

Thi t k h th ng Tài li u s d ng: Cài ñ t? và S d ng ph n m m?

n

Các ñ c tính cơ b n c a ph n m m
n

Có th s d ng ñư c
n

C n có UI phù h p, tài li u rõ ràng D dàng m r ng ñ ñáp ng các yêu c u thay ñ i (ph n m m m m d o) Các tính ch t cơ b n như tin c y, an toàn Không gây tác h i v v t lý, kinh t ngay c khi h th ng h ng Không tiêu t n quá nhi u tài nguyên h th ng như b nh , th i gian CPU

n

Tính d b o hành
n

n

Tính ñ c l p
n n

n

Tính hi u qu
n

ehamingway@gmail.com

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

Thí d gi a giá c v i tính năng Xác ñ nh ñúng ñ n ti n trình phát tri n ph n m m
n n

n

ð xây d ng h th ng ph n m m t t ta c n
n

Các pha c a ho t ñ ng S n ph m c a m i pha

n

n

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ì ñ luôn luôn ph n ánh chính xác s thay ñ i trong th gi i th c

ehamingway@gmail.com

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

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

n

n

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

ehamingway@gmail.com

Bài 1 - 10/59

Ti n trình phát tri n ph n m m
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)

n

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

ehamingway@gmail.com

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 yêu c u là công vi c r t khó khăn
n n

Các yêu c u thư ng là không hoàn ch nh 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 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 yêu c u

n

n

n

Do v y
n

n

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 yêu c u
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 12/59

ehamingway@gmail.com

Thu th p và phân tích yêu c u
n

M c tiêu
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

n

Tài li u ñ c t yêu c u ñư c s d ng như
n

n n

n

Ti n trình phân tích yêu c u bao g m các ho t ñ ng l p
Developer Developer Client Client Domain Expert Domain Expert User User Validation Validation Requirement Requirement Capture Capture Feasibility Feasibility Study Study Classification Classification

Understanding Understanding

Specification document
ehamingway@gmail.com 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 yêu c u
n

Hi u lĩnh v c v 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

n

Thu th p yêu c u
n

n

n

n n n

Phân l p ðánh giá Nghiên c u kh thi

ehamingway@gmail.com

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 yê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

ð 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 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

n

ðánh giá
n n

n

Nghiên c u kh thi
n

n

ehamingway@gmail.com

Phân tích yêu c u
n

Khi nào k t thúc phân tích yêu c u?
n

Không có quy lu t nh t ñ nh

n

ð 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

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

n n

Chú ý: Chưa mô t quy t ñ nh cài ñ t nào mô hình này ð c t yê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.

ehamingway@gmail.com

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

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 Ngôn ng ñ c t Ký pháp ñ h a

n

Mô t ñ c t yêu c u
n n

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.

ehamingway@gmail.com

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

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

n

Thi t k chi ti t (v t lý)
n n

n

Các ho t ñ ng c a thi t k
Mô hình h th ng ð c t yêu c u Tr u tư ng ð c l p cài ñ t Ki n trúc t ng th H th ng c t lõi là c th ph thu c cài ñ t

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
ehamingway@gmail.com

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
Bài 1 - 18/59

Phân tích thi t k hư ng ñ i tư ng

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

ð 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”

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

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

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

ehamingway@gmail.com

L p trình và ki m th moñun

n

n

M i thành ph n trong pha thi t k ñư c hi n th c thành m t moñun chương trình Ki m ch ng hay ki m th m i moñun chương trình theo ñ c t có t pha thi t k

ehamingway@gmail.com

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 moñun 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

khách hàng ki m th h th ng

n

Pha này k t thúc khi khách hàng ch p nh n s n ph m

ehamingway@gmail.com

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

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 yêu c u m i c a chính ph

n

nâng c p ph n m m
n

n

n

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

ehamingway@gmail.com

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 moñun Ki m th moñun 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ì

ehamingway@gmail.com

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

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 ñó

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

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.

n

ðô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

ehamingway@gmail.com

Mô hình thác nư c
Cost
8% 7% 12%
Requirement Design Implement Integrate

6% 67%

Maintain

Source of Error
% 60 50 40 30 20 10 0 27 7 10 Incomplete requirements Design Coding Others 56 % 100 80 60 40 20 0

Effort to Correct

82

13 1

4

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 25/59

Phát tri n ti n hóa
n

V n ñ c a mô hình thác nư c
n

n

M t vài d án phát tri n ph n m m r t khó phân ho ch thành các giai ño n khác nhau như phân tích yêu c u, thi t k ... ðôi khi r t khó khăn trong vi c hình thành ñ c t chi ti t yêu c u D a trên ý tư ng phát tri n mã trình kh i ñ u Thu th p ý ki n ngư i s d ng Làm m n d n thông qua nhi u phiên b n cho ñ n khi có h th ng hoàn ch nh Cho phép phát tri n ñ ng th i các ho t ñ ng phát tri n ph n m m

n

Ti n trình phát tri n ti n hóa (Evolutionary Development)
n n n

n

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 26/59

Phát tri n ti n hóa
n n

n

Ti n trình phát tri n b t ñ u t mô t outline h th ng Không phân chia tách bi t thành các ho t ñ ng ñ c t , phát tri n (thi t k , cài ñ t) và ñánh giá (th nghi m ho c/và ki m ch ng ho c/và làm prototyping) Th c hi n tương tranh v i ph n h i các ho t ñ ng phát tri n ph n m m

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 27/59

Phát tri n ti n hóa
n

Các k thu t s d ng trong phát tri n ti n hóa
n

L p trình thăm dò (Exploratory programming)
n

n n

Làm vi c cùng khách hàng ñ thăm dò các yêu c u c a h và dãu bày h th ng cu i cùng Phát tri n b t ñ u t nh ng ph n c a h th ng ñã hi u rõ ràng H th ng ti n hóa b ng b sung các ñ c trưng m i do khách hàng ñ xu t M c ñích là ñ hi u yêu c u khách hàng Prototype t p trung vào th c nghi m nh ng ph n yêu c u c a khách hàng mà chưa ñư c hi u rõ

n

Prototyping
n n

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 28/59

Phát tri n ti n hóa
n

V n ñ c a các ho t ñ ng phát tri n trong ti n trình này
n

Ti n trình không rõ ràng
n

R t khó hình thành tài li u ph n nh t ng phiên b n c a h th ng Thay ñ i liên t c kéo theo vi c phá h ng c u trúc h th ng V i h th ng l n: vi c thay ñ i phiên b n cu i cùng thư ng là khó khăn ho c không có th Yêu c u m i, ñòi h i m i ñòi h i ngư i phát tri n b t ñ u l i toàn b d án Prototyping thư ng xuyên r t t n kém

n

H th ng không có c u trúc t t
n

n

Không luôn luôn kh thi
n

n

n

n

Ti n hóa ph n m m có th là khó khăn và ñ t

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 29/59

Phát tri n ti n hóa
n

Khuy n cáo ng d ng mô hình phát tri n ti n hóa
n n

Phát tri n h th ng tương ñ i nh Phát tri n h th ng v i vòng ñ i ng n
n

Trong trư ng h p này v n ñ b o trì không quan tr ng

n

Phát tri n h th ng hay nh ng ph n c a h th ng mà chúng không th bi u di n trư c các ñ c t chi ti t
Các ý tư ng, nguyên t c và k thu t c a ti n trình phát Các ý tư ng, nguyên t c và k thu t c a ti n trình phát tri n ti n hóa luôn có ích và có th áp d ng trong các pha tri n ti n hóa luôn có ích và có th áp d ng trong các pha khác nhau c a ti n trình phát tri n r ng ll n hơn như hi u khác nhau c a ti n trình phát tri n r ng n hơn như hi u bi t và ñánh giá yêu c u trong mô hình thác nư c bi t và ñánh giá yêu c u trong mô hình thác nư c

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 30/59

Phát tri n ph n m m theo OO
Functionality Cost Capacity Availability Compatibility Fail safe Fault tolerance

Performance Technology churn

Throughput Resilience

The challenge over the next 20 years will not be speed or cost or performance; it will be a question of complexity.
Bill Raduchel, Chief Strategy Officer, Sun Microsystems

Our enemy is complexity, and it’s our goal to kill it.
Jan Baan
ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 1 - 31/59

Phát tri n ph n m m theo OO
Higher technical complexity
- Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance
An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns & risks

Lower management complexity
-

Commercial Embedded Compiler Automotive Software CASE Tool

Telecom Switch

Defense Weapon System National Air Traffic Control System

Large-Scale Organization/Entity Simulation

Small Scientific Small scale Simulation Informal IS Application Single stakeholder Distributed Objects “Products” (Order Entry) IS Application GUI/RDB (Order Entry)

Higher management complexity
Large scale Contractual Many stake holders “Projects”

Enterprise IS (Family of IS Applications)

Defense MIS System

Business Spreadsheet

Lower technical complexity
- Mostly 4GL, or component-based - Application reengineering - Interactive performance
ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng

[Grady Booch]

Bài 1 - 32/59

Tính ph c t p c h u c a ph n m m
n

Chúng ta v n ñang trong giai ño n “kh ng ho ng” ph n m m
n

Do tính ph c t p c h u c a ph n m m Xu t phát t s không hi u nhau gi a ngư i s d ng và ngư i phát tri n h th ng
n

n

Tính ph c t p c a lĩnh v c v n ñ
n

n

Ngư i s d ng thư ng g p khó khăn khi di n ñ t chính xác nhu c u dư i hình th c ngư i phát tri n có th hi u Ngư i s d ng có th ch có ý tư ng mơ h v cái h mu n có trong h th ng

n

n

Các yêu c u trái ngư c nhau: gi a yêu c u ch c năng và yêu c u phi ch c năng Thay ñ i yêu c u thư ng xuyên khi phát tri n h th ng

n n

Khó khăn trong qu n lý ti n trình phát tri n V n ñ xác ñ nh ñ c ñi m hành vi h th ng
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 33/59

ehamingway@gmail.com

Tính ph c t p c h u c a ph n m m
n n

Tính ph c t p c a lĩnh v c v n ñ Khó khăn trong qu n lý ti n trình phát tri n
n

Nhi m v cơ b n c a ñ i ngũ phát tri n ph n m m là
n

ch ra hình nh ñơn gi n ñ ngư i s d ng không b r i vì ñ ph c t p quá l n c a h th ng C n có ñ i ngũ phát tri n giao ti p ph c t p, ñi u ph i ph c t p hơn

n

H th ng l n và ph c t p ñòi h i vi t hàng nghìn, hàng tri u dòng l nh
n

n

Nhi u ngư i phát tri n
n

n

V n ñ xác ñ nh ñ c ñi m hành vi h th ng
n

Trong h th ng ng d ng l n
n

có ñ n hàng nghìn bi n và nhi u lu ng ñi u khi n

n

Hành vi h th ng là nó thay ñ i th nào t tr ng thái này sang tr ng thái khác
n n n

T ng s tr ng thái r t l n M i s ki n bên ngoài có th làm thay ñ i tr ng thái h th ng H th ng ph n ng v i s ki n ngoài m t cách không xác ñ nh trư c
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 34/59

ehamingway@gmail.com

Làm ch h th ng ph c t p
n

n

Nhi m v cơ b n c a k ngh ph n m m là làm ch ñ ph c t p trong ti n trình phát tri n ph n m m Thí d h th ng ph c t p
n

Máy vi tính
n n n

Máy tính PC tương ñ i ph c t p Có th phân rã thành các ñơn v Các ñơn v ñư c phân rã thành các linh ki n... Máy PC ho t ñ ng ñư c nh các ho t ñ ng c ng tác c a các ñơn v thành ph n Các t ng phân c p bi u di n m c ñ tr u tư ng khác nhau, m i t ng hình thành trên cơ s t ng khác T i m i t ng tr u tư ng ta tìm ra các b ph n h p tác ñ hình thành các d ch v cho t ng cao hơn T ng l a ch n ñ nghiên c u ph thu c nhu c u hi n t i

n

B n ch t phân c p c a h th ng ph c t p
n

n

n

n

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 35/59

Làm ch h th ng ph c t p
n

Thí d h th ng ph c t p
n

T ch c xã h i
n

n

Là nh ng nhóm ngư i liên k t v i nhau ñ th c hi n nhi m v mà t ng nhóm riêng l không th hoàn thành C u trúc c a t ch c l n là phân c p, thí d công ty ña qu c gia
Multinational corporations Multinational corporations

Company 11 Company

Company 22 Company

Company 33 Company

...

Division 11 Division

Division 22 Division

Division 33 Division

...

Branch 11 Branch
ehamingway@gmail.com

Branch 22 Branch

Branch 33 Branch

...
Bài 1 - 36/59

Phân tích thi t k hư ng ñ i tư ng

Năm tính ch t c a h th ng ph c t p
n

Tính ph c t p có hình th c phân c p
n

do v y, h th ng ph c t p ñư c hình thành t các phân h quan h v i nhau, chúng l i có các phân h nh hơn cho ñ n m c th p nh t là các thành ph n cơ s . ph thu c vào ngư i quan sát h th ng. Các thành ph n trong h th ng không hoàn toàn ñ c l p Hi u bi t liên k t gi a các thành ph n c a h th ng là quan tr ng.

n

Vi c ch n thành ph n nào làm cơ s trong h th ng là tương ñ i tùy ý
n

n

K t n i bên trong thành ph n m nh hơn k t n i gi a các thành ph n
n n

n

Thông thư ng các h th ng phân c p hình thành t vài lo i phân h khác nhau, theo các t h p và s p x p khác nhau
n

Các h th ng ph c t p có m u chung trong vi c xây d ng và phát tri n. H th ng ph c t p luôn ti n hóa theo th i gian. Các ñ i tư ng ñư c xem là h th ng ph c t p s tr thành các ñ i tư ng cơ s ñ hình thành h th ng ph c t p.
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 37/59

n

M i h th ng ph c t p ñư c ti n hóa t h th ng ñơn gi n
n

ehamingway@gmail.com

Phương pháp hư ng ch c năng
n

Cho ñ n gi a 1990: Ph n l n các k sư ph n m m s d ng phương pháp thi t k ch c năng top-down (thi t k ki n trúc)
n n

n

B nh hư ng b i các ngôn ng l p trình ALGOL, Pascal, C Các hàm c a h th ng ph n m m ñư c xem như tiêu chí cơ s khi phân dã Tách ch c năng kh i d li u
n n

Ch c năng có hành vi D li u ch a thông tin b các ch c năng tác ñ ng

n

Phân tách top-down chia h th ng thành các hàm ñ chuy n sang mã trình, d li u ñư c g i gi a chúng.
Main function Main function

F1 F1

F2 F2

FF1.1 1.1
ehamingway@gmail.com

FF1.2 1.2

FF2.1 2.1

FF2.2 2.2
Bài 1 - 38/59

Phân tích thi t k hư ng ñ i tư ng

Phương pháp hư ng ch c năng
n

Ti n trình phát tri n t p trung vào thông tin mà h th ng qu n lý
n n n n

Ngư i phát tri n h th ng h i ngư i s d ng c n thông tin gì Thi t k CSDL ñ lưu tr thông tin Xây d ng màn hình nh p li u Hi n th báo cáo

n

n

Ch t p trung vào thông tin, ít quan tâm ñ n cái gì th c hi n v i thông tin hay hành vi h th ng Ti m c n này g i là ti m c n hư ng d li u
n n n

ðã ñư c áp d ng nhi u năm và t o ra hàng ngàn h th ng Thu n ti n cho thi t k CSDL B t ti n cho xây d ng các h th ng tác nghi p
n

yêu c u h th ng thay ñ i theo th i gian
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 39/59

ehamingway@gmail.com

Phương pháp hư ng ch c năng
n

Công ngh hư ng ch c năng có các h n ch sau
n

S n ph m hình thành t gi i pháp này khó b o trì
n n n

M i ch c năng ñ u chia s kh i d li u l n Các ch c năng ph i hi u rõ d li u ñư c lưu tr th nào Khi thay ñ i c u trúc d li u kéo theo thay ñ i m i hàm liên quan Thay ñ i yêu c u kéo theo thay ñ i các ch c năng R t khó b o toàn ki n trúc thi t k ban ñ u khi h th ng ti n hóa

n

Ti n trình phát tri n không n ñ nh
n n

n

Ti m c n này không h tr l p trình b ng ngôn ng hư ng ñ i tư ng như C++, Java, Smalltalk, Eiffel.
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 40/59

ehamingway@gmail.com

Phương pháp hư ng ñ i tư ng
n

Chi n lư c phát tri n ph n m m hư ng ñ i tư ng là quan sát th gi i như t p các ñ i tư ng
n

Các ñ i tư ng tương tác và c ng tác v i nhau ñ hình thành hành vi m c cao ð i tư ng có th là
n n

n

Các tính ch t c a ñ i tư ng
n

th c th nhìn th y ñư c trong th gi i th c (trong pha phân tích yêu c u) bi u di n th c th h th ng (trong pha thi t k )

n

ð i tư ng có trách nhi m qu n lý tr ng thái c a mình, cung c p d ch v cho ñ i tư ng khác khi có yêu c u
n

do v y, d li u và hàm cùng gói trong ñ i tư ng các d ch v ñư c yêu c u và cung c p như th nào gi a các ñ i tư ng, không quan tâm ñ n thay ñ i tr ng thái bên trong ñ i tư ng Các ñ i tư ng thu c cùng l p ñ u có ñ c tính (thu c tính và thao tác) chung
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 41/59

n

Ch c năng h th ng:
n

n

Các ñ i tư ng ñư c phân thành class
n

ehamingway@gmail.com

Phương pháp hư ng ñ i tư ng
n n n

Ti m c n hư ng ñ i tư ng t p trung vào c thông tin và hành vi Cho kh năng xây d ng h th ng m m d o, “co dãn” Phương pháp này d a trên các nguyên t c sau
n n n

Tính gói K th a ða tr

Lake Model

Natural Model
ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 1 - 42/59

Ngôn ng l p trình
Algol Fortran Cobol PL/1 Simula Smalltalk-72 Smalltalk-74 Pascal C Smalltalk-76 Smalltalk-78 Loops LISP

1960 1970

Prolog

1980
ObjectPascal

Smalltalk-80 Ada Objective C C++ CLOS Eiffel

1990

Ada 9

ObjectCobol Java

(B. Oesterich)

Hư ng ñ i tư ng
ehamingway@gmail.com

Không hư ng ñ i tư ng
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 43/59

Thí d ti n trình l p và tăng d n
n

Ti n trình th ng nh t (Rational Unified Process - RUP)
n n

n n n n

n

Là Software Engineering process Là s n ph m ti n trình (process product) do Rational Software phát tri n và b o trì RUP nâng cao team productivity Các ho t ñ ng RUP t o l p và qu n lý models Là hư ng d n cách s d ng hi u qu UML ðư c nhi u công c h tr , chúng t ñ ng ph n l n ti n trình Là configurable process
n

n

Không m t ti n trình nào là phù h p cho m i công vi c phát tri n ph n m m. Phù h p v i các ñ i ngũ phát tri n nh và các t ch c phát tri n l n.

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 44/59

Các khái ni m cơ b n c a RUP
n

Phase, Iterations

When does architecture happen?

n

Process Workflows
n

Activity, steps

What does happen?

n

Artifacts
n n

models reports, documents

What is produced?

n

Worker: Architect

Who does it?

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 45/59

Worker-Activities-Artifact

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 46/59

Thí d lu ng công vi c

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 47/59

Các l p và lu ng công vi c
Phases Core Workflows
Requirements An iteration in the elaboration phase Analysis Inception Elaboration Construction Transition

Design

Implementation

Test
Preliminary Iteration(s) iter. #1 iter. #2 iter. #n iter. #n+1 iter. #n+2 iter. #m iter. #m+1

Ite ra tio n s
ehamingway@gmail.com Phân tích thi t k hư ng ñ i tư ng Bài 1 - 48/59

Các pha c a vòng ñ i
Inception Elaboration Construction Transition

time
n

Inception Elaboration Construction Transition

Define the scope of the project and develop business case Plan project, specify features, and baseline the architecture Build the product Transition the product to its users
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 49/59

n

n

n

ehamingway@gmail.com

Các pha và l p
Inception Elaboration Construction Transition

Prelim Iteration

...

Arch Iteration

...

Dev Iteration

Dev Iteration

...

Trans Iteration

...

Release

Release

Release

Release

Release

Release

Release

Release

M t vòng l p (iteration) là trình t các ho t ñ ng v i k ho ch xây d ng trư c và tiêu chí ñánh giá, cho k t qu là các phiên b n ch y ñư c.

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 50/59

Ti n trình l p
Inception Elaboration Construction Transition

Iteration 1

Iteration 2

Iteration 3

“Mini-Waterfall” Process
Iteration Planning Rqmts Capture Analysis & Design Implementation Test Prepare Release

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 51/59

Vòng ñ i c a l p: A Mini-Waterfall
Selected scenarios • Results of previous iterations • Up-to-date risk assessment • Controlled libraries of models, code, and tests

Iteration Planning Requirements Capture Analysis & Design Implementation Test Prepare Release

Release description Updated risk assessment Controlled libraries

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 52/59

Các ho t ñ ng c a l p
n

K ho ch l p
n

Trư c khi l p b t ñ u th c hi n, m c tiêu chính c a l p c n ñư c hình thành trên cơ s
n n

Các k t qu c a các l p trư c (n u có) C p nh t ñánh giá r i ro c a d án

n n

Xác ñ nh tiêu chí ñánh giá cho l p này Chu n b k ho ch chi ti t cho l p
n

Bao g m intermediate milestones ñ ñi u khi n ti n trình
Bao g m walkthroughs và reviews

n

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 53/59

Các ho t ñ ng c a vòng ñ i l p
n

Requirements Capture
n n

n

Select/define the use cases to be implemented in this iteration Update the object model to reflect additional domain classes and associations discovered Develop a test plan for the iteration Determine the classes to be developed or updated in this iteration Update the object model to reflect additional design classes and associations discovered Update the architecture document if needed Begin development of test procedures

n

Analysis & Design
n n

n n

n n n

Implementation Test Prepare the release description
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 54/59

ehamingway@gmail.com

Các ho t ñ ng c a vòng ñ i l p
n n n

Requirements Capture Analysis & Design Implementation
n n n n

Automatically generate code from the design model Manually generate code for operations Complete test procedures Conduct unit and integration tests Integrate and test the developed code with the rest of the system (previous releases) Capture and review test results Evaluate test results relative to the evaluation criteria Conduct an iteration assessment Synchronize code and design models Place products of the iteration in controlled libraries
Phân tích thi t k hư ng ñ i tư ng Bài 1 - 55/59

n

Test
n

n n n

n

Prepare the release description
n n

ehamingway@gmail.com

Ch n l a l p
n

How many iterations do I need?
n

On projects taking 18 months or less, 3 to 6 iterations are typical Usually Iteration length may vary by phase. For example, elaboration iterations may be shorter than construction iterations

n

Are all iterations on a project the same length?
n n

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 56/59

Ích l i c a ti m c n l p

n

Compared to the traditional waterfall process, the iterative process has the following advantages:
n n n n n

Risks are mitigated earlier Change is more manageable Higher level of reuse The project team can learn along the way Better overall quality

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 57/59

Bi u ñ r i ro c a ti n trình l p

Inception

Waterfall
Elaboration

Risk

Construction

Transition
Preliminary Architect. Architect. Devel. Devel. Devel. Transition Transition PostIteration Iteration deployment Iteration Iteration Iteration Iteration Iteration Iteration

Time

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 58/59

Tóm t t
n

Các v n ñ ñã nghiên c u
n n n

n n n

n

Khái quát v ti n trình phát tri n ph n m m Các ho t ñ ng chính trong phát tri n ph n m m Mô hình thác nư c c a ti n trình phát tri n ph n m m Phát tri n ti n hóa Tính ph c t p c h u c a ph n m m Phát tri n h th ng theo phương pháp hư ng ñ i tư ng Gi i thi u RUP

ehamingway@gmail.com

Phân tích thi t k hư ng ñ i tư ng

Bài 1 - 59/59