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

giáo trình nhập môn công nghệ phần mềm

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 (4.97 MB, 219 trang )

-
1
-
Chương 1:
T
ỔNG QUAN VỀ CÔNG NGHỆ
PH
ẦN MỀM
1.
CÁC KHÁI NI
ỆM C
Ơ B
ẢN
1.1.
Ph
ần mềm
1.1.1.
Các khái ni
ệm
Chương tr
ình máy tính là m
ột tr
ình t
ự các chỉ thị để

ớng dẫn máy tính l
àm vi
ệc nhằm ho
àn thành m
ột công việc
nào đó do con ngư


ời y
êu c
ầu.
Ph
ần mềm l
à m
ột hệ thống cá
c chương tr
ình có th
ể thực
hi
ện tr
ên máy tính nh
ằm hỗ trợ các nh
à chuyên môn trong
t
ừng lĩnh vực chuy
ên ngành th
ực hiện tốt nhất các thao tác
nghi
ệp vụ của m
ình. Nhi
ệm vụ chính yếu của phần mềm l
à
cho phép các nhà chuyên môn th
ực hiện các công việc của họ
trên máy tính d
ễ d
àng và nhanh chóng hơn so v
ới khi thực

hi
ện c
ùng công vi
ệc đó trong thế giới thực.
Ho
ạt động của mọi phần mềm l
à s
ự mô phỏng lại các
h
ọat động của thế giới thực trong một góc độ thu hẹp n
ào đó
trên máy tính. Quá trình s
ử dụng một phần mề
m chính là quá
trình ng
ư
ời d
ùng th
ực hiện các công việc tr
ên máy tính đ

hoàn t
ất một công việc t
ương đương trong th
ế giới thực.
L
ớp phần mềm l
à h
ệ thống các phần mềm tr
ên cùng l

ĩnh
v
ực họat động n
ào đó. Do cùng l
ĩnh vực họat động n
ên các
ph
ần mềm n
ày thư

ng có c
ấu trúc v
à ch
ức năng (công việc m
à
ngư
ời d
ùng th
ực hiện tr
ên máy tính) tương t
ự nhau. Mục ti
êu
c
ủa ng
ành công ngh
ệ phần mềm l
à hư
ớng đến không những
xây d
ựng đ

ư
ợc các phần mềm có chất l
ư
ợng m
à còn cho phép
-
2
-
xây d
ựng dễ d
àng m
ột phần mềm mới từ các ph
ần mềm đ
ã có
s
ẵn trong c
ùng k
ĩnh vực (thậm chí trong các lĩnh vực khác).
STT
L
ớp phần mềm
Các ph
ần mềm
1
H
ỗ trợ giải b
ài t
ập

ợng giác, h

ình h
ọc, giải
tích, s
ố học, …
2
Trò ch
ơi
c
ờ carô, cờ t
ư
ớng, cờ vua,
x
ếp h
ình, …
3
X
ếp lịch biểu
thi đ
ấu, thời khóa
bi
ểu, hội
ngh
ị, …
4
Xét tuy
ển
nhân s
ự, học sinh lớp 10…
5
Bình ch

ọn
S
ản phẩm, cầu thủ, …
6
Qu
ản lý học sinh
M
ầm non, trung học, trung
tâm…
7
Bán hàng
thu
ốc tây, vật liệu xây dựng,
máy tính
8
Qu
ản lý thu
ê bao
đi
ện, điện thoại, n
ư
ớc, …
9
Cho mư
ợn
sách
, truy
ện, phim, …
B
ảng 1.1

: Các ph
ần mềm v
à l
ớp phần mềm t
ương
ứng
1.1.2.
Phân lo
ại
Ph
ần mềm hệ thống l
à nh
ững phần mềm đảm nhận công
vi
ệc tích hợp v
à đi
ều khiển các thiết bị phần cứng đồng thời
t
ạo ra môi tr
ư
ờng thuận lợi để các phần mềm khác v
à ngư
ời sử
d
ụng
có th
ể thao tác tr
ên đó như m
ột khối thống nhất m
à

không c
ần phải quan tâm đến những chi tiết kỹ thuật phức tạp
bên dư
ới nh
ư cách th
ức trao đổi dữ liệu giữa bộ nhớ chính v
à
đ
ĩa, cách hiển thị văn bản l
ên màn hình,
Ph
ần mềm ứng dụng l
à nh
ững phần mềm đ
ư
ợc d
ùng đ

th
ực hiện một công việc xác định n
ào đó. Ph
ần mềm ứng dụng
có th
ể chỉ gồm một ch
ương tr
ình
đơn gi
ản nh
ư chương tr
ình

-
3
-
xem
ảnh, hoặc một nhóm các ch
ương tr
ình cùng t
ương tác v
ới
nhau đ
ể thực hiện một công vịệc n
ào đó như chương tr
ình x

lý b
ản tín
h, chương tr
ình x
ử lý văn bản,
1.1.3.
Ki
ến trúc phần mềm
Sau khi đ
ã có các khái niêm c
ơ b
ản nhất về phần mềm,
ti
ếp sau đây chúng ta sẽ đi sâu v
ào tìm hi
ểu cấu trúc chi tiết

các c
ấu trúc chi tiết các th
ành ph
ần b
ên trong ph
ần mềm. Phần
m
ềm bao gồm 3 th
ành ph
ần
:
a)
Thành ph
ần giao tiếp (giao diện)
Cho phép ti
ếp nhận các y
êu c
ầu về việc muốn thực hiện
và cung c
ấp các dữ liệu nguồn li
ên quan đ
ến công việc đó
ho
ặc từ các thiết bị thu thập dữ liệu (cân, đo nhiệt độ, tế b
ào
quang h
ọc, …)
Cho phép trình bày các k
ết quả
c

ủa việc thực hiện các
yêu c
ầu cho ng
ư
ời d
ùng (k
ết quả của công việc khi thực hiện
trên máy tính) ho
ặc điều khiển họat động các thiết bị điều
khi
ển (đóng mở cửa, bật mở máy…)
M
ột cách tổng quát th
ành ph
ần giao tiếp l
à h
ệ thống các
hàm chuyên v
ề việc nhập/x
u
ất dữ liệu (h
àm nh
ập/xuất) c
ùng
v
ới h
ình th
ức tr
ình bày và t
ổ chức l

ưu tr
ữ dữ liệu t
ương
ứng,
m
ục ti
êu chính c
ủa các h
àm này là đưa d
ữ liệu từ thế giới b
ên
ngoài ph
ần mềm v
ào bên trong ho
ặc ng
ư
ợc lại.
Trong ph
ạm vi giáo tr
ình này ch
ỉ giới hạn xét đến giao
ti
ếp với ng
ư
ời sử dụng phần mềm v
à khi đó có tên g
ọi cụ thể
hơn là thành ph
ần giao diện.
b)

Thành ph
ần dữ liệu
Cho phép lưu tr
ữ lại (h
àm ghi) các k
ết quả đ
ã x
ử lý (việc

ợn sách đ
ã
đư
ợc kiểm tra hợp lệ, bảng l
ương tháng đ
ã
đư
ợc
-
4
-
tính) trên b
ộ nhớ phụ với tổ
ch
ức l
ưu tr
ữ đ
ư
ợc xác định tr
ư
ớc

(t
ập tin có cấu trúc, tập tin nhị phân, c
ơ s
ở dữ liệu).
Cho phép truy xu
ất lại (h
àm đ
ọc) các dữ liệu đ
ã l
ưu tr

ph
ục vụ cho các h
àm x
ử lý t
ương
ứng.
M
ột cách tổng quát th
ành ph
ần dữ liệu l
à h
ệ thống các
hàm chuyên v
ề đọc gh
i d
ữ liệu (h
àm đ
ọc/ghi) c
ùng v

ới mô
hình t
ổ chức dữ liệu t
ương
ứng. Mục ti
êu chính c
ủa các h
àm
này là chuy
ển đổi dữ liệu giữa bộ nhớ chính v
à b
ộ nhớ phụ.
c)
Thành ph
ần xử lý
Ki
ểm tra tính hợp lệ của các dữ liệu nguồn đ
ư
ợc cung
c
ấp từ ng
ư
ời d
ùng theo các quy t
rình ràng bu
ộc trong thế giới
th
ực (chỉ cho m
ư
ợn tối đa 3 quyển sách, mỗi lớp học có tối đa

50 h
ọc sinh, …)
Ti
ến h
ành x
ử lý cho ra kết quả mong đợi theo quy định
tính toán có s
ẵn trong thế giới thực (quy tắc tính tiền phạt khi
tr
ả sách trễ, quy tắc tính ti
ền điện, quy tắc trả góp khi mua
nhà…) ho
ặc theo thuật giải tự đề xuất (xếp thời khóa biểu tự
đ
ộng, nén ảnh…)
Vi
ệc xử lý dựa tr
ên d
ữ liệu nguồn từ ng
ư
ời sử dụng
cung c
ấp (tính nghiệm ph
ương tr
ình b
ậc 2 dựa tr
ên các h
ệ số
đ
ã nh

ập) hoặc dữ liệu l
ưu tr
ữ đ
ã có
s
ẵn (tính tồn kho tháng dựa
trên các phi
ếu nhập xuất đ
ã l
ưu tr
ữ…) hoặc cả hai (tính tiền
ph
ạt dựa tr
ên ngày tr
ả sách đ
ư
ợc nhập v
ào và thông tin v
ề loại
sách đ
ã
đư
ợc l
ưu tr
ữ…) t
ùy vào x
ử lý cụ thể. T
ương t
ự, việc
x

ử lý cho ra kết quả có thể d
ùng đ
ể xuất ch
o ngư
ời d
ùng xem
qua thành ph
ần giao diện (tr
ình bày nghi
ệm, xuất tiền phạt),
hay cùng có th
ể l
ưu tr
ữ lại qua th
ành ph
ần dữ lị
êu (s
ổ sách
-
5
-
hi
ện đang đ
ư
ợc m
ư
ợn của một độc giả…) hoặc cả hai (bảng
lương, b
ảng tồn kho…)
M

ột cách tổng quát, th
ành ph
ần xử lý
là h
ệ thống các
hàm chuyên v
ề xử lý tính toán, biến đổi dữ liệu. Các h
àm này
s
ẽ d
ùng d
ữ liệu nguồn từ các h
àm trong thành ph
ần giao diện
(hàm nh
ập) hay th
ành ph
ần dữ liệu (h
àm đ
ọc dữ liệu) kiểm tra
tính h
ợp lệ (h
àm ki
ểm tra) v
à sau đó ti
ến h
ành x
ử lý (h
àm
x


lý) n
ếu cần thiết để cho ra kết quả m
à s
ẽ đ
ư
ợc tr
ình bày cho
ngư
ời d
ùng xem qua các hàm trong thành ph
ần giao diện (h
àm
xu
ất) hoặc l
ưu tr
ữ lại qua các h
àm trong thành ph
ần dữ liệu
(hàm ghi).
B
ảng 1.2
: Danh sách các hàm cùng
ý ngh
ĩa t
ương
ứng
STT
Thà
nh

ph
ần
Hàm
Ý ngh
ĩa
Ghi chú
1
Thành
ph
ần
giao
di
ện
Hàm nh
ập
Hàm xu
ất
Nh
ập y
êu c
ầu,
d
ữ liệu nguồn.
Xu
ất kết quả
đ
ã x
ử lý
C
ần xác định

hình th
ức nhập/
xu
ất v
à t
ổ chức
d
ữ liệu t
ương
ứng
2
Thành
ph
ần xử

Hàm ki
ểm
tra
Hàm x
ử lý
Ki
ểm tra tính
h
ợp lệ của dữ
li
ệu.
X
ử lý tính
toán, phát
sinh, bi

ến đổi
trên d
ữ liệu
S
ử dụng h
àm
nh
ập, h
àm đ
ọc.
S
ử dụng h
àm
nh
ập, h
àm đ
ọc,
hàm xu
ất, h
àm
ghi
3
Thành
ph
ần dữ
li
ệu
Hàm đ
ọc
Hàm ghi

Đ
ọc dữ liệu từ
b
ộ nhớ phụ
vào b
ộ nhớ
chính.
Ghi d
ữ liệu từ
b
ộ nhớ chính
C
ần
xác đ
ịnh
cáchh th
ức tổ
ch
ức l
ưu tr
ữ dữ
li
ệu
-
6
-
vào b
ộ nhớ
ph


1.2.
Ch
ất l
ư
ợng phần mềm
1.2.1.
Tính đúng đ
ắn
Tính đúng đ
ắn của phần mềm đ
ư
ợc thể hiện ở chổ sản
ph
ẩm đó thực hiện đầy đủ v
à chính xác các yêu c
ầu của ng
ư
ời
dùng. Tính đúng đ
ắn ở đây cần phải hiểu theo nghĩa rộng l
à
chươn
g trình c
ần phải thực hiện đ
ư
ợc trong cả những tr
ư
ờng
h
ợp m

à d
ữ liệu đầu v
ào là không h
ợp lệ.
Ví d
ụ, nếu một trong số các chức năng của phần mềm l
à
s
ắp xếp một tập tin có số l
ư
ợng mẫu tin t
ùy ý theo m
ột cột t
ùy
ý theo chi
ều tăng hoặc giảm th
ì nh
ững tr
ư
ờng
h
ợp sau l
à vi
ph
ạm tính đúng đắn của ch
ương tr
ình:

Không th
ể thực hiện đ

ư
ợc (treo máy) khi tập tin
r
ỗng (không có mẫu tin n
ào).

Không th
ể thực hiện hoặc thực hiện nh
ưng cho k
ết
qu
ả sai khi các mẫu tin có h
ơn 100 c
ột hoặc có quá
nhi
ều mẫu tin.

Không th
ể t
h
ực hiện hoặc cho kết quả sai khi các
c
ột có chiều d
ài l
ớn h
ơn 125 bytes.

Không th
ể sắp xếp theo chiều tăng dần….
Tính đúng đ

ắn của một sản phẩm phần mềm đ
ư
ợc xác
minh qua các căn c
ứ sau đây:

Tính đúng đ
ắn của thuật toán.

Tính tương đương c
ủa ch
ương tr
ình
v
ới thuật toán.
Thu
ật toán có thể đúng nh
ưng chương tr
ình l
ập ra
không tương đương v
ới thuật toán n
ên khi th
ực
hi
ện sẽ cho kết quả sai.

Tính đúng đ
ắn của ch
ương tr

ình có th
ể đ
ư
ợc chứng
minh tr
ực tiếp trong văn bản của ch
ương tr
ình.
-
7
-

Tính đúng đ
ắn cũng có th
ể đ
ư
ợc khẳng định dần
qua vi
ệc kiểm thử, việc áp dụng ch
ương tr
ình trong
m
ột khoảng thời gian d
ài trên di
ện rộng v
à v
ới tần
su
ất sử dụng cao.
1.2.2.

Tính ti
ến hóa
Cho phép ngư
ời d
ùng có th
ể khai báo các thay đổi về
qui đ
ịnh với phần mềm t
ùy theo các thay đ
ổi tron
g th
ế giới
th
ực li
ên quan (thay qui đ
ịnh về số sách m
ư
ợn tối đa, công
th
ức tính tiền phạt, công thức tính tiền điện…)
S
ản phẩm có thể mở rộng, tăng c
ư
ờng về mặt chức năng
m
ột cách dễ d
àng.
1.2.3.
Tính hi
ệu quả

Tính hi
ệu quả của một sản phẩm phần mềm đ
ư
ợc xác
đ
ịnh
qua các tiêu chu
ẩn sau:

Hi
ệu quả kinh tế hoặc ý nghĩa, giá trị thu đ
ư
ợc do
áp d
ụng sản phẩm đó.

T
ốc độ xử lý của phần mềm (v) tính bằng tỉ lệ giữa
kh
ối l
ư
ợng đối t
ư
ợng cần phải xử lý (m) v
à t
ổng
th
ời gian (t) cần thiết để xử lý các đối t
ư
ợng đó.


S
ử dụng t
ối
ưu tài nguyên c
ủa máy tính (CPU, bộ
nh
ớ…)
1.2.4.
Tính ti
ện dụng
S
ản phẩm phải tính đến những yếu tố tâm lý sau đây của
ngư
ời d
ùng:

D
ễ học, có giao diện trực quan tự nhi
ên.

D
ễ thao tác,…
-
8
-
1.2.5.
Tính tương thích
Trao đ
ổi dữ liệu với các phần mềm khác có li

ên quan
(nh
ận
danh m
ục sách từ tập tin Excel, gửi báo cáo tổng kết
năm h
ọc đến phần mềm WinFax, …)

Giao ti
ếp nội bộ

Giao ti
ếp b
ên ngoài
1.2.6.
Tính tái s
ử dụng
S
ản phẩm phần mềm có thể áp dụng cho nhiều lĩnh vực
theo nhi
ều chế độ l
àm vi
ệc khác nhau.

Các ph
ần mềm c
ùng l
ớp

Các

ph
ần mềm khác lớp
1.3.
Công ngh
ệ phần mềm
1.3.1.
S
ự ra đời
Vào nh
ững năm 1950 khi máy tính ra đời chính thức
(không ch
ỉ đ
ư
ợc d
ùng trong các phòng thí nghi
ệm m
à b
ắt đầu
ứng dụng trong họat động x
ã h
ội) các phần mềm đầu ti
ên c
ũng
đư
ợc ra đời với số l
ư
ợng c
òn r
ất ít ỏi v
à ch

ủ yếu phục vụ cho
l
ĩnh vực tính toán (đặc biệt trong quốc ph
òng).
Đ
ến những năm 1960, tr
ãi qua 10 n
ăm phát tri
ển số

ợng các phần mềm đ
ã t
ăng lên r
ất nhiều v
à đư
ợc ứng dụng
r
ộng r
ãi trong nhi
ều lĩnh vực. V
ào th
ời điểm n
ày phát sinh m
ột
v
ấn đề m
à các c
huyên gia g
ọi l
à “cu

ộc khủng hoảng phần
m
ềm”. Cuộc khủng hoảng phần mềm thể hiện 2 yếu tố chính:
-
S
ố l
ư
ợng các phần mềm tăng vọt (do sự phát triển của
ph
ần cứng: tăng khả năng, giá th
ành h
ạ)
-
Có quá nhi
ều khuyết điểm trong các phần mềm đ
ư
ợc d
ùng
trong xã h
ội
-
9
-
o
Th
ực hiện không đúng y
êu c
ầu (tính toán sai,
không
ổn định…)

o
Th
ời gian bảo tr
ì, nâng c
ấp quá lâu, tốn chi phí cao,
hi
ệu quả thấp.
o
Khó s
ử dụng
o
Th
ực hiện chậm
o
Khó chuy
ển đổi dữ liệu giữa các phần mềm
o

Đ
ể giải quyết vấn đề tr
ên m
ột hội nghị đ
ã
đư
ợc triệu
t
ập
đ
ề b
àn v

ề cách giải quyết. Hội nghị đ
ã ti
ến h
ành xem xét, phân
tích và xác đ
ịnh nguy
ên nhân gây ra cu
ộc khủng hoảng phần
m
ềm. Kết luận nh
ư sau:
-
Vi
ệc tăng vọt của số l
ư
ợng phần mềm l
à đi
ều hợp lý v
à
đi
ều n
ày s
ẽ c
òn ti
ếp diễn.
-
Các khuy
ết điểm của phần mề
m có ngu
ồn gốc chính từ

phương pháp, cách th
ức tiến h
ành xây d
ựng phần mềm:
o
C
ảm tính: mỗi ng
ư
ời theo một ph
ương pháp riêng.
o
Thô sơ, đơn gi
ản: chỉ tập trung v
ào vi
ệc lập tr
ình
mà ít quan tâm đ
ến các công việc cần l
àm khác
trư
ớc khi lập tr
ình (kh
ảo sát hiện
tr
ạng, phân tích
yêu c
ầu, thiết kế…).
o
Th
ủ công: công cụ hỗ trợ chính khi xây dựng phần

m
ềm chỉ l
à trình biên d
ịch.
V
ới các kết luận nh
ư trên, h
ội nghị đ
ã
đ
ề xuất khai sinh
m
ột ng
ành khoa h
ọc mới: Công nghệ phần mềm với nhiệm vụ
chính là nghiên c
ứu về các p
hương pháp ti
ến h
ành xây d
ựng
ph
ần mềm.
1.3.2.
Đ
ịnh nghĩa
Công ngh
ệ phần mềm l
à m
ột lĩnh vực nghi

ên c
ứu của tin
h
ọc nhằm đề xuất các nguy
ên lý, ph
ương pháp, công c
ụ, cách
-
10
-
ti
ếp cận phục vụ cho việc thiết kế, c
ài đ
ặt các sản phẩm phần
m
ềm đạt đ
ư
ợc đầy đủ các y
êu c

u v
ề chất l
ư
ợng phần mềm.
Do quá trình ti
ến hóa của ng
ành công ngh
ệ phần mềm
nên khái ni
ệm về nó cũng thay đổi theo thời gian. H

ơn n
ữa do
đây là m
ột lĩnh vực mới n
ên các khái ni
ệm vẫn c
òn ph
ụ thuộc
r
ẩt nhiều v
ào quan đi
ểm chủ quan của từng ng
ư
ời khác nhau.
C
ụ thể nh
ư sau:
-
Bauer[1969]: vi
ệc thiết lập v
à s
ử dụng các nguy
ên lý
công ngh
ệ đúng đắn để thu đ
ư
ợc phần mềm một cách
kinh t
ế vừa tin cậy vừa l
àm vi

ệc hiệu quả tr
ên các
máy th
ực.
-
Ghezzi[1991]: là m
ột lĩnh vực của khoa học máy tính
liên quan đ
ến việc xây d
ựng các phần mềm vừa lớn
v
ừa phức tạp bởi một hay một số nhóm kỹ s
ư.
-
IEEE[1993]:
1.
Vi
ệc áp dụng ph
ương pháp ti
ếp cận có hệ
th
ống, b
ài b
ản v
à đư
ợc l
ư
ợng hóa trong phát
tri
ển, vận h

ành và b
ảo tr
ì ph
ần mềm.
2.
Nghiên c
ứu các ph
ương pháp ti
ếp cận đ
ư
ợc
dùng trong (1
).
-
Sommervile[1995]: là l
ĩnh vực li
ên quan đ
ến lý
thuy
ết, ph
ương pháp và công c
ụ d
ùng cho phát tri
ển
ph
ần mềm.
-
Kawamura[1995]: là l
ĩnh vực học vấn về các kỹ
thu

ật, ph
ương pháp lu
ận công nghệ học (lý luận v
à
k
ỹ thuật đ
ư
ợc hiện thực hóa tr
ên các nguyên lý,
n
guyên t
ắc xác định) trong to
àn b
ộ quy tr
ình phát
tri
ển phần mềm nhằm nâng cao cả chất v
à lư
ợng của
s
ản xuất phần mềm.
-
11
-
-
Pressman[1995]: là b
ộ môn tích hợp cả qui tr
ình, các
phương pháp, các công c
ụ để phát triển phần mềm

máy tính.
Có th
ể định nghĩa tóm tắt v
ề công nghệ phần mềm nh
ư
sau: Công ngh
ệ phần mềm l
à m
ột ngh
ành khoa h
ọc nghi
ên
c
ứu về việc xây dựng các phần mềm có chất l
ư
ợng trong
kho
ảng thời gian v
à chi phí h
ợp lý.
M
ục ti
êu nghiên c
ứu đ
ư
ợc chia th
ành 2 ph
ần r
õ nét:
1.

Xây d
ựng phần mềm có chất l
ư
ợng.
2.
Xây
d
ựng phần mềm trong thời gian v
à chi phí h
ợp lý.
1.3.3.
Đ
ối t
ư
ợng nghi
ên c
ứu

ớng đến việc xây dựng các phần mềm có chất l
ư
ợng
như đ
ã nêu, ngành công ngh
ệ phần mềm đ
ưa ra 3 đ
ối t
ư
ợng
nghiên c
ứu chính: Qui tr

ình công ngh
ệ, Ph
ương pháp phát
tri
ển, Công cụ v
à môi
trư
ờng phát triển phần mềm.
-
Qui trình công ngh
ệ phần mềm: Hệ thống các giai đoạn m
à
quá trình phát tri
ển phần mềm phải tr
ãi qua. V
ới mỗi giai
đo
ạn cần xác định r
õ m
ục ti
êu, k
ết quả nhận từ giai đoạn
trư
ớc đó cũng chính l
à k
ết quả chuyển giao cho giai đoạn
k
ết tiếp.
-
Phương pháp phát tri

ển phần mềm: Hệ thống các h
ư
ớng
d
ẫn cho phép từng b
ư
ớc thực hiện một giai đoạn n
ào đó
trong qui trình công ngh
ệ phần mềm.
-
Công c
ụ v
à môi trư
ờng phát triển phần mềm: Hệ thống
các ph
ần mềm trợ giúp chính trong lĩnh vực xây dựn
g
ph
ần mềm. Các phần mềm n
ày s
ẽ hỗ trợ các chuy
ên viên
tin h
ọc trong các b
ư
ớc xây dựng phần mềm theo một
phương pháp nào đó v
ới một qui tr
ình

đư
ợc chọn tr
ư
ớc.
-
12
-
2.
QUI TRÌNH CÔNG NGH
Ệ PHẦN MỀM
Như đ
ã nói
đ
ể xây dựng đ
ư
ợc phần mềm có chất l
ư
ợng
quá trình phát t
ri
ển phải tr
ãi qua r
ất nhiều giai đoạn. Mỗi giai
đo
ạn có mục ti
êu và k
ết quả chuyển giao xác định. Tr
ình t

th

ực hiện các giai đoạn n
ày chính là chu k
ỳ sống của một phần
m
ềm.
Nói cách khác, chu k
ỳ sống của một phần mềm l
à
kho
ảng thời gian m
à trong đó m
ột s
ản phẩm phần mềm đ
ư
ợc
phát tri
ển, sử dụng v
à m
ở rộng cho đến khi sản phẩm phần
m
ềm đó không c
òn
đư
ợc sử dụng nữa.
Chu k
ỳ sống của phần mềm đ
ư
ợc phân chia đ
ư
ợc phân

chia thành các pha chính như: xác đ
ịnh, phát triển, kiểm thử,
b
ảo tr
ì (v
ận h
ành). Ph
ạm vi v
à
th
ứ tự các pha khác nhau t
ùy
theo t
ừng mô h
ình c
ụ thể.
2.1.
Các bư
ớc c
ơ b
ản trong xây dựng phần mềm
2.1.1.
Xác đ
ịnh
Đây là bư
ớc h
ình thành bài toán ho
ặc đề t
ài.
Ở b

ư
ớc n
ày
thi
ết kế tr
ư
ởng hoặc phân tích vi
ên h
ệ thống phải biết đ
ư
ợc vai
trò c
ủa phần mềm cần phát triển
trong h
ệ thống, đồng thời
ph
ải
ư
ớc l
ư
ợng công việc, lập lịch biểu v
à phân công công
vi
ệc.
Bên c
ạnh đó chúng ta phải biết ng
ư
ời đặt h
àng mu
ốn g

ì.
Các yêu c
ầu cần phải đ
ư
ợc thu thập đầy đủ v
à đư
ợc phân tích
theo chi
ều ngang (rộng) v
à chi
ều dọc (sâu). Công
c
ụ sử dụng
ch
ủ yếu ở giai đoạn n
ày là các lư
ợc đồ, s
ơ đ
ồ phản ánh r
õ các
thành ph
ần của hệ thống v
à m
ối li
ên quan gi
ữa chúng với
nhau.
-
13
-

2.1.2.
Phát tri
ển
D
ựa v
ào các n
ội dung đ
ã xác
đ
ịnh đ
ư
ợc, nhóm phát triển
ph
ần mềm d
ùng ngôn ng
ữ đặc tả h
ình th
ức (dựa tr
ên các k
i
ến
trúc toán h
ọc) hoặc phi h
ình th
ức (tựa ngôn ngữ tự nhi
ên) ho
ặc
k
ết hợp cả hai để mô tả những yếu tố sau đây của ch
ương

trình:

Giá tr
ị nhập, giá trị xuất.

Các phép bi
ến đổi

Các yêu c
ầu cần đạt đ
ư
ợc ở mỗi điểm của ch
ương
trình.
Ph
ần đặc tả chỉ quan tâm c
h
ủ yếu đến giá trị v
ào, ra ch

không quan tâm đ
ến cấu trúc v
à n
ội dung các thao tác cần thực
hi
ện.
Sau bư
ớc thiết kế l
à bư
ớc triển khai các đặc tả ch

ương
trình thành m
ột sản phẩm phần mềm dựa tr
ên m
ột ngôn ngữ
l
ập tr
ình c
ụ thể. Trong giai đoạn n
ày các l
ập
trình viên s
ẽ tiến
hành cài đ
ặt các thao tác cần thiết để thực hiện đúng các y
êu
c
ầu đ
ã
đư
ợc đặc tả.
Công vi
ệc cuối c
ùng c
ủa giai đoạn phát triển l
à chúng ta
c
ần phải chứng minh tính đúng đắn của ch
ương tr
ình sau khi

đ
ã ti
ến h
ành cài đ
ặt. Tuy nhi
ên thông t

ờng ở b
ư
ớc n
ày
chúng ta coi các chương tr
ình nh
ư nh
ững hộp đen. Vấn đề đặt
ra là xây d
ựng một cách có chủ đích các tập dữ liệu nhập khác
nhau đ
ể giao cho ch
ương tr
ình th
ực hiện rồi dựa v
ào k
ết quả
thu đư
ợc để đánh giá ch
ương tr
ình. Công vi
ệc nh
ư trên đư


c
g
ọi l
à ki
ểm thử ch
ương tr
ình.
Công vi
ệc kiểm thử nhằm v
ào các m
ục ti
êu sau:

Ki
ểm tra để phát hiện lỗi của ch
ương tr
ình. L
ưu
ý
r
ằng kiểm thử không đảm bảo tuyệt đối tính đúng
-
14
-
đ
ắn của ch
ương tr
ình do b
ản chất quy nạp không

hoàn toàn c
ủa cách l
àm.

Ki
ểm tra
tính
ổn định, hiệu quả cũng nh
ư kh
ả năng
t
ối đa của ch
ương tr
ình.
Tùy theo m
ục đích m
à ngư
ời ta thiết kế các tập dữ liệu
th
ử sao cho có thể phủ hết các tr
ư
ờng hợp cần quan tâm.
2.1.3.
B
ảo tr
ì (V
ận h
ành)
Công vi
ệc quản lý việc triển khai v

à s
ử dụng phần mềm
c
ũng l
à m
ột vấn đề cần đ
ư
ợc quan tâm trong qui tr
ình phát
tri
ển phần mềm. Trong quá tr
ình xây d
ựng phần mềm, to
àn b

các k
ết quả phần tích, thiết kế, c
ài đ
ặt v
à h
ồ s
ơ liên quan c
ần
ph
ải đ
ư
ợc l
ưu tr
ữ v
à qu

ản lý cẩn thận nhằm đảm bảo cho công
vi
ệc đ
ư
ợc tiến h
ành m
ột cách hiệu quả nhất v
à ph
ục vụ cho
công vi
ệc bảo tr
ì ph
ần mềm về sau.
Như v
ậy công việc quản lý không chỉ dừng lại trong quá
trình xây d
ựng phần mềm m
à trái l
ại c
òn ph
ải đ
ư
ợc tiến h
ành
liên t
ục trong suốt quá tr
ình s
ống của nó.
2.2.
M

ột số mô h
ình tri
ển khai
xây d
ựng phần mềm
Có nhi
ều mô h
ình c
ận khác nhau để triển khai các b
ư
ớc
cơ b
ản trong quá tr
ình phát tri
ển phần mềm. Mỗi mô h
ình s

chia vòng
đ
ời của phần mềm theo một cách khác nhau nhằm
đ
ảm bảo qui tr
ình phát tri
ển phần mềm sẽ dẫn đến th
ành công.
Tron
g ph
ần tiếp theo của giáo tr
ình chúng ta s
ẽ t

ìm hi
ểu qua
các mô hình phát tri
ển phần mềm ti
êu bi
ểu nhất đang đ
ư
ợc áp
d
ụng.
2.2.1.
Mô hình thác n
ư
ớc:
Mô hình thác n
ư
ớc l
à m
ột trong những mô h
ình
đ
ầu ti
ên
và ph
ổ biến đ
ư
ợc áp dụng trong quá tr
ình phát tri
ển phần
m

ềm. Mô h
ình này chia quá trình phát tri
ển phần mềm th
ành
-
15
-
nh
ững giai đoạn tuần tự nối tiếp nhau. Mỗi giai đoạn sẽ có một
m
ục đích nhất định. Kết quả cuả giai đoạn tr
ư
ớc sẽ l
à thông tin
đ
ầu v
ào cho giai đo
ạn tiếp theo sau. T
ùy theo qui mô c
ủa phần
m
ềm cần ph
át tri
ển m
à mô hình thác n
ư
ớc sẽ có những biến
th
ể khác nhau nh
ư sau:


Qui trình 2 giai
đo
ạn: L
à qui trình
đơn gi
ản nhất. Theo
qui trình này vi
ệc phát triển phần mềm chỉ tr
ãi qua 2
giai đo
ạn:
o
Xác đ
ịnh y
êu c
ầu: Đ
ư
ợc tiến h
ành ngay khi có nhu
c
ầu về việc xây
d
ựng phần mềm.
-
M
ục ti
êu: Xác đ
ịnh chính xác các y
êu c

ầu đặt
ra cho ph
ần mềm sẽ xây dựng.
-
K
ết quả nhận: Thông tin về hoạt động của thế
gi
ới thực.
-
K
ết quả chuyển giao: Danh sách các y
êu c
ầu
(công vi
ệc sẽ thực hiện tr
ên máy tính) cùng v
ới
các thông tin miêu t
ả chi tiết về các y
êu c
ầu
(cách th
ức thực hiện trong thế giới thực).
o
L
ập tr
ình (cài
đ
ặt): Đ
ư

ợc tiến h
ành ngay sau khi
k
ết thúc việc xác định y
êu c
ầu.
-
M
ục ti
êu: T
ạo lập phần mềm mong muốn theo
yêu c
ầu.
-
K
ết quả nhận: Danh sách các y
êu c
ầu c
ùng các
thông tin
có liên quan.
-
K
ết quả chuyển giao: Ch
ương tr
ình ngu
ồn của
ph
ần mềm với cấu trúc c
ơ s

ở dữ liệu t
ương
ứng
(n
ếu cần thiết) v
à chương tr
ình th
ực hiện đ
ư
ợc
trên máy tính (chương tr
ình ngu
ồn đ
ã
đư
ợc
biên d
ịch)

Qui trình 3 giai
đo
ạn: L
à qui trình c
ải tiến của qui
trình
2 giai đo
ạn bằng cách bổ sung th
êm m
ột giai đoạn
-

16
-
trung gian m
ới giữa xác định y
êu c
ầu v
à l
ập tr
ình (có
s
ửa đổi)
o
Xác đ
ịnh y
êu c
ầu: đ
ư
ợc tiến h
ành ngay khi có nhu
c
ầu về việc xây dựng phần mềm.
-
M
ục ti
êu: Xác đ
ịnh chính xác các y
êu c
ầu đặt
ra cho ph
ần

m
ềm sẽ xây dựng.
-
K
ết quả nhận: Thông tin về hoạt động của thế
gi
ới thực.
-
K
ết quả chuyển giao: Danh sách các y
êu c
ầu
(công vi
ệc sẽ thực hiện tr
ên máy tính) cùng v
ới
các thông tin miêu t
ả chi tiết về các y
êu c
ầu
(cách th
ức thực hiện trong thế giới thực)
o
Thi
ế
t k
ế: Đ
ư
ợc tiến h
ành ngay sau khi k

ết thúc việc
xác đ
ịnh y
êu c
ầu.
-
M
ục ti
êu: Mô t
ả các th
ành ph
ần của phần mềm
(mô hình c
ủa phần mềm) tr
ư
ớc khi tiến h
ành
cài đ
ặt.
-
K
ết quả nhận: Danh sách các y
êu c
ầu v
à thông
tin liên quan.
-
K
ết quả chuyển giao:


Mô t
ả th
ành
ph
ần giao diện: các h
àm
nh
ập/xuất, cấu trúc dữ liệu nhập/xuất.

Mô t
ả th
ành ph
ần xử lý: các h
àm ki
ểm
tra x
ử lý.

Mô t
ả th
ành ph
ần dữ liệu: các h
àm đ
ọc/
ghi, t
ổ chức l
ưu tr
ữ tr
ên b
ộ nhớ phụ.

o
L
ập tr
ình (cài
đ
ặt): Đ
ư
ợc tiến h
ành ngay sau khi
k
ết thúc việc thiế
t k
ế.
-
M
ục ti
êu: T
ạo lập phần mềm theo y
êu c
ầu.
-
K
ết quả nhận: Mô h
ình ph
ần mềm
-
17
-
-
K

ết quả chuyển giao: Ch
ương tr
ình ngu
ồn của
ph
ần mềm với cấu trúc c
ơ s
ở dữ liệu t
ương
ứng
(n
ếu cần thiết) v
à chương tr
ình th
ực hiện đ
ư
ợc
trên máy tính (chương tr
ình ngu
ồn đ
ã
đư
ợc
biên d
ịch)

Qui trình 4 giai
đo
ạn: L
à qui trình c

ải tiến của qui tr
ình
phía trư
ớc bằng cách bổ sung th
êm m
ột giai đoạn mới
gi
ữa xác định y
êu c
ầu v
à thi
ết kế (có sửa đổi)
o
Xác đ
ịnh y
êu c
ầu: Đ
ư
ợc tiến h
ành ngay khi có nhu
c
ầu về việc xây dựng phần mềm.
-
M
ục ti
êu: Xác đ
ịnh chính xác các y
êu c
ầu đặt
ra cho ph

ần mềm sẽ xây dựng.
-
K
ết quả nhận: Thông tin về hoạt động của thế
gi
ới thực.
-
K
ết quả chuyển giao: Danh sách các y
êu c
ầu
(công vi
ệc sẽ thực hiện tr
ên máy tính) cùng v
ới
các thông tin miêu t
ả chi tiết về các y
êu
c
ầu
(cách th
ức thực hiện trong thế giới thực)
o
Phân tích: đư
ợc tiến h
ành ngay sau khi k
ết thúc
vi
ệc xác định y
êu c

ầu.
-
M
ục ti
êu: Mô t
ả lại thế giới thực thông qua các
mô hình (mô hình th
ế giới thực) tr
ư
ớc khi thiết
k
ế.
-
K
ết quả nhận: Danh sách các y
êu c
ầu c
ù
ng các
thông tin có liên quan.
-
K
ết quả chuyển giao:

Mô hình x
ử lý (hệ thống các công việc
trong th
ế giới thực c
ùng v
ới quan hệ

gi
ữa chúng)
-
18
-

Mô hình d
ữ liệu (hệ thống các loại
thông tin đư
ợc sử dụng trong thế giới
th
ực c
ùng v
ới quan hệ giữa chúng)

Các mô hì
nh khác (không gian, th
ời
gian, con ngư
ời…) nếu cần thiết.
o
Thi
ết kế: Đ
ư
ợc tiến h
ành ngay sau khi k
ết thúc việc
phân tích.
-
M

ục ti
êu: Mô t
ả các th
ành ph
ần của phần mềm
(mô hình c
ủa phần mềm) tr
ư
ớc khi tiến h
ành
cài đ
ặt.
-
K
ết quả nhận: Mô h
ình th
ế giới thực.
-
K
ết quả chuyển giao:

Mô t
ả th
ành ph
ần giao diện: các h
àm
nh
ập/xuất, cấu trúc dữ liệu nhập/xuất.

Mô t

ả th
ành ph
ần xử lý: các h
àm ki
ểm
tra x
ử lý.

Mô t
ả th
ành ph
ần dữ liệu: các h
àm
đ
ọc/ghi, tổ chức l
ưu tr
ữ tr
ên b
ộ nhớ
ph
ụ.
o
L
ập tr
ình (cài
đ
ặt): Đ
ư
ợc tiến h
ành

ngay sau khi
k
ết thúc việc thiết kế.
-
M
ục ti
êu: T
ạo lập phần mềm theo y
êu c
ầu
-
K
ết quả nhận: Mô h
ình ph
ần mềm
-
K
ết quả chuyển giao: Ch
ương tr
ình ngu
ồn của
ph
ần mềm với cấu trúc c
ơ s
ở dữ liệu t
ương
ứng
(n
ếu cần thiết) v
à chương tr

ình th
ực hiện đ
ư
ợc
trên máy t
ính (chương tr
ình ngu
ồn đ
ã
đư
ợc
biên d
ịch)

Qui trình 5 giai
đo
ạn: L
à qui trình c
ải tiến của qui tr
ình
phía trư
ớc bằng cách bổ sung th
êm m
ột giai đoạn mới
-
19
-
sau giai đo
ạn lập tr
ình nh

ằm tăng c
ư
ờng độ tin cậy của
ph
ần mềm.
o
Xác đ
ịnh y
êu c
ầu: Đ
ư
ợc tiến h
ành ngay
khi có nhu
c
ầu về việc xây dựng phần mềm.
-
M
ục ti
êu: Xác đ
ịnh chính xác các y
êu c
ầu đặt
ra cho ph
ần mềm sẽ xây dựng.
-
K
ết quả nhận: Thông tin về hoạt động của thế
gi
ới thực.

-
K
ết quả chuyển giao: Danh sách các y
êu c
ầu
(công vi
ệc sẽ thực hiện tr
ên máy tính) c
ùng v
ới
các thông tin miêu t
ả chi tiết về các y
êu c
ầu
(cách th
ức thực hiện trong thế giới thực)
o
Phân tích: đư
ợc tiến h
ành ngay sau khi k
ết thúc
vi
ệc xác định y
êu c
ầu.
-
M
ục ti
êu: Mô t
ả lại thế giới thực thông qua các

mô hình (mô hình th
ế giới thực) tr
ư
ớc khi
thi
ết
k
ế.
-
K
ết quả nhận: Danh sách các y
êu c
ầu c
ùng các
thông tin có liên quan.
-
K
ết quả chuyển giao:

Mô hình x
ử lý (hệ thống các công việc
trong th
ế giới thực c
ùng v
ới quan hệ
gi
ữa chúng)

Mô hình d
ữ liệu (hệ thống các loại

thông tin đư
ợc sử dụng trong th
ế giới
th
ực c
ùng v
ới quan hệ giữa chúng)

Các mô hình khác (không gian, th
ời
gian, con ngư
ời…) nếu cần thiết.
o
Thi
ết kế: Đ
ư
ợc tiến h
ành ngay sau khi k
ết thúc việc
phân tích.
-
20
-
-
M
ục ti
êu: Mô t
ả các th
ành ph
ần của phần mềm

(mô hình c
ủa phần mềm) tr
ư
ớc khi tiến h
à
nh
cài đ
ặt.
-
K
ết quả nhận: Mô h
ình th
ế giới thực.
-
K
ết quả chuyển giao:

Mô t
ả th
ành ph
ần giao diện: các h
àm
nh
ập/xuất, cấu trúc dữ liệu nhập/xuất.

Mô t
ả th
ành ph
ần xử lý: các h
àm ki

ểm
tra x
ử lý.

Mô t
ả th
ành ph
ần dữ liệu: các h
àm đ
ọc/
ghi, t
ổ chức l
ưu tr
ữ t
rên b
ộ nhớ phụ.
o
L
ập tr
ình (cài
đ
ặt): Đ
ư
ợc tiến h
ành ngay sau khi
k
ết thúc việc thiết kế.
-
M
ục ti

êu: T
ạo lập phần mềm theo y
êu c
ầu.
-
K
ết quả nhận: Mô h
ình ph
ần mềm.
-
K
ết quả chuyển giao: Ch
ương tr
ình ngu
ồn của
ph
ần mềm với cấu trúc c
ơ s
ở dữ liệu t
ương
ứng
(n
ếu
c
ần thiết) v
à chương tr
ình th
ực hiện đ
ư
ợc

trên máy tính (chương tr
ình ngu
ồn đ
ã
đư
ợc
biên d
ịch).
o
Ki
ểm thử: Đ
ư
ợc tiến h
ành ngay sau khi đ
ã có k
ết
qu
ả (từng phần) của việc lập tr
ình.
-
M
ục ti
êu: Tăng đ
ộ tin cậy của phần mềm.
-
K
ết quả nhận:

Danh sách yêu c
ầu.


Mô hình ph
ần mềm.

Ph
ần mềm.
-
K
ết quả chuyển giao: Phần mềm với độ tin cậy
cao (đ
ã tìm và s
ửa lỗi).
o
B
ảo tr
ì: Công vi
ệc của giai đoạn bao gồm việc c
ài
đ
ặt v
à v
ận h
ành ph
ần mềm trong thực tế.
-
21
-
-
M
ục ti

êu: đ
ảm bảo phần mềm vận h
ành t
ốt
-
K
ết quả nhận: phần mềm đ
ã
hoàn thàng
-
K
ết quả chuyển giao: các phản ánh của khách
hàng trong quá trình s
ử dụng phần mềm.
Nh
ận xét:
Mô hình thác n
ư
ớc giúp chúng ta có thể dễ d
àng phân
chia quá trình xây d
ựng phần mềm th
ành nh
ững giai đoạn
hoàn toàn đ
ộc lập nhau. Tuy nhi
ên, các
d
ự án lớn hiếm khi
tuân theo dòng ch

ảy tuần tự của mô h
ình vì th
ư
ờng phải lặp lại
các bư
ớc để nâng cao chất l
ư
ợng. H
ơn n
ữa, khách h
àng hi
ếm
khi tuyên b
ố hết các y
êu c
ầu trong giai đoạn phân tích.
Mô hình này c
ũng có một hạn chế l
à chúng ta r
ất khó
th
ực hiệ
n các thay đ
ổi một khi đ
ã th
ực hiện xong một giại
đo
ạn n
ào đó. Đi
ều n

ày làm cho vi
ệc xây dựng phần mềm rất
khó thay đ
ổi các y
êu c
ầu theo ý muốn của khách h
àng. Do đó,
phương pháp này ch
ỉ thích hợp cho những tr
ư
ờng hợp m
à
chúng ta đ
ã hi
ểu rất r
õ các yêu c
ầu
c
ủa khách h
àng.
Chú ý:
Mô hình thác n
ư
ớc có thể đ
ư
ợc cải tiến bằng
cách cho phép quay lui khi phát hi
ện lỗi trong giai đoạn phía
trư
ớc.

-
22
-
2.2.2.
Mô hình b
ản mẫu phần mềm
Tương t
ự nh
ư mô h
ình thác n
ư
ớc với bổ sung v
ào các
giai đo
ạn thực hiện phần mềm mẫu ngay khi
xác đ
ịnh y
êu c
ầu
nh
ằm mục ti
êu phát hi
ện nhanh các sai sót về y
êu c
ầu. Các
giai đo
ạn trong mô h
ình b
ản mẫu phần mềm có thể tiến h
ành

l
ặp đi lặp lại chứ không nhất thiết phải theo tr
ình t
ự nhất định.
Ngay sau khi giai đo
ạn xác định y
êu c
ầu, nh
à phát tri
ển
ph
ần mềm đ
ưa ra ngay m
ột bản thiết kế s
ơ b
ộ v
à ti
ến h
ành cài
đ
ặt bản mẫu đầu ti
ên và chuy
ển cho ng
ư
ời sử dụng. Bản mẫu
này ch
ỉ nhằm để mi
êu t
ả cách thức phần mềm hoạt động cũng
như cách ngư

ời sử dụng t
ương tác v
ới hệ thống.
Ngư
ời sử dụng sau khi xem xét s
ẽ phản hồi thông tin
c
ần thiết lại cho nh
à phát tri
ển. Nếu ng
ư
ới sử dụng đồng ý với
b
ản mẫu đ
ã
đưa th
ì ng
ư
ời phát triển sẽ tiến h
ành cài đ
ặt thực
s
ự. Ng
ư
ợc lại cả hai phải quay lại giai đoạn xác định y
êu c
ầu.
Công vi
ệc n
ày đư

ợc lặp lại li
ên t
ục cho đến khi
ngư
ời sử dụng
đ
ồng ý với các bản mẫu do nh
à phát tri
ển đ
ưa ra.
Như v
ậy đây l
à m
ột h
ư
ớng tiếp cận tốt khi các y
êu c
ầu
chưa r
õ ràng và khó
đánh giá đư
ợc tính hiệu quả của các thuật
toán. Tuy nhiên, mô hình này c
ũng có nh
ư
ợc điểm l
à tính c
ấu
trúc không cao
do đó khách hàng d

ễ mất tin t
ư
ởng.
-
23
-
2.2.3.
Mô hình xo
ắn ốc
Mô hình này chính là s
ự kết hợp của mô h
ình b
ản mẫu
thi
ết kế v
à mô hình thác n
ư
ớc đ
ư
ợc lặp lại nhiều lần. Ở lần lặp
ti
ếp theo hệ thống sẽ đ
ư
ợc t
ìm hi
ểu v
à xây d
ựng ho
àn thi
ện

hơn
ở lần lặp tr
ư
ớc đó.

m
ỗi lần lặp các y
êu c
ầu của ng
ư
ời sử dụng sẽ đ
ư
ợc
hi
ểu ng
ày càng rõ ràng h
ơn và các b
ản mẫu phần mềm cũng
ngày m
ột ho
àn thi
ện h
ơn. Ngoài ra
ở cuối mỗi lần lặp sẽ có
thêm công đo
ạn phân tích mức độ rủi ro để quyết định xem có
nên đi ti
ếp theo h
ư
ớng n

ày n
ữa
hay không.
-
24
-
Mô hình này phù h
ợpvới các hệ thống phần mềm lớn do
có kh
ả năng kiểm soát rủi ro ở từng b
ư
ớc tiến hóa. Tuy nhi
ên
v
ẫn ch
ưa đư
ợc sử dụng rộng r
ãi nh
ư mô h
ình thác n
ư
ớc hoặc
b
ản mẫu do đ
òi h
ỏi năng lực quản lý, năng lực phân tích rủi ro
cao.
3.
CÁC
PHƯƠNG PHÁP XÂY D

ỰNG PHẦN MỀM
3.1.
T
ổng quan
3.1.1.
Khái ni
ệm
Đ
ể tiến h
ành xây d
ựng một phần mềm, chúng ta có thể
áp d
ụng nhiều ph
ương pháp khác nhau. M
ỗi ph
ương pháp có
nh
ững
ưu và khuy
ết điểm ri
êng và phù h
ợp với từng loại phần
m
ềm cụ thể.
-
25
-
M
ỗi ph
ương pháp s

ẽ có nhữ
ng hư
ớng dẫn cụ thể các
công vi
ệc cần phải thực hiện trong từng giai đoạn trong quy
trình xây d
ựng phần mềm.
Bên c
ạnh đó mỗi ph
ương pháp c
ũng sẽ quy định những
cách th
ức khác nhau để tr
ình bày các k
ết quả thu đ
ư
ợc trong
quá trình xây d
ựng phần mềm. Những q
uy đ
ịnh n
ày có tính
ch
ất nh
ư là ngôn ng
ữ thống nhất để các th
ành viên tham gia
xây d
ựng phần mềm có thể trao đổi thông tin trong việc xây
d

ựng phần mềm.
3.1.2.
Phân lo
ại
Các phương pháp xây d
ựng phần mềm đ
ư
ợc chia l
àm 02
nhóm khác nhau d
ựa v
ào tính ch
ất của công
vi
ệc cần thực
hi
ện.

Phương pháp xây d
ựng:

Phương pháp hư
ớng chức năng

Phương pháp hư
ớng dữ liệu

Phương pháp hư
ớng đối t
ư

ợng

Phương pháp t
ổ chức quản lý

Xây d
ựng ph
ương án

T
ổ chức nhân sự

Ư
ớc l
ư
ợng rủi ro, chi phí

L
ập v
à theo dõi k
ế hoạch triển khai.
Trong
ph
ần tiếp theo của giáo tr
ình này, chúng ta ch

quan tâm đ
ến các ph
ương pháp xây d
ựng. Về ph

ương pháp t

ch
ức quản lý chúng ta có thể tham khảo trong giáo tr
ình
“Qu
ản lý dự án xây dựng các hệ thống thông tin”.

×