You are on page 1of 17

Chương 2

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


2.1 Qui trình phát triển phần mềm
2.2 Các mô hình về qui trình phát triển phần mềm
2.3 Các hoạt động trong qui trình phát triển
2.4 Các tài liệu miêu tả kết quả
2.5 Kết chương

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 1

2.1 Qui trình phát triển phần mềm


 Là 1 tập các hoạt động có cấu trúc cần thực hiện để phát triển 1
hệ thống phần mềm.
 Có nhiều qui trình phát triển khác nhau đã được đề nghị và sử
dụng, chúng có chung những công việc chức năng sau :
 Đặc tả phần mềm,
 Thiết kế phần mềm,
 Hiện thực phần mềm,
 Thẩm định phần mềm,
 Duy trì sự tiến hóa phần mềm.
 Mô hình về qui trình phát triển phần mềm : là sự miêu tả tổng
quát, trừu tượng về qui trình phát triển phần mềm.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 2

1
2.2 Các mô hình qui trình phát triển phần mềm
 Mô hình thác nước :
 Mô hình dựa trên kế hoạch rõ ràng.
 Phân chia và tách biệt các công đoạn đặc tả và phát triển
phần mềm.
 Mô hình tăng tiến :
 Đặc tả, phát triển và thẩm định phần mềm xen kẽ nhau.
 Có thể linh hoạt hay dựa trên kế hoạch rõ ràng.
 Mô hình tích hợp và cấu hình :
 Hệ thống được lắp ghép từ các thanh phần có sẵn và có thể
cấu hình được.
 Có thể linh hoạt hay dựa trên kế hoạch rõ ràng.
Trong thực tế, đa số các hệ thống lớn được phát triển dùng mô hình
mà tích hợp nhiều ý tưởng của các mô hình cụ thể trên.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 3

Mô hình thác nước

 Trong thực tế, mỗi bước phải hoàn thành trước khi thực hiện bước
tiếp theo.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 4

2
Mô hình thác nước
 Yếu điểm chính : khó thích nghi với các thay đổi sau khi qui trình
đã vận hành.
 Được dùng chủ yếu cho các hệ thống kỹ thuật lớn.
 Được dùng khi các yêu cầu phần mềm rất rõ ràng và được hiểu
rất tốt, các thay đổi rất ít xảy ra trong khi tiến hành phát triển
phần mềm.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 5

Mô hình tăng tiến

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 6

3
Các lợi ích của mô hình tăng tiến
 Giảm giá sự thích nghi từ các thay đổi của yêu cầu người dùng.
 Dễ dàng nhận hồi đáp của khách hàng trên công việc phát triển
phần mềm đã và đang tiến hành.
 Phân phối và triển khai sớm phần mềm dùng được cho khách
hàng, chứ không cần chờ version hoàn chỉnh cuối cùng.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 7

Các vấn đề của mô hình tăng tiến


 Khó thấy rõ qui trình đang vận hành.
 Nhà quản lý cần các kết quả phân phối đều đều.
 Lập tài liệu cho từng version có giá không hợp lý (cao).
 Cấu trúc của hệ thống có khuynh hướng giảm sút khi có các
thành phần mới được thêm vào.
 Cần thời gian và tiền bạc để cấu trúc lại phần mềm để cải tiến
nó.
 Các thay đổi đều đều có khuynh hướng làm hư cấu trúc ban
đầu (tốt, rõ ràng) của phần mềm.
 Tích hợp các thay đổi trong tương lai ngày càng khó khăn và
có giá ngày càng cao.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 8

4
Mô hình linh hoạt

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 9

SCRUM – Cách tiếp cận phát triển linh hoạt phổ biến nhất.

Scrum là một “bộ khung làm việc” cơ bản để tiếp cận những công việc phức tạp. Dựa trên bộ khung
này, nhóm làm việc có thể áp dụng những quy trình, kỹ thuật khác nhau cho công việc của mình… Nó
là một thành viên của họ Agile.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 10

5
Phát triển linh hoạt

Ưu Khuyết
Uyển chuyển hơn Khó tiên đoán
Sản phầm cuối cùng
Sản phẩm ra thị
không được phân phối
trường nhanh hơn
lần đầu.
Tài liệu thường để ở
Giao tiếp tốt hơn
hậu trường.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 11

Công nghệ phần mềm dựa trên việc dùng lại


 Dựa trên ý tưởng dùng lại, phần mềm được tích hợp từ các thành
phần hay phần mềm có sẵn.
 Các phần tử được dùng lại có thể được cấu hình lại để thích hợp
với các yêu cầu người dùng của phần mềm cần xây dựng.
 Hiện nay, ý tưởng dùng lại là cách tiếp cận rất phổ biến khi xây
dựng các hệ thống nghiệp vụ.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 12

6
Các ưu & khuyết điểm của ý tưởng dùng lại
 Giá và rủi ro giảm nhiều so với cách xây dựng từ đầu.
 Phân phối và triển khai hệ thống nhanh hơn.
 Phải dung hòa các yêu cầu phần mềm với các thành phần sẵn có,
do đó có thể hệ thống không thỏa mãn chính xác các yêu cầu
thực tế của người dùng.
 Mất kiểm soát trên sự phát triển của các thành phần sẵn có.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 13

2.3 Các hoạt động chính - Đặc tả phầm mềm


 Qui trình thiết lập các dịch vụ được đòi hỏi và những ràng buộc
trong phát triển và vận hành hệ thống phần mềm.
 Dùng : qui trình kỹ thuật về yêu cầu phần mềm
 Khám phá và phân tích các yêu cầu.
 Đặc tả rõ ràng chi tiết các yêu cầu.
 Thẩm định các yêu cầu.
 Quản lý sự thay đổi các yêu cầu.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 14

7
Qui trình kỹ thuật về yêu cầu phần mềm

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 15

Thiết kế và hiện thực (phát triển phần mềm)


 Qui trình dịch đặc tả ra phần mềm khả thi.
 Gồm 2 hoạt động nhỏ hơn :
 Thiết kế : thiết kế cấu trúc phần mềm mà sẽ hiện thực đặc tả.
 Hiện thực : dịch bản thiết kế ra chương trình khả thi.
 Hai hoạt động thiết kế và hiện thực có mối quan hệ mật thiết và
có thể xen kẻ nhau.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 16

8
Mô hình tổng quát của qui trình thiết kế

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 17

Hiện thực phần mềm


 Phần mềm được hiện thực có thể bằng cách :
 xây dựng 1 chương trình đơn lẻ,
 hay xây dựng nhiều chương trình hợp thành
 hay chỉ cần cấu hình lại 1 hệ thống có sẵn.
 Thiết kế và hiện thực thường xen kẻ nhau trong hầu hết các loại
phần mềm.
 Lập trình là hoạt động cá thể và không có chuẩn gì cả.
 Gở rối là hoạt động tìm lỗi chương trình rồi sửa các lỗi này.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 18

9
Thẩm định phần mềm
 Họat động phổ dụng để đảm bảo chất lượng phần mềm :
Verification and validation (V & V)
 Mục đích của Verification là chỉ ra việc hệ thống đã tương thích
với các đặc tả (các yêu cầu chức năng và phi chức năng).
 Mục đích của Validation là chỉ ra việc phần mềm thỏa mãn các
yêu cầu thực sự của khách hàng. Như vậy công việc validation là
chỉ ra được các đặc tả là đúng với các yêu cầu thực sự của khách
hàng.
 V & V liên quan đến việc kiểm tra, đánh giá và kiểm thử hệ thống.
 Kiểm thử hệ thống (Testing): thi hành phần mềm với các test
cases xác định để tìm lỗi.
 Testing: là hoạt động chủ yếu nhất của V&V.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 19

Các công đoạn chính của testing

• Kiểm thử từng thành phần nhỏ độc lập nhau

• Kiểm thử tổng thể phần mềm

• Kiểm thử dùng dữ liệu thật


của người dung.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 20

10
Các công đoạn của testing trong qui trình phát
triển dựa trên kế hoạch.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 21

Sự tiến hóa của phần mềm


 Phần mềm luôn mềm dẻo và có thể thay đổi.
 Các yêu cầu bị thay đổi -> phần mềm cũng phải thay đổi và tiến
hóa.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 22

11
Đương đầu với các thay đổi
 Thay đổi là không tránh khỏi trong mọi dự án phần mềm lớn :
 nghiệp vụ thay đổi,
 xuất hiện công nghệ mới
 platform thay đổi...
 Thay đổi dẫn đến việc phải làm lại : phân tích lại các yêu cầu +
thiết kế và hiện thực các chức năng mới...

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 23

Làm phần mềm mẫu


 Prototype là version ban đầu của phần mềm được dùng để demo
các khái niệm và thử các option thiết kế.
 Prototype được dùng trong :
 qui trình nắm bắt yêu cầu : khám phá và thẩm định yêu cầu,
 qui trình thiết kế : các option và thiết kế giao diện.
 qua trình kiểm thử : chạy từng test case.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 24

12
Qui trình phát triển phần mềm mẫu

 Phát triển prototype:


 có thể dựa trên các tools hay ngôn ngữ chuyên phục vụ làm
nhanh prototype.
 có thể bỏ sót hay giảm thiểu chức năng.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 25

Phân phối tăng tiến


 Phát triển và phân phối được chia ra thành nhiều phần tăng tiến :
 mỗi phần tăng tiến giải quyết 1 phần các chức năng được đòi
hỏi,
 yêu cầu người dùng ưu tiên nhất và những yêu cầu có độ ưu
tiên cao nhất phải có trong các phần tăng tiến đầu tiên.
 2 cách tiếp cận :
 phát triển tăng tiến : bởi người phát triển
 phân phối tăng tiến : cho người dùng cuối

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 26

13
Phân phối tăng tiến

 Các ưu điểm :
 chức năng phần mềm thường được
cung cấp sớm hơn,  Các khuyết điểm :
 mỗi phần tăng tiến hoạt động như 1  có thể đòi hỏi tập các phương
prototype, tiện cơ bản.
 ít rủi ro hơn về các lỗi dự án tổng thể,  đặc tả được phần phối cùng
 các dịch vụ ưu tiên nhất được kiểm với phần mềm.
thử nhiều nhất.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 27

Cải tiến qui trình


 Cải tiến qui trình phát triển phần mềm để :
 tăng cường chất lượng phần mềm,
 giảm giá thành phát triển phần mềm.
 hay tang tốc qui trình phát triển phần mềm.
 Cải tiển qui trình phát triển phần mềm:
 phải hiểu các qui trình hiện có,
 và thay đổi các qui trình này.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 28

14
Các hoạt động nhằm cải tiến qui trình
 Đo lường qui trình :
 ta phải đo đạc 1 hay nhiều thuộc tính của qui trình hay của
phần mềm. Các thông số đo này tạo cơ sở giúp ta quyết định
việc cải tiến qui trình có hiệu quả thực sự không.
 giảm giá thành phát triển phần mềm.
 hay tang tốc qui trình phát triển phần mềm.
 Phân tích qui trình : Qui trình hiện hành được đánh giá, các điểm
yếu, các cổ nút chai được nhận dạng. Các mô hình qui trình (các
bản đồ qui trình) diễn tả qui trình có thể được phát triển.
 Thay đổi qui trình : Các thay đổi qui trình được đề nghị để định vị
1 số điểm yếu qui trình được tìm thấy. Các thay đổi này được giới
thiệu và chu kỳ bắt đầu lại để thu thập dữ liệu về độ hiệu quả của
các thay đổi.
Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 29

Mô hình CMMI (Capability Maturity Model Integration)


 CMMI (Capability Maturity Model® Integration) là một mô hình
quản lý chất lượng cho các tổ chức. Nó có thể được sử dụng để
định hướng quản lý, định hướng phát triển cho một dự án, một
bộ phận của tổ chức hoặc toàn bộ tổ chức đó.
 CMMI định nghĩa các phần tử quan trọng nhất cần cho việc xây
dựng các sản phẩm lớn hay phân phối dịch vụ lớn.
 CMMI được đòi hỏi bởi nhiều hợp đồng của chính phủ Mỹ, nhất
là hợp đồng phát triển phần mềm.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 30

15
Mô hình CMMI (Capability Maturity Model Integration)

Các chiến lược cải tiến qui trình được định nghĩa và được dùng

Các chiến lược quản lý chất lượng được


định nghĩa và được dùng

Các thủ tục & chiến lược quản lý qui trình


được định nghĩa và được dùng

Các thủ tục quản lý sản phẩm được định


nghĩa và được dùng

Chưa được kiểm soát lúc đầu

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 31

2.4 Các tài liệu của dự án phần mềm


Hoạt động Tài liệu
Validation & Verification SVVP - Software Validation & Verification Plan
Quality Assurance SQAP - Software Quality Assurance Plan
Configuration SCMP - Software Configuration Management Plan
Project status SPMP - Software Project Management Plan
Requirements SRS - Software Requirements Specifications
Design SDD - Software Design Document / Software Detail
Design Document
Code Source Code
Testing STD - Software Test Document
Operation User’s Manual

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 32

16
2.5 Kết chương
Chương này đã giới thiệu cho chúng ta những nội dung :
 qui trình phát triển phần mềm.
 các mô hình của qui trình phát triển như mô hình thác nước, mô
hình tang tiến, mô hình dùng lại thành phần hay phần mềm có
sẵn.
 các hoạt động chính của việc phát triển phần mềm như đặc tả
yêu cầu, thiết kế, hiện thực, kiểm thử, phân phối và duy trì, đương
đầu với các thay đổi, cải tiến qui trình...
 các tài liệu miêu tả kết quả của dự án phần mềm.

Khoa Khoa học & Kỹ thuật Máy tính Môn : Công nghệ phần mềm
Trường ĐH Bách Khoa Tp.HCM Chương 2 : Qui trình phát triển phần mềm
© 2010 Slide 33

17

You might also like