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
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)
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:
- bai_giang_cong_nghe_phan_mem_phan_1.pdf