NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giảng viên Đỗ Thị Thanh Tuyền Email dothithanhtuyen@gmail com 2 Nhập môn Công nghệ Phần mềm January 15 Nội dung môn học n Tổng quan về Công nghệ phần mềm n Xác định và mô[.]
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM Giảng viên: Đỗ Thị Thanh Tuyền Email: dothithanhtuyen@gmail.com Nội dung môn học n Tổng quan Cơng nghệ phần mềm n Xác định mơ hình hóa yêu cầu phần mềm n Thiết kế phần mềm n Cài đặt phần mềm n Kiểm thử bảo trì n Đồ án môn học Nhập môn Công nghệ Phần mềm January 15 Một số khái niệm n Phần mềm: tập hợp câu lệnh viết nhiều ngơn ngữ lập trình theo trật tự xác định nhằm tự động thực số chức giải tốn Phần mềm thực thi máy, thường máy tính n Công nghệ (engineering): cách sử dụng công cụ, kỹ thuật cách giải vấn đề n Cơng nghệ Phần mềm (Software Engineering): việc áp dụng công cụ, kỹ thuật cách có hệ thống việc phát triển ứng dụng dựa máy tính Nhập mơn Cơng nghệ Phần mềm January 15 Một số khái niệm (tt) n Cơng nghệ Phần mềm mơ hình hóa sau: Ø Qui trình phát triển phần mềm: hệ thống giai đoạn mà trình phát triển phần mềm phải trải qua Ø Phương pháp phát triển phần mềm: phương pháp thực cho giai đoạn qui trình phát triển phần mềm Nhập môn Công nghệ Phần mềm January 15 Một số khái niệm (tt) Ø Công cụ môi trường phát triển phần mềm: phương tiện hỗ trợ tự động hay bán tự động cho giai đoạn q trình xây dựng phần mềm Nhập môn Công nghệ Phần mềm January 15 Phân loại phần mềm n Phân loại theo phương thức hoạt động: Ø Phần mềm hệ thống: hệ điều hành, thư viện liên kết động, điều vận (driver) Ø Phần mềm ứng dụng: phần mềm văn phòng, phần mềm doanh nghiệp, phần mềm giáo dục, phần mềm giải trí Ø Phần mềm chuyển dịch mã: bao gồm trình biên dịch trình thơng dịch n Phân loại theo khả ứng dụng: Ø Phần mềm viết theo đơn đặt hàng khách hàng cụ thể: phần mềm hỗ trợ bán hàng, phần mềm điều khiển thiết bị - Ưu điểm: có tính uyển chuyển, tùy biến cao để đáp ứng nhu cầu nhóm người sử dụng Nhập mơn Cơng nghệ Phần mềm January 15 Phân loại phần mềm (tt) n Phân loại theo khả ứng dụng (tt): - Khuyết điểm: ứng dụng chuyên ngành hẹp Ø Phần mềm không viết theo đơn đặt hàng cụ thể, bán cho khách hàng - Ưu điểm: có khả ứng dụng rộng rãi cho nhiều nhóm người sử dụng - Khuyết điểm: thiếu tính uyển chuyển, tùy biến Nhập mơn Cơng nghệ Phần mềm January 15 Cấu trúc phần mềm Người dùng Người dùng Hệ thống giao diện Phần mềm Hệ thống xử lý Phần cứng Hệ thống liệu Phần cứng Nhập môn Công nghệ Phần mềm January 15 Chất lượng phần mềm Chất lượng phần mềm thể qua tính chất sau: Ø Tính đắn Ø Tính tiến hóa Ø Tính tiện dụng Ø Tính hiệu Ø Tính tương thích Nhập mơn Cơng nghệ Phần mềm January 15 Qui trình phát triển phần mềm u Mơ hình thác nước u Mơ hình mẫu u Mơ hình xoắn ốc => Mơ hình thác nước cải tiến Nhập môn Công nghệ Phần mềm 10 January 15 Các nguyên tắc đảm bảo (tt) Ø Thực thủ tục phục hồi: thủ tục phục hồi thủ tục nhằm đưa sở liệu trở trạng thái đắn trước bị hỏng gián đoạn chương trình (hư hỏng phần cứng, chương trình bị treo…) Cân nhắc việc chạy lại từ đầu chạy từ chỗ bị ngắt n Tính bảo mật: nhận diện điểm hở dự đoán mối đe dọa tiềm ẩn từ điểm hở Các điểm hở chỗ mà tác nhân bên ngồi vơ tình hay cố ý gây tác động tiêu cực cho hệ thống Các điểm hở là: + Thủ tục vào/ra; + Kho liệu; + Đường truyền; … Nhập môn Công nghệ Phần mềm January 15 Các nguyên tắc đảm bảo (tt) Các biện pháp bảo mật: + Bảo mật vật lý; + Tài khoản người dùng; + Mã hóa; + Truy nhập gián tiếp; + Tường lửa n Tính riêng tư: phân loại người dùng để: + Gán cho loại người dùng số quyền truy nhập định Các quyền truy nhập: read, insert, update, delete, expand, drop, index, run + Cho phép số người dùng phép ủy quyền (giao quyền truy nhập cho người khác) Nhập môn Công nghệ Phần mềm January 15 Bộ kiểm thử n Bộ kiểm thử liệu dùng để kiểm tra n Một kiểm thử tốt có khả bao phủ trường hợp xảy lỗi n Nội dung kiểm thử bao gồm: Ø Tên module/chức muốn kiểm thử Ø Thông tin đầu vào: môi trường kiểm thử, liệu dùng để kiểm tra, thứ tự thao tác Ø Kết mong muốn Ø Kết thực tế Nhập môn Công nghệ Phần mềm January 15 Yêu cầu kiểm thử n Phải đảm bảo kiểm tra hết trường hợp n Phải lập tài liệu cho trình kiểm thử n Phải tiến hành kiểm tra lại để đảm bảo lỗi sửa chữa Nhập môn Công nghệ Phần mềm January 15 Tiến trình kiểm thử Kiểm thử đơn vị Kiểm tra thành phần phần mềm riêng lẻ Kiểm thử tích hợp Tích hợp thành phần riêng lẻ kiểm tra tiến hành kiểm tra nhóm Kiểm thử hệ thống Kiểm tra toàn hệ thống khối tổng thể Kiểm thử chấp nhận Nhập môn Công nghệ Phần mềm 10 January 15 Tiến trình kiểm thử (tt) n Kiểm thử đơn vị (unit testing) -> Unit test case n Kiểm thử tích hợp (integration testing) -> Dancing testing n Kiểm thử hệ thống (system testing) -> Functional/Non-functional testing Ø Kiểm thử phục hồi (recovery testing) Ø Kiểm thử áp lực (stress testing) Ø Kiểm thử thi hành (performance testing) Ø Kiểm thử an ninh (security testing) n Kiểm thử chấp nhận (acceptance testing): Ø Kiểm thử Alpha Ø Kiểm thử Beta Nhập môn Công nghệ Phần mềm 11 January 15 Kiểm thử Alpha n Là hình thức kiểm nhận nội n Được thực người dùng/khách hàng tiềm người phát triển/nhóm kiểm thử độc lập Nhập môn Công nghệ Phần mềm 12 January 15 Kiểm thử Beta n Là hình thức kiểm nhận bên ngồi n Chỉ thực người dùng/khách hàng tiềm năng, không liên quan đến nhà phát triển n Kiểm tra phiên loại nhằm lấy phản hồi từ thị trường Nhập môn Công nghệ Phần mềm 13 January 15 Các phương pháp chiến lược n Hai phương pháp phổ biến: Ø Kiểm thử hộp đen Ø Kiểm thử hộp trắng n Các chiến lược kiểm thử: Ø Kiểm thử từ xuống/dưới lên Ø Kiểm thử big bang Ø Kiểm thử hồi quy Ø Kiểm thử hệ thời gian thực (RTS) Nhập môn Công nghệ Phần mềm 14 January 15 Kiểm thử hộp đen n Dùng để kiểm tra yêu cầu chức phần mềm n Không tham khảo cấu trúc bên thành phần hệ thống n Chia không gian thử nghiệm dựa vào giá trị nhập/xuất đơn vị cần kiểm tra: chọn thử nghiệm đặc trưng cho vùng liệu thử nghiệm nên chứa giá trị biên vùng liệu n Sử dụng kỹ thuật Phân hoạch tương đương Đồ thị nhân Nhập môn Công nghệ Phần mềm 15 January 15 Kiểm thử hộp trắng n Kiểm tra dựa phân tích cấu trúc bên thành phần hệ thống n Chia không gian thử nghiệm dựa vào cấu trúc đơn vị cần kiểm tra: Ø Kiểm tra giao tiếp đơn vị để đảm bảo dịng thơng tin vào đơn vị Ø Kiểm tra liệu cục để đảm bảo liệu lưu trữ đơn vị tồn vẹn suốt q trình thuật giải thực Nhập môn Công nghệ Phần mềm 16 January 15 Kiểm thử hộp trắng (tt) Ø Kiểm tra điều kiện biên câu lệnh điều khiển, vịng lặp…để đảm bảo đơn vị ln chạy biên Ø Kiểm tra để đảm bảo đường thực phải qua lần Ø Kiểm tra thực thi đơn vị trường hợp ngoại lệ n Sử dụng kỹ thuật Đồ thị dịng Nhập mơn Cơng nghệ Phần mềm 17 January 15 Công cụ kiểm thử tự động n Kiểm thử tự động liệu: Ø Bộ sinh liệu thử Ø Bộ xác minh kết n Kiểm thử tự động cài đặt: Ø Bộ kiểm tốn mã Ø Mơ ứng xử module phụ Ø Bộ so sánh đầu n Mơ mơi trường (ngoại lai) n Bộ phân tích dịng liệu (qui mô tần suất ddl) Nhập môn Cơng nghệ Phần mềm 18 January 15 Bảo trì phần mềm Bảo trì phần mềm chia thành loại: n Sửa lại cho (corrective): việc sửa lỗi phát sinh q trình sử dụng n Thích ứng (adaptative): việc chỉnh sửa hệ thống cho phù hợp với mơi trường thay đổi n Hồn thiện: việc chỉnh sửa để đáp ứng yêu cầu yêu cầu thay đổi người sử dụng n Bảo vệ (preventive): làm cho hệ thống dễ dàng bảo trì lần Nhập môn Công nghệ Phần mềm 19 January 15 Q&A Nhập môn Công nghệ Phần mềm 20 January 15