Chapter 2 – Software
Processes
Chapter 2 Software Processes
1
Topics covered
Software process models
Process activities
Coping with (đương đầu với) change
Process improvement
Chapter 2 Software Processes
2
Quy trình phần mềm
Một tập hợp các hoạt động cần thiết để phát triển một hệ
thống phần mềm?
Nhiều quy trình phần mềm khác nhau nhưng tất cả đều
liên quan đến:
• Specification(Đặc tả) - xác định hệ thống nên làm gì;
• Design and implementation(Thiết kế và thực hiện) - xác định
việc tổ chức hệ thống và thực hiện hệ thống;
• Validation( Xác nhận) - kiểm tra xem nó có làm những gì khách
hàng muốn;
• Evolution(sự tiến hóa) - thay đổi hệ thống để đáp ứng nhu cầu
thay đổi của khách hàng.
Một mơ hình qui trình phần mềm là một biểu diễn trừu
tượng của một tiến trình. Nó trình bày một mơ tả của
2 Software Processes
một q trình từ mộtChapter
số quan
điểm cụ thể.
3
Mơ tả quy trình phần mềm
Khi chúng ta mơ tả và thảo luận các quy trình, chúng ta
thường nói về các hoạt động trong các quy trình này
như chỉ định mơ hình dữ liệu, thiết kế giao diện người
dùng, v.v. và thứ tự các hoạt động này.
Mô tả quy trình cũng có thể bao gồm:
• Sản phẩm, là kết quả của một quy trình hoạt động ;
• Vai trò, phản ánh trách nhiệm của những người liên quan đến
q trình;
• điều kiện trước và sau, đó là những tuyên bố đúng trước và sau
khi một hoạt động quy trình đã được ban hành hoặc một sản
phẩm được sản xuất.
Chapter 2 Software Processes
4
Quy trình Plan-driven và agile
Quy trình Plan-driven là các quá trình mà tất cả các
hoạt động của quy trình được lên kế hoạch trước và
tiến độ được đo lường theo kế hoạch này.
Trong các quy trình agile, lập kế hoạch gia tăng và
dễ dàng thay đổi quy trình để phản ánh các yêu cầu
thay đổi của khách hàng.
Trong thực tế, hầu hết các quy trình thực tế bao gồm
các yếu tố của cả hai phương pháp Plan-driven và
agile.
Khơng có quy trình phần mềm đúng hay sai.
Chapter 2 Software Processes
5
Mơ hình quy trình phần mềm
Chapter 2 Software Processes
6
Mơ hình quy trình phần mềm
Mơ hình waterfall
Mơ hình theo kế hoạch. giai đoạn riêng biệt và khác biệt của đặc
điểm kỹ thuật và phát triển..
Incremental development
Đặc điểm kỹ thuật, phát triển và xác nhận được xen kẽ. Có thể
được lập kế hoạch theo định hướng hoặc nhanh nhẹn.
Integration and configuration
Hệ thống được lắp ráp từ các thành phần cấu hình hiện có. Có
thể được lập kế hoạch theo định hướng hoặc nhanh nhẹn..
Trong thực tế, hầu hết các hệ thống lớn được phát triển
bằng cách sử dụng một quá trình kết hợp các yếu tố từ
tất cả các mơ hình này..
Chapter 2 Software Processes
7
The waterfall model
Chapter 2 Software Processes
8
Mơ hình Waterfall
Có các giai đoạn được xác định riêng biệt trong mơ hình
waterfall:
• Phân tích u cầu và định nghĩa
• Thiết kế hệ thống và phần mềm
• Thực hiện và thử nghiệm đơn vị
• Tích hợp và kiểm tra hệ thống
• Vận hành và bảo trì
Hạn chế chính của mơ hình thác là khó khăn trong việc
thay đổi (dễ tính) sau khi q trình đang được tiến hành.
Về nguyên tắc, một giai đoạn phải được hoàn thành
trước khi chuyển sang giai đoạn tiếp theo.
Chapter 2 Software Processes
9
Vấn đề của mơ hình Waterfall
Inflexible (cứng rắn) chia dự án thành các giai đoạn
riêng biệt làm cho việc xử lý các yêu cầu của khách
hàng thay đổi trở nên khó khăn.
Do đó, mơ hình này chỉ phù hợp khi các yêu cầu được hiểu rõ
và các thay đổi sẽ bị hạn chế trong quá trình thiết kế.
Rất ít hệ thống kinh doanh có u cầu ổn định.
Mơ hình thác nước chủ yếu được sử dụng cho các dự
án kỹ thuật hệ thống lớn, nơi một hệ thống được phát
triển tại một số địa điểm.
Trong những trường hợp đó, bản chất định hướng của mơ hình
thác nước giúp điều phối cơng việc.
Chapter 2 Software Processes
10
Incremental development
Chapter 2 Software Processes
11
Lợi ích của Incremental development
Chi phí cho việc thay đổi yêu cầu của khách hàng giảm.
Số lượng phân tích và tài liệu phải được làm lại ít hơn nhiều so
với u cầu với mơ hình waterfall.
Việc nhận phản hồi của khách hàng về công việc phát
triển đã được thực hiện dễ dàng hơn.
Khách hàng có thể bình luận về các giai đoạn của phần mềm và
xem có bao nhiêu phần đã được triển khai.
có thể giao hàng nhanh hơn và triển khai phần mềm hữu
ích cho khách hàng.
Khách hàng có thể sử dụng và đạt được giá trị từ phần mềm
sớm hơn là có thể với quy trình waterfall.
Chapter 2 Software Processes
12
Vấn đề của Incremental development
Q trình này khơng hiển thị.
Người quản lý cần phân phôi thường xuyên để đo lường tiến
độ. Nếu các hệ thống được phát triển một cách nhanh chóng,
nó khơng tiết kiệm chi phí để sản xuất các tài liệu phản ánh mọi
phiên bản của hệ thống.
Cấu trúc hệ thống có xu hướng suy giảm khi gia số mới
được thêm vào.
Trừ khi thời gian và tiền bạc được chi cho việc tái cấu trúc để cải
thiện phần mềm, thay đổi thường xuyên có xu hướng làm hỏng
cấu trúc của nó. Kết hợp thêm các thay đổi phần mềm ngày
càng trở nên khó khăn và tốn kém.
Chapter 2 Software Processes
13
Integration and configuration
Dựa trên việc tái sử dụng phần mềm, nơi các hệ thống
được tích hợp từ các thành phần hiện có hoặc các hệ
thống ứng dụng (đơi khi được gọi là các hệ thống COTS
-Commercial-off-the-shelf)).
Các yếu tố được sử dụng lại có thể được định cấu hình
để điều chỉnh hành vi và chức năng của chúng theo yêu
cầu của người dùng
Tái sử dụng hiện là phương pháp chuẩn để xây dựng
nhiều loại hệ thống kinh doanh
Tái sử dụng được đề cập sâu hơn trong Chapter 15.
Chapter 2 Software Processes
14
Các loại phần mềm tái sử dụng
Các hệ thống ứng dụng độc lập (đôi khi được gọi là
COTS) được cấu hình để sử dụng trong một mơi trường
cụ thể.
Các tập hợp các đối tượng được phát triển như là một
gói được tích hợp với một khung thành phần như .NET
hoặc J2EE.
Các dịch vụ Web được phát triển theo các tiêu chuẩn
dịch vụ và có sẵn để gọi từ xa.
Chapter 2 Software Processes
15
Kỹ thuật phần mềm theo định hướng tái sử dụng
Chapter 2 Software Processes
16
Các giai đoạn xử lý chính
Yêu cầu kỹ thuật
Khám phá và đánh giá phần mềm
Yêu cầu sàng lọc
Cấu hình hệ thống ứng dụng
Hợp nhất và tích hợp thành phần
Chapter 2 Software Processes
17
Ưu điểm và nhược điểm
Giảm chi phí và rủi ro vì phần mềm ít được phát triển từ
đầu
Phân phối và triển khai hệ thống nhanh hơn
Nhưng yêu cầu thỏa hiệp là không thể tránh khỏi nên hệ
thống có thể khơng đáp ứng nhu cầu thực sự của người
dùng
Mất kiểm soát sự nâng cấp của các phần tử hệ thống
được tái sử dụng
Chapter 2 Software Processes
18
Process activities
(Quy trình hoạt động)
Chapter 2 Software Processes
19
Quy trình hoạt động
Các qui trình phần mềm thực là trình tự liên tiếp của các
hoạt động kỹ thuật, cộng tác và quản lý với mục tiêu
tổng thể về việc xác định, thiết kế, thực hiện và thử
nghiệm một hệ thống phần mềm.
Bốn hoạt động quy trình cơ bản của đặc tả, phát triển,
xác nhận và tiến hóa(specification, development,
validation và evolution) được tổ chức khác nhau trong
các quy trình phát triển khác nhau.
Ví dụ, trong mơ hình waterfall, chúng được sắp xếp
theo thứ tự, trong khi incremental development chúng
được xen kẽ.
Chapter 2 Software Processes
20
Quá trình yêu cầu kỹ thuật
Chapter 2 Software Processes
21
Đặc điểm phần mềm
Quá trình thiết lập những dịch vụ nào được yêu cầu và
những hạn chế về hoạt động và phát triển của hệ thống.
Yêu cầu quy trình kỹ thuật
u cầu gợi ý và phân tích
• Các bên liên quan hệ thống yêu cầu hoặc mong đợi gì từ hệ thống?
u cầu kỹ thuật
• Xác định các yêu cầu chi tiết
Xác nhận yêu cầu
• Kiểm tra tính hợp lệ của các yêu cầu
Chapter 2 Software Processes
22
Thiết kế và triển khai phần mềm
Là quá trình chuyển đổi đặc tả hệ thống thành một hệ
thống thực thi.
Thiết kế phần mềm
Thiết kế cấu trúc phần mềm nhận ra đặc điểm kỹ thuật;
Triển khai
Dịch cấu trúc này thành một chương trình thực thi;
Các hoạt động thiết kế và triển khai có liên quan chặt
chẽ và có thể liên quan đến nhau.
Chapter 2 Software Processes
23
Một mơ hình chung của q trình thiết kế
Chapter 2 Software Processes
24
Design activities
Architectural designnơi bạn xác định cấu trúc tổng thể
của hệ thống, các thành phần chính (hệ thống con hoặc
module), mối quan hệ của chúng và cách chúng được
phân phối..
Database design, nơi bạn thiết kế cấu trúc dữ liệu hệ
thống và cách chúng được biểu diễn trong cơ sở dữ liệu.
Interface design, nơi bạn xác định các giao diện giữa
các thành phần hệ thống..
Component selection and design, nơi bạn tìm kiếm các
thành phần có thể tái sử dụng. Nếu khơng có, bạn thiết
kế cách nó sẽ hoạt động.
Chapter 2 Software Processes
25