You are on page 1of 57

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 1
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 2
Phaân tích tình hình cuûa CNPM

Kinh teá theá giôùI ngaøy Caùc öùng duïng mô roäng


caøng phuï thuoäc hôn veà kích thöôùc, ñoä phöùc
vaøo CNPM taïp, vaø phaân boá

Thöông tröôøng ñoøi hoûi naâng Khoâng ñuû nhaân löïc coù
cao naêng suaát & chaát löôïng trình ñoä
vaø giaûm thôøi gian
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 3
Phaùt trieån phaàn meàm laø coâng vieäc taäp theå

Caùc thaùch thöùc


Performance
• Caùc nhoùm ñoâng hôn Engineer

• Söï chuyeân moân hoùa Analyst

• Phaân taùn Project


Manager
• Coâng ngheä thay ñoåi Developer
quaù nhanh Tester

Release
Engineer

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 4
Chuùng ta ñaõ laøm vieäc ra sao ?

• Nhieàu thaønh coâng


Performance
Engineer
Analyst

• Quaù nhieàu thaát baïi


Project
Manager

Tester

Release
Engineer

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 5
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 6
Chöõa trò trieäu chöùng khoâng giaûi quyeát vaán ñeà

Root Causes
Symptoms
insufficient requirements
end-user needs
ambiguous communications
changing
brittle architectures
requirements
overwhelming
modules dont fit
complexity
hard to maintain
undetected inconsistencies
late discovery
poor testing
poor quality
subjective
poor performance assessment
colliding waterfall
developers development
build-and-release uncontrolled change
Diagnose insufficient automation

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 7
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 8
Caùc kinh nghieäm giuùp giaûi quyeát caùc vaán ñeà
Nguyeân nhaân coát loõi Caùc kinh nghieäm toát
? Caùc y/c khoâng ñaày ñuû ? Phaùt trieån theo voøng laëp
? Trao ñoåi thoâng tin mô hoà ? Quaûn trò caùc y/c
? Kieán truùc keùm beàn vöõng ? Söû duïng KT component
? Ñoä phöùc taïp quaù cao ? Moâ hình hoùa tröïc quan
? Caùc löôïng giaù chuû quan ? Kieåm ñònh chaát löôïng
? Caùc maãu thuaãn chöa thaáy ? Kieåm soaùt caùc thay ñoåi
? 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

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 9
G/q caùc nguyeân nhaân giuùp giaûm caùc trieäu chöùng

Symptoms Root Causes Best Practices


end-user needs insufficient requirements develop iteratively
changing ambiguous manage requirements
requirements communications use component
modules dont fit brittle architectures architectures
hard to maintain overwhelming complexity model the software
late discovery undetected visually
inconsistencies verify quality
poor quality
poor performance poor testing control changes
subjective assessment
colliding developers
build-and-release waterfall development
uncontrolled change
insufficient automation

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 10
Caùc kinh nghieäm quí cuûa CNPM

Phaùt trieån theo voøng laëp

Söû duïng
Quaûn trò Moâ hình hoùa Kieåm ñònh
kieán truùc tröïc quan
Caùc y/c chaát löôïng
Component

Kieåm soaùt caùc thay ñoåi trong heä thoáng

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 11
Caùc kinh nghieäm taïo ra caùc nhoùm lv hieäu naêng cao

Keát quaû
Performance
• Nhieàu döï aùn thaønh Engineer
coâng hôn Analyst

Project
Manager
Developer
Develop Iteratively

Tester
Use
Manage Component Model Verify
Requirements Architectures Visually Quality
Release
Engineer
Control Changes

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 12
Kinh nghieäm 1: PTPM theo voøng laëp

Develop Iteratively

Use
Manage Model Verify
Component Visually
Requirements Quality
Architectures

Control Changes

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 13
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

$$$
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
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 14
Qui trình thaùc nöôùc truyeàn thoáng

Requirements
Analysis

Design

Code & Unit


Testing

Subsystem
Testing

System Testing

T I M E

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 15
Qui trình thaùc nöôùc coù nhieàu ruûi ro

Requirements
R Analysis
I
Design
S
K Code & Unit
Testing

Subsystem
Testing

System Testing

T I M E

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 16
ÖÙ/d QT thaùc nöôùc theo voøng laëp

Iteration 1 Iteration 2 Iteration 3


R R R
D D D
C C C
T T T

T I M E

? 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

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 17
Qui trình laëp ñaåy nhanh vieäc giaûm ruûi ro

K Iterative Waterfall

Iteration Iteration Iteration Iteration Iteration Iteration Iteration


T I M E

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 18
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 19
AÙp duïng caùc kinh nghieäm trong chu kyø soáng PM
Phases
Process Workflows Inception Elaboration Construction Transition

Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration & Change Mgmt
Project Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1

Iterations
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 20
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 Nhaän vaø khuyeán khích caùc
ñ/v heä thoáng feedback töø ngöôøi duøng
? Trao ñoåi TT mô hoà Caùc hieåu laàm nghieâm troïng
ñöôïc laøm roõ sôùm
? Kieán truùc keùm beàn vöõng
Taäp trung phaùt trieån caùc khaùi
? Ñoä phöùc taïp quaù cao nieäm chöùa nhieàu ruûi ro tröôùc
? Ñaùnh giaù chuû quan
Ñaùnh giaù khaùch quan thoâng qua
? Caùc maâu thuaãn khoâng test
ñöôïc phaùt hieän
Maâu thuaãn ñc phaùt hieän sôùm
? Kieåm chöùng keùm
? QT thaùc nöôùc Baét ñaàu test sôùm
? Caùc thay ñoåi khoâng ks Caùc ruûi ro ñöôïc xaùc ñònh vaø giaûi
quyeát sôùm
? Thieáu ccuï töï ñoäng
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 21
Kinh nghieäm 2: Quaûn lyù yeâu caàu ñ/v heä thoáng

Develop Iteratively

Use
Model Verify
Component Visually
Manage Quality
Requirements Architectures

Control Changes

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

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

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 23
Ñò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 24
Thoûa thuaän veà nhöõng gì maø HT phaûi laøm

Ñích

Coäng ñoàng Heä thoáng


Caùc Customer caàn xaây döïng
User

Xaùc minh Surrogate


Caùc yeâu caàu Goal

Adapted from Al Davis


Caùc yeâu caàu

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 25
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 26
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 27
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
? Thieáu caùc y/c ñ/v HT Xaây döïng trong quaûn lyù Y/C
moät tieáp caän kyû luaät
? Trao ñoåi TT mô hoà
? Kieán truùc keùm beàn vöõng Trao ñoåi thoâng tin döïa treân
caùc y/c ñaõ xaùc ñònh
? Ñoä phöùc taïp quaù cao
Ñaët ñoä öu tieân, loïc vaø theo doõi
? Ñaùnh giaù chuû quan caùc yeâu caàu
? Caùc maâu thuaãn khoâng Ñaùnh giaù khaùch quan caùc
ñöôïc phaùt hieän chöùc naêng vaø hieäu naêng
? Kieåm chöùng keùm Caùc maâu thuaãn ñeã phaùt hieän
? QT thaùc nöôùc RM tool cung caáp moät kho
? Caùc thay ñoåi khoâng ks chöùa caùc y/c, thuoäc tính vaø ñoà
? Thieáu ccuï töï ñoäng hình, seõ ñöôïc keát noái töï ñoäng
vôùi söu lieäu
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 28
Kinh nghieäm 3: Duøng kieán truùc Component-Based

Develop Iteratively

Manage Use Model Verify


Requirements Visually Quality
Component
Architectures

Control Changes

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 29
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 30
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 31
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 32
Ví duï: Component-Based Architecture
Lead Tracking Licensing
User Interface User Interface

User Interface
Mechanisms

Customer Product License

Key:
- Purchased Oracle Vantive
- Built
- New

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 33
Kieán truùc Component giaûi quyeát caùc vaán ñeà
Caùc nguyeân nhaân coát loõi Caùch giaûi quyeát
? Thieáu y/c ñ/v heä thoáng Caùc Component deã taïo ra
? Trao ñoåi TT mô hoà caùc kieán truùc ñaøn hoài
? Kieán truùc keùm beàn Taùi söû duïng caùc com. vaø
framework Thöông maïi trôû
? Quaù phöùc taïp neân deã daøng
? Ñaùnh giaù chuû quan
Tính ñôn theå cho pheùp phaân
? Caùc maâu thuaãn chöa taùch caùc ñieàu lo laéng
xaùc ñònh
? Test keùm Component cung caáp neàn
? Qui trình thaùc nöôùc taûng töï nhieân cho quaûn lyù
caáu hình
? Caùc thay ñoåi khoâng
theå kieåm soaùt Caùc ccuï moâ hình hoùa tröïc
quan hoã trôï thieát keá töï ñoäng
? Thieáu ccuï töï ñoäng component-based
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 34
Kinh nghieäm 4: Moâ hình hoùa tröïc quan phaàn meàm

Develop Iteratively

Use
Manage Verify
Component
Requirements Model Quality
Architectures Visually

Control Changes

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

? 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

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

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 36
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 37
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å
State
State
State
State
Diagrams
Class
Diagrams
Class
Diagrams
Diagrams
Diagrams
Diagrams State
State
use-case
use-case State
State
Diagrams
Diagrams Object
Diagrams
Object
Diagrams
Activity
Activity Diagrams Diagrams
Diagrams
Diagrams Diagrams
Diagrams

Scenario
Scenario State
State
Scenario
Scenario
Diagrams State
State
Diagrams
Sequence
Diagrams
Sequence
Diagrams State
Diagrams
State
Diagrams
Diagrams
Diagrams Models Diagrams
Diagrams
Diagrams Diagrams

Scenario
Scenario
Component
Component
Scenario
Scenario
Diagrams
Component
Diagrams
Component
Component
Diagrams
Collaboration
Diagrams
Collaboration
Diagrams Deployment
Deployment Component
Diagrams
Diagrams
Diagrams
Diagrams Diagrams Diagrams
Diagrams
Diagrams Diagrams

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 38
Moâ hình hoùa tröïc quan döøng caùc löôïc ñoà UML

Use-Case Diagram Class Diagram State Diagram add file

DocumentList
FileMgr Document

add( )
name : int
fetchDoc( ) delete( )
docid : int
sortByName( )
numField : int
add file [ numberOffile==MAX ] / Writing
get( )
read() fill the
flag OFF
open( )
code..
close( )
FileList read( )

use-case 1
sortFileList( ) Openning
fList create( )
fillDocument( )
add( )
delete( )

Actor A
1 close file

Actor B
close file
Reading Closing

use-case 2
rep

File
Repository
<<entity >>
(from Persistence) GrpFile
Customer
name
read( )
name : char * = 0

addr
read( )
readDoc( )
open( )
readFile( )

receive ()
create( )
fillFile( )

withdraw ()
Domain
use-case 3

Deployment
fetch ()
send()
Expert UI

MFC Class Diagram


DocumentApp
e â EØAØ AØAØ AÙ AÕ aù
- A
ìØ 95 : A oÌù Ø
- A
ìØ N T : AØAØ
- AØ :OÙ AØ A
ÌØ ,
-IBM AØAA
ÙO
Ø :Ù A
ÌØ ,

RogueWave
Repository DocumentList
Persistence
Windows9 5
Window 9 5
9 : sortByName( )
Windows9 5

global

FileManager
User Interface
oùAÌØ . E X E

Package
mainWnd : MainWnd W i n d o w s
N T

Definition
1: D o c view request ( )

Document
L

Solaris

2 : fetchDoc ( )

Diagram
gFile : GrpFile
.AÙ E X E
4: c r e a t e )(

Alpha
8 : f i l l F i l(e) U N I X
A Ø A Ø . EXE

Windows

user : AØUÙ GraphicFile


N T

fileMgr : FileMgr
IBM

File FileList
Mainframe

3: c r e a t e )(

6 : f i l l D o c u m e n( )t

AØÌAØÌ

7 : readFile( )

5 : readDoc ( )

document : Document
repository : Repository

Component Forward Engineering (Code Generation)


Collaboration Diagram Diagram and
Reverse Engineering
mainWnd fileMgr: document : gFile repository
user FileMgr Document

Source Code edit, compile, debug, link


A Ù aâ 1: D o c view request ( )
A Ø U Ù AÕU.Ø

2 : fetchDoc ( )

3: c r e a t e )(

4: c r e a t e )(

5 : readDoc ( )

EØ A Ø A Ø U Ù A Â AØAÂ 6 : f i l l D o c u m e n( )t
A Ø AÙ
A Õ AÙAØ AÕU.Ø

7 : readFile( )

8 : f i l l F i l(e)

EØeù AÕAÂ AØeùAØ 9 : sortByName( )


AÕeù A
ÌØ
A Ù A Ø AÕ E Ø e ù
AÙUØ.

Sequence Diagram

Executable System

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 39
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

risk targeting

Ñaùnh giaù requirements


analysis & design

implementation & testing

deployment

Thay ñoåi baûn thieát keá ?

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 40
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

risk targeting

Ñaùnh giaù requirements


analysis & design

implementation & testing

deployment

Caùi gì thay ñoåi? Nhöõng thay ñoåi naøy ñöôïc pheùp


khoâng?

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 41
Giaûi quyeát vaán ñeà nhôø moâ hình hoùa tröïc quan
Caùc nguyeân nhaân coát loõiLôøi
Lôøi giaûi
Caùc use-case vaø scenario
? Thieáu y/c ñ/v HT
ñaëc taû haønh vi roõ raøng
? Truyeàn tin mô hoà
Caùc moâ hình naém baét töôøng
? Kieán truùc keùm beàn minh caùc thieát keá
? Quaù phöùc taïp Caùc kieán truùc khoâng ñôn theå
? Ñaùnh giaù chuû quan hay cöùng nhaéc bò phôi baøy
? Caùc maâu thuaãn chöa Caùc chi tieát khoâng caàn thieát
xaùc ñònh ñöôïc che daáu khi caàn
? Test keùm Caùc thieát keá töôøng minh chæ ra
caùc maâu thuaãn deã daøng
? Qui trình thaùc nöôùc
Chaát löôïng cuûa öùng duïng ñi keøm
? Thay ñoåi khoâng theå KS
vôùi baûn thieát keá toát
? Thieáu ccuï töï ñoäng Caùc ccuï tröïc quan hoã trôï cho
moâ hình hoùa baèng UML
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 42
Kinh nghieäm 5: Kieåm ñònh chaát löôïng phaàn meàm

Develop Iteratively

Use
Manage Model
Component Visually
Requirements Verify
Architectures Quality

Control Changes

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

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

Cost

Development Deployment

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 44
PT theo voøng laëp cho pheùp test lieân tuïc

Iteration 1 Iteration 2 Iteration 3


R R R
D D D
C C C
T T T

Test Test Test


T I M E

Plan Plan Plan


Design Design Design
Test Implement Implement Implement
Life Execute Execute Execute
Cycle Evaluate Evaluate Evaluate

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 45
Test trong moät moâi tröôøng PT theo voøng laëp
Iteration 1 Iteration 2 Iteration 3 Iteration 4
Requirements
Automated Tests

Test Suite 1 Test Suite 2 Test Suite 3 Test Suite 4

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 46
Töï ñoäng hoùa giaûm thôøi gian vaø coâng söùc test

MoäOne
t chu
Manual
trình test
Testthuû
Cycle
coâng
13,000 laànTests
13,000 Test 2 Weeks
2 Tuaàn 6 People
6 Ngöôøi

Test
töï ñoäng

13,000Test
13,000 Test
66giôø
giôø
Ch?y ngày càng nhi?u test ho n
11ngöôø
ngöôøi i

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 47
Caùc khía caïnh cuûa chaát löôïng phaàn meàm

Kieåu Taïi sao? Theá naøo?


Chöùc naêng Ö/d cuûa toâi coù laøm nhöõng gì Taïo caùcTest case cho moãi
ñöôïc yeâu caàu? scenario ñaõ caøi ñaët

Ñoä tin caäy Ö/d cuûa toâi coù laøm maát boä Caùc coâng cuï phaân tích vaø
nhôù? caùc thieát bò coding

Hieäu naêng öùng Ö/d cuûa toâi coù hoài ñaùp hôïp Kieåm tra hieäu naêng cuûa moãi
duïng leä? use-case/scenario ñaõ caøi ñaët

Kieåm tra hieäu naêng cuûa taát


Hieäu naêng cuûa Ö/d cuûa toâi coù hoaït ñoäng caû use-case ôû möùc ñoä tin
heä thoáng döôùi coâng suaát thieát keá? caäy vaø tröôøng hôïp xaáu nhaát

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 48
Caùc vaán ñeà ñöôïc giaûi quyeát nhôø kieåm ñònh CL
Nguyeân nhaân coát loõi Caùch giaûi quyeát
? Thieáu y/c ñ/v HT Testing ñaùnh giaù khaùch quan
? Truyeàn tin mô hoà veà traïng thaùi döï aùn
? Kieán truùc keùm beàn Ñaùnh giaù khaùch quan trieät
? Quaù phöùc taïp tieâu caùc maâu thuaàn sôùm
? Ñaùnh giaù chuû quan Testing vaø kieåm ñònh taäp
? Caùc maâu thuaãn chöa trung vaøo vuøng high risk
ñöôïc xaùc ñònh
? Test keùm Tìm thaáy thieáu soùt sôùm vaø chi
phí söûa chöõa thaáp
? Qui trình thaùc nöôùc
? Thay ñoåi khoâng theå KS Caùc ccuï test töï ñoäng giuùp
? Thieáu ccuï töï ñoäng test ñoä tin caäy, chöùc naêng vaø
hieäu naêng
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 49
Kinh nghieäm 6: Kieåm soaùt thay ñoåi trong PM

Develop Iteratively

Use
Manage Model Verify
Component Visually
Requirements Quality
Architectures

Control Changes

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

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
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 51
Ba khía caïnh chính cuûa CM System

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 52
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 53
Change Control hoã trôï taát caû Best Practices khaùc
? Phaùt trieån theo ? Döï aùn chæ tieán trieån khi caùc thay
qui trình laëp ñoåi ñöôïc kieåm soaùt
? Quaûn lyù Y/c ? Ñ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
? Duøng kieán truùc
? Caùc Component phaûi ñaùng tin caäy,
component 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
? Moâ hình hoùa tröïc ? Ñeå baûo ñaûm söï hoäi tuï, phaûi taêng
quan daàn kieåm soaùt caùc model khi caùc
thieát keá oån ñònh
? Kieåm ñònh chaát ? Test chæ coù yù nghóa neáu caùc version
löôïng 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 54
Caùc vaàn ñeà ñöôïc giaûi quyeát nhôø Control Change
Nguyeân nhaân coát loõi Caùch giaûi quyeát
? Thieáu y/c ñ/v HT Requirements change workflow ñöôïc
xaùc ñònh vaø laëp laïi ñi laëp laïi
? Truyeàn tin mô hoà Caùc Change request laøm cho thoâng
? Kieán truùc keùm beàn tin trao ñoåi roõ raøng
Vuøng laøm vieäc bieät laäp giaûm caùc trôû
? Quaù phöùc taïp ngaïi do laøm vieäc song song
? Ñaùnh giaù chuû quan Thoáng keâ veà möùc ñoä thay ñoåi laø ñoä
ño toát cho caùc ñaùnh giaù khaùch quan
? Maâu thuaãn chöa ñöôïc veà traïng thaùi cuûa döï aùn
xaùc ñònh
Vuøng laøm vieäc chöùa taát caû caùc
? Test keùm artifact deã taïo söï nhaát quaùn
? Qui trình thaùc nöôùc Kieåm soaùt ñöôïc söï lan truyeàn caùc
thay ñoåi
? Thay ñoåi khoâng theå
Caùc thay ñoåi ñöôïc duy trì trong moät
kieåm soaùt heä thoáng maïnh meõ, coù khaû naêng tuøy
chænh
? Thieáu ccuï töï ñoäng
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 55
Caùc kinh nghieäm hoã trôï laãn nhau
Ensures users involved Manage
as requirements evolve Requirements

Validates architectural Use


Component
decisions early on
Architectures

Develop Addresses complexity of Model


Visually
Iteratively design/implementation incrementally

Measures quality early and often Verify


Quality

Evolves baselines incrementally Control


Changes

Các kinh nghi?m quí trong CNPM


Duong Anh Ð?c 56
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 Performance
Engineer
?Thoûa maõn nhu caàu userAnalyst

Project
Develop Iteratively
Manager
Developer
Use Model
Manage Component Visually Verify
Requirements Architectures Quality
Tester
Control
Changes
Release
Engineer
Các kinh nghi?m quí trong CNPM
Duong Anh Ð?c 57

You might also like