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

Bài giảng Kỹ nghệ phần mềm - ĐH Quốc gia Hà Nội

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 (913.01 KB, 107 trang )

Đại học quốc gia Hà Nội - Khoa công nghệ
Bộ môn công nghệ phần mềm
_________________________


PGS. Nguyễn Quốc Toản, PGS.TS. Nguyễn Văn Vỵ,
PGS.TS.Vũ Đức Thi, TS. Lê văn Phùng






Bài giảng
Kỹ nghệ phần mềm
(nhập môn)
















Hà Nội - 2000


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
1
Mở đầu


Sau 20 năm phát triển, kỹ nghệ phần mềm (SE-Software Engineering) đến nay đợc thừa
nhận là một bộ môn chính thống
nhng còn là một lĩnh vực tranh luận sôi nổi.

Trong ngành công nghiệp: ngời lập trình kỹ s phần mềm. Kỹ nghệ phần mềm (hay còn
gọi là công trình học phần mềm ) đợc xem nh là một tên gọi công việc. Các phơng pháp, công
cụ, thủ tục của SE đã đợc chấp nhận và ứng dụng thành công trong rất nhiều lĩnh vực ứng dụng
công nghiệp. Các nhà quản lý và chuyên gia công nghệ thông tin đều nhận ra nhu cầu về cách tiếp
cận có nguyên tắc hơn tới việc phát triển phần mềm .

Bản chất thực của cách tiếp cận SE vẫn còn cha đợc thống nhất, còn nhiều ý kiến trái
ngợc nhau. Phơng pháp tiếp cận của ngời thực hành: theo sát các hoạt động tổng quát đã đợc
thực hiện bất kể tới mô hình SE đã đợc chọn thay vì duy trì một quan điểm vòng đời chặt chẽ.


Các chủ đề quan tâm:



1. Vấn đề quản lý dự án phần mềm (tiến trình phát triển dự án phần mềm và việc quản lý nó)
2. Phân tích hệ thống và yêu cầu phần mềm (các vấn đề cơ bản trong phân tích, phơng pháp mô
hình hoá yêu cầu, các kí pháp, )
3. Thiết kế và cài đặt phần mềm (nhấn mạnh tới các định mức thiết kế cơ bản dẫn tới hệ thống chất
lợng cao và các phơng pháp thiết kế để chuyển một mô hình phân tích thành giải pháp phần
mềm)
4. Đảm bảo, kiểm chứng và duy trì tính toàn vẹn phần mềm (nhấn mạnh vào các hoạt động đợc
ứng dụng để đảm bảo chất lợng trong suốt tiến trình phần mềm )
5. Vai trò của tự động hoá (nhấn mạnh sự hỗ trợ của máy tính lên tiến trình phát triển phần mềm )

Quan tâm đến thiết kế : chủ đề 3
Quan tâm đến phơng pháp: cả 5 chủ đề
Quan tâm đến quản lý: chủ đề 1 và 4


Công trình học phần mềm không phải là chính việc sản sinh ra sản phẩm mà nó liên quan
đến việc sản sinh ra sản phẩm một cách hiệu quả.
Với những nguồn lực không hạn chế thì đa số các vấn đề phần mềm là giải quyết đợc.
Thử thách đối với kỹ s phần mềm là tạo ra phần mềm chất lợng cao với hạn chế về nguồn
lực và phải theo một lịch định trớc.


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
2





Chơng 1
Phần mềm và kỹ nghệ phần mềm 3




Chơng II
Đặc tả phần mềm 25




Chơng III
thiết kế phần mềm 52




hơng IV
Lập trình hiệu quả 84






Kỹ nghệ phần mềm
________________________________________________________________________


_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
3

Chơng 1
Phần mềm và kỹ nghệ phần mềm


I.1.Sự phát triển của phần mềm

.1.1.1.Quá trình tiến hoá của phần mềm
1.1.2.Các thách thức đối với phần mềm máy tính

1.2.Phần mềm

1.2.1.Mô tả về phần mềm
1.2.2.Các đặc trng phần mềm
1.2.3. Các thành phần của phần mềm

1.2 4 Việc ứng dụng phần mềm

1.3. Kỹ nghệ phần mềm

1.3.1. Định nghĩa
1.3.2. Mô hình Vòng đời cổ điển

1.3.3. Mô hình làm bản mẫu

1.3 4.Mô hình xoắn ốc


1.3.5. Kỹ thuật thế hệ thứ 4
1.3.6. Tổ hợp các khuôn cảnh

1.4. Các bớc tổng quát trong tiến trình kỹ nghệ phần mềm

1.4.1 Giai đoạn xác định
1.4.2. Giai đoạn phát triển
1.4.3. Giai đoạn bảo trì

I.5.Đánh giá tổng quát về chất lợng hệ thống


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
4
Chơng 1
Phần mềm và kỹ nghệ phần mềm


1980, trong tạp chí Business week, dòng tiêu đề "phần mềm - lực điều khiển mới hay phần
mềm đã vào một thời đại" đánh dấu chủ đề đáng quan tâm của các tạp chí báo hiệu cho một
cách hiểu mới về tầm quan trọng của phần mềm máy tính đem đến những cơ hội và thách thức
mới.
Phần mềm (SW) bây giờ đã vợt trội hơn phần cứng (HW): điều mấu chốt cho sự thành công
của nhiều hệ thống dựa trên máy tính


Phần mềm -nhân tố đánh giá sự khác biệt, điều này thể hiện ở chỗ:

. Tính đầy đủ và đúng thời hạn của thông tin do phần mềm cung cấp (và các CSDL liên quan)
khác biệt một công ty này với các đối thủ cạnh tranh
. thiết kế và " tính thân thiện con ngời" của sản phẩm phần mềm cũng làm khác biệt nó với các
sản phẩm cạnh tranh có cùng chức năng tơng tự khác. Sự thông minh và chức năng do phần
mềm đợc nhúng trong đó đa ra thờng làm khác biệt 2 sản phẩm tiêu thụ hay công nghiệp
tơng tự nhau

Nh vậy, chính phần mềm tạo ra sự khác biệt đó

I.1.Sự phát triển của phần mềm

Thách thức trớc những năm 1990: phát triển phần cứng nhằm giảm giá thành xử lý và lu
trữ dữ liệu. Ví dụ vào những năm 1980 tiến bộ trong vi điện tử: phát sinh năng lực tính toán mạnh,
giá thành thấp đáng kể
Thách thức trong những năm 1990: cải thiện chất lợng và giảm giá thành của các giải pháp
dựa trên máy tính - giải pháp đợc cài đặt bằng phần mềm
Khả năng lu trữ của phần cứng biểu thị cho tiềm năng tính toán. Còn phần mềm -một cơ
chế giúp chúng ta chế ngự và khai thác tiềm năng này

.1.1.1.Quá trình tiến hoá của phần mềm

1.Những năm đầu(từ 1950 đến 1960):
Phần cứng thay đổi liên tục, phần lớn đợc chuyên dụng cho ứng dụng đặc biệt.
Phần mềm đợc coi là nghệ thuật, cha có phơng pháp hệ thống. Phát triển phần mềm cha
đợc quản lý
Môi trờng phần mềm có tính cá nhân thiết kế -tiến trình không tờng minh, thờng
không có tài liệu.
Kết quả: Học đợc việc cài đặt hệ thống dựa trên máy tính, không học đợc mấy về kỹ nghệ

hệ thống máy tính

2.Thời kỳ trải rộng từ những năm 1960 đến cuối 1970:
- Hệ thống đa lập trình và đa ngời sử dụng khái niệm mới về tơng tác ngời máy. Kỹ thuật
tơng tác mở ra thế giới mới cho các ứng dụng và mức độ mới tinh vi cho cả phần mềm và phần
cứng


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
5
- Hệ thống thời gian thực: thu thập, phân tích và biến đổi dữ liệu từ nhiều nguồn khác
nhaukiểm soát đợc các tiến trình và sản xuất ra cái ra trong phần nghìn giây thay vì nhiều
phút
- Tiến bộ lu trữ trực tuyến thế hệ đầu tiên của hệ quản trị CSDL
- Số lợng các hệ thống dựa trên máy tính phát triển th viện phần mềm mở rộng phát sinh
số lợng lớn câu lệnh cần sửa chữa khi gặp lỗi, cần sửa đổi lại khi yêu cầu của ngời dùng
thay đổi hay phải thích nghi với những phần cứng mới vừa mua

bảo trì phần mềm .

3. Thời kỳ giữa những năm 1970 đến nay:
- Hệ thống phân bố (bao gồm nhiều máy tính, mỗi máy thực hiện một chức năng tơng tranh và
liên lạc với các máy khác) tăng độ phức tạp
- Mạng toàn cục và cục bộ, liên lạc số giải thông cao, tăng nhu cầu thâm nhập dữ liệu yêu cầu
lớn phát triển phần mềm
- Tiến bộ lớn và sử dụng phổ cập các bộ vi xử lý (ô tô, robot, lò vi sóng, thiết bị chẩn đoán

máu, ) máy tính cá nhân và các máy trạm để bàn
- Chi phí phần mềm có khuynh hớng > chi phí mua máy tính

4. Thời kỳ sau 1990 (Thời kỳ thứ t mới chỉ bắt đầu):
- Kỹ nghệ hớng sự vật là cách tiếp cận mới đang nhanh chóng thay thế nhiều cách tiếp cận phát
triển phần mềm truyền thống trong các lĩnh vực ứng dụng
- Hệ chuyên gia và phần mềm trí tuệ nhân tạo: chuyển từ phòng thí nghiệm thực tế
- Phần mềm mạng nơ ron nhân tạo: mở ra khả năng nhận dạng và thực hiện khả năng xử lý thông
tin kiểu con ngời


1.1.2.Các thách thức đối với phần mềm máy tính

Các thách thức đối với phần mềm máy tính gia tăng vì những nguyên nhân sau:

1. Sự tinh vi của phần cứng đã vợt quá khả năng của chúng ta để xây dựng phần mềm
đạt tới tiềm năng của phần cứng
2. Khả năng xây dựng các chơng trình mới không thể giữ cùng nhịp với nhu cầu có các
chơng trình mới
3. Khả năng bảo trì các chơng trình hiện có rất khó khăn vì thiết kế sơ sài, tài nguyên
không thích hợp

Tất cả các thách thức trên chấp nhận thực hành kỹ nghệ phần mềm



1.2.Phần mềm

1.2.1.Mô tả về phần mềm
Việc mô tả phần mềm trong sách giáo khoa có 1 trong những dạng sau:

-Các lệnh (chơng trình máy tính) khi đợc thực hiện thì đa ra hoạt động và kết quả mong
muốn
-Các cấu trúc dữ liệu làm cho chơng trình thao tác thông tin thích hợp
-Các tài liệu mô tả thao tác và cách dùng chơng trình
Nhận xét: cha đủ cần đa ra định nghĩa hình thức hơn


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
6

1.2.2.Các đặc trng phần mềm
Phần mềm là phần tử hệ thống logic cha không phải là hệ thống vật lý. Do đó phần
mềm có đặc trng khác biệt đáng kể với các đậc trng của phần cứng

1.Phần mềm đợc phát triển hay đợc kỹ nghệ hoá, nó không đợc chế tạo theo nghĩa cổ
điển:
thiết kế chế tạo sản phẩm tốt
HW:

chất lợng chất lợng


thiết kế sửa đổi sản phẩm tốt
SW:

chất lợng chất lợng


Hai quá trình này phụ thuộc vào con ngời
Chi phí phần mềm tập trung vào kỹ nghệ khái niệm xởng phần mềm khuyến cáo sử
dụng công cụ tự động

2.Phần mềm không "hỏng đi"
Phần mềm không cảm ứng đối với những khiếm khuyết môi trờng vốn gây cho phần cứng
bị mòn cũ đi






t t
Đờng cong hỏng hóc cho HW Đờng cong hỏng hóc cho SW (lý tởng)

Thực tế, phần mềm sẽ trải qua sự thay đổi (bảo trì). Khi thay đổi đợc thực hiện có thể là
một số khiếm khuyết mới sẽ đợc đa vào, gây ra cho đờng cong tỷ lệ hỏng hóc trở thành có đầu
nhọn nh trong hình vẽ dới đây. Trớc khi đờng cong đó có thể trở về tỷ lệ hỏng hóc ổn định ban
đầu thì một thay đổi khác lại đ
ợc yêu cầu, lại gây ra đờng cong phát sinh đỉnh nhọn một lần nữa.
Dần dần, mức tỷ lệ hỏng hóc tối thiểu bắt đầu nâng lên- phần mềm bị thoái hoá do sự thay đổi.








thời gian

Đờng cong hỏng hóc thực tế của phần mềm
Nhận xét:

Tỷ lệ
hỏng
chết
yểu
mòn cũ
g
iữ t

l

cho đến khi l

c h

u
Đờn
g
con
g
l
ý
tởn
g

t


lệ
hỏn
g

thay
đổi
Đ

n
g

co
n
g

t
h
ực

tế

Đ

n
g

co
n
g

l
ý

tở
n
g



Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
7
Phần cứng hỏng có "vật t thay thế", nhng không có phần mềm thay thế cho phần mềm .
Mọi hỏng hóc phần mềm đều chỉ ra lỗi trong thiết kế hay trong tiến trình chuyển thiết kế thành mã
máy thực hiện đợc. Do đó, việc bảo trì phần mềm bao gồm độ phức tạp phụ thêm đáng kể so với
bảo trì phần cứng.

3.Phần lớn phần mềm đều đợc xây dựng theo đơn đặt hàng, chứ ít khi đợc lắp ráp từ các
thành phần có sẵn

Cách thiết kế và xây dựng phần cứng điều khiển cho một sản phẩm dựa trên bộ vi xử lý: vẽ
sơ đồ mạch số thực hiện phân tích để đảm bảo chức năng đúng phân loại các danh mục thành
phần gắn cho mỗi mạch tích hợp (thờng gọi là "IC" hay "chip") một số hiệu một chức năng đã
định và hợp lệ, một giao diện đã xác định rõ, một tập các hớng dẫn tích hợp chuẩn hoá

Phần mềm: -Không có danh mục các thành phần
-Đặt hàng với đơn vị hoàn chỉnh, không phải là những thành phần có thể đợc

lắp ráp lại thành chơng trình mới.


1.2.3. Các thành phần của phần mềm

Phần mềm máy tính (gọi tắt là phần mềm ) là thông tin tồn tại dới 2 dạng cơ sở: thành
phần máy không thực hiện đợc và các thành phần máy thực hiện đợc. ở đây chỉ xét những thành
phần phần mềm trực tiếp đa tới các lệnh máy thực hiện đợc
Mọi thành phần phần mềm đều bao gồm một cấu hình
Thành phần phần mềm đợc tạo ra thông qua một loạt những hoạt động chuyển hoá
(translation) yêu cầu của ngời dùng thành mã máy thực hiện đợc: một mô hình yêu cầu (hay bản
mẫu) dịch thiết kế dịch dạng ngôn ngữ xác định cấu trúc dữ liệu, thuộc tính, thủ tục
phần mềm, các yêu cầu liên quan dịch lệnh mã máy thực hiện đợc
Tính tái dụng là một đặc trng quan trọng của thành phần phần mềm chất lợng cao, tức là
thành phần cần đợc thiết kế và cài đặt sao cho ngời ta có thể dùng lại chúng trong nhiêù chơng
trình khác nhau (th viện chơng trình con mẫu về khoa học)
Chú ý: ngày nay đã mở rộng cách nhìn về việc dùng lại để bao hàm không chỉ các thuật toán
mà còn cả cấu trúc dữ liệu. Ví dụ: các giao diện tơng tác thờng đợc xây dựng bằng cách dùng
các thành phần dùng lại có khả năng tạo ra cửa sổ đồ hoạ, menu kéo xuống và rất nhiều cơ chế
tơng tác. Cấu trúc dữ liệu và chi tiết xử lý cần để xây đựng giao diện đợc đặt bên trong các th
viện các thành phần dùng lại.

Các thành phần phần mềm đợc xây dựng bằng cách nào?
Dùng ngôn ngữ lập trình với vốn từ vựng hạn chế, một văn phạm hoàn toàn xác định rõ cùng
với các quy tắc thành lập chặt chẽ về cú pháp và ngữ nghĩa. Các thuộc tính này là điều chủ chốt
trong việc dịch thành mã máy. Các dạng ngôn ngữ hiện dùng ngày nay là các ngôn ngữ mức máy,
ngôn ngữ cấp cao và ngôn ngữ phi thủ tục.
+Ngôn ngữ mức máy: là một biểu diễn ký hiệu cho tập lệnh của đơn vị xử lý trung tâm
-Nếu phần mềm viết tốt, bảo trì đợc, t liệu tốt ngôn ngữ máy giúp sử dụng bộ
nhớ hiệu quả, tăng đợc tốc độ thực hiện

-Nếu phần mềm thiết kế tồi, ít tài liệu ngôn ngữ máy trở thành cơn ác mộng
+Ngôn ngữ cấp cao: Cho phép ngời phát triển phần mềm và chơng trình đợc độc lập với
máy song từ vựng, văn phạm, cú pháp, ngữ nghĩa phức tạp hơn nhiều so với ngôn ngữ máy.


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
8
Trong hàng trăm ngôn ngữ lập trình đợc dùng, phổ biến chỉ khoảng 10 loại: cobol, fortran,
Pascal,C,Ada,C
++
, Pascal đối tợng, eiffei, các ngôn ngữ đặc thù (APL, LIST,OPS5, PROLOG và
các ngôn ngữ mô tả cho mạng nơ ron nhân tạo
Mã máy, hợp ngữ, ngôn n gữ lập trình cấp cao thờng còn đợc coi nh là "3 thế hệ đầu" của
ngôn ngữ máy tính. Với những ngôn ngữ này, bản thân ngời lập trình phải quan tâm cả tới việc đặc
tả cấu trúc thông tin lẫn điều khiển chơng trình. Do đó các ngôn ngữ trong 3 thế hệ này còn đợc
gọi là các ngôn ngữ thủ tục
+Ngôn ngữ phi thủ tục: Có trên một thập kỷ qua, thay vì phải yêu cầu ngời phát triển phần
mềm cần xác định chi tiết thủ tục thì các ngôn ngữ phi thủ tục đa đến một chơng trình bằng cách
"xác định kết quả mong muốn thay vì xác định hành động cần để đạt đợc kết quả đó". Phần mềm
hỗ trợ sẽ dịch đặc tả thành chơng trình máy thực hiện đợc.

1.2.4.Việc ứng dụng phần mềm
Phần mềm có thể đợc áp dụng khi đã có một tập các bớc thủ tục (nh một thuật toán) đã
đợc xác định trớc (trừ phần mềm hệ chuyên gia và phần mềm mạng nơron)
Nội dung thông tin và tính tất định là các nhân tố quan trọng trong việc xác định bản chất
của ứng dụng phần mềm :

-Nội dung thông tin nói tới ý nghĩa và hình dạng của thông tin vào và ra
-Tính tất định thông tin nói tới việc tiên đoán trớc trật tự và thời gian của thông tin
Phân loại phần mềm ứng dụng (7 loại):

1. Phần mềm hệ thống:
-Là một tập hợp các chơng trình đợc viết để phục vụ cho các chơng trình khác
-Xử lý cấu trúc thông tin phức tạp nhng xác định (trình biên dịch, trình soạn thảo, tiện ích
quản lý tệp)
-Đặc trng bởi tơng tác chủ yếu với phần cứng máy tính
-Phục vụ nhiều ngời dùng
-Cấu trúc dữ liệu phức tạp và nhiều giao diện ngoài

2. Phần mềm thời gian thực
Phần mềm điều phối hoặc phân tích hoặc kiểm soát các sự kiện thế giới thực ngay khi chúng
xuất hiện đợc gọi là phần mềm thời gian thực.

Phần mềm thời gian thực bao gồm các yếu tố:

-Một thành phần thu thập dữ liệu để thu và định dạng thông tin từ ngoài
-Một thành phần phân tích để biến đổi thông tin theo yêu cầu của ứng dụng
-Một thành phần kiểm soát hoặc đa ra đáp ứng môi trờng ngoài
-Một thành phần điều phối để điều hoà các thành phần khác sao cho có thể duy trì việc đáp
ứng thời gian thực.
Hệ thống thời gian thực phải đáp ứng trong những ràng buộc thời gian chặt chẽ

3.Phần mềm nghiệp vụ
Xử lý thông tin nghiệp vụ là lĩnh vực ứng dụng phần mềm lớn nhất
Các hệ thống rời rạc: hệ thông tin quản lý
Các ứng dụng phần mềm nghiệp vụ còn bao gồm cả tính toán tơng tác (nh xử lý giao tác
cho các điểm bán hàng) ngoài ứng dụng xử lý dữ liệu


4.Phần mềm khoa học và công nghệ
-Đợc đặc trng bởi các thuật toán


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
9
-Trong ứng dụng mới, thiết kế có máy tính trợ giúp (CAD), có chú ý đến các đặc trng thời
gian thực và cả phần mềm hệ thống.

5. Phần mềm nhúng
-Nằm trong bộ nhớ chỉ đọc và đợc dùng để điều khiển các sản phẩm và hệ thống cho ngời
dùng và thị trờng công nghiệp
-Có thể thực hiện các chức năng rất giới hạn và huyền bí (điều khiển bàn phím cho lò vi
sóng) hay đa ra các khả năng điều khiển và vận hành (chức năng số hoá ở ô tô, kiểm soát xăng,
biểu thị bảng đồng hồ, hệ thống phanh)

6.Phần mềm máy tính cá nhân
-Bùng nổ trong hơn thập kỷ qua (xử lý văn bản, trang tính, đồ hoạ, quản trị CSDL)
-Tiếp tục biểu thị thiết kế giao diện ngời-máy: đợc cải tiến nhiều nhất.

7.Phần mềm trí tuệ nhân tạo
-Dùng các thuật toán phi số để giải quyết các vấn đề phức tạp mà tính toán hay phân tích
trực tiếp không quản lý nổi
-Hoạt động mạnh nhất là hệ chuyên gia (hệ cơ sở tri thức)
-Lĩnh vực nhận dạng (hình ảnh và tiếng nói)

-Chứng minh định lý và chơi trò chơi
-Phát triển mạng nơ ron nhân tạo: mô phỏng cấu trúc của việc xử lý trong bộ óc.
1.3. Kỹ nghệ phần mềm

1.3.1. Định nghĩa

Fritz Bauer nêu ra định nghĩa ban đầu về kỹ nghệ phần mềm :
Kỹ nghệ phần mềm là 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
Các định nghĩa về sau đều nhấn mạnh vào yêu cầu về một kỷ luật công nghệ trong việc phát
triển phần mềm
Kỹ nghệ phần mềm - sự phát triển của kỹ nghệ phần cứng và hệ thống. Nó bao gồm một tập
các bớc chứa đựng 3 yếu tố chủ chốt:
- Phơng pháp
-Công cụ
-Thủ tục
Các yếu tố này giúp ngời quản lý kiểm soát đợc tiến trình phát triển phần mềm và cung
cấp cho ngời kỹ s phần mềm một nền tảng để xây dựng phần mềm chất lợng cao theo một cách
thức hiệu quả

1.Các phơng pháp (đa ra các "cách làm" về mặt kỹ thuật để xây dựng phần mềm ):
Các phơng pháp bao hàm trong nhiều nhiệm vụ: lập kế hoạch, ớc lợng dự án, phân tích
yêu cầu hệ thống và phần mềm , thiết kế cấu trúc dữ liệu, kiến trúc chơng trình và thủ tục thuật
toán, mã hoá kiểm thử và bảo trì
Các phơng pháp cho kỹ nghệ phần mềm thờng đa ra các ký pháp đồ hoạ hay hớng ngôn
ngữ đặc biệt, đa ra một tập các tiêu chuẩn về chất lợng sản phẩm phần mềm.

2.Các công cụ (cung cấp sự hỗ trợ tự động hay bán tự động cho từng phơng pháp):
Khi các công cụ đợc tích hợp đến mức các thông tin do chúng tạo ra có thể đợc dùng cho
các công cụ khác thì hệ thống hỗ trợ cho việc phát triển phần mềm đã đợc thiết lập và còn đợc gọi

là kỹ nghệ phần mềm có máy tính hỗ trợ (CASE)


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
10

3.Các thủ tục (chất keo dán các phơng pháp và công cụ lại với nhau và làm cho chúng đợc
sử dụng hợp lý và đúng hạn trong quá trình phát triển phần mềm):
Thủ tục: -Xác định ra trình tự các phơng pháp sẽ đợc áp dụng,
-Tạo sản phẩm cần bàn giao (tài liệu báo cáo, bản mẫu, ) cần cho việc kiểm soát
để đảm bảo chất lợng và điều hoà thay đổi,
-Xác định những cột mốc để cho ngời quản lý phần mềm nắm đợc tiến độ.

Nh vậy, kỹ nghệ phần mềm bao gồm một tập các bớc bao hàm cả phơng pháp, công cụ
và thủ tục đã đợc xác định ở trên. Các bớc này thờng đợc gọi là các khuôn cảnh (paradigm) kỹ
nghệ phần mềm .
Mỗi bớc trong kỹ nghệ phần mềm đợc lựa chọn dựa trên bản chất của dự án, dựa vào
phơng pháp và công cụ sử dụng, vào cách kiểm soát, cách bàn giao.
Sau đây, chúng ta sẽ xét tới 4 cách tiếp cận cơ bản trong tiến trình phát triển phần mềm:

1.3.2. Mô hình Vòng đời cổ điển (cách tiếp cận 1)

Kỹ nghệ phần mềm đợc minh hoạ theo khuôn cảnh vòng đời cổ điển. Mô hình vòng đời cổ
điển đôi khi còn đợc gọi là mô hình thác nớc. Khuôn cảnh vòng đời yêu cầu tiếp cận một cách hệ
thống, tuần tự tới việc phát triển phần mềm, bắt đầu ở mức hệ thống và tiến dần xuống phân tích,
thiết kế, mã hoá, kiểm thử và bảo trì. Nh vậy khuôn cảnh vòng đời bao gồm các hoạt động trong

mô hình thác nớc sau:



1.Kỹ nghệ và phân tích hệ thống
K

n
g
hệ hệ
thốn
g

Phân tích &
đ

nh rõ
y
êu cầu
Thiết kế hệ thống
&
p
hần mềm
Mã hoá
Kiểm thử đơn vị, tích
h
ợp
& h

thốn

g

Vận hành và
Bảo trì


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
11
Vì phần mềm bao giờ cũng là một phần tử của hệ thống lớn hơn bắt đầu từ việc thiết lập
yêu cầu cho mọi phần tử của hệ thống cấp phát một tập con các yêu cầu đó cho phần mềm
Kỹ nghệ và phân tích hệ thống bao gồm việc thu thập yêu cầu ở mức hệ thống với một lợng
nhỏ thiết kế và phân tích mức đỉnh

2. Phân tích yêu cầu phần mềm
-Tiến trình thu thập yêu cầu đợc tập trung và làm sạch đặc biệt vào phần mềm
-Tìm hiểu lĩnh vực thông tin đối với phần mềm, các chức năng cần có, hiệu năng và giao
diện
-Lập t liệu về yêu cầu cho hệ thống và phần mềm khách hàng duyệt lại

3. Thiết kế
-Tiến trình nhiều bớc, tập trung vào 4 thuộc tính phân biệt của chơng trình:
+Cấu trúc dữ liệu
+Kiến trúc phần mềm
+Chi tiết thủ tục
+Đặc trng giao diện
-Chuyển hoá các yêu cầu thành mô tả phần mềm trớc khi mã hoá

-Lập t liệu thiết kế (một phần của cấu hình phần mềm )

4.Mã hoá
-Dịch thiết kế thành dạng mã máy đọc đợc

5. Kiểm thử
-Việc kiểm thử bắt đầu sau khi đã sinh ra mã
-Tiến trình kiểm thử tập trung vào phần logic bên trong chơng trình đảm bảo tất cả các câu
lệnh đều đợc kiểm thử. Về phần chức năng bên ngoài thì đảm bảo rằng việc kiểm thử phát hiện ra
lỗi và đảm bảo những cái vào xác định sẽ tạo ra kết quả thực tế thống nhất với kết quả muốn có.

6.Bảo trì
Phần mềm chắc chắn có những thay đổi sau khi đợc bàn giao cho khách hàng (trừ phần
mềm nhúng)
Do lỗi hoặc thích ứng với thay đổi trong môi trờng bên ngoài (hệ điều hành mới, thiết bị
ngoại vi mới) hoặc yêu cầu nâng cao chức năng hay hiệu năng bảo trì
Bảo trì áp dụng lại các bớc vòng đời cho chơng trình hiện tại ( không phải mới)

Nhận xét
:
-Vòng đời cổ điển là khuôn cảnh cũ nhất và đợc sử dụng rộng rãi nhất cho kỹ nghệ phần
mềm
-Các dự án thực hiếm khi tuân theo dòng chảy tuần tự. Việc lập bao giờ cũng xuất hiện và
gây ra các vấn đề khi áp dụng khuôn cảnh này
-Khách hàng khó phát biểu hết yêu cầu tờng minh của dự án dễ có bất trắc
-Khách hàng phải kiên nhẫn. ở cuối thời gian dự án mới có bản chơng trình làm việc đợc.
Nếu chơng trình gặp lỗi thảm hoạ
-Có vị trí quan trọng và xác định trong công việc và kỹ nghệ phần mềm: đa ra các phơng
pháp khoa học, đa ra các bớc tổng quát áp dụng đợc cho mọi khuôn cảnh kỹ nghệ phần mềm
còn là mô hình thủ tục đợc sử dụng rộng rãi

-Còn điểm yếu nhng vẫn tốt hơn đáng kể so với cách tiếp cận ngẫu nhiên



Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
12
1 3.3. Mô hình làm bản mẫu (cách tiếp cận 2)

Cách tiếp cận làm bản mẫu cho kỹ nghệ phần mềm là cách tiếp cận tốt nhất khi:
-Khách hàng xác định đợc mục tiêu tổng quát cho phần mềm, nhng cha xác định đợc
input và output
-Ngời phát triển không chắc về hiệu quả của thuật toán, về thích nghi hệ điều hành hay giao
diện ngời máy cần có

Làm bản mẫu là một tiến trình giúp ngời phát triển có khả năng tạo ra một mô hình cho
phần mềm cần xây dựng. Mô hình có thể lấy một trong 3 dạng:

1.Bản mẫu trên giấy hay trên PC mô tả giao diện ngời-máy dới dạng làm cho ngời dùng
hiểu đợc cách các tơng tác xuất hiện
2.Bản mẫu làm việc cài đặt một tập con chức năng phần mềm mong muốn
3.Một chơng trình mà có thực hiện một phần hay tất cả chức năng mong muốn nhng cần
cải tiến thêm các tính năng khác tuỳ theo khả năng phát triển .

Dãy các sự kiện của khuôn cảnh làm bản mẫu đợc minh hoạ trong hình sau:
giống nh mọi cách tiếp cận tới việc phát triển phần mềm, việc làm bản mẫu với việc thu thập yêu
cầu. Ngời phát triển và khách hàng gặp nhau và xác định mục tiêu tổng thể cho phần mềm, xác

định các yêu cầu nào đã biết, miền nào cần khảo sát thêm. Rồi đến việc thiết kế nhanh. Thiết kế
nhanh tập trung vào việc biểu diễn các khía cạnh của phần mềm thấy đợc đối với ngời dùng (cách
đa vào và định dạng đa ra). Thiết kế nhanh xây dựng một bản mẫu ngời dùng đánh giá
làm mịn các yêu cầu cho phần mềm. Tiến trình lặp đi lặp lại xảy ra để cho bản mẫu đợc vi chỉnh
thoả mãn yêu cầu của khách, đồng thời giúp ngời phát triển hiểu kỹ hơn cần phải thực hiện nhu cầu
nào.
Tậ
p
hợ
p

y
êu
cầu và làm
mịn xác định
mục tiêu tổng
thể, khảo sát
thêm để định rõ
yêu cầu
thiết kế
nhanh
(input,
output)

y
dựn
g

bản mãu
Đánh

g

của khách
hàng về
bản mãu
Làm mịn
bản mãu
Sản
p
hẩm

(vi chỉnh Y/C)
Kết
thúc
Bắt đầu


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
13
1.3.4.Mô hình xoắn ốc (cách tiếp cận 3)

-Bao gồm các tính năng tốt nhất của cả vòng đời cổ điển và làm bản mẫu + phân tích rủi ro
-Xác định bởi 4 hoạt động chính:
1. Lập kế hoạch: xác định mục tiêu, giải pháp và ràng buộc
2. Phân tích rủi ro: phân tích các phơng án và xác định/ giải quyết rủi ro
3. Kỹ nghệ: phát triển sản phẩm mức tiếp theo

4. Đánh giá của khách hàng: khẳng định kết quả của kỹ nghệ

-Với mỗi lần lặp xung quanh xoắn ốc (bắt đầu từ tâm), xác định thêm các phiên bản đợc
hoàn thiện dần. Nếu phân tích rủi ro chỉ ra rằng không chắc chắn trong các yêu cầu thì việc làm bản
mẫu có thể đợc sử dụng trong góc phần t kỹ nghệ; các mô hình và các mô phỏng khác cũng đợc
dùng để làm rõ hơn vấn đề và làm mịn yêu cầu
Khách đa ra những gợi ý thay đổivòng xoáy mới. Tại mỗi vòng xung quanh xoắn ốc, cao
điểm của việc phân tích rủi ro là quyết định tiến hành hay không tiến hành. Nếu rủi ro quá lớn thì
có thể đình chỉ dự án
Mọi mạch đi xung quanh xoắn ốc đều đòi hỏi kỹ nghệ (góc đông-nam) có thể đợc thực
hiện bằng cách tiếp cận vòng đời và làm bản mẫu. Tất nhiên số các hoạt động phát triển phải tăng
lên khi hoạt động chuyển xa hơn ra khỏi trung tâm vòng xoáy ốc

Nhận xét:

-Khuôn cảnh mô hình xoắn ốc đối với kỹ nghệ phần mềm hiện tại là cách tiếp cận thực tế
nhất đến việc phát triển cho các hệ thống và phần mềm quy mô lớn. Trong đó ngời ta dùng cách
làm bản mẫu nh một cơ chế làm giảm bớt rủi ro.
-Mô hình này tơng đối mới và còn cha đợc sử dụng rộng rãi nh vòng đời/ làm bản mẫu

















Cách tiếp cận thực tế nhất cho việc phát triển
các hệ thống và phần mềm có quy mô lớn


1.3.5. Kỹ thuật thế hệ thứ 4 (cách tiếp cận 4)

Thuật ngữ kỹ thuật thứ 4 (4GT) bao gồm một phạm vi rộng các công cụ phần mềm có một
điểm chung:
kế hoạch
phân tích rủi ro
kỹ nghệ
Đánhgiácủakhách
tậ
p
hợ
p

y
êu
cầu ban đầu
và kế hoạch
dự án
p
hân tích rủi
ro dựa trên

yêu cầu ban
đầu
bản mẫu ban đầu
bản mẫu tiếp theo
đánh giá
của khách
hàng
kế hoạch
dựa trên ý
kiến của
khách hàn
g

p
hân tích rủi ro dựa
trên phản ứng của
khách hàng

Quyết định có tiếp
tục hay không ?
(cao điểm của việc
phân tích rủi ro)

Hớng tới hệ thống
hoàn chỉnh


Kỹ nghệ phần mềm
________________________________________________________________________


_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
14
-Mỗi công cụ đều cho phép ngời phát triển phần mềm xác định một số đặc trng của phần
mềm ở mức cao. Công cụ đó tự động sinh ra mã chơng trình gốc theo nhu cầu của ngời phát
triển.
Khuôn cảnh 4GT tập trung vào khả năng xác định phần mềm ở mức độ gần với ngôn ngữ tự
nhiên hay dùng một ký pháp ứng với chức năng.
Môi trờng phát triển phần mềm hỗ trợ cho khuôn cảnh 4GT bao gồm một số hoặc tất cả các
công cụ sau:
-Ngôn ngữ phi thủ tục để truy vấn CSDL
-Bộ sinh báo cáo
-Bộ thao tác dữ liệu
-Bộ tơng tác và xác định màn hình
-Bộ sinh chơng trình/mã (code generation)
-Khả năng đồ hoạ mức cao
-Khả năng làm trang tính

Khuôn cảnh 4GT cho kỹ nghệ phần mềm đợc thể hiện trên sơ đồ:



















Nhận xét:
-Việc dùng khuôn cảnh 4GT còn nhiều tranh cãi:
+Ngời ủng hộ: cho rằng 4GT làm giảm đáng kể thời gian phát triển phần mềm, tăng hiệu
suất của ngời phát triển phần mềm
+Ngời phản đối: cho rằng 4GT không phải tất cả đều dễ dàng hơn các ngôn ngữ lập trình,
các chơng trình gốc do các công cụ này tạo ra là không hiệu quả và rằng việc bảo trì các hệ
thống phần mềm lớn hơn đợc phát triển bằng cách dùng 4GT sẽ sinh ra nhiều vấn đề mới.

-Đối với CSDL lớn, 4GT chỉ mới giới hạn vào các ứng dụng hệ thông tin nghiệp vụ, đặc biệt, việc
phân tích thông tin và làm báo cáo (nhân tố chủ chốt cho các CSDL lớn).
-Đối với ứng dụng vừa và nhỏ
, thời gian thu thập dữ liệu sơ bộ cần để tạo phần mềm đợc giảm
đáng kể. Khối lợng thiết kế cho các ứng dụng nhỏ
cũng đợc rút bớt
-Để phát triển phần mềm lớn
đòi hỏi tập trung nhiều vào phân tích, thiết kế và kiểm thử để đạt tới
việc tiết kiệm thời gian là chủ yếu.

Tậ
p
hợ
p


y
êu cầu
Chiến lợc thiết k
ế
Cài đặt sử dụn
g
Kiểm thử


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
15
-Các kỹ thuật thế hệ 4 đã trở thành phần quan trọng của việc phát triển phần mềm trong lĩnh vực ứng
dụng hệ thông tin. Bản chất thay đổi của sự phát triển phần mềm đợc thể hiện nh sau:





1970 1980 1990


1.3.6. Tổ hợp các khuôn cảnh

Bất kỳ một trong các khuôn cảnh cũng đều là có thể dùng làm nền tảng để tích hợp các
khuôn cảnh khác




















Sơ đồ tổ hợp các khuôn cảnh



Trong mọi trờng hợp, công việc bắt đầu: xác định mục tiêu, phơng án, ràng buộc (thu thập
yêu cầu sơ bộ). Từ điểm này, bất kỳ một con đờng nào rẽ nhánh đều có thể chọn. Ví dụ: đờng bên
trái (vòng đời cổ điển). Nếu yêu cầu còn cha đợc chắc chắn thì có thể sử dụng bản mẫu để xác
định yêu cầu đầy đủ hơn.

Bằng cách dùng bản mẫu nh một bản hớng dẫn, ngời phát triển có thể trở lại vòng đời cổ
điển (thiết kế, mã hoá, kiểm thử). Theo một cách khác, bản mẫu có thể tiến hoá thành hệ thống sản
xuất, quay trở về khuôn cảnh vòng đời để kiểm thử.


Các kỹ thuật thế hệ 4 đợc dùng để cài đặt bản mẫu hay cài đặt hệ thống sản xuất trong bớc
mã hoá của vòng đơì. 4GT có thể đợc dùng kèm với mô hình xoáy ốc cho các bớc làm bản mẫu
hay mã hoá

Nhu
cầu
phần
mềm
Nhu cầu trun
g
bình
áp

dụ
n
g

các
k


t
h
uật

t
h
ế
h


4
Tập hợp các yêu cầu ban đầu
(xác định các mục tiêu, các
phơng án, các ràng buộc)
phân tích yêu cầu
làm b ản mẫu
4GT
Mô hình xoáy ốc
thiết kế
Mã hoá
Kiểm chứng
4GT
Bản mẫu:
vòng thứ n
4GT
Mô hình:
vòng thứ n
hệ thốn
g
hoạt độn
g
Bảo trì


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng

16

Chú ý:

Không nên cứng nhắc về việc chọn khuôn cảnh cho kỹ nghệ phần mềm. Dựa vào bản chất
của ứng dụng mà ấn định ra cách tiếp cận cần đợc chọn. Bằng cách tổ hợp các cách tiếp cận thì ích
lợi một tổng thể sẽ còn lớn hơn là tổng của từng thành phần.



1.4. Các bớc tổng quát trong tiến trình kỹ nghệ phần mềm

Tiến trình phát triển kỹ nghệ phần mềm chứa 3 giai đoạn chính:
-Xác định (trọng tâm là phân tích và xác định yêu cầu phần mềm )
-Phát triển (cấu trúc dữ liệu , kiến trúc phần mềm , thủ tục thuật toán, giao diện)
-Bảo trì (sửa lỗi, thích nghi, nâng cao)
trong mọi miền ứng dụng, mọi cỡ dự án, mọi độ phức tạp.


1.4.1.Giai đoạn xác định

+Tập trung vào cái gì?
-Xác định thông tin nào cần đợc xử lý
-Chức năng và hiệu năng nào là cần có
-Giao diện nào cần đợc thiết lập
-Ràng buộc thiết kế nào hiện có
-Tiêu chuẩn hợp lệ nào cần có
-Yêu cầu chủ chốt của hệ thống và phần mềm

+Các phơng pháp:

Các phơng pháp thay đổi tuỳ theo khuôn cảnh kỹ nghệ phần mềm (hay tổ hợp các khuôn
cảnh) đợc áp dụng, song tối thiểu cần có 3 bớc riêng dới dạng:
- Phân tích hệ thống :
Đã đợc mô tả trong vòng đời cổ điển
Xác định vai trò của từng phần tử trong hệ thống dựa trên máy tính
Vạch ra vai trò mà phần mềm giữ
- Lập kế hoạch dự án phần mềm :
Xác định nhiệm vụ, công việc
Lập lịch
- Phân tích yêu cầu :
Xác định phạm vi cho phần mềm
Xác định chi tiết lĩnh vực thông tin và chức năng phần mềm phải đảm nhận trớc khi
sang giai đoạn phát triển.

Hệ thống máy tính bao gồm 3 phần:
1. Các máy tính: máy chủ, máy trạm, máy đơn lẻ, các trang thiết bị mạng, hỗ trợ mạng và truyền thông
2. phần mềm hệ thống : hệ điều hành mạng, trạm, các chơng trình dịch, các ngôn ngữ lập trình, các hệ quản trị dữ
liệu
3. Các phần mềm ứng dụng: giải quyết một lớp bài toán cụ thể nào đó

+Các bớc tổng quát cần thực hiện :




Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng

17















.Lập kế hoạch phần mềm (bớc khởi đầu):
Cần: Xây dựng ra 1 mô tả vắn tắt về phạm vi hoạt động của phần mềm
Phân tích rủi ro
Dự kiến tài nguyên cần cho việc xây dựng phần mềm
Thiết lập các ớc lợng chi phí và lịch biểu
Mục tiêu:

-Đa ra một chỉ dẫn sơ bộ về tính khả thi của dự án với các ràng buộc về chi phí và lịch biểu
mà có thể thiết lập trớc
-Cần tạo ra đợc bản kế hoạch dự án phần mềm và đợc cấp quản lý dự án xét duyệt
Phân tích và xác định yêu cầu phần mềm :
+Xác định chi tiết phần tử hệ thống đợc cấp phát cho phần mềm
+Có 2 cách phân tích và xác định yêu cầu :
-Phân tích lĩnh vực thông tin hình thức: sử dụng mô hình luồng và cấu trúc thông tin

mở rộng để trở thành đặc tả phần mềm
-Xây dựng bản mẫu phần mềm + khách đánh giá củng cố yêu cầu / giới hạn tài
nguyên dịch thành các đặc trng thiết kế phần mềm
+Phân tích tổng thể phần mềm xác định ra những tiêu chuẩn hợp lệ phục vụ kế hoạch
kiểm thử tỏ rằng các yêu cầu đợc đáp ứng
+ Do cả ngời xây dựng phần mềm lẫn khách hàng tiến hành

.Bản đặc tả yêu cầu phần mềm :
-là tài liệu bàn giao, đợc tạo ra do kết quả của bớc phân tích yêu cầu và xác định
phần mềm
-thể hiện đỉnh điểm kết quả cuộc họp xét duyệt kỹ thuật giữa khách hàng và ngời
phát triển phần mềm

Kế hoạch dự án phần mềm
-Hình thành khi các yêu cầu (chấp nhận đợc) đã đợc xác định
-Là cơ sở để đánh giá lại tính đúng đắn
-Là tài liệu bàn giao của giai đoạn xác định cho giai đoạn tiếp theo


1.4.2. Giai đoạn phát triển

chức năn
g

p
hần mềm
lập kế
hoạch dự
án phần
mềm

phân tích &
xác định yêu
cầu phần
mềm hay bản

mẫu
duyệt
xét
duyệt
xét
kế hoạch dự
án
(đợc cấp
quản lý dự án
xét duyệt)

Đặc tả
yêu cầu
bản
mẫu
tính khả
thi
đảm bảo
tính hợp lệ
tài liệu bàn
giao


Kỹ nghệ phần mềm
________________________________________________________________________


_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
18
+Tập trung vào thế nào?
Khi xác định, ngời phát triển phần mềm cố gắng xác định cách cấu trúc dữ liệu và
kiến trúc phần mềm cần đợc thiết kế, cách các chi tiết thủ tục đợc cài đặt, cách dịch thiết kế thành
ngôn ngữ lập trình, cách thực hiện kiểm thử

+ Phơng pháp áp dụng: thay đổi nhng có 3 bớc đặc thù bao giờ cũng xuất hiện dới dạng:
1.Thiết kế phần mềm: thiết kế việc chuyển hoá các yêu cầu về phần mềm tập các
biểu diễn (dựa trên đồ hoạ, bảng, hay ngôn ngữ)
+mô tả cấu trúc dữ liệu , +kiến trúc phần mềm
+mô tả thủ tục thuật toán, +đặc trng giao diện
2.Mã hoá: các biểu diễn thiết kế dịch thành 1 ngôn ngữ nhân tạo kết quả là các
lệnh thực hiện đợc trên máy tính
3.Kiểm thử phần mềm : phát hiện khiếm khuyết khi vận hành, trong logic và trong
cài đặt

+Các bớc tổng quát cần đợc thực hiện :
Đây là giai đoạn xây dựng hoặc triển khai việc chuyển hoá các yêu cầu thành phần tử
hệ thống vận hành mà ta quen gọi là phần mềm


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
19

















Bớc đầu cần hoàn thành thiết kế :
-Mô tả về thiết kế kiến trúc và dữ liệu (tức là xây dựng một kiến trúc modul xác định giao
diện, thiết lập cấu trúc dữ liệu, các tiêu chí định giá chất lợng)
-Thiết kế sơ bộ: xét duyệt tính đầy đủ và khả năng theo dõi các yêu cầu phần mềm
-Đặc tả thiết kế là bản thảo sơ bộ đợc bàn giao và trở thành một phần của cấu hình phần
mềm
Thiết kế thủ tục:
-Xét thủ tục cuả từng thành phần modul của thiết kế
-Các mô tả thủ tục chi tiết đợc bổ sung vào bản đặc tả thiết kế
Mã hoá: dùng ngôn ngữ lập trình thích hợp/ công cụ CASE
-Đợc đánh giá là kết quả của việc thiết kế tốt
-Bản in chơng trình ngôn n gữ gốc cho từng modul thành phần phần mềm là cấu hình bàn
giao
Hoạt động kiểm chứng và làm hợp lệ:

-Kiểm thử hiệu suất chức năng của từng modul
-Kiểm thử tích hợp chức năng và giao diện
-Kiểm thử tính hợp lệ (xác nhận mọi yêu cầu đã đợc đáp ứng cha)
Sau từng bớc có thể tiến hành gỡ lỗi-chẩn đoán-sửa lỗi
Kế hoạch và thủ tục kiểm thử: xây dựng cho từng bớc kiểm thử


1.4.3. Giai đoạn bảo trì
Giai đoạn bảo trì tập trung vào những thay đổi. Thay đổi gắn với việc sửa lỗi, thích ứng khi
môi trờng phần mềm tiến hoá và sự nâng cấp
Giai đoạn bảo trì áp dụng lại các bớc của giai đoạn xác định và phát triển nhng trong hoàn
cảnh phần mềm đã có.

+Có 3 kiểu thay đổi gặp phải trong giai đoạn bảo trì:

1.Sửa đổi: thay đổi phần mềm để khắc phục khiếm khuyết
2.Thích nghi: môi trờng ban đầu thay đổi (CPU, hệ điều hành, ngoại vi) để phát triển phần
mềm thay đổi. Bảo trì thích nghi thực hiện việc sửa đổi phần mềm để thích hợp với những thay
đổi môi trờng ngoài.
thiết kế dữ
liệu và
kiến trúc
duyệt
xét
thiết
kế thủ
tục
duyệt
xét
lậ

p

trình
duyệt
xét
Đặc tả
thiết kế
sơ bộ
Đặc tả
thiết kế
chi tiết
bản
mẫu
mã gốc
chơng
trình
tài liệu bàn
giao
Kiểm
thử (đơn
vị, tích
hợp và
hợp lệ)
g
ỡ lỗi
Kế hoạch,
thủ tục,
kết quả
kiểm thử
tài liệu bàn

giao


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
20
3.Nâng cao: chức năng phụ phát sinh bảo trì hoàn thiện mở rộng phần mềm ra ngoài các
yêu cầu chức năng gốc của nó

+Các bớc tổng quát cần thực hiện :

Sai sót có thể gây ra việc trở lại các bớc trớc


















Đây là giai đoạn kiểm chứng, bàn giao và bảo trì: cần tìm ra tối đa số lỗi trớc khi bàn giao
sản phẩm cho khách hàng, chuẩn bị phần mềm để bàn giao, bảo trì phần mềm thông qua cuộc đời có
ích của nó.

Trớc khi bàn giao: cần tiến hành một loạt hoạt động đảm bảo chất lợng, chú ý các tài liệu bàn
giao có chứa danh mục, cơ chế kiểm soát, cấu hình thích hợp
Sau khi bàn giao: Bảo trì- sửa lỗi, thích nghi môi trờng và nâng cao chức năng. Những thay đổi
về phần mềm bao gồm không chỉ có mã máy mà còn phải có toàn bộ cấu hình (nh mọi chơng
trình, dữ liệu, t liệu đã đợc phát triển trong các giai đoạn xác định và xây dựng)

Nhận xét:
-Trong các khuôn cảnh vòng đời cổ điển và mô hình xoáy trôn ốc: các giai đoạn và các bớc
đợc mô tả đều đợc xác định một cách tờng minh
-Trong các khuôn cảnh làm bản mẫu và 4GT: một số bớc đợc nêu ra nhng không đợc
xác định tờng minh. Cách tiếp cận tới từng bớc có thể biến động từ khuôn cảnh nọ sang khuôn
cảnh kia, nhng toàn bộ cách tiếp cận yêu cầu bao gồm việc xác định, phát triển và bảo trì vẫn
không thay đổi.
-Có thể tiến hành từng giai đoạn theo kỉ luật và phơng pháp đã đợc xác định rõ hoặc cũng
có thể làm lộn xộn qua mỗi bớc một cách ngẫu nhiên. Từ đây, chúng ta quan tâm đến cách tiếp
cận tới việc phát triển phần mềm nhấn mạnh vào kỷ luật và phơng pháp đã đợc xác định rõ - một
cách tiếp cận quen gọi là kỹ nghệ phần mềm

-Ngời ta có thể chia việc phát triển phần mềm bao gồm 4 pha:
+Phân tích và xác định yêu cầu
+Thiết kế hệ thống và thiết kế phần mềm
+Thực hiện và thử nghiệm các đơn vị của phần mềm
+Tích hợp và thử nghiệm hệ thống
Kiểm thử

(đơn vị,
tích hợp
và hợp lệ)
Gỡ lỗi
p
hát hành
và phân
phối
duyệt
xét
Bảo trì
(sửa đổi,
thích nghi
môi trờng,
nân
g
cao
)

duyệt
xét
Kế hoạch,
thủ tục và
kết quả
việc kiểm
chứng
Tài liệu
ngời
dùng
Chơn

g

trình vận
hành
mã gốc
chơng
trình
Tài liệu
đã sửa
tài liệu
bàn giao
tài liệu
bàn giao
tài liệu
bàn giao
tài liệu
bàn giao


Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
21
Khi đó vòng đời phần mềm đợc biểu diễn theo 5 giai đoạn:
1.Giai đoạn phân tích và xác định yêu cầu
2.Giai đoạn thiết kế hệ thống và thiết kế phần mềm
3.Giai đoạn thực hiện và thử nghiệm các đơn vị của phần mềm
4.Giai đoạn tích hợp và thử nghiệm hệ thống

5.Giai đoạn vận hành và bảo trì

-Mô hình quá trình phần mềm: tạo nguyên mẫu (phát triển một hệ để cho ngời dùng thực
nghiệm, rồi thiết lập các yêu cầu mới, tạo nguyên mẫu mới cho tới khi sản phẩm đạt yêu cầu) là gần
giống nh mô hình thăm dò (phát triển càng nhanh càng tốt một hệ thống rồi cải biên hệ thống đó
cho tới khi nó thực hiện đợc những yêu cầu)
Trong một số trờng hợp riêng biệt, mô hình quá trình phần mềm có thể theo kiểu tập hợp
các thành phần dùng lại đợc để xây dựng phần mềm thoả mãn các yêu cầu.

-Bên cạnh mô hình thác nớc phổ dụng (quá trình phần mềm đợc chia thành một số giai
đoạn, khi mỗi giai đoạn kết thúc thì quá trình chuyển sang giai đoạn kế tiếp), ngời ta có nghiên cứu
các mô hình khác nh:
+Mô hình biến đổi hình thức: phát triển một đặc tả hình thức của một hệ phần mềm,
biến đổi đặc tả đó (bảo đảm tính đúng đắn của các phép biến đổi) cho tới khi có đợc một chơng
trình thoả mãn các yêu cầu.

-Theo Raccoon thì trong những năm gần đây ngời ta quan tâm đến mô hình xoắn ốc nhiều
hơn cả. Mô hình đợc Boehm đa ra năm 1988. Mô hình này dựa trên việc phân tích yếu tố rủi ro.
Quá trình phát triển đợc chia thành nhiều thời kỳ, mỗi thời kỳ bắt đầu bằng việc phân tích rủi ro rồi
tạo nguyên mẫu, cải tạo và phát triển hệ thống, duyệt lại, và cứ thế tiếp tục

-Theo Ian Sommerville thì Boehm đã đa ra các tỷ lệ chi phí trong phần việc nh bảng sau:
Kiểu hệ thống phân tích yêu cầu
& thiết kế (%)
thực hiện (mã
hoá) (%)
thử nghiệm
(%)
1.Các hệ thống lệnh và điều khiển
2.Các hệ thống điều hành

3.Các hệ thống khoa học
4.Các hệ thống tác nghiệp
46
33
44
44
20
17
26
28
34
50
30
28

I.5.Đánh giá tổng quát về chất lợng hệ thống


Việc đánh giá tổng quát về chất lợng hệ thống bao gồm việc đánh giá chất lợng tài liệu
đặc tả, chất lợng thiết kế và chất lợng của phần mềm công trình (kỹ nghệ) tốt thông qua các thuộc
tính chung.

Bốn thuộc tính chủ chốt mà một hệ phần mềm tốt hẳn là phải có:

Có thể bảo trì đợc: phần mềm tuổi thọ dài phải đợc viết và đợc lập t liệu sao cho việc thay
đổi có thể tiến hành đợc mà không quá tốn kém

Đáng tin cậy: phần mềm phải thực hiện đợc điều mà ngời tiêu dùng mong mỏi và không thất
bại nhiều hơn những điều đã đợc đặc tả




Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng
22
Có hiệu quả: hệ thống phải không lãng phí nguồn lực bộ nhớ, bộ xử lý. Không đòi hỏi phải cực
đại hoá độ hiệu quả vì rằng việc đó có thể làm cho phần mềm rất khó thay đổi

Có giao diện ngời sử dụng thích hợp: giao diện ngời sử dụng phải phù hợp với khả năng và
kiến thức của ngời dùng hệ thống


Giá cả phải đợc tính đến khi xây dựng 1 phần mềm công trình tốt.

Bảo trì đợc coi là thuộc tính chủ chốt vì rằng các chi phí gắn kết với sản phẩm phần mềm
chủ yếu là trong giai đoạn phần mềm đó đợc đa vào sử dụng
Việc tối u hoá mọi thuộc tính này là rất khó khăn. Quan hệ giữa chi phí và sự cải thiện từng
thuộc tính không phải là tuyến tính và các cải thiện nho nhỏ trong bất kỳ thuộc tính nào cũng là rất
đắt.



Kỹ nghệ phần mềm
________________________________________________________________________

_______________________________________________________________________
Nguyễn Quốc Toản - Nguyên văn Vỵ - Vũ Đức Thi - Lê Đình Phùng

23

Tóm tắt

Phần mềm đã trở thành phần tử chủ chốt trong tiến hoá của các hệ thống và sản phẩm dựa
trên máy tính. Hơn 40 năm qua, bản thân phần mềm đã tiến hoá từ một công cụ phân tích thông tin
và giải quyết vấn đề một ngành công nghiệp
Kỹ nghệ phần mềm là một bộ môn tích hợp cả các phơng pháp, công cụ, thủ tục để phát
triển kỹ nghệ phần mềm máy tính. Có thể đề ra một số khuôn cảnh khác nhau cho kỹ nghệ phần
mềm, mỗi khuôn cảnh đều có điểm mạnh, điểm yếu, nhng nói chung tất cả đều có một dãy các giai
đoạn tổng quát.


? củng cố

1. Môn học kỹ nghệ phần mềm (SE) phục vụ cho ai là chính và tại sao họ cần nó ?
2. Phơng pháp tiếp cận của ngời thực hành là gì ?
3. Các chủ đề cần quan tâm trong SE ?
4. Tại sao nói phần mềm là nhân tố để đánh giá sự khác biệt ?
5. Việc chấp nhận thực hành SE là do các thách thức nào ?
6. Các thành phần phần mềm đợc xây dựng bằng cách nào ?
7. Bản chất của ứng dụng phần mềm đợc xác định bởi các nhân tố nào ?
8. Phần mềm ứng dụng đợc phân loại theo các chủ đề nào ?
9. Anh (chị) hiểu thế nào là SE ?
10. So sánh các cách tiếp cận cơ bản trong tiến trình phát triển phần mềm ? (chú ý đến các sơ đồ)
11. ý nghĩa của việc tổ hợp các khuôn cảnh ? (chú ý đến các sơ đồ)
12. Nêu và phân tích các bớc tổng quát trong tiến trình SE ? (chú ý đến sơ đồ)
13. Giới thiệu tóm tắt các kiểu mô hình quá trình phần mềm ?
14. Nêu các thuộc tính chủ chốt mà hệ phần mềm tốt phải có?








2 December, 2008


Kỹ nghệ phần mềm
________________________________________________________________________

______________________________________________________________Chơng II.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi- Lê Đình Phùng

25
Chơng II
Đặc tả phần mềm



Đặc tả phần mềm bao gồm các nội dung chính sau đây:


II.1.Việc hình thành các yêu cầu và cách đặc tả
II.1.1.Việc hình thành các yêu cầu
II.1.2.Cách đặc tả
II.1.3. Các mức trừu tợng
II.1.4. Các hoạt động cơ sở của tiến trình phân tích hệ thống


II.2.Đặc tả yêu cầu
II.2.1.Phân tích và nắm bắt nhu cầu
II.2.2.Xác định các yêu cầu
II.2.3.Đặc tả yêu cầu

II.3.Đặc tả hệ thống và việc tạo nguyên mẫu
II.3.1 Đặc tả hệ thống
II.3.2. Tạo nguyên mẫu

II.4. Đặc tả các yêu cầu phần mềm
II.4.1.Dàn bài đặc tả
II.4.2.Xét duyệt đặc tả


×