1. KHÁI NIỆM QUY TRÌNH SẢN XUẤT PHẦN MỀM VÀ MỖI LIÊN HỆ GIỮA CMMI VÀ QUY TRÌNH 1.1. Khái niệm quy trình phần mềm Phát triển phần mềm là một quy trình phức tạp, nó không chỉ đơn giản là tạo ra các ngôn ngữ lập trình và các công cụ hiệu quả mà còn bao gồm rất nhiều nỗ lực phức tạp. Chất lượng của một sản phẩm phần mềm được quyết định bởi con người, tổ chức và các thủ tục để tạo nên và chuyển giao sản phẩm đó. Trong những năm 60 và 70, các nhà nghiên cứu chủ yếu tập trung vào các lĩnh vực: !"#$%&'('%) *+,- ./012345657%5%8-9 ":;5< Khái niệm vòng đời phần mềm ở trên có liên quan trực tiếp với khái niệm quy trình phần mềm. Một vòng đời phần mềm định nghĩa các giai đoạn khác nhau trong suốt thời gian tồn tại của sản phẩm phần mềm. Thông thường các giai đoạn đó bao gồm phân tích và đặc tả yêu cầu, thiết kế, viết code, kiểm tra và phê duyệt, triển khai, bảo trì. Ngoài ra, vòng đời phần mềm còn đưa ra các quy tắc và chỉ dẫn để thực hiện các pha khác nhau. Ví dụ trong mô hình thác nước, một pha chỉ được thực hiện khi pha trước nó đã được hoàn thành. Ngược lại, ở mô hình xoắn ốc, trước tất cả các pha đều có hoạt động phân tích rủi ro. Nói chung, một mô hình vòng đời phần mềm thường định nghĩa bộ khung và các chỉ dẫn mà quy trình phần mềm cần được tiến hành theo nó. Tuy nhiên, nó không quy định chính xác thứ tự các hoạt động, tổ chức, công cụ, các thủ tục hoạt động, các chính sách phát triển và các ràng buộc. Vì vậy vòng đời phần mềm là điểm bắt đầu quan trọng để xác định phần mềm sẽ được phát triển như thế nào. Tuy nhiên, áp dụng một vòng đời phần mềm nhất định cũng chưa đủ để thực hiện và quản lý một dự án phần mềm. Khái niệm quy trình phần mềm được xây dựng dựa trên khái niệm vòng đời. Nó đưa ra một quan niệm sâu sắc để cấu trúc và tổ chức các các vấn đề liên quan tới hoạt động phát triển phần mềm. Một quy trình phần mềm có thể được định nghĩa như sau: Quy trình phần mềm là một tập các chính sách, cơ cấu tổ chức, các công nghệ, các thủ tục và các artifacts cần thiết để phát triển, triển khai và bảo trì một sản phẩm phần mềm. Vì vậy, một quy trình phần mềm bao gồm rất nhiều khái niệm: Công nghệ phát triển phần mềm (Software development technoloty) : Là các công nghệ được sử dụng trong quy trình. Để thực hiện các hoạt động phát triển phần mềm chúng ta cần phải có công cụ, cơ sở hạ tầng và môi trường kỹ thuật. Chúng ta cần có công nghệ thích hợp để có thể tạo ra các sản phẩm phần mềm phức tạp đáp ứng được nhu cầu của xã hội. Phương pháp và kỹ thuật phát triển phần mềm (Software development methods and techniques) : Là các chỉ dẫn về cách sử dụng công nghệ và cách thực hiện các hoạt động phát triển phần mềm. Sự hỗ trợ về mặt phương pháp luận này rất cần thiết để khai thác công nghệ một cách hiệu quả. Các hoạt động tổ chức (Organizational behavior) : Là tri thức về tổ chức và con người. Nói chung, hoạt động phát triển phần mềm được thực hiện bởi một nhóm phát triển và nhóm phát triển này cần được quản lý dưới một cơ cấu tổ chức hiệu quả. Tiếp thị và kinh tế (Marketing and economy): Phát triển phần mềm không thể tự mình nỗ lực. Cũng như các sản phẩm khác, phần mềm cũng phải xác định nhu cầu thực sự của khách hàng trên thị trường. Vì vậy khi hình thành các pha khác nhau của phát triển phần mềm (Ví dụ như đặc tả yêu cầu, phát triển, triển khai) cần phải tính đến ngữ cảnh mà sản phẩm phần mềm đó được bán và sử dụng. 1.2. Một số quy trình phần mềm được áp dụng trong thực tế và mối liên hệ giữa quy trình đó và CMMI 1.2.1. Mô hình RUP 1.2.1.1. RUP là gì RUP là một quy trình phát triển lặp được xây dựng dựa trên “sáu quy cách làm việc tốt nhất” bao gồm: • =>))?))! • @;A!"4B)C)D)5) • EF('$4G)5))) • B9DB)7! • H525%I7)J!@! • H5!2K) 2=25LCG$M • @!9"LMNCGD;AL2%II$D! $O('P:%8=92%I"LQ5,%" • 9"G))MN;$:%8=CG269") )RG))$5O!"4,-$;LOSRTQ 2%I'('5UOS2/$2%IFSD OSR • P2U'('9"('M.S85CG;P 2U'('269"('RH'$J&:;2(O5QV*! 9D;A$P"OSRH':W56(=5 ('I8R 712345652%I$65X2%I 5U'O;Y558RCG5U$:S"'M • ?)HZ24 • [:Y:/ • \*!9 • N! BUQ2%I]$6:%8=RBX2%I(':Z5U 5S5)) V2/325;PD!'2/D^$2P2%I 5"R (Z24?) N$!94;2%IV2/0$SO :)) L9;2%I'$P5L9_;2%IP `R.$$262Q:P;V2/;9:"$%&8O S$V2/2%I:;L%&2QZ5,R.6$!"D8O V2/;))$5;5US))":Ra)):W5M" Y$2L%8%I$!"4'$('P 2V2/325L5SR('D;L(Z24:W5M N$OKD75) B)):24$$(;bcdefcd N$O;:24L9?g)! NSO:24?:)) .L:24?()5) H'P9g) BP2Ua)5) BU=5U$:;5< B2L$!$*26'&Z('('P 9$P:]$4Q2UL9RH'D;LY:/: W5M h$$icd5G)e) N$O!"4:K)5)!)D)5) :W5!"4 ,-$!"4(#85U))":O$ B;('4565 a;5<('Q9O2%I >L2+2%I!OP$:)) H'P$:U9:W5('P9&:Uj :%8=$"Y%8%I5X:%8= BU%3I2+))5)) j`D!2%IF h%8<F:24 NV*!9;$4$2=L,4;2%I $I$;Y52W3;2=$!26;2%I(5F (k%lRH'D;LV*!9$5U;Y52+m$2!%3 FSRH'D;LV*!9;S:W5M E;Y545652%II"5U6%&, h%8<F a;5;":;O3 E;Y5LV*!9%32%I^$":;n:)o B2L!$2%;Y545658%3FRN $!49OP2UM jFP5US2=25 h$$2=:/+P N9On:)e)o22;5:;OS582,2%I!"4%3 p P!OS588OSq:/!' !OP2U .$P:U:; .%;Y5'/$*SR H'D;L! CG:W5rs(JsM hfeMCG bR BQOa)5) a) 5)2%I9 O (Z 24$ Y:/R N s(Js$!4'$OD!P2UF))22;5:;9S ;())64XID!P2UR B2Ls(Js$!$5;5$OS;$5P9S "$($6!"4LOSR.2P2%I2 $!4'$O6,-$$:U)`$PD!' 2/R fR N!"4C)D)5) B"Ls(Js$!t55;5$OS49O$P9 S"$($6!"4$!R uR *$'('!>) B2Ls(Js*$'('$jOSq2%I9O% '$$2= vR $2=?5)5) B2L$2=$'5+$(5FOS wR H5FN) x(Js$!P$5;))%&) yR N(>)!5) .QQ4565$$2=4565%3FS zR @;A$!2KJ)B)5) {5$D;A!2KJL9t52;5:;9 D8!"4LOS iR @;A9g)B)5) @;A9:W5M*:tP5"Q5*<8D;AL (#$:U2!$;Y52,2%I4 L;($<%3FSR rR [5) B"Ls(Js$!$K,5U5%34 565|:W5D!$42'XIQ5R 1.2.1.2. Liên hệ giữa CMMI và RUP a;feb%82*!j5S"O09D!LBB?8 s(JsCG a;feM}"OBB?$CG CMMI RUP Process management N$D!K, [5) W o r k f l o w ./0D!K, [5) .$PK, T$P5LCG N9OD!K, T$P5LCG N($2K58K, T$P5LCG Project management }('P9 g)B)5)[5) N)`$59 g)B)5) @;A]8$4 T$P5LCG @;A9I g)B)5)[5) @;AL g)B)5) @;A2/%I9 [5) Engineering @;A!"4 C)D)5) !"4 C)D)5) J ) B)5) ! >) ?5)5)N) {;(k ! >) ?5)5) >)!5)g)B)5) NI;Y5 ?5)5) N) >)!5) J ) B)5) !>) NY52/ N)?5)5)[5) "!O g)B)5)>)!5) Support @;A J)B)5) .;5:;%ID!$%I; Y5 g)B)5) .%3$* g)B)5) *D!'2/$; T$P5LCG *!"*$; g)B)5) 1.2.2. Mô hình XP 1.2.2.1. XP là gì? \)\)5)55 $5UD!45652%I, :Z6!U609$QD!5(Z"$'8R\ $:ZQ2,2%I24($M!2;Y55$ ($4$25$^4QR a. Ca ́ c nguyên tă ́ c Cơ Ba ̉ n cu ̉ a XP \2%I'9":S!"#M \ ~ • " • 2 € 5 • ~ • ~ ‚ % ƒ ~ „ " ~ 5 ~ " € R." „ " • 2 € % • " ~ € 5" • 2 € ~ " ~ !… „ % ~ D ~ -: € R • 7& ~ \( ~ „ 5% • " ~ „ " • % • " • % • ~ & ~ % ~ „ 5 • „ "… ~ % ~ € ~ 5 ~ " € RH ~ „ ) ƒ ~ ~ 5 ~ " € " € „ - ~ 5:- ~ 2%& • „ ( • & „ ~ !"* „ € %& „ % € • ƒ %% • ! 2 € " „ !"* „ ~ D ~ … „ % • " • % • ~ • N* ~ € ~ „ "2" „ 5 „ 5 • • 2 • D ~ … „ ~ " € * „ 5" „ 5R." „ „ !) ƒ *… ~ -2 • € „ : • ~ 5 ~ " € !"##$ € „ & ~ 5 „ " • % „ ( ~ „ ƒ %% „ ~ 5 ~ " € ~ % • ~ 2)2 ~ %& ~ R\2" „ 2- • € * € 5( ~ „ 2" € (" € 5)2 ~ ( ~ „ ~ " € • „ 55 • ‚ „ „ " • !"* „ € * € 5% • " ~ (" ~ D € • " € R7& ~ % • & • ~ € ( ~ „ \V*!% • 5 • * • ~ ) ~ % € • • " • (" € 52 • acceptation test 5 • ~ " • ~ D ~ … „ ~ " € * „ 5" „ 5R %& '( \2 € 5: € … € ~ " € % ƒ % ~ -5 „ ( ~ „ !"* „ R * „ " ~ (" ~ „ 5 ƒ „ 2%& • " ~ * • 5 • ~ 2& € * ~ ) ~ ~ 2%& • 2- • … ~ •5& € ‚- „ 52 ~ % ~ & ~ ~ !2 € " • „ !… „ 2%& • 5 • ~ 2 • ~ " € ~ D ~ … „ ~ " € * „ 5" „ 5R ) * # \- „ € ~ „ ƒ € 5… „ 5ƒ „ "5& ~ % • " • 2%& • ~ !"- ~ (" € "RN!\(… € 5 • ~ ƒ „ % ƒ * „ € * ~ 5 • - „ … ~ (! € * • „ !"* „ D • 2" € % • " • ~ " • D € %& ~ ~ " € * „ 5" „ 5\R b. 12 quy cách làm việc (practices) cu ̉ a XP %& ~ \2 ƒ 2" „ bfD! ~ practices „ 5" • 2" € % • " • ~ !"- ~ ~ " € * „ 5" „ 52 ƒ "& € "RN) ~ !"TB ~ D! ~ „ 5 " • 2" „ :& € \( ~ … „ „ 5& ~ RN% • * ~ % ƒ D! ~ „ ! „ % ƒ ( " • 5!* ~ 2%& • D ~ … „ ~ " € TB2- • :" • „ TB& ~ " • %& ~ 2 ~ %& • R + , ($-. , (#// 78\($59'$D('P4565R 71L($$Q52%I2/5U`$ Tra ́ ch nhiê ̣ m cu ̉ a kha ́ ch ha ̀ ng: • B € … ~ -* „ 5" „ 5* „ ~ " € D ~ •*!" • ‚user story R User story ~ ! ~ … ƒ %&% • %use caseGB}%5% ~ 2 • 5 € … „ (" ~ :- „ R • * • ~ user story )5% ~ 2 • D • % „ D2" € 5%& „ % € • % • " ~ • (ebusiness value RN% „ 2 ~ ) ƒ 2 • … ~ - „ * „ € ~ " € „ ~ " € )% ~ % • %" ~ „ R • . • & „ 2" € 5 „ (! „ : „ € * € 5R Tra ́ ch nhiê ̣ m cu ̉ a nho ́ m pha ́ t triê ̉ n: • †& ~ %& • !"* „ (! ƒ * • 2" € ~ " € % „ user story%& ~ %& • 2 • % ~ • R • †& ~ %& • & „ * ƒ % ~ „ 2" € ~ " € % „ user story. 7& ~ % • * ~ " • 5%* • !: € (" ~ • ) ƒ € 5 ƒ 2%& • !"* „ € ( ~ „ ƒ % ~ 5 ~ " € R 0 ! 1 ! (! '##/#/ N)D! ~ „ ! ~ 5 ~ " € ) ƒ ~ " € * „ * „ * „ 5" „ 5% „ 2& € 2" ~ % ~ • RN% „ * „ ) ƒ 2%& • !" € ( ~ „ 2" € ~ 2%& • !% • € „ € ( ~ „ RN% „ 2 ~ ) ƒ ~ " € 2" „ … € !2%& • € * € 5 „ & • & ~ !"* „ € ( ~ „ RH ~ „ ƒ ~ 2" „ (" • 2" € : € !!2 € !"* „ * „ 5" „ 5R 1 , -.( $ . ! 23/#/# 7& ~ \( ~ „ ) ƒ 55 • ~ % • " ~ ~ D ~ … „ ~ " € * „ 5" „ 5RE% • 5 „ !) ƒ ~ ~ 5 ~ " € ~ 2" „ (" • 5( € % • " ~ ! ~ (" ~ € ( ~ „ 2 € " „ " • ~ * „ ~ " € ~ 2%& • * „ 5*ƒ ~ " € " „ " • S* „ ~ " € RB • " ~ „ „ € * € 5 „ 5 „ & • & ~ !"* „ € ( ~ „ R + , (4 ! ( N* ~ € ~ * „ %&… „ 5 • !" „ ~ 5%& „ " ~ Rh%& „ „ !) ƒ % € • 5 • 5 ~ !… ~ „ 2 „ & „ " ~ %&… „ R@! ~ „ !) ƒ ~ ~ 2%& • € ~ * • … „ ~ &%&… „ ) ƒ ~ * ~ %& • „ " • D € &R -.$-.& '(##/ \(!'(5('5;2&;('('4565Rj'(' 4565]5+!"4OPL($("5('55U; 5UOS%&RN)2Qj45U'('$5%&P! 2%I$]5+!"4L($R 1 . , 1&4 ! 5#6 @2" € 5 € \ „ * ~ %& • * „ 5" „ 52%& • " € " • :- „ * ~ %& • € 5 ƒ „ code RB • %&… „ 2%& • " ~ ƒ „ 2& € … „ ) ƒ "ƒ: € %& ƒ „ ! 2 € R\(!" ~ (… ~ € % ~ " ~ • %&… „ 5 • ~ 2" „ 2- • 2" € *… ~ ~ € € %&… „ "ƒ: € ~ % ~ -5& ~ *" • * ~ € %& … „ R 7-1 #/ \!"* „ * ~ (*(" € 5% € „ (" € 52 • %&… „ R7& ~ 5ƒ* „ € %&… „ * • … „ " € " ~ %&… „ (" € 5% € * „ 2 ~ %& ~ (% • % • :- ~ 2* „ (" ~ %&… „ * „ 2 ~ RH ~ „ ) ƒ • ~ " • 5% • " • (" € 52 • € * € 5R 4 . & , (- , /# 7" • … ~ & • ) ƒ 2%& • " ~ „ 5 • ~ " • RH5 • 2 • %&… „ 5& ~ 2%& • ~ " € 2 ƒ %& • D* „ (" € 5% € … „ ) ƒ 2%& • … ~ & • ! „ " • ~ R." „ „ !) ƒ ~ " • ~ " • „ % € ƒ… ~ & • & „ ) € &RN5 • „ ! ~ " € % • " • " „ * „ … ~ & • " • ~ R '& 1 * , (- #8#9#/( N* ~ € 5 ƒ „ 2" „ • D!" „ & € % ƒ € 5 • „ " ~ 5 ~ " € R N)2 ~ 5 ƒ „ ~ " € 2%& • % € 2 € !(* „ R7& ~ ~ D € ! ~ %& „ 5ƒ * „ 5 ƒ „ %& „ 5 • %& „ D € ! ~ "(* „ % € 2 € … „ € * „ % • D € € & € % ƒ 2(2" „ „ !*!5* ~ " „ & „ R , (4 ! // ." € %&… „ 5 ƒ „ ~ " € " € 2%& • 5 • ~ "ƒ „ * ~ „ 2 ~ & ~ ~ D! ~ * • … „ 2 „ & € % ƒ * • " € ~ 5 ~ " € € ~ * ~ ~ " ~ %& … „ R* „ € ~ 5 • D!2 • • " € ƒ „ " „ ~ " ~ … ~ • ~ 2- • ":" ~ ~ : € ~ … ~ RR 2" € „ 5* ~ € 2" „ " € 2%& • R :#( :#( T ~ 5 ~ " € \ „ 5 • " • ~ ~ * • % ƒ 2" € :" € "ƒ" • ~ * „ ~ " € R ~ * • % ƒ „ !) ƒ 2%& • „ (2 € % ƒ ~ „ " ~ 5 ƒ %(2 € & ~ ( ~ „ R 7 ! 8- , ; . & ! <=39##$ h" • %& • „ 5" • D ~ & „ * ~ € :" ~ & ~ ~ " € * „ 5" „ 5RN% • " ~ * ~ !(%& „ 2 • „ 5" • D ~ & „ %& „ !5" • 5 € *ƒ2" ~ „ 5" • ( " • D € * ~ %& • € * € 5 € 5R\(!" ~ ~ (" „ 5" • D ~ & „ … € „ 5 2 ~ & „ D!2 • 2" € 2 € 5: € * ~ %& • € * € 5R c. Điê ̀ u kiê ̣ n đê ̉ a ́ p du ̣ ng XP [...]... sản phẩ m, v.v.) 1.2.2.2 Liên hệ giữa CMMI và XP Bảng 2-2 dưới đây chỉ ra quan hệ giữa các lĩnh vực quy trình của CMMI với các quy cách làm việc (practices) trong XP Bảng 2-: Liên hệ giữa CMMI và XP CMMI XP Process management Đào tạo trong tổ chức Coding Standards, Pair Programing Thực hiện quy trình tổ chức Ngoài phạm vi của XP Ngoài phạm vi của XP Planning Game Theo dõi và giám sát dự án Planning... hợp sản phẩm Continuos Integrated Thẩm định Testing Phê duyệt Project management Coding Standard, Pair Programing Lập kế hoạch dự án Engineering Định nghĩa quy trình tổ chức Triển khai và đổi mới tổ chức Support Sustainable Pace Testing, Onsite Customer Quản lý cấu hình Small Release, Collective Continuos Integration Đảm bảo chất lượng quy trình và chất lượng sản phẩm Pair Programing Đo lường và phân... Continuos Integration Đảm bảo chất lượng quy trình và chất lượng sản phẩm Pair Programing Đo lường và phân tích Ngoài phạm vi của XP Phân tích quy t Ngoài phạm vi của XP định và giải pháp Ownership, XP Practices Tập trung vào quy trình tổ chức Phân tích nguyên nhân và giải pháp Ngoài phạm vi của XP ... thiế t lâ ̣p mô ̣t quy trinh quản lý hoa ̣t đô ̣ng của các nhóm nhỏ XP ̀ Làm viê ̣c theo nhóm XP đòi hỏi phải có tinh làm viê ̣c tâ ̣p thể rấ t cao Mo ̣i thành viên phải có thái đô ̣ hơ ̣p tác ́ trong quá trinh làm viê ̣c bởi vì mo ̣i hoa ̣t đô ̣ng của XP đề u mang tinh tâ ̣p thể ̀ ́ Tính kỷ luật Mo ̣i thành viên phải tự giác chấ p hành các quy đinh của nhóm... XP đề u mang tinh tâ ̣p thể ̀ ́ Tính kỷ luật Mo ̣i thành viên phải tự giác chấ p hành các quy đinh của nhóm phát triể n Ví du ̣, tấ t cả ̣ đề u phải viế t chương trinh theo mô ̣t quy đinh đã thố ng nhấ t Có như vâ ̣y thì chương trinh ̣ ̀ ̀ (mã nguồ n) mới có thể trong suố t và dễ hiể u với tấ t cả nhóm, dẫn đế n dễ sửa đổ i và thêm chức năng mới vào chương . 1. KHÁI NIỆM QUY TRÌNH SẢN XUẤT PHẦN MỀM VÀ MỖI LIÊN HỆ GIỮA CMMI VÀ QUY TRÌNH 1.1. Khái niệm quy trình phần mềm Phát triển phần mềm là một quy trình. ":;5< Khái niệm vòng đời phần mềm ở trên có liên quan trực tiếp với khái niệm quy trình phần mềm. Một vòng đời phần mềm định nghĩa các giai