Việc tổ chức đội lập trình như thế này có thể sản xuất chương trình một cách nhanh chóng và đáng tin cậy hơn so với một đội ngũ lập trình viên có kỹ năng ngang hàng nhau.. Việc ủy quyề
Trang 1MỤC LỤC
1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Lê Thị Thuỳ Linh
20080063 20086100
Giảng viên hướng dẫn: Huỳnh Quyết Thắng
Hà Nội, 2012
Trang 2Đề bài:
I Định nghĩa các khái niệm trong slide "sorting out software advice".
II.Tìm hiều các khái niệm liên quan đến CMM, CMM-I , vai trò trong tổ chức công ty
doanh nghiệp phần mềm
Trang 3MỤC LỤC
I Định nghĩa các khái niệm 4
II Các khái niệm liên quan đến CMM/CMMI, vai trò của chúng trong tổ chức công ty doanh nghiệp phần mềm 6
A Tìm hiểu về CMM và CMMI 6
1 Các khái niệm về CMM (CMM - Capability Maturity Model : Mô hình thuần thục khả năng) 6
a CMM là gì? 6
b Lịch sử phát triển 6
c Tại sao phải sử dụng CMM trong công nghệ phần mềm 7
d Các khái niệm cơ bản trong CMM 7
e Cấu trúc của CMM 8
f Khả năng quan sát tiến trình, khả năng tiến trình và dự đoán trong mô hình CMM 14
g Cách sử dụng mô hình CMM 14
2 Các khái niệm về CMMI 14
a CMMI là gì? 15
b CMMI bắt nguồn từ đâu? 15
c Khác biệt giữa ISO 9001:2000 và CMM/CMMI? 16
d SCAMPI là gì? 17
e CMMI dùng để làm gì? 17
f Các level của CMMI 17
g Sự khác nhau giữa CMM và CMMI 17
B Vai trò của CMM/CMMI trong tổ chức công ty doanh nghiệp phần mềm 19
3 Lợi ích của CMM/CMMI đem lại cho doanh nghiệp 19
4 Vai trò trong tổ chức doanh nghiệp phần mềm Việt Nam 20
2.
Trang 4I Định nghĩa các khái niệm
1 Independent test team:một đội thực thi hệ thống và đưa ra kết quả kiểm tra một
cách độc lập với đội phát triển hệ thống hoặc ứng dụng Đội thử nghiệm độc lập này không bao gồm bất kỳ một thành viên nào của đội phát triển hệ thống
2 Chief programmer team: đội lập trình chính : Một đội lập trình mà trách nhiệm
thiết kế chương trình và thực hiện dựa hoàn toàn vào các thành viên có kỹ năng cao nhất – những lập trình viên chính Những thành viên khác trong đội sẽ hỗ trợ những công việc khách nhau Một đội điển hình bao gồm lập trình viên chính, lập trình viên dự phòng, người viết tài liệu, người quản trị , thư ký… Lập trình viên
dự phòng hỗ trợ cho các lập trình viên chính và có thể đảm nhiệm vai trò thay thế lập trình viên chính nếu cần thiết Người viết tài liệu duy trì tất cả các tài liệu kỹ thuật về dự án như tài liệu thiết kế, module nguồn và lịch sử kiểm thử Người quản trị làm nhiệm vụ quản lý hành chính về dự án Các dịch vụ khác có thể cung cấp từ các đội bên ngoài nếu cần thiết Việc tổ chức đội lập trình như thế này có thể sản xuất chương trình một cách nhanh chóng và đáng tin cậy hơn so với một đội ngũ lập trình viên có kỹ năng ngang hàng nhau
3 Do it top – down : Phương pháp phân tích từ trên xuống Theo phương pháp
này, người thiết kế hệ thống chia các chức năng (hàm) chính của hệ thống thành các chức năng nhỏ hơn, đến lượt mình, các chức năng nhỏ này lại được chia tiếp thành các chức năng nhỏ hơn nữa cho đến khi được các khối (hàm) chương trình
đủ nhỏ Việc phân tích này được thể hiện trực quan theo sơ đồ khối
4 Automated aids
5 Early requirements baseline : Requirement baseline: đưa ra những định nghĩa rõ
ràng về những chức năng , những yêu cầu mà dự án cần thực thi
Việc xác định những yêu cầu cơ sở sớm có thể thúc đẩy quá trình kiểm soát thay đổi nhanh hơn Chờ đợi quá lâu để thiết lập một requirement baseline có thể là một dấu hiệu của tình trạng tê liệt phân tích Có lẽ các nhà phân tích đang cố gắngquá khó khăn để hoàn thiện bộ các yêu cầu trước khi bàn giao cho họ để đội ngũ phát triển để thực hiện
6 Design verification: Thẩm tra thiết kế là bước thiết yếu trong bất kỳ sản phẩm
được phát triển nào Đây là bước kiểm tra chất lượng nhằm xác định xem tất cả các kết quả đầu ra có đáp ứng được các thiết kế đầu vào hay không, có đáp ứng được mong đợi của khách hàng hay không?
7 Project work authorizations: Ủy quyền công việc dự án là một phương pháp
làm việc được sử dụng kết hợp với quản lý dự án Việc ủy quyền công việc của dựán được người quản lý dự án giao cho cấp dưới để phê duyệt tất cả các công việc
dự án trong suốt quá trình dự án thực thi
8 Unit development folders: (UDF)
công cụ chính để theo dõi tiến độ trong quá trình phát triển phần mềm và các hoạt động thử nghiệm Tất cả các UDFs được điều khiển bởi một kỹ sư dự án, kỹ sư
Trang 5dự án chịu trách nhiệm để đảm bảo rằng các định dạng yêu cầu của UDF được duy trì và cho phép đánh giá đầy đủ về tình trạng đơn vị được thực hiện.
Mục đích: Cung cấp cách tiếp cận có trật tự và nhất quán trong việc phát triển mỗiđơn vị của chương trình, dự án Cung cấp khả năng hiển thị quản lý cấp thấp và kiểm sota quá trình phát triển Người quản lý có thể dễ dàng truy nhập kiểm tra trạng thái của từng đơn vị
1 UDF có thể chứa các thành phần:
Phần mở đầu (Introduction)
Các yêu cầu (requirement)
Giao diện bên trong (External Interfaces)
Mô tả thiết kế (Design Description)
Kế hoạch kiểm thử đơn vị (Unit Test Plan)
Kết quả kiểm thử (Test Results)
Báo cáo vấn đề (Problems Reports)
Ghi chú (Notes)
9 Structured programing : Lập trình cấu trúc là một tập con của lập trình thủ tục
Trong một chương trình máy tính, các khối chức năng có thể được thực hiện không chỉ theo trình tự mà còn có thể theo các tình huống và lặp lại nhiều lần Phương pháp lập trình cấu trúc được dựa trên các mô hình toán học của Bohm và Guiseppe, theo đó, một chương trình máy tính có thể được viết dựa trên ba cấu trúc: trình tự, quyết định và vòng lặp.Trình tự nghĩa là các câu lệnh được thực hiện theo trình tự nhất định: trên xuống.Quyết định là sự qui định sẽ thực hiện chương trình như thế nào phụ thuộc vào sự thoả mãn các điều kiện nhất
định.Vòng lặp thể hiện sự thực hiện có tính lặp một số đoạn lệnh của chương trìnhkhi các điều kiện nào đó vẫn được thỏa mãn.Thông qua các cấu trúc trên, mã chương trình trở nên sáng sủa và dễ đọc
Lập trình có cấu trúc dựa trên lý thuyết cho rằng mô-đun hóa làm cho chương trình tốt hơn Chia các thành phần, chức năng chương trình thành các module Điều này làm cho nó dễ dàng hơn để viết, gỡ lỗi, và hiểu về chương trình
10 Prove everything correct : Chứng minh tất cả mọi thứ đều chính xác Kiểm tra
tất cả thiết kế, mã nguồn, lên kế hoạch kiểm thử nhằm mục đích hạn chế tối đa lỗi
có thể xảy ra, đảm bảo chương trình đáp ứng đúng yêu cầu của khách hàng
11 Thorough test planning: Lên kế hoạch kiểm thử một cách triệt để.
Một kế hoạch thử nghiệm là một tài liệu chi tiết thi hành một cách tiếp cận có hệ thống để thử nghiệm một hệ thống như một máy tính hoặc phần mềm Kế hoạch này thường chứa một sự hiểu biết chi tiết về các công việc cuối cùng sẽ được.Một kế hoạch kiểm tra tài liệu chiến lược sẽ được sử dụng để xác minh và đảm bảo rằng một sản phẩm hay hệ thống đáp ứng các thông số kỹ thuật thiết kế và cácyêu cầu khác Một kế hoạch thử nghiệm thường được chuẩn bị với các đầu vào quan trọng từ các kỹ sư thử nghiệm
Trang 6Tùy thuộc vào sản phẩm và trách nhiệm của các tổ chức để có kế hoạch thử nghiệm áp dụng.
12 Built it twice : Nếu bạn muốn xây dựng một Project, muốn Project đó thành công
hãy làm một cách thật kỹ càng Đứng ở hai góc độ để xem xét lập dự án: góc độ đạt tới thành công nhất và góc độ Project thất bại cao nhất để lường trước mọi nguy hại để phòng tránh
13 Use disciplined of reviews: Xây dựng dự án phải lường trước được sai xót, đưa
ra được những sai sót có thể mắc phải
14 Do it out-side in:
15 Progamming standards: Khi lập trình chúng ta phải đưa ra một tiêu chuẩn cụ
thể, xuyên suốt thời gian xây dựng dự án Một dự án mà thay đổi tiêu liên tục sẽ khó thành công, nhưng cũng nên thay đổi tiêu chuẩn sao cho phù hợp với yêu cầu người dùng, yêu cầu thị trường, yêu cầu xã hội, và phù hợp với công nghệ
16 Measurable milestores: Lường trước được những sự kiện quan trọng như yêu
cầu của khách hàng thay đổi, công nghệ thay đổi, hay mọi ảnh hưởng từ bên ngoài
và bên trong khi xây dựng phần mềm nhằm đảm bảo thành công và đạt được lợi ích
17 Program library: Tạo một thư viện phần mềm để khi xây dựng một dự án mới
nên tận dụng tối đa những chương trình có sẵn
18 Involve the user: Xác định tất cả cộng đồng người sử dụng để có thể và xác định những lợi ích của họ
Dành thời gian chất lượng với những người dùng của bạn Hãy chắc chắn rằng bạn biết những gì họ làm cho một cuộc sống và cách họ làm điều đó, thủ tục kinh doanh không chính thức thường không có tài liệu nhưng được tuân thủ chặt chẽ các quy trình tài liệu
Hút sự tham gia của cộng đồng người sử dụng của bạn sớm và thường xuyên Sử dụng tạo mẫu nhanh, lặp đi lặp lại phân phôi, xoắn ốc phát triển bất cứ điều gì từ thông dụng mà bạn muốn áp dụng Sớm tham gia bởi người sử dụng thường sẽ dẫn đến "sở hữu chung" ý tưởng rằng người đó "sở hữu" một phần của
hệ thống Điều quan trọng là niềm tự hào của quyền sở hữu mở rộng cộng đồng người sử dụng
Đấu tranh cho ý kiến phản hồi có ý nghĩa Một số người sử dụng có thể được nhiều hơn sẵn sàng để được dẫn đến một kết luận đó là không nhất thiết phảicủa riêng mình
Hiện đang có là thời gian khi người sử dụng khác nhau của bạn có ý kiến khác nhau, và bạn sẽ không thể hòa giải chúng Xem xét việc hình thành nhóm một người sử dụng tự quản để giải quyết sự khác biệt khó chữa, nó giúp bạn ra
19.Configuration management: Quản lý cấu hình (CM) là một lĩnh vực quản lý tập trung vào việc thiết lập và duy trì tính thống nhất của một hệ thống hoặc hiệu suất của sản phẩm và các thuộc tính chức năng và vật lý của nó với yêu cầu, thiết kế của nó, và thông tin hoạt động trong suốt cuộc đời của nó
Trang 7Để đảm bảo thông tin , CM có thể được định nghĩa là việc quản lý các tínhnăng bảo mật và đảm bảo thông qua kiểm soát các thay đổi được thực hiện để tài liệu hướng dẫn phần cứng, phần mềm, phần mềm, tài liệu hướng dẫn, kiểm tra, đồđạc kiểm tra, kiểm tra, trong suốt vòng đời của một hệ thống thông tin [2] CM cho
đảm bảo thông tin, đôi khi được gọi là S ecureC anagement M onfiguration, dựa
vào hiệu suất, các thuộc tính chức năng và vật lý của nền tảng và các sản phẩm vàmôi trường của họ để xác định các tính năng bảo mật thích hợp và đảm bảo được
sử dụng để đo lường một cấu hình hệ thống nhà nước
20.End – item acceptance plan: dự án được chấp nhận khi đã rà soát từ đầu đến
cuối Dự án chỉ được chấp nhận khi tất cả các mục được chấp nhận
21 Automated aids: Khi xây dựng dự án cần tận dụng các công cụ hỗ trợ tự động
22 Use walk through: Là một hình thức phản biện chuyên gia phần mềm trong đó
một nhà thiết kế hay lập trình dẫn các thành viên của nhóm phát triển và các bên liên quan thông qua một sản phẩm phần mềm và các bên liên quan đặt câu hỏi và đưa ra nhận xét về các lỗi có thể vi phạm các tiêu chuẩn phát triển và các vấn đề khác
II Các khái niệm liên quan đến CMM/CMMI, vai trò của chúng trong
tổ chức công ty doanh nghiệp phần mềm
b Lịch sử phát triển
CMM là kết quả của một nghiên cứu được không quân Mỹ tài trợ, nghiên cứu nàyđược coi là một phương pháp đánh giá khách quan công việc của các nhà thầu phụ về phần mềm Bộ Quốc Phòng Mỹ cũng quan tâm tới việc chi phí phát triển phần mềm đangleo thang và các vấn đề liên quan đến chất lượng của các phần mềm nên đã thành lập viện SEI vào đầu những năm 80, và bắt đầu nghiên cứu mô hình CMM vào năm 1988
Ban đầu, mô hình CMM được sử dụng như một công cụ để đánh giá khả năng củacác nhà thầu chính phủ khi họ tiến hành một dự án phần mềm theo hợp đồng Mặc dù CMM được thiết kế để đánh giá quá trình phát triển phần mềm nhưng nó đã và đang
Trang 8được áp dụng như một mô hình chung cho kỳ hạn của các quá trình trong các công ty về CNTT hay bất cứ công ty nào khác.
Các nhà phê bình cũng nhận thấy CMM luôn được gắn chặt trong một mô hinh phát triển thác nước và không quan tâm tới các khía cạnh khác của quy trình phát triển phẩn mềm như thiết kế và triển khai CMM không phù hợp với các quy trình ngoại vi liênquan đến việc phát triển phần mềm như là việc mua lại CMM cũng bị phê phán là tạo ra quá nhiều giấy tờ sổ sách và quá nhiều cuộc họp và nó cũng không phù hợp với nhiều ngành công nghiệp
Các ngành công nghiệp và chính phủ đã tìm ra giải pháp cho vấn đề này bằng cách áp dụng CMM cho các lĩnh vực khác Toàn bộ quy trình sẽ được giám sát bởi một ban lãnh đạo bao gồm những người đại diện từ OSD, Không quân, Quân đội, Hải quân, các bộ phận khác của chính phủ, SEI và ngành công nghiệp Nhiệm vụ của ban lãnh đạo này là hướng dẫn và giám sát quá trình phát triển dòng sản phẩm CMMI, đưa ra các sản phẩm CMMI để thẩm tra và phát hành ra công chúng Viện SEI phối hợp với các chuyên gia đề tài phụ trách quản lý dự án ban đầu là phát triển phần mềm, xây dựng hệ thống, phát triển quy trình và sản phẩm tích hợp Các cổ đông/ các nhà phê bình đều có quyền kiểm tra, phê bình và đưa ra những gợi ý để phát triển các sản phẩm CMMI Trong số những người này cũng có những đại diện từ ngành công nghiệp, chính phủ và viện SEI
c.Tại sao phải sử dụng CMM trong công nghệ phần mềm.
- Các tiến trình phần mềm thường bị thay đổi cập nhật mà không có sự chuẩn bịtrước Đặc tả một tiến trình phần mềm không chặt chẽ, dẫn đến sự khủng hoảng khi thực hiện một dự án
- Thiếu cơ sở để đánh giá chất lượng phần mềm, để đưa ra phương thức tiến hành và cách giải quyết các vấn đề phát sinh
Một số thuận lợi khi sử dụng CMM:
- Dễ dàng quản lý phát triển phần mềm Các tiến trình được cập nhật qua sự điều khiển của các nhà phân tích kiểm thử
- Vai trò, trách nhiệm cảu mỗi thành viên trong các tiến trình được phân tích rõ ràng
- Quản lý chất lượng của phần mềm, thỏa mãn các yêu cầu khách hang Có cơ
sở chuẩn xác đánh giá chất lượng, thời gian, chi phí và phân tích dự an và các tiến trình
d Các khái niệm cơ bản trong CMM.
Tiến trình (Process).
Trang 9Một tiến trình phần mềm là một tập hợp các hành động, phương thức, thực hành, thay đổi mà người ta dùng để duy trì và phát triển phần mềm cũng như các thành phần liên quan tới chúng.
Khả năng tiến trình phần mềm.
Đây là khái niệm cho biết phạm vi kết quả có thể mong đợi của một tiến trình phần mềm Đồng thời nó còn dự đoán khả năng làm dự án phần mềm tiếp theo của công ty
Thực thi tiến trình phần mềm (Software Process Performance).
Thực thi tiến trình phần mềm cho biết kết quả thực tế của một tiến trình phần mềm Như vậy nó hướng tới kết quả đạt được còn khả năng tiến trình phần mềm cho thấy kết quả có thể mong đợi Do phụ thuộc và đặc trưng của dự án và từng trường hợp cụ thể, nên kết quả thực tế thường không phản ánh đầy đủ khả năng tiến trình của một công ty
Thuần thục tiến trình phần mềm(Softwareprocess maturity ).
Chỉ rõ một tiến trình phần mềm được xác định, quản lý, đánh giá, điều khiển, chỉ ra giá trị của tiến trình phần mềm, tính vững chắc của dự án
e.Cấu trúc của CMM Các level của CMM:
CMM bao gồm 5 levels và 18 KPAs(Key Process Area)
5 levels của CMM như sau:
- 1: Initial, 2: Repeatable,3: Defined,4: Managed, 5: Optimising
Nói cách khác mỗi một level đều tuân theo một chuẩn ở mức độ cao hơn Muốn đạt được chuẩn cao hơn thì các chuẩn của các level trước phải thoả mãn Mỗi level đều có đặc điểm chú ý quan trọng của nó cần các doanh nghiệp phải đáp ứng được
Level 1 thì không có KPAs nào cả
Level 2 : có 6 KPAs
Level 3: có 7 KPAs
Level 4: có 2 KPAs
Level 5: có 3 KPAs
Trang 1018 KPAs của CMM được đều có 5 thuộc tính(chức năng) chung trong đó có các qui định
về key pratice là những hướng dẫn về các thủ tục(procedure), qui tắc(polities), và hoạt động (activites)của từng KPA
Đầu tiên ta có cấu trúc của một KPA với 5 điểm đặc trưng(common feature)
Mô hình này xác định năm cấp độ của CMM đối với một công ty : Khởi đầu (lộn xộn, không theo chuẩn) - Lặp (quản lý dự án, tuân thủ quy trình) - Xác lập (thể chế hóa) - Kiểm soát (định lượng) - Tối ưu (cải tiến quy trình)
Trong đó để thực hiện KPA này ta cần phải thực hiện theo những qui tắc sau để bảo đảmđạt được KPA đó:
(1) Commitment to Perform ( Tạm dịch là cam kết thực hiện)
(2) Ability to Perform (Khẳ năng thực hiện)
(3) Activities Peformed (Các hoạt động lâu dài)
(4) Measurement and Analysis (Khuân khổ và phân tích)
(5) Verifiying and Implementation
Trang 11Hành chính: Các hoạt động của lực lượng lao động được quan tâm hàng đầu
nhưng được thực hiện một cách vỗi vã hấp tấp
Không thống nhất: Đào tạo quản lý nhân lực nhỏ lẻ chủ yếu dựa vào kinh nghiệp
cá nhân
Quy trách nhiệm: Người quản lý mong bộ phận nhân sự điều hành và kiểm sóat
các hoạt động của lực lượng lao động
Quan liêu: Các hoạt động của lực lượng lao động được đáp ứng ngay mà không