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.. •Nếu chỉ đề cập đến sự triển khai và xây dựng t
Trang 1Chương 2
Các Mô hình
Phát triển Hệ thống
Trang 31 Chu trình phát triển của hệ thống
Trang 41 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)
Trang 51 Chu kỳ phát triển phần mềm (Software Development Life Cycle - SDLC)
Trang 6Systems planing and selection
Trang 7• 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…)
Trang 8Systems 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;
Trang 9Systems 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
Trang 10Chu 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)
Trang 112 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
Trang 12Mô hình thác nước
(waterfall)
Trang 13• Xuất hiện từ năm 1970
• Thay thế phương pháp “code – and – fix”
– 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
Trang 14Mô hình tăng trưởng
(Incremental Model)
Trang 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
Trang 16Mô hình tạo bản mẫu
(prototype)
Trang 19Khả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
Hạn chế
Trang 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
Trang 21Mô hình RAD
(Rapid Application Development)
Trang 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ườ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
Trang 25Mô hình xoắn ốc
Trang 26• Được đề nghị bởi Berry Boehm, 1988
• Mỗi vòng lặp biểu diễn một gia đoạn trong chu trình
• Mỗi chu kỳ có 4 tầng, mỗi tầng ¼ cung
• Ưu điểm:
– Tạo bản mẫu sớm
– Cho phép người dùng tham gia vào các giai đoạn
– Ưu tiên thực hiện trước những chức năng quan trọng
Trang 28Mô hình tiến hóa
prototype trước sẽ được
xây dựng với mục tiêu
có thể tái sử dụng trong
những phiên bản sau
Trang 29Mô hình dựa vào thành phần
(Component-Based Model)
Trang 30Phát triển dựa trên các thành phần
Thương lượng
Định nghĩa mục tiêu
Phân loại các
Đối sánh Lựa chọn thành
phần phù hợp
Trang 31RUP/UML Rational Unified Process
• Kỹ thuật thế hệ thứ 4
• Bao gồm 4 giai đoạn chính đan xen nhiều dòng hoạt động
– Phân tích yêu cầu
– Mô hình hóa nghiệp vụ
– Thiết kế
– Cài đặt, vận hành, triển khai
• Mỗi giai đoạn đều hình thành từ những bước lặp (iteration)
Trang 34Các bước lặp (iteration)
• Khởi tạo (inception)
– Xác định phạm vi dự án
– Chi phí, thời gian
– Rũi ro, môi trường
– Thay đổi bổ sung
• Tinh chế (elaboration)
– Tinh chế kiến trúc, yêu cầu
– Đánh giá độ rũi ro, các thành phần sử dụng
• Xây dựng (construction)
– Đánh giá tài nguyên, kiểm soát và thực hiện tối ưu hóa – Hoàn thành sản phẩm
– Đánh giá sản phẩm so với yêu cầu
• Chuyển giao (transition)
Trang 35Phương pháp phát triển phần mềm
linh hoạt
• Agile software development chủ yếu tập trung:
– Thích ứng thay vì dự đoán
– Hướng đến con người thay vì quy trình
• ASD đề cao tính chủ động sáng tạo và sự trao đổi thông tin
giữa các thành viên
Trang 36Bài tập
• SDLC là gì? Các giai đoạn trong SDLC?
• So sánh, đánh giá các mô hình để tìm ưu điểm, nhược điểm
của từng mô hình
• Phát triển phần mềm linh hoạt là gì