Upload
nguyen-tran
View
535
Download
2
Embed Size (px)
Citation preview
Công cụ môi trường phát triển phần mềm1
Các kinh nghiệm quí của Công nghệ phần mềm
Công cụ và môi trường phát triển phần mềm
Công cụ môi trường phát triển phần mềm2
Mục đích
ww KhKháám phm pháá ccáác tric triệệu chu chứứngng vvàà ccáác nguyên nhân cc nguyên nhân cốốt lõit lõi ccủủa ca cáác c vvấấn đn đềề trong phtrong pháát trit triểển phn phầần mn mềềmm
ww TrTrìình bnh bààyy 66 kinh nghikinh nghiệệm tm tốốtt ccủủa Rational tronga Rational trong ququáá trtrìình phnh pháát t tritriểển phn phầần mn mềềmm
ww Xem xXem xéét ct cáách sch sửử ddụụng cng cáác kinh nghic kinh nghiệệmm nnàày đy đểể gigiảảI quyI quyếết ct cáác c vvấấn đn đềề trong phtrong pháát trit triểển phn phầần mn mềềmm
Công cụ môi trường phát triển phần mềm3
Phân tích tình hình của CNPM
Kinh tế thế giới ngày càng phụ thuộc hơn vào CNPM
Các ứng dụng mở rộng vềkích thước, độ phức tạp, và phân bố
Thương trường đòi hỏi nâng cao năng suất, chất lượng vàgiảm thời gian
Không đủ nhân lực có trình độ
Công cụ môi trường phát triển phần mềm4
Phát triển phần mềm là công việc tập thể
ProjectManager
PerformanceEngineer
ReleaseEngineer
Analyst
Developer
Tester
Các thách thức
• Các nhóm đông hơn
• Sự chuyên môn hóa
• Phân tán
• Công nghệ thay đổi quá nhanh
Công cụ môi trường phát triển phần mềm5
• Nhiều thành công
• Quá nhiều thất bại
Chúng ta đã làm việc ra sao?
ProjectManager
PerformanceEngineer
ReleaseEngineer
Analyst
Tester
Developer
Công cụ môi trường phát triển phần mềm6
Các triệu chứng của các vấn đề trong phát triển PM
ww HiHiểểu không đu không đúúng nhng nhữững gng gìì ngư ngườời di dùùng cng cầầnnww Không thKhông thểể ththíích ch ứứng vng vớới ci cáác thay đc thay đổổi vi vềề yêu cyêu cầầuu ccủủaa hhệệ ththốống ng ww CCáácc ModuleModule không khkhông khớớp vp vớới nhaui nhauww PhPhầần mn mềềm khm khóó bbảảo tro trìì vvàà nâng cnâng cấấpp,, mmởở rrộộngngww PhPháát hit hiệện trn trễễ ccáác lc lỗỗ hhổổng cng củủa da dựự áán n ww ChChấất lưt lượợng phng phầần mn mềềm km kéémmww HiHiệệu năng cu năng củủa pha phầần mn mềềm thm thấấppww CCáác thc thàành viên trong nhnh viên trong nhóómm không bikhông biếết đưt đượợc ai đã thay đc ai đã thay đổổii ccáái i
ggìì, , khi nkhi nààoo, , ởở đâu đâu, , ttạạii sao phsao phảải thay đi thay đổổi i ww QuQuáá trtrììnhnh buildbuild--andand--release khôngrelease không đ đáángng tintin ccậậyy
Công cụ môi trường phát triển phần mềm7
Symptomsend-user needschanging requirementsmodules don’t fithard to maintainlate discoverypoor qualitypoor performancecolliding developers build-and-release
Root Causesinsufficient requirementsambiguous communicationsbrittle architectures overwhelming complexityundetected inconsistencies poor testingsubjective assessmentwaterfall development uncontrolled changeinsufficient automationDiagnose
Chữa trị triệu chứng không giải quyết hết vấn đề
Công cụ môi trường phát triển phần mềm8
Các nguyên nhân chính
ww SSựự ququảản lýn lý yêu cyêu cầầu u ngưngườời di dùùng không đng không đầầy đy đủủww Trao đTrao đổổi thôngi thông tintin mơ h mơ hồồ vvàà không đ không đầầy đy đủủww KiKiếến trn trúúc không vc không vữững chng chắắc c ww ĐĐộộ phphứức tc tạạp vưp vượợt qut quáá ttầầm kim kiểểm som soááttww CCóó nhnhữững mâu thung mâu thuẫẫn không phn không pháát hit hiệện đưn đượợc gic giữữaa yêu cyêu cầầu,u,
thithiếết kt kếế, , vvàà ccàài đi đặặttww KiKiểểm chm chứứng không đng không đầầy đy đủủww SSựự lư lượợng ging giáá chchủủ quan vquan vềề ttìình trnh trạạng cng củủa da dựự áánnww SSựự chchậậm trm trễễ trong vitrong việệc gic giảảm rm rủủi roi ro dodo mô hmô hìình thnh tháác nưc nướớc c ww SSựự lan truylan truyềền không thn không thểể kikiểểm som soáát ct củủa ca cáác thay đc thay đổổiiww ThiThiếếu cu cáác công cc công cụụ ttựự đ độộng hng hóóaa
Công cụ môi trường phát triển phần mềm9
þþ CCáácc yêu cyêu cầầuu không đ không đầầy đy đủủþþ Trao đTrao đổổi thôngi thông tintin mơ h mơ hồồþþ KiKiếến trn trúúc kc kéém bm bềền vn vữữngngþþ ĐĐộộ phphứức tc tạạp qup quáá caocaoþþ CCáác lưc lượợng ging giáá chchủủ quan quan þþ CCáác mâu thuc mâu thuẫẫn chưa thn chưa thấấyyþþ KiKiểểm chm chứứng nghng nghèèo no nàànnþþ Qui trQui trììnhnh phpháát trit triểển thn tháác nưc nướớccþþ SSựự thay đ thay đổổi khôngi không kikiểểm som soááttþþ ThiThiếếu su sựự ttựự đ độộng hng hóóaa
þþ PhPháát trit triểển theo vòng ln theo vòng lặặppþþ QuQuảản trn trịị ccáácc yêu cyêu cầầuuþþ SSửử ddụụngng kikiếến trn trúúc c
componentcomponentþþ Mô hMô hìình hnh hóóa tra trựực quanc quanþþ KiKiểểm đm địịnh chnh chấất lưt lượợngngþþ KiKiểểm som soáát ct cáác thay đc thay đổổii
Nguyên nhân cNguyên nhân cốốt lõit lõi CCáác kinh nghic kinh nghiệệm tm tốốtt
Các kinh nghiệm giúp giải quyết các vấn đề
Công cụ môi trường phát triển phần mềm10
Symptomsend-user needschanging requirementsmodules don’t fithard to maintainlate discoverypoor qualitypoor performancecolliding developers build-and-release
Root Causesinsufficient requirementsambiguous communicationsbrittle architectures overwhelming complexityundetected inconsistencies poor testingsubjective assessmentwaterfall development uncontrolled changeinsufficient automation
Best Practicesdevelop iteratively manage requirementsuse component architecturesmodel the software visuallyverify qualitycontrol changes
Giải quyết các nguyên nhân giúp giảm các triệu chứng
Công cụ môi trường phát triển phần mềm11
PhPháát trit triểển theo vòng ln theo vòng lặặpp
KiKiểểm som soáát ct cáác thay đc thay đổổi trong hi trong hệệ ththốốngng
SSửử ddụụngngkikiếến trn trúúcc
ComponentComponentQuQuảản trn trịị
ccáácc yêu cyêu cầầuuMô hMô hìình hnh hóóaa
trtrựực quanc quanKiKiểểm đm địịnhnhchchấất lưt lượợngng
Các kinh nghiệm quí của CNPM
Công cụ môi trường phát triển phần mềm12
Các kinh nghiệm tạo ra các nhóm làm việc hiệu năng cao
ProjectManager
PerformanceEngineer
ReleaseEngineer
Analyst
Developer
Tester
Kết quả
• Nhiều dự án thành công hơn
KiKiểểm som soáát ct cáác thay đc thay đổổI trong hI trong hệệ ththốốngng
PhPháát trit triểển theo vòng ln theo vòng lặặpp
SSửử ddụụng ng kikiếến trn trúúcc
ComponentComponent
QuQuảản trn trịịccáác yêu cc yêu cầầuu
Mô hMô hìình hnh hóóaatrtrựực quanc quan
KiKiểểm đm địịnhnhchchấất lưt lượợngng
Công cụ môi trường phát triển phần mềm13
Kinh nghiệm 1: Phát triển phần mềm theo vòng lặp
PhPháát trit triểển theo vòng ln theo vòng lặặpp
Kiểm soát các thay đổi trong hệ thống
Sử dụngkiến trúc
ComponentQuản trị
các yêu cầuMô hình hóa
trực quanKiểm địnhchất lượng
Công cụ môi trường phát triển phần mềm14
Thời gian và tiền bạc chi ra để cài đặt một thiết kế sai là không thể bù đắp
Kinh nghiệm 1: Phát triển phần mềm theo vòng lặp(tt)
ww MMộột thit thiếết kt kếế banban đ đầầu cu cóó ththểể không hokhông hoààn chn chỉỉnhnh soso vvớới ci cáác yêu c yêu ccầầu chu chíínhnh
ww ViViệệc phc pháát hit hiệện trn trễễ ccáác thic thiếếu su sóót trong bt trong bảản thin thiếết kt kếế ssẽẽ llààm tăng m tăng gigiáá ththàànhnh,, ttốốn thn thờời gian vi gian vàà ththậậm chm chíí llààm hm hủủy by bỏỏ ddựự áánn
Thời gian và tiền bạc chi ra để cài đặt một thiết kế sai là không thể bù đắp
Công cụ môi trường phát triển phần mềm15
T I M E
Qui trình thác nước truyền thống
Subsystem Testing
System Testing
Code & Unit Testing
Design
Requirements Analysis
Công cụ môi trường phát triển phần mềm16
RISK
T I M E
Qui trình thác nước có nhiều rủi ro
Subsystem Testing
System Testing
Code & Unit Testing
Design
Requirements Analysis
Công cụ môi trường phát triển phần mềm17
Ứng dụng qui trình thác nước theo vòng lặp
ww CCáác vòng lc vòng lặặp đp đầầu du dàành cho cnh cho cáácc vvấấn đn đềề nhinhiềều ru rủủi roi roww MMỗỗi vòng li vòng lặặpp sinh ra msinh ra mộột phiên bt phiên bảản vn vớớii mmộột st sựự bbổổ sungsung cho hcho hệệ
ththốốngngww MMỗỗii vòng lvòng lặặpp bao gbao gồồm cm cảả viviệệc tc tíích hch hợợpp vvàà kikiểểm chm chứứngng
TC
DR
T I M E
Iteration 1 Iteration 2 Iteration 3
TC
DR
TC
DR
Công cụ môi trường phát triển phần mềm18
Qui trình lặp đẩy nhanh việc giảm rủi ro
WaterfallIterative
R
I
S
K
T I M EIteration Iteration Iteration Iteration Iteration Iteration Iteration
Công cụ môi trường phát triển phần mềm19
Các đặc tính của qui trình lặp
ww CCáác rc rủủi ro chi ro chíính đưnh đượợc gic giảải quyi quyếếtt trưtrướớc khi cc khi cóó ccáác phc pháát trit triểển ln lớớnnww CCáác vòng lc vòng lặặp đp đầầu tiên cho phu tiên cho phéépp nhnhậậnn feedback feedback ww ViViệệc kic kiểểm chm chứứng vng vàà ttíích hch hợợp dip diễễn ra liên tn ra liên tụục c ww CCáác cc cộột mt mốốc cc cụục bc bộộ ssẽẽ đ địịnh ranh ra ccáác tiêu đic tiêu điểểm ngm ngắắn hn hạạnnww SSựự titiếến trin triểểnn đưđượợc đo bc đo bằằngng bbảản cn càài đi đặặttww CCáác cc càài đi đặặt bt bộộ phphậận cn cóó ththểể tritriểển khai riêngn khai riêng
Công cụ môi trường phát triển phần mềm20
Áp dụng các kinh nghiệm trong chu kỳ sống của PM
Công cụ môi trường phát triển phần mềm21
NhNhậận vn vàà khuykhuyếến khn khíích cch cááccfeedbackfeedback ttừừ ngư ngườời di dùùngngCCáác hic hiểểu lu lầầm nghiêm trm nghiêm trọọng ng đưđượợc lc lààm rõ sm rõ sớớmm
TTậập trung php trung pháát trit triểểnn ccáác khc kháái i niniệệm chm chứứa nhia nhiềều ru rủủi ro trưi ro trướớccĐĐáánh ginh giáá khkháách quan thôngch quan thôngqua test qua test
Mâu thuMâu thuẫẫn đc phn đc pháát hit hiệện sn sớớmm
BBắắt đt đầầuu testtest ssớớmm
CCáác rc rủủi ro đưi ro đượợc xc xáác đc địịnh vnh vààgigiảải quyi quyếết st sớớmm
Qui trình lặp giải quyết các vấn đề
Nguyên nhân cNguyên nhân cốốt lõit lõi CCáách gich giảải quyi quyếếttþþ Không đKhông đủủ ccáác yêu cc yêu cầầuu đđốốI I
vvớớii hhệệ ththốốngngþþ Trao đTrao đổổii thông tinthông tin mơ h mơ hồồ¨̈ KiKiếến trn trúúc kc kéém bm bềền vn vữữngngþþ ĐĐộộ phphứức tc tạạp qup quáá caocaoþþ ĐĐáánh ginh giáá chchủủ quanquanþþ CCáác mâu thuc mâu thuẫẫn không đưn không đượợc c
phpháát hit hiệệnnþþ KiKiểểm chm chứứng kng kéémmþþ Qui trQui trììnhnh ththáác nưc nướớcc¨̈ CCáác thay đc thay đổổi không kii không kiểểm som soáátt¨̈ ThiThiếếu công cu công cụụ ttựự đ độộngng
Công cụ môi trường phát triển phần mềm22
Kinh nghiệm 2: Quản lý yêu cầu đốI với hệ thống
Phát triển theo vòng lặp
Quản trịcác yêu cầu
Kiểm soát các thay đổi trong hệ thống
Sử dụngkiến trúc
ComponentMô hình hóa
trực quanKiểm địnhchất lượng
Công cụ môi trường phát triển phần mềm23
Yêu cầu đối với hệ thống luôn động --Phải lường trước khả năng chúng bị thay đổi trong quá trình
phát triển phần mềm
Kinh nghiệm 2: Quản lý yêu cầu đối với hệ thống(tt)
ww Suy dSuy dẫẫnn, , ttổổ chchứứcc, , vvàà ttạạo sưu lio sưu liệệuu vvềề ccáác c yêu cyêu cầầu chu chứức năngc năng vvàà ccáác rc rààng bung buộộcc
ww LưLượợng ging giáá ccáác thay đc thay đổổii vvàà xxáác đc địịnh nh ảảnh nh hưhưởởng cng củủa cha chúúngng
ww TheoTheo ddấấu vu vàà tao sưu li tao sưu liệệu vu vềề ccáác thc thỏỏa a hihiệệpp && ccáác quyc quyếết đt địịnhnh
Công cụ môi trường phát triển phần mềm24
Định nghĩa: Yêu cầu đối với HT và sự quản lý chúng
ww MMộộtt yêu cyêu cầầuu llàà mmộột đit điềều kiu kiệệnn hohoặặc khc khảả năng năng mmàà hhệệ ththốống phng phảải i tuân theotuân theo//ccóó
ww QuQuảản lýn lý yêu cyêu cầầuu llàà mmộột tit tiếếp cp cậận cn cóó hhệệ ththốống đng đểể::§ Suy dẫn, tổ chức, và tạo sưu liệu về các yêu cầu chức năngđối với hệ thống, vৠThiết lập và duy trì sự thỏa thuận giữa customer/user và
project team liên quan đến các thay đổi về yêu cầu đối vớihệ thống
Công cụ môi trường phát triển phần mềm25
Thỏa thuận về những gì mà hệ thống phải làm
Đích
Surrogate Goal
Xác minhCác yêu cầu
Cộng đồng Các Customer
User
Các yêu cầu
Hệ thốngcần xây dựng
Adapted from Al Davis
Công cụ môi trường phát triển phần mềm26
Yêu cầu ảnh hưởng đến nhiều thành phần khác
Công cụ môi trường phát triển phần mềm27
Làm thế nào để bắt được lỗi về yêu cầu sớm?
ww Phân tPhân tíích vch vấấn đn đềề vvàà suy dsuy dẫẫn ra cn ra cáác nhu cc nhu cầầuu ccủủa ngưa ngườời di dùùng ng mmộột ct cáách cch cóó hihiệệu quu quảả
ww ĐĐạạt đưt đượợc thc thỏỏa thua thuậận vn vớớii customer/user customer/user vvềề ccáác yêu cc yêu cầầu đu đốối vi vớới i hhệệ ththốốngng
ww Mô hMô hìình hnh hóóa sa sựự tương t tương táác gic giữữaa user user vvàà systemsystemww ThiThiếết lt lậập mp mộột đưt đườờng ranh ging ranh giớớii (baseline) (baseline) vvàà quiqui trtrìình kinh kiểểm som soáát t
thay đthay đổổii (change control process)(change control process)ww Duy trDuy trìì khkhảả năng theo v năng theo vếết tit tiếến vn vàà llùùii ccáác yêu cc yêu cầầuu đđốốI vI vớớii hhệệ
ththốốngngww SSửử ddụụng mng mộộtt quiqui trtrìình lnh lặặpp
Công cụ môi trường phát triển phần mềm28
Các vấn đề giải quyết nhờ quản lý yêu cầu đối với HT
Nguyên nhân cNguyên nhân cốốt lõit lõi CCáách gich giảải quyi quyếếttXây dựng trong quản lý Y/Cmột tiếp cận kỷ luậtTrao đổi thông tin dựa trên các y/c đã xác địnhĐặt độ ưu tiên, lọc và theo dõi các yêu cầuĐánh giá khách quan các chức năng và hiệu năngCác mâu thuẫn đễ phát hiệnRM tool cung cấp một kho chứa các y/c, thuộc tính và đồhình, sẽ được kết nối tự động với sưu liệu
þþ ThiThiếếu cu cáácc y y/c/c đ đ/v HT/v HTþþ Trao đTrao đổổii TTTT mơ h mơ hồồ¨̈ KiKiếến trn trúúc kc kéém bm bềền vn vữữngngþþ ĐĐộộ phphứức tc tạạp qup quáá caocaoþþ ĐĐáánh ginh giáá chchủủ quanquanþþ CCáác mâu thuc mâu thuẫẫn không n không
đưđượợc phc pháát hit hiệệnnþþ KiKiểểm chm chứứng kng kéémm¨̈ QTQT ththáác nưc nướớcc¨̈ CCáác thay đc thay đổổi không ksi không ksþþ ThiThiếếu ccu ccụụ ttựự đ độộngng
Công cụ môi trường phát triển phần mềm29
Kinh nghiệm 3: Dùng kiến trúc Component-Based
Phát triển theo vòng lặp
Quản trịcác yêu cầu
SSửử ddụụngngkikiếến trn trúúcc
ComponentComponent
Kiểm soát các thay đổi trong hệ thống
Mô hình hóatrực quan
Kiểm địnhchất lượng
Công cụ môi trường phát triển phần mềm30
Kiến trúc phần mềm xác định:
ww KiKiếến trn trúúc phc phầần mn mềềmm chchứứa đa đựựngng ccáác quyc quyếết đt địịnh quan trnh quan trọọng vng vềềttổổ chchứức cc củủaa hhệệ ththốống phng phầần mn mềềmm§ Sự lựa chọn các phần tử cầu trúc và interface của chúng để
cấu thành một hệ thống§ Hành vi được mô tả như sự cộng tác giữa các phần tử này§ Sự tổng hợp của các phẩn tử cấu trúc và hành vi này thành
các subsystem lớn hơn§ Kiểu kiến trúc định hướng cho tổ chức này, cho các phần tử
cấu trúc và interface của chúng, các công tác, và sự tổng hợp giữa chúng
Công cụ môi trường phát triển phần mềm31
Các ảnh hưởng của kiến trúc
ww KiKiếến trn trúúc phc phầần mn mềềmm liên quan đliên quan đếến cn cấấu tru trúúcc,, hhàànhnh vi vi vvàà ngngữữccảảnhnh (context):(context):§ Cách dùng (Usage)§ Chức năng (Functionality)§ Hiệu năng (Performance)§ Tính co dãn (Resilience)§ Khả năng tái sử dụng (Reuse)§ Tính dễ hiểu (Comprehensibility)§ Các ràng buộc về kinh tế và kỹ thuật và các dung hòa§ Tính thẩm mỹ (Aesthetics)
Công cụ môi trường phát triển phần mềm32
Resilient, Component-Based Architectures
ww CCáác kic kiếến trn trúúc tc tốốtt ththỏỏa mãn ca mãn cáácc yêu cyêu cầầu đu đốối vi vớới i chchúúngng, , llàà ttíính nh đđààn hn hồồii,, vvàà componentcomponent--basedbased
ww MMộột kit kiếến trn trúúcc đđààn hn hồồii cho phcho phéépp§ Tăng cường khả năng dễ bảo trì và dễ mở rộng§ Khả năng tái sử dụng với lợi ích kinh tế cao§ Phân chia công việc rõ ràng trong đội ngũ phát triển phần
mềm§ Gói gọn các phụ thuộc phần cứng & hệ thống
ww MMộột kit kiếến trn trúúcc componentcomponent--basedbased cho phcho phéépp§ Tái sử dụng hoặc tùy chỉnh các component sẵn có§ Chọn lựa giữa hàng ngàn component thương mại trên thị
trường§ Tiến hóa không ngừng phần mềm đang tồn tại
Công cụ môi trường phát triển phần mềm33
Ví dụ: Component-Based Architecture
Key:- Purchased- Built- New
User Interface Mechanisms
Oracle Vantive
Customer Product
Lead TrackingUser Interface
License
Licensing User Interface
Công cụ môi trường phát triển phần mềm34
Kiến trúc Component giải quyết các vấn đề
CCáácc ComponentComponent ddễễ ttạạo rao ra ccáác c kikiếến trn trúúc đc đààn hn hồồi i TTáái si sửử ddụụng cng cáácc com.com. vvààframework framework Thương mThương mạại tri trởởnên dnên dễễ ddààngng
TTíính đơn thnh đơn thểể cho phcho phéépp phân phân ttáách cch cáác đic điềềuu lolo llắắngng
Component Component cung ccung cấấp np nềền n ttảảngng ttựự nhiênnhiên cho qucho quảản lý n lý ccấấu hu hììnhnhCCáác ccc ccụụ mô hmô hìình hnh hóóa tra trựực c quanquan hhỗỗ trtrợợ thithiếết kt kếế ttựự đ độộngngcomponentcomponent--basedbased
CCáác nguyên nhân cc nguyên nhân cốốt lõit lõi CCáách gich giảải quyi quyếếtt¨̈ ThiThiếếuu y y/c/c đ đ/v/v hhệệ ththốốngng¨̈ Trao đTrao đổổii TTTT mơ h mơ hồồþþ KiKiếến trn trúúc kc kéém bm bềềnnþþ QuQuáá phphứức tc tạạpp¨̈ ĐĐáánh ginh giáá chchủủ quanquan¨̈ CCáác mâu thuc mâu thuẫẫn chưa n chưa
xxáác đc địịnhnh¨̈ TestTest kkéémm¨̈ QuiQui trtrìình thnh tháác nưc nướớccþþ CCáác thay đc thay đổổi không thi không thểể
kikiểểm som soááttþþ ThiThiếếu ccu ccụụ ttựự đ độộngng
Công cụ môi trường phát triển phần mềm35
Kinh nghiệm 4: Mô hình hóa trực quan phần mềm
Phát triển theo vòng lặp
Quản trịcác yêu cầu Mô hMô hìình hnh hóóaa
trtrựực quanc quan
Kiểm soát các thay đổi trong hệ thống
Sử dụngkiến trúc
ComponentKiểm địnhchất lượng
Công cụ môi trường phát triển phần mềm36
Mô hình hóa trực quan tăng khả năngquản lý độ phức tạp của phần mềm
Kinh nghiệm 4: Mô hình hóa trực quan phần mềm(tt)
ww NNắắm bm bắắtt ccấấu tru trúúc vc vàà hhàànhnh vivi ccủủa ca cáácc ththàành phnh phầần kin kiếến trn trúúccww ThThểể hihiệện cn cáách mch màà ccáácc phphầần tn tửử hhệệ ththốống khng khớớp vp vớới nhaui nhauww Che dChe dấấu hou hoặặcc phơi bphơi bààyy chichi titiếếtt theo nhu ctheo nhu cầầu công viu công việệc c ww Duy trDuy trìì ttíínhnh nhnhấất qut quáán gin giữữaa thithiếết kt kếế vvàà ccàài đi đặặttww Tăng cưTăng cườờng trao đng trao đổổi thôngi thông tintin rõ rrõ rààngng
Công cụ môi trường phát triển phần mềm37
UML là gì?
ww Unified Modeling Language (UML) Unified Modeling Language (UML) llàà ngôn ngngôn ngữữ• đặc tả• trực quan hóa• xây dựng• làm sưu liệu, các artifact của một hệ thống phần mềm
Công cụ môi trường phát triển phần mềm38
Các lược đồ là các khung nhìn của mô hìnhMột mô hình là một môtả đầy đủ của hệ thốngtừ một phối cảnh cụ thể
DeploymentDiagrams
DeploymentDiagrams
use-caseDiagramsuse-caseDiagrams
ScenarioDiagramsScenarioDiagramsScenario
DiagramsScenarioDiagramsSequence
DiagramsSequenceDiagrams
StateDiagrams
StateDiagramsState
DiagramsState
DiagramsStateDiagrams
StateDiagrams
ComponentDiagrams
ComponentDiagramsComponent
DiagramsComponentDiagramsComponentDiagrams
ComponentDiagrams
Models
StateDiagrams
StateDiagramsState
DiagramsState
DiagramsObjectDiagramsObject
Diagrams
ScenarioDiagramsScenarioDiagramsScenario
DiagramsScenarioDiagramsCollaboration
DiagramsCollaboration
Diagrams
ActivityDiagramsActivity
Diagrams
StateDiagrams
StateDiagramsState
DiagramsState
DiagramsClassDiagrams
ClassDiagrams
Công cụ môi trường phát triển phần mềm39
Mô hình hóa trực quan dùng các lược đồ UML
Actor A
use-case 1
use-case 2
Actor B
user : »ç¿ëÀÚ
mainWnd : MainWnd
fileMgr : FileMgr
repository : Repositorydocument : Document
gFile : GrpFile
9: sortByN ame ( )
L1: Doc view request ( )
2: fetchDoc( )
5: readDoc ( )
7: readFile ( )
3: create ( )
6: fillDocument ( )
4: create ( )
8: fillFile ( )
GrpFile
read( )open( )create( )fillFile( )
rep
Repository
name : char * = 0
readDoc( )readFile( )
(from Persistence)
FileMgr
fetchDoc( )sortByName( )
DocumentList
add( )delete( )
Document
name : intdocid : intnumField : int
get( )open( )close( )read( )sortFileList( )create( )fillDocument( )
fList
1
FileList
add( )delete( )
1
File
read( )
read() fill the code..
UI
MFC
RogueWave
global
DocumentApp
PersistenceWi ndow95
¹®¼-°ü¸®Å¬¶óÀ̾ðÆ®.EXE
Wi ndowsNT
¹®¼-°ü¸® ¿£Áø.EXE
Wi ndowsNT
Wi ndows95
Solaris
ÀÀ¿ë¼-¹ö.EXE
AlphaUNIX
IBM Mainframe
µ¥ÀÌŸº£À̽º¼- ¹ö
Wi ndows95
¹®¼-°ü¸® ¾ÖÇ Ã¸´
ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾ î¹× ³× Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½ ýºÅÛ ¿¬°á ¸ ðµ¨- À©µµ¿ì 95 : Ŭ¶óÀ̾ ðÆ®- À©µµ¿ì NT: ÀÀ¿ë¼-¹ ö- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹ × µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ ö, Åë½ Å ¼-¹ö
Document
FileManager
GraphicFileFile
Repository DocumentList
FileList
usermainWnd fileMgr :
FileMgrrepositorydocument :
DocumentgFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByN ame ( )
ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦»ç¿ëÀÚ°¡ ¿äÃ»Ç Ñ´Ù.
È-ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼-°´Ã¼¿¡ ¼ ³Á¤À» ¿äÃ»Ç Ñ´Ù.
È-¸é °´Ã¼ ´Â ÀÐ ¾îµéÀΰ´Ã¼µé¿¡ ´ëÇØ À̸§º°·ÎÁ¤·ÄÀ» ½ ÃÄÑ È- ¸é¿¡º¸¿©ÁØ´ Ù.
Customernameaddr
withdraw()fetch()send()
receive()
<<entity>>
Forward Engineering (Code Generation)and
Reverse Engineering
Executable System
User InterfaceDefinition
DomainExpert
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ông cụ môi trường phát triển phần mềm40
Thay đổi bản thiết kế?
Mô hình hóa trực quan và phát triển theo vòng lặp
Yêu cầu ban đầu
implementation & testing
risk targeting
deployment
Đánh giá requirements analysis & design
Công cụ môi trường phát triển phần mềm41
Cái gì thay đổi? Những thay đổi này được phép không?
Mô hình hóa trực quan và phát triển theo vòng lặp
Yêu cầu ban đầu
implementation & testing
risk targeting
deployment
Đánh giá requirements analysis & design
Công cụ môi trường phát triển phần mềm42
Giải quyết vấn đề nhờ mô hình hóa trực quan
CCáácc useuse--casecase vvàà scenario scenario đđặặc tc tảả hhàànhnh vivi rõ rrõ rààngngCCáác mô hc mô hìình nnh nắắm bm bắắtt tưtườờng ng minh cminh cáác thic thiếết kt kếếCCáác kic kiếến trn trúúc không đơn thc không đơn thểể hayhayccứứng nhng nhắắc bc bịị phơi b phơi bààyyCCáácc chichi titiếết không ct không cầần thin thiếết t đưđượợc che dc che dấấu khi cu khi cầầnnCCáác thic thiếết kt kếế tư tườờng minh chng minh chỉỉ ra ra ccáác mâu thuc mâu thuẫẫn dn dễễ ddààngngChChấất lưt lượợng cng củủa a ứứng dng dụụngng đi đi kkèèm vm vớới bi bảản thin thiếết kt kếế ttốốttCCáác ccc ccụụ trtrựực quanc quan hhỗỗ trtrợợ chochomô hmô hìình hnh hóóa ba bằằngng UMLUML
CCáác nguyên nhân cc nguyên nhân cốốt lõit lõi LLờời gii giảảiiþþ ThiThiếếuu y y/c/c đ đ/v HT/v HTþþ TruyTruyềềnn tintin mơ h mơ hồồþþ KiKiếến trn trúúc kc kéém bm bềềnnþþ QuQuáá phphứức tc tạạpp¨̈ ĐĐáánh ginh giáá chchủủ quanquanþþ CCáác mâu thuc mâu thuẫẫn chưa n chưa
xxáác đc địịnhnhþþ TestTest kkéémm¨̈ QuiQui trtrìình thnh tháác nưc nướớcc¨̈ Thay đThay đổổi không thi không thểể KSKSþþ ThiThiếếu ccu ccụụ ttựự đ độộngng
Công cụ môi trường phát triển phần mềm43
Kinh nghiệm 5: Kiểm định chất lượng phần mềm
Phát triển theo vòng lặp
Quản trịcác yêu cầu
KiKiểểm đm địịnhnhchchấất lưt lượợngng
Kiểm soát các thay đổi trong hệ thống
Sử dụngkiến trúc
ComponentMô hình hóa
trực quan
Công cụ môi trường phát triển phần mềm44
Chi phí tìm kiếm và sửa chữa các vấn đề của phần mềm sẽ tăng hàng trăm, hàng ngàn lần sau khi phát triển
Development Deployment
Cost
Kinh nghiệm 5: Kiểm định chất lượng phần mềm (tt)
Công cụ môi trường phát triển phần mềm45
Phát triển theo vòng lặp cho phép test liên tục
T I M ETest Test Test
TC
DR
Iteration 1 Iteration 2 Iteration 3
TC
DR
TC
DR
Test Life
Cycle Evaluate
PlanDesign
ImplementExecute
Evaluate
PlanDesign
ImplementExecute
Evaluate
PlanDesign
ImplementExecute
Công cụ môi trường phát triển phần mềm46
Test trong một môi trường phát triển theo vòng lặpR
equi
rem
ents
Req
uire
men
ts
Test Suite 1Test Suite 1
Iteration 2Iteration 2 Iteration 3Iteration 3 Iteration 4Iteration 4
Test Suite 2Test Suite 2 Test Suite 3Test Suite 3 Test Suite 4Test Suite 4
Iteration 1Iteration 1
Auto
mat
ed T
ests
Auto
mat
ed T
ests
Công cụ môi trường phát triển phần mềm47
Tự động hóa giảm thời gian và công sức test
One Manual Test Cycle13,000 Tests 2 Weeks 6 People
13,000 Test6 giờ
1 người
13,000 Test6 giờ
1 người
Một chu trình test thủ công13,000 lần Test 2 Tuần 6 Người
Testtự động
Chạy ngày càng nhiều test hơn
Công cụ môi trường phát triển phần mềm48
Các khía cạnh của chất lượng phần mềm
Chức năng
Độ tin cậy
Hiệu năng ứng dụng
Hiệu năng của hệ thống
Ứng dụng của tôi có làm những gì được yêu cầu?
Ứng dụng của tôi có làm mất bộnhớ?
Ứng dụng của tôi có hồi đáp hợp lệ?
Ứng dụng của tôi có hoạt động dưới công suất thiết kế?
Tạo cácTest case cho mỗiscenario đã cài đặt
Các công cụ phân tích và các thiết bị coding
Kiểm tra hiệu năng của mỗiuse-case/scenario đã cài đặt
Kiểm tra hiệu năng của tất cảuse-case ở mức độ tin cậy và trường hợp xấu nhất
Kiểu Tại sao? Thế nào?
Công cụ môi trường phát triển phần mềm49
Các vấn đề được giải quyết nhờ kiểm định chất lượng
Testing Testing đđáánh ginh giáá khkháách quan ch quan vvềề trtrạạng thng tháái di dựự áánn
ĐĐáánh ginh giáá khkháách quan trich quan triệệt t tiêu ctiêu cáác mâu thuc mâu thuầần sn sớớmm
Testing Testing vvàà kikiểểm đm địịnhnh ttậập p trung vtrung vààoo vvùùngng high riskhigh risk
TTììm thm thấấy thiy thiếếu su sóót st sớớm vm vàà chichiphphíí ssửửa cha chữữa tha thấấpp
CCáác ccc ccụụ test test ttựự đ độộng ging giúúpptesttest đ độộ tintin ccậậyy,, chchứức năngc năng vvààhihiệệu năngu năng
Nguyên nhân cNguyên nhân cốốt lõit lõi CCáách gich giảải quyi quyếếtt¨̈ ThiThiếếuu y y/c/c đ đ/v HT/v HT¨̈ TruyTruyềềnn tintin mơ h mơ hồồ¨̈ KiKiếến trn trúúc kc kéém bm bềềnn¨̈ QuQuáá phphứức tc tạạppþþ ĐĐáánh ginh giáá chchủủ quanquanþþ CCáác mâu thuc mâu thuẫẫn chưa n chưa
đưđượợc xc xáác đc địịnhnhþþ TestTest kkéémm¨̈ QuiQui trtrìình thnh tháác nưc nướớcc¨̈ Thay đThay đổổi không thi không thểể KSKSþþ ThiThiếếu ccu ccụụ ttựự đ độộngng
Công cụ môi trường phát triển phần mềm50
Kinh nghiệm 6: Kiểm soát thay đổi trong phần mềm
Phát triển theo vòng lặp
Quản trịcác yêu cầu
KiKiểểm som soáát ct cáác thay đc thay đổổi trong hi trong hệệ ththốốngng
Sử dụngkiến trúc
ComponentMô hình hóa
trực quanKiểm địnhchất lượng
Công cụ môi trường phát triển phần mềm51
Thiếu sự kiểm soát tường minh, đầy đủPhát triển song song dễ biến thành hỗn độn
Kinh nghiệm 6: Kiểm soát thay đổi trong phần mềm (tt)
ww NhiNhiềềuu developerdeveloperww NhiNhiềềuu teamteamww NhiNhiềềuu vvịị trtrííww NhiNhiềềuu vòng lvòng lậậppww NhiNhiềềuu releasereleaseww NhiNhiềềuu projectprojectww NhiNhiềềuu platformplatform
Công cụ môi trường phát triển phần mềm52
Ba khía cạnh chính của CM System
Công cụ môi trường phát triển phần mềm53
Các khái niệm của Configuration & Change M.
ww Phân rã kiPhân rã kiếến trn trúúcc ththàành cnh cáácc subsystemsubsystem vvàà ggáánn trtráách nhich nhiệệm m ththựực hic hiệện cn cáácc subsystemsubsystem cho mcho mỗỗi nhi nhóóm m
ww ThiThiếết lt lậập vp vùùng lng lààm vim việệcc anan totoààn cho mn cho mỗỗii developerdeveloper§ Cho phép cô lập với các thay đổi tạo bởi vùng làm việc khác § Kiểm soát tất cả software artifact - models, code, docs, …
ww ThiThiếết lt lậập mp mộột vt vùùng lng lààm vim việệc tc tíích hch hợợppww ThiThiếết lt lậập mp mộột cơ cht cơ chếế khkhảả thi kithi kiểểm som soáátt ccáác thay đc thay đổổiiww NNắắm bm bắắt thay đt thay đổổi xui xuấất hit hiệệnn nnàào xuo xuấất hit hiệện trongn trong releaserelease nnààooww Đưa ra mĐưa ra mộộtt đưđườờng ranh ging ranh giớới hi hạạn chn chỗỗ hohoààn tn tấất ct củủa ma mỗỗi vòng i vòng
llặặpp
Công cụ môi trường phát triển phần mềm54
Kiểm soát thay đổi hỗ trợ tất cả Best Practices khác
ww PhPháát trit triểển theon theo quiquitrtrìình lnh lặặpp
ww QuQuảản lýn lý yêu cyêu cầầuu
ww DDùùng king kiếến trn trúúcccomponentcomponent
ww Mô hMô hìình hnh hóóa tra trựực c quanquan
ww KiKiểểm đm địịnh chnh chấất t lưlượợngng
èè DDựự áán chn chỉỉ titiếến trin triểển khi cn khi cáác thay đc thay đổổi i đưđượợc kic kiểểm som soáátt
èè ĐĐểể loloạại bi bỏỏ ssựự dãn phdãn phạạm vm vịị, , đđáánh ginh giááảảnh hưnh hưởởngng ccủủa ma mọọi thay đi thay đổổi di dựự kikiếến n trưtrướớc khi chc khi chấấp nhp nhậậnn
èè CCáácc Component Component phphảải đi đáángng tintin ccậậyy, i.e., , i.e., ttììm thm thấấy phiên by phiên bảản đn đúúng đng đắắn cn củủa ta tấất ct cảảccáác phc phầần hn hợợp thp thàànhnh
èè ĐĐểể bbảảo đo đảảm sm sựự hhộội ti tụụ,, phphảải tăng i tăng ddầần kin kiểểm som soáátt ccáácc modelmodel khi ckhi cáác c thithiếết kt kếế ổổn đn địịnhnh
èè Test Test chchỉỉ ccóó ýý nghnghĩĩa na nếếuu ccáácc versionversionccáác phc phầần tn tửử đang đang test test đưđượợc bic biếết rõ vt rõ vààccáác phc phầần tn tửử đưđượợc bc bỏỏa va vệệ trư trướớc cc cáác c thay đthay đổổii
Công cụ môi trường phát triển phần mềm55
Các vần đề được giải quyết nhờ kiểm soát thay đổi
Requirements change workflow Requirements change workflow đưđượợc xc xáác đc địịnh vnh vàà llặặp lp lạại đi li đi lặặp lp lạạiiCCáácc Change request Change request llààm cho thôngm cho thôngtintin trao đ trao đổổi rõ ri rõ rààngngVVùùng lng lààm vim việệc bic biệệt lt lậậpp gigiảảm cm cáác trc trởởngngạạii dodo llààm vim việệcc song songsong song
ThThốống kê vng kê vềề mmứức đc độộ thay đ thay đổổii llàà đ độộ đo tđo tốốtt cho ccho cáác đc đáánh ginh giáá khkháách quan ch quan vvềề trtrạạng thng tháái ci củủa da dựự áánn
VVùùng lng lààm vim việệc chc chứứa ta tấất ct cảả ccááccartifactartifact ddễễ ttạạo so sựự nhnhấất qut quáánn
KiKiểểm som soáát đưt đượợc sc sựự lan truylan truyềền cn cáác c thay đthay đổổi i
CCáác thay đc thay đổổi đưi đượợc duy trc duy trìì trong mtrong mộột t hhệệ ththốốngng mmạạnh mnh mẽẽ, , ccóó khkhảả năng t năng tùùy y chchỉỉnhnh
Nguyên nhân cNguyên nhân cốốt lõit lõi CCáách gich giảải quyi quyếếttþþ ThiThiếếuu y y/c/c đ đ/v HT/v HTþþ TruyTruyềềnn tintin mơ h mơ hồồ¨̈ KiKiếến trn trúúc kc kéém bm bềềnnþþ QuQuáá phphứức tc tạạppþþ ĐĐáánh ginh giáá chchủủ quanquanþþ Mâu thuMâu thuẫẫn chưa đưn chưa đượợc c
xxáác đc địịnhnh¨̈ TestTest kkéémm¨̈ QuiQui trtrìình thnh tháác nưc nướớccþþ Thay đThay đổổi không thi không thểể
kikiểểm som soááttþþ ThiThiếếu ccu ccụụ ttựự đ độộngng
Công cụ môi trường phát triển phần mềm56
Các kinh nghiệm hỗ trợ lẫn nhau
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
PhPháát trit triểển theon theovòng lvòng lặặpp
KiKiểểm som soáát ct cáác c thay đthay đổổi trong i trong
hhệệ ththốốngng
SSửử ddụụngngkikiếến trn trúúcc
ComponentComponent
QuQuảản trn trịịccáácc yêu cyêu cầầuu
Mô hMô hìình hnh hóóaatrtrựực quanc quan
KiKiểểm đm địịnhnhchchấất lưt lượợngng
Công cụ môi trường phát triển phần mềm57
Tổng kết
ww KKếết qut quảả llàà phphầần mn mềềm trm trởở nênnên§ Đúng thời hạn§ Bảo đảm ngân sách § Thỏa mãn nhu cầu user
ProjectManager
PerformanceEngineer
ReleaseEngineer
Analyst
Developer
Tester
KiKiểểm som soáát ct cáác thay đc thay đổổI trong hI trong hệệ ththốốngng
PhPháát trit triểển theo vòng ln theo vòng lặặpp
SSửử ddụụng ng kikiếến trn trúúcc
ComponentComponent
QuQuảản trn trịịccáác yêu cc yêu cầầuu
Mô hMô hìình hnh hóóaatrtrựực quanc quan
KiKiểểm đm địịnhnhchchấất lưt lượợngng