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

pdf57 trang | Chia sẻ: aloso | Lượt xem: 2012 | Lượt tải: 1download
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:

  • pdfNgôn ngữ UML - Bài 1.pdf