Bai Giang Cong Nghe Phan Mem - DHSP Hue - Nguyen The Dung tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài t...
NGUYỄN THẾ DŨNG NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Trƣờng Đại học Sƣ phạm - Đại học Huế Huế, tháng 11 năm 2014 Giáo trình viết Nguyễn Thế Dũng, giảng viên Khoa Tin học, Trường ĐHSP - Đại học Huế Giáo trình dùng để giảng dạy học tập học phần: Nhập môn Công nghệ phần mềm Mã số: TINS4392 Lời nói đầu Môn học Nhập môn Công nhệ phần mềm học phần bắt buộc khung chương trình hầu hết sinh viên ngành Sư phạm Tin học Hiện có nhiều tài liệu mơn học Tuy phần lớn trình bày dạng sách chuyên khảo, sinh viên khó khăn việc học mơn Bên cạnh với đặc thù sinh viên ngành Sư phạm, nên việc học tập mơn học mang nặng tính lý thuyết sng sinh viên Ngay từ đầu giáo trình, chúng tơi đưa mục tiêu tóm tắt nội dung học phần mà khung chương trình quy định để làm rõ mục đích cần đạt học mơn học sinh viên Sư phạm Tin học so với sinh viên ngành chuyên Công nghệ phần mềm Cuối chương mục, đưa vào phần ôn tập chương câu hỏi tập nhằm giúp sinh viên dễ học tập có nhìn rộng thực tiễn hay vấn đề mở mà giáo trình chưa đề cập đến giới hạn khn khổ Do khung chương trình, phần quản lý dự án phần mềm tách riêng thành học phần gồm tín chỉ, nên giáo trình khơng bao gồm phần thường thấy số giáo trình khác Giáo trình chia thành chương Chương Tổng quan công nghệ phần mềm Chương Qui trình phát triển phần mềm Chương Phân tích đặc tả yêu cầu Chương Thiết kế Chương Lập trình Chương Kiểm thử Chương Triển khai bảo trì Trong trình biên soạn giáo trình này, chúng tơi có tham khảo số tài liệu số tác giả khác nhằm mang lại kiến thức phong phú, phù hợp cho sinh viên, chưa kịp liên hệ với tác giả Mong Thầy, học sinh viên mà niệm tình bỏ Tác giả chân thành cảm ơn thầy cô Hà Viết Hải, Lê Văn Tường Lân, Nguyễn Thị Hồng Anh… góp ý cho thảo tận tình Đồng thời xin chân thành cảm ơn quý Thầy cô khác giúp đỡ nhiều Chúng gửi lời cảm ơn đến nhiều bạn sinh viên giúp sưu tầm tư liệu làm sở để hoàn thành giáo trình Giáo trình khơng tránh khỏi thiếu sót đặc biệt thiếu cập nhật thông tin mơn học có tính thời cơng nghệ Rất mong góp ý, đánh giá, nhận xét q Thầy cơ, Sinh viên… để giáo trình hoàn thiện Xin chân thành cảm ơn Huế, Ngày 10 tháng 09 năm 2014 Nguyễn Thế Dũng Khoa Tin học – ĐHSP Huế zungnguyen2003@yahoo.com http://sites.google.com/site/nguyenthedunghue/ Dưới trích dẫn mục tiêu tóm tắt nội dung học phần khung chương trình đào tạo giáo viên Tin học Trung học phổ thông Bộ Giáo dục Đào tạo đưa năm 2007 Mục tiêu học phần NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giúp cho sinh viên nắm trình phát triển phần mềm cách hiệu quả, mang tính cơng nghiệp hiểu khái niệm thuộc lĩnh vực Trên sở sinh viên có định hướng đắn học tập nghiên cứu môn khác sâu vào nghiên cứu thực hành làm phần mềm Tóm tắt nội dung học phần NHẬP MƠN CƠNG NGHỆ PHẦN MỀM Nội dung mơn học bao gồm: quy trình xây dựng đánh giá phần mềm; vận dụng để xây dựng phần mềm cỡ nhỏ đáp ứng thực tế công việc đề án MỤC LỤC CHƢƠNG TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM Một số khái niệm Nhân tố người phân loại nghề nghiệp công nghệ phần mềm 15 Sản phẩm phần mềm – đặc trưng phân loại 22 Chƣơng QUI TRÌNH PHÁT TRIỂN PHẦN MỀM 28 Qui trình phát triển phần mềm 28 Mơ hình phát triển phần mềm 34 Trợ giúp tự động hoá phát triển 46 Chƣơng PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 49 Đại cương phân tích đặc tả yêu cầu 49 Phân tích đặc tả yêu cầu 53 Nguyên lý phân tích mơ hình hóa 66 Đặc tả yêu cầu 74 Thẩm định yêu cầu 76 Làm mẫu q trình phân tích 77 Định dạng đặc tả yêu cầu 79 Quản lý yêu cầu 82 Phân tích đặc tả yêu cầu theo mơ hình tiến trình hợp (Unified Process Model) 84 Chƣơng THIẾT KẾ 102 Khái niệm thiết kế phần mềm 102 Thiết kế hướng chức 114 Thiết kế kiến trúc 118 Thiết kế giao diện người dùng 128 Thiết kế thủ tục 133 Thiết kế hướng đối tượng 135 Chƣơng LẬP TRÌNH 151 Khái niệm 151 Ngôn ngữ lập trình 152 Phong cách lập trình 154 Kỹ thuật lập trình 156 Lập trình hướng hiệu thực 158 Chƣơng KIỂM THỬ 161 Đại cương kiểm thử phần mềm 161 Các mức độ kiểm thử 163 Các hoạt động kiểm thử 167 Kỹ thuật kiểm thử 169 Chiến thuật kiểm thử phần mềm 169 Kiểm thử hướng đối tượng 178 Chứng minh tốn học tính đắn chương trình 180 Chƣơng TRIỂN KHAI VÀ BẢO TRÌ 189 Triển khai phần mềm 189 Hiện thực triển khai phần mềm xây dựng theo mơ hình hướng đối tượng 193 Bảo trì 198 BẢNG THUẬT NGỮ Phần mềm Software Phần cứng Hardware Công nghệ phần Software mềm Technology Kỹ nghệ phần Software mềm Engineering 13 CASE Computeraided software engineering Đặc tả yêu cầu Software phần mềm Requirement Specification CHƢƠNG TỔNG QUAN VỀ CƠNG NGHỆ PHẦN MỀM Mục đích Trình bày khái niệm thiết yếu Công nghệ phần mềm định nghĩa, đối tượng nghiên cứu, người, sản phẩm… Yêu cầu Biết khái niệm thiết yếu Công nghệ phần mềm Biết tổ chức nhân vai trò thành viên nhóm phát triển phần mềm Biết loại tài liệu kỹ thuật Một số khái niệm Thuật ngữ phần mềm (software) cần hiểu đối chiếu với thuật ngữ phần cứng (hardware) đưa ngành điện tử Theo phần cứng (hardware) thiết bị sờ mó cầm nắm, phần mềm làm cho thiết bị vơ tri vơ giác hoạt động Phần mềm Tin học hiểu bao gồm: - Tập lệnh máy tính nhằm thực chức xác định - Các cấu trúc liệu cho phép chương trình thao tác với liệu - Các tài liệu giúp cho người dùng vận hành phần mềm Trong hệ thống máy tính, trừ bỏ thiết bị loại phụ kiện phần lại phần mềm Theo nghĩa hẹp: Phần mềm tập chương trình dịch vụ để tăng khả xử lý phần cứng máy tính (như hệ điều hành - OS) Theo nghĩa rộng: Phần mềm tất kỹ thuật ứng dụng để thực dịch vụ chức cho mục đích phần cứng Nếu hiểu theo nghĩa rộng phần mềm bao gồm nhóm minh họa đây: Nhóm kỹ thuật, phương pháp luận Bao gồm: Các khái niệm trình tự cụ thể hóa hệ thống; Các phương pháp tiếp cận giải vấn đề; Các trình tự thiết kế phát triển chuẩn hóa; Các phương pháp đặc tả yêu cầu, thiết kế hệ thống, thiết kế chương trình, kiểm thử, tồn quy trình quản lý phát triển phần mềm Nhóm chương trình Đó phần giao diện với phần cứng, tạo thành từ nhóm lệnh thị cho máy tính biết trình tự thao tác xử lý liệu Phần mềm bản: với chức cung cấp môi trường thao tác dễ dàng cho người sử dụng nhằm tăng hiệu xử lý phần cứng (ví dụ hệ điều hành, chương trình hệ thống) Phần mềm ứng dụng: dùng để xử lý nghiệp vụ thích hợp (quản lý, kế tốn, ), phần mềm đóng gói, phần mềm người dùng, Nhóm tư liệu Đó tư liệu hữu ích, có giá trị cao cần thiết để phát triển, vận hành bảo trì phần mềm Để sản xuất phần mềm với độ tin cậy cao cần tạo tư liệu chất lượng cao: đặc tả yêu cầu, mô tả thiết kế loại, điều kiện kiểm thử, thủ tục vận hành, hướng dẫn thao tác,… Một số giáo trình mơn học dùng thuật ngữ có khác tên môn học Công nhệ phần mềm, Kỹ nghệ phần mềm, Cơng trình học phần 10 Mỗi Node có nhiều component Kết nối node Chúng ta cần quan hệ liên kết node để mơ tả cấu hình kết nối Ví dụ : • Component Instance Mỗi Component Instance thể component (trong component diagram) cài đặt Node Thuộc tính Component Instance gồm: số thành phần (Cardinality); thành phần (Component) • Quan hệ thành phần gồm: Quan hệ Node Node Quan hệ Node Component Instance Quan hệ Component Instance Component Instance • Các loại quan hệ gồm: Kết hợp Node (Node Association); quan hệ phụ thuộc (Dependency) Ví dụ: Dưới lược đồ triển khai mô tả hệ thống quản lý thời khóa biểu 197 Hiện thực triển khai tập trung vào xây dựng thành phần chạy thư viện, module mã nguồn, trang HTML, Các thành phần mã nguồn cụ thể hoá số lớp thiết kế viết ngơn ngữ lập trình khác Cuối triển khai thành phần chạy thiết bị tính tốn Bảo trì 3.1 Khái niệm bảo trì Quy trình phát triển phần mềm có nhiều giai đoạn: Requirements Engineering, Architecting, Design, Implementation, Testing, Software Deployment, and Maintenance Bảo trì (Maintenance) giai đoạn cuối vòng đời hệ thống phần mềm Bảo trì nhằm nâng cấp tính phần mềm, làm cho phần mềm hoạt động an tồn Bảo trì phần mềm thay đổi sản phẩm phần mềm nhằm sửa lỗi, cải thiện hiệu suất thuộc tính khác nhằm giúp phần mềm thích ứng với môi trường Một câu hỏi đặt cần bảo trì phần mềm ? thường có: - Bảo trì định kì 198 - Bảo trì gặp cố, hay đối tác thay đổi yêu cầu phần mềm - Sửa đổi (Fixing) + Làm đúng: xác định loại bỏ lỗi + Thích nghi: sửa đổi để đáp ứng thay đổi hệ điều hành, phần cứng, hệ quản trị sở liệu - Nâng cấp (Enhancing) + Hoàn thiện: thay đổi đáp ứng yêu cầu người dùng + Ngăn ngừa: thay đổi để nâng cao tính thích nghi phần mềm Có thể khái quát lên thành hình thái bảo trì sau: – Tu chỉnh – Thích hợp – Cải tiến – Phòng ngừa Bảo trì để tu chỉnh bảo trì khắc phục khiếm khuyết có phần mềm Do số nguyên nhân điển hình sau: – Kỹ sư phần mềm khách hiểu nhầm – Lỗi tiềm ẩn phần mềm sơ ý lập trình viên kiểm thử chưa bao quát hết – Vấn đề tính phần mềm: khơng đáp ứng yêu cầu nhớ, tệp, thiết kế sai, biên tập sai – Thiếu chuẩn hóa phát triển phần mềm (trước đó) Một số khuyết điểm thường gặp: Lỗi thiết kế Lỗi logic Lỗi mã hóa (Coding) Một số khuyết điểm xảy lỗi xử lý liệu lỗi hoạt động hệ thống 199 Lỗi thiết kế xuất thay đổi, cập nhật làm cho phần mềm hoạt động khơng xác, không đầy đủ, truyền đạt sai hay yêu cầu thay đổi bị hiểu sai Lỗi logic cho việc kiểm thử sai đưa kết luận sai, thực không theo thiết kế chi tiết kỹ thuật liệu không kiểm tra đầy đủ Lỗi mã hóa người mã hóa thực khơng quy tắc chi tiết thiết kế không tuân thủ theo quy tắc logic mã nguồn Bảo trì để thích hợp tu chỉnh phần mềm theo thay đổi mơi trường bên ngồi nhằm trì quản lý phần mềm theo vòng đời Thay đổi phần mềm thích nghi với mơi trường công nghệ phần cứng, môi trường phần mềm Những nguyên nhân thay đổi là: - Thay đổi phần cứng (ngoại vi, máy chủ, .) - Thay đổi phần mềm (môi trường) thay đổi hệ điều hành - Thay đổi cấu trúc tệp mở rộng sở liệu Môi trường đề cập đến tất ảnh hưởng, hành động thay đổi bên làm cho biến phần mềm khơng xác như: Quy tắc kinh doanh, sách phủ, mơ hình làm việc… Ví dụ: Chính phủ có tác động đến sách tiền tệ, ngân hàng phải thay đổi hệ thống để phù hợp với loại tiền tệ Bảo trì để cải tiến việc tu chỉnh hệ phần mềm theo yêu cầu ngày hoàn thiện hơn, đầy đủ hơn, hợp lý Những nguyên nhân chính: - Do muốn nâng cao hiệu suất nên thường hay cải tiến số phương thức - Mở rộng thêm chức cho hệ thống - Cải tiến quản lý kéo theo cải tiến tư liệu vận hành trình tự cơng việc - Thay đổi người dùng thay đổi thao tác 200 Có thể nói bảo trì để cải tiến quan tâm đến việc cải tiến chức hoạt động để tăng hiệu suất hệ thống tăng cường giao diện người dùng Bảo trì để phòng ngừa cơng việc tu chỉnh chương trình có tính đến tương lai phần mềm mở rộng thay đổi Với loại bảo trì này, quan tâm tới hoạt động nhằm tăng cường khả bảo trì hệ thống Như cập nhật tài liệu, giấy tờ, ghi hay cải thiện cấu trúc hệ thống Thực thiết kế phần mềm phải tính đến tính mở rộng nó, nên thực tế ta gặp bảo trì phòng ngừa phần mềm thiết kế tốt 3.2 Quy trình chung trình quản lý bảo trì phần mềm - Khách hàng thay đổi yêu cầu phần mềm - Bên chịu trách nhiệm bảo trì chuyển thành yêu cầu bảo trì (Maintenance Request) chuyển cho người quản lí q trình bảo trì (Maintenance manager) - Bộ phận quản lý bảo trì chấp nhận việc bảo trì chuyển tài liệu mã nguồn (source code) cho lập trình viên - Lập trình viên chỉnh sửa tài liệu mã nguồn cho phù hợp với yêu cầu mới, sau chuyển ngược lại cho phận quản lý bảo trì giao cho khách hàng Hình 7.1 Qui trình quản lý bảo trì 201 Để đáp ứng yêu cầu bảo trì (Maintance Request) cần thực công việc sau: Chuẩn bị loại độ đo như: số dòng lệnh thêm vào hay bị thay đổi, thời gian thực bảo trì, Đảm bảo yêu cầu chấp nhận Hiểu kĩ vấn đề đặt để bảo trì Phân loại yêu cầu: sửa đổi hay nâng cấp Quyết định xem có cần thiết kế lại mức cao hay không Thiết kế sửa đổi yêu cầu Kế hoạch chuyển đổi từ thiết kế cũ Đánh giá ảnh hưởng việc sửa đổi lên ứng dụng Triển khai sửa đổi 10 Thực kiểm thử đơn vị cho phần thay đổi 11 Tiến hành kiểm thử tăng dần (regression) 12 Thực kiểm thử hệ thống với khả 13 Cập nhật tài liệu cấu hình, yêu cầu, thiết kế kiểm thử Trong trình bảo trì thường xảy khía cạnh mặt quản lý thường khó xác định thu hồi vốn Xét mặt tiến trình, cần phối hợp mở rộng để đáp ứng u cầu bảo trì mở rộng Ở góc độ kỹ thuật cần kiểm soát tất ảnh hưởng thay đổi thường chi phí cho việc kiểm thử bảo trì lớn 3.3 Hoạt động bảo trì Những hoạt động bảo trì phần mềm : Quá trình bảo trì phần mềm bao hàm cơng việc q trình phát triển phần mềm: phân tích, thiết kế, code, test, tài liệu hóa Ngồi ra, có hoạt động khác đặc thù có bảo trì: Transition: chuỗi hoạt động quản lý đặt mà phần mềm chuyển tiếp từ người phát triển (developer) đến người bảo trì phần mềm (maintainer) 202 Modification Request acceptance/rejection: dựa vào thông số kích thước, khả thực độ phức tạp yêu cầu thay đổi, trình bảo trì từ chối hay chấp nhận yêu cầu thay đổi Modification Request and Problem Report Help Desk: chức hỗ trợ người dùng cuối việc đánh giá độ ưu tiên, xác định chi phí chuyển hướng yêu cầu họ nhận Service Level Agreements: Thực thỏa thuận ghi hợp đồng bảo trì mức độ bảo trì Dưới hình ảnh tóm lược tiến trình hoạt động bảo trì, bao gồm: - Thiết kế để bảo trì - Xác định phạm vi bảo trì - Xác định loại bảo trì - Phát triển kế hoạch bảo trì - Đánh giá chi phí - Thực bảo trì Hình 7.2 Các hoạt động bảo trì 3.4 Chi phí bảo trì 203 Theo thống kê ngành công nghiệp phần mềm cho thấy chi phí bảo trì ngày tăng cao nhiều so với chi phí phát triển phần mềm Bảng 7.1 Bảng thống kê chi phí cho q trình bảo trì (nguồn [8]) Hoạt động Hiểu yêu cầu xác định chức cần sửa đổi hay thêm vào Thay đổi thiết kế Phân tích ảnh hưởng trình diễn Triển khai thay đổi thành mã nguồn Thay đổi thơng tin cấu hình Đánh giá (persondays) 2-5 1–4 1–4 1-4 2–6 Hoạt động Đánh giá (person-days) Dịch tích hợp 2-3 Kiểm thử chức thay đổi Kiểm thử trình diễn 2-4 Đưa báo cáo kết Tổng kết 2–4 14 - 35 3.5 Kỹ thuật bảo trì Chúng ta quan tâm đến hai loại hình bảo trì là: + Bảo trì có tái kỹ nghệ + Bảo trì khơng tái kỹ nghệ Các lựa chọn đưa khơng tiếp tục bảo trì: Thay • Mua thay • Xây dựng thay (tái kỹ nghệ, phát triển kiến trúc mới, thay pha) Phối hợp: hệ thống cũ phần tích hợp hệ thống Bao gói: hệ thống cũ sử dụng server cho hệ thống Những kĩ thuật bảo trì phầm mềm, gồm : 3.5.1 Hiểu chƣơng trình (Program Comprehension) 204 Lập trình viên dành thời gian thích đáng cho việc đọc hiểu chương trình để thực thi thay đổi lên chương trình Sử dụng cơng cụ “code browser” Tài liệu đặc tả rõ ràng súc tích giúp nhiều cho việc hiểu chương trình 3.5.2 Reverse engineering Reverse engineering hiểu trình phân tích hệ thống để xác định thành phần liên quan hệ thống mối liên hệ chúng nhằm tạo thể hệ thống dạng khác hay cấp độ trừu tượng cao Khả kĩ thuật phác thảo luồng đồ thị xử lý chương trình từ mã nguồn 3.5.3 Tái kỹ nghệ (Re-engineering) Tái kỹ nghệ (Re-engineering) trình gồm vòng xoắn ốc có sáu hoạt động sau đây: Phân tích tổng quát (Inventory analysis); Tái cấu trúc tư liệu (Document restructuring); Reverse engineering; Tái cấu trúc mã (Code restructuring); Tái cấu trúc liệu (Data restructuring) Tiến triển cơng nghệ (Forward engineering) Có thể xem tái kỹ nghệ (Re-engineering) xem xét thay đổi phần mềm để tái thiết dạng Bao gồm thực thi với định dạng Q trình có liên quan đến việc hệ thống kế thừa (legacy) có phải làm dễ bảo trì 3.6 Mơ hình quy trình bảo trì phần mềm Mơ hình quy trình bảo trì phần mềm gọi quy trình thay đổi u cầu mềm (Software Change Request) Theo tiêu chuẩn IEEE 1219-98, ta có mơ hình bao gồm giai đoạn sau : Modification Request: yêu cầu thay đổi xuất phát từ nhiều lý (xuất lỗi, môi trường để hệ thống thực thi thay đổi, người dùng cần thêm tính năng, …) 205 Classification & Identification: phân loại yêu cầu thay đổi sửa chữa (repair) nâng cấp (enhancement) xác định rõ thay đổi cần thực Analysis: phân tích thay đổi, ảnh hưởng thay đổi lên hệ thống cũ (chú ý: thay đổi nhỏ ảnh hưởng toàn hệ thống) Design: thiết kế cho phù hợp thay đổi Implementation: thực thay đổi source code System Test: thực việc kiểm thử lại chức thay đổi, kiểm thử hồi quy toàn hệ thống Acceptance Test: thực kiểm thử để phân phối cho khách hàng Delivery: phân phối Với chuẩn ISO/IEC 14764-00, có mơ hình sau: Process Implementation: + Phát triển kế hoạch bảo trì + Thiết lập thủ tục cho yêu cầu thay đổi + Thực thi quy trình quản lý tinh chỉnh phần mềm Problem and Modification Analysis: + Xây dựng bước đầu việc phân tích + Kiểm tra vấn đề + Phát triển tùy chọn cho việc thực thi thay đổi + Tài liệu hóa kết + Chấp thuận cho tùy chọn chỉnh sửa Modification Implementation: + Thực phân tích chi tiết + Phát triển code thực test thay đổi Maintenance Review/Acceptance: + Tiến hành xem xét lại 206 + Chấp thuận chỉnh sửa 3.7 Lƣợng hóa Các độ đo sử dụng bảo trì + Số dòng lệnh + Chi phí người-tháng để thực hoạt động bảo trì + Số lỗi Bảng 7.2 Các độ đo đƣợc sử dụng bảo trì Mục tiêu Câu hỏi Độ đo đƣợc lựa chọn (theo IEEE) Có vấn đề ảnh Mật độ lỗi hưởng khách hàng? Thời gian trung bình xảy lỗi Tỷ lệ số lỗi phát hiện/số lỗi sửa qua bảo trì Thỏa mãn tối đa khách hàng Thời gian để thay đổi Kết thúc sửa lỗi vấn đề? Thời gian trung bình yêu cầu để sửa lỗi Khoảng thời gian sửa lỗi Thời gian trung bình để sửa lỗi Chỗ mấu chốt? Hiệu suất sửa lỗi nhân viên Trung bình người-tháng để phát hiện/sửa chữa lỗi Hiệu máy tính Thời gian trung bình (CPU) lỗi Tối ưu hóa Tài nguyên sử dụng + Nỗ lực thời gian tiêu tốn cho lỗi chi phí đâu? lịch trình + Nỗ lực thời gian tiêu tốn cho 207 việc lập kế hoạch + Nỗ lực thời gian tiêu tốn cho đòi hỏi thêm khách hàng + Nỗ lực thời gian tiêu tốn cho báo cáo lỗi + Nỗ lực thời gian tiêu tốn cho sửa chữa + Nỗ lực thời gian tiêu tốn cho nâng cấp Tối thiểu Lỗi phát chủ • Số đầu vào đầu hóa số lỗi yếu đâu? module • Độ phức tạp 3.8 Một số hiệu ứng lề cơng việc bảo trì (xem [10]) Sửa đổi phần mềm công việc dễ dẫn đến hiệu ứng lề không mong đợi, ta thường gặp ba loại hiệu ứng lề sau: 3.8.1 Hiệu ứng lề việc thay đổi mã nguồn Một thay đổi đơn giản tới câu lệnh đơn đem lại hậu thảm khốc Mặc dù ảnh hưởng tiêu cực, việc sửa lỗi dẫn đến vấn đề phức tạp Mặc dù tất thay đổi mã lệnh chương trình tạo lỗi, tập hợp thay đổi sau gây nhiều lỗi - Một chương trình bị xóa hay thay đổi - Một dòng nhãn bị xóa hay thay đổi - Một biến bị xóa hay thay đổi - Các thay đổi để tăng khả thực - Việc mở đóng file bị thay đổi - Các phép toán logic bị thay đổi - Việc thay đổi thiết kế chuyển thành thay đổi lớn chương trình 208 - Các thay đổi ảnh hưởng đến việc chạy thử trường hợp biên 3.8.2 Hiệu ứng lề việc thay đổi liệu Trong trình bảo trì, việc sửa đổi thường tiến hành phần tử riêng rẽ cấu trúc liệu Khi liệu thay đổi, việc thiết kế phần mềm khơng phù hợp với liệu lỗi có khả xảy Hiệu ứng lề liệu xảy kết việc thay đổi cấu trúc liệu Các thay đổi liệu sau thường gây lỗi: - Định nghĩa lại số cục số địa phương - Định nghĩa lại cấu trúc ghi hay cấu trúc file - Tăng giảm kích thước mảng - Thay đổi liệu tổng thể - Định nghĩa lại cờ điều khiẻn trỏ - Xếp lại tham số vào hay tham số chương trình Hiệu ứng lề liệu hạn chế tài liệu thiết kế mô tả cấu trúc liệu cung cấp lời dẫn tham khảo đến phần từ liệu, ghi, file cấu trúc khác module phần mềm 3.8.3 Hiệu ứng lề việc thay đổi tài liệu Việc bảo trì thường tập trung vào cấu hình phần mềm khơng tập trung riêng vào việc sửa đổi mã Sự ảnh hưởng tài liệu xảy thay đổi chương trình nguồn mà không thay đổi tài liệu thiết kế tài liệu hướng dẫn sử dụng Bất lúc có thay đổi luồng liệu, cấu trúc phần mềm, thủ tục hay có liên quan, tài liệu kỹ thuật phải cập nhật Tài liệu thiết kế phản ánh không trạng thái phần mềm có lẽ tồi tệ khơng có tài liệu Hiệu ứng lề xảy lần bảo trì sau đó, việc nghiên cứu không kỹ tài liệu kỹ thuật, dẫn tới đánh giá sai đặc tính phần mềm Đối với người sử dụng, phần mềm tốt có tài liệu hướng dẫn sử dụng chúng Các hiệu ứng lề tài liệu giảm tồn cấu hình xem xét trước phát hành phiên phần mềm tiếp sau Thực tế vài yêu cầu bảo hành đòi hỏi khơng thay đổi thiết kế phần mềm 209 mã chương trình, mà cần thiếu rõ ràng tài liệu người sử dụng Trong trường hợp nổ lực bảo trì tập trung vào tài liệu TỔNG KẾT Các vấn đề phương án triển khai, đóng gói sản phẩm, lập tài liệu hướng dẫn Các lược đồ triển khai trình thực triển khai phần mềm thực theo mơ hình hướng đối tượng đưa Các qui trình, loại hình bảo trì, hoạt động bảo trì, chi phí bảo trì hiệu ứng lề … chuẩn trình bảo trì đề cập Các vấn đề quản lý cấu hình thay đổi phần mềm cần quan tâm trình bày mơn học Quản lý dự án phần mềm Lời kết sách Trước thực tập cuối sách, xin có lời để kết lại sách Hy vọng học môn học Công nhệ phần mềm, bạn không nghĩ tựa học nghề … mổ thịt rồng! Câu hỏi tập Tích hợp? Lập kế hoạch tích hợp? Các nhân tố ảnh hưởng trình tự tích hợp? Quan hệ chi phí tích hợp chi phí module? Chuyển giao phần mềm? Các hoạt động chuyển giao phần mềm? Bảo trì phần mềm gì? Hoạt động bảo trì phần mềm yếu? Trình bày chuẩn IEEE 840-1992 bảo trì? Các khó khăn hoạt động bảo trì ? Các độ đo sử dụng hoạt động bảo trì ? 10 Tìm hiểu việc lập hồ sơ bảo trì theo chuẩn IEEE 840-1992 tìm kiếm hồ sơ mẫu cho bảo trì mạng Internet 11 Trình bày hiệu ứng lề bảo trì 12 Tìm hiểu thêm cách tính chi phí cho bảo trì 210 TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Vỵ, Nguyễn Việt Hà, Giáo trình kỹ nghệ phần mềm, NXB Đại học quốc gia Hà Nội, 2008 [2] Nguyễn Văn Vỵ, Phân tích thiết kế hệ thống thông tin đại, Hướng cấu trúc hướng đối tượng, NXB Thống kê, 2002 [3] Ngô Trung Việt, Nhập môn Kỹ nghệ phần mềm, NXB Khoa học Kỹ thuật, 2003 [4] Eric S Raymond, The Art of Unix Programming, 2003 [5] Mike Gancarz, The Unix Philosophy, Digital Press, 1994 [6] R Pressman, Software Engineering: A Practioner’s Approach 6th, Ed., McGraw-Hill, 2004 [7] Sommerville, Software Engineering 7th Ed., Addison-Wesley, 2004 [8] Nguyễn Ngọc Bình, Nhập mơn Kỹ nghệ phần mềm, ĐHCN – ĐHQG Hà Nội, 2010 [9] Khoa Cơng nghệ Thơng tin, ĐHBK Thành phố Hồ Chí Minh, Bài giảng Công nghệ phần mềm, 2012 [10] Lê Văn Tường Lân, Công nghệ phần mềm, ĐHKH Huế, 2009 211 ... Nguyễn Thế Dũng Khoa Tin học – ĐHSP Huế zungnguyen2003@yahoo.com http://sites.google.com/site/nguyenthedunghue/ Dưới trích dẫn mục tiêu tóm tắt nội dung học phần khung chương trình đào tạo giáo... kỹ như: - Định danh, đánh giá, cài đặt, lựa chọn phương pháp luận thích hợp công cụ CASE (Computer-aided software engineering) - Biết cách sử dụng mẫu phần mềm (software prototyping) - Biết cách... triển phần mềm gọi nhóm hợp lý? Sau vài yếu tố cần xem xét: - Nhóm có thành viên, - Nhóm tổ chức nào, - Tình hình thực tế thành viên nhóm, - Mơi trường, điều kiện mà nhóm làm việc, Mỗi thành viên