Tải bản đầy đủ (.docx) (176 trang)

Mô hình trưởng thành khả năng, mô hình trưởng thành tái sử dụng và áp dụng thực tiễn trong hoạt động sản xuất phần mềm tại công ty CT IN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.53 MB, 176 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


Nguyễn Hoài Nam

MÔ HÌNH TRƯỞNG THÀNH KHẢ NĂNG, MÔ HÌNH
TRƯỞNG THÀNH TÁI SỬ DỤNG VÀ ÁP DỤNG THỰC TIẾN
TRONG HOẠT ĐỘNG SẢN XUẤT PHẦN MỀM TẠI CÔNG TY
CT-IN.

Ngành: Công Nghệ Thông Tin
Mã số: 1.01.10

LUẬN VĂN THẠC SỸ

Người hướng dẫn:

PGS. TS. Nguyễn Văn Vỵ

Hà Nội - 2007


2

Mục lục

MỞ ĐẦU
Chương 1. Mô hình trưởng thành khả năng cho phần mềm - CMM
1.1. Tổ chức phần mềm chưa trưởng thành và trưởng thành……………………………………..
1.2. Các khái niệm cơ bản trên khía cạnh trưởng thành tiến trình……………………………….


2. Năm mức trưởng thành tiến trình phần
mềm………………………………………………………..10
2.1. Đặc tính cư xử của các mức trưởng
thành………………………………………………………….11
2.2. Năng lực tiến trình và dự báo hiệu
năng…………………………………………………………….15
2.3. Bỏ qua các mức trưởng
thành…………………………………………………………………………..17
3. Định nghĩa theo kiểu hoạt động của mô hình
CMM………………………………………………..18
3.1. Cấu trúc bên trong của các mức trưởng thành……………………………………………………
3.2. Các mức trưởng thành……………………………………………………………………………………..
3.3. Các vùng tiến trình then chốt……………………………………………………………………………
3.4. Các mục tiêu…………………………………………………………………………………………………..
3.5. Các đặc điểm chung…………………………………………………………………………………………
3.6. Các thực hành then chốt………………………………………………………………………………….
4. Tương lai của
CMM…………………………………………………………………………………………….27
5. Kết
luận……………………………………………………………………………………………………
……….28
Chương 2. Tiến trình sử dụng lại được và các mức tăng trưởng của nó trong
một tổ chức (RMM)
1. Tổng quan…………………………………………………………………………………………………………
2. Khía cạnh hiện nay: Kỹ nghệ tiến trình…………………………………………………………………
3. Mô hình tăng trưởng tái sử dụng (RMM)
……………………………………………………………….32
3.1. Các nhân tố tái sử
dụng…………………………………………………………………………………..33
3.2. Các hoạt động tái sử

dụng……………………………………………………………………………….35
4. Kết
luận……………………………………………………………………………………………………
……….46
Chương 3. Áp dụng CMM, RMM vào hoạt động thực tiễn sản xuất phần mềm
tại công ty CT-IN
1. Giới
thiệu……………………………………………………………………………………………………
……..47
2. Chi tiết các vùng thực hành then
chốt………………………………………………………………….47
2.1.
Quản lý yêu cầu………………………………………………………………………
2.2.
Quy trình phát triển kế hoạch dự án phần mềm……………………………
2.3.
Quản Lý Cấu Hình……………………………………………………………………
2.4. Quy trình đảm bảo chất lượng phần mềm………………………………………………………….
2.5. Quy trình kiểm tra……………………………………………………………………………………………
Chương 4. Xây dựng công cụ trợ giúp quản lý tiến trình


1. Giới
thiệu……………………………………………………………………………………………………
……..87
2. Mô tả phần
mềm………………………………………………………………………………………………..88
3. Nhận xét……………………………………………………………………………………………………………
KẾT LUẬN
Tài liệu tham khảo

Phụ lục
1. actorlist_template.doc
2. usecase_template.doc
3. feature_list.doc
4. risk_list_template.doc
5. software_development_plan_template.doc
6. qa_plan_template.doc
7. test_plan_template.doc
8. test_case_template.doc


3

MỞ ĐẦU
Vai trò của tổ chức và quản lý đối với chất lượng phần mềm (bên
cạnh yếu tố công nghệ, nhân lực)
Mô hình CMM/CMMi do Viện Kỹ Thuật SEI (Software Engineering Institute)
liên kết với Đại Học Carnegie Mellon - Hoa Kỳ phát triển. Mô hình CMM trước đây
gồm có 5 mức: khởi đầu, lặp lại được, được định nghĩa, được quản lý và tối ưu.
Một điểm đặc biệt là mỗi doanh nghiệp có thể áp dụng mô hình CMM ở bất kỳ
mức nào mà không cần tuân theo bất kỳ một qui định nào, không cần phải đạt
mức thấp trước rồi mới có thể đạt mức cao (có thể đi thẳng lên mức cao, hoặc
cũng có thể tự hạ xuống mức thấp hơn). Về nguyên tắc, SEI không chính thức
đứng ra công nhận CMM mà thông qua các tổ chức tư vấn, các đánh giá trưởng
được SEI ủy quyền và thừa nhận.
Tuy nhiên, từ cuối 2005, SEI không tổ chức huấn luyện SW-CMM và chỉ thừa
nhận các đánh giá theo mô hình CMMi mới từ tháng 12/2005. CMMi được tích hợp
từ nhiều mô hình khác nhau, phù hợp cho cả những doanh nghiệp phần cứng và
tích hợp hệ thống, chứ không chỉ đơn thuần áp dụng cho doanh nghiệp sản xuất
phần mềm như CMM trước đây. Có 4 mô hình áp dụng CMMi là CMMi-SW (dành

cho công nghệ phần mềm), CMMi-SE/SW (dành cho công nghệ hệ thống và phần
mềm), CMMi-SE/SW/IPPD (dành cho công nghệ hệ thống
+ công nghệ phần mềm với việc phát triển sản phẩm và quy trình tích hợp),
CMMi-SE/SW/IPPD/SS (dành cho công nghệ hệ thống + công nghệ phần mềm với
việc phát triển sản phẩm và quy trình tích hợp có sử dụng thầu phụ). Có 2 cách
diễn đạt và sử dụng CMMi: Staged (phù hợp cho tổ chức có trên 100 người) và
Continuos (phù hợp cho tổ chức dưới 40 người). CMMi cũng bao gồm 5 mức như
CMM: khởi đầu, lặp lại được, được xác định, được quản lý và tối ưu hóa.
Tuy nhiên, việc chuyển đổi từ mô hình CMM sang CMMi sẽ tùy thuộc vào
từng doanh nghiệp/tổ chức cụ thể. Có thể sẽ phải thay đổi rất nhiều và thực tế là
áp dụng mô hình CMMi đòi hỏi nhiều sự đầu tư về công sức và tài chính hơn. Kinh
phí để tiến hành đánh giá theo mô hình CMM/CMMi có thể lên đến vài chục hay
vài trăm ngàn đô-la Mỹ và đây có thể là bài toán nan giải đối với các doanh
nghiệo phần mềm nhỏ. Có thể xem CMM/CMMi là "giấy thông hành" giúp doanh
nghiệp phần mềm tạo lợi thế trong quá trình cạnh tranh giành hợp đồng từ phía


đối tác nước ngoài. Tuy nhiên yếu tố quan trọng bậc nhất vẫn là chất lượng sản
phẩm mà doanh nghiệp thể hiện.


4
Để một doanh nghiệp phần mềm nhỏ có thể đạt được đánh giá và áp dụng
thành công mô hình CMM/CMMi thì trước hết các doanh nghiệp này cần "tự mình
lớn lên" và qua đó họ sẽ có đủ năng lực để áp dụng những mô hình này.

Vấn đề về sử dụng lại phần mềm (software reuse) cũng rất quan trọng
trong công nghệ phần mềm. Khi được nghiên cứu tích hợp trong quá trình phát
triển phần mềm, nó sẽ cung cấp cơ sở cho các cải tiến sâu sắc trong cách phát
triển và bảo dưỡng các hệ thống phần mềm trong chu kỳ vòng đời. Nó có những

mục đích như sau:
 Tăng cường năng lực sản xuất
 Cải thiện chất lượng và độ tin cậy của các hệ thống phần mềm.
 Cải thiện được sự tương tác qua lại của các hệ thống
 Xác định và kiểm soát được các rủi ro kỹ thuật
 Rút ngắn thời gian phát triển và bảo dưỡng.
Mô hình tăng trưởng sử dụng lại được RMM (Reuse Maturity Model) đã được
đưa ra nhằm giúp các doanh nghiệp áp dụng hiệu quả việc tái sử dụng lại phần
mềm.

Trong quá trình hoạt động thực tiễn tại công ty CT-IN, do nhu cầu của công
việc (xuất khẩu phần mềm cho nước ngoài) nên việc áp dụng các mô hình CMM
và RMM trở thành một nhu cầu cấp thiết và hết sức hiệu quả.

* Nội dung của đề tài, các vấn đề giải quyết:

Luận văn sẽ tập trung vào trình bày hai mô hình CMM và RMM, các khài
niệm, thuật ngữ, các vấn đề cần quan tâm đối với hai mô hình này qua đó áp
dụng thực tế trong hoạt động xuất khẩu phần mềm tại công ty CT-IN.
Mô hình tăng trưởng năng lực (CMM) cho phần mềm là một tập các thành
phần cơ bản của một quy trình phần mềm hiệu quả. CMM miêu tả sự cải tiến
không ngừng từ một quá trình sơ khai, chưa được thuần thục đến một quy trình
thuần thục và theo quy định rõ ràng.


5
CMM chứa đựng các kinh nghiệm thực tế từ việc ra kế hoạch, quản lý về
mặt kỹ thuật quá trình phát triển và bảo dưỡng phần mềm. Khi tuân theo các quy
định này, nó sẽ giúp các doanh nghiệp cải thiện được khả năng sản xuất với chi
phí tối ưu, đảm bảo chức năng, kế hoạch và chất lượng sản phẩm.

CMM có 5 mức:
 (1): Khởi tạo
 (2): Lặp lại được
 (3): Xác định
 (4): Quản lý
 (5): Tối ưu

Mô hình tăng trưởng sử dụng lại cũng có 5 mức:
 (1): Khởi tạo (Initial Chaotic)
 (2): Được giám sát (Monitored)
 (3): Được phối hợp (Coordinated)
 (4): Được lên kế hoạch (Planned)
 (5): Sâu sát (Ingrained)
Luận văn sẽ tập trung vào trình bày chi tiết 5 mức của hai mô hình trên
qua đó rút ra các kinh nghiệm thực tế áp dụng tại công ty CT-IN.

Cuối cùng, em xin chân thành cảm ơn sự hướng dẫn tận tình của phó giáo
sư, tiến sỹ Nguyễn Văn Vỵ - Đại Học Quốc Gia Hà Nội – Trường Đại Học Công Nghệ
trong quá trình thực hiện luận văn.
Em cũng xin cảm ơn các thầy cô trường Đại Học Công Nghệ - Đại Học Quốc
Gia Hà Nội đã tạo điều kiện và giúp đỡ em trong quá trình học tập và làm khóa
luận tốt nghiệp.

Xin cảm ơn sự giúp đỡ của các bạn lớp K10T3 trong quá trình học tập vừa qua.


6

Hà Nội, ngày 02 tháng 09 năm 2006
Học viên


Nguyễn Hoài Nam


7

Chương 1. Mô hình trưởng thành khả năng cho phần
mềm - CMM.

Sau hàng thập kỷ với những thất bại trong việc cải thiện năng suất và chất
lượng từ việc áp dụng các phương pháp luận và công nghệ mới trong việc sản
xuất phần mềm, các doanh nghiệp phần mềm nhận ra rằng vấn đề cơ bản là việc
không thể quản lý được các tiến trình làm phần mềm. Trong rất nhiều doanh
nghiệp, các dự án thường rất muộn và vượt quá ngân sách cho phép, và những lợi
ích của việc áp dụng các phương pháp và công cụ tiên tiến thường không được
nhận thấy nếu áp dụng cho một dự án không tuân theo các quy định chặt chẽ.

Vào tháng 11 năm 1986, học viện Kỹ Nghệ Phần Mềm (SEI), với sự trợ giúp
của tập đoàn Mitre, đã bắt đầu phát triển một mô hình trưởng thành tiến trình
nhằm giúp cho các công ty cải thiện chất lươngh làm phần mềm. Tháng 9 năm
1987, SEI đã đưa ra một miêu tả ngắn gọn cho mô hình trưởng thành tiến trình.
Hai phuơng pháp là đánh giá tiến trình phần mềm và đánh giá khả năng của phần
mềm và một phương pháp đặt câu hỏi trưởng thành được phát triển để đánh giá
sự trưởng thành của tiến trình phần mềm.

Sau bốn năm kinh nghiệm phát triển mô hình trưởng thành tiến trình phần
mềm và phiên bản khởi đầu của mô hình đặt câu hỏi trưởng thành, SEI đã kết hợp
mô hình trưởng thành vào trong Mô Hình Trưởng Thành Năng Lực cho Phần Mềm
(CMM). CMM thể hiện các tập các thực tế được gợi ý trong nhiều vùng tiến trình
chính (KPA) được sử dụng để cải thiện năng lực phần mềm. CMM được dựa trên

kiến thức từ việc đánh giá các tiến trình phần mềm và các phản hồi rộng lớn từ cả
phía các nghành công nghiệp và chính phủ.

Mô hình trưởng thành năng lực cho phần mềm cung cấp các hướng dẫn cho
các công ty phần mềm làm thế nào để kiểm soát được các tiến trình phát triển và bảo
dưỡng phần mềm và làm sao để phát triển theo đúng hướng kỹ nghệ phần mềm và
quản lý tốt của tương lai. CMM được thiết kế nhằm hướng dẫn các công ty phần mềm
trong việc lựa chọn các chiến lược cải tiến quy trình bằng việc quyết định mô hình


trưởng thành tiến trình hiện tại và xác định một số vấn đề quan trọng nhất cho chất
lượng phần mềm và cải tiến quy trình.


8
Bằng việc tập trung vào một số hoạt động giới hạn và làm việc nghiêm tức để đạt
được chúng, một công ty có thể dễ dàng cải tiến tiến trình làm phần mềm trong
phạm vi rộng khắp cho phép sự trưởng thành liên tục của năng lực tiến trình phần
mềm.
Phiên bản đầu tiên của CMM, v 1.0, được đưa ra và sử dụng bởi cộng đồng
phần mềm trong khoảng thời gian 1991, 1992. Một hội nghị được tổ chức vào
tháng 4 năm 1992 để bản về CMM v 1.0 với sự tham gia của hơn 200 chuyên gia
phần mềm. Phiên bản hiện nay của CMM, v 1.1 là kết quả của những phản hồi từ
hội nghị đó và các phản hồi tiếp tục về sau này của cộng đồng phần mềm.

1.1. Tổ chức phần mềm chưa trưởng thành và trưởng thành
Việc đặt ra các mục tiêu cơ bản cho cải tiến việc cải tiến quy trình đòi hỏi một
mức hiểu biết về sự khác nhau giữa tổ chức phần mềm chưa trưởng thành và
trưởng thành. Trong một tổ chức phần mềm chưa trưởng thành, các quy trình
phần mềm nói chung được tùy biến bởi các những người thực hiện và sự quản lý

của họ trong quá trình làm dự án. Thậm chí nếu một quy trình phần mềm đã được
xác định, nó không được mọi người làm theo có hiệu quả. Các hoạt động trong
một tổ chức phần mềm chưa trưởng thành được ví như là làm lấy lệ, và các nhà
quản lý thường tập trung vào giải quyết các vấn đề tức thời (ví như dập tắt các
ngọn lửa bùng phát mà không giải quyết tận gốc). Kế hoạch và tài chính của
phần mềm thì thường xuyên bị vượt quá, vì chúng không được dựa trên các ước
lượng thực tế. Khi mà hạn định kết thúc cận kề, chức năng và chất lượng của sản
phẩm được dàn xếp để đạt hoạch định.
Trong một tổ chức phần mềm chưa trưởng thành, không có cơ sở mục tiêu cho
việc điều chỉnh chất lượng sản phẩm hay cho việc giải quyết vấn đề về sản phẩm
hay tiến trình. Do vậy, chất lượng sản phẩm rất khó đoán. Các hoạt động nhằm
cải tiến chất lượng như là xem xét hay kiểm thử thường bị bỏ qua hay rất hạn chế
khi dự án chưa bị thúc ép.
Một mặt khác, một tổ chức phần mềm trưởng thành sở hữu một khả năng
rộng khắp tổ chức cho việc quản lý phát triển phần mềm và bảo trì tiến trình. Một
tiến trình phần mềm thường được trao đổi một cách thường xuyên và thích hợp
giữa các nhân viên hiện thời và những nhân viên mới vào và các hoạt động công


việc được thực hiện theo tiến trình đã được lên kế hoạch từ trước. Tiến trình thực
hiện rất có ích và phù hợp với cách mà công việc thực


9
tế được thực hiện. Những tiến trình đã được định nghĩa này sẽ được cập nhật khi
cần thiết, và sự cải tiến được phát triển thông qua các việc kiểm thử trước có điều
khiển và/hoặc các việc phân tích về lợi ích tài chính. Vai trò và trách nhiệm trong
một tiến trình xác định là rất rõ ràng trong dự án và trong tổ chức.
Trong một tổ chức trưởng thành, các nhà quản lý giám sát chât lượng sản
phẩm và tiến trình tạo ra chúng. Có cơ sở về mục tiêu, lượng hóa cho việc điều

chỉnh chất lượng sản phẩm và phân tích vấn đề với sản phẩm và tiến trình. Lịch
làm việc và ngân sách thường được dựa trên các năng lực từ quá khứ và rất thực
tế; kết quả mong muốn về giá cả, khung thời gian, chức năng, và chất lượng sản
phẩm thường xuyên đạt được. Nói chung, một tiến trình cơ bản được tuân theo
một cách thống nhất bởi vì tất cả mọi người tham gia đều hiểu giá trị của việc
làm như vậy, và tồn tại một cấu trúc hạ tầng thích hợp để hỗ trợ các tiến trình đó.

1.2. Các khái niệm cơ bản trên khía cạnh trưởng thành tiến trình
Một tiến trình phần mềm được định nghĩa là một tập các hành động, phương
thức, các trải nghiệm thực tế và các biến đổi mà con người sử dụng để phát triển
và bảo trì phần mềm và các sản phẩm liên quan (như kế hoạch dự án, tài liệu
thiết kế, mã, ca kiểm thử, hướng dẫn sử dụng…) Khi một tổ chức trưởng thành,
tiến trình phần mềm được xác định tốt hơn và được thực hiện chuẩn xác và nhất
quán hơn xuyên suốt tổ chức đó.
Khả năng tiến trình phần mềm miêu tả một dải các kết quả mong muốn có
thể đạt được bằng việc tuân theo tiến trình phần mềm. Khả năng tiến trình phần
mềm của một tổ chức cung cấp một công cụ dự đoán chính xác các công việc cần
làm và các kết quả sẽ đạt được của dự án tiếp theo mà tổ chức đang chuẩn bị
thực hiện.
Hiệu năng tiến trình phần mềm thể hiện kết quả thực tế đạt được nhờ việc
tuân theo tiến trình phần mềm. Do vây, hiệu năng tiến trình phần mềm tập trung
vào kết quả đạt được, trong khi khả năng tiến trình phần mềm tập trung vào kết
quả mong muốn và kế hoạch dự kiến.


Sự trưởng thành tiến trình phần mềm là một kết quả mà khi một tiến trình
nhất định được xác định, quản lý, đo đạc, điểu khiển rõ ràng và hiệu quả. Trưởng
thành ngụ ý tiềm



10
năng phát triển của tổ chức về mặt năng lực tổ chức và quản lý và chỉ ra cả sự
đầy đủ của tiến trình phần mềm được lập kế hoạch và sự thống nhất trong việc
áp dụng trong các dự án xuyên suốt tổ chức.
Khi một tổ chức phần mềm đạt được sự trưởng thành trong tiến trình phần
mềm, nó sẽ kết hợp tiến trình phần mềm của nó thông qua các chính sách, chuẩn
mực, và cấu trúc tổ chức. Sự kết hợp này bao gồm việc xây dựng cơ sở hạ tầng và
văn hóa doanh nghiệp mà hỗ trợ các phương thức, thực hành, và các thủ tục của
doanh nghiệp do đó chúng tồn tại mãi mãi sau khi người thiết lập nên chúng đã
ra đi.

2.

Năm mức trưởng thành tiến trình phần mềm
Việc cải tiến tiến trình liên tiếp được dựa trên rất nhiều các bước nhỏ, tiến hóa

hơn là một sáng tạo tiến hóa. Cấu trúc theo từng giai đoạn của CMM được đưa ra
theo nguyên tắc chất lượng sản phẩm đưa ra bởi Walter Shewart, W. Edwards
Deming, Joseph Juran và Philip Crosby. CMM cung cấp một bộ khung để sắp xếp
các bước tiến hóa này thành năm mức trưởng thành mà dựa trên cơ sở thành
công cho việc cải tiên tiến trình liên tiếp. Năm mức trưởng thành này xác định
một thước đo thứ tự để đo đạc mức độ trưởng thành của tiến trình phần mềm của
tổ chức và cho việc đánh giá năng lực tiến trình phần mềm của tổ chức đó. Các
mức này cũng giúp cho một tổ chức thu xếp mức độ ưu tiên những cố gắng cải
tiến của nó.
Một mức trưởng thành là một trạng thái ổn định mang tính tiến hóa được định
nghĩa đầy đủ hướng tới việc đạt được tiến trình phần mềm trưởng thành. Mỗi một
mức trưởng thành bao gồm một tập các mục tiêu tiến trình mà khi nó được thỏa
mãn, sẽ làm ổn định một thành phần quan trọng của tiến trình phần mềm. Đạt tới
một mức của khung trưởng thành sẽ tạo ra các thành phần khác nhau trong tiến

trình phần mềm, và kết quả là làm tăng khả năng tiến trình của tổ chức.
Việc tổ chức CMM thành năm mức được thể hiện trong hình 2.1 sắp xếp ưu
tiên các hành động cải tiến cho việc tăng cường sự trưởng thành tiến trình phần
mềm. Các mũi tên được gán nhãn trong hình 2.1 thể hiện kiểu khả năng tiến trình
được kết hợp lại bởi tổ chức tại mỗi bước của khung trưởng thành.


11

2.1. Đặc tính cư xử của các mức trưởng thành
Các mức trưởng thành từ 2 đến 5 có thể được phân biệt thông qua các hành
động thực hiện mà tổ chức đưa ra hoặc cải tiến tiến trình phần mềm, bằng các
hành động thực hiện trong mỗi dự án và bằng khả năng tiến trình đạt được thông
qua các dự án. Đặc tính cư xử của một mức đưa ra một cơ sở cho việc so sánh
việc cải tiến tiến trình ở mức độ trưởng thành cao hơn.

2.1.1. Mức khởi đầu
Tại mức khởi đầu, tổ chức không cung cấp một môi trường ổn định cho việc
phát triển và bảo trì phần mềm. Các tổ chức như vậy thường xuyên có khó khăn
trong việc cam kết rằng nhân viên có thể thỏa mãn các tiến trình kỹ nghệ yêu
cầu, và kết quả là hàng chuỗi


12
các khủng hoảng. Trong một cuộc khủng hoảng, các dự án thường không theo các
thủ tục được lên kế hoạch trước và thường bị quay lại giai đoạn lập trình và kiểm
thử. Việc thành công của dự án phụ thuộc phần lớn vào việc có một người quản lý
giỏi ngoại lệ, và có nhóm phát triển hiệu quả và dạn dày kinh nghiệm. Một tình
trạng khá thường xuyên là, người quản lý phần mềm tài ba và quyền lực có thể
trụ vững trước áp lực phải làm tắt tiến trình phần mềm; nhưng khi họ đã rời khỏi

dự án, độ ổn định của dự án cũng đồng nghĩa rời đi. Thậm chí một tiến trình kỹ
nghệ tốt cũng không thể vượt qua được sự không ổn định tạo ra bởi sự thiếu vắng
của các thực tiễn quản lý hợp lý.
Cho dù tiến trình ở mức 1 là khó xác định, thậm chí lộn xộn, các tổ chức ở
mức 1 thường xuyên phát triển các sản phẩm làm việc được, cho dù nó có thể
vượt quá ngân sách và khung lịch làm việc. Sự thành công của các tổ chức ở mức
1 phụ thuộc rất nhiều vào năng lực và yếu tố cá nhân của con người trong tổ chức
và không thể được lặp lại trừ khi có người với cùng năng lực được đưa vào các dự
án tiếp theo. Do vậy, tai mức 1, năng lực là đặc điểm của các cá nhân chứ không
phải của tổ chức.

2.1.2. Mức lặp lại được
Tại mức lặp lại được, các chính sách để quản lý dự án phần mềm và các
thủ tục để thực hiện các chính sách đó được đưa ra. Việc lên kế hoạch và quản lý
các dự án mới thường dựa vào kinh nghiệm từ các dự án tương tự trong quá khứ.
Năng lực tiến trình được cải thiện nhờ việc đưa ra quy tắc quản lý tiến trình cơ
bản dựa trên cơ sở dự án này qua dự án khác. Một tiến trình hiệu quả có thể được
phân biệt nhờ tiến trình đó được thực hành, tài liệu hóa, làm cho tuân thủ, đào
tạo, đo đạc và có khả năng cải tiến.
Các dự án trong các tổ chức mức 2 thường thiết lập được các điểu khiển
quản lý phần mềm cơ bản. Các cam kết dự án thực tế thường được dựa trên
những kết quả quan sát từ những dự án trước và dựa trên các yêu cầu của dự án
hiện tại. Các nhà quản lý dự án phần mềm theo dõi các chi phí phần mềm, ước
lịch và chức năng; các vấn đề trong các cuộc họp cam kết được xác định khi
chúng xuất hiện. Yêu cầu phần mềm và các sản phẩm công việc được phát triển
theo đúng mốc đã định, và sự tích hợp của chúng được quản lý. Các chuẩn dự án
phần mềm được xác định, và tổ chức đảm bảo chúng được tuân theo một cách


thích đáng. Dự án phần mềm làm việc với các nhà thầu phụ, nếu có, sẽ tạo được

mối quan hệ khách hàng – nhà cung cấp bền vững.


13

Các tiến trình có thể khác nhau giữa các dự án trong tổ chức ở mức 2. Yêu
cầu về mặt tổ chức để đạt được mức 2 là có chính sách hướng dẫn dự án trong
việc tạo ra các tiến trình quản lý hợp lý.
Năng lực tiến trình phần mềm trong các tổ chức ở mức 2 có thể được tổng
kết thành quy luật do việc tạo kế hoạch và theo dõi dự án phần mềm là ổn định
và các sự thành công từ sớm có thể được lặp lại. Tiến trình của dự án được đặt
dưới sự kiểm soát có hiệu quả của một hệ thống quản lý dự án, tuân theo các kế
hoạch thực tế dựa trên hiệu năng của các dự án trước.

2.1.3. Mức đã được xác định
Tại mức đã được xác định, một tiến trình chuẩn cho việc phát triển và bảo
dưỡng phần mềm được làm tài liệu cho toàn bộ tổ chức, bao gồm cả các tiến trình
kỹ nghệ phần mềm và tiến trình quản lý, và những tiến trình này được tích hợp
thành một tổng thể chặt chẽ thống nhất. Tiến trình chuẩn này được tham chiếu
đến CMM như là tiến trình phần mềm chuẩn của tổ chức. Các tiến trình được đưa
ra trong CMM mức 3 được sử dụng (và thay đổi, khi thích hợp) để trợ giúp các nhà
quản lý phần mềm và nhân viên kỹ thuật làm việc có hiệu quả hơn. Tổ chức khám
phá các thực hành kỹ nghệ phần mềm hiệu quả khi chuẩn hóa các tiến trình phần
mềm của nó. Có một nhóm có trách nhiệm về các hoạt động tiến trình phần mềm
của tổ chức, ví dụ nhóm tiến trình kỹ nghệ phần mềm (SEPG : Software
Engineering Process Group). Một chương trình đào tạo rộng khắp tổ chức được
thực hiện nhằm đảm bảo rằng tất cả nhân viên và quản lý có đủ trí thức và kỹ
năng yêu cầu để đáp ứng các vị trí được giao.
Các dự án làm thay đổi tiến trình phần mềm chuẩn của tổ chức để phát
triển tiến trình phần mềm xác định của nó, cung cấp những đặc tính duy nhất của

dự án. Tiến trình được chỉnh sửa này được tham khảo đến trong CMM như là tiến
trình phần mềm đã được xác định của dự án. Một tiến trình phần mềm đã được
xác định bao gồm một tập hợp các kỹ nghệ phần mềm được định nghĩa tốt và các
tiến trình quản lý tích hợp và thống nhất chặt chẽ với nhau. Một tiến trình được
định nghĩa tốt có thể được nhận ra bao gồm các chỉ tiêu sẵn sàng, các đầu vào,
các chuẩn mực và các thủ tục để thực hiện công việc, có cơ chế xác minh (như
xem xét ngang cấp), các đầu ra, và các chỉ tiêu hoàn thành. Bởi vì tiến trình phần


14
mềm được định nghĩa tốt, nên cấp quản lý có cái nhìn thực tế vào trong tiến trình
kỹ thuật của tất cả các dự án.
Năng lực tiến trình phần mềm của các tổ chức mức 3 có thể được tổng kết
lại là chuẩn và thống nhất bởi vì cả kỹ nghệ phần mềm và các hoạt động quản lý
rất ổn định và có thể lặp lại được. Trong đó các dải sản phẩm được đưa ra, giá cả,
lịch hoàn thành, và các chức năng được đặt dưới sự kiểm soát, và chất lượng
phần mềm được theo dõi chặt chẽ. Năng lực tiến trình này được sự hiểu biết
chung, rộng khắp tổ chức của các hoạt động, các vai trò, trách nhiệm trong một
tiến trình phần mềm đã được xác định.

2.1.4. Mức được quản lý
Tại mức đã được quản lý, tổ chức đặt mục tiêu chất lượng phần mềm được
lượng hóa cho cả sản phẩm phần mềm và các tiến trình. Năng suất và chất lượng
được đo đạc cho các hoạt động tiến trình phần mềm quan trọng xuyên suốt tất cả
các dự án như là một phần của chương trình đánh giá tổ chức. Một cơ sở dứ liệu
tiến trình phần mềm xuyên suốt tổ chức được sử dụng để thu thập và phân tích
các dữ liệu có sẵn từ các tiến trình phần mềm đã được xác định của dự án. Các
tiến trình phần mềm được cung cấp các công cụ để đo đạc được xác đinh tốt và
thống nhất tại mức 4. Các công cụ này đưa ra cơ sở về lượng cho việc đánh giá
các tiến trình phần mềm của dự án và sản phẩm.

Dự án đạt được những điều khiển thông qua các sản phẩm của nó và các
tiến trình bằng việc thu hẹp lại thay đổi trong hiệu năng tiến trình của chúng để
rơi vào giới hạn về lượng cho phép. Các sự thay đổi có ý nghĩa trong hiệu năng
tiến trình có thể được phân biệt nhờ các thay đổi ngẫu nhiên (nhiễu), đặc biệt là
trong dòng sản phẩm đã được đưa ra. Các rủi ro liên quan đến việc điều chỉnh lên
cao việc học miền ứng dụng mới được biết đến và quản lý chặt chẽ.
Năng lực tiến trình phần mềm của các tổ chức mức 4 có thể được tổng kết
là có thể được lượng hóa và dự đoán trước bởi vì các tiến trình được đo đạc và
hoạt động trong giới hạn lượng hóa. Mức năng lực tiến trình này cho phép một tổ
chức có thể dự đoan được xu hướng trong tiến trình và chất lượng sản phẩm trong
một biên lượng hóa của các giới hạn này. Bởi vì tiến trình là cả ổn định và đo đạc
được, cho nên khi một vài trường hợp ngoại lệ xuất hiện, “nguyên nhân đặc biệt”
của sự biến đổi có thể được xác định và xử lý. Khi giới


15
hạn được biết đến của tiến trình bị vượt qua, hành động sẽ được thực hiện để
khắc phục tình huống. Sản phẩm phần mềm được coi là có chất lượng cao và dự
đoán được.

2.1.5. Mức 5 – Mức tối ưu
Tại mức tối ưu, toàn bộ tổ chức tập trung vào việc cải tiến tiến trình không
ngừng. Tổ chức sẽ có công cụ để xác định điểm yếu và nâng cao tiến trình một
cách chủ đông linh hoạt, với mục tiêu là ngăn ngừa sự xuất hiện của lỗi. Dữ liệu
của độ hiệu quả của tiến trình phần mềm được sử dụng để thực hiện việc phân
tích giá trị và lợi nhuận của các công nghệ mới và đưa ra các đề nghị thay đổi tiến
trình phần mềm của tổ chức. Sự năng động mà tìm ra những thực hành kỹ nghệ
phần mềm tốt nhất được xác định và chuyển giao xuyên suốt tổ chức.

Nhóm dự án phần mềm trong các tổ chức ở mức 5 thực hiện việc phân tích

lỗi để tìm ra nguyên nhân của chúng. Các tiến trình phần mềm được đánh giá để
ngăn ngừa những loại lỗi đã được biết đến xuất hiện lại, và các bài học kinh
nghiệm được phổ biến cho các dự án khác.
Có một sự lãng phí kinh niên, theo kiểu làm lại, trong bất kỳ một hệ thống
nào đơn giản là vì sự thay đổi ngẫu nhiên. Lãng phí là không chấp nhận được,
những nỗ lực được tổ chức để loại bỏ sự lãng phí dẫn đến kết quả là hệ thống
thay đổi, ví dụ cải tiến một tiến trình bằng việc thay đổi “các nguyên nhân
chung” của sự không hiệu quả để ngăn chặn sự lãng phí xuất hiện. Trong khi điều
này là đúng với tất cả các mức trưởng thành, nó được tập trung tại mức 5.
Năng lực tiến trình phần mềm của các tổ chức ở mức 5 có thể được nhận ra
là sự liên tục cải tiến do các tổ chức ở mức 5 luôn cố gắng không ngừng để cải
tiến dải của năng lực tiến trình của họ, do vậy cải tiến hiệu năng tiến trình của
các dự án . Sự cải tiến xuất hiện do cả sự tiến bộ không ngừng trong tiến trình
hiện thời và bởi sự sáng tạo sử dụng các công nghệ và phương pháp mới. Sự cải
tiến về công nghệ và tiến trình được lên kế hoạch và quản lý chặt chẽ như là các
hoạt động kinh doanh bình thường.

2.2. Năng lực tiến trình và dự báo hiệu năng


16
Sự trưởng thành của một tiến trình phần mềm của tổ chức giúp cho việc dự
báo khẳ năng của dự án thỏa mãn các mục tiêu của nó. Dự án trong các tổ chức
mức 1 trải qua rất nhiều sự thay đổi lớn trong việc đạt được giá cả, lịch biểu, chức
năng, và các mục tiêu chất lượng. Như được thể hiện trong hình 2.4, ba sự cải
tiến trong việc đạt đến các mục tiêu đích được mong đợi như là sự trưởng thành
tiến trình phần mềm của tổ chức. Những sự mong đợi này được dựa trên các kết
quả lượng hóa việc cải tiến tiến trình mà đã đạt được trong các ngành công
nghiệp khác, và chúng thống nhất với các kết quả trường hợp ban đầu được báo
cáo bởi các tổ chức phần mềm.

Thứ nhất, khi độ trưởng thành tăng lên, sự chênh lệch giữa kết quả đích và
kết quả thực tế giảm đi qua các dự án. Ví dụ, các tổ chức ở mức 1 thường để lỡ
ngày giao hàng theo lịch biểu ban đầu với một độ chênh lệch lớn, trong khi các tổ
chức ở mức độ trưởng thành cao hơn có khả năng đạt được ngày đích với độ
chính xác cao. (Điều này được thể hiện trong hình 2.4 bởi độ lớn của vùng phía
dưới đường cong nằm ở bên phải của đường đích).
Thứ hai, khi độ trưởng thành tăng lên, khả năng thay đổi của kết quả thực
tế xung quanh kết quả đích giảm đi. Ví dụ, trong các tổ chức mức 1, ngày giao
hàng cho các dự án có cùng kích cỡ thường không đoán được và thay đổi rất
nhiều. Tuy nhiên, các dự án tương tự trong tổ chức với mức trưởng thành cao hơn
sẽ được giao hàng trong dải nhỏ. (Điều này được thể hiện trong hình 2.4 bởi độ
lớn của vùng phía dưới đường cong được tập trung gần đường đích).
Thứ ba, các kết quả đích được cải tiến khi mức độ trưởng thành của tổ chức
tăng lên. Điều này có nghĩa là, khi một tổ chức phần mềm trưởng thành, giá phần
mềm sẽ giảm, thời gian phát triển trở nên ngắn hơn, năng suất và chất lượng sẽ
tăng lên. Trong một tổ chức ở mức 1, thời gian phát triển có thể rất dài do số
lượng phải làm lại lớn để sửa lỗi. Trái lại, các tổ chức với mức trưởng thành cao
hơn đã tăng độ hiệu quả của tiến trình và giảm việc làm lại liên quan đến giá, cho
phép thời gian phát triển trở nên ngắn hơn. (Điều này được thể hiện trong hình
2.4 bởi sự dịch chuyển ngang của đường đích từ vị trí ban đầu).
Sự cải tiến trong việc dự báo kết quả của một dự án được thể hiện trong
hình 2.4. Giả thiết rằng đầu ra của dự án phần mềm trở nên dễ đoán hơn là
nhiễu, thường là trong khuôn dạng làm lại, bị loại khỏi từ tiến trình phần mềm.


Các hệ thống chưa có tiền lệ làm phức tạp bức tranh do các công nghệ và ứng
dụng mới làm giảm khả năng tiến trình bằng


17

việc tăng cường thay đổi. Thậm chí trong trường hợp của các hệ thống chưa có
tiền lệ, đặc điểm thực hành quản lý và kỹ nghệ của các tổ chức trưởng thành hơn
giúp cho việc xác định và giải quyết các vấn đề trong giai đoạn sớm của vòng đời
phát triển hơn là chúng được phát hiện trong các tổ chức ở mức trưởng thành
thấp hơn. Trong một vài trường hợp, một tiến trình trưởng thành có nghĩa là dự án
“thất bại” được xác định sớm trong vòng đời phần mềm và sự đầu tư mất mát
được tối thiểu hóa.
Các trường hợp được ghi lại của việc cải tiến tiến trình phần mềm chỉ ra
rằng, có sự cải tiến đáng kể trong cả chất lượng lẫn năng suất như là kết quả của
nỗ lực cải tiến. Tỷ lệ tái đầu tư điển hình từ trong dải 5:1 đến 8:1 cho các nỗ lực
cải tiến tiến trình thành công.

2.3. Bỏ qua các mức trưởng thành


18
Việc cố gắng bỏ qua các mức trưởng thành là không hiệu quả vì mỗi một
mức trưởng thành trong mô hình CMM hình thành một cơ sở cần thiết để từ đó có
thể đạt được mức tiếp theo. Mô hình CMM chỉ ra các mức mà thông qua đó một tổ
chức nên liên đới tạo ra một văn hóa kỹ nghệ phần mềm hoàn hảo. Các tổ chức
có thể tập hợp các cải tiến tiến trình nhất định tại bất cứ thời điểm nào họ chọn,
thậm chí là trước khi chúng được chuẩn bị để đạt được mức mà tại đó các thực
hành nhất định được đề nghị. Tuy nhiên, các tổ chức nên hiểu rằng, sự ổn định
của các cải tiến đó sẽ có độ rủi ro cao hơn do cơ sở của sự tập hợp thành công
của chúng vẫn chưa được hoàn thiện. Các tiến trình mà thiếu đi cơ sỏ thích hợp
sẽ không thành công tại chính điểm mà chúng được cần đến nhất – dưới áp lực –
và chúng không cung cấp cơ sở gì cho sự cải tiến trong tương lai.
Ví dụ, một tiến trình phần mềm được định nghĩa tốt là đặc điểm của các tổ
chức ở mức 3, có thể được thay thế ở mức rủi ro lớn hơn nếu mức quản lý cam kết
một lịch biểu được lên kế hoạch nghèo nàn hoặc không điều khiển được các thay

đổi đối với các yêu cầu dòng cơ bản. Tương tự như vậy, rất nhiều các tổ chức đã
thu thập đặc điểm dữ liệu chi tiết của mức 4, chỉ để tìm ra rằng dữ liệu không thể
hiểu được bởi vì sự không thống nhất trong các tiến trình phát triển phần mềm.
Tại cùng một thời điểm, người ta nhận ra rằng các nỗ lực cải tiến tiến trình
nên tập trung vào nhu cầu của tổ chức trong ngữ cảnh của môi trường kinh doanh
của nó, và các thực hành ở mức cao hơn có thể giải quyết nhu cầu hiện tại của
một tổ chức hoặc dự án. Ví dụ, khi miêu tả các bước mà một tổ chức nên thực
hiện để chuyển từ mức 1 sang mức 2, một trong những gợi ý thường xuyên là tạo
ra nhóm kỹ nghệ tiến trình phần mềm (SEPG), mà nó là một thuộc tính của các tổ
chức mức 3. Trong khi SEPG là một đặc tính chưa cần thiết của tổ chức mức 2,
chúng có thể là một phần có ích của việc miểu tả để đạt được mức 2.

3.

Định nghĩa theo kiểu hoạt động của mô hình CMM
CMM là một bộ khung thể hiện con đường của việc cải tiến, gợi ý cho các tổ

chức phần mềm muốn tăng cường khả năng tiến trình phần mềm của họ. Việc
sáng tạo hoạt động này của CMM được thiết kế để hỗ trợ rất nhiều cách mà nó có
thể sẽ được sử dụng. Hiện nay người ta hỗ trợ ít nhất là 4 cách sử dụng của CMM:


×