1
Chương 2
Các Mô hình
Phát triển Hệ thống
2
Nội dung
1. Chu kỳ phát triển phần mềm (SDLC)
2. Các mô hình thông dụng
3. Phương pháp phát triển phần mềm linh hoạt
3
1. Chu trình phát triển của hệ thống
4
1. Chu trình phát triển của hệ thống
•
Mọi hệ thống (tin học) đều trãi qua sự khởi đầu, triển khai, xây dựng, khai
thác, bảo dưỡng và kết thúc. Gọi quá trình này là vòng đời (life cycle).
•
Nếu chỉ đề cập đến sự triển khai và xây dựng thì gọi là sự phát triển của
hệ thống (system development).
5
1. Chu kỳ phát triển phần mềm
(Software Development Life Cycle - SDLC)
6
Systems planing and selection
Hoạch định và chọn lựa hệ thống
•
Nhận diện sự cần thiết phải có hệ thống
–
Nhóm phân tích được thành lập
–
các yêu cầu được yêu tiên chuyển thành các kế hoạch cho
bộ phận IS (information system)
•
Chọn lựa hệ thống
–
Xây dựng một kế hoạch cụ thể
–
Xác định được có hay không cái giá của việc phát triển hệ
thống lớn hơn lợi ích có thể có.
7
Systems analysis
Phân tích hệ thống
•
Xác định yêu cầu hệ thống (người dùng mong được gì từ hệ thống được đề
nghị)
•
Xác định những yêu cầu, cấu trúc không còn phù hợp để loại bỏ
•
Xây dựng thiết kế mới
•
So sánh, đánh giá thiết kế để chọn phương án tối ưu (giá, nhân công, cấp
độ kỹ thuật…)
8
Systems design
Thiết kế hệ thống
•
Chuyển bản mô tả các giải pháp thành bản đặc tả logic, vật lý;
–
Thiết kế logic: Không phụ thuộc phần cứng hay phần mềm
–
Thiết kế vật lý: Chọn NNLT, chọn CSDL, chọn hệ điều
hành, chọn mạng …
•
Thiết kế mọi diện mạo của hệ thống từ nhập vào và xuất ra của màn hình
đến máy in, cơ sở dữ liệu, và các xử lý tính toán;
9
Systems implemention and operation
Thực hiện và vận hành hệ thống
•
Thực hiện mã hóa, chạy thử và cài đặt.
–
Mã hóa, lập trình viên lập các chương trình tạo nên hệ
thống.
–
Chạy thử, lập trình viên và phân tích viên kiểm tra từng
chương trình rồi toàn bộ hệ thống để tìm và sửa lỗi
–
Cài đặt
•
Vận hành: người lập trình tạo sự thay đổi mà người sử dụng yêu cầu và
sửa đổi hệ thống
10
Chu kỳ phát triển phần mềm
(Software Development Life Cycle - SDLC)
•
Chu kỳ phần mềm (Software life cycle) là gì?
“ Là khoảng thời gian từ lúc phần mềm bắt đầu hình thành cho đến lúc
nó không còn dùng được nữa”
•
Chu kỳ phần mềm thường trải qua các giai đoạn (phase) sau:
Giai đoạn 1: Preliminary Investigation/Requirement (nghiên cứu sơ bộ)
Giai đoạn 2: Analysis (Phân tích)
Giai đoạn 3: Design (Thiết kế)
Giai đoạn 4: Development / Construction (Xây dựng)
Giai đoạn 5: Testing (Thử nghiệm hệ thống)
Giai đoạn 6: Implementation (Triển khai hệ thống)
Giai đoạn 7: Maintenance (Bảo trì, nâng cấp)
•
Chu kỳ phần mềm còn được gọi là chu kỳ phát triển phần mềm (SDLC)
11
2. Các mô hình SDLC
•
Mô hình Waterfall (Waterfall model)
•
Mô hình lặp và tăng dần (Iterative and Incremental)
•
Mô hình bản mẫu (Prototype)
•
Mô hình phát triển ứng dụng nhanh (RAD)
•
Mô hình xoắn ốc (Spiral)
•
Mô hình chữ V (V-model)
•
Mô hình tiến hóa (Evolutionary)
•
Mô hình dựa trên các thành phần (Component)
•
Các mô hình nhiều phiên bản (Multi-version models)
•
Mô hình RUP
12
Mô hình thác nước
(waterfall)
13
•
Xuất hiện từ năm 1970
•
Thay thế phương pháp “code – and – fix”
•
Ưu điểm:
–
Giai đoạn kế tiếp chỉ bắt đầu khi giai đoạn hiện hành hoàn
tất
–
Người dùng cuối và khách hàng biết rõ
•
Nhược điểm:
–
Không quay lui
–
Phải đặc tả một cách chính xác yêu cầu ngay từ đầu
•
Sử dụng khi: xác định sản phẩm ổn định và đã biết rõ vấn đề kỹ thuật
14
Mô hình tăng trưởng
(Incremental Model)
15
•
D.R. Graham 1988
•
Vòng đầu tạo sản phẩm lõi
•
Các vòng sau bổ sung dần chức năng
•
Ưu điểm:
–
Chức năng chính, chức năng có độ rũi ro cao sẽ được thực hiện trước
–
Sau mỗi vòng đều có thể chuyển giao cho khách hàng
–
Giảm rũi ro cho thất bại toàn dự án
•
Nhược điểm:
–
Phải xác định chức năng đầy đủ và hoàn chỉnh trước khi qua vòng sau
–
Khách hàng khi thấy vòng đầu thường nghĩ hệ thống đơn giản
•
Sử dụng khi :
–
Khi cần nhanh chóng đưa ra chức năng cơ bản của hệ thống.
–
Áp dụng cho sản phẩm có thời gian hoàn thiện > 1 năm.
–
Khi các yêu cầu đã hiểu rõ nhưng mong muốn có sự tiến hóa dần của sản phẩm
16
Mô hình tạo bản mẫu
(prototype)
17
17
Mẫu thử (bản mẫu)
Triển khai, Chuyển
giao và Phản hồi
Lập kế hoạch nhanh
Xây dựng mẫu thử
Mô hình hoá
thiết kế nhanh
Giao tiếp
18
19
Khảo sát, thu thập TT sơ bộ
XD mẫu ban đầu
Làm mịn mẫu
Khảo sát, lấy ý kiến NSD
Quyết
định
Mẫu hoàn chỉnh
HT đã hoàn
chỉnh
Hoàn chỉnh dự án
SDPP khác
Chưa Đã
Loại bỏ
Tồi
Hạn chế
20
•
Xây dựng một bản mẫu ban đầu để người sử dụng xem xét
•
Bản mẫu ban đầu:
–
Bị loại bỏ
–
Được phát triển
•
Ưu điểm:
–
Khách hàng tương tác sớm với hệ thống
–
Khách hàng cùng làm việc với người phát triển hệ thống
–
Thiết kế và phát triển mềm dẽo
•
Nhược điểm:
–
Quick – and – dirty
–
Chất lượng thấp và khó bảo trì
–
Bị khách hàng hối thúc
–
Người phát triển sẽ bị rơi vào giai đoạn code – and fix
•
Sử dụng khi:
–
Yêu cầu chưa được biết rõ; yêu cầu không ổn định
21
Mô hình RAD
(Rapid Application Development)
22
•
Được phát triển bởi IBM năm 1980 qua sách của James Matin
•
Chu kỳ phát triển: 60-90 ngày
•
Ráp nối tốc độ cao của mô hình thác nước, xây dựng dựa vào các thành phần và
ứng dụng tạo mã tự động
•
Ưu điểm:
–
Thời gian phát triển ngắn
–
Cần ít nhân công
–
Giảm rũi ro nhờ có khách hàng tham gia
•
Nhược điểm:
–
Người phát triển phải có kỹ năng sử dụng công cụ tốt
–
Người phát triển và khách hàng pahir gắn bó và nỗ lực cao
•
Sử dụng khi:
–
Hệ thống có thể dễ dàng phân chia thành nhiều module
–
Biết rõ yêu cầu của hệ thống
–
Thời gian ngắn
–
Có thể sử dụng lại những thành phần đã có
–
Hệ thống nhỏ, không có tính nghiêm ngặt
23
23
Mô hình xoắn ốc
(Spiral model)
Thử nghiệm
nguyên mẫu
Đánh giá các
phương án
Thiết kế và tạo lập
1 nguyên mẫu
Xác định mục
tiêu, các
phương án và
các ràng buộc
Chu trình 1
24
25
Mô hình xoắn ốc