2.1 Khái quát chungoverview Tiến trình phần mềm là cách thức tạo ra phần mềm Mỗi công ty có tiến trình phần mềm riêng Khách hàng client: cá nhân hay công ty đặt hàng sản phẩm Nhà
Trang 12 tiÕn tr×nh phÇn mÒm(THE SOFTWARE PROCESS)
Néi dung:
Kh¸i niÖm vÒ kh¸ch hµng, nhµ ph¸t triÓn vµ ng−êi sö dông
C¸c giai ®o¹n trong chu tr×nh sèng cña phÇn mÒm
Mét sè khÝa c¹nh trong s¶n xuÊt phÇn mÒm
C¶i tiÕn tiÕn tr×nh phÇn mÒm : m« h×nh kh¶ tr−ëng
C¸c tiªu chuÈn quèc tÕ
Trang 22.1 Khái quát chung
(overview)
Tiến trình phần mềm là cách thức tạo ra phần mềm
Mỗi công ty có tiến trình phần mềm riêng
Khách hàng (client): cá nhân hay công ty đặt hàng sản phẩm
Nhà phát triển (developer): các thành viên của công ty có trách nhiệm phát triển phần mềm đã được đặt hàng
có trách nhiệm một phần như thiết kế, cai đặt,
Các dạng quan hệ giữa khách hàng và nhà phát triển
cùng cơ quan, phần mềm nội bộ (internal software)
khác cơ quan, phần mềm hợp đồng (contract software)
Người sử dụng (user): một hay nhiều cá nhân thay mặt khách hàng để sử dụng sản phẩm
Phát triển phần mềm (software development): bao gồm tất cả các công
Trang 32.2 Các giai đoạn
(the phases)
Giai đoạn yêu cầu (requierement)
Kiểm thử (test)
Giai đoạn đặc tả (specification)
Giai đoạn thiết kế (design)
Giai đoạn cài đặt (implementation)
Giai đoạn tích hợp (integration)
Giai đoạn bảo trì (maintenance phase) Kết thúc sử dụng (retirement)
Hình 2.1 Các giai đoạn trong chu trình sống của phần mềm
Trang 42.3 Một số khía cạnh trong sản xuất phần mềm
(the aspects of software production)
Độ phức tạp (complexity)
là một thuộc tính của phần mềm
tác động trên tiến trình phần mềm và cả công tác quản lý tiến trình
có thể biểu diễn bằng toán học và vật lý
ảnh hưởng đến công tác bảo trì
Sự thích ứng (conformity)
phần mềm phải thích ứng được với các thiết bị sẵn có (không phải các thiết bị đáp ứng phần mềm)
thích ứng tốt với phần cứng phục vụ phần mềm
Dễ chuyển đổi (changeability)
phần mềm phải thay đổi theo thực tiễn
thay đổi phần mềm dễ hơn thay đổi về phần cứng
Trang 5 Tính vô hình (invisibility)
giấu các công đoạn phức tạp khi thực hiện phần mềm
dễ dàng thuyết minh, thuyết phục khách hàng
dễ dàng giao tiếp giữa các bộ phận thực hiện phần mềm
Nhanh chóng tạo phần mềm mới từ các bộ phận hay công cụ có sẵn
(silver bullet)
giảm thời gian cũng như chi phí thực hiện phần mềm
sử dụng mô hình chuyển đổi nhanh
Hình thành thuật ngữ : lỗi trên 1000 dòng lệnh tương đương assembler
(faults per million equivalent assembler source - MEASL)
Trang 62.4 Cải tiến tiến trình phần mềm: mô hình khả trưởng
(improving the software process: capability maturity models)
CMMs là nhóm các chiến lược liên quan với nhau nhằm cải tiến tiến trình phần mềm Được đề xuất tại Viện công nghệ phần mềm (software
engineering institute - SEI) [Humphrey, 1989]
cho phát triển sản phẩm tích hợp IPD-CMM (integrated product
development)
Hình 2.2 Năm mức của CMM
Trang 72.5 Các tiêu chuẩn quốc tế
(international standards)
CMMs là tiêu chuẩn khởi điểm cho các tiêu chuẩn về sau
ISO 9000
International Standards Organization (ISO) 9000-series standards
gồm 5 chuẩn áp dụng rộng rãi cho các hoạt động công nghiệp: thiết
kế (design), phát triển(development), sản xuất(production), cài đặt (installation) và bảo dưỡng (servicing)
trên 60 nước chấp thuận: Mỹ, Nhật, Canađa, EU, Việt Nam,
SPICE
trên 40 nước chấp thuận
Trang 82.6 Giá thành và ợi ch của việc cải tiến tiến trình phần mềm
(costs and benefits of ‘software process improvement-SPI’)
Công ty Software Engineering Division of Hughes Aircaft ở Fullerton,
California đã trả $500000 để thực hiện chuyển đổi từ mức 2 sang mức
3-4-5 và tiết kiệm đ−ợc hàng năm $2000000 !
Hình 2.3 Dữ liệu cải tiến phần mềm SW-CMM [Herbsleb và al., 1994]
Hình 2.4 Kết quả của 34 dự án GED của Motorola (Government Electronics Division-GED)