Câu 1: Các hoạt động trình phát triển phần mềm ( hoạt động (thường hỏi ý)) Quy trình phần mềm gồm hoạt động bản: - Đặc tả - Thiết kế cài đặt - Đánh giá - Cải tiến Đặc tả phần mềm - Vai trò: chức hệ thống ràng buộc vận hành hệ thống xác định cách đầy đủ chi tiết - Ý nghĩa: quy trình tìm hiểu định nghĩa dịch vụ yêu cầu ràng buộc trình vận hành xây dựng hệ thống - Quy trình: Quy trình xác định yêu cầu bao gồm bốn pha chính: + Nghiên cứu khả thi: công nghệ, lợi nhuận, Kết việc nghiên cứu khả thi xác định có nên tiếp tục xây dựng hệ thống hay không + Phân tích rút yêu cầu: quy trình đưa yêu cầu hệ thống thông qua số phương pháp như: quan sát hệ thống tại, vấn thảo luận với người sử dụng, phân tích nhiệm vụ, phân tích tài liệu hệ thống cũ … + Đặc tả yêu cầu: tư liệu hoá thông tin thu thập Có hai loại yêu cầu cần xác định: * Yêu cầu người sử dụng: yêu cầu ngôn ngữ tự nhiên bổ sung thêm cho biểu đồ dịch vụ mà hệ thống cung cấp ràng buộc vận hành * Yêu cầu hệ thống: tài liệu có cấu trúc mô tả chi tiết chức năng, dịch vụ ràng buộc vận hành hệ thống Yêu cầu hệ thống định nghĩa cần phải xây dựng, trở thành hợp đồng khách hàng nhà thầu + Đánh giá yêu cầu: kiểm tra lại yêu cầu xem chúng có thực tế, thống nhất, đầy đủ Nếu phát lỗi ta phải chỉnh sửa lỗi Thiết kế phần mềm cài đặt - Vai trò: Phần mềm xây dựng thỏa mãn đặc tả Ý nghĩa: trình thiết kế cấu trúc phần mềm dựa tài liệu đặc tả Quy trình: Bao gồm công việc sau: + Thiết kế kiến trúc: Các hệ thống cấu thành lên hệ thống cần xây dựng mối quan hệ chúng xác định tư liệu hoá + Đặc tả trừu tượng: với hệ thống con, phải có đặc tả dịch vụ ràng buộc vận hành + Thiết kế giao diện: với hệ thống con, giao diện với hệ thống khác phải thiết kế tư liệu hoá Page - + Thiết kế thành phần: dịch vụ cung cấp cho thành phần khác giao diện tương tác với chúng phải thiết kế + Thiết kế cấu trúc liệu: cấu trúc liệu sử dụng để cài đặt hệ thống phải thiết kế cách chi tiết cụ thể + Thiết kế thuật toán: Các thuật toán sử dụng để cung cấp dịch vụ phải thiết kế chi tiết xác Đánh giá phần mềm - - Vai trò: Đánh giá phần mềm hay gọi thẩm tra đánh giá (V&V Verification and validation) sử dụng để hệ thống thực theo đặc tả thoả mãn yêu cầu khách hàng Quy trình: Đánh giá phần mềm bao gồm công đoạn: kiểm tra, xem xét lại, kiểm thử hệ thống Kiểm thử hệ thống tức cho hệ thống thực trường hợp có liệu thật lấy từ tài liệu đặc tả hệ thống + Khi chuyển giao hệ thống cho khách hàng quy trình kiểm thử beta thực Khách hàng thông báo lỗi cho đội dự án Những lỗi chỉnh sửa tiếp tục kiểm thử beta chuyển giao thực cho khách hàng Cải tiến phần mềm - - Vai trò: Khi yêu cầu hệ thống thay đổi theo thay đổi yêu cầu nghiệp vụ phần mềm phải cải tiến thay đổi để hỗ trợ khách hàng Thông thường chi phí để bảo trì cải tiến thường đắt nhiều so với chi phí xây dựng phần mềm Quy trình: Các mô hình phát triển phần mềm (5 mô hình, thường hỏi mô hình) Mô hình thác nước - Waterfall model - Vai trò : Thích hợp yêu cầu tìm hiểu rõ ràng thay đổi giới hạn cách rõ ràng suốt trình thiết kế Chiến lược : Mô hình thác nước gồm pha (Phân tích xác định yêu cầu , Thiết kế hệ thống phần mềm , Cài đặt kiểm thử đơn vị , Tích hợp kiểm thử hệ Page - - thống , Vận hành bảo trì ) pha phải thực cách tuần tự, kết thúc pha trước đc thực pha Quy trình: - Nhược điểm: khó khăn việc thay đổi pha quy trình Mô hình xây dựng tiến triển - - Ý nghĩa: xây dựng mẫu thử ban đầu đưa cho người sử dụng xem xét; sau đó, tinh chỉnh mẫu thử qua nhiều phiên thoả mãn yêu cầu người sử dụng dừng lại Chiến lược: có phương pháp thực mô hình + Phát triển thăm dò: mục đích để làm việc với khách hàng để đưa hệ thống cuối từ đặc tả sơ ban đầu Phương pháp thường bắt đầu thực với yêu cầu tìm hiểu rõ ràng sau đó, bổ sung đặc điểm đề xuất khách hàng Cuối cùng, yêu cầu người sử dụng thoả mãn lúc xây dựng xong hệ thống - + Loại bỏ mẫu thử: mục đích để tìm hiểu yêu cầu hệ thống Phương pháp thường bắt đầu với yêu cầu không rõ ràng thông tin Các mẫu thử xây dựng chuyển giao tới cho người sử dụng Từ đó, ta phân loại yêu cầu thực cần thiết lúc mẫu thử không cần thiết Như vậy, mẫu thử có tác dụng để làm sáng tỏ yêu cầu người sử dụng Quy trình: Công nghệ PM dựa thành phần - - Ý nghĩa: Dựa kỹ thuật tái sử dụng cách có hệ thống; hệ thống tích hợp từ nhiều thành phần tồn thành phần thương mại COTS (Commercial-off-the-shelf) Quy trình: Các trạng thái quy trình bao gồm: + Phân tích thành phần sẵn có + Điều chỉnh yêu cầu + Thiết kế hệ thống với kỹ thuật tái sử dụng + Xây dựng tích hợp hệ thống Mô hình phát triển lặp lại tăng thêm Page - - - - Ý nghĩa: Dựa ý tưởng thay phải xây dựng chuyển giao hệ thống lần chia thành nhiều vòng, tăng dần Mỗi vòng phần kết chức yêu cầu Vai trò: + Sau lần tăng vòng chuyển giao kết thực cho khách hành nên chức hệ thống nhìn thấy sớm + Các vòng trước đóng vai trò mẫu thử để giúp tìm hiểu thêm yêu cầu vòng + Những chức hệ thống có thứ tự ưu tiên cao kiểm thử kỹ Quy trình: Mô hình xoắn ốc - - - - Ý nghĩa: Là kết hợp khía cạnh mô hình Bản chất mô hình xoắn ốc tên gọi nó, khái quát dần đến chi tiết Vai trò: Là cách tiếp cận thực tế cho việc phát triển phần mềm quy mô lớn Phần mềm tiến hóa theo đường xoắn ốc, từ tổng quan đến chi tiết, nên người phát triển khách hàng hiểu rõ có phản ứng thích hợp với rủi ro mức tiến hóa Chiến lược: Trong mô hình này, quy trình phát triển phần mềm biểu diễn vòng xoắn ốc Mỗi vòng lặp đại diện cho pha trình phần mềm Vòng tập trung tính khả thi, vòng kế lo định nghĩa yêu cầu, thiết kế, pha xem cố định vòng xoắn Mỗi vòng có phần tương ứng với pha Quy trình: Các pha quy trình phát triển xoắn ốc bao gồm: + Thiết lập mục tiêu: xác định mục tiêu cho pha dự án + Đánh giá giảm thiểu rủi ro: rủi ro đánh giá thực hành động để giảm thiểu rủi ro + Phát triển đánh giá: sau đánh giá rủi ro, mô hình xây dựng hệ thống lựa chọn từ mô hình chung +Lập kế hoạch: đánh giá dự án pha mô hình xoắn ốc lập kế hoạch Page - Các nguyên tắc xây dựng phần mềm (5 nguyên tắc) Đảm bảo tính đắn - Chính xác mục tiêu, chức đề xuất giai đoạn thiết kế (thuật toán đúng) - Tính tương đương chương trình thuật toán - Tính chương trình (kiểm thử áp dụng thời gian đủ lớn tần suất sử dụng cao) - Phải có luận chứng kết xác nhận tính đắn chương trình Tính khoa học - Khoa học cấu trúc - Khoa học nội dung - Khoa học hình thức, thao tác - Khoa học thể việc thong báo lỗi Tính đầy đủ : Đánh giá qua chức phần mềm cung cấp - Đảm báo tính đối xứng - Đảm bảo tính tiêu chuẩn - Đảm bảo tính toàn vẹn Tính độc lập : cần nên độc lập với thiết bị, cấu trúc nội dung đối tượng, Dễ phát triển Các vấn đề kiểm thử phần mềm - - - Vai trò: 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 Quy trình: 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 a Kiểm thử hệ thống Quy trình: 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 + 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 b Kiểm thử thành phần Quy trình: 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à: Page - - - + 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 Thiết kế trường hợp kiểm thử Ý nghĩa: 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ế: + kiểm thử dựa yêu cầu + kiểm thử phân hoạch + kiểm thử hướng cấu trúc + kiểm thử đường Tự động kiểm thử Kiểm thử pha có chi phí cao Có nhiều công cụ hỗ trợ kiểm thử giúp giảm thời gian chi phí Một 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 Các vấn đề thiết kế (thiết kế tổng thể - thiết kế kiến trúc) Thiết kế tổng thể - - - Vai trò: nhằm xác định hệ thống cấu tạo nên hệ thống đề xuất framework giúp điều khiển hệ thống giao tiếp chúng gọi quy trình thiết kế kiến trúc Kết quy trình thiết kế đặc tả kiến trúc phần mềm Ý nghĩa: quy trình sáng tạo khác biệt quy trình phụ thuộc vào loại hệ thống xây dựng Quy trình: pha sớm quy trình thiết kế hệ thống, thường thực song song với số hành động đặc tả Nó bao gồm có việc phát thành phần hệ thống giao tiếp chúng Ưu điểm: + Giao tiếp người tham dự vào dự án xây dựng hệ thống: kiến trúc hệ thống thường sử dụng làm tâm điểm buổi thảo luận họ - + Phân tích hệ thống: tức phân tích để xác định liệu hệ thống có thoả mãn yêu cầu phi chức hay không + Tái sử dụng với quy mô lớn: kiến trúc tái sử dụng nhiều hệ thống Đặc điểm: + Hiệu năng: hạn chế thao tác phức tạp tối thiểu hoá giao tiếp + Bảo mật: sử dụng kiến trúc phân lớp với nhiều kiểm soát chặt chẽ lớp sâu + An toàn Page - + Sẵn dùng + Có khả bảo trì - Các mô hình kiến trúc bản: - Mô hình cấu trúc tĩnh: mô tả thành phần hệ thống - Mô hình quy trình động: biểu diễn quy trình cấu trúc hệ thống - Mô hình giao diện: định nghĩa tập hợp giao diện hệ thống - Mô hình quan hệ: biểu diễn quan hệ hệ thống - Mô hình phân tán: biểu diễn cách cài đặt hệ thống máy tính Tổ chức hệ thống - - Vai trò: Tổ chức hệ thống phản ánh chiến lược sử dụng để cấu trúc hệ thống Trong trình thiết kế kiến trúc hệ thống, hoạt động phải thực xây dựng mô hình tổ chức hệ thống phương pháp tổ chức hệ thống thường đc sử dụng: a Kho liệu dùng chung • Quy trình: + Dữ liệu chia sẻ lưu CSDL trung tâm kho liệu tất hệ thống truy nhập - - - + Mỗi hệ thống bảo trì CSDL truyền liệu cách tường minh cho hệ thống khác • Ưu điểm: + Đây phương pháp hiệu để chia sẻ số lượng lớn liệu + Các hệ thống không cần quan tâm tới hoạt động liên quan đến liệu như: lưu, bảo mật,… có quản lý trung tâm thực nhiệm vụ • Nhược điểm: + Tất hệ thống phải chấp nhận mô hình kho liệu + Việc cải tiến liệu phức tạp tốn + Khó phân tán cách hiệu + Không có giới hạn cho sách quản lý cụ thể b Mô hình client-sever Vai trò: Là mô hình hệ thống hệ thống bao gồm tập hợp server cung cấp dịch vụ client truy nhập sử dụng dịch vụ Quy trình: Client phải biết tên server dịch vụ mà server cung cấp Nhưng server không cần xác định rõ client có client Client tạo yêu cầu tới server chờ server trả lời Ưu điểm: + Phân tán liệu rõ ràng; + Sử dụng hệ thống kết nối mạng cách hiệu chi phí dành cho phần cứng rẻ hơn; + Dễ dàng bổ sung nâng cấp server Nhược điểm: + Không phải mô hình liệu dùng chung nên hệ thống sử dụng tổ chức liệu khác Do đó, việc trao đổi liệu không hiệu + Quản lý server không thống nhất, dư thừa + Không đăng ký tên dịch vụ tập trung Điều làm cho việc tìm kiếm server dịch vụ khó khăn Page - - - c Mô hình phân lớp Vai trò: Mô hình phân lớp hỗ trợ phát triển hệ thống theo kiểu tăng vòng nhiều lớp khác Khi giao diện lớp thay đổi lớp liền kề bị ảnh hưởng Quy trình: Tổ chức hệ thống thành nhiều lớp lớp cung cấp tập dịch vụ Mỗi lớp coi máy trừu tượng (abstract machine) mà ngôn ngữ máy định nghĩa dịch vụ mà lớp cung cấp Do đó, mô hình thường sử dụng để mô hình hoá giao diện (interface) hệ thống Bài tập(nhiều đề) Cho phần mềm Nhiệm vụ xây dựng test phần mềm Nội dung:2 lý thuyết, tập VD: web site bán quần áo, điện tử, điện lạnh …là phần mềm thông dụng Hoặc phần mềm quản lý Hướng làm :tự nghĩ thêm - Thỏa mãn yêu cầu hay ko ? - Đúng ko ? - Đẹp ko ? - Tương thích ko ? - Test giao diện - Test CSDL : tổ chức dạng Page -