Tiến trình Process 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
Trang 1NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
CHƯƠNG 2 – CÁC MÔ HÌNH
VỀ TIẾN TRÌNH PHẦN MỀM
Trang 3Tiến trình (Process)
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ó thể quán xuyến toàn bộ các công việc của sản phẩm
có thể quán xuyến toàn bộ các công việc của sản phẩm
có trách nhiệm một phần như thiết kế, cài ñặt,
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 việc tạo ra sản phẩm trước khi nó ñược chuyển sang
Trang 4Tiến trình
Các ñặc trưng của tiến trình
chính
Sử dụng các nguồn tài nguyên, phụ thuộc vào
tập các ràng buộc (chẳng hạn như kế hoạch làm việc)
Trang 5Tiến trình
Các ñặc trưng của tiến trình
và ra
Các hoạt ñộng ñược tổ chức theo trình tự vì thế
sự tính toán về thời gian là rõ ràng
bao gồm các mục tiêu của từng hoạt ñộng
Trang 6Tiến trình
Tầm quan trọng của tiến trình
các hoạt ñộng
Hướng dẫn ta hiểu, ñiều khiển, kiểm tra và cải
thiện các hoạt ñộng
Trang 7Tiến trình
Chu kỳ sống của phần mềm
một phần mềm, tiến trình có thể ñược xem như chu kỳ sống của phần mềm
chu kỳ sống của phần mềm
Trang 9Mô hình xây dựng và hiệu chỉnh
(Build-and-fix model )
khách hành cho ñến khi nào ñáp ứng ñược yêu
khách hành cho ñến khi nào ñáp ứng ñược yêu
cầu của khách hàng
dòng lệnh)
Trang 10Mô hình thác nước (Waterfall
Model)
Royce, 1970
hay không có các thay ñổi về yêu cầu
ðơn giản và dễ giải thích với khách hàng
ðơn giản và dễ giải thích với khách hàng
Trang 11Mô hình thác nước
Trang 12- Validation (kiểm tra-xác nhận): hệ thống thỏa mãn yêu
cầu người dùng (Build the right
- Hướng tài liệu
- Phân tích kỹ trước khi xây dựng
hệ thống
- kiểm tra từng buớc
- Kiểm tra chuyển tiếp giữa các bước
Trang 13Mô hình thác nước
ðặc tính:
Các lỗi ở một số giai ñoạn trước ñược phản hồi bởi các giai ñoạn sau
Mỗi giai ñoạn chỉ ñược xem là hoàn thành sau khi ñã có ñầy ñủ tài liệu cho giai ñoạn ñó và ñược nhóm SQA chấp thuận
Các bước tiến hành chính:
Các yêu cầu ñược xác ñịnh và kiểm chứng bởi khách hàng và nhóm SQA
Các ñặc tả ñược kiểm chứng bởi nhóm SQA và gửi cho khách hàng
Giai ñoạn thiết kế bắt ñầu sau khi khách hàng ñồng ý về giá thành và thời gian thực hiện; thực hiện cài ñặt và tích hợp
Trang 14Mô hình thác nước
Không cung cấp các hướng dẫn về cách thức xử lý những thay ñổi ñối về sản phẩm và hoạt ñộng trong suốt sự phát triển
Trang 15Mô hình chữ V (V Model)
thống
thống
yêu cầu
và sự xác nhận tính hợp lệ, phần bên trái của mô hình chữ
Trang 16Mô hình chữ V
Trang 17Mô hình bản mẫu (Prototyping
Thể hiện ñược ý tưởng trước
khi ñầu tư lớn
Trang 19đòi hỏi ựội ngũ phát triển
nhiều kinh nghiệm hơn.
Thiết kế có chất lượng cao hơn
Hệ thống thật dễ bảo trì hơn
Tiết kiệm công sức phát triển
hệ thống
Trang 20Mô hình bản mẫu
Khuyến cáo cho việc dùng mô hình bảng mẫu
Yêu cầu của người dùng không rõ ràng
Cần minh họa cao về giao diện người dùng
Người dùng phải ý thức về sự thay ñổi yêu cầu là rất khó khăn Bản mẫu không làm nâng cao chất lượng hệ thống.
Việc làm bản mẫu phải có kế hoạch và ñược kiểm soát tiến ñộ
Việc làm bản mẫu phải có kế hoạch và ñược kiểm soát tiến ñộ
Trang 21Mô hình tăng trưởng
(Incremental Development model)
Chức năng của hệ thống
ñược xây dựng và chuyển
giao dần dần cho người
dùng Bắt ñầu từ trạng thái
hiện tại dần ñến trạng thái
mong muốn: từng bước nhỏ.
Mô hình tăng trưởng
Tránh “dư thừa chức năng” (overfunctionality)
Yêu cầu quá nhiều
Quá dư thừa chức năng sẽ làm
hệ thống phức tạp và khó sử dụng
Người phân tích dễ dàng
Mô hình tăng trưởng
Tránh bị “big bang”: một thời
gian dài chẳng có gì, ñùng một
cái, cả một hệ thống mới
Người dùng tham gia tích cực
vào việc lập kế hoạch cho
bước tiếp theo
Người phân tích dễ dàng
ước lượng thời gian, công
sức xây dựng một chức năng, ñặc tính nào ñó của phần mềm.
Cách tiếp cận tăng trưởng
Trang 22Mô hình ñịnh khung nhanh
(Rapid Application Development: RAD)
Là tiến trình phát triển phần mềm gia tăng, tăng dần từng bước với mỗi chu kỳ phát triển rất ngắn (60-90 ngày)
Xây dựng dựa trên hướng thành phần với khả năng tái
Xây dựng dựa trên hướng thành phần với khả năng tái
sử dụng
Gồm một số nhóm, mỗi nhóm làm 1 RAD theo các
pha: Mô hình hóa nghiệp vụ, Mô hình hóa dữ liệu, Mô hình hóa xử lý, Tạo ứng dụng, Kiểm thử và ñánh giá (Business, Data, Process, Appl Generation, Testing)
Trang 23Mô hình
ñịnh khung
nhanh
Business Modeling
Data Modeling
Team #1
Business Modeling
Business Modeling
Data Modeling
Data Modeling
Process Modeling
Process Modeling
Application Generation
Testing &
Team #2
Business Modeling
Business Modeling
Data Modeling
Data Modeling
Process Modeling
Process Modeling
Application Generation
Testing &
Turnover
Team #3
Process Modeling
Application Generation
Testing &
Turnover Testing &
Turnover
Trang 24Mô hình ñịnh khung nhanh
Cần nguồn nhân lực dồi dào ñể tạo các nhóm cho các chức năng chính
Yêu cầu hai bên cam kết trong thời gian ngắn phải có phần mềm hoàn chỉnh, thiếu trách nhiệm của một bên
phần mềm hoàn chỉnh, thiếu trách nhiệm của một bên
dễ làm dự án ñổ vỡ
RAD không phải tốt cho mọi ứng dụng, nhất là với
ứng dụng không thể module hóa hoặc ñòi hỏi tính
năng cao
Trang 25Mô hình xoắn ốc (Spiral Model)
ðược ñề nghị bởi Boehm (1988)
giảm ñến mức tối thiểu và kiểm soát các rủi ro
lặp ñược biểu diễn bởi một ñường vòng quanh.
Lập kế hoạch (xác ñịnh các mục tiêu, các lựa chọn và các ràng buộc)
Phân tích rủi ro (phân tích các phương án và xác ñịnh/giải quyết rủi
Trang 26Mô hình xoắn ốc
Risk analysis
Risk analysis
Risk analysis
Evaluate alternatives, identify, resolve risks Determine objectives,
alternatives, constraints
Cumulative cost Progress through steps
Review
partition
Commitment
Requirements plan Life-cycle plan Simulations, models, benchmarmks
Unit
Code
Detailed design
Concetp of operation Development
plan Integration and
test plan
Design validation and verification
Requirements validation
Software requirements
Risk analysis
Prototype 1 Prototype 2
Prototype 3
analysis
Operational prototype
Trang 27Mô hình xoắn ốc
Hướng rủi ro (risk-driven); giảm thiểu rủi ro
Các công việc luân phiên và chịu các ràng buộc ựã hỗ trợ cho việc tái sử dụng phần mềm hiện có
đánh giá mức ựộ rủi ro
Mục tiêu quan trọng luôn là chất lượng phần mềm
Giảm nhẹ kiểm thử và nhanh chóng sửa chữa những lỗi xảy ra Giảm nhẹ kiểm thử và nhanh chóng sửa chữa những lỗi xảy ra
Bảo trì ựơn giản chỉ là một vòng tròn trong xoắn ốc, như vậy không có
sự phân biệt giữa phát triển và bảo trì
Dành riêng cho các phần mềm nội bộ có kắch thước lớn
Có thể chấm dứt do các ựánh giá về rủi ro, do ựó sẽ rất không hay khi ựã ký kết các hợp ựồng, rắc rối về mặt luật pháp
Trang 28Mô hình hướng ñối tượng
(object-oriented life-cycle model)
Xác ñịnh yêu cầu
Cài ñặt Tích hợp
Trang 29Mô hình hướng ñối tượng
(object-oriented life-cycle model)
ðặc tính quan trọng nhất là lặp:
lên nhau
lên nhau
Trang 30RUP – Rational Unified Process
gồm các use case để mơ hình hĩa các yêu cầu
trọng, các kiến trúc ứng viên, các dự đốn về chi phí và
kế hoạch làm việc
Trang 31RUP
Trang 32So sánh các mô hình
Mô hình xây dựng và hiệu
Hướng tài liệu
Sản phẩm chuyển giao có thể không theo những gì khách hàng cần
Các nhà phát triển phải có khả năng phân tích rủi ro và giải quyết rủi ro
Các mô hình hướng ñối
Trang 33Bài tập
mềm