Nội dung chính của giáo trình giới thiệu chi tiết về vòng đời phần mềm, các mô hình phát triển phần mềm và các pha cần thực hiện trong quá trình xây dựng một hệ thống phần mềm, bao gồm: lập kế hoạch, khảo sát, phân tích, thiết kế, cài đặt, kiểm thử, tích hợp, bảo trì … Để từ đó, giúp bạn có được những khái niệm căn bản về Công nghệ phần mềm và có khả năng áp dụng để xây dựng một hệ thống cụ thể. Mời các bạn tham khảo!
BỘ LAO ĐỘNG - THƯƠNG BINH VÀ XÃ HỘI TỔNG CỤC DẠY NGHỀ Dự án giáo dục kỹ thuật dy ngh (VTEP) trình độ đào tạo cc GIO TRèNH Mơn học: CƠNG NGHỆ PHẦN MỀM Mã số: ITPGR09 NGHỀ: LẬP TRÌNH MÁY TÍNH Trình độ (lành nghề) Đà lạt- 2007 Tuyên bố quyền : Tài liệu thuộc loại sách giáo trình Cho nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác có ý đồ lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm Tổng Cục Dạy nghề làm cách để bảo vệ quyền Tổng Cục Dạy Nghề cám ơn hoan nghênh thơng tin giúp cho việc tu sửa hồn thiện tốt tàI liệu Địa liên hệ: Dự án giáo dục kỹ thuật nghề nghiệp Tiểu Ban Phát triển Chương trình Học liệu ……………………………………………… LỜI TỰA Đây tài liệu xây dựng theo chương trình dự án giáo dục kỹ thuật dạy nghề, để có đươc giáo trình dự án tiến hành theo hai giai đoạn Giai đoạn : Xây dựng chương trình theo phương pháp DACUM, kết gian đoạn khung chương trình gồm 230 trang cấp độ 170 trang cấp độ Giai đoạn : 29 giáo trình 29 tài liệu hướng dẫn giáo viên cho nghề lập trình máy tính cấp độ Để có khung chương trình chúng tơi mời giáo viên, chuyên gia làm việc lĩnh vực công nghệ thông tin xây dựng chương trình Trong giai đoạn viết giáo trình chúng tơi có điều chỉnh để giáo trình có tính thiết thực phù hợp với phát triển lĩnh vực công nghệ thông tin Công nghệ phần mềm ngành thiếu lĩnh vực Công nghệ thông tin Ngày nay, sản xuất hệ thống phần mềm lớn hữu ích nhờ phần lớn vào phát triển Công nghệ phần mềm Trong phạm vi giao trình Cơng nghệ phần mềm, chúng tơi giới thiệu chi tiết vòng đời phần mềm, mơ hình phát triển phần mềm pha cần thực trình xây dựng hệ thống phần mềm, bao gồm: lập kế hoạch, khảo sát, phân tích, thiết kế, cài đặt, kiểm thử, tích hợp, bảo trì … Để từ đó, giúp sinh viên có khái niệm Công nghệ phần mềm có khả áp dụng để xây dựng hệ thống cụ thể Trong trình biên soạn, cố gắng tham khảo nhiều tài liệu giáo trình khác tác giả khơng khỏi tránh thiếu sót hạn chế Tác giả chân thành mong đợi nhận xét, đánh giá góp ý để giáo trình ngày hồn thiện Tài liệu thiết kế theo mô đun/ môn học thuộc hệ thống mô đun/môn học chương trình, để đào tạo hồn chỉnh nghề Lập trình máy tính cấp trình độ lành nghề dùng làm Giáo trình cho học viên khố đào tạo, sử dụng cho đào tạo ngắn hạn cho công nhân kỹ thuật, nhà quản lý người sử dụng nhân lực tham khảo Đây tài liệu thử nghiệm hoàn chỉnh để trở thành giáo trình thức hệ thống dạy nghề Đà lạt Tháng 10 năm 2007 MỤC LỤC ĐỀ MỤC TRANG Lời tựa Mục lục Giới thiệu môn học Các hình thức học tập mơđun/mơn học Bài Tổng quan vế công nghệ phần mềm 11 Bài Quản lý dự án phần mềm 24 Bài Phân tích yêu cầu hệ thống phần mềm 29 Bài Thiết kế cài đặt phần mềm 49 Bài Kiểm thử bảo trì phần mềm 61 10 Thuật ngữ chuyên ngành 73 11 Tài liệu tham khảo 74 GIỚI THIỆU VỀ MƠ ĐUN/MƠN HỌC Vị trí, ý nghĩa, vai trị mô đun/môn học : Công nghệ phần mềm ngành thiếu lĩnh vực Công nghệ thơng tin Ngày nay, sản xuất hệ thống phần mềm lớn hữu ích nhờ phần lớn vào phát triển Công nghệ phần mềm Trong phạm vi giáo trình Cơng nghệ phần mềm, chúng tơi giới thiệu chi tiết vịng đời phần mềm, mơ hình phát triển phần mềm pha cần thực trình xây dựng hệ thống phần mềm, bao gồm: lập kế hoạch, khảo sát, phân tích, thiết kế, cài đặt, kiểm thử, tích hợp, bảo trì … Để từ đó, giúp sinh viên có khái niệm Cơng nghệ phần mềm có khả áp dụng để xây dựng hệ thống cụ thể Mục tiêu mô đun/môn học: Sau học xong mô đun học viên có khả năng: Nắm khái niệm cơng nghệ phần mềm, nắm mơ hình quy trình làm phần mềm Biết phân tích, thiết kế cài đặt, đánh giá chất lượng phần mềm biết quản lý dự án phần mềm vừa nhỏ Mục tiêu thực mô đun/môn học: Học xong mơ đun học viên có khả năng: - Hiểu khái niệm công nghệ phần mềm: Phần mềm, cơng nghệ phần mềm, quy trình làm phần mềm - Lựa chọn mơ hình làm phần mềm: thác nước, mẫu thử, xoắn ốc cho yêu cầu hệ thống cụ thể - Đặc tả yêu cầu phần mềm, xác định phạm vi, hạn chế phần mềm - Đặc tả phân tích thiết kế logic, vật lý - Sử dụng kỹ thuật lập trình tổ chức liệu để xây dựng phần mềm theo yêu cầu - Đặc tả sản phẩm hướng dẫn sử dụng phần mềm - Phát triển nâng cấp bảo trì phần mềm Quản lý dự án phần mềm nhỏ: Lập kế hoạch theo dõi triển khai dự án Nội dung mơ đun/mơn học : CÁC KHÁI NIỆM VỀ CÔNG NGHỆ PHẦN MỀM QUẢN LÝ DỰ ÁN PHẦN MỀM PHÂN TÍCH YÊU CẦU HỆ THỐNG PHẦN MỀM THIẾT KẾ VÀ CÀI ĐẶT PHẦN MỀM ĐẢM BẢO, KIỂM CHỨNG, BẢO TRÌ VÀ PHÁT TRIỂN PHẦN MỀM Kỹ thực hành: - Đọc kỹ hiểu thấu đáo khái niệm công nghệ phần mềm - Phân tích yêu cầu hệ thống phần mềm ứng dụng - Sử dụng ký pháp chuẩn để đặc tả phần mềm - Có kỹ tổ chức làm việc theo nhóm quản lý dự án Thái độ học viên: - Rèn tư logic để phân tích, tổng hợp vấn đề cần giải Kiên trì nắm bắt kiến thức chất công nghệ phần mềm - Ham học hỏi, không bảo thủ với kiểu làm phần mềm cũ - Thao tác cẩn thận xác xây dựng ứng dụng - Tự tin làm việc Kiên trì mạnh dạn thực công cụ phát triển phần mềm Sơ đồ quan hệ theo trình tự học nghề Hệ thống máy tính Giao diện người máy Lập trình nâng cao Lập trình Lập trình hướng đối tượng Mạng Cấu trúc liệu thuật giải Kỹ tin học văn phòng Thiết kế hướng đối tượng Cơ sở liệu Kỹ Công nghệ phần mềm Internet & WWW Thiết kế Web Công nghệ Đa phương tiện Quản lý dự án phần mềm Lập trình Visual Basic Môi trường PT Phần mềm Anh văn cho tin học Phân tích thiết kế hệ thống Ứng dụng CNTT doanh nghiệp Kỹ Giao tiếp Cơ sở toán học Lập trình Web Phần cứng máy tính Hệ sở liệu Hướng dẫn đồ án tốt nghiệp An tồn lao động Thi tốt nghiệp Ghi chú: Cơng nghệ phần mềm môn học bắt buộc Mọi học viên phải học đạt kết chấp nhận kiểm tra đánh giá thi kết thúc đặt chương trình đào tạo Những học viên qua kiểm tra thi mà không đạt phải thu xếp cho học lại phần chưa đạt phải đạt điểm chuẩn phép học tiếp mô đun/ môn học Học viên, chuyển trường, chuyển ngành.nếu học sở đào tạo khác phải xuất trình giấy chứng nhận; Trong số trường hợp phải qua sát hạch lại CÁC HÌNH THỨC HỌC TẬP CHÍNH TRONG MƠ ĐUN/MƠN HỌC 1- Học lớp : - Định nghĩa thuật ngữ CNPM - Quy trình xây dựng phần mềm - Tiến trình quản lý phần mềm - Lập kế hoạch dự án phần mềm - Theo dõi dự án phần mềm - Quản lý rủi ro - Yêu cầu hệ thống - Yêu cầu người sử dụng - Tài liệu đặc tả yêu cầu - Quy trình xác định u cầu - Các mơ hình hệ thống - Các tảng thiết kế phần mềm - Thiết kế giao diện người dùng - Bảo đảm chất lượng phần mềm - Kiểm thử phần mềm 2- Nghe thuyết trình phịng chun mơn hố : - Quy trình xây dựng phần mềm - Tiến trình quản lý phần mềm - Lập kế hoạch dự án phần mềm - Theo dõi dự án phần mềm 3- Tự nghiên cứu tài liệu làm tập : - Tiến trình quản lý phần mềm - Lập kế hoạch dự án phần mềm - Theo dõi dự án phần mềm 4- Thực tập phịng máy tính trường : - Lập kế hoạch dự án phần mềm - Theo dõi dự án phần mềm - Quản lý rủi ro - Yêu cầu hệ thống - Yêu cầu người sử dụng - Tài liệu đặc tả yêu cầu - Thiết kế giao diện người dùng 5- Tham quan thực tế sở sản xuất phần mềm : - Các mơ hình hệ thống - Các tảng thiết kế phần mềm - Bảo đảm chất lượng phần mềm - Kiểm thử phần mềm U CẦU VỀ ĐÁNH GIÁ HỒN THÀNH MƠ ĐUN/MƠN HỌC Kiểm tra trắc nghiệm thực máy tính chấm cho kết Xây dựng ngân hàng câu hỏi Học viên nhận ngẫu nhiên Các câu hỏi trắc nghiệm 100 câu (mỗi chức 20 câu), Thời gian kiểm tra hạn chế 60 phút Học viên chưa qua lớp học máy tính tối thiểu biết gõ bàn phím di chuột Thang điểm: 0-49 : Khơng đạt 50-69 : Đạt trung bình 70-85 : Đạt 86-10 : Đạt Giỏi 10 Bài tập Câu Giải thích cần phải thiết kế kiến trúc trước viết đặc tả? Câu Giải thích xung đột lại xảy thiết kế kiến trúc yêu cầu phải đảm bảo tính sẵn dùng tính bảo mật? Câu Hãy đề xuất mơ hình cấu trúc thích hợp thiết kế kiến trúc cho hệ thống Hệ thống bán vé tàu hoả tự động Hệ thống hội nghị trực tuyến, cho phép dạng liệu âm thanh, hình ảnh, văn truyền tới người sử dụng cách đồng thời Câu Hãy đề xuất mơ hình điều khiển thích hợp cho hệ thống sau: Bộ điều khiển tivi nhận tín hiệu từ đơn vị điều khiển từ xa Hệ thống toán lương, xử lý theo lô Lấy thông tin thời gian làm việc, hệ số lương; in bảng lương chuyển thông tin vào tài khoản ngân hàng Câu Nêu số trường hợp cung cấp giao diện người dùng cách quán Câu Hãy đề xuất vài giao diện người dùng thích hợp cho hệ thống bán sách trực tuyến, dành cho khách hàng người khuyết tật Câu Cho biết ưu điểm việc hiển thị thông tin cách trực quan Lấy ví dụ để minh hoạ cho tính vượt trội việc hiển thị thông tin trực quan so với thông tin thống kế văn bản, số liệu Câu Nêu ý sử dụng màu để thiết kế giao diện Câu Viết kịch tương tác hệ thống dịch vụ đặt mua vé trước thực toán thẻ tín dụng 60 BÀI Tên : KIỂM THỬ VÀ BẢO TRÌ PHẦN MỀM Mã : ITPRG09.5 Giới thiệu : Kiểm thử pha thiếu trình phát triển hệ thống Kiểm thử giúp cho người xây dựng hệ thống khách hàng thấy hệ thống thoả mãn yêu cầu đề hay chưa Thay đổi phần mềm điều khơng thể tránh khỏi lí sau: - Những yêu cầu xuất sử dụng phần mềm - Môi trường nghiệp vụ thay đổi - Các lỗi phần mềm cần phải sửa chữa - Máy tính thiết bị bổ sung vào hệ thống - Hiệu độ tin cậy hệ thống phải cải thiện Tuy nhiên, vấn đề quan trọng phải thực quản lý thay đổi hệ thống phần mềm tồn Và phải thấy tầm quan trọng việc cải tiến phần mềm: - Các tổ chức thường đầu tư lượng vốn lớn vào hệ thống phần mềm họ Cho nên họ có quyền địi hỏi phải sở hữu hệ thống hồn hảo - Để bảo trì giá trị sở hữu tổ chức, họ phải thay đổi cải tiến hệ thống - Ngân sách phần mềm cơng ty lớn thường dùng cho việc cải tiến hệ thống tồn phát triển hệ thống Mục tiêu thực hiện: -Đánh giá chất lượng phần mềm theo tiêu chí - Kiểm thử phần mềm theo phương pháp khác - Bảo trì phát triển nâng cấp phần mềm Nội dung chính: I Bảo đảm chất lượng phần mềm Bảo trì phần mềm Bảo đảm chất lượng phần mềm Người ta thường sử dụng mô hình xoắn ốc để cải tiến hệ thống phần mềm 61 Bảo trì phần mềm hoạt động chỉnh sửa chương trình sau đưa vào sử dụng Bảo trì thường khơng bao gồm thay đổi liên quan tới kiến trúc hệ thống Những thay đổi hệ thống thường cài đặt cách điều chỉnh thành phần tồn bổ sung thành phần cho hệ thống Bảo trì khơng thể tránh khỏi vì: - Các yêu cầu hệ thống thường thay đổi hệ thống xây dựng mơi trường thay đổi Vì vậy, hệ thống chuyển giao khơng thoả mãn yêu cầu - Các hệ thống có gắn kết chặt chẽ với mơi trường Khi hệ thống cài đặt môi trường định làm thay đổi mơi trường thay đổi yêu cầu hệ thống - Các hệ thống phải bảo trì chúng muốn phần hữu ích mơi trường nghiệp vụ Phân loại kiểu bảo trì: - Bảo trì sửa lỗi: thay đổi hệ thống để sửa lại khiếm khuyết nhằm thoả mãn yêu cầu hệ thống - Bảo trì tích hợp hệ thống vào mơi trường vận hành khác - Bảo trì để bổ sung chỉnh sửa yêu cầu chức hệ thống: chỉnh sửa hệ thống cho thoả mãn u cầu Chi phí bảo trì thường lớn chi phí xây dựng gấp từ đến 100 lần phụ thuộc vào ứng dụng Chi phí bảo trì bị ảnh hưởng tác nhân kỹ thuật phi kỹ thuật Nếu bảo trì nhiều, làm thay đổi cấu trúc phần mềm làm cho việc bảo trì trở lên khó khăn Phần mềm có tuổi thọ cao phải cần chi phí cao (vì sử dụng ngơn chương trình dịch cũ …) 62 Các nhân tố ảnh hưởng đến chi phí bảo trì: - Sự ổn định đội dự án: chi phí bảo trì giảm nhân viên đội dự án không thay đổi - Những trách nhiệm cam kết: người xây dựng hệ thống khơng cam kết trách nhiệm bảo trì khơng có để bắt buộc họ phải thiết kế lại cho thay đổi tương lai - Kỹ nhân viên: nhân viên bảo trì thường khơng có kinh nghiệm hiểu biết miền ứng dụng họ bị hạn chế - Tuổi thọ cấu trúc chương trình: tuổi thọ cấu trúc chương trình bị xuống cấp chúng trở lên khó hiểu thay đổi nhiều Dự đốn bảo trì có liên quan tới việc đánh giá phần hệ thống gây lỗi cần nhiều chi phí để bảo trì Khả chịu thay đổi phụ thuộc vào khả bảo trì thành phần bị ảnh hưởng thay đổi Thực thay đổi làm hỏng hệ thống giảm khả bảo trì Chi phí bảo trì phụ thuộc vào số lượng thay đổi chi phí thay đổi phụ thuộc vào khả bảo trì 1.1 Dự đốn bảo trì Dự đốn bảo trì có liên quan tới việc đánh giá phần hệ thống gây lỗi cần nhiều chi phí để bảo trì Khả chịu thay đổi phụ thuộc vào khả bảo trì thành phần bị ảnh hưởng thay đổi Thực thay đổi làm hỏng hệ thống giảm khả bảo trì Chi phí bảo trì phụ thuộc vào số lượng thay đổi chi phí thay đổi phụ thuộc vào khả bảo trì 1.2 Dự đốn thay đổi Dự đốn số lượng thay đổi xảy tìm hiểu mối quan hệ hệ thống mơi trường Sự thay đổi u cầu hệ thống có liên quan chặt chẽ tới thay đổi mơi trường Trong đó, nhân tố ảnh hưởng tới mối quan hệ bao gồm: - Số lượng độ phức tạp giao diện hệ thống - Số lượng yêu cầu bất ổn định có tính phân cấp 63 - Các quy trình nghiệp vụ hệ thống Ta dự đốn bảo trì thơng qua việc đánh giá độ phức tạp thành phần hệ thống Độ phức tạp phụ thuộc vào: - Độ phức tạp cấu trúc điều khiển - Độ phức tạp cấu trúc liệu - Kích thước đối tượng, phương thức mơ-đun Ngồi ra, ta sử dụng phép đo quy trình để đánh giá khả bảo trì - Số lượng yêu cầu cần bảo trì sửa lỗi - Thời gian trung bình cần thiết để phân tích ảnh hưởng - Thời gian trung bình để cài đặt yêu cầu thay đổi - Số lượng yêu cầu cần giải Các quy trình cải tiến phần mềm Các quy trình cải tiến phần mềm phụ thuộc vào: - Kiểu phần mềm cần bảo trì - Quy trình phát triển phần mềm sử dụng - Kỹ kinh nghiệm stakeholder Các đề xuất thay đổi định hướng để cải tiến hệ thống Phát thay đổi cải tiến thực vịng đời hệ thống Các hình vẽ sau thể cách khái quát quy trình cải tiến hệ thống 64 Trên quy trình Tuy nhiên, với yêu cầu thay đổi khẩn cấp, ta cài đặt chúng mà không cần phải trải qua tất pha quy trình cơng nghệ phần mềm Những u cầu thay đổi khẩn cấp thường xảy khi: - Nếu có lỗi hệ thống nghiêm trọng xảy cần phải sửa chữa - Nếu thay đổi môi trường hệ thống gây hiệu ứng không mong đợi - Nếu thay đổi mặt nghiệp vụ yêu cầu phải có đáp ứng nhanh Để cải tiến hệ thống có, người ta đề xuất bốn chiến lược bản: - Tách hệ thống chỉnh sửa quy trình nghiệp vụ - Tiếp tục bảo trì hệ thống - Biến đổi hệ thống cách tái kỹ nghệ để nâng cấp khả bảo trì - Thay hệ thống hệ thống Việc lựa chọn chiến lược cải tiến hệ thống phụ thuộc vào chất lượng hệ thống giá trị nghiệp vụ Các loại hệ thống có phân loại dựa tiêu chí chất lượng giá trị nghiệp vụ mà mang lại sau: - Chất lượng thấp giá trị nghiệp vụ thấp: hệ thống tách - Chất lượng thấp giá trị nghiệp vụ cao: hệ thống có giá trị nghiệp vụ cao chi phí bảo trì lớn Ta nên tái kỹ nghệ thay hệ thống thích hợp - Chất lượng cao giá trị nghiệp vụ thấp: thay thành phần COTS - Chất lượng cao giá trị nghiệp vụ cao: tiếp tục sử dụng bảo trì hệ thống theo cách thông thường Việc đánh giá giá trị nghiệp vụ thực từ nhiều khung nhìn khác Phỏng vấn stakeholder khác đối sánh kết thu Các stakeholder thường là: - Người sử dụng cuối - Khách hàng doanh nghiệp - Người quản lý dây chuyền sản xuất - Người quản lý công nghệ thông tin - Người quản lý cao cấp Đánh giá chất lượng hệ thống thơng qua: - Quy trình nghiệp vụ: quy trình nghiệp vụ hỗ trợ cho mục tiêu nghiệp vụ nào? - Môi trường hệ thống: mơi trường hệ thống có hiệu chi phí để bảo trì - Khả ứng dụng: chất lượng ứng dụng? 65 Để đo hệ thống, thu thập liệu định lượng để tạo đánh giá chất lượng hệ thống - Số lượng yêu cầu thay đổi hệ thống - Số lượng giao diện người dùng khác - Số lượng liệu sử dụng hệ thống Tái kỹ nghệ hệ thống (System re-engineering) Tái kỹ nghệ hệ thống kỹ thuật cấu trúc lại viết lại phần toàn hệ thống thừa kế mà khơng thay đổi chức Tái ký nghệ giúp giảm rủi ro trình xây dựng phần mềm rủi ro xảy cao giúp giảm chi phí Mơ hình sau giúp phân biệt forward re-engineering: Quy trình tái kỹ nghệ bao gồm hoạt động sau: - Dịch mã nguồn: chuyển mã lệnh thành ngôn ngữ - Kỹ nghệ ngược: phân tích chương trình để tìm hiểu - Cải thiện cấu trúc chương trình - Mơ-đun hố chương trình: tổ chức lại cấu trúc chương trình - Tái kỹ nghệ liệu: thu dọn cấu trúc lại liệu hệ thống Các nhân tố ảnh hưởng tới chi phí tái kỹ nghệ: - Chất lượng hệ thống tái kỹ nghệ - Các công cụ hỗ trợ tái kỹ nghệ - Mức mở rộng cần thiết việc chuyển đổi liệu - Những nhân viên có kỹ tái kỹ nghệ hệ thống 66 II Kiểm thử phần mềm Quy trình kiểm thử Sau cài đặt hệ thống, phải kiểm thử để chắn hệ thống thoả mãn tất yêu cầu đề Quy trình kiểm thử gồm hai pha: - Kiểm thử thành phần: kiểm thử thành phần riêng biệt Do người xây dựng thành phần tự thực Việc kiểm thử kế thừa từ kinh nghiệm người xây dựng - Kiểm thử hệ thống: kiểm thử tập thành phần tích hợp với để tạo hệ thống hệ thống Thông thường đội kiểm thử độc lập thực Việc kiểm thử dựa tài liệu đặc tả hệ thống Mục đích quy trình kiểm thử: - Kiểm thử hợp lệ: để chứng minh cho người xây dựng khách hàng thấy phần mềm thoả mãn yêu cầu hay chưa Kiểm thử thành công cho thấy hệ thống vận hành mong đợi - Kiểm thử khiếm khuyết: phát lỗi khiếm khuyết phần mềm để thấy ứng xử có xác phù hợp với tài liệu đặc tả hay khơng Về mặt lý thuyết, phải kiểm thử hệ thống cách cặn kẽ khẳng định chương trình khơng cịn khiếm khuyết Tuy nhiên, thực tế kiểm thử cách cặn kẽ Các sách kiểm thử định nghĩa phương pháp thường sử dụng để lựa chọn cách kiểm thử hệ thống: - Tất chức truy nhập qua menu cần phải kiểm thử - Các chức kết hợp truy nhập thông qua menu phải kiểm thử - Những nơi người sử dụng phải nhập thông tin đầu vào tất chức phải kiểm thử với đầu vào xác khơng xác Kiểm thử hệ thống Kiểm thử hệ thống bao gồm tích hợp thành phần tạo hệ thống hệ thống con; sau đó, kiểm thử hệ thống tích hợp Kiểm thử hệ thống gồm pha: - Kiểm thử tích hợp: đội kiểm thử truy nhập vào mã lệnh hệ thống Hệ thống cần kiểm thử coi thành phần tích hợp với 67 - Kiểm thử độc lập: đội kiểm thử kiểm thử hệ thống đầy đủ để chuyển giao, coi hệ thống hộp đen Kiểm thử tích hợp bao gồm việc xây dựng hệ thống từ thành phần kiểm tra xem có vấn đề xảy từ tương tác thành phần Có hai cách tích hợp hệ thống: - Tích hợp từ xuống: xây dựng khung hệ thống đưa thành phần vào - Tích hợp từ lên: tích hợp thành phần sở, sau bổ sung thêm thành phần chức Để đơn giản hoa việc xác định lỗi, hệ thống nên tích hợp tăng vịng Các phương pháp kiểm thử tích hợp: - Đánh giá kiến trúc: kiểm thử tích hợp từ xuống thích hợp để phát lỗi kiến trúc hệ thống - Minh hoạ hệ thống: kiểm thử tích hợp từ xuống cho phép biểu hệ thống cách giới hạn pha ban đầu trình xây dựng hệ thống - Kiểm thử cài đặt: dễ dàng với kiểm thử tích hợp từ lên - Kiểm thử quan sát: vấn đề tất phương pháp Có thể bổ sung thêm mã lệnh để quan sát mẫu thử 2.2 Kiểm thử độc lập Mục đích kiểm thử độc lập nhằm tăng độ tin cậy nhà cung cấp, đảm bảo hệ thống thoả mãn yêu cầu Kiểm thử độc lập kiểm thử hộp đen kiểm thử chức năng; tức dựa tài liệu đặc tả hệ thống, người kiểm thử khơng có hiểu biết việc cài đặt hệ thống Ví dụ: Kiểm thử hộp đen 68 Chúng ta đưa hướng dẫn kiểm thử cho đội kiểm thử Hướng dẫn kiểm thử gợi ý cho đội kiểm thử giúp họ lựa chọn mẫu thử nhằm phát khiếm khuyết hệ thống - Lựa chọn đầu vào cho hệ thống đưa tất thông báo lỗi - Thiết kế đầu vào cho vùng nhớ đệm bị tràn - Lặp lại nhiều lần đầu vào chuỗi đầu vào - Ép hệ thống tạo kết không hợp lệ - Buộc cho kết tính phải q lớn q nhỏ Ngồi ra, sử dụng ca sử dụng biểu đồ để hỗ trợ cho trình kiểm thử Ca sử dụng phần để đưa mẫu thử hệ thống Nó giúp xác định thao tác để kiểm thử giúp thiết kế ca sử dụng yêu cầu Kèm theo biểu đồ tương ứng, sử dụng đầu đầu vào để tạo mẫu thử Kiểm thử độc lập bao gồm kiểm thử thuộc tính rõ nét hệ thống hiệu độ tin cậy Kiểm thử hiệu bao gồm việc lập kế hoạch cho tập hợp mẫu thử tải trọng tăng lên nhanh chóng hiệu hệ thống chấp nhận Kiểm thử áp lực thử nghiệm hệ thống tải trọng thiết kế tối đa Áp lực hệ thống thường gây khiếm khuyết hệ thống Kiểm thử áp lực hệ thống xác định ứng xử lỗi, giúp kiểm tra lỗi chấp nhận dịch vụ liệu Kiểm thử áp lực thích hợp với hệ thống phân tán Kiểm thử thành phần Kiểm thử thành phần (hay gọi kiểm thử đơn vị) quy trình kiểm thử thành phần riêng lẻ hệ thống Đây quy trình phát khiếm khuyết Thành phần kiểm thử là: - Chức phương thức đối tượng - Lớp đối tượng với thuộc tính phương thức - Thành phần kết hợp với giao diện định nghĩa trước để truy nhập tới chức 3.1 Kiểm thử lớp đối tượng Kiểm thử lớp đối tượng nhằm kiểm tra mức độ hoàn thiện lớp, bao gồm: - Kiểm thử tất thao tác gắn với đối tượng 69 - Thiết lập kiểm tra tất thuộc tính đối tượng - Thực nghiệm tất trạng thái đối tượng Kỹ thuật thừa kế gây khó khăn cho việc thiết kế kiểm thử lớp đối tượng thơng tin kiểm thử khơng hạn chế Trong q trình kiểm thử lớp đối tượng, cần phải xác định trường hợp kiểm thử tất phương thức đối tượng Đồng thời, sử dụng mơ hình trạng thái để xác định chuỗi dịch chuyển trạng thái chuỗi kiện gây dịch chuyển 3.2 Kiểm thử giao diện Đặt vấn đề Mục đích kiểm thử giao diện để phát lỗi giao diện giả thiết không hợp lý giao diện Kiểm thử giao diện đặc biệt quan trọng phát triển hướng đối tượng đối tượng định nghĩa giao diện Giao diện gồm loại sau: - Giao diện tham số: liệu truyền từ thủ tục tới thủ tục khác - Giao diện nhớ dùng chung: thủ tục hàm sử dụng chung khối nhớ - Giao diện thủ tục: hệ thống chứa tập thủ tục để hệ thống khác gọi tới - Giao diện truyền thông điệp: hệ thống yêu cầu dịch vụ từ hệ thống khác Các loại lỗi thường xảy giao diện bao gồm: - Lạm dụng giao diện: thành phần gọi tới thành phần khác gây lỗi sử dụng giao diện - Khơng hiểu rõ giao diện: thành phần gắn với giả thiết ứng xử với thành phần gọi, thành phần lại sai - Lỗi thời gian: thành phần gọi thành phần gọi thao tác với tốc độ khác liệu cũ lại truy nhập Hướng dẫn kiểm thử thành phần: - Thiết kế mẫu thử với tham số gửi tới thủ tục gọi có giá trị cận biên - Luôn kiểm thử tham số trỏ với trỏ null - Thiết kế mẫu thử cho gây lỗi thành phần - Thiết kế kiểm thử áp lực hệ thống truyền thơng điệp - Trong hệ thống có nhớ làm chung, nên biến đổi thứ tự mà thành phần tương tác với 70 Thiết kế trường hợp kiểm thử Thiết kế trường hợp kiểm thử (đầu vào đầu ra) sử dụng để kiểm thử hệ thống Mục đích thiết kế trường hợp kiểm thử tạo tập hợp mẫu kiểm thử có khả đánh giá hiệu phát khiếm khuyết Các phương pháp thiết kế trường hợp kiểm thử: - Kiểm thử dựa yêu cầu: Một nguyên tắc kỹ thuật xác định yêu cầu yêu cầu hệ thống phải có khả kiểm thử Kiểm thử dựa yêu cầu kỹ thuật kiểm thử hợp lệ, ta phải xem xét yêu cầu đưa tập mẫu thử cho yêu cầu - Kiểm thử phân hoạch: Dữ liệu đầu vào kết đầu thường rơi vào lớp khác nhau, tất thành viên lớp có quan hệ với Mỗi lớp thường phân hoạch miền ứng dụng mà chương trình chạy theo cách thích ứng với thành viên lớp Các trường hợp kiểm thử lựa chọn từ phân hoạch - Kiểm thử hướng cấu trúc (hoặc kiểm thử hộp trắng): Kiểm thử hướng cấu trúc đưa trường hợp kiểm thử dựa theo cấu trúc chương trình Những hiểu biết chương trình sử dụng để xác định trường hợp kiểm thử bổ sung - Kiểm thử đường đi: Mục tiêu kiểm thử đường nhằm đảm bảo tập hợp mẫu thử đường qua hệ thống thực lần Điểm bắt đầu kiểm thử đường biểu đồ luồng chương trình, gồm nút biểu diễn nhánh chương trình cung biểu diễn luồng điều khiển Tự động kiểm thử Kiểm thử pha có chi phí cao Chúng ta có nhiều cơng cụ hỗ trợ kiểm thử giúp giảm thời gian chi phí Phần giới thiệu số loại công cụ hỗ trợ tự động kiểm thử - Quản lý kiểm thử: giúp quản lý chương trình kiểm thử lưu vết liệu kiểm thử, kết mong muốn … - Bộ tạo liệu kiểm thử - Oracle: tạo dự đoán kết kiểm thử - Bộ so sánh file: so sánh kết chương trình kiểm thử - Bộ tạo báo cáo - Bộ phân tích động: bổ sung mã lệnh cho chương trình để đếm số lần thực câu lệnh - Bộ giả định 71 Bài tập Câu Giải thích hệ thống phần mềm thường nhanh chóng trở lên lỗi thời nhanh hết tác dụng đưa vào sử dụng thực tế Câu Trình bày ba kiểu bảo trì phần mềm Tại thường khó phân biệt kiểu bảo trì này? Câu Cho biết yếu tố ảnh hưởng tới chi phí việc tái kỹ nghệ phần mềm? Câu Để tái kỹ nghệ phần mềm thành cơng, cần phải có yếu tố nào? Câu Giải thích kiểm thử phát biểu lỗi, nguồn gốc lỗi Câu So sánh hai phương pháp kiểm thử top-down bottom-up Câu Kiểm thử đường gì? Hãy đưa hai lý để thấy kiểm thử đường gần không đạt Câu Đưa số ví dụ cho thấy kiểm thử tất đường độc lập phát lỗi 72 THUẬT NGỮ CHUYEN NGÀNH Generic Product: Sản phẩm đại trà Bespoke Product Customised Product: Sản phầm theo đơn đặt hàng Engineering discipline: quy tắc công nghệ software infrastructure: việc phát triển hạ tầng phần mềm workflow: luồng công việc data-flow: luồng liệu Role/action: Vai trò/Hành động Waterfall: thác nước Iterative development: phát triển lặp lại Component-based software engineering: công nghệ phần mềm dựa thành phần COTS (Commercial-off-the-shelf): thành phần thương mại V&V - Verification and validation: thẩm tra đánh giá Requirements Engineering – RE: kỹ thuật xác định yêu cầu LIBSYS: Hệ thống thư viện Stakeholder: người tham dự vào dự án xây dựng hệ thống Viewpoint: Khung nhìn ERA: thực thể - quan hệ - thuộc tính part-of: quan hệ hợp thành CASE workbenches :hợp công cụ thiết kế CASE tools :hỗ trợ mơ hình hố hệ thống client-server: Server dịch vụ dùng chung Pipeline: hướng chức call-return:gọi - trả lời Broadcast: lan truyền Interrupt-driven:hướng ngắt System re-engineerring : tái kĩ nghệ hệ thống 73 TÀI LIỆU THAM KHẢO - R Pressman, "Software Engineering - A Practitioner's Approach", 2001 - Ian Sommerville’s , “Software Engineering 7th Ed.”, 2005 74 ... dựng phần mềm - Tiến trình quản lý phần mềm - Lập kế hoạch dự án phần mềm - Theo dõi dự án phần mềm 3- Tự nghiên cứu tài liệu làm tập : - Tiến trình quản lý phần mềm - Lập kế hoạch dự án phần mềm. .. mềm - Tiến trình quản lý phần mềm - Lập kế hoạch dự án phần mềm - Theo dõi dự án phần mềm - Quản lý rủi ro - Yêu cầu hệ thống - Yêu cầu người sử dụng - Tài liệu đặc tả yêu cầu - Quy trình xác... : Công nghệ phần mềm ngành thiếu lĩnh vực Công nghệ thông tin Ngày nay, sản xuất hệ thống phần mềm lớn hữu ích nhờ phần lớn vào phát triển Công nghệ phần mềm Trong phạm vi giáo trình Cơng nghệ