Bài giảng Công nghệ phần mềm - Chương 2: Qui trình xây dựng phần mềm

2.1 Qui trình (process)

2.2 Một sốqui trình xây dựng phần mềm

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

2.2.2 Mô hình phát triển gia tăng

2.2.3 Mô hình RAD

2.2.4 Mô hình bản mẫu

2.2.5 Mô hình xoắn ốc

2.3 Một sốvấn đềkhác

2.3.1 Phát triển dựa vào thành phần

2.3.2 Kỹthuật thếhệthứ4

2.3.3 Qui trình RUP

2.3.4 Phương pháp phát triển phần mềm linh hoạt (PTPMLH)

pdf75 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1955 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Chương 2: Qui trình xây dựng phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
n ốc biểu 
diễn một giai đoạn trong qui trình. Vòng trong cùng 
tập trung vào tính khả thi của hệ thống, vòng kế tiếp 
xác định yêu cầu hệ thống, rồi vòng thiết kế…
43CNPM/NN
Spiral model of the software process
Risk
analys is
Risk
analys is
Risk
analys is
Risk
analysis Proto-
type1
Prototype
2
Prototype
3
Opera-
tional
protoype
Concept o f
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
valid ation
Design
V&V
Product
design Detailed
design
Code
Uni t t es t
Integr ation
testAccep tance
testServ ice
Integration
and test p lan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
Progress 
through 
steps
Commulative Cost
Determine Objectives, 
alternatives, 
constraints
Evaluate alternatives, 
Identify, resolve risks
Develop, verify next-
level product
Plan next phases
Commitment 
Ratio
44CNPM/NN
Mô hình xoắn ốc
„ Mỗi chu kỳ có 4 tầng, mỗi tầng chiếm một cung ¼
„ Đường kính và góc biểu diễn chi phí tích lũy và tiến triển 
của qui trình
„ Xác định những vấn đề rắc rối và phân loại rủi ro nhằm 
loại trừ những rủi ro cao trước khi nó đe dọa
45CNPM/NN
Mô hình xoắn ốc
„ Mỗi giai đoạn được hoàn tất bằng một kiểm tra tất cả
những sản phẩm có được bao gồm kế hoạch cho 
chu kỳ kế tiếp
„ Những kế hoạch này phải bao gồm những phần nhỏ, 
chi tiết hơn cho nhóm và những cá nhân
„ Mô hình xoắn ốc có thể xem là siêu mô hình 
(metamodel) do nó có thể xem là các mô hình khác 
trong những tình huống thích hợp
46CNPM/NN
Q1. determine Objectives, alternatives and constraints
„ Objectives: performance, functionality, ability to 
accommodate change, hardware/software interface, 
and critical success factors
„ Alternatives: xác định những sự lựa chọn (cost, 
schedule, interface, environmental limitations, etc.)
47CNPM/NN
Q2. Evaluate alternatives, identify and resolve risks
„ Đánh giá những lựa chọn và các ràng buộc
„ Nhận diện và giải quyết rủi ro: những rủi ro về quản 
lý, chiến lược lợi nhuận, đánh giá những rủi ro còn lại 
và quyết định dừng hay tiếp tục…
48CNPM/NN
Q3. Develop Next Level Product
„ Creation of a design
„ Review of Design
„ Development of code
„ Inspection of Code
„ Testing and packaging of the product.
49CNPM/NN
Q4. Plan Next Phase
„ Project Plan
„ Configuration Management plan
„ Test plan 
„ Installation plan
50CNPM/NN
Mô hình xoắn ốc – ưu điểm
„ Mô hình cho phép tạo bản mẫu sớm
„ Nó cho những chỉ báo sớm những rủi ro không thể
khắc phục với phí tổn không cao
„ Nó cho phép người dùng tham gia vào các giai đoạn
„ Nó tách nhỏ những nỗ lực phát triển, ưu tiên cho 
những chức năng quan trọng thực hiện trước, với sự
thuận lợi của việc phát hành tăng thêm, cho phép 
chọn lựa sự tiếp tục của dự án 
51CNPM/NN
Mô hình xoắn ốc – ưu điểm
„ Phản hồi từ người dùng sớm và liên tục
„ Qua mỗi vòng lặp, việc đánh giá giúp cải thiện nhiều 
vấn đề của dự án
„ Nó có thể cải thiện năng suất nhờ vào việc sử dụng 
lại
„ Tất cả tiền của dự án không cần phải phân phối 
trước
„ Chi phí tích lũy (Cumulative) được đánh giá thường 
xuyên, giảm rủi ro về chi phí
52CNPM/NN
Mô hình xoắn ốc – nhược điểm
„ Việc đánh giá rủi ro tốn nhiều chi phí, không không 
thích hợp cho những dự án rủi ro thấp hay nhỏ
„ Mô hình phức tạp, khó sử dụng
„ Cần kiến thức đánh giá rủi ro chuyên sâu
„ Khó quản lý tiến trình và thuyết phục khách hàng
53CNPM/NN
Mô hình xoắn ốc – sử dụng
„ Những dự án có rủi ro từ trung bình đến cao
„ Áp dụng cho những dự án cần nhiều thời gian và có
thể gặp nhiều rủi ro
„ Khi cần tập trung vào những phần ổn định hay đã 
được biết rõ trong khi thu thập những kiến thức về
những phần khác
„ Khi thực hiện dựa vào những kỹ thuật mới
54CNPM/NN
Mô hình xoắn ốc (Spiral)
„ Kết hợp giữa bản chất lặp của việc tạo bản mẫu (prototyping) và mô 
hình tuần tự Thác nước
„ Là mô hình tiến trình hướng rủi ro, luôn đánh giá rủi ro
„ Áp dụng qua toàn bộ đời sống phần mềm
„ Các bước: phát triển khái niệm, phát triển sản phẩm, hoàn thiện sản 
phẩm
„ Quá trình có thể tạm dừng, nhưng nó có thể bắt đầu tại điểm vào phù
hợp (vd: hoàn thiện sản phẩm) 
„ Hướng cho việc phát triển những phần mềm lớn
55CNPM/NN
2.2 Các vấn đề khác: dùng thành phần
„ Phát triển dựa vào thành phần (component) xây dựng hệ
thống từ việc tích hợp các thành phần đang có hoặc các 
thành phần thương mại COTS (Commercial-off-the-shelf).
„ Dùng thành phần giảm 70% thời gian và 84% chi phí
56CNPM/NN
Kỹ thuật thế hệ thứ 4
„ 4GT (fourth generation technique) là kỹ thuật dựa vào nhiều công cụ
phần mềm có đặc điểm : Dựa vào đặc tả phần mềm ở mức cao theo 
một cách thức định trước công cụ sẽ tự động sinh mã
„ 4GT thích hợp cho ứng dụng vừa và nhỏ
„ 4GT tăng năng suất đáng kể
„ Một số ý kiến cho rằng :
„ Một số công cụ khó sử dụng
„ Chương trình tạo ra cồng kềnh
„ Việc bảo trì cho các hệ thống lớn là một vấn đề
„ 4GT + dùng thành phần là hướng phát triển rất mạnh hiện nay
57CNPM/NN
Qui trình RUP
„ Qui trình phát triển phần mềm thống nhất RUP 
(Rational Unified Process) là một trong những mô hình 
phát triển dựa trên thành phần dùng Ngôn ngữ mô hình 
thống nhất (UML-Unified modeling language)
„ RUP là qui trình do hãng Rational phát triển
58CNPM/NN
Các vấn đề về phần mềm
59CNPM/NN
Nguyên nhân
60CNPM/NN
Qui trình RUP (Rational Unified Process)
„ Giải quyết
„ Phát triển theo vòng lặp
„ Quản lý yêu cầu
„ Sử dụng thành phần
„ Mô hình trực quan
„ Thẩm định chất lượng
„ Kiểm soát thay đổi
61CNPM/NN
Qui trình RUP
62CNPM/NN
Các giai đoạn RUP
63CNPM/NN
Unified Process (UP)
s o f t w a r e in c r e m e n t
R e l e a s e
I n c e p t io n
E la b o r a t i o n
c o n s t r u c t i o n
t r a n s i t i o n
p r o d u c t io n
64CNPM/NN
Phát triển lặp
65CNPM/NN
UP Work Products
Incept ion phase
Elaborat ion phase
Const ruct ion phase
Transit ion phase
Vision document
Init ial use-case model
Init ial project glossary
Init ial business case
Init ial risk assessment .
Pro ject plan,
phases and it erat ions.
Business model,
if necessary .
One or more prot ot y pes
I nce pt i o
n
Use-case model
Supplement ary requirement s
including non-funct ional
Analy sis model
Sof t ware archit ect ure
Descrip t ion.
Execut able arch it ect ural
prot ot y pe.
Preliminary design model
Rev ised risk list
Project p lan includ ing
it erat ion plan
adapt ed workf lows
milest ones
t echnical work product s
Preliminary user manual
Design model
Sof t ware component s
Int egrat ed sof t ware
increment
Test plan and procedure
Test cases
Support document at ion
user manuals
inst allat ion manuals
descrip t ion of current
increment
Deliv ered sof t ware increment
Bet a t est report s
General user feedback
66CNPM/NN
Qui trình RUP
„ Giai đoạn 1 (Inception): khởi đầu
„ Phạm vi dự án, yêu cầu người dùng và ràng buộc
„ Yêu cầu nghiệp vụ, rủi ro, kế hoạch dự án (phân công, 
chi phí)
„ Thiết kế kiến trúc (chi phí, lịch, tài nguyên)
„ Cấu hình môi trường làm việc, công cụ
67CNPM/NN
Qui trình RUP
„ Giai đoạn 2 (Elaboration): Hình thành
„ Tinh chỉnh tài liệu
„ Hoạch định những bước lặp
„ Kế hoạch phát triển: tiến trình, công cụ CASE
„ Tinh chỉnh kiến trúc và chọn thành phần (component)
68CNPM/NN
Qui trình RUP
„ Giai đoạn 3 (Construction): Xây dựng
„ Quản lý tiến trình tạo sản phẩm: năng suất, đảm bảo 
chất lượng
„ Tạo sản phẩm (alpha, beta, các phiên bản test khác)
„ Kế hoạch triển khai ứng dụng: phần mềm, người sử
dụng, hỗ trợ…
69CNPM/NN
Qui trình RUP
„ Giai đoạn 4 (Transition): Chuyển giao
„ Tạo sản phẩm xuất xưởng
„ Kiểm tra sản phẩm, thu thập phản hồi
70CNPM/NN
PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT
„ PPPTPMLH (Agile software development)
„ Khác biệt dễ nhận thấy của PPPTPMLH đó là lượng giấy 
tờ tài liệu ít hơn và có thể nói là tập trung vào việc lập 
trình hơn. Nhưng ẩn đằng sau đó là hai khác biệt nền 
tảng quan trọng: “thích ứng thay vì dự đoán” và “hướng 
đến con người thay vì qui trình”.
„ PPPTPMLH đề cao tính chủ động và sáng tạo của các cá
nhân tham gia, và đặc biệt là việc trao đổi thông tin giữa 
các thành viên.
„ PPPTPMLH không khước từ sự tổ chức nhưng nó cố
gắng cân bằng giữa sự tổ chức và sự linh hoạt, cân bằng 
giữa việc không có qui trình nào cả và qui trình quá chi li 
và cứng nhắc.
71CNPM/NN
Phương pháp Agile: Scrum
„ Schwaber và Beedle
„ Đặc trưng
„ Chia công việc thành những packet
„ Test và tư liệu khi sản phẩm đang được xây dựng
„ Phần công việc trong “backlog” được chia xuất hiện trong 
“sprint”
„ Gặp gỡ ngắn 
„ “demo” được chuyển tới khách hàng
72CNPM/NN
Scrum
73CNPM/NN
Extreme Programming (XP)
„ The most widely used agile process, originally proposed 
by Kent Beck
„ XP Planning
„ Begins with the creation of “user stories”
„ Agile team assesses each story and assigns a cost
„ Stories are grouped to for a deliverable increment
„ A commitment is made on delivery date
„ After the first increment “project velocity” is used to help 
define subsequent delivery dates for other increments
74CNPM/NN
Extreme Programming
„ XP Design
„ Follows the KIS principle (keep it simple)
„ Encourage the use of CRC cards (see Chapter 8)
„ For difficult design problems, suggests the creation of “spike 
solutions” - a design prototype
„ Encourages “refactoring” - an iterative refinement of the internal 
program design
„ XP Coding
„ Recommends the construction of a unit test for a store before
coding commences
„ Encourages “pair programming”
„ XP Testing
„ All unit tests are executed daily
„ “Acceptance tests” are defined by the customer and excuted to 
assess customer visible functionality
75CNPM/NN
Extreme Programming
unit t est 
cont inuous integrat ion 
acceptance test ing
pair 
programming
Release
user stories 
 values 
 acceptance test crit eria 
it erat ion plan
simple design 
 CRC cards
spike solut ions 
 protot ypes
refactoring
software increment
project velocity computed

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Chương 2 Qui trình xây dựng phần mềm.pdf