Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
254,45 KB
Nội dung
CÂU HỎI ÔN TẬP CÔNG NGHỆ PHẦN MỀM Chương 1: Tổng quan công nghệ phần mềm Câu 1: Khái niệm phần mềm? Phân biệt phần mềm phần cứng? Phân loại phần mềm? Trả lời: Khái niệm phần mềm: Phần mềm gồm phần: Chương trình máy tính: mã nguồn, mã máy Cấu trúc liệu: cấu trúc làm việc (bộ nhớ trong), cấu trúc lưu trữ (bộ nhớ ngoài) Các tài liệu liên quan: Hướng dẫn sử dụng (người dùng), tham khảo kỹ thuật (người bảo trì), tài liệu phát triển (nhà phát triển) Ba cách phân loại phần mềm Theo mức độ hoàn thiện o Chương trình o Sản phẩm phần mềm Theo chức thực o Phần mềm hệ thống o Phần mềm nghiệp vụ o Phần mềm công cụ Theo lĩnh vực ứng dụng o Phần mềm hệ thống o Phần mềm thời gian thực o Phần mềm nghiệp vụ o Phần mềm khoa học kỹ thuật o Phần mềm nhúng o Phần mềm máy tính cá nhân o Phần mềm trí tuệ nhân tạo o Phần mềm dựa web Câu 2: Kiến trúc phần mềm gì? Thế phần mềm tốt? Trả lời: Kiến trúc phần mềm chương trình máy tính hay hệ thống tính toán cấu trúc thành phần hệ thống Kiến trúc phần mềm bao gồm phần tử phần mềm, thuộc tính mối quan hệ chúng Tiêu chí phần mềm tốt ?? Người dùng: • Đủ chức nghiệp vụ • Dễ sử dụng, tinh vi (tính thông minh) • Tin cậy, an toàn Nhà phát triển • Dễ bảo trì Câu 3: Khái niệm phần mềm? Vai trò đặc trưng phần mềm? Trả lời: Khái niệm phần mềm: Phần mềm gồm phần: Chương trình máy tính: mã nguồn, mã máy Cấu trúc liệu: cấu trúc làm việc (bộ nhớ trong), cấu trúc lưu trữ (bộ nhớ ngoài) Các tài liệu liên quan: Hướng dẫn sử dụng (người dùng), tham khảo kỹ thuật (người bảo trì), tài liệu phát triển (nhà phát triển) Vai trò phần mềm Phần mềm – linh hồn hệ thống máy tính Có vai trò tảng hoạt động xã hội tổ chức Mọi kinh tế phụ thuộc lớn vào phần mềm Phần mềm sai hỏng, kinh tế tổn thất lớn Đặc trưng phần mềm • Không mòn cũ, thoái hóa theo thời gian • Môi trường sử dụng, nhu cầu thay đổi • Lỗi phát sinh tăng nâng cấp • Không lắp ráp từ mẫu có sẵn • Phức tạp, khó hiểu, vô hình Phần mềm hệ thống logic khó hiểu • Nhiều khái niệm khác • Mối liên kết logic (không nhìn thấy) • Để hiểu phải tư trừu tượng Không nhìn thấy • Không phải vật thể vật lý • Mỗi biểu diễn khía cạnh, hệ thống tổng thể Câu 4: Khái niệm phần mềm? Nêu vắn tắt giai đoạn phát triển phần mềm? Trả lời: Khái niệm phần mềm: Phần mềm gồm phần: Chương trình máy tính: mã nguồn, mã máy Cấu trúc liệu: cấu trúc làm việc (bộ nhớ trong), cấu trúc lưu trữ (bộ nhớ ngoài) Các tài liệu liên quan: Hướng dẫn sử dụng (người dùng), tham khảo kỹ thuật (người bảo trì), tài liệu phát triển (nhà phát triển) Giai đoạn phát triển phần mềm : Giai đoạn một: 1950 – 1960: Chương trình nhỏ, tính toán chuyên dụng Xử lý số, theo lô Ngôn ngữ máy, hợp ngữ, đặc thù cho máy Tiêu chí đánh giá: Tính nhanh Giải toán Công nghệ: bóng điện tử (chậm, nhớ nhỏ) Giai đoạn 2: thập kỷ 70 Sản phẩm: đa dạng, đa người sử dụng Xử lý số, ký tự, theo lô, thời gian thực Xuất lưu trữ trực tuyến Ngôn ngữ: Algol, Fortran Tiêu chí đánh giá: - Nhanh - Giải toán lớn - Nhiều người dùng Công nghệ: Bán dẫn (nhanh hơn, nhớ hơn), CSDL Yêu cầu bảo trì (sửa lỗi, thích nghi) Giai đoạn 3: đầu năm 1990 • Phần mềm cá nhân + mạng, hệ lớn, chia sẻ • Ra đời phần mềm nhúng • Xử lý số, ký tự, âm thanh, hình ảnh; theo lô, thời gian thực, phân tán, song song • Truy nhập liệu phát triển, từ xa • Ngôn ngữ: bậc cao, hướng đối tượng, logic • Tiêu chí: Tiện dụng, tin cậy, dễ bảo trì • Công nghệ: mạch tích hợp lớn, vi mạch, cấu hình mạng Internet, CSDL quan hệ Giai đoạn 4: từ năm 1990 đến • Phần mềm lớn, tinh vi, tin cậy, hướng người dùng • Hệ chuyên gia, trí tuệ nhân tạo, phần mềm nhúng, webserrvice sử dụng rộng • • • • rãi, internet mở rộng CSDL hướng đối tượng, kho liệu phát triển Ngôn ngữ: hướng đối tượng, hệ thứ 4, visual Tiêu chí: Tiện dụng, tinh vi, tin cậy, dễ bảo trì Công nghệ: Vi mạch siêu tích hợp, internet, mạng không dây tốc độ cao, hướng đối tượng, web Câu 5: Nêu sơ lược lịch sử phát triển phần mềm? Tiêu chí để đánh giá phần mềm tốt gì? Trả lời: Sự phát triển phần mềm: Phần mềm tiến hóa phần cứng Về qui mô, phức tạp tốc độ Về chức mức độ hoàn thiện Công nghệ liên tục phát triển, nhu cầu tăng Khó khăn thách thức ngày nhiều Giai đoạn phát triển phần mềm : Giai đoạn một: 1950 – 1960: Chương trình nhỏ, tính toán chuyên dụng Xử lý số, theo lô Ngôn ngữ máy, hợp ngữ, đặc thù cho máy Tiêu chí đánh giá: Tính nhanh Giải toán Công nghệ: bóng điện tử (chậm, nhớ nhỏ) Giai đoạn 2: thập kỷ 70 Sản phẩm: đa dạng, đa người sử dụng Xử lý số, ký tự, theo lô, thời gian thực Xuất lưu trữ trực tuyến Ngôn ngữ: Algol, Fortran Tiêu chí đánh giá: - Nhanh - Giải toán lớn - Nhiều người dùng Công nghệ: Bán dẫn (nhanh hơn, nhớ hơn), CSDL Yêu cầu bảo trì (sửa lỗi, thích nghi) Giai đoạn 3: đầu năm 1990 • Phần mềm cá nhân + mạng, hệ lớn, chia sẻ • Ra đời phần mềm nhúng • Xử lý số, ký tự, âm thanh, hình ảnh; theo lô, thời gian thực, phân tán, song song • Truy nhập liệu phát triển, từ xa • Ngôn ngữ: bậc cao, hướng đối tượng, logic • Tiêu chí: Tiện dụng, tin cậy, dễ bảo trì • Công nghệ: mạch tích hợp lớn, vi mạch, cấu hình mạng Internet, CSDL quan hệ Giai đoạn 4: từ năm 1990 đến • Phần mềm lớn, tinh vi, tin cậy, hướng người dùng • Hệ chuyên gia, trí tuệ nhân tạo, phần mềm nhúng, webserrvice sử dụng rộng rãi, internet mở rộng • CSDL hướng đối tượng, kho liệu phát triển • Ngôn ngữ: hướng đối tượng, hệ thứ 4, visual • Tiêu chí: Tiện dụng, tinh vi, tin cậy, dễ bảo trì • Công nghệ: Vi mạch siêu tích hợp, internet, mạng không dây tốc độ cao, hướng đối tượng, web Tiêu chí phần mềm tốt ?? Người dùng: • Đủ chức nghiệp vụ • Dễ sử dụng, tinh vi (tính thông minh) • Tin cậy, an toàn Nhà phát triển • Dễ bảo trì Chương 2: Tiến trình phát triển phần mềm Câu 6: Vòng đời phần mềm? Mô hình vòng đời phần mềm Boehm? Trả lời: Vòng đời phần mềm thời kỳ tính từ phàn mềm tạo chết (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng loại bỏ không đâu dùng) Mô hình vòng đời phần mềm Boehm Vòng đời phần mềm chia thành pha chính: phân tích, thiết kế, chế tạo, kiểm thử, bảo trì 13 Câu 7: Phân tích mô hình thác nước? Ưu nhược điểm mô hình? Trả lời: Phân tích Thiết kế Mã hóa Kiểm thử Phân tích: tập trung vào việc thu thập phân tích thông tin cần cho phần mềm, Bảo trì chức phần mềm cần phải thực hiện, hiệu cần có chức năng, giao diện cho người sử dụng, ràng buộc mà phần mềm cần tuân thủ… Thiết kế: trình chuyển hóa yêu cầu phần mềm thành mô tả thiết kế mà từ nhà phát triển lập trình lắp đặt hệ thống chuyển thiết kế thành chương trình vận hành Mã hóa: Dịch đặc tả thiết kế thành chương trình mã nguồn ngôn ngữ lập trình mà mã mãy thực Kiểm thử: Phát lỗi sửa lỗi chương trình Bảo trì: môi trường hoạt động thực tế, hệ thống có đáp ứng yêu cầu đặt ban đầu đề xuất thay đổi, bổ sung để hoàn thiện hệ thống Ưu nhược điểm mô hình thác nước - Thực tế dự án tuân theo dòng mô hình, mà thường có lặp lại - Khách hàng tuyên bố rõ Ràng xong hết yêu cầu - Khách hàng phải có lòng kiên nhẫn chờ đợi thời gian định có sản phẩm Nếu phát lỗi nặng thảm họa Câu 8: Phân tích mô hình xoắn ốc? Ưu nhược điểm mô hình? Trả lời: Giao tiếp khách hàng: người phát triển khách hàng để tìm hiểu yêu cầu, ý kiến Lập kế hoạch: Xác lập tài nguyên, thời hạn thông tin khác Phân tích rủi ro: xem xét mạo hiểm kỹ thuật mạo hiểm quản lý Kỹ nghệ: xây dựng hay số biểu diễn ứng dụng Xây dựng xuất xưởng: xây dựng, kiểm thử, cài đặt cung cấp hỗ trợ người dùng (tư liệu, huấn luyện…) Đánh giá khách hàng: nhận phản hồi người sử dụng biểu diễn phần mềm giai đoạn kỹ nghệ cài đặt Ưu nhược điểm mô hình xoắn ốc - Tốt cho hệ phần mềm quy mô lớn - Dễ kiểm soát mạo hiểm mức tiến háo - Khó thuyết phục khách hàng phương pháp tiến hóa xoắn ốc kiểm soát - Chưa dùng rộng rãi mô hình tuyến tính chế thử Chương 3: Phân tích đặc tả yêu cầu Câu 9: Anh (chị) trình bày khái niệm yêu cầu phần mềm, phân loại yêu cầu phần mềm ? cho ví dụ minh họa? Trả lời: Yêu cầu cho hệ thống phần mềm mô tả công việc mà hệ thống làm ràng buộc mà phải tuân thủ hoạt động Yêu cầu yêu cầu chức năng(các chức năng, dịch vụ) hay yêu cầu phi chức (các ràng buộc) Phân loại yêu cầu phần mềm Các yêu cầu chức năng: phát biểu chức hay dịch vụ mà hệ thống cung cấp Yêu cầu chức chức mà hệ thống không nên thực Các yêu cầu phi chức năng: ràng buộc lên dịch vụ, chức mà hệ thống cung cấp Nó bao gồm ràng buộc thời gian, ngân sách, ràng buộc trình phát triển hay ràng buộc chuẩn sử dụng… Các yêu cầu miền lĩnh vực: yêu cầu xuất phát từ miền ứng dụng, phản ánh đặc trưng lĩnh vực ứng dụng (các quy tắc nghiệp vụ).Có thể chức hay phi chức Câu 10 Anh (Chị) trình bầy kỹ thuật đặc tả yêu cầu ? Trả lời: Đặc tả chức năng: thông thường đặc tả chức phần mềm người ta sử dụng công cụ tiêu biểu sau: - Biểu đồ phân rã chức (Functional Decomposition Diagram – FDD) - Biểu đồ luồng liệu (Data Flow Diagrams- DFD) - Máy trạng thái hữu hạn - Mạng Petri Đặc tả mô tả: - Biểu đồ thực thể liên kết (Entity- Relationship Diagrams - ERD) - Đặc tả Logic (Logic Specifications) - Đặc tả đại số (Algebraic Specifications) Câu 11 Anh (Chị) trình bày quy trình xác định yêu cầu ? Trả lời: Quy trình xác định yêu cầu Khảo sát hệ thống phân tích khả thi - Khả thi kinh tế - Khả thi kinh tế - Khả thi kỹ thuật - Khả thi pháp lý - Khả thi hoạt động - Khả thi thời gian - Phát phân tích yêu cầu • Những khó khăn việc nhận yêu cầu - Người liên quan thường không thực biết cần từ hệ thống, họ thường bày tỏ yêu cầu theo cách nói riêng - Họ có cách yêu cầu khác mà kỹ sư phải nhận điểm chung điểm khác biệt chúng - Quá trình phân tích diễn bối cảnh cụ thể tổ chức nên yêu cầu bị ảnh hưởng yếu tố trị - Môi trường kinh doanh biến động yêu cầu xuất từ người liên quan mà lúc đầu không tham khảo - Khó khăn có tính nguyên tắc việc thiết lập yêu cầu hệ thống phần mềm, vấn đề không định nghĩa, công thức cho trước Tiến trình phát phân tích yêu cầu - Tìm hiểu miền ứng dụng - Thu thập yêu cầu - Phân loại yêu cầu - Giải xung đột - Sắp ưu tiên - Kiểm tra yêu cầu Câu 12 Anh (Chị) trình bày kỹ thuật phân tích xác định yêu cầu? Trả lời: - Kỹ thuật xác định phân tích yêu cầu: 10 • • Tiếp cận định hướng cách nhìn Ghi nhận cách nhìn khác người liên quan sử dụng vào tiến trình phát yêu cầu tổ chức yêu cầu Các góc độ khác xem xét Từ nguồn hay đích tới liệu Từ khung làm việc Từ tiếp nhận dịch vụ Xác định yêu cầu định hướng cách nhìn gồm giai đoạn bản: Xác định viewpoint Cấu trúc viewpoint Làm tài liệu viewpoint Ánh xạ hệ thống viewpoint Kỹ thuật phân tích yêu cầu dựa mô hình Được sử dụng rộng rãi để phân tích yêu cầu Kỹ thuật theo hướng tiếp cận Tiếp cận định hướng chức (Hướng cấu trúc dựa luồng liệu) Tiếp cận hướng đối tượng Tập trung hướng vào mô tả nghiệp vụ hệ thống thực, kết thu MÔ HÌNH NGHIỆP VỤ Mô hình nghiệp vụ theo phương pháp gồm: Mô hình ngữ cảnh: Mô tả hệ thống xét môi trường Các mô hình cấu trúc chức mô tả cấu trúc chức hệ thống Mô tả chi tiết chức năng: mức thấp Mô tả đối tượng liệu: Theo hướng cấu trúc bao gồm tất hồ sơ mẫu, theo HĐT gồm đối tượng khái niệm giới thực Mô tả mối liên kết liệu chức – cần thiết với cách tiếp cận hướng cấu trúc Từ điển giải thích • Kỹ thuật phân tích hình thức hoá Dựa việc sử dụng khái niệm, ký pháp mô hình toán học để phân tích biểu diễn hệ thống Phân tích không tách thành mô hình riêng Kết việc phân tích mô hình hóa cho ta đặc tả hệ thống Câu 13 Anh (Chị) trình bày Các kỹ thuật phương pháp hỗ trợ phân tích yêu cầu? Trả lời: • Các mô hình hệ thống: Phương pháp biểu diễn yêu cầu hệ thống cách có kỹ thuật (thay văn dạng text) 11 • Use Case (UC) UC chức hệ thống cách mô tả hành vi hệ thống (nghĩa tương tác người sử dụng hệ thống) UC sử dụng để mô tả hành vi hệ thống phần mềm Các khái niệm UC: Actor: Nhân vật dụng hệ thống để đạt mục đích Primary actor nhân vật khởi tạo UC Hoạt cảnh (Scenario): Tập hợp hành động nhằm đạt mục • đích Data Flow Diagram (DFD) DFD phổ biến phân tích toán DFD thể dòng liệu hệ thống DFD coi hệ thống • hàm chuyển liệu đầu vào thành liệu đầu DFD biểu diễn di chuyển liệu tiến trình xử lý liệu Ký hiệu DFD: Tiến trình : Đường tròn Dòng liệu đường cong có mũi tên Hình chữ nhật nguồn sinh hay tiêu thụ liệu Sự cần thiết nhiều dòng liệu biểu dễn “*” đặt hai dòng (AND) Nghĩa hai dòng cần thiết Tương tự, kí hiệu “+” dùng cho phép toán OR Các mô hình khác Mô hình ER cho phân tích liệu Mô hình đối tượng cho phân tích dự liệu Câu 14 Anh (Chị) trình khái niệm kiến trúc phần mềm, vai trò kiến trúc phần mềm, mô hình kiến trúc phần mềm ? Trả lời: - Khái niệm kiến trúc phần mềm: • Kiến trúc phần mềm (Software Architecture) cấu trúc phần mềm qua cung cấp tích hợp chặt mặt khái niệm hệ thống • Qui trình thiết kế hệ thống mô hình điều khiển/giao tiếp hệ thống architectural design Kết qui trình thiết kế software architecture • Kiến trúc phần mềm hệ thống bao gồm thành phần phần mềm, thuộc tính chúng mối quan hệ thành phần - Vai trò kiến trúc phần mềm: • Có vai trò quan trọng p/triển phần mềm (PM): Công cụ giao tiếp người liên quan (understanding and communication): Tài liệu mô tả kiến trúc đựoc sử dụng nhiều thành viên liên quan tới dự án phần mềm 12 Để phân tích hệ thống/xây dựng hệ thống: Kiến trúc phần mềm sử dụng để ra/dự đoán thuộc tính hệ thống Ngoài kiến trúc phần mềm có phân hoạch tốt, việc sử dụng phân hoạch để phát triển chức dễ dàng Sử dụng lại quy mô lớn: Chúng ta có xu hướng sử dụng lại phần phần mềm, đó, kiến trúc thông thông tin quan trọng việc hiểu biết phần phần mềm • Kiến trúc thành phần hoạt động có tác động sâu rộng đến trình phát triển PM, lọat mô tả PM mà cho phép kỹ sư PM thực công việc: Tăng cường hiểu biết hệ thống cần xây dựng Phân tích hiệu Xem xét, sửa đổi kiến trúc từ sớm, giảm rủi ro - Các mô hình kiến trúc phần mềm: • Có nhiều mô hình khác nhau, thường nhìn nhận số mặt: Mô hình kiến trúc tĩnh – hệ hay thành phần phát triển độc lập Mô hình tiến trình động- hệ thống tổ chức thành tiến trình vận hành Mô hình giao diện – xác định giao diện đưa dịch vụ Mô hình liên kết – mối liên kết hệ hay thành phần Mô hình phân tán • Cách nhìn khác Module Thành phần kết nối (Component & Connector – C&C) Cấp phát (Allocation) Câu 15 Anh (Chị ) trình bày khái niện thiết kế vai trò thiết kế ? Trả lời: • Khái niệm thiết kế: Thiết kế phần mềm trình chuyển đặc tả yêu cầu phần mềm thành biểu diễn thiết kế hệ thống phần mềm cần xây dựng cho người lập trình ánh xạ thành chương trình vận hành Vai trò thiết kế - Thiết kế cách để chuyển hóa cách xác yêu cầu khách hàng thành mô hình thiết kế hệ thống phần mềm cuối cùng, làm sở cho việc triển khai chương trình phần mềm - Tài liệu thiết kế phần mềm công cụ giao tiếp nhóm tham gia vào việc phát triển sản phẩm, để quản lý rủi ro, đạt đến phần mềm hiệu 13 Thiết kế phần mềm tài liệu cung cấp đầy đủ thông tin cần thiết cho người kỹ sư hệ thống để bảo trì hệ thống sau Câu 16 Anh (Chị) trình bày bước giai đoạn thiết kế hình thức biểu diễn thiết kế ? Trả lời: Các bước giai đoạn thiết kế - Thiết kế logic: xác định cấu trúc thiết kế logic mô tả thành phần hệ thống mối quan hệ chúng mà ko gắn với phương tiện vật lý Thiết kế vật lý: chọn giải pháp công nghệ hữu để thực cấu trúc logic cho phù hợp với điều kiện môi trường đích dự kiến hệ thống phần mềm Hình thức biểu diễn thiết kế - Một thiết kế phần mềm mô hình mô tả đối tượng giới thực với nhiều thành phần mối quan hệ chúng với Có hình thức thường sử dụng để mô tả: - Các biểu đồ: dùng để thể mối quan hệ thành phần lập nên hệ thống mô hình mô tả giới thực - Ngôn ngữ mô tả chương trình: dùng để kiểm tra cấu trúc cấu thiết kế dựa cấu trúc ngôn ngữ lập trình - Dạng văn không hình thức hóa: mô tả thông tin hình thức hóa Câu 17 14 - Anh (Chị) trình bày phương pháp thiết kế cấu trúc? Trả lời: Định nghĩa kiến trúc: Kiến trúc phần mềm cấu trúc tổng thể phần mềm qua cung cấp tích hợp mật khái niệm hệ thống Kiến trúc biểu diễn thành phần lớn, cốt lõi hệ thống mối quan hệ chúng với nhìn theo quan điểm khác - Tiến trình thiết kế kiến trúc Tiến trình xác định hệ thống hệ thống thiết lâp khung làm việc cho việc điều khiển giao tiếp chúng gọi thiết kế kiến trúc Hoạt động chung tiến trình: + Cấu trúc hệ thống: hệ thống cấu trúc thành số hệ thống + Mô hình hóa điều khiển: thiết lập mô hình chung mô tả mối quan hệ điều khiển phần hệ thống + Phân rã modun: hệ thống phân rã modun Kiến trúc loại modun liên kết chúng Câu 18 Anh (Chị) trình bày phương pháp thiết kế hướng đối tượng ? Trả lời: - Tiến trình thiết kế hướng đối tượng(Lớp, Các mối quan hệ: kế thừa, phụ thuộc, kết hợp, kết tập, liên kết ) Xác định kiến trúc hệ thống Sắp thứ tự ưu tiên gói Với gói, thiết kế cho ca sử dụng thuộc gói cách xác định lớp thiết kế tham gia triển khai lớp phân tích Xây dựng biểu đồ tương tác lớp Thiết kế chi tiết lớp Phân tích hoàn thiện biểu đồ lớp dựa mẫu thiết kế 15 Câu 19 Anh (Chị) cho biết Sự khác thiết kế hướng chức thiết kế hướng đối tượng? Trả lời: Phương pháp thiết kế Hướng chức Hướng đối tượng Đây cách tiếp cận truyền thống – Quan tâm chủ yếu tới thông tin mà hệ thống giữ gìn Chúng ta hỏi người dùng xem họ cần thông tin nào, thiết kế ngân hàng liệu để chứa thông tin đó, cung cấp Forms để nhập thông tin in báo cáo để trình bày thông tin –> tập trung vào thông tin không để ý đến xảy Khác với hệ thống cách hoạt động (ứng xử) hệ thống – Lối tiếp cận hướng đối tượng lối tư vấn đề theo lối ánh xạ thành phần toán vào đối tượng đời thực Với lối tiếp cận này, chia ứng dụng thành thành phần nhỏ, gọi đối tượng, chúng tương đối độc lập với Sau ta xây dựng ứng dụng cách chắp đối tượng lại với – Chức hệ thống biểu diễn thông qua cộng tác đối tượng, việc thay đổi chức năng, tiến hóa chức không làm thay đổi đến cấu trúc tĩnh phần mềm – Ưu điểm: đơn giản, phương pháp tốt cho việc thiết kế ngân hàng liệu – Ưu điểm: Một ưu điểm nắm bắt thông tin, quan trọng bậc phương pháp phân tích thiết kế hướng đối tượng – Nhược điểm: tính tái sử dụng: bạn tạo thành phần (đối tượng) lần + áp dụng cho việc thiết kế ứng dụng dùng chúng nhiều lần sau lại khiến phát sinh nhiều khó –> giảm thiểu lỗi khó khăn khăn việc bảo trì, giúp tăng tốc độ + Không phù hợp với hệ thống thường thiết kế phát triển phần mềm xuyên thay đổi Câu 20 Anh (Chị) trình bày khái niệm mục đích thiết kế giao diện người dùng ? Trả lời: - Khái niệm UI: Là không gian nơi mà tương tác người sử dụng máy tính thực • UID thành phần quan trọng thiết kế phần mềm 16 • Yếu tố người phải coi trọng đặc biệt (user-centric design) Chúng ta có trí nhớ giới hạn Chúng ta có sai lầm thao tác với phần mềm Chúng ta có khả vật lý khác nhau: nghe nhìn, vv Chúng ta có sở thích tương tác với phần mềm khác • Người sử dụng thông thường đánh giá phần mềm thông qua giao diện chức • Giao diện tồi nguyên nhân mà phần mềm không sử dụng • Phần lớn giao diện đồ họa - Các mô hình thiết kế giao diện: • Mô hình thiết kế kỹ sư phần mềm xây dựng: tổ hợp biểu diễn liệu, kiến trúc thủ tục phần mềm để thực chức • Mô hình người dùng: kỹ sư phần mềm người chịu trách nhiệm làm việc với người sử dụng xây dựng, mô tả sơ lược hệ thống cho người dùng cuối • Mô hình người dùng cảm nhận hệ thống người dùng cuối xây dựng • Hình ảnh hệ thống người cài đặt hệ thống xây dựng, tổ hợp biểu lộ bên hệ thống dựa máy tính Tương tác người sử dụng: • Thao tác trực tiếp: • Lựa chọn menu • Nhập form • Sử dụng ngôn ngữ dòng lệnh • Sử dụng ngôn ngữ tự nhiên Trình bày thông tin: • Một số câu hỏi cần phải đặt để xác định kiểu trinhg bày thông tin • Người sử dụng quan tâm tới độ xác thông tin mối quan hệ giá trị liệu? • Tốc độ thay đổi thông tin? Và liệu người sử dụng có cần htông báo thay đổi này? • Liệu người sử dụng có bắt buộc phải tác động phản ứng lại thay đổi này? • Người sử dụng có phải tương tác với thông tin trình bày? • Kiểu liệu trình bày gi? 17 Chương 5: Lập trình hiệu Câu 21: Một ngôn ngữ lập trình có yếu tố đặc trưng gì? Trả lời: Đặc trưng ngôn ngữ lập trình - Dễ dịch thiết kế sang chương trình - Từ khóa gần với ngôn ngữ tự nhiên - Có trình biên dịch hiệu - Khả chuyển chương trình gốc - Có sẵn công cụ phát triển - Dễ bảo trì Câu 22: Khi nói phong cách lập trình nói yếu tố nào? Trả lời: Phong cách lập trình bao hàm triết lý lập trình nhấn mạnh tính dễ hiểu chương trình nguồn Các yếu tố phong cách bao gồm tài liệu bên chương trình, phương pháp khai báo liệu, cách xây dựng câu lệnh kỹ thuật vào Câu 23: Lời thích mã nguồn chương trình thường đặt đâu? Nội dung mô tả gì? Trả lời: - Vị trí đặt thích chương trình + thành phần/ Module + Lớp + Hàm/thủ tục + Các vị trí đặc biệt khác Nội dung mô tả đoạn lệnh dùng để làm gì, có ý nghĩa Câu 24: Khi lựa chọn ngôn ngữ lập trình để viết phần mềm thường dựa yếu tố nào? Trả lời: Các đặc trưng ngôn ngữ lập trình định miền ứng dụng ngôn ngữ Miền ứng dụng yếu tố để lựa chọn ngôn ngữ cho dự án phần mềm 18 Câu 25: Tính hiệu chương trình thể yếu tố nào? Trả lời: Lập trình hướng tới hiệu thực tức tiết kiệm tài nguyên phần cứng Câu 26: Để cải thiện hiệu xuất chương trình cần làm gì? Trả lời: Để tăng cường hiệu vào/ra: - Số yêu cầu vào/ra nên mức tối thiểu - Mọi việc vào/ra nên qua đệm - Nên tối ưu thao tác vào/ra với chủng loại thiết bị đầu cuối ví dụ hình, máy in, mạng hay loại nhớ Câu 27: Trình bày ngắn gọn hiểu biết anh/chị lập trình hướng thủ thục? Trả lời: Những ngôn ngữ lập trình truyền thống như: Pascal, C, Foxpro gọi chung ngôn ngữ lập trình hướng thủ tục Theo cách tiếp cận hướng thủ tục hệ thống phần mềm xem dãy công việc cần thực đọc liệu, tính toán, xử lý, lập báo cáo in ấn kết Mỗi công việc dược thực hàm hay thủ tục định Câu lệnh không đơn gán Ba cấu trúc lệnh bản: Selection: if B then S1 else S2 if B then S1 Iteration: While B S repeat S until B Sequencing: S1; S2; S3; Câu 28: Trình bày ngắn gọn hiểu biết anh/chị lập trình hướng đối tượng? Trả lời: Phong cách phương pháp lập trình hướng đối tượng (OOP - Object Oriented Programming) tập chung vào liệu Theo cách tiếp cận câu hỏi thường đặt liệu phương thức(hay hàm) xử lý người ta đem gói tất liệu phương thức có liên quan với thành nhóm giống lọ thuốc có hai thứ: Các viên thuốc(dữ liệu) tờ giấy ghi cách dùng viên thuốc đó(phương thức) Hai thứ gộp lại thành kiểu liệu gọi liệu đối tượng(Object) Lập trình có sử dụng kiểu liệu loại gọi lập trình hướng đối tượng Dựa ba đặc trưng bản: - Bao gói/ che dấu thông tin - Kế thừa 19 - Đa hình 20 Chương 7: Kiểm thử phần mềm Câu 29: Kiểm thử phần mềm gì? Trả lời: Kiểm thử phầm mềm yếu tố định đảm bảo chất lượng phần mềm SQA(Software Quality Assuarance), khâu điển hình rà soát đặc tả, thiết kế, lập mã Kiểm thử theo Glen Myers trình vận hành chương trình để tìm lỗi Câu 30: Có loại kiểm thử nào? Trả lời: - Kiểm thử đơn vị - Kiểm thử tích hợp - Kiểm thử hệ thống - Kiểm thử chấp nhận(aceptance testing) + Kiểm thử alpha(alpha testing) + Người dùng thực + Trong môi trường quản lý + Kiểm thử Beta(beta testing) + Người dùng thực + môi trường thực Câu 31: Những hạn chế thường gặp phải kiểm thử phần mềm? Trả lời: Nâng cao chất lượng phần mềm không vượt chất lượng thiết kế: phát lỗi tiềm tàng sửa chúng Phát lỗi bị hạn chế thủ công Dễ bị ảnh hưởng tâm lý kiểm thử Khó bảo đảm tính đầy đủ kiểm thử Câu 32: Có mức kiểm thử phần mềm nào? Trả lời: Kiểm thử đơn vị(unit testing) Kiểm thử tích hợp(integration testing) 21 Kiểm thử hệ thống(system testing) + Kiểm thử chức năng(functional testing) + Kiểm thử phục hồi(recovery test) + Kiểm thử chịu tải(extra: stress & load test) + Kiểm thử thi hành(performance test) + Kiểm thử an ninh(sercurity test) Câu 33: Khi kiểm thử phần mềm phải tuân thủ nguyên tắc nào? Trả lời: Chất lượng phần mềm khâu thiết kế định chủ yếu khâu kiểm thử Tính dễ kiểm thử phụ thuộc vào cấu trúc chương trình Người kiểm thử người phát triển nên khác Dữ liệu thử bình thường ý nghĩa nhiều, cần có liệu kiểm thử mà phát lỗi Khi thiết kế trường hợp thử, không liệu kiểm thử nhập vào mà phải thiết kế trước liệu kết có Khi phát sinh thêm trường hợp thử nên thử lại trường hợp thử trước để tránh ảnh hưởng lan truyền Câu 34: Trình bày tóm tắt hiểu biết anh/chị kiểm thử hộp trắng Trả lời: Khái niệm • Đối tượng: mã nguồn • Mức: modun đơn vị • Nội dung khám xét: + Các chi tiết thủ tục(thuật toán) + Con đường logic(luồng điều khiển) + Các trạng thái chương trình (dữ liệu) Nội dung Kiểm thử gì? - Mọi lệnh (đầy đủ) - Mọi điều kiện logic (rẽ nhánh) - Mọi chu trình chương trình (lặp lại) - Mọi cấu trúc liệu dùng (dữ liệu) - Mọi tiến trình từ đầu – kết thúc(từng luồng điều khiển) Yêu cầu KT 22 Yêu cầu đặt ra: - Mọi đường độc lập modun cần thực lần - Mọi ràng buộc logic thực hai phía phía sai - Tất vòng lặp biên biên vận hành phải thực - Mọi cấu trúc liệu nội dùng để đảm bảo hiệu lực thi hành Lý kiểm thử Vì tốn tiền cho kiểm thử hộp trắng - Các sai logic giả thiết không tỷ lệ nghịch với xác suất để đường logic thi hành - Thực tế: đường logic thi hành sở định - Có sai tả ngẫu nhiên đường ta không kiểm tra Các kỹ thuật sử dụng - Đồ thị dòng (Tom MacCabe đưa đầu tiên) - Ma trận kiểm thử (số đường đi, trọng số) - Điều kiện logic (chiến lược miền BRO) - Điều khiển theo dòng liệu - Các cấu trúc chu trình – giá trị đặc trưng Câu 35: Trình bày tóm tắt hiểu biết anh/chị kiểm thử hộp đen Trả lời: Khái niệm - Là kiểm thử yêu cầu chức - Đối tượng: modun, hệ con, toàn hệ thống - Đặc trưng: + Thuyết minh: chức đủ & vận hành + thực hiện: qua giao diện + Cơ sở: đặc tả, điều kiện vào/ra cấu trúc liệu + Ít ý tới cấu trúc logic nội Mục đích Tìm loại sai liên quan: - Chức năng: đủ, đắn - Giao diện: vào/ra: đủ, phù hợp, đúng, tiện lợi - Cấu trúc truy nhập liệu: thông suốt, đắn - Thực thi: trôi chảy, kịp thời, chịu lỗi, phục hồi 23 Khởi đầu- kết thúc: tiến trình thông suốt Các câu hỏi mà kiểm thử hộp đen trả lời Các câu hỏi tập trung trả lời: - Hiệu lực chức (chức năng, hiệu suất, giao diện) đạt đến đâu - Lớp đầu vào cho ca kiểm thử tốt - Sự nhạy cảm modun với giá trị vào - Các biên lớp liệu cô lập chưa - Chịu lỗi với nhịp điệu /khối lượng liệu - Tổ hợp liệu đặc biệt ảnh hưởng tới hoạt động hệ thống - Những tiến trình (khởi đầu, kết thúc) chưa thông suốt Vấn đề tiêu chuẩn lựa chọn Vấn đề: - Các tiến trình chức hệ thống đủ lớn - Các liệu dày đặc, đa dạng - Không dự kiến tới bất thường Tiêu chuẩn hướng đến - Thu gọn ca kiểm thử đến mức (ít, đơn giản) - Phát sai lớp liệu, số đặc biệt (không phải sai cụ thể gắn với kiểm thử cụ thể Các kỹ thuật kiểm thử Phân hoạch tương đương Phân tích giá trị biên Đồ thị nhân Những hạn chế KT hộp đen Khi hệ thống có nhiều loại liệu đầu vào khác nhau, điều dẫn tới bùng nổ ca kiểm thử Do biết modun chương trình hay chưa kiểm thử, phải kiểm thử lại hay bỏ qua lỗi tiềm ẩn gói phần mềm Nếu đặc tả rõ ràng súc tích khó thiết kế ca kiểm thử đắn Câu 36: Việc kiểm thử phần mềm nên làm giai đoạn trình phát triển phần mềm? sao? Trả lời: - 24 Tùy thuộc vào phương pháp, việc kiểm thử thực lúc trình phát triển phần mềm Theo truyền thống nỗ lực kiểm thử tiến hành sau yêu cầu xác định việc lập trình hoàn tất Agile (là tập hợp phương pháp phát triển phần mềm linh hoạt dựa việc lặp lặp lại gia tăng giá trị) việc kiểm thử tiến hành liên tục suốt trình xây dựng phần mềm Như vậy, phương pháp kiểm thử bị chi phối theo quy trình phát triển phần mềm định 25 [...]... Kiến trúc phần mềm của một hệ thống bao gồm các thành phần phần mềm, các thuộc tính của chúng cũng như mối quan hệ giữa các thành phần - Vai trò của kiến trúc phần mềm: • Có vai trò quan trọng trong p/triển phần mềm (PM): Công cụ giao tiếp giữa những người liên quan (understanding and communication): Tài liệu mô tả kiến trúc sẽ đựoc sử dụng bởi nhiều thành viên liên quan tới dự án phần mềm 12 Để... phần mềm có thể được sử dụng để chỉ ra/dự đoán các thuộc tính của hệ thống Ngoài ra nếu kiến trúc phần mềm có phân hoạch tốt, thì việc sử dụng phân hoạch để phát triển các chức năng dễ dàng hơn Sử dụng lại ở quy mô lớn: Chúng ta có xu hướng sử dụng lại các phần của phần mềm, do đó, kiến trúc là thông thông tin quan trọng trong việc hiểu biết các phần của phần mềm • Kiến trúc không phải là thành phần. .. hình thiết kế hệ thống phần mềm cuối cùng, làm cơ sở cho việc triển khai chương trình phần mềm - Tài liệu thiết kế phần mềm là công cụ giao tiếp giữa nhóm cùng tham gia vào việc phát triển sản phẩm, để quản lý các rủi ro, đạt đến phần mềm hiệu quả 13 Thiết kế phần mềm là tài liệu cung cấp đầy đủ các thông tin cần thiết cho những người kỹ sư hệ thống để bảo trì hệ thống sau này Câu 16 Anh (Chị) hãy trình... trong thao tác với phần mềm Chúng ta có khả năng vật lý khác nhau: nghe nhìn, vv Chúng ta có sở thích tương tác với phần mềm khác nhau • Người sử dụng thông thường đánh giá phần mềm thông qua giao diện hơn là chức năng • Giao diện tồi là nguyên nhân mà phần mềm không được sử dụng • Phần lớn là giao diện đồ họa - Các mô hình thiết kế giao diện: • Mô hình thiết kế do kỹ sư phần mềm xây dựng: tổ hợp... hình khác Mô hình ER cho phân tích dữ liệu Mô hình đối tượng cho phân tích dự liệu Câu 14 Anh (Chị) hãy trình khái niệm kiến trúc phần mềm, vai trò của kiến trúc phần mềm, và các mô hình kiến trúc phần mềm ? Trả lời: - Khái niệm kiến trúc phần mềm: • Kiến trúc phần mềm (Software Architecture) một cấu trúc phần mềm và qua đó cung cấp một sự tích hợp chặt về mặt khái niệm của hệ thống • Qui trình... + trong môi trường thực Câu 31: Những hạn chế thường gặp phải khi kiểm thử phần mềm? Trả lời: Nâng cao chất lượng phần mềm nhưng không vượt quá chất lượng khi thiết kế: chỉ phát hiện các lỗi tiềm tàng và sửa chúng Phát hiện lỗi bị hạn chế do thủ công là chính Dễ bị ảnh hưởng tâm lý khi kiểm thử Khó bảo đảm tính đầy đủ khi kiểm thử Câu 32: Có những mức kiểm thử phần mềm nào? Trả lời: Kiểm... cơ bản: - Bao gói/ che dấu thông tin - Kế thừa 19 - Đa hình 20 Chương 7: Kiểm thử phần mềm Câu 29: Kiểm thử phần mềm là gì? Trả lời: Kiểm thử phầm mềm là yếu tố quyết định của đảm bảo chất lượng phần mềm SQA(Software Quality Assuarance), là khâu điển hình của rà soát đặc tả, thiết kế, lập mã Kiểm thử theo Glen Myers là quá trình vận hành chương trình để tìm ra lỗi Câu 30: Có những loại kiểm thử... hệ con hay giữa các thành phần Mô hình phân tán • Cách nhìn khác Module Thành phần và kết nối (Component & Connector – C&C) Cấp phát (Allocation) Câu 15 Anh (Chị ) hãy trình bày khái niện thiết kế và vai trò của thiết kế ? Trả lời: • Khái niệm thiết kế: Thiết kế phần mềm là quá trình chuyển các đặc tả yêu cầu phần mềm thành một biểu diễn thiết kế của hệ thống phần mềm cần xây dựng sao cho người... tác trực tiếp: • Lựa chọn menu • Nhập form • Sử dụng ngôn ngữ dòng lệnh • Sử dụng ngôn ngữ tự nhiên Trình bày thông tin: • Một số câu hỏi cần phải đặt ra để xác định kiểu trinhg bày thông tin • Người sử dụng quan tâm tới độ chính xác thông tin hay là mối quan hệ giữa các giá trị dữ liệu? • Tốc độ thay đổi thông tin? Và liệu người sử dụng có cần htông báo về thay đổi này? • Liệu người sử dụng có bắt buộc... loại bộ nhớ ngoài Câu 27: Trình bày ngắn gọn hiểu biết của anh/chị về lập trình hướng thủ thục? Trả lời: Những ngôn ngữ lập trình truyền thống như: Pascal, C, Foxpro được gọi chung là ngôn ngữ lập trình hướng thủ tục Theo cách tiếp cận hướng thủ tục thì hệ thống phần mềm được xem như là dãy các công việc cần thực hiện như đọc dữ liệu, tính toán, xử lý, lập báo cáo và in ấn kết quả Mỗi công việc đó sẽ ... phát triển phần mềm? Tiêu chí để đánh giá phần mềm tốt gì? Trả lời: Sự phát triển phần mềm: Phần mềm tiến hóa phần cứng Về qui mô, phức tạp tốc độ Về chức mức độ hoàn thiện Công nghệ liên... • Kiến trúc phần mềm hệ thống bao gồm thành phần phần mềm, thuộc tính chúng mối quan hệ thành phần - Vai trò kiến trúc phần mềm: • Có vai trò quan trọng p/triển phần mềm (PM): Công cụ giao... tích dự liệu Câu 14 Anh (Chị) trình khái niệm kiến trúc phần mềm, vai trò kiến trúc phần mềm, mô hình kiến trúc phần mềm ? Trả lời: - Khái niệm kiến trúc phần mềm: • Kiến trúc phần mềm (Software