You are on page 1of 9

Bài t p v qu n lý d án ph n m m

1. Nêu mư i nguyên t c vàng c a qu n lý d án ph n m m? 2. Có nh ng công c tr giúp qu n lý nào? nó tr giúp cho ho t ng qu n lý nào? 3. Đ c thêm bài v qu n lý c u hình dư i ây. Nh ng ai tham gia vào qu n lý c u hình và h làm nh ng gì? 4. Sinh viên t tìm hi u và th c hành các công c tr giúp sau: a. OpenProj (http://sourceforge.net/projects/openproj/) ho c MS Project. b. Công c qu n lý c u hình SVN (http://tortoisesvn.tigris.org/). Hãy cài t và s d ng nó l y mã ngu n c a chính SVN v máy. Th s a m t s t p r i nêu hi n tư ng x y ra. Ch p màn hình ch ra s khác bi t sau khi s a i. (g i ý: click chu t ph i lên t p b s a r i ch n m c so sánh t p v i b n g c). Nh ng công c trong bài 3 là nhưng công c ư c s d ng nhi u trong th c t . Các b n tìm hi u v s d ng các công c này bi t thêm và có th áp d ng vào bài t p l n c a nhóm mình.

Qu n lý c u hình - Yêu c u cơ b n trong m i d m m

án ph n

(Post 19/01/2007) Nh ng ai quan tâm n quy trình s n xu t ph n m m, ch c h n không ít l n g p khái ni m v qu n lý c u hình (Configuration Management). Ta d dàng tìm th y các yêu c u v qu n lý c u hình (QLCH) m t cách tr c ti p hay gián ti p trong các b tiêu chu n ho c mô hình quy trình s n xu t ph n m m (QTSXPM) thông d ng hi n nay như CMM/CMMI, ISO 15504 ho c ISO 9001:2000. Trong CMM và CMMI, QLCH là yêu c u b t bu c ngay t m c 2, là m c cơ b n nh t c a hai mô hình này.

Th c t , có khá nhi u nh nghĩa ho c khái ni m khác bi t v QLCH, tuy r ng chúng v n có nh ng i m chung cơ b n. Trong ph m vi bài vi t, chúng tôi mu n ph n nào làm sáng t m t

s

nh nghĩa và thu c tính cơ b n c a QLCH trong QTSXPM.

T i sao c n Qu n lý c u hình? Ch c h n trong chúng ta ã ít nh t m t l n g p nh ng tình hu ng sau:
• • • •

M t l i (bug) nào ó c a ph n m m ang xây d ng ã t n nhi u công s c s a ch a, b ng “thình lình” xu t hi n tr l i. M t ch c năng (function) nào ó c a ph n m m ã ư c phát tri n và ki m tra cNn th n b ng th t l c ho c bi n m t m t cách khó hi u. M t chương trình (program) ã ư c ki m tra h t s c cNn th n, b ng nhiên không “ch y” ư c n a. M t chương trình g m nhi u ơn th (module), m i ơn th g m nhi u ch c năng, các ch c năng ư c chia ra cho nhi u l p trình viên, m i ch c năng bao g m nhi u t p tin mã ngu n (source code) v i nhi u phiên b n (version) khác nhau. Khi tích h p h th ng và biên d ch, trong hàng ch c t p tin source code v i hàng trăm version, t p tin nào, version nào là úng và c n ph i l y ti n hành tích h p?

Các v n trên s không x y ra n u như trong d án, vi c QLCH ư c th c hi n nghiêm túc và ki m soát ch t ch . Ta có th tham kh o nh nghĩa ng n g n sau t CMM và ISO 15504: “M c ích c a QLCH là thi t l p và b o m tính toàn v n c a các s n phNm trung gian cũng như các s n phNm sau cùng c a m t d án ph n m m, xuyên su t chu kỳ s ng c a d án ó.” Nói cho d hi u và g n gũi, QLCH bao g m các công vi c v nh n d ng, t ch c, và qu n lý các thay i i v i nh ng s n phNm ang ư c xây d ng b i m t nhóm l p trình viên, t các s n phNm trung gian n s n phNm sau cùng. QLCH t t s gi i quy t ư c hàng lo t nh ng khó khăn trong các d án, án l n:

c bi t trong các d

• •

C p nh t ng th i: Khi 2 ho c nhi u l p trình viên làm vi c cách bi t nhau nhưng trên cùng m t chương trình ho c d án, nh ng thay i mà ngư i này th c hi n có th s phá v k t qu làm vi c c a ngư i khác. Ví d : S n phNm anh A s d ng k t qu công vi c c a anh B, s n phNm c a anh B thay i có th làm cho s n phNm anh A không ch y ư c n a. Chia s source code: Trong các h th ng l n, khi các ch c năng chung b thay i, t t c nh ng ngư i liên quan ph i ư c bi t. Phiên b n ph n m m (release): H u h t các chương trình ho c h th ng l n ư c phát tri n v i nhi u release ti n hóa t th p n cao. Trong trư ng h p m t release khách hàng ang dùng, release khác ang ư c ki m tra (test), và m t release khác n a ang trong quá trình phát tri n, khi có l i (bug) x y ra, vi c s a l i ph i ng b gi a ba ph n này, n u không qu n lý source code t t, v n ng b r t khó th c hi n ư c. N u l i release khách hàng ang dùng, nó ph i ư c s a ch a trong t t c các release sau ó.

Khi nào thì c n ti n hành QLCH? QLCH ư c th c hi n xuyên su t chu kỳ s ng c a d án, t lúc b t u n khi k t thúc, th m chí v n còn trong giai o n b o trì s n phNm sau d án.

HO T

NG QLCH

Trư c khi i vào chi ti t, ta c n tìm hi u 2 khái ni m r t cơ b n trong QLCH:

Configuration Item - CI: nh danh này trong QLCH là tên g i c a các s n phNm, s n phNm trung gian, m t t p tin (file) ho c nhóm file, tài li u ho c nhóm tài li u trong m t d án mà ta c n ph i qu n lý và ki m soát. Nói chung là nh ng “món” ư c t o ra trong m t d án mà ta c n ph i qu n lý, ví d : m t file source code, tài li u v yêu c u s n phNm, b n thi t k v.v. Baseline: m t i m “m c” ư c th a thu n b i nh ng ngư i liên quan trong m t d án, sao cho sau i m “m c” này, m i thay i ph i ư c thông báo t i t t c nh ng ngư i có liên quan. ng như hình 2.

M t cách t ng quan, QLCH bao g m các nhóm ho t

L p k ho ch QLCH (Configuration Management planning) Thông thư ng, vi c l p k ho ch cho QLCH ư c th hi n trong tài li u có tên K ho ch qu n lý c u hình (Configuration Manegement Plan – CMP). B n k ho ch này thư ng bao g m:
• •

• • • • • • •

Ý nghĩa, m c ích và ph m vi áp d ng c a b n k ho ch Vai trò và trách nhi m c a nhóm, cá nhân trong d án th c hi n các ho t ng khác nhau liên quan n QLCH. nh nghĩa rõ ràng ai th c hi n (perform), ai xem xét (review), ai phê duy t (approve) trên các CI c a d án, cũng như vai trò c a khách hàng, ngư i s d ng u cu i. Xem ví d hình 3. Công c (tool), môi trư ng (environment) và cơ s h t ng (infrastructure). Ph n này mô t các công c ph n m m ho c quy trình th t c ư c s d ng h tr QLCH, ch ng h n công c qu n lý phiên b n s n phNm (version control); mô t v trí các máy ch , máy tr m, c u hình h th ng client-server,... Phương pháp nh danh và thi t l p baseline trên các CI Quy ư c t tên trong d án, g m c tên file Quy trình x lý và qu n lý các thay i (change control process) Ch nh thành viên nhóm Configuration Control Board (CCB) Thông tin nơi lưu tr các CI Ki m kê và báo cáo c u hình (configuration accounting and reporting) Quy trình th t c lưu tr và chép d phòng (backup and archieve) ư c gi i thích rõ trong các ph n ti p sau.

Các i m trong b n k ho ch trên s

nh danh/ ánh s các CI (Identification of Configuration Items) nh danh là m t trong nh ng ho t ng n n t ng c a QLCH. M c ích c a nh danh là xác nh tính duy nh t c a m t CI, cũng như m i quan h c a nó v i các CI khác. Nó bao g m vi c mô t tên, ánh s , ánh d u c trưng, giúp nh n bi t và phân bi t m t CI v i các CI hay thành ph n khác. B n có th nh n th y hình th c nh danh tương t trong i s ng th c t . Ví d , ngư i ta ánh s bàn trong nhà hàng nh m giúp ngư i ph c v mang úng th c ăn cho khách.

Trong s n xu t ph n m m, m t CI có th bao g m m t hay nhi u file. Ví d : m t module tên ExpMod có th ư c coi là m t CI, module này có 2 file ExpMod.h và ExpMod.c. M i CI ph i có m t s nh danh duy nh t, d ng th c thư ng th y là:

Ví d : PRJ001_REQB_1.0.4_draft_B cho bi t: S ID c a d án: PRJ001 S ID c a Item : REQB Phiên b n: 1.0.4_draft_B Trong m t d án, thư ng có r t nhi u file source code, quy t c cơ b n là: các file cùng t o nên m t kh i ch c năng ư c gom chung thành m t CI. Ki m soát phiên b n (Version Control) Có nhi u nh nghĩa và cách hi u khác nhau v version control, ây chúng tôi ch mu n nh nghĩa nó khía c nh thông d ng, sát v i b n thân c m t nh t. Version control là s ki m soát các phiên b n (version) khác nhau c a m t CI (bao g m vi c nh danh và s lưu tr CI ó). Th phiên b n là gì? m t phiên b n là m t th c th m i c a m t CI sau khi ã qua m t ho c nhi u l n xem xét và thay i. Hi n có nhi u công c trên th trư ng h tr cho vi c ki m soát phiên b n, m t s công c thông d ng là: Visual Source Safe c a Microsoft, ClearCase c a Rational, CVS (ngu n m ). M i phiên ph n s có m t s ID y , và ư c tăng d n cho m i phiên b n m i.

Lưu ý r ng phiên b n c a m t CI khác v i phiên b n c a các file thành ph n c a CI ó. Trong ví d trên, phiên b n c a CI “ExpMod” khác v i phiên b n c a file thành ph n “ExpMod.h” và “ExpMod.c”. (Xem hình 3) Các phiên b n quan tr ng c a m t CI có th ư c ánh d u nh n bi t m t “m c” quan tr ng trong ti n trình phát tri n CI ó, phiên b n mà CI ư c phê duy t hay baseline. Qu n lý baseline (Baseline Management) Cũng như Version Control, baseline có nhi u cách hi u khác nhau, trong ph m vi bài vi t này, chúng tôi ch n ý nghĩa tương i ph bi n. Trong th c t thư ng g p các lo i baseline sau:
• • • • • • •

Ch c năng (functional) K ho ch (planning) Yêu c u (requirements) S n phNm (product) B n phân ph i (release) Ki m tra (test) Môi trư ng ho t ng (environment)

Qu n lý baseline bao g m:
• •

Ch n các CI cho m i lo i baseline Ti n hành “ghim ch t” baseline t i th i i m sau khi các thay và phê chuNn.

i ã ư c ch p thu n

Thông thư ng, baseline ư c ti n hành t i i m k t thúc c a m i giai o n hay t i các “m c” quan tr ng trong d án. Hình 4 cho th y rõ hơn các lo i và th i i m baseline. ng th i, trong qu n lý baseline, vai trò và nhi m v c a nh ng ngư i thi t l p ho c phê chuNn baseline cũng ph i ư c nh nghĩa. Ki m soát thay i (Change control) i yêu c u là không th tránh

Khi phát tri n ho c b o trì m t s n phNm ph n m m, vi c thay kh i.

M c ích c a change control là ki m soát y t t c các thay i nh hư ng n vi c phát tri n m t s n phNm. ôi lúc ch m t vài yêu c u thay i nh c a khách hàng, t t c các ch ng c a quy trình phát tri n ph n m m t thi t k , n vi t code, n ki m tra s n phNm u ph i thay i theo. N u các thay i này không ư c ki m soát ch t ch s d n n r t nhi u sai sót. Xét ví d sau: 5 l p trình viên cùng làm trong m t d án, nhưng ch có 3 ư c thông báo v vi c thay i thi t k . K t qu là khi tích h p, h th ng s không v n hành ư c. Yêu c u trong ki m soát thay i là m i s thay ngư i ho c nhóm làm vi c có liên quan. Các bư c cơ b n c a ki m soát thay
• • • • •

i ph i ư c thông báo

n t t c nh ng

i bao g m:

Nghiên c u, phân tích Phê chuNn ho c không phê chuNn Th c hi n vi c thay i Ki m tra vi c thay i Xác l p baseline m i

Trong ki m soát thay i, ta cũng thư ng g p khái ni m “nhóm ki m soát thay i” g i t t là CCB (Change Control Board), nhóm này ư c thành l p trong t ng d án. CCB thông thư ng bao g m:
• • • • • •

Ngư i QLC H (Configuration Manager) Trư ng d án (Project Manager) Trư ng nhóm (Technical Lead) Trư ng nhóm ki m soát ch t lư ng (Test Lead) K sư ch t lư ng (Quality Engineer) Và nh ng ai b nh hư ng b i các thay i

Nhi m v c a CCB thư ng là:

• • • •

B o m t t c các thay i là ư c các b ph n liên quan nh n bi t và tham gia Xem xét, phê chuNn ho c ph quy t các thay i trên các baseline Ki m tra, xác nh n các thay i Phê chuNn các b n phân ph i s n phNm (release) n khách hàng

Báo cáo tình tr ng c u hình (Configuration Status Accounting) Công vi c này bao g m vi c ghi nh n và báo cáo tình tr ng c a các CI cũng như yêu c u thay i, t p h p s li u th ng kê v CI, c bi t là các CI góp ph n t o nên s n phNm. Nó tr l i nh ng câu h i như: có bao nhiêu file b nh hư ng khi s a ch a m t l i ph n m m nào ó? K t qu c a công vi c này ư c ghi nh n trong m t báo cáo mang tên Configuration Status Accounting Report (CSAR). Báo cáo này thư ng làm rõ nh ng i m sau:
• • •

Li t kê t t c baseline và CI thành ph n ho c có liên quan. Làm n i b t các Cl ang ư c phát tri n ho c v a b thay i Li t kê các thay i còn ang dang d hay ang hoàn thành, và các baseline b nh hư ng (b i s thay i ó) nh kỳ, xuyên su t d án.

Vi c báo cáo này ư c làm thư ng xuyên và Auditing

(Audit là m t thu t ng r t thư ng dùng, cho nhi u ngành ngh khác nhau, tuy nhiên trong lĩnh v c sofware, chúng tôi không tìm th y t ti ng Vi t tương ương ph n ánh ý nghĩa, do v y xin gi nguyên thu t ng g c, nó có ý nghĩa g n v i “ki m tra” và “xem xét”). Có 3 lo i audit thư ng ư c th c hi n.

CSAR Audit: Thư ng ư c làm sau m i l n m t CSAR ư c t o ra, vi c ki m tra bao g m: o B o m các baseline m i nh t ư c li t kê trong CSAR o B o m t t c CI t o nên m t baseline ư c li t kê o Ki m tra các CI ã b thay i t l n baseline trư c ó, so sánh chúng v i các yêu c u thay i kh ng nh r ng s thay i trên CI là h p lý. Physical configuration audit (PCA): nh m m c ích kh ng nh xem nh ng gì khách hàng yêu c u có ư c hi n th c hay không. G m 2 vi c: o Ki m tra v t ph n ánh tính 2 chi u (traceability) gi a yêu c u khách hàng và vi c hi n th c code trong d án. o Xác nh nh ng gì s ư c phân ph i cho khách hàng (executable files, source code, tài li u i kèm...) có áp ng yêu c u khách hàng hay không. Functional configuration audit (FCA): nh m m c ích kh ng nh nh ng gì khách hàng yêu c u có ư c ki m tra ch t ch trên s n phNm t o ra trư c khi giao cho khách hàng hay không. G m: o Ki m tra v t ph n ánh tính 2 chi u gi a yêu c u khách hàng và vi c ki m tra s n phNm.

Qu n lý release (Release management) Trong th c t , có nhi u nh nghĩa khác nhau v khái ni m “release”. V cơ b n, chúng ta có th hi u: Quá trình phát tri n m t ph n m m thư ng qua nhi u l n tích h p, k t qu c a m i

l n tích h p là m t b n “build”, trong r t nhi u b n “build” ó, m t s b n áp ng m t s yêu c u ã nh ho c l p k ho ch trư c (theo yêu c u khách hàng), s ư c g i cho khách hàng ki m tra ho c ánh giá. Các b n build này ư c g i là “release”; công vi c t o ra và phân ph i các b n release ư c g i là công vi c “release”. Theo cách hi u này, s n phNm sau cùng cũng là m t b n release, ôi khi ư c g i là “final release”. Trong quá trình release, vi c qu n lý òi h i ph i th c hi n các công vi c sau:
• • • • •

Baseline môi trư ng phát tri n s n phNm và các file, tài li u (s release) Th c hi n báo cáo CSAR (xem nh nghĩa trên) Th c hi n các audit: PCA và FCA óng gói file và tài li u s release Xác nh n ã nh n b n release t khách hàng

Lưu tr và chép d phòng (Backup & archive) Lưu tr và chép d phòng là m t ho t ng c a QLCH và là m t trong nh ng ho t ng quan tr ng ph i có c a s n xu t ph n m m. Nó giúp kh c ph c các trư ng h p r i ro b m t mát d li u do thao tác sai, virus, ho c s c ph n c ng/ ph n m m. khía c nh khác, nó h tr cho ho t ng version control ( ã nói trên) trong trư ng h p ta mu n s d ng nh ng version khác nhau. Lưu tr và chép d phòng òi h i toàn b s n phNm và s n phNm trung gian c a d án ph i ư c nh kỳ chép d phòng trên nh ng thi t b ho c nh ng nơi khác m t cách an toàn. Và khi d án k t thúc, các ho t
• • •

ng sau c n ph i th c hi n:

Lưu tr toàn b d li u c a d án, tuân th quy trình lưu tr ã ư c thi t l p ( nh nghĩa b i d án ho c quy nh c p công ty). Lưu tr ho c hu b các tài li u d ng gi y. D n s ch d li u ho c thông tin c a d án v a k t thúc, sau khi ã chép lưu tr .

Vai trò c a các thành viên trong d án Trong m t d án i n hình, thông thư ng có 4 (nhóm) ch c năng sau (thư ng g i t t là role) tham gia th c hi n các ho t ng QLCH: CM (Configuration manager)
• • • • •

Thi t l p và b o trì kho lưu tr (repository) c a d án. Phát tri n và tri n khai các quy trình th t c QLCH c a d án. Thi t l p các baseline, ghi nh n chi ti t các thay i trên các baseline B o m các baseline không b thay i khi chưa ư c phê chuNn. T ch c và i u ph i các cu c h p c a CCB

Trư ng d án (Project manager):
• •

Giám sát các ho t ng QLCH. B o m các yêu c u c n thi t cho ho t

ng QLCH. Ví d : s gi thành viên d án

b ra cho QLCH, công c h tr cho QLCH... CCB (Configuration Control Board) Bao g m các thành viên trong d án, và có ch c năng như ã nói Các thành viên c a d án Các thành viên c a d án, k c CM, PM và thành viên CCB, có trách nhi m:
• •

trên.

Tuân th t t c các quy trình th t c c a b n k ho ch QLCH (CMP) Tham gia vào nhóm CCB khi có yêu c u

L iK t Trên ây là vài nét h t s c cơ b n v QLCH - m t lĩnh v c quan tr ng và cơ b n trong phát tri n và s n xu t ph n m m. Th c t , m i ho t ng thành ph n c a QLCH u có nh ng chi ti t riêng ph c t p. N u có i u ki n, trong tương lai chúng tôi s bàn sâu thêm t ng ho t ng thành ph n, c bi t khía c nh k thu t và áp d ng th c t . M i óng góp xin g i v a ch email: toanngo@cybersoft-vn.com. Ngô Văn Toàn Công ty Global CyberSoft Vietnam (theo PC World VN)

Gi i thi u d hi u v SVN
Gi s b n vi t m t tài li u nh , dùng trong d y h c. Bài báo này s dùng trong h c kỳ này, h c kỳ sau n a,... B n ang tháng 1 năm 2006, tài li u ã hoàn thành.

Sang tháng 4 năm 2006, b n ch t th y r ng tài li u c n b sung vài bài t p, kh c ph c vài l i typo, và ph i xóa b t vài ví d kô phù h p. B n l y mã ngu n TeX ra s a. Sang tháng 5 năm 2007, b n ch t th y r ng nh ng ví d mình xóa i l n trư c hóa ra l i r t hay, còn nh ng ví d thêm vào l n ó thì l i t . Th là è mã ngu n TeX ra s a. C th ... Đ n lúc b n ng c nhiên r ng, kó kách gì lưu tr t t c các thay i ó kô? Nói dzui m t cách, b n mu n bi t t t c tâm tư mình dày cho cô b n "tài li u ó" ã ra sao vào ngày y? Ch p hình, lưu bút, thư....

Trong công vi c hàng ngày, l p trình, vi t tài li u, tr l i cho câu h i c a b n là: SVN http://tortoisesvn.tigris.org/ http://en.wikipedia.org/wiki/TortoiseSVN