Các kinh nghiệm quí của Công nghệ phần mềm
Dự án chỉ tiến triển khi các thay
đổi được kiểm soát
? Để loại bỏ sự dãn phạm vị, đánh
giá ảnh hưởng của mọi thay đổi dự
kiến trước khi chấp nhận
? Các Component phải đáng tin cậy,
i.e., tìm thấy phiên bản đúng đắn
của tất cả các phần hợp thành
? Để bảo đảm sự hội tụ, phải tăng
dần kiểm soát các model khi các
thiết kế ổn định
? Test chỉ có ý nghĩa nếu các version
các phần tử đang test được biết rõ
và các phần tử được bỏa vệ trước
các thay đổi
57 trang |
Chia sẻ: aloso | Lượt xem: 2002 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Các kinh nghiệm quí của Công nghệ phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 1
Caùc kinh nghieäm quí cuûa
Coâng ngheä phaàn meàm
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 2
Muïc ñích:
? Khaùmù phaùù caùcù trieäuä chöùngù vaøø caùcù nguyeânâ nhaânâ
coátá loõiõ cuûaû caùcù vaáná ñeàà trong phaùtù trieånå phaànà meàmà
? Trình baøyø Rationals 6 kinh nghieämä toátá cho quaùù
trình phaùtù trieånå phaànà meàmà
? Xem xeùtù caùchù duøngø caùcù kinh nghieämä naøyø ñeåå giaûIû
quyeátá caùcù vaáná ñeàà trong phaùtù trieånå phaànà meàmà
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 3
Phaân tích tình hình cuûa CNPM
Kinh teá theá giôùI ngaøy
caøng phuï thuoäc hôn
vaøo CNPM
Caùc öùng duïng mô roäng
veà kích thöôùc, ñoä phöùc
taïp, vaø phaân boá
Thöông tröôøng ñoøi hoûi naâng
cao naêng suaát & chaát löôïng
vaø giaûm thôøi gian
Khoâng ñuû nhaân löïc coù
trình ñoä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 4
Phaùt trieån phaàn meàm laø coâng vieäc taäp theå
Project
Manager
Performance
Engineer
Release
Engineer
Analyst
Developer
Tester
Caùc thaùch thöùc
• Caùc nhoùm ñoâng hôn
• Söï chuyeân moân hoùa
• Phaân taùn
• Coâng ngheä thay ñoåi
quaù nhanh
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 5
Chuùng ta ñaõ laøm vieäc ra sao ?
Project
Manager
Performance
Engineer
Release
Engineer
Analyst
Tester
• Nhieàu thaø h coâng
• Quaù nhieàu thaát baïi
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 6
Caùc trieäu chöùng cuûa caùc vaán ñeà trong PTPM
? Hieåuå khoângâ ñuùngù nhöõngõ gì ngöôøiø duøngø caànà
? Khoângâ theåå thích öùngù vôùiù caùcù thay ñoåiå veàà y/c ñ/v heää thoángá
? Caùcù Module khoângâ khôùpù vôùiù nhau
? Phaànà meàmà khoùù baûoû trì vaøø naângâ caápá , môûû roängä
? Phaùtù hieänä treãã caùcù loãã hoångå cuûaû döïï aùnù
? Chaátá löôïngï phaànà meàmà keùmù
? Hieäuä naêngê cuûaû phaànà meàmà thaápá
? Caùcù thaønhø vieânâ trong nhoùmù khoângâ bieátá ñöôïcï ai ñaõõ thay ñoåiå
caùiù gì, khi naøoø , ôûû ñaâuâ , tai sao phaûiû thay ñoåiå
? Quaùù trình build-and-release khoângâ ñaùngù tin caäyä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 7
Symptoms
end-user needs
changing
requirements
modules dont fit
hard to maintain
late discovery
poor quality
poor performance
colliding
developers
build-and-release
Root Causes
insufficient requirements
ambiguous communications
brittle architectures
overwhelming
complexity
undetected inconsistencies
poor testing
subjective
assessment
waterfall
development
uncontrolled change
insufficient automationDiagnose
Chöõa trò trieäu chöùng khoâng giaûi quyeát vaán ñeà
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 8
Caùc nguyeân nhaân chính cuûa caùc v/ñ trong PTPM
? Söïï quaûnû lyùù y/c ngöôøiø duøngø khoângâ ñaàyà ñuûû
? Trao ñoåiå thoângâ tin mô hoàà vaøø khoângâ ñaàyà ñuûû
? Kieáná truùcù khoângâ vöõngõ chaécé
? Ñoää phöùcù taïpï vöôïtï quaùù taàmà kieåmå soaùtù
? Coùù nhöõngõ maâuâ thuaãnã khoângâ phaùtù hieänä ñöôïcï giöõaõ y/c, thieátá
keáá, vaøø caøiø ñaëtë
? Kieåmå chöùngù khoângâ ñaàyà ñuûû
? Söïï löôïngï giaùù chuûû quan veàà tình traïngï cuûaû döïï aùnù
? Söïï treãã naûiû trong vieäcä giaûmû ruûiû ro do moââ hình thaùcù nöôùcù
? Söïï lan truyeànà khoângâ theåå kieåmå soaùtù cuûaû caùcù thay ñoåiå
? Thieáuá caùcù coângâ cuïï töïï ñoängä hoùaù
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 9
? Caùcù y/c khoângâ ñaàyà ñuûû
? Trao ñoåiå thoângâ tin mô hoàà
? Kieáná truùcù keùmù beànà vöõngõ
? Ñoää phöùcù taïpï quaùù cao
? Caùcù löôïngï giaùù chuûû quan
? Caùcù maãuã thuaãnã chöa thaáyá
? Kieåmå chöùngù ngheøoø naønø
? Q/tr phaùtù trieånå thaùcù nöôùcù
? Söïï thay ñoåiå khoângâ k/soaùtù
? Thieáuá söïï töïï ñoängä hoùaù
? Phaùtù trieånå theo voøngø laëpë
? Quaûnû trò caùcù y/c
? Söûû duïngï KT component
? Moââ hình hoùaù tröïcï quan
? Kieåmå ñònh chaátá löôïngï
? Kieåmå soaùtù caùcù thay ñoåiå
Nguyeân nhaân coát loõiâ â á õ Caùc kinh nghieäm toátù ä á
Caùc kinh nghieäm giuùp giaûi quyeát caùc vaán ñeà
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 10
Symptoms
end-user needs
changing
requirements
modules dont fit
hard to maintain
late discovery
poor quality
poor performance
colliding developers
build-and-release
Root Causes
insufficient requirements
ambiguous
communications
brittle architectures
overwhelming complexity
undetected
inconsistencies
poor testing
subjective assessment
waterfall development
uncontrolled change
insufficient automation
Best Practices
develop iteratively
manage requirements
use component
architectures
model the software
visually
verify quality
control changes
G/q caùc nguyeân nhaân giuùp giaûm caùc trieäu chöùng
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 11
Phaùtù trieånå theo voøngø laëpë
Kieåmå soaùtù caùcù thay ñoåiå trong heää thoángá
Söûû duïngï
kieáná truùcù
Component
Quaûnû trò
Caùcù y/c
Moââ hình hoùaù
tröïcï quan
Kieåmå ñònh
chaátá löôïngï
Caùc kinh nghieäm quí cuûa CNPM
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 12
Caùc kinh nghieäm taïo ra caùc nhoùm lv hieäu naêng cao
Project
Manager
Performance
Engineer
Release
Engineer
Analyst
Developer
Tester
Keát quaû
• Nhieàu döï aùn thaønh
coâng hôn
Control Changes
Develop Iteratively
Use
Component
Architectures
Manage
Requirements
Model
Visually
Verify
Quality
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 13
Kinh nghieäm 1: PTPM theo voøng laëp
Develop Iteratively
Control Changes
Use
Component
Architectures
Manage
Requirements
Model
Visually
Verify
Quality
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 14
Thôøi gian vaø tieàn baïc chi ra ñeå caøi ñaët moät
thieát keá
sai laø khoâng theå buø ñaép
Kinh nghieäm 1: PTPM theo voøng laëp
? Moätä thieátá keáá ban ñaàuà coùù theåå khoângâ hoaønø chænh so
vôùiù caùcù yeâuâ caàuà chính
? Vieäcä phaùtù hieänä treãã caùcù thieáuá soùtù trong baûnû thieátá keáá
seõõ laømø taêngê giaùù thaønhø , toáná thôøiø gian vaøø thaämä chí
laømø huûyû boûû döïï aùnù
$$$
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 15
T I M E
Qui trình thaùc nöôùc truyeàn thoáng
Subsystem
Testing
System Testing
Code & Unit
Testing
Design
Requirements
Analysis
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 16
R
I
S
K
T I M E
Qui trình thaùc nöôùc coù nhieàu ruûi ro
Subsystem
Testing
System Testing
Code & Unit
Testing
Design
Requirements
Analysis
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 17
ÖÙ/d QT thaùc nöôùc theo voøng laëp
? Caùcù voøngø laëpë ñaàuà daønhø cho caùcù v/ñ nhieàuà ruûiû ro
? Moãiã voøngø laëpë sinh ra moätä phieânâ baûnû vôùiù moätä söïï boåå
sung cho heää thoángá
? Moãiã VL bao goàmà caûû vieäcä tích hôïpï vaøø kieåmå chöùngù
T
C
D
R
T I M E
Iteration 1 Iteration 2 Iteration 3
T
C
D
R
T
C
D
R
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 18
Qui trình laëp ñaåy nhanh vieäc giaûm ruûi ro
WaterfallIterative
R
I
S
K
T I M E
Iteration Iteration Iteration Iteration Iteration Iteration Iteration
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 19
Caùc ñaëc tính cuûa qui trình laëp
? Caùcù ruûiû ro chính ñöôïcï giaûiû quyeátá tröôùcù khi
coùù caùcù phaùtù trieånå lôùnù
? Caùcù voøngø laëpë ñaàuà tieânâ cho pheùpù nhaänä
feedback
? Vieäcä kieåmå chöùngù vaøø tích hôïpï dieãnã ra lieânâ
tuïcï
? Caùcù coätä moácá cuïcï boää seõõ ñònh ra caùcù tieâuâ
ñieåmå ngaéné haïnï
? Söïï tieáná trieånå ñöôïcï ño baèngè baûnû caøiø ñaëtë
? Caùcù caøiø ñaëtë boää phaänä coùù theåå trieånå khai rieângâ
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 20
AÙp duïng caùc kinh nghieäm trong chu kyø soáng PM
Project Management
Environment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary
Iteration(s)
Iter.
#1
Phases
Process Workflows
Iterations
Supporting Workflows
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Deployment
Configuration & Change Mgmt
Requirements
Elaboration TransitionInception Construction
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 21
Nhaänä vaøø khuyeáná khích caùcù
feedback töøø ngöôøiø duøngø
Caùcù hieåuå laàmà nghieâmâ troïngï
ñöôïcï laømø roõõ sôùmù
Taäpä trung phaùtù trieånå caùcù khaùiù
nieämä chöùaù nhieàuà ruûiû ro tröôùcù
Ñaùnhù giaùù khaùchù quan thoângâ qua
test
Maâuâ thuaãnã ñc phaùtù hieänä sôùmù
Baété ñaàuà test sôùmù
Caùcù ruûiû ro ñöôïcï xaùcù ñònh vaøø giaûiû
quyeátá sôùmù
Qui trình laëp giaûi quyeát caùc vaán ñeà
Nguyeân nhaân coát loõi Caùch giaûi quyeát
? Khoângâ ñuûû caùcù yeâuâ caàuà
ñ/v heää thoángá
? Trao ñoåiå TT mô hoàà
? Kieáná truùcù keùmù beànà vöõngõ
? Ñoää phöùcù taïpï quaùù cao
? Ñaùnhù giaùù chuûû quan
? Caùcù maâuâ thuaãnã khoângâ
ñöôïcï phaùtù hieänä
? Kieåmå chöùngù keùmù
? QT thaùcù nöôùcù
? Caùcù thay ñoåiå khoângâ ks
? Thieáuá ccuïï töïï ñoängä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 22
Kinh nghieäm 2: Quaûn lyù yeâu caàu ñ/v heä thoáng
Control Changes
Develop Iteratively
Use
Component
Architectures
Manage
Requirements
Model
Visually
Verify
Quality
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 23
Yeâu caàu ñoái vôùi heä thoáng luoân ñoäng --
Phaûi löôøng tröôùc khaû naêng chuùng bò thay ñoåi trong
quaù trình PTPM
Kinh nghieäm 2: Quaûn lyù yeâu caàu ñ/v heä thoáng
? Suy daãnã , toåå chöùcù , vaøø taïoï söu lieäuä
veàà caùcù yeâuâ caàuà chöùcù naêngê vaøø
caùcù raøngø buoäcä
? Löôïngï giaùù caùcù thay ñoåiå vaøø xaùcù
ñònh aûnhû höôûngû cuûaû chuùngù
? Theo daáuá vaøø tao söu lieäuä veàà caùcù
thoûaû hieäpä & caùcù quyeátá ñònh
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 24
Ñònh nghóa: Y/c ñ/v HT vaø söï quaûn lyù chuùng
? Moätä yeâuâ caàuà laøø moätä ñieàuà kieänä hoaëcë khaûû naêngê maøø
heää thoángá phaûiû tuaânâ theo/coùù
? Quaûnû lyùù y/c laøø moätä tieápá caänä coùù heää thoángá ñeåå
?Suy daãn, toå chöùc, vaø taïo söu lieäu veà caùc yeâu caàu
chöùc naêng ñ/v heä thoáng, vaø
?Thieát laäp vaø duy trì söï thoûa thuaän giöõa
customer/user vaø project team lieân quan ñeán caùc
thay ñoåi veà yeâu caàu ñ/v heä thoáng
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 25
Thoûa thuaän veà nhöõng gì maø HT phaûi laøm
Ñích
Surrogate
Goal
Xaùc minh
Caùc yeâu caàu
Coäng ñoàng
Caùc Customer
User
Caùc yeâu caàu
Heä thoáng
caàn xaây döïng
Adapted from Al Davis
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 26
Y/c aûnh höôûng ñeán nhieàu thaønh phaàn khaùc
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 27
Laøm theá naøo ñeå baét ñöôïc loãi veà y/c sôùm ?
? Phaânâ tích vaáná ñeàà vaøø suy daãnã ra caùcù nhu caàuà cuûaû
ngöôøiø duøngø moätä caùchù coùù hieäuä quaûû
? Ñaïtï ñöôïcï thoûaû thuaänä vôùiù customer/user veàà caùcù yeâuâ
caàuà ñoáiá vôùiù heää thoángá
? Moââ hình hoùaù söïï töông taùcù giöõaõ user vaøø system
? Thieátá laäpä moätä ñöôøngø ranh giôùiù (baseline) vaøø qui
trình kieåmå soaùtù thay ñoåiå (change control process)
? Duy trì khaûû naêngê theo veátá tieáná vaøø luøiø caùcù yeâuâ caàuà
ñ/v heää thoángá
? Söûû duïngï moätä qui trình laëpë
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 28
Caùc vaán ñeà giaûi quyeát nhôø quaûn lyù y/c ñ/v HT
Nguyeân nhaân coát loõiâ â á õ Caùch giaûi quyeátù û á
Xaây döïng trong quaûn lyù Y/C
moät tieáp caän kyû luaät
Trao ñoåi thoâng tin döïa treân
caùc y/c ñaõ xaùc ñònh
Ñaët ñoä öu tieân, loïc vaø theo doõi
caùc yeâu caàu
Ñaùnh giaù khaùch quan caùc
chöùc naêng vaø hieäu naêng
Caùc maâu thuaãn ñeã phaùt hieän
RM tool cung caáp moät kho
chöùa caùc y/c, thuoäc tính vaø ñoà
hình, seõ ñöôïc keát noái töï ñoäng
vôùi söu lieäu
? Thieáuá caùcù y/c ñ/v HT
? Trao ñoåiå TT mô hoàà
? Kieáná truùcù keùmù beànà vöõngõ
? Ñoää phöùcù taïpï quaùù cao
? Ñaùnhù giaùù chuûû quan
? Caùcù maâuâ thuaãnã khoângâ
ñöôïcï phaùtù hieänä
? Kieåmå chöùngù keùmù
? QT thaùcù nöôùcù
? Caùcù thay ñoåiå khoângâ ks
? Thieáuá ccuïï töïï ñoängä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 29
Use
Component
Architectures
Kinh nghieäm 3: Duøng kieán truùc Component-Based
Control Changes
Develop Iteratively
Manage
Requirements
Model
Visually
Verify
Quality
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 30
Kieán truùc phaàn meàm xaùc ñònh:
? Kieáná truùcù phaànà meàmà chöùaù ñöïngï caùcù quyeátá ñònh
quan troïngï veàà toåå chöùcù cuûaû heää thoángá phaànà meàmà
?Söï löïa choïn caùc phaàn töû caàu truùc vaø interface cuûa
chuùng ñeå caáu thaønh moät heä thoáng
?Haønh vi ñöôïc moâ taû nhö söï coäng taùc giöõa caùc phaàn
töû naøy
?Söï toång hôïp cuûa caùc phaån töû caáu truùc vaø haønh vi
naøy thaønh caùc subsystem lôùn hôn
?Kieåu kieán truùc ñònh höôùng cho toå chöùc naøy, cho caùc
phaàn töû caáu truùc vaø interface cuûa chuùng, caùc coâng
taùc, vaø söï toång hôïp giöõa chuùng
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 31
Caùc aûnh höôûng cuûa kieán truùc
? Kieáná truùcù phaànà meàmà lieânâ quan ñeáná caáuá truùcù , haønhø
vi vaøø ngöõõ caûnhû (context):
?Caùch duøng (Usage)
?Chöùc naêng (Functionality)
?Hieäu naêng (Performance)
?Tính co daõn (Resilience)
?Khaû naêng taùi söû duïng (Reuse)
?Tính deã hieåu (Comprehensibility)
?Caùc raøng buoäc veà kinh teá vaø kyõ thuaät vaø caùc dung
hoøa
?Tính thaåm myõ (Aesthetics)
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 32
Resilient, Component-Based Architectures
? Caùcù kieáná truùcù toátá thoûaû maõnõ caùcù y/c ñ/v chuùngù , laøø
tính ñaønø hoàià , vaøø component-based
? Moätä kieáná truùcù ñaønø hoàià cho pheùpù
?Taêng cöôøng khaû naêng deã baûo trì vaø deã môû roäng
?Khaû naêng taùi söû duïng vôùi lôïi ích kinh teá cao
?Phaân chia coâng vieäc roõ raøng trong ñoäi nguõ PTPM
?Goùi goïn caùc phuï thuoäc phaàn cöùng & heä thoáng
? Moätä kieáná truùcù component-based cho pheùpù
?Taùi söû duïng hoaëc tuøy chænh caùc component saün coù
?Choïn löïa giöõa haøng ngaøn component thöông maïi
treân thò tröôøng
?Tieán hoùa khoâng ngöøng phaàn meàm ñang toàn taïi
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 33
Ví duï: Component-Based Architecture
Key:
- Purchased
- Built
- New
User Interface
Mechanisms
Oracle Vantive
Customer Product
Lead Tracking
User Interface
License
Licensing
User Interface
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 34
Kieán truùc Component giaûi quyeát caùc vaán ñeà
Caùcù Component deãã taïoï ra
caùcù kieáná truùcù ñaønø hoàià
Taùiù söûû duïngï caùcù com. vaøø
framework Thöông maïiï trôûû
neânâ deãã daøngø
Tính ñôn theåå cho pheùpù phaânâ
taùchù caùcù ñieàuà lo laéngé
Component cung caápá neànà
taûngû töïï nhieânâ cho quaûnû lyùù
caáuá hình
Caùcù ccuïï moââ hình hoùaù tröïcï
quan hoãã trôïï thieátá keáá töïï ñoängä
component-based
Caùc nguyeân nhaân coát loõiù â â á õ Caùch giaûi quyeátù û á
? Thieáuá y/c ñ/v heää thoángá
? Trao ñoåiå TT mô hoàà
? Kieáná truùcù keùmù beànà
? Quaùù phöùcù taïpï
? Ñaùnhù giaùù chuûû quan
? Caùcù maâuâ thuaãnã chöa
xaùcù ñònh
? Test keùmù
? Qui trình thaùcù nöôùcù
? Caùcù thay ñoåiå khoângâ
theåå kieåmå soaùtù
? Thieáuá ccuïï töïï ñoängä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 35
Kinh nghieäm 4: Moâ hình hoùa tröïc quan phaàn meàm
Control Changes
Develop Iteratively
Use
Component
Architectures
Manage
Requirements
Verify
QualityModel
Visually
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 36
Moâ hình hoùa tröïc quan taêng khaû naêng
quaûn lyù ñoä phöùc taïp cuûa phaàn meàm
Kinh nghieäm 4: Moâ hình hoùa tröïc quan phaàn meàm
? Naémé baété caáuá truùcù vaøø haønhø vi cuûaû caùcù thaønhø phaànà
kieáná truùcù
? Theåå hieänä caùchù maøø caùcù phaànà töûû heää thoángá khôùpù vôùiù
nhau
? Che daáuá hoaëcë phôi baøyø chi tieátá theo nhu caàuà coângâ
vieäcä
? Duy trì tinhd nhaátá quaùnù giöõaõ thieátá keáá vaøø caøiø ñaëtë
? Taêngê cöôøngø trao ñoåiå thoângâ tin roõõ raøngø
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 37
UML laø gì ?
? Unified Modeling Language (UML) laøø ngoânâ ngöõõ
• ñaëc taû
• tröïc quan hoùa
• xaây döïng
• laøm söu lieäu
caùcù artifact cuûaû moätä heää thoángá phaànà meàmà
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 38
Caùc löôïc ñoà laø caùc khung nhìn cuûa moâ hình
Moät moâ hình laø moät moâ
taû ñaày ñuû cuûa heä thoáng
töø moät phoái caûnh cuï theå
Deployment
Diagrams
Deployment
Diagrams
use-case
Diagrams
use-case
Diagrams
Scenario
Diagrams
Scenario
DiagramsScenario
Diagrams
Scenario
DiagramsSequence
Diagrams
Sequence
Diagrams
State
Diagrams
State
DiagramsState
Diagrams
State
DiagramsState
Diagrams
State
Diagrams
Component
Diagrams
Component
DiagramsComponent
Diagrams
Component
DiagramsComponent
Diagrams
Co ponent
Diagrams
Models
State
Diagrams
State
DiagramsState
Diagrams
State
DiagramsObject
Diagrams
Object
Diagrams
Scenario
Diagrams
Scenario
DiagramsScenario
Diagrams
Scenario
DiagramsCollaboration
Diagrams
Collaboration
Diagrams
Activity
Diagrams
Activity
Diagrams
State
Diagrams
State
DiagramsState
Diagrams
State
DiagramsClass
Diagrams
Clas
Diagrams
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 39
Moâ hình hoùa tröïc quan döøng caùc löôïc ñoà UML
Actor A
use-case 1
use-case 2
Actor B
user : AØUÙ
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repository
document : Document
gFile : GrpFile
9 : s o r t B y N a m e ( )
L
1: D o c view request ( )
2 : fetchDoc ( )
5 : readDoc ( )
7 : r e a d F i l e ( )
3: c r e a t e ( )
6 : f i l l D o c u m e n t( )
4: c r e a t e ( )
8 : f i l l F i l e( )
GrpFile
read( )
open( )
create( )
fillFile( )
rep
Repository
name : char * = 0
readDoc( )
readFile( )
(from Persistence)
FileMgr
fetchDoc( )
sortByName( )
DocumentList
add( )
delete( )
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
fList
1
FileList
add( )
delete( )
File
read( )
read() fill the
code..
UI
MFC
RogueWave
global
DocumentApp
Persistence Window 9 5
oùAØÌ . E X E
W i n d o w s
N T
AÙ. E X E
W i n d o w s
N T
W i n d o w s 9 5
S o l a r i s
A Ø A Ø . EXE
A l p h a
U N I X
IBM
M a i n f r a m e
AØÌAØÌ
W i n d o w s 9 5
AÕ
e â EØAØ AØAØ AÙ AÕ aù
- AØì 95 : oùAØÌ
- AØì N T : AØAØ
- AØ OÙ: AØ AØÌ ,
-IBM AØAÙAØOÙ: AØÌ ,
Document
FileManager
GraphicFile
File
Repository DocumentList
FileList
user
mainWnd fileMgr:
FileMgr
repositorydocument :
Document
gFile
1: D o c view request ( )
2 : fetchDoc ( )
3: c r e a t e ( )
4: c r e a t e ( )
5 : readDoc ( )
6 : f i l l D o c u m e n t( )
7 : r e a d F i l e ( )
8 : f i l l F i l e( )
9 : s o r t B y N a m e ( )
A Ù aâ
A Ø U Ù AÕUØ.
EØAØAØUÙAÂ AØAÂ
A Ø AÙ
A Õ AÙAØ AÕUØ.
EØeù AÕAÂ AØeùAØ
AÕeù AØÌ
A Ù A Ø AÕ E Ø e ù
A Ù U Ø .
Customer
name
addr
withdraw ()
fetch ()send()
receive ()
>
Forward Engineering (Code Generation)
and
Reverse Engineering
Executable System
User Interface
Definition
Domain
Expert
Openning
Writing
Reading Closing
add file [ numberOffile==MAX ] /
flag OFF
add file
close file
close file
use-case 3
Source Code edit, compile, debug, link
Use-Case Diagram Class Diagram
Collaboration Diagram
Sequence Diagram
Component
Diagram
State Diagram
Package
Diagram
Deployment
DiagramClass
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 40
Thay ñoåi baûn thieát keá ?
Moâ hình hoùa tröïc quan vaø phaùt trieån theo voøng laëp
Yeâu caàu ban ñaàu
implementation & testing
risk targeting
deployment
Ñaùnh giaù requirements
analysis & design
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 41
Caùi gì thay ñoåi? Nhöõng thay ñoåi naøy ñöôïc pheùp
khoâng?
Moâ hình hoùa tröïc quan vaø phaùt trieån theo voøng laëp
Yeâu caàu ban ñaàu
implementation & testing
risk targeting
deployment
Ñaùnh giaù requirements
analysis & design
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 42
Giaûi quyeát vaán ñeà nhôø moâ hình hoùa tröïc quan
Caùcù use-case vaøø scenario
ñaëcë taûû haønhø vi roõõ raøngø
Caùcù moââ hình naémé baété töôøngø
minh caùcù thieátá keáá
Caùcù kieáná truùcù khoângâ ñôn theåå
hay cöùngù nhaécé bò phôi baøyø
Caùcù chi tieátá khoângâ caànà thieátá
ñöôïcï che daáuá khi caànà
Caùcù thieátá keáá töôøngø minh chæ ra
caùcù maâuâ thuaãnã deãã daøngø
Chaátá löôïngï cuûaû öùngù duïngï ñi keømø
vôùiù baûnû thieátá keáá toátá
Caùcù ccuïï tröïcï quan hoãã trôïï cho
moââ hình hoùaù baèngè UML
Caùc nguyeân nhaân coát loõiLôøi giaûi
? Thieáuá y/c ñ/v HT
? Truyeànà tin mô hoàà
? Kieáná truùcù keùmù beànà
? Quaùù phöùcù taïpï
? Ñaùnhù giaùù chuûû quan
? Caùcù maâuâ thuaãnã chöa
xaùcù ñònh
? Test keùmù
? Qui trình thaùcù nöôùcù
? Thay ñoåiå khoângâ theåå KS
? Thieáuá ccuïï töïï ñoängä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 43
Kinh nghieäm 5: Kieåm ñònh chaát löôïng phaàn meàm
Control Changes
Develop Iteratively
Use
Component
Architectures
Manage
Requirements
Model
Visually Verify
Quality
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 44
Chi phí tìm kieám vaø söûa chöõa caùc vaán ñeà cuûa
phaàn meàm seõ taêng haøng 100, haøng 1000 laàn
sau khi PT
Development Deployment
Cost
Kinh nghieäm 5: Kieåm ñònh chaát löôïng phaàn meàm
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 45
PT theo voøng laëp cho pheùp test lieân tuïc
T I M E
Test Test Test
T
C
D
R
Iteration 1 Iteration 2 Iteration 3
T
C
D
R
T
C
D
R
Test
Life
Cycle Evaluate
Plan
Design
Implement
Execute
Evaluate
Plan
Design
Implement
Execute
Evaluate
Plan
Design
Implement
Execute
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 46
Test trong moät moâi tröôøng PT theo voøng laëp
R
eq
ui
re
m
en
ts
R
eq
ui
re
m
en
ts
Test Suite 1
Iteration 2 Iteration 3 Iteration 4
Test Suite 2 Test Suite 3 Test Suite 4
Iteration 1
A
ut
om
at
ed
A
ut
om
at
ed
Te
st
s
Te
st
s
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 47
Töï ñoäng hoùa giaûm thôøi gian vaø coâng söùc test
One Manual Test Cycle
13,000 Tests 2 Weeks 6 People
13,000 Test
6 giôø
1 ngöôøi
13,000 Test
6 giôø
1 ngöôøi
Moät chu trình test thuû oâng
13,000 laàn Test 2 Tuaàn 6 Ngöôøi
Test
töï ñoäng
Ch?y ngày càng nhi?u test hon
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 48
Caùc khía caïnh cuûa chaát löôïng phaàn meàm
Chöùc naêng
Ñoä tin caäy
Hieäu naêng öùng
duïng
Hieäu naêng cuûa
heä thoáng
Ö/d cuûa toâi coù laøm nhöõng gì
ñöôïc yeâu caàu?
Ö/d cuûa toâi coù laøm maát boä
nhôù?
Ö/d cuûa toâi coù hoài ñaùp hôïp
leä?
Ö/d cuûa toâi coù hoaït ñoäng
döôùi coâng suaát thieát keá?
Taïo caùcTest case cho moãi
scenario ñaõ caøi ñaët
Caùc coâng cuï phaân tích vaø
caùc thieát bò coding
Kieåm tra hieäu naêng cuûa moãi
use-case/scenario ñaõ caøi ñaët
Kieåm tra hieäu naêng cuûa taát
caû use-case ôû möùc ñoä tin
caäy vaø tröôøng hôïp xaáu nhaát
Kieåu Taïi sao? Theá naøo?
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 49
Caùc vaán ñeà ñöôïc giaûi quyeát nhôø kieåm ñònh CL
Testing ñaùnhù giaùù khaùchù quan
veàà traïngï thaùiù döïï aùnù
Ñaùnhù giaùù khaùchù quan trieätä
tieâuâ caùcù maâuâ thuaànà sôùmù
Testing vaøø kieåmå ñònh taäpä
trung vaøoø vuøngø high risk
Tìm thaáyá thieáuá soùtù sôùmù vaøø chi
phí söûaû chöõaõ thaápá
Caùcù ccuïï test töïï ñoängä giuùpù
test ñoää tin caäyä , chöùcù naêngê vaøø
hieäuä naêngê
Nguyeân nhaân coát loõi Caùch giaûi quyeát
? Thieáuá y/c ñ/v HT
? Truyeànà tin mô hoàà
? Kieáná truùcù keùmù beànà
? Quaùù phöùcù taïpï
? Ñaùnhù giaùù chuûû quan
? Caùcù maâuâ thuaãnã chöa
ñöôïcï xaùcù ñònh
? Test keùmù
? Qui trình thaùcù nöôùcù
? Thay ñoåiå khoângâ theåå KS
? Thieáuá ccuïï töïï ñoängä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 50
Kinh nghieäm 6: Kieåm soaùt thay ñoåi trong PM
Control Changes
Develop Iteratively
Use
Component
Architectures
Manage
Requirements
Model
Visually
Verify
Quality
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 51
Thieáu söï kieåm soaùt töôøng minh, ñaày ñuû
Phaùt trieån song song deã bieán thaønh hoãn ñoän
Kinh nghieäm 6: Kieåm soaùt thay ñoåi trong PM
? Nhieàuà developer
? Nhieàuà team
? Nhieàuà vò trí
? Nhieàuà voøngø laäpä
? Nhieàuà release
? Nhieàuà project
? Nhieàuà platform
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 52
Ba khía caïnh chính cuûa CM System
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 53
Caùc khaùi nieäm cuûa Configuration & Change M.
? Phaânâ raõõ kieáná truùcù thaønhø caùcù subsystem vaøø gaùnù traùchù nhieämä
thöïcï hieänä caùcù subsystem cho moãiã nhoùmù
? Thieátá laäpä vuøngø laømø vieäcä an toaønø cho moãiã developer
?Cho pheùp coâ laäp vôùi caùc thay ñoåi taïo bôûi vuøng laøm vieäc khaùc
?Kieåm soaùt taát caû software artifact - models, code, docs,
? Thieátá laäpä moätä vuøngø laømø vieäcä tích hôïpï
? Thieátá laäpä moätä cô cheáá khaûû thi kieåmå soaùtù caùcù thay ñoåiå
? Naémé baété thay ñoåiå xuaátá hieänä naøoø xuaátá hieänä trong release
naøoø
? Ñöa ra moätä ñöôøngø ranh giôùiù haïnï choãã hoaønø taátá cuûaû moãiã
voøngø laëpë
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 54
Change Control hoã trôï taát caû Best Practices khaùc
? Phaùtù trieånå theo
qui trình laëpë
? Quaûnû lyùù Y/c
? Duøngø kieáná truùcù
component
? Moââ hình hoùaù tröïcï
quan
? Kieåmå ñònh chaátá
löôïngï
? Döïï aùnù chæ tieáná trieånå khi caùcù thay
ñoåiå ñöôïcï kieåmå soaùtù
? Ñeåå loaïiï boûû söïï daõnõ phaïmï vò, ñaùnhù
giaùù aûnhû höôûngû cuûaû moïiï thay ñoåiå döïï
kieáná tröôùcù khi chaápá nhaänä
? Caùcù Component phaûiû ñaùngù tin caäyä ,
i.e., tìm thaáyá phieânâ baûnû ñuùngù ñaéné
cuûaû taátá caûû caùcù phaànà hôïpï thaønhø
? Ñeåå baûoû ñaûmû söïï hoäiä tuïï, phaûiû taêngê
daànà kieåmå soaùtù caùcù model khi caùcù
thieátá keáá oånå ñònh
? Test chæ coùù yùù nghóa neáuá caùcù version
caùcù phaànà töûû ñang test ñöôïcï bieátá roõõ
vaøø caùcù phaànà töûû ñöôïcï boûaû veää tröôùcù
caùcù thay ñoåiå
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 55
Caùc vaàn ñeà ñöôïc giaûi quyeát nhôø Control Change
Requirements change workflow ñöôïcï
xaùcù ñònh vaøø laëpë laïiï ñi laëpë laïiï
Caùcù Change request laømø cho thoângâ
tin trao ñoåiå roõõ raøngø
Vuøngø laømø vieäcä bieätä laäpä giaûmû caùcù trôûû
ngaïiï do laømø vieäcä song song
Thoángá keââ veàà möùcù ñoää thay ñoåiå laøø ñoää
ño toátá cho caùcù ñaùnhù giaùù khaùchù quan
veàà traïngï thaùiù cuûaû döïï aùnù
Vuøngø laømø vieäcä chöùaù taátá caûû caùcù
artifact deãã taïoï söïï nhaátá quaùnù
Kieåmå soaùtù ñöôïcï söïï lan truyeànà caùcù
thay ñoåiå
Caùcù thay ñoåiå ñöôïcï duy trì trong moätä
heää thoángá maïnhï meõõ, coùù khaûû naêngê tuøyø
chænh
Nguyeân nhaân coát loõiâ â á õ Caùch giaûi quyeátù û á
? Thieáuá y/c ñ/v HT
? Truyeànà tin mô hoàà
? Kieáná truùcù keùmù beànà
? Quaùù phöùcù taïpï
? Ñaùnhù giaùù chuûû quan
? Maâuâ thuaãnã chöa ñöôïcï
xaùcù ñònh
? Test keùmù
? Qui trình thaùcù nöôùcù
? Thay ñoåiå khoângâ theåå
kieåmå soaùtù
? Thieáuá ccuïï töïï ñoängä
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 56
Caùc kinh nghieäm hoã trôï laãn nhau
Control
Changes
Develop
Iteratively
Use
Component
Architectures
Model
Visually
Verify
Quality
Ensures users involved
as requirements evolve
Validates architectural
decisions early on
Addresses complexity of
design/implementation incrementally
Measures quality early and often
Evolves baselines incrementally
Manage
Requirements
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 57
Toång keát
?Keátá quaûû laøø phaànà meàmà trôûû neânâ
?Ñuùng thôøi haïn
?Baûo ñaûm ngaân saùch
?Thoûa maõn nhu caàu user
Project
Manager
Performance
Engineer
Release
Engineer
Analyst
Developer
Tester
Control
Changes
Develop Iteratively
Use
Component
Architectures
Manage
Requirements
Model
Visually Verify
Quality
Các file đính kèm theo tài liệu này:
- Ngôn ngữ UML - Bài 1.pdf