Tài liệu Bài giảng Kỹ nghệ phần mềm (nhập môn) - Chương 1: Phần mềm và kỹ nghệ phần mềm: Đạ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 nhưng 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 ...
25 trang |
Chia sẻ: honghanh66 | Lượt xem: 1305 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Kỹ nghệ phần mềm (nhập môn) - Chương 1: Phần mềm và kỹ nghệ phần mềm, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Đạ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 nhưng 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 chưa đượ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 hố 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 tồ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 hố (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
chươ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 hố 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 trưng 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à lưu
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 tố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 lưu trữ của phần cứng biểu thị cho tiềm năng tính tố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 hố 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, chưa cĩ phương pháp hệ thống. Phát triển phần mềm
chưa đượ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 số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ộ lưu 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 tồ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 đố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
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
Nhận xét: chưa đủ cần đưa ra định nghĩa hình thức hơn
1.2.2.Các đặc trưng phần mềm
Phần mềm là phần tử hệ thống logic chưa khơng phải là hệ thống vật lý. Do đĩ phần
mềm cĩ đặc trưng khác biệt đáng kể với các đậc trưng của phần cứng
1.Phần mềm được phát triển hay được kỹ nghệ hố, 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ị thối hố do sự thay đổi.
thời gian
Tỷ lệ
hỏng
chết
yểu mịn cũ
giữ tỷ lệ cho đến khi lạc hậu
Đường cong lý tưởng
tỷ lệ
hỏng
thay
đổi Đường cong thực tế
Đường cong lý tưở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 7
Đường cong hỏng hĩc thực tế của phần mềm
Nhận xét:
Phần cứng hỏng cĩ "vật tư thay thế", nhưng 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 hố
Phần mềm: -Khơng cĩ danh mục các thành phần
-Đặt hàng với đơn vị hồ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 hố
(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 trưng 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 tố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 hồn tồ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
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
-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.
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 tố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 đố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 nhưng xác định (trình biên dịch, trình soạn thảo, tiện ích
quản lý tệp)
-Đặc trưng 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 ngồ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 số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ừ ngồ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 sốt hoặc đưa ra đáp ứng mơi trường ngồi
-Một thành phần điều phối để điều hồ 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ý
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
Các ứng dụng phần mềm nghiệp vụ cịn bao gồm cả tính tốn tương tác (như xử lý giao tác
cho các điểm bán hàng) ngồi ứng dụng xử lý dữ liệu
4.Phần mềm khoa học và cơng nghệ
-Được đặc trưng bởi các thuật tốn
-Trong ứng dụng mới, thiết kế cĩ máy tính trợ giúp (CAD), cĩ chú ý đến các đặc trưng 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ố hố ở ơ tơ, kiểm số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 tốn phi số để giải quyết các vấn đề phức tạp mà tính tố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 số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
tốn, mã hố kiểm thử 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 10
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)
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 sốt
để đảm bảo chất lượng và điều hồ 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 số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ã hố, 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:
Kỹ nghệ hệ
thống
Phân tích &
định rõ yêu cầu
Thiết kế hệ thống
& phần mềm
Mã hố
Kiểm thử đơn vị, tích
hợp & hệ thống
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
1.Kỹ nghệ và phân tích hệ thống
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 trưng giao diện
-Chuyển hố các yêu cầu thành mơ tả phần mềm trước khi mã hố
-Lập tư liệu thiết kế (một phần của cấu hình phần mềm )
4.Mã hố
-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 ngồ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 ngồ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ạ
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
-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 nhưng vẫn tốt hơn đáng kể so với cách tiếp cận ngẫu nhiên
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, nhưng chưa 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 tố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 nhưng 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
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)
Xây dựng
bản mãu
Đánh giá
của khách
hàng về
bản mãu
Làm mịn
bản mãu
Sản phẩ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
đị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.
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
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
hồ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 xố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 xố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 chưa đượ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)
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
phâ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àng
phâ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
hồ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 15
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:
-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 trưng 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
Tập hợp yêu
cầu
Chiến lược thiết kế
Cài đặt sử dụng
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 16
-Để 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.
-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 chưa đượ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ã hố, kiểm thử). Theo một cách khác, bản mẫu cĩ thể tiến hố thành hệ thống sản
xuất, quay trở về khuơn cảnh vịng đời để kiểm thử.
Nhu
cầu
phần
mềm
Nhu cầu trung bình
áp dụng các kỹ thuật thế 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 xốy ốc
thiết kế
Mã hố
Kiểm chứng
4GT
Bản mẫu:
vịng thứ n
4GT
Mơ hình:
vịng thứ n
hệ thống hoạt động
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 17
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ã hố của vịng đơì. 4GT cĩ thể được dùng kèm với mơ hình xốy ốc cho các bước làm bản
mẫu hay mã hố
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 tố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
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
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 tốn cụ thể nào đĩ
+Các bước tổng quát cần thực hiện :
.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 trưng 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
chức năng
phầ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 19
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
+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 nhưng 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 hố 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 tốn, +đặc trưng giao diện
2.Mã hố: 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 hố 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 20
Bước đầu cần hồ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ã hố: 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 chưa)
Sau từng bước cĩ thể tiến hành gỡ lỗi-chẩn đố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 hố 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 nhưng trong
hồ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
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 21
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 ngồi.
3.Nâng cao: chức năng phụ phát sinh bảo trì hồn thiện mở rộng phần mềm ra ngồ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 số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ĩ tồ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 xố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 nhưng 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, nhưng tồ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
Kiểm thử
(đơn vị,
tích hợp
và hợp lệ)
Gỡ lỗi
phá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,
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ương
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 22
-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
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ã
hố) (%)
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ĩ:
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
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ả
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 hố độ 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 hố 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 24
Tĩm tắt
Phần mềm đã trở thành phần tử chủ chốt trong tiến hố 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 hố 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, nhưng 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ĩ?
14 maart, 2015
Các file đính kèm theo tài liệu này:
- bai_giang_ki_nghe_phan_mem_1_3118.pdf