Tải bản đầy đủ (.pdf) (39 trang)

Bài giảng Công nghệ phần mềm nâng cao: Vòng đời và các mô hình phát triển phần mềm - Pham Ngoc Hung

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (543.71 KB, 39 trang )

Vịng Đời và Các Mơ Hình
Phát Triển Phần Mềm
Cơng Nghệ Phần Mềm Nâng Cao


Outline
Software life-cycle
„ Qui
Q i trình
ì h phát
há triển
iể Phần
Phầ mềm

„ Các mơ hình phát triển
„

Mơ hình tuyến tính
… Mơ hình chế thử
… Mơ hình phát triển ứng dụng nhanh
… Các mơ hình tiến hóa
… Mơ hình phát triển đồng thời
… Mơ hình hướng thành phần
…

Pham Ngoc Hung, Coltech, VNU, 2009

2


Vòng đời phần mềm (Software life


life-cycle)
cycle)
„

„

Vòngg đời pphần mềm là thời kỳỳ tính từ khi pphần mềm
được sinh (tạo) ra cho đến khi chết đi (từ lúc hình
thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến
khi loại bỏ khơng đâu dùng))
Quy trình phần mềm (vịng đời phần mềm) được
phân
hâ chia
hi thành
hà h các
á pha
h chính:
hí h phân
hâ tích,
í h thiết
hiế kế,
kế
chế tạo, kiểm thử, bảo trì. Biểu diễn các pha có khác
nhau theo từng người

Pham Ngoc Hung, Coltech, VNU, 2009

3



Mơ hình vịngg đời pphần mềm của Boehm
Xác định u
cầu hệ thống
Kiểm chứng
Xác định yêu
cầu phần mềm
Kiểm chứng
Thiết kế
căn bản
Kiểm chứng
Thiết kế
chi tiết
Kiểm chứng
Lập trình
Gỡ lỗi

Kiểm thử
Chạy thử
Vận hành
Bảo trì
Kiểm chứng lại
Pham Ngoc Hung, Coltech, VNU, 2009

4


S nghĩ
Suy
hĩ mới
ới vềề vòng

ò đời phần
hầ mềm

(1) Pha xác định u cầu và thiết kế có vai trị quyết
định đến
ế chất
ấ lượng phần
ầ mềm,
ề chiếm
ế phần
ầ lớn
công sức so với lập trình, kiểm thử và chuyển giao
phần mềm
(2) Pha cụ thể hóa cấu trúc phần mềm phụ thuộc nhiều
vào suyy nghĩ
g trên xuốngg ((top-down)
p
) và trừu tượng
ợ g
hóa, cũng như chi tiết hóa
(3) Pha thiết kế, chế tạo thì theo trên xuống, pha kiểm
thử
hử thì
hì dưới
d ới lên
lê (bottom-up)
(b
)

Pham Ngoc Hung, Coltech, VNU, 2009


5


S nghĩ
Suy
hĩ mới
ới vềề vòng
ò đời phần
hầ mềm

((4)) Trước khi chuyển
y sang
gp
pha kế tiếp
pp
phải đảm bảo p
pha
hiện nay đã được kiểm thử khơng cịn lỗi
(5) Cần có cơ chế kiểm tra chất lượng, xét duyệt giữa các
pha
h nhằm
hằ đảm
đả bảo
bả không
khô gây
â lỗi cho
h pha
h sau
(6) Tư liệu của mỗi pha khơng chỉ dùng cho pha sau, mà

chính là đối tượng quan trọng cho kiểm tra và đảm bảo
chất lượng của từng quy trình và của chính phần mềm

Pham Ngoc Hung, Coltech, VNU, 2009

6


S nghĩ
Suy
hĩ mới
ới vềề vòng
ò đời phần
hầ mềm

((7)) Cần chuẩn hóa mẫu biểu,, cách gghi chépp tạo
ạ tư liệu

cho từng pha, nhằm đảm bảo chất lượng phần mềm
(8) Thao tác bảo trì phần mềm là việc xử lý quay vịng
trở lại các pha trong vòng đời phần mềm nhằm biến
đổi, sửa chữa, nâng cấp phần mềm

Pham Ngoc Hung, Coltech, VNU, 2009

7


Các phương pháp luận và kỹ thuật cho từng pha
Tªn pha

Xác định
yêu cầu
Thiết kế
hệ thống
Thiết kế
chơngg
trình
Lập trình
Đảm bảo
chất lợng
Vận hành
Bảo
ả trìì

Nội dung nghiệp vụ
Đặc tả yêu cầu ngời dùng
Xác định yêu cầu phần mềm
Thiết kế cơ bản phần mềm
Thiết kế cấu trúc ngoài của phần
mềm

Phơng pháp, kỹ
thuật
Phân tích cấu trúc
hóa
Thiết kế cấu trúc hóa

Lập trình cấu trúc
Là thiết kế chi tiết: Thiết kế cấu
Phơng pháp Jackson

trúc bên trongg của phần
p
mềm ((đơn
Phơ pháp
Phơng

vị chơng trình hoặc môđun)
Warnier
MÃ hóa bởi ngôn ngữ lập trình
MÃ hóa cấu trúc hóa
Kiểm tra chất lợng phần mềm đà Phơng pháp kiểm
thử chơng trình
phát triển
Sử dụng, vận hành phần mềm đÃ
phát triển
triển. Biến đổi,
đổi điều chỉnh
Cha cụ thĨ
phÇn mỊm

Pham Ngoc Hung, Coltech, VNU, 2009

8


Quy trình phát triển phần mềm
Common process framework
Framework activities
Task sets
Tasks

Mil
Milestones,
d
deliverables
li
bl
SQA points

Umbrella activities

Pham Ngoc Hung, Coltech, VNU, 2009

9


Mơ hình tuyến tính

Phân tích

Thiết kế

Lập trình

Kiểm thử

Cơng nghệ học
Hệ thống/Thơng tin
Điển hình là mơ hình vịng đời cổ điển
(mơ hình thác nước) Classic life cycle /
ự dùng

g nhất
waterfall model: là mơ hình hayy đựoc

Pham Ngoc Hung, Coltech, VNU, 2009

10


Mơ hình tuyến tính
„

„

Cơng
g nghệ
g học Hệ thống/Thơng
g
g tin và mơ hình hóa
(System / Information engineering and modeling): thiết
lập các yêu cầu, ánh xạ một số tập con các yêu cầu sang
phần mềm trong quá trình tương tác giữa phần cứng,
cứng
người và CSDL
Phân tích yêu cầu (Requirements analysis): hiểu lĩnh vực
thơng tin, chức năng, hành vi, tính năng và giao diện của
phần mềm sẽ phát triển. Cần phải tạo tư liệu và bàn thảo
với khách hàng, người dùng

Pham Ngoc Hung, Coltech, VNU, 2009


11


Mơ hình tuyến tính
„

„

Thiết kế (Design): là q trình nhiều bước với 4 thuộc
tính khác nhau của một chương trình: cấu trúc dữ liệu,
kiế trúc
kiến
ú phần
hầ mềm,
ề biểu
biể diễn
diễ giao
i diện
diệ vàà chi
hi tiết
iế thủ
hủ
tục (thuật toán). Cần tư liệu hóa và là một phần quan
trọng của cấu hình phần mềm
Tạo mã / lập trình (Code generation/programming):
Chuyển thiết kế thành chương trình máy tính bởi ngơn
ngữ nào đó. Nếu thiết kế đã được chi tiết hóa thì lập
trình có thể chỉ thuần túy cơ học

Pham Ngoc Hung, Coltech, VNU, 2009


12


Mơ hình tuyến tính
„

„

Kiểm thử ((Testing):
g) Kiểm tra các chươngg trình và
mơđun cả về lơgic bên trong và chức năng bên
ngoài, nhằm phát hiện ra lỗi và đảm bảo với đầu vào
xác định thì cho kết
ế quả mong muốn

Hỗ trợ / Bảo trì (Support / Maintenance): Đáp ứng
những
hữ thay
h đổi,
đổi nâng
â cấp
ấ phần
hầ mềm
ề đã phát
há triển
iể do
d
sự thay đổi của môi trường, nhu cầu


Pham Ngoc Hung, Coltech, VNU, 2009

13


Điểm
ể yếu
ế của Mơ hình tuyến
ế tính
„

„
„

Thực
ự tế các dự
ự án ít khi tn theo dịngg tuần tự
ự của
mơ hình, mà thường có lặp lại (như mơ hình của
Boehm)
Khách hàng ít khi tuyên bố rõ ràng khi nào xong hết
các u cầu
Khách hàng phải có lịng kiên nhẫn
ẫ chờ đợi thời gian
nhất định mới có sản phẩm. Nếu phát hiện ra lỗi
nặng
ặ thì là một
ột thảm
thả họa!
h !


Pham Ngoc Hung, Coltech, VNU, 2009

14


Mơ hình chế thử (Prototyping model)

Nghe Khách
trình bày

Tạo/sửa
bản mẫu

Khách kiểm tra
bản mẫu
Pham Ngoc Hung, Coltech, VNU, 2009

15


Mơ hình chế thử: Khi nào?
„

„
„

Khi mới rõ mục
ụ đích chungg chungg của pphần mềm,,
chưa rõ chi tiết đầu vào hay xử lý ra sao hoặc chưa

rõ yêu cầu đầu ra
Dùng như “Hệ sơ khai” để thu thập yêu cầu người
dùng qua các thiết kế nhanh
Các giải thuật, kỹ thuật dùng làm bản mẫu
ẫ có thểể
chưa nhanh, chưa tốt, miễn là có mẫu để thảo luận
gợii yêu
ê cầu
ầ của
ủ người
ời dùng


Pham Ngoc Hung, Coltech, VNU, 2009

16


Mơ hình phát triển ứng dụng nhanh (Rapid
Application Development: RAD)
„

„
„

Là quy trình phát triển phần mềm gia tăng, tăng dần từng
bước (Incrimental software development) với mỗi chu
trình
ì h phát
há triển

iể rất
ấ ngắn
ắ (60-90
(60 90 ngày)
à )
Xây dựng dựa trên hướng thành phần (Component-based
construction) với khả năng tái sử dụng (reuse)
Gồm một số nhóm (teams), mỗi nhóm làm 1 RAD theo
các p
pha: Mơ hình nghiệp
g ệp vụ,
ụ, Mơ hình dữ liệu,
ệ , Mơ hình xử
lý, Tạo ứng dụng, Kiểm thử và đánh giá (Business, Data,
Process, Appl. Generation, Test)

Pham Ngoc Hung, Coltech, VNU, 2009

17


Team #3

Mơơ hình
hì h
phát triển
ứng dụng
nhanh

Team #2

Business
Modeling
g

Team #1
Business
Modeling

Business
Modeling
g

Data
Modeling
g
Process
Modeling
g
Application
Data
Generation
Modeling
g
Testing &
Process
Turnover

Modeling
g
A li ti

Application
Data
Generation
Modeling
Testing &
Process
Turnover

Modeling

Application
Generation
Ge
e at o
Testing &
Turnover
60 - 90 days
Pham Ngoc Hung, Coltech, VNU, 2009

18


RAD: Business modeling
Luồng thơng tin được mơ hình hóa để trả lời các
câu hỏi:
… Thông

tin nào điều khiển xử lý nghiệp vụ?
… Thơng tin gì được sinh ra?
… Ai sinh ra nó?

… Thơng tin đi đến đâu?
… Ai xử lý chúng?

Pham Ngoc Hung, Coltech, VNU, 2009

19


RAD Data
RAD:
D andd Process
P
modeling
d li
„

„

Data modeling: các đối tượng dữ liệu cần để hỗ
trợ nghiệp vụ (business). Định nghĩa các thuộc
tính của từng đối
ố tượng và xác lập quan hệ giữa
các đối tượng
Process modeling:
d li
Các đối tượng dữ
d liệu
li được
đ
chuyển sang luồng thông tin thực hiện chức năng

nghiệp vụ.
vụ Tạo mơ tả xử lý đễ cập nhật (thêm,
(thêm
sửa, xóa, khơi phục) từng đối tượng dữ liệu

Pham Ngoc Hung, Coltech, VNU, 2009

20


RAD: Appl.
Appl Generation and Testing
„

„

Application
pp
Generation: Dùngg các kỹỹ thuật
ậ thế hệệ 4
để tạo phần mềm từ các thành phần có sẵn hoặc tạo
ra các thành phần có thể tái dụng lại sau này. Dùng
các công cụ tự động đểể xây dựng phần
ầ mềm

Testing and Turnover: Kiểm thử các thành phần mới
vàà kiểm
kiể chứng
hứ mọii giao
i diện

diệ (các
( á thành
hà h phần
hầ cũũ đã
được kiểm thử và dùng lại)

Pham Ngoc Hung, Coltech, VNU, 2009

21


RAD: Hạn chế?
„
„

„
„

Cần nguồn
g
nhân lực dồi dào để tạo các nhóm cho các
chức năng chính
u cầu hai bên giao kèo trong thời gian ngắn phải có
phần
hầ mềm
ề hồn
h à chỉnh,
hỉ h thiếu
hiế trách
á h nhiệm

hiệ của
ủ một
ộ bên
bê dễ
làm dự án đổ vỡ
RAD không phải tốt cho mọi ứng dụng,
dụng nhất là với ứng
dụng khơng thể mơđun hóa hoặc địi hỏi tính năng cao
Mạo hiểm kỹ thuật cao thì khơng nên dùng RAD

Pham Ngoc Hung, Coltech, VNU, 2009

22


Các mơ hình tiến hóa:
gia tăng, xoắn
ắ ốc...

„

„

„

Phần lớn các hệ phần mềm phức tạp đều tiến hóa theo
thời gian: mơi trường thay đổi, u cầu phát sinh thêm,
hồn thiện thêm chức năng, tính năng
Các mơ hình tiến hóa (evolutionary models) có tính lặp
lại. Kỹ sư phần mềm tạo ra các phiên bản (versions)

ngày
à càng
à hoàn
h à thiện
thiệ hơn,
h
phức
hứ tạp
t hơn
h
Các mơ hình: incremental, spiral, WINWIN spiral,
concurrent development model

Pham Ngoc Hung, Coltech, VNU, 2009

23


Mơ hình gia tăng (The incremental model)
Kết hợp mơ hình tuần tự và ý tưởng lặp lại
của chế bản mẫu
„ Sản phẩm lõi với những yêu cầu cơ bản nhất
của hệ thống được phát triển
„ Các
Cá chức
hứ năng
ă với
ới những
hữ yêu
ê cầu

ầ khác
khá được
đượ
phát triển thêm sau (gia tăng)
„ Lặp lại quy trình để
ể hồn thiện dần

„

Pham Ngoc Hung, Coltech, VNU, 2009

24


Mơ hình gia tăng
Gia tăng 1
Phân tích

Thiết kế

Lập trình

Xuất xưởng 1

Kiểm thử

System/info.
E i
Engineering
i


Gia tăng 2

Phân tích

Gia tăng 3

Thiết kế

Phân tích

Gia tăng 4

Lập trình

Kiểm thử

Thiết kế

Phân tích

Lập trình

Thiết kế

Xuất xưởng 2

Kiểm thử Xuất xưởng 3

Lập trình


Kiểm thử

XX
4

C l d titime
Calendar
Pham Ngoc Hung, Coltech, VNU, 2009

25


×