Bài giảng Công nghệ phần mềm (Phần 1)

Chương 1. MỞ ĐẦU

Thời lượng: 07 tiết lý thuyết

Kết thúc chương này, sinh viên có thể:

- Biết được kiến trúc và các lớp phần mềm

- Hiểu được tại sao phải ra đời Công nghệ phần mềm

- Biết được các mô hình phát triển phần mềm

- Biết được các phương pháp, công cụ phát triển phần mềm

1.1. PHẦN MỀM VÀ CÁC LỚP PHẦN MỀM

1.1.1. Phần mềm

Chương trình máy tính là một trình tự các chỉ thị để hướng dẫn máy tính làm việc

nhằm hoàn thành một công việc nào đó do con người yêu cầu.

Phần mềm là một hệ thống các chương trình có thể thực hiện trên máy tính nhằm

hỗ trợ các nhà chuyên môn trong từng lĩnh vực chuyên ngành thực hiện tốt nhất các thao

tác nghiệp vụ của mình. Trong đó,

- Lĩnh vực chuyên ngành: Các lĩnh vực trong mọi mặt của đời sống, xã hội: Giáo

dục, Y tế, Kinh doanh,

- Nhà chuyên môn: Người hoặc bộ phận tham gia vào các hoạt động trong lĩnh vực

tương ứng.

- Thao tác nghiệp vụ: Các công việc của các nhà chuyên môn trong thế giới thực

của lĩnh vực tương ứng.

Nhiệm vụ chính của phần mềm là cho phép các nhà chuyên môn thực hiện các

công việc của họ trên máy tính dễ dàng và nhanh chóng hơn so với khi thực hiện cùng

công việc đó trong thế giới thực.

Hoạt động của mọi phần mềm là sự mô phỏng lại các hoạt động của thế giới thực

trong một góc độ thu hẹp nào đó trên máy tính. Quá trình sử dụng một phần mềm chính

là quá trình người dùng thực hiện các công việc trên máy tính để hoàn tất một công việc

tương đương trong thế giới thực. Quá trình này gồm 3 bước:

- Bước 1: Chọn công việc muốn thực hiện, chẳng hạn. Thuê băng đĩa. Trả băng

đĩa

- Bước 2: Cung cấp các dữ liệu liên quan đến công việc cần thực hiệnBài giảng Công nghệ phần mềm

3

- Bước 3: Xem các kết quả của việc thực hiện các công việc thông qua các màn

hình kết quả hay các báo biểu được in ra

pdf 63 trang yennguyen 3640
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công nghệ phần mềm (Phần 1)

Bài giảng Công nghệ phần mềm (Phần 1)
TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG 
KHOA CÔNG NGHỆ THÔNG TIN 
---- 
PHẠM THỊ MINH THƯƠNG 
BÀI GIẢNG 
CÔNG NGHỆ PHẦN MỀM 
Dành cho sinh viên bậc Đại học chuyên ngành Công nghệ thông tin 
Quảng Ngãi, tháng 12 năm 2018
 TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG 
KHOA CÔNG NGHỆ THÔNG TIN 
---- 
PHẠM THỊ MINH THƯƠNG 
BÀI GIẢNG 
CÔNG NGHỆ PHẦN MỀM 
Dành cho sinh viên bậc Đại học chuyên ngành Công nghệ thông tin 
--TÀI LIỆU LƯU HÀNH NỘI BỘ--
Bài giảng Công nghệ phần mềm 
MỤC LỤC 
LỜI NÓI ĐẦU ................................................................................................................ 1 
Chương 1. MỞ ĐẦU ...................................................................................................... 2 
1.1. PHẦN MỀM VÀ CÁC LỚP PHẦN MỀM ...................................................... 2 
1.1.1. Phần mềm ................................................................................................ 2 
1.1.2. Đặc trưng của phần mềm ........................................................................ 3 
1.1.3. Các lớp phần mềm ................................................................................... 4 
1.1.4. Phân loại phần mềm ................................................................................ 4 
1.2. KIẾN TRÚC CÁC THÀNH PHẦN CỦA PHẦN MỀM .................................. 6 
1.2.1. Thành phần giao tiếp (giao diện) ............................................................ 6 
1.2.2. Thành phần dữ liệu .................................................................................. 6 
1.2.3. Thành phần xử lý .................................................................................... 7 
1.3. CÔNG NGHỆ PHẦN MỀM ............................................................................. 8 
1.3.1. Lịch sử ra đời .......................................................................................... 8 
1.3.2. Định nghĩa và mục tiêu ........................................................................... 9 
1.3.3. Chất lượng phần mềm ........................................................................... 10 
1.3.4. Các đối tượng nghiên cứu ..................................................................... 12 
1.4. VÒNG ĐỜI PHÁT TRIỂN PHẦN MỀM....................................................... 12 
1.4.1. Giai đoạn xác định ................................................................................ 12 
1.4.2. Giai đoạn phát triển ............................................................................... 13 
1.4.3. Giai đoạn bảo trì .................................................................................... 13 
1.5. QUY TRÌNH CÔNG NGHỆ PHẦN MỀM .................................................... 14 
1.5.1. Quy trình 2 giai đoạn............................................................................. 14 
1.5.2. Quy trình 3 giai đoạn............................................................................. 15 
1.5.3. Quy trình 4 giai đoạn............................................................................. 16 
1.5.4. Quy trình 5 giai đoạn............................................................................. 17 
1.5.5. Quy trình 6 giai đoạn............................................................................. 18 
1.6. MÔ HÌNH TIẾN TRÌNH PHẦN MỀM .......................................................... 19 
1.6.1. Mô hình thác nước – Waterfall model .................................................. 20 
1.6.2. Mô hình mẫu thử – Prototyping model ................................................. 21 
1.6.3. Mô hình xoắn ốc – Sprial model ........................................................... 22 
1.6.4. Mô hình tăng trưởng ............................................................................. 24 
1.6.5. Mô hình chữ V ...................................................................................... 25 
1.6.6. Các công nghệ thế hệ thứ 4 (Fourth Generation Techniques – 4GT) ... 26 
Bài giảng Công nghệ phần mềm 
1.7. PHƯƠNG PHÁP, CÔNG CỤ PHÁT TRIỂN PHẦN MỀM .......................... 27 
1.7.1. Phương pháp xây dựng phần mềm ........................................................ 27 
1.7.2. Công cụ và môi trường phát triển phần mềm ....................................... 30 
1.8. CÂU HỎI TRẮC NGHIỆM, BÀI TẬP THẢO LUẬN .................................. 31 
Chương 2. XÁC ĐỊNH YÊU CẦU, PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU .............. 32 
2.1. MÔ TẢ YÊU CẦU ......................................................................................... 32 
2.1.1. Tên công việc ........................................................................................ 32 
2.1.2. Người thực hiện ..................................................................................... 33 
2.1.3. Thời gian, địa điểm ............................................................................... 33 
2.1.4. Cách thức tiến hành và các quy định liên quan ..................................... 33 
2.2. PHÂN LOẠI YÊU CẦU ................................................................................. 34 
2.2.1. Yêu cầu chức năng ................................................................................ 34 
2.2.2. Yêu cầu phi chức năng .......................................................................... 36 
2.3. CÁC BƯỚC XÁC ĐỊNH YÊU CẦU ............................................................. 37 
2.3.1. Khảo sát hiện trạng ................................................................................ 37 
2.3.2. Lập danh sách các yêu cầu .................................................................... 39 
2.4. PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU .......................................................... 41 
2.4.1. Đại cương .............................................................................................. 41 
2.4.2. Nghiên cứu khả thi ................................................................................ 42 
2.4.3. Các nguyên lý phân tích ........................................................................ 43 
2.4.4. Phân tích có cấu trúc ............................................................................. 44 
2.4.5. Phân tích hướng đối tượng .................................................................... 46 
2.4.6. Đặc tả yêu cầu phần mềm ..................................................................... 48 
2.5. MÔ HÌNH HÓA YÊU CẦU ........................................................................... 51 
2.5.1. Mô hình luồng dữ liệu ........................................................................... 52 
2.5.2. Các bước lập sơ đồ luồng dữ liệu .......................................................... 52 
2.6. LÀM BẢN MẪU TRONG QUÁ TRÌNH PHÂN TÍCH ................................ 54 
2.6.1. Các bước làm bản mẫu .......................................................................... 54 
2.6.2. Lợi ích và hạn chế của phát triển bản mẫu ............................................ 55 
2.7. CÂU HỎI TRẮC NGHIỆM, BÀI TẬP THẢO LUẬN .................................. 56 
Chương 3. THIẾT KẾ PHẦN MỀM ............................................................................ 58 
3.1. TỔNG QUAN ................................................................................................. 58 
3.1.1. Khái niệm thiết kế phần mềm ............................................................... 58 
3.1.2. Tầm quan trọng ..................................................................................... 59 
3.1.3. Kết quả thiết kế phần mềm ................................................................... 60 
Bài giảng Công nghệ phần mềm 
3.1.4. Phương pháp thiết kế phần mềm ........................................................... 62 
3.1.5. Thiết kế phần mềm và các yêu cầu chất lượng ..................................... 63 
3.1.6. Chất lượng thiết kế ................................................................................ 65 
3.2. THIẾT KẾ DỮ LIỆU ...................................................................................... 69 
3.2.1. Tổng quan .............................................................................................. 69 
3.2.2. Kết quả của thiết kế dữ liệu ................................................................... 69 
3.2.3. Quá trình thiết kế ................................................................................... 70 
3.2.4. Thiết kế dữ liệu và yêu cầu về chất lượng ............................................ 70 
3.3. THIẾT KẾ GIAO DIỆN ................................................................................. 75 
3.3.1. Tổng quan .............................................................................................. 75 
3.3.2. Kết quả thiết kế ..................................................................................... 76 
3.3.3. Phân loại màn hình giao diện ................................................................ 77 
3.3.4. Quá trình thiết kế ................................................................................... 77 
3.3.5. Nguyên tắc thiết kế giao diện người dùng của Jakob Nielsen .............. 77 
3.4. THIẾT KẾ HƯỚNG CHỨC NĂNG .............................................................. 80 
3.5. THIẾT KẾ HƯỚNG ĐỐI TƯỢNG ................................................................ 80 
3.5.1. Cách tiếp cận ......................................................................................... 80 
3.5.2. Các đặc trưng ........................................................................................ 81 
3.5.3. Cơ sở của thiết kế hướng đối tượng ...................................................... 81 
3.5.4. Các bước thiết kế ................................................................................... 82 
3.5.5. Ưu, nhược điểm của thiết kế hướng đối tượng ..................................... 83 
3.6. CÂU HỎI TRẮC NGHIỆM, BÀI TẬP THẢO LUẬN .................................. 83 
Chương 4. CÀI ĐẶT, KIỂM THỬ VÀ BẢO TRÌ PHẦN MỀM ................................ 84 
4.1. CÁC NGÔN NGỮ LẬP TRÌNH .................................................................... 84 
4.1.1. Các đặc trưng ........................................................................................ 84 
4.1.2. Lựa chọn ngôn ngữ lập trình ................................................................. 86 
4.1.3. Phong cách lập trình .............................................................................. 86 
4.2. KIỂM THỬ PHẦN MỀM ............................................................................... 88 
4.2.1. Khái niệm kiểm thử ............................................................................... 88 
4.2.2. Mục tiêu và giới hạn.............................................................................. 90 
4.2.3. Các loại kiểm thử .................................................................................. 90 
4.2.4. Các mức độ kiểm thử ............................................................................ 97 
4.2.5. Những lỗi phần mềm ........................................................................... 102 
4.2.6. Nguyên tắc kiểm thử ........................................................................... 104 
4.2.7. Thiết kế test case ................................................................................. 105 
Bài giảng Công nghệ phần mềm 
4.2.8. Lập kế hoạch và tài liệu kiểm thử ....................................................... 108 
4.3. BẢO TRÌ PHẦN MỀM ................................................................................. 108 
4.3.1. Hoạt động bảo trì phần mềm và phân loại .......................................... 108 
4.3.2. Đặc điểm của bảo trì phần mềm .......................................................... 110 
4.4. CÂU HỎI TRẮC NGHIỆM, BÀI TẬP THẢO LUẬN ................................ 112 
TÀI LIỆU THAM KHẢO .......................................................................................... 114 
Bài giảng Công nghệ phần mềm 
1 
LỜI NÓI ĐẦU 
 Ngày nay, Công nghệ phần mềm đã đi tới một kỷ nguyên mới, là lĩnh vực nghề 
nghiệp “có sức đề kháng” cao với tình trạng suy thoái của nền kinh tế. Điều đó cho thấy 
tiềm năng của ngành công nghệ phần mềm trong lĩnh vực công nghệ thông tin nói riêng 
và thị trường nhân sự nói chung. 
Bài giảng Công nghệ phần mềm được biên soạn theo nội dung phân phối chương 
trình do Trường Đại học Phạm Văn Đồng xây dựng. Nội dung của bài giảng Công nghệ 
phần mềm bao gồm 4 chương với thời lượng 30 tiết, sẽ cung cấp cho sinh viên những 
kiến thức cơ bản về phát triển một phần mềm, từ khi phần mềm được đặt hàng sản xuất 
cho đến khi phần mềm được đưa vào sử dụng. Quá trình này trải qua các giai đoạn: xác 
định yêu cầu, phân tích đặc tả yêu cầu, thiết kế, cài đặt, kiểm thử, bảo trì; tương ứng với 
mỗi giai đoạn sẽ có những phương pháp và công cụ hỗ trợ đi theo. 
 Mặc dù bản thân có cố gắng biên soạn nhưng bài giảng chắc không tránh khỏi 
những thiếu sót, rất mong nhận được nhiều ý kiến đóng góp của bạn đọc, đồng nghiệp 
và sinh viên. 
 Bài giảng có sử dụng tư liệu của các đồng nghiệp. 
Bài giảng Công nghệ phần mềm 
2 
Chương 1. MỞ ĐẦU 
Thời lượng: 07 tiết lý thuyết 
Kết thúc chương này, sinh viên có thể: 
- Biết được kiến trúc và các lớp phần mềm 
- Hiểu được tại sao phải ra đời Công nghệ phần mềm 
- Biết được các mô hình phát triển phần mềm 
- Biết được các phương pháp, công cụ phát triển phần mềm 
1.1. PHẦN MỀM VÀ CÁC LỚP PHẦN MỀM 
1.1.1. Phần mềm 
 Chương trình máy tính là một trình tự các chỉ thị để hướng dẫn máy tính làm việc 
nhằm hoàn thành một công việc nào đó do con người yêu cầu. 
 Phần mềm là một hệ thống các chương trình có thể thực hiện trên máy tính nhằm 
hỗ trợ các nhà chuyên môn trong từng lĩnh vực chuyên ngành thực hiện tốt nhất các thao 
tác nghiệp vụ của mình. Trong đó, 
- Lĩnh vực chuyên ngành: Các lĩnh vực trong mọi mặt của đời sống, xã hội: Giáo 
dục, Y tế, Kinh doanh, 
- Nhà chuyên môn: Người hoặc bộ phận tham gia vào các hoạt động trong lĩnh vực 
tương ứng. 
- Thao tác nghiệp vụ: Các công việc của các nhà chuyên môn trong thế giới thực 
của lĩnh vực tương ứng. 
 Nhiệm vụ chính của phần mềm là cho phép các nhà chuyên môn thực hiện các 
công việc của họ trên máy tính dễ dàng và nhanh chóng hơn so với khi thực hiện cùng 
công việc đó trong thế giới thực. 
 Hoạt động của mọi phần mềm là sự mô phỏng lại các hoạt động của thế giới thực 
trong một góc độ thu hẹp nào đó trên máy tính. Quá trình sử dụng một phần mềm chính 
là quá trình người dùng thực hiện các công việc trên máy tính để hoàn tất một công việc 
tương đương trong thế giới thực. Quá trình này gồm 3 bước: 
- Bước 1: Chọn công việc muốn thực hiện, chẳng hạn. Thuê băng đĩa. Trả băng 
đĩa 
- Bước 2: Cung cấp các dữ liệu liên quan đến công việc cần thực hiện 
Bài giảng Công nghệ phần mềm 
3 
- Bước 3: Xem các kết quả của việc thực hiện các công việc thông qua các màn 
hình kết quả hay các báo biểu được in ra. 
1.1.2. Đặc trưng của phần mềm 
 Đặc trưng của phần mềm khác với các đặc trưng của phần cứng ... y đổi của nó ảnh hưởng tới 
hành vi của thực thể nào đó mà có tương tác với môi trường đó. Hành vi của nó không 
thể biểu diễn được ở dạng hàm toán học của đầu vào. Thay vì thế, cần phải sử dụng cách 
biểu diễn khác – cách mô tả hướng tiến trình, trong đó đặc tả cái gì đã đạt được bằng 
cách xác định một mô hình các thao tác mong muốn đạt được của hệ thống dưới dạng 
các công việc đáp ứng chức năng đối với kích thích khác nhau từ môi trường. 
Nguyên lý 3: Đặc tả phải bao gồm hệ thống có phần mềm là một thành phần trong 
đó 
 Một hệ thống bao gồm các thành phần tương tác nhau. Chỉ bên trong hoàn cảnh 
của hệ thống toàn bộ và tương tác giữa các thành phần của nó thì hành vi của một thành 
phần riêng mới có thể được xác định. Nói chung, một hệ thống có thể được mô hình hóa 
như một tập hợp các sự vật tích cực và thụ động. Những sự vật này có liên quan lẫn 
Bài giảng Công nghệ phần mềm 
50 
nhau và qua thời gian thì mối quan hệ giữa các sự vật thay đổi. Mối quan hệ động này 
đưa ra sự kích thích cho các sự vật tích cực, còn gọi là các tác nhân, đáp ứng. Sự đáp 
ứng có thể gây ra những thay đổi thêm nữa, và do đó tạo ra thêm kích thích để cho các 
tác nhân có thể đáp ứng lại. 
Nguyên lý 4: Đặc tả phải bao gồm các môi trường mà hệ thống vận hành 
 Tương tự, môi trường mà trong đó hệ thống vận hành và tương tác với cũng phải 
được xác định. 
Nguyên lý 5: Đặc tả hệ thống phả là một mô hình nhận thức 
 Đặc tả hệ thống phải là một mô hình nhận thức chứ không phải là một mô hình 
thiết kế hay cài đặt. Nó phải mô tả một hệ thống như cộng đồng người sử dụng cảm 
nhận thấy. Các sự vật mà nó thao tác phải tương ứng với các sự vật của lĩnh vực đó; các 
tác nhân phải mô hình cho các cá nhân, tổ chức và trang thiết bị trong lĩnh vực đó; còn 
các hành động họ thực hiện thì phải mô hình cho những hoạt động thực tế xuất hiện 
trong lĩnh vực. 
Nguyên lý 6: Đặc tả phải thể hiện tính vận hành 
 Đặc tả phải đầy đủ và hình thức để có thể được dùng trong việc xác định liệu một 
cài đặt được đề nghị có thỏa mãn đặc tả cho những trường hợp kiểm thử tùy ý không. 
Tức là, với kết quả của việc cài đặt trên một tập dữ liệu được chọn một cách tùy ý, phải 
có thể dùng đặc tả để xác định tính hợp lệ cho những kết quả đó. Điều này kéo theo rằng 
đặc tả, mặc dù không phải là một đặc tả hoàn toàn về cách thức, vẫn có thể hành động 
như một bộ sinh các hành vi, vì có thể trong số những hành vi phải có của cài đặt được 
đề nghị. Do đó, theo một nghĩa mở rộng, đặc tả này phải thể hiện tính vận hành. 
Nguyên lý 7: Đặc tả chấp nhận dung sai về tính không đầy đủ 
 Không đặc tả nào có thể là đầy đủ hoàn toàn. Môi trường nó tồn tại thường quá 
phức tạp cho điều đó. Một đặc tả bao giờ cũng là một mô hình – một sự trừu tượng hóa 
– của một tình huống thực (hay được mường tượng) nào đo. Do đo, nó sẽ không đầy đủ. 
Nguyên lý 8: Đặc tả phải được cục bộ hóa và ghép lỏng lẻo 
 Yêu cầu thường xuyên thay đổi nên đặc tả cũng sẽ có nhiều thay đổi. Với nhiều 
thay đổi xuất hiện cho đặc tả, điểm mấu chốt là nội dung và cấu trúc của nó được chọn 
để làm phù hợp hoạt động này. Yêu cầu chính cho sự phù hợp đó là thông tin bên trong 
Bài giảng Công nghệ phần mềm 
51 
đặc tả phải được cục bộ hóa sao cho chỉ một phần nhỏ (một cách lý tưởng) cần phải sửa 
đổi khi thông tin thay đổi, và ở chỗ đặc tả cần được cấu trúc (ghép) một cách lỏng lẻo 
để cho từng phần thể được thêm vào hay loại bỏ một cách dễ dang, và cấu trúc được 
điều chỉnh một cách tự động. 
b. Các mức trừu tượng của đặc tả 
 Các đặc tả được thể hiện ở một vài mức trừu tượng khác nhau cùng với mối liên 
quan giữa các mức ấy. Mỗi mức nhắm đến các đối tượng đọc khác nhau, dựa vào đó họ 
có thể đánh giá bản thiết kế của các nhà phát triển phần mềm. Các mức đó là: 
Mức 1: Định ra yêu cầu 
 Được thể hiện bằng ngôn ngữ tự nhiên về các dịch vụ mà hệ thống sẽ phải cung 
cấp. Phần này phải được viết sao cho dễ hiểu đối với khách hàng và người quản lý hợp 
đồng, người sẽ mua sản phẩm phần mềm và người sẽ sử dụng nó. Kỹ thuật đặc tả phi 
hình thức là thích hợp cho mức đặc tả này. 
Mức 2: Đặc tả yêu cầu 
 Tài liệu nêu ra các dịch vụ một cách chi tiết hơn. Tài liệu này đôi khi còn được 
gọi là tài liệu đặc tả chức năng. Yêu cầu đối với đặc tả ở mức này là phải chính xác đến 
mức có thể làm cơ sở cho hợp đồng giữa nhà phát triển phần mềm và khách hàng. Đồng 
thời cũng cần được viết sao cho dễ hiểu đối với nhân viên kỹ thuật của cả nơi mua phần 
mềm và nơi phát triển hệ thống. Kỹ thuật đặc tả hình thức hẳn là thích hợp cho mức đặc 
tả như vậy, tuy nhiên cũng còn tùy thuộc vào trình độ kiến thức cơ bản của khách hàng. 
Tốt hơn cả là ta có thể dùng loại hỗn hợp để đặc tả. 
Mức 3: Đặc tả phầm mềm/đặc tả thiết kế (đây là mô tả trừu tượng cho phần mềm) 
 Dùng làm cơ sở cho việc thiết kế và thực thi. Cần thể hiện một quan hệ rõ ràng 
giữa tư liệu này và đặc tả yêu cầu. Ta phải xác định rằng: đối tượng đọc ở đây chủ yếu 
là các kỹ sư phần mềm chứ không phải là người sử dụng hoặc người quản lý. Kỹ thuật 
đặc tả hình thức là hoàn toàn phù hợp cho mức đặc tả này. 
2.5. MÔ HÌNH HÓA YÊU CẦU 
 Các mô tả yêu cầu trong giai đoạn xác định yêu cầu chỉ mô tả chủ yếu các thông 
tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực và chưa thể hiện rõ 
Bài giảng Công nghệ phần mềm 
52 
nét việc thực hiện các nghiệp vụ này trên máy tính. Mô tả thông qua các văn bản dễ gây 
ra nhầm lẫn và không trực quan. 
 Mục tiêu của mô hình hóa: Cho phép ta hiểu một cách chi tiết hơn về ngữ cảnh 
vấn đề cần giải quyết một cách trực quan và bản chất nhất (thông tin cốt lõi) yêu cầu. 
 Kết quả: Cho một mô hình mô tả lại toàn bộ hoạt động của hệ thống thực. Mỗi 
phương pháp phân tích đưa ra một kiểu sơ đồ hay mô hình để xây dựng hệ thống. 
2.5.1. Mô hình luồng dữ liệu 
 Có nhiều quan điểm khác nhau tạo ra các nhóm ký pháp đồ họa khác nhau để thể 
hiện DFD. Tuy nhiên, các quan điểm này đều có một số đặc điểm như sau: 
- Trong DFD mức 0, các tác nhân ngoài chủ yếu tạo ra các thông tin cho hệ thống 
và tiêu thụ các thông tin do hệ thống sinh ra. 
- DFD mức 0 được phân rã thành DFD mức 1. Các tiến trình được biểu diễn ở 
DFD mức 1 có thể được làm mịn thêm ở các mức thấp hơn. Việc làm mịn cho 
các DFD tiếp tục cho đến khi một tiến trình chỉ thực hiện một chức năng dễ dàng, 
được cài đặt như một thành phần của chương trình. 
 Trong phân tích yêu cầu, người kỹ sư phần mềm có thể phát hiện một số khía 
cạnh nào đó của hệ thống sẽ thay đổi hay sẽ được nâng cao tròn tương lai hoặc chưa 
được xác định rõ. Một cách khác, người phân tích có thể làm việc trên phần mềm hiện 
có để tìm ra sự thay đổi. Trong cả hai trường hợp, DFD cho phép dễ dàng cô lập lĩnh 
vực thay đổi. Bằng việc hiểu rõ luồng thông tin đi qua biên giới lĩnh vực thay đổi, người 
ta có thể có chuẩn bị tốt cho việc thay đổi trong tương lai, hay có thể tiến hành thay đổi 
hiện tại mà không làm đảo lộn các phần tử khác của hệ thống. 
2.5.2. Các bước lập sơ đồ luồng dữ liệu 
 Có nhiều hướng tiếp cận để tạo lập DFD. Sau đây là một số hướng tiếp cận. 
a. Hướng tiếp cận từ trên xuống 
 Quá trình thực hiện theo hướng tiếp cận này như sau: 
- Lập DFD mức 0. 
- Phân rã DFD mức 0. Có hai cách phân rã: 
Bài giảng Công nghệ phần mềm 
53 
 + Phân rã các xử lý của phần mềm thành nhiều xử lý con và quyết định các luồng 
dữ liệu tương ứng trên các luồng dữ liệu con này. 
 + Phân rã các luồng dữ liệu nhập xuất thành nhiều luồng dữ liệu con và quyết 
định các xử lý tương ứng với các luồng dữ liệu con này. 
- Quá trình kết thúc khi đạt đến các sơ đồ không thể tiếp tục phân rã được (sơ đồ 
lá). 
Đánh giá: 
 Tiếp cận này thích hợp với các phần mềm có số lượng người dùng, số lượng các 
yêu cầu ít (nếu ngược lại DFD mức 0 sẽ rất phức tạp và khó lập chính xác). 
 Tiếp cận này đặc biệt thích hợp với các loại phần mềm mà vì lý do nào đó mà 
các hệ thống yêu cầu chưa được xác định rõ ngay từ đầu. 
 Thông thường cách tiếp cận này ít được sử dụng. 
b. Hướng tiếp cận từ dưới lên 
 Quá trình thực hiện theo hướng tiếp cận này như sau: 
- Lập DFD ở mức cao nhất. Các sơ đồ này sẽ không được tiến hành phân rã thành 
các sơ đồ có cấp lớn hơn. 
 + Tích hợp các sơ đồ này để tạo lập các sơ đồ có cấp nhỏ hơn, thông thường các 
sơ đồ được chọn tích hợp theo một tiêu chí cụ thể: cùng một người sử dụng, cùng một 
loại yêu cầu. Có hai cách tích hợp: 
 + Tích hợp các xử lý của các sơ đồ cấp k vào sơ đồ cấp k-1 và giữ nguyên các 
luồng dữ liêu của các sơ đồ cấp k. 
 + Tích hợp đồng thời các xử lý và các luồng dữ liệu của các sơ đồ cấp k để tạo 
lập sơ đồ cấp k-1. 
- Quá trình kết thúc khi đạt đến DFD mức 0. 
Đánh giá: 
 Tiếp cận này rất thích hợp với các phần mềm có hệ thống yêu cầu chi tiết, cụ thể 
và có quy mô yêu cầu (số lượng người dùng, số lượng yêu cầu) thuộc mức trung bình. 
 Tiếp cận này sẽ khó khăn nếu quy mô yêu cầu lớn và chưa thật rõ ràng chi tiết. 
Bài giảng Công nghệ phần mềm 
54 
c. Hướng tiếp cận phối hợp 
 Quá trình thực hiện theo hướng tiếp cận này như sau: 
- Lập DFD mức k theo một tiêu chí xác định (sơ đồ cho từng người dùng, sơ đồ 
cho một bộ phận, sơ đồ cho một loại yêu cầu) 
- Phân rã DFD mức k thành nhiều DFD mức k+1, tiếp tục cho đến khi đạt được 
các sơ đồ lá. 
- Tích hợp các DFD mức k thành các DFD mức k-1, tiếp tục cho đến khi đạt được 
DFD mức 0. 
Đánh giá: 
 Tiếp cận này thích hợp cho các phần mềm có quy mô yêu cầu lớn, phức tạp. 
 Tiếp cận này được sử dụng rất thường xuyên trong thực tế. 
2.6. LÀM BẢN MẪU TRONG QUÁ TRÌNH PHÂN TÍCH 
 Đối với các hệ thống phức tạp, nhiều khi chúng ta không nắm chắc được yêu cầu 
của khách hàng, chúng ta cũng khó đánh giá được tính khả thi cũng như hiệu quả của hệ 
thống. Một cách tiếp cận đối với trường hợp này là xây dựng bản mẫu. Bản mẫu vừa 
được dùng để phân tích yêu câu vừa có thể tiến hóa thành sản phẩm cuối cùng. 
2.6.1. Các bước làm bản mẫu 
 Xây dựng bản mẫu gồm 6 bước sau: 
Bước 1: Đánh giá yêu cầu phần mềm và xác định liệu phần mềm cần xây dựng có xứng 
đáng để làm bản mẫu không. 
 Không phải tất cả các phần mềm đều có thể đưa tới làm bản mẫu. Ta có thể xác 
định một số nhân tố làm bản mẫu: lĩnh vực ứng dụng, độ phức tạp ứng dụng, đặc trưng 
khách hàng và đặc trưng dự án. 
 Để đảm bảo tính tương tác giữa khách hàng với bản mẫu, chúng ta phải đảm bảo 
các điều kiện: 
- Khách hàng phải cam kết dùng tài nguyên để đánh giá và làm mịn bản mẫu 
- Khách hàng phải có khả năng đưa ra những quyết định về yêu cầu một cách kịp 
thời 
Bài giảng Công nghệ phần mềm 
55 
Bước 2: Với một dự án chấp thuận được, người phân tích xây dựng một cách biểu diễn 
vắn tắt cho yêu cầu. 
 Trước khi có thể bắt đầu xây dựng một bản mẫu, người phân tích phải biểu diễn 
miền thông tin và các lĩnh vực, hành vi và chức năng của vấn đề rồi xây dựng một cách 
tiếp cận hợp lý tới việc phân hoạch. Có thể ứng dụng các nguyên lý phân tích nền tảng 
(phân tích top-down) và các phương pháp phân tích yêu cầu. 
Bước 3: Sau khi đã duyệt xét mô hình yêu cầu, phải tao ra một đặc tả thiết kế vắn tắt 
cho bản mẫu. 
 Việc thiết kế phải xuất hiện trước khi bắt đầu làm bản mẫu. Tuy nhiên thiết kế 
tập trung chủ yếu vào các vấn đề thiết kế dữ liệu và kiến trúc mức đỉnh chứ không tập 
trung vào thiết kế thủ tục chi tiết. 
Bước 4: Phần mềm bản mẫu được tạo ra, kiểm thử và làm mịn. 
 Bản mẫu nên được xây dựng một cách nhanh chóng và với một chi phí nhỏ. Một 
cách lý tưởng, bản mẫu nên được lắp ráp từ các khối chức năng (thư viện) đã có. Có thể 
dùng các ngôn ngữ bậc cao hay các công cụ tự động để xây dựng bản mẫu. 
Bước 5: Khách hàng đánh giá và làm mịn yêu cầu 
 Bước này là cốt lõi của cách tiếp cận làm bản mẫu. Chính ở đâu mà khách hàng 
có thể xem xét cách biểu diễn được cài đặt cho yêu cầu phần mềm, gợi ý những thay đổi 
làm cho phần mềm đáp ứng tốt hơn với các nhu cầu thực tế. 
Bước 6: Lặp lại các bước 4 và 5 cho tới khi tất cả các yêu cầu đã được hình thức hóa 
đầy đủ hay cho tới khi bản mẫu đã tiến hóa thành một phần mềm hoàn thiện. 
2.6.2. Lợi ích và hạn chế của phát triển bản mẫu 
 Phát triển bản mẫu đem lại các lợi ích sau: 
- Sự hiểu lầm giữa những người phát triển phần mềm và những người sử dụng 
phần mềm có thể được nhận thấy rõ khi các chức năng của hệ thống được trình 
diễn 
- Sự thiếu hụt các dịch vụ người dùng có thể được phát hiện 
- Sự khó sử dụng hoặc sự nhầm lẫn các dịch vụ người dùng có thể được thấy rõ và 
được sửa lại 
Bài giảng Công nghệ phần mềm 
56 
- Đội ngũ phát triển phần mềm có thể tìm ra được các yêu cầu không đầy đủ hoặc 
không kiên định khi họ phát triển bản mẫu. 
- Một hệ thống hoạt động được (mặc dù là hạn chế) là bằng chứng thuyết minh cho 
tính khả thi và tính hữu ích của ứng dụng cho các nhà quản lý 
- Bản mẫu đó được dùng làm cơ sở cho việc viết đặc tả một sản phẩm. 
 Mặc dù mục tiêu chủ yếu của việc tạo bản mẫu là để phát triển, thẩm định các 
yêu cầu phần mềm, nó cũng có các lợi ích khác nhau: 
- Dùng để huấn luyện người sử dụng ngay từ trước khi hệ thống được phân phối 
- Dùng trong quá trình thử nghiệm hệ thống. Điều đó nghĩa là cùng các trường hợp 
thử như nhau vừa dùng cho thử bản mẫu vừa cho thử hệ thống. Kết quả khác 
nhau có nghĩa là có sai sót. 
 Tạo bản mẫu là một kỹ thuật giảm bớt rủi ro. Một rủi ro lớn trong việc phát triển 
phần mềm là các sai sót mà đến giai đoạn cuối mới phát hiện và việc chỉnh sửa vào thời 
điểm đó là rất tốn kém. Kinh nghiệm cho thấy việc tạo bản mẫu sẽ giảm bớt số các vấn 
đề của đặc tả yêu cầu và giá cả tổng cộng của việc phát triển có thể là thấp hơn nếu ta 
phát triển bản mẫu. 
 Hạn chế của cách tiếp cận bản mẫu là: 
- Để đơn giản hóa việc tạo bản mẫu người ta có thể bỏ qua các yêu cầu phức tạp. 
Sự thật hẳn là không thể tạo bản mẫu một vài phần quan trọng nhất của hệ thống 
như các đặc điểm về sự an toàn-nguy kịch. 
- Các yêu cầu phi chức năng như độ tin cậy, độ an toàn hay hiệu năng thường 
không được biểu thị đầy đủ trong bản mẫu. 
- Do tính chưa hoàn thiện về chức năng/hiệu năng, người dùng có thể không 
dùng bản mẫu y như cách dùng một hệ thống thực đang hoạt động. Do đó, chất 
lượng đánh giá của khách hàng nhiều khi không cao. 
2.7. CÂU HỎI TRẮC NGHIỆM, BÀI TẬP THẢO LUẬN 
1. Chọn câu trả lời đúng nhất: 
Câu 1: Cái nào sau đây không phải là một loại yêu cầu phần mềm 
(a) Yêu cầu chức năng nghiệp vụ (b) Yêu cầu phi chức năng 
(c) Yêu cầu chức năng hệ thống (d) Yêu cầu phức tạp 
Câu 2: Kỹ thuật nào sau đây không phải là kỹ thuật khảo sát hiện trạng 
Bài giảng Công nghệ phần mềm 
57 
(a) Quan sát (b) Phỏng vấn 
(c) Mô hình luồng dữ liệu (d) Thu thập thông tin, tài liệu 
Câu 3: DFD viết tắt của 
(a) Data Flow Diagram (b) Descriptive Functional Design 
(c) Data Flow Design (d) Tất cả đều sai 
Câu 4: OOA viết tắt của 
(a) Object Oriented Analysis (b) Object Oriented Aim 
(c) Tất cả đều sai (d) Aim Oriented Analysis 
2. Giải thích tầm quan trọng của yêu cầu. Nêu và cho ví dụ từng loại yêu cầu. 
3. Giả sử anh/chị là nhà phát triển và người dùng hài lòng với mẫu thử mà anh/chị 
làm ra. Hơn nữa, người dùng muốn mua lại mẫu thử này để sử dụng cho công việc thực 
tế. Trong trường hợp này, anh/chị sẽ phản hồi ra sao? 

File đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_phan_1.pdf