You are on page 1of 11

NỘI DUNG

KỸ NGHỆ PHẦN MỀM
CHƯƠNG 3: Tiến trình / Quy trình phát triển phần mềm
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 1

1. Tiến trình phát triển phần mềm 2. Mô hình tiến trình phần mềm

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 2

TIẾN TRÌNH PHÁT TRIỂN PHẦN MỀM

TIẾN TRÌNH PHÁT TRIỂN – Ý nghĩa

Yêu cầu từ khách hàng

Tiến trình phát triển phần mềm

Ứng dụng / Hệ thống phần mềm

Quyết định chất lượng sản phẩm phần mềm Đồng bộ hóa hoạt động trong dự án Quyết định thành công của đơn vị phát triển

KHÔNG CÓ TIẾN TRÌNH VẠN NĂNG
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 3 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 4

TIẾN TRÌNH PHÁT TRIỂN – Các yếu tố
Thủ tục (Procedures)

TIẾN TRÌNH PHÁT TRIỂN – Các yếu tố
Hướng dẫn công việc (Activity Guidelines)

Tiến trình RUP (Rational Unifined Process)
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 5

Công việc phân tích nghiệp vụ
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 6

TIẾN TRÌNH PHÁT TRIỂN – Các yếu tố
Biểu mẫu (Forms / Templates)
Ví dụ: Biểu mẫu cho tiến trình RUP

TIẾN TRÌNH PHÁT TRIỂN – Các yếu tố
Công cụ hỗ trợ (Tools)
Ví dụ: Công cụ cho tiến trình RUP
Rational AnalystStudio (Quản lý yêu cầu) Rational Rose (Tạo mô hình phát triển) Rational ClearCase (Quản lý cấu hình)

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 7

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 8

TIẾN TRÌNH PHÁT TRIỂN – Hoạt động chính 1. Xác định yêu cầu (Requirements) Hệ thống phần mềm
Nắm bắt yêu cầu ĐẶC TẢ YÊU CẦU - Chức năng hệ thống - Ràng buộc hệ thống

TIẾN TRÌNH PHÁT TRIỂN – Hoạt động chính 2. Phát triển phần mềm (Development)
Hoạt động tạo ra phần mềm
ĐỘI PHÁT TRIỂN HỆ THỐNG VẬN HÀNH ĐƯỢC

ĐẶC TẢ YÊU CẦU

Hệ thống phần mềm
Nắm bắt yêu cầu

- Chức năng hệ thống - Ràng buộc hệ thống

KHÁCH HÀNG

NHÀ PHÁT TRIỂN

KHÁCH HÀNG

NHÀ PHÁT TRIỂN
Kỹ nghệ phần mềm Slide 9

Xác định yêu cầu

Phát triển
Kỹ nghệ phần mềm Slide 10

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

TIẾN TRÌNH PHÁT TRIỂN – Hoạt động chính
3. Kiểm thử phần mềm (Validation/Testing)
Xác định yêu cầu

TIẾN TRÌNH PHÁT TRIỂN – Hoạt động chính 4. Tiến hóa phần mềm (Evolution)
Xác định yêu cầu

Phát triển

Kiểm thử phần mềm

ĐẶC TẢ YÊU CẦU

HỆ THỐNG VẬN HÀNH ĐƯỢC

Đảm bảo hệ thống đáp ứng đòi hỏi trong đặc tả yêu cầu Kiểm thử phần mềm

PRODUCT RIGHT

ĐẶC TẢ YÊU CẦU

HỆ THỐNG VẬN HÀNH ĐƯỢC

HỆ THỐNG ĐÚNG& KHÔNG LỖI

HỆ THỐNG ĐÚNG& KHÔNG LỖI
RIGHT PRODUCT

Lỗi chương trình Môi trường Khách hàng

NHÂN TỐ THAY ĐỔI

HOẠT ĐỘNG TIẾN HOÁ

Phát triển

Tiến hoá phần mềm
Kỹ nghệ phần mềm Slide 12

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 11

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

TIẾN TRÌNH – Cải tiến nâng cao chất lượng
Quy trình khung là cơ sở để cải tiến tiến trình nâng cao chất lượng, năng suất Quy trình khung phổ biến (Các chuẩn)
ISO CMM (Capability Maturity Model) CMMI (Capability Maturity Model Integration)

MÔ HÌNH TIẾN TRÌNH – Khái niệm
TIẾN TRÌNH CỤ THỂ
Công việc 1.1 Công việc 1 Công việc 1.2 Công việc 2 Công việc 2.1 Công việc 2.1.1 Công việc 1.1.1

Đơn giản hoá Trừu tượng hoá Theo góc nhìn

Giai đoạn 1

Giai đoạn 2

Giai đoạn 3

MÔ HÌNH TIẾN TRÌNH
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 13 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 14

MÔ HÌNH TIẾN TRÌNH – Khái niệm Các góc nhìn tiến trình:
Luồng công việc: trình tự các hoạt động Luồng dữ liệu: luồng các dữ liệu di chuyển Vai trò/hành động: hành vi của tác nhân

MÔ HÌNH TIẾN TRÌNH – Vai trò
Thể hiện phương pháp phát triển phần mềm Cơ sở để lựa chọn tiến trình phù hợp bài toán

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 15

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 16

MÔ HÌNH TIẾN TRÌNH
Một số mô hình tiến trình phổ biến
Mô hình thác nước (Water Fall Model) Phát triển tiến hóa (Evolutionary development) Phát triển hệ thống hình thức (Formal systems development) Phát triển dựa trên sử dụng lại (Reuse-based development) Khác
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 17

TỔNG KẾT
Khái niệm, ý nghĩa và chuẩn của tiến trình phần mềm Nhóm hoạt động chính của tiến trình phát triển phần mềm: xác định yêu cầu, phát triển,kiểm thử và tiến hoá phần mềm Mô hình tiến trình là sự trừu tượng tiến trình phát triển theo góc nhìn nào đó

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 18

MÔ HÌNH THÁC NƯỚC
(Water Fall Model)

MÔ HÌNH THÁC NƯỚC
(Water Fall Model) Phân tích Thiết kế Mã hoá Kiểm thử Bảo trì

Ra đời sớm (1970) (mô hình vòng đời cổ điển) HT phần mềm trải qua 5 giai đoạn

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 19

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 20

PHÂN TÍCH
Phân tích Thiết kế Mã hóa Kiểm thử Bảo trì Phân tích Thiết kế

THIẾT KẾ
Mã hóa Kiểm thử Bảo trì

Xác định và phân tích các yêu cầu cho hệ thống TÀI LIỆU YÊU CẦU

• •

Chức năng Ràng buộc

Đối tác tham gia: khách hàng người dùng người phân tích

- Danh sách yêu cầu - Mô tả chi tiết yêu cầu
What to do?

Xây dựng giải pháp thiết kế cho yêu cầu phần mềm Đầu vào: tài liệu yêu cầu môi trường triển khai Đầu ra tài liệu thiết kế
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

TÀI LIỆU THIẾT KẾ - Mô hình kiến trúc hệ thống - Mô hình thiết kế chi tiết Dữ liệu Thuật toán Giao diện How to do?
Kỹ nghệ phần mềm Slide 22

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 21

MÃ HÓA
Phân tích Thiết kế Mã hóa Kiểm thử Bảo trì Phân tích

KIỂM THỬ
Thiết kế Mã hóa Kiểm thử Bảo trì

Viết chương trình Kiểm tra, giám sát mã lệnh Gỡ lỗi (Debugging) Đầu vào tài liệu thiết kế Đầu ra chương trình thực hiện được tài liệu chương trình
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 23

Phát hiện và sửa lỗi phần mềm Đảm bảo phần mềm thỏa mãn yêu cầu khách hàng Đầu vào: tài liệu yêu cầu tài liệu thiết kế chương trình tài liệu chương trình Đầu ra: tài liệu kết quả kiểm thử
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 24

BẢO TRÌ
Phân tích Thiết kế Mã hóa Kiểm thử Bảo trì

ƯU ĐIỂM MÔ HÌNH THÁC NƯỚC
Xuất hiện sớm nhất, có ý nghĩa lý thuyết Các pha được xác định rõ ràng (đầu vào/ra) Thấy được trình tự kỹ nghệ từ đầu đến sản phẩm cuối Bảo trì thuận lợi Thích hợp khi yêu cầu hiểu tốt

Đưa hệ thống vào vận hành (triển khai) Sửa lỗi phần mềm Làm thích nghi phần mềm với môi trường mới Thay đổi phần mềm đáp ứng yêu cầu mới

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 25

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 26

NHƯỢC ĐIỂM MÔ HÌNH THÁC NƯỚC
Tách biệt giữa các pha, tiến hành tuần tự • Khó tuân thủ tuần tự: dự án lớn thường phải lặp lại • Khó đáp ứng yêu cầu thay đổi của khách hàng Sai sót phát hiện muộn có thể là thảm họa Chậm có phiên bản thực hiện được • Đòi hỏi khách hàng phải kiên nhẫn

TỔNG KẾT
Tiến trình phát triển theo mô hình thác nước gồm: phân tích, thiết kế, mã hóa, kiểm thử, triển khai và bảo trì Các pha tách biệt rõ ràng, tiến hành tuần tự, không quay lại Cần cải tiến mới sử dụng được trong thực tế

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 27

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 28

MÔ HÌNH TIẾN HÓA

MÔ HÌNH TIẾN HÓA
Nên khởi đầu từ tập yêu cầu đã rõ ràng
...

?
Cập nhật mặt hàng

Phát triển hệ thống bán hàng qua mạng
Thanh toán Quản lý khách hàng

Chọn hàng Thẩm định

Hệ thống tiến hóa bằng cách thêm các thuộc tính mới được khách hàng đề xuất

KHÁCH HÀNG PHẦN MỀM

Sản phẩm có được nhờ tiến hóa
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 29 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 30

LƯỢC ĐỒ MÔ HÌNH TIẾN HÓA
Phiên bản khởi đầu

MÔ HÌNH PHÁT TRIỂN TIẾN HOÁ
1. Mô hình bản mẫu
2. Mô hình xoắn ốc 3. Mô hình tăng trưởng

Đặc tả

tl e Đặc tả s ri o khái quát

Phát triển

Phiên bản trung gian

Thẩm định

Phiên bản cuối cung

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 31

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 32

MÔ HÌNH LÀM BẢN MẪU (Prototyping model)
NHU CẦU LÀM BẢN MẪU

MÔ HÌNH LÀM BẢN MẪU
MỤC TIÊU LÀM MẪU
Thâu tóm yêu cầu người dùng, giảm thiểu sai sót Đảm bảo các yêu cầu là những gì khách hàng mong đợi

Khách hàng thường khó nói rõ được điều họ mong đợi Người phát triển thường hiểu sai yêu cầu khách hàng Khách hàng thường phát hiện sai sót khi dùng sản phẩm

TẠO MÔI TRƯỜNG ĐỂ THÂU TÓM YÊU CẦU
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 33 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 34

HOẠT ĐỘNG LÀM BẢN MẪU
b¾t ®Çu (thu thËp yªu cÇu) s¶n phÈm cuèi cïng thiÕt kÕ nhanh x©y dùng b¶n mÉu ®¸nh gi¸ cña kh¸ch

MÔ HÌNH BẢN MẪU – Ví dụ
? Hệ thống Quản lý giao dịch Ngân hàng
Khung cảnh vấn đề
Nhân viên ngân hàng nắm rõ nghiệp vụ song chỉ diễn đạt được khi có tình huống Người phát triển gặp khó khăn khi thu thập các thông tin nghiệp vụ giao dịch ngân hàng Người phát triển không hình dung được nghiệp vụ tổng thể
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 36

lµm mÞn b¶n mÉu

Kết thúc?

Khởi đầu bằng pha thu thập yêu cầu Tiến hành thiết kế nhanh Xây dựng bản mẫu Đánh giá khách hàng Làm mịn bản mẫu Nếu chưa được sản phẩm thì chuyển sang thiết kế nhanh và lặp lại

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 35

MÔ HÌNH BẢN MẪU – Ví dụ
Giải pháp tạo mẫu
Thông tin cho mỗi thao tác nghiệp vụ biểu diễn bằng trang Web tĩnh Trình tự nghiệp vụ được biểu diễn thông qua các link

THIẾT KẾ BẢN MẪU
Là hoạt động quan trọng của quá trình làm bản mẫu Trình diễn khía cạnh phần mềm mà khách hàng nhìn thấy (nhập liệu, kết xuất dữ liệu, thao tác) Phải nhanh và ít công sức (sử dụng 4GT) Phụ thuộc vào các yếu tố
Loại bản mẫu Định hướng làm bản mẫu

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 37

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 38

CÁC LOẠI BẢN MẪU
1. 2. 3. 4.

ĐỊNH HƯỚNG LÀM BẢN MẪU
Bản mẫu dùng xong bỏ đi (throw-away approach) Bản mẫu dùng tiếp cho bước sau (evolutionary approach) Bản mẫu là phần hệ thống vận hành được (dựa trên thành phần)

Bản mẫu trên giấy Bản mẫu thực hiện một phần chức năng Bản mẫu giao diện Bản mẫu hướng tới sản phẩm

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 39

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 40

KHI NÀO SỬ DỤNG BẢN MẪU ?
KHUNG CẢNH Xác định miền yêu cầu chưa rõ ràng để phân tích
Dữ liệu vào/ra phức tạp từ nhiều nguồn khác nhau Đề xuất thuật toán, giải pháp mới

MÔ HÌNH XOẮN ỐC

(Spiral Model)
Mã hóa Kiểm thử
Ý kiến khách hàng

VẤN ĐỀ

Phân tích

Thiết kế

Các yêu cầu chưa rõ ràng Input/output chưa rõ ràng
Phiên bản 1 Ý kiến khách hàng

Vận hành

Mô hình thác nước
- Trình tự tốt - Rủi ro cao

Mô hình bản mẫu
Phiên bản 3

Khó đánh giá hiệu quả thuật toán Có tương tác người máy nhiều

Phiên bản 2

- Loại trừ rủi ro - Trình tự không rõ ràng

Hệ thống thông tin quản lý

?

Kết hợp ưu điểm 2 mô hình: - Trình tự rõ ràng - Loại trừ rủi ro sớm

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 41

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 42

MÔ HÌNH XOẮN ỐC

(Spiral Model)

SƠ ĐỒ HOẠT ĐỘNG VỚI MÔ HÌNH XOẮN ỐC
tập hợp yêu cầu ban đầu và kế hoạch dự án kế hoạch dựa trên ý kiến của khách hàng phân tích rủi ro dựa trên yêu cầu ban đầu phân tích rủi ro dựa trên ý kiến của khách hàng tiếp tục hay không?

Là quá trình lặp theo hướng mở rộng, hoàn thiện dần qua 4 hoạt động:

lËp kÕ ho¹ch

ph©n tÝch rñi ro

• • • •

Lập kế hoạch: xác lập tài nguyên, thời hạn... cho dự án Phân tích rủi ro: xem xét các mạo hiểm có thể xẩy ra Kỹ nghệ: phát triển một phiên bản của phần mềm (lựa chọn một mô hình thích hợp) Giao tiếp với khách hàng: khách hàng đánh giá về phiên bản đã phát triển; làm mịn, sửa đổi các yêu cầu

đánh giá của khách hàng

bản mẫu ban đầu

®¸nh gi¸

kü nghÖ

bản mẫu tiếp theo

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 43

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 44

Mô hình xoắn ốc - Ví dụ
Pha nắm bắt yêu cầu Hệ thống QL chương trình đào tạo (Mô hình ca sử dụng – use cases) Vòng xoáy 1
Cập nhật từ điển Cập nhật từ điển Cập nhật ngành Cập nhật ngành đào tạo đào tạo Cập nhật Cập nhật chương trình chương trình

ƯU ĐIỂM MÔ HÌNH XOẮN ỐC
KHẢ NĂNG LINH HOẠT Các vòng tròn được lặp để đáp ứng yêu cầu thay đổi của người dùng Kiểm soát rủi ro ở từng mức tiến hóa Có thể sử dụng các mô hình khác nhau để tránh các rủi ro đã xác định Đánh giá chi phí chính xác hơn các phương pháp khác
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 46

Vòng xoáy 2
Lựa chọn Lựa chọn môn học theo môn học theo khung khung chương trình chương trình

Vòng xoáy 3
Tạo chương trình Tạo chương trình theo chương trình theo chương trình đã có đã có

Gán chương trình Gán chương trình vào lớp học vào lớp học

Cập nhật Cập nhật thông tin thông tin lớp học lớp học

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 45

NHƯỢC ĐIỂM MÔ HÌNH XOẮN ỐC
Yêu cầu thay đổi thường xuyên dẫn đến lặp vô hạn và thất bại Khó thuyết phục khách hàng là phương pháp tiến hóa có thể kiểm soát được Đòi hỏi năng lực quản lý, năng lực phân tích rủi ro cao -> cần chi phí chuyên gia Chưa được dùng rộng rãi như mô hình thác nước hoặc làm mẫu
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 47

MÔ HÌNH PHÁT TRIỂN TĂNG TRƯỞNG (Incremental development)
Thay vì chuyển giao một lần, quá trình phát triển và chuyển giao được chia làm nhiều lần, mỗi chuyển giao đáp ứng một phần chức năng Yêu cầu người dùng được phân loại ưu tiên, mức cao sẽ thuộc phần chuyển giao sớm Khi phát triển một bản tăng, yêu cầu tương ứng là cố định, tuy nhiên, yêu cầu cho bản tăng sau vẫn phát triển

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 48

MÔ HÌNH PHÁT TRIỂN TĂNG TRƯỞNG
System/information engineering

HOẠT ĐỘNG PHÁT TRIỂN TĂNG TRƯỞNG

B¶n t¨ng 1
code test

analysis

design

ChuyÒn giao b¶n t¨ng 1

Xác định yêu cầu tổng thể
ChuyÒn giao b¶n t¨ng 2

Gán yêu cầu cho các bản tăng

Thiết kế kiến trúc

B¶n t¨ng 2

analysis

design

code

test

B¶n t¨ng 3

analysis

design

code

test

ChuyÒn giao b¶n t¨ng 3

Phát triển bản tăng
ChuyÒn giao b¶n t¨ng 4

Tích hợp bản tăng

Kiểm thử hệ thống

Hệ thống cuối cùng

B¶n t¨ng 4

analysis

design

code

test

Hệ thống chưa hoàn thành

Thêi gian
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 49 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 50

Mô hình tăng trưởng - Ví dụ
? Hệ thống Quản lý chương trình đào tạo
MÔ HÌNH TỔNG THỂ GỒM 7 CA SỬ DỤNG ĐƯỢC CHIA LÀM 3 BẢN TĂNG DẦN

ƯU ĐIỂM MÔ HÌNH TĂNG TRƯỞNG
Có sản phẩm dùng được trong thời gian ngắn

Bản tăng 1
Cập nhật từ điển Cập nhật từ điển Cập nhật ngành Cập nhật ngành đào tạo đào tạo Cập nhật Cập nhật chương trình chương trình

Bản tăng 2
Cập nhật Cập nhật thông tin thông tin lớp học lớp học

Bản tăng 3
Tạo chương trình Tạo chương trình theo chương trình theo chương trình đã có đã có Lựa chọn Lựa chọn môn học theo môn học theo khung khung chương trình chương trình

• đáp ứng nhanh yêu cầu của khách hàng • chiếm lĩnh thị trường

Bản tăng trước như là bản mẫu cho bản tăng sau Rủi ro được loại bỏ sớm Dịch vụ hệ thống ưu tiên mức cao nhất được kiểm thử nhiều nhất

Gán chương trình Gán chương trình vào lớp học vào lớp học

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 51

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 52

NHƯỢC ĐIỂM MÔ HÌNH TĂNG TRƯỞNG
Tổng chi phí phát triển là cao hơn bình thường Tổng thời gian để chuyển giao toàn bộ chức năng là lớn hơn Kế hoạch chuyển giao mang tính quyết định thành công, nếu sai sẽ dẫn đến thảm họa

VẤN ĐỂ VỚI MÔ HÌNH TĂNG TRƯỞNG – Ví dụ Theo từng bản tăng cho ra các thuộc tính giao diện: A, B, C Khó khăn khi cần tích hợp giao diện: A và B, A và C Vấn đề tương tự với tổng thể hệ thống (Kiến trúc nghèo nàn)

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 53

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 54

TỔNG KẾT MÔ HÌNH TIẾN HÓA
Bao gồm: Mô hình bản mẫu, Mô hình xoắn ốc, Mô hình tăng trưởng Phát triển sơ bộ
Làm việc với khách hàng để có được đặc tả khái quát ban đầu của hệ thống. Có thể bắt đầu với hiểu biết chưa đầy đủ.

TỔNG KẾT MÔ HÌNH TIẾN HÓA
Hạn chế

• •

Hệ thống thường có cấu trúc nghèo nàn

Khả năng ứng dụng
Ứng dụng cho nhiều lớp hệ thống khác nhau

Thực hiện phát triển bằng cách làm mẫu
Mục tiêu là để hiểu hệ thống. Bản mẫu ban đầu được phát triển có thể còn sơ sài.

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 55

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 56

VÍ DỤ
Đặc tả hình thức

C: N R: N Reading?: N Display!: String A!: {on, off} R = reading? C 40 => display! = “” C 20 => display! = “Insulin low” C 9 => A! = on ∧ display! = “Insulin very low”
Kỹ nghệ phần mềm Slide 57 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 58

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Mô hình dựa theo thành phần (CBSE)
Gắn với những công nghệ hướng đối tượng (Object-oriented technologies) qua việc tạo các lớp (classes) có chứa cả dữ liệu và giải thuật xử lý dữ liệu Có nhiều tương đồng với mô hình xoắn ốc Với ưu điểm tái sử dụng các thành phần qua Thư viện / kho các lớp: tiết kiệm 70% thời gian, 80% giá thành Với UML như chuẩn công nghiệp đang triển khai
Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 59 Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN Kỹ nghệ phần mềm Slide 60

Mô hình dựa theo thành phần (CBSE)

Bộ môn Công nghệ phần mềm – Khoa CNTT- ĐHCN- ĐHQGHN

Kỹ nghệ phần mềm Slide 61