Công Nghệ Phần Mềm 1. Định nghĩa kỹ nghệ phần mềm.Những yếu tố chủ chốt trong kỹ nghệ phần mềm là gì. 3 2.Tiến trình phần mềm là gì?mô hình tiến trình là gì? Hãy trình bày mô hình của 1 số tiến trình cơ bản. 3 3. Thế nào là 1 phần mềm được kỹ nghệ tốt. 5 4. Yêu cầu phần mềm là gì ? phân biệt giữa yêu cầu và nhu cầu. có thể phân yêu cầu theo những đối tượng đọc nào và đặc trung mỗi loại đọc đó. 6 5. Trình bày các bước của tiến trình phát hiện và phân tích yêu cầu. Trình bày các kỹ thuật khác nhau để nhận biết và phân tích yêu cầu. 6 6) Kiểm tra yêu cầu: Các yêu cầu cần được kiểm tra theo từng nghiệp vụ để xem chúng có đầy đủ không, nhất quán không và có phù hợp với những gì mà những người liên quan trông chờ ở hệ thống không 6 7. Tầm quan trọng của thiết kế phần mềm. nêu các giai đoạn thiết kế cần trải qua. 7 8. Khái niệm về thiết kế tốt và các hướng dẫn bảo đảm chất lượng thiết kế 7 9. Các bước thiết kế hướng đối tượng. Nêu ưu và nhược điểm của nó 8 10. Trình bày các phương pháp lập trình phổ biến 8 11. Nêu các đặc trưng của phương pháp lập trình hướng đối tượng 9 12. Những nội dung gì đặt ra liên quan đến lập trình hướng hiệu quả thực hiện 10 13. Thẩm định và xác minh là gì? Tầm quan trọng của nó? 11 14. Có những loại thẩm định xác minh nào? Mô tả nội dung từng loại 11 15. Nêu các bước của tiến trình kiểm thử 11 16. Nêu các phương pháp kiểm thử thường dùng 12 17. Trình bày phương pháp kiểm thử hộp trắng: cơ sở, các yêu cầu cần kiểm tra, các kỹ thuật được sử dụng 12 18. Trình bày pp kiểm thử hộp đen: cơ sở để lập các ca sử dụng, mục tiêu, kỹ thuật được dùng, ưu nhược? 12 19. Kiểm thử đơn vị có đối tượng là gì? Ai thực hiện. Pp và kỹ thuật nào được sử dụng? kiểm tra những loại sai nào? 13 20.Gỡ lỗi được tiến hành khi nào? Trình bày tiến trình gỡ lỗi. Có mấy phương cách gỡ lỗi? nội dung và ưu nhược 13 • Câu 21 : Phần mềm là gì? Nêu các đặc trưng của nó. Có những loại ngôn ngữ nào để phát triển phần mềm Khái niệm: PM đc mô tả bởi 3 bộ phận cấu thành : 14 Câu 22 : Chất lượng của phần mềm là gì? Các tiêu chí của chất lượng phần mềm Đạt được các tiêu chí: 15 Câu 23 : Trình bày hạn chế của đặc tả ngôn ngữ tự nhiên. Ngôn ngữ tự nhiên có cấu trúc là gì? Ưu nhược điểm của nó Hạn chế của đặc tả bằng ngôn ngữ tự nhiên:Người đọc và người viết đặc tả ngôn ngữ tự nhiên phải giải thích các từ theo cùng một nghĩa ,ngôn ngữ tự nhiên có bản chất là mập mờ nên để đạt được yêu cầu trên là rất khó khăn 15 Câu 24: Đặc tả bằng ngôn ngữ mô tả chương trình là gì? Ưu điểm của nó Ngôn ngữ mô tả chương trình – PDL(Program Decription Language) là tương tự với một ngôn ngữ lập trình nào đó nhưng trừu tượng hơn,có nhiều tính năng đặc tả hơn ngôn ngữ tự nhiên có cấu trúc. 15 Câu 25 :Thẩm định yêu cầu là gì? Cần phải thẩm định những nội dung gì của yêu cầu? Có những kỹ nghệ gì để thẩm định yêu cầu? Trình bày tóm tắt nội dung của nó Thẩm định yêu cầu là xét xem đặc tả yêu cầu có thật sự xác định được hệ thống mà khách hàng mong muốn không. 15 Câu 26: Trình bày ý tưởng của các chiến lược phát triển hệ thống hướng cấu trúc và hướng đối tượng Chiến lược phát triển hệ thống hướng cấu trúc: 16 Câu 27: Các bước thiết kế hướng cấu trúc. Nêu ưu nhược điểm của nó Các bước thiết kế hướng cấu trúc: 16 Câu 28:Nêu các nội dung liên quan đến phong cách lập trình Phong cách lập trình 17 Câu 29: Phần mềm còn lỗi hay không khi thực hiện hết các ca kiểm thử được thiết kế. Khi nào thì dừng kiểm thử? Quá trình kiểm thử cần được tổ chức theo một chiến lược tổng thể với các mức cục thể. Tiến trình này không thể đảm bảo phát hiện tất cả lỗi khiếm khuyết của phần mềm. Càng về sau việc phát hiện và sửa lỗi càng đắt đỏ vì thế người ta cần phải dừng lại ở một thời điểm thích hợp tùy theo cách tiếp cận bi quan hay lạc quan. Thời điểm dừng này liên quan đến khái niệm “tiêu chuẩn đầy đủ của kiểm thử”. Đối với kiểm thử ở mức môđun người ta thường dừng kiểm thử khi đã thực hiện hết các ca kiểm thử được thiết kế. Đối với kiểm thử thẩm định người ta thường dừng khi gặp một trong những trường hợp sau: 18
Công Nghệ Phần Mềm - Định nghĩa kỹ nghệ phần mềm.Những yếu tố chủ chốt kỹ nghệ phần mềm Định nghĩa: KNPN việc thiết lập sử dụng đắn nguyên lý công nghệ có để tạo phần mềm cách kinh tế, tin cậy, sử dụng làm việc hiệu máy tính thực Những yếu tố chủ chốt: Kỹ nghệ phần mềm kỹ nghệ phát triển hệ thống, gồm loạt bước chứa đựng yếu tố chủ chốt: Phương pháp: liên quan đến giải pháp kỹ thuật giải vấn đề Công cụ : liên quan đến phương tiện trợ giúp Thủ tục :liên quan đến cách tổ chức quản lý trình làm phần mềm 2.Tiến trình phần mềm gì?mô hình tiến trình gì? Hãy trình bày mô hình số tiến trình Tiến trình phần mềm: loạt bước hoạt động dự kiến trước- lộ trình mà theo tạo phần mềm chất lượng, hiệu thời hạn Mô hình tiến trình : (process model) mô tả tiến trình cách đơn giản hóa xem xét từ cách nhìn cụ thể Mô hình số tiến trình: Mô hình thác nước: - mô hình làm mẫu: • • • • • 1 - mô hình xoắc ốc: - mô hình RUP: ( Rational unified process) mô hình phát triển phần mềm dành riêng cho hướng đối tượng gồm đặc trưng: lấy kiến trúc làm trung tâm, điều kiển ca sử dụng, lặp tăng dần Gần tương đồng với mô hình xoắc ốc, Tuy nhiên , bước lặp RUP, nd hđ có đặc trưng riêng gắn với ngôn ngữ mô hình hóa thông –UML 2 - Các mô hình phát triển tiến hóa: Mô hình phát triển tăng dần: Thế phần mềm kỹ nghệ tốt Các thuộc tính phần mềm kỹ nghệ tốt: - bảo trì được: dễ dàng sửa chữa mà ko tốn - đáng tin cậy: có lỗi,đáp ứng đc nhu cầu người sử dụng - có hiệu : hệ thống không lãng phí nguồn lực nhớ,bộ xử lý - khả dụng giá thành chấp nhận được:có giao diện người dùng thích hợp giá hợp lý 3 Yêu cầu phần mềm ? phân biệt yêu cầu nhu cầu phân yêu cầu theo đối tượng đọc đặc trung loại đọc Yêu cầu phần mềm mô tả việc mà hệ thống làm ràng buộc phải tuân thủ hoạt động Phân biệt yêu cầu nhu cầu: - Nhu cầu mong muốn người dung gửi cho nhà lập trình ngôn ngữ tự nhiên biểu đồ Yêu cầu mô tả nhà lập trình đặt tả yêu cầu hệ thống dựa nhu cầu Có thể phân yêu cầu theo đối tượng đọc: Người dùng, Hệ thống Yêu cầu người sử dụng phát biểu ngôn ngữ tự nhiên biểu đồ để mô tả dịch vụ mà hệ thống cung cấp ràng buộc hoạt động Đó phát biểu hướng người dùng .Yêu cầu hệ thống nêu chi tiết hệ thống ràng buộc Nó dùng làm sỏ cho hợp đồng người mua người phát triển phần mềm Trình bày bước tiến trình phát phân tích yêu cầu Trình bày kỹ thuật khác để nhận biết phân tích yêu cầu 4 Một chu kỳ tiến trình bắt đầu việc tìm hiểu lĩnh vực ứng dụng kết thúc việc thẩm định yêu cầu Sự hiểu biết yêu cầu tăng cường sau chu kỳ Các hoạt động chung tiến trình thường bao gồm: 1) Tìm hiểu miền ứng dụng: Đó hoạt động nghiệp vụ, nội dung nó, quy tắc nghiệp vụ cần tuân thủ, sản phẩm nó, lĩnh vực liên quan 2) Thu thập yêu cầu: trình giao tiếp với người liên quan đến hệ thống để phát yêu cầu họ hệ thống 3) Phân loại yêu cầu: Hoạt động bao gồm việc tập hợp lại yêu cầu thu xếp vào loại tương ứng 4) Giải xung đột: Hoạt động liên quan đến việc tìm xung đột tìm cách giải chúng 5) Sắp ưu tiên: Giữa yêu cầu có yêu cầu quan trọng Bằng cách giao tiếp với người liên quan, nhà phân tích nhận tầm quan trọng yêu cầu thực xếp chúng 6) Kiểm tra yêu cầu: Các yêu cầu cần kiểm tra theo nghiệp vụ để xem chúng có đầy đủ không, quán không có phù hợp với mà người liên quan trông chờ hệ thống không Các kỹ thuật nhận biết phân tích yêu cầu: Tiếp cận yêu cầu định hướng cách nhìn Kỹ thuật xác định yêu cầu định hướng cách nhìn – VORD Kỹ thuật phân tích yêu cầu dựa mô hình Kỹ thuật phân tích hình thức hóa 5 - - - Trình bày làm mẫu phần mềm Lợi ích làm mẫu phần mềm xã định yêu cầu mẫu phần mềm dùng làm Tiến trình làm mẫu phần mềm bàn mẫu hệ thống giúp người sử dụng thử nghiệm thực tế, duyệt lại yêu cầu có phê phán Lợi ích làm mẫu phần mềm xác định yêu cầu:Khắc phục hiểu lầm người phát triển phần mềm người sử dụng Phát thiếu hụt dịch vụ người dùng Nhận khó sử dụng or nhầm lẫn dịch vụ người dùng Đội ngũ phát triển phần mềm tìm yêu cầu không đầy đủ or không quán phát triển mẫu Giúp thuyết minh cho tính khả thi tính hữu ích ứng dụng nhà quản lý Bản mẫu dùng làm sở cho việc viết đặc tả sản phẩm Bản mẫu phần mềm sử dụng cho mục tiêu: Dùng để huấn luyện người sử dụng trước hệ thống phân phối Dùng trình thử nghiệm hệ thống để chạy back-to-back Điều có nghĩa thử nghiệm vừa dùng để thử mẫu vừa dùng để thử hệ thống Hai kết khác nhau, nghĩa có sai sót Tầm quan trọng thiết kế phần mềm nêu giai đoạn thiết kế cần trải qua Tầm quan trọng thiết kế phần mềm: + Là 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 + Giúp cho nhóm tham gia tránh rủi ro đạt đến phần mềm hiệu + Là tài liệu cung cấp đầy đủ thông tin cần thiết cho người lập trình để bảo trì hệ thống sau Các giai đoạn thiết kế cần trải qua: + Thiết kế sơ bộ: thiết kế kiến trúc tổng thể + Thiết kế chi tiết: • Thiết kế logic: mô tả phần mềm hệ thống mối quan hệ chúng • Thiết kế vật lý: chọn giải pháp công nghệ hữu, phù hợp Khái niệm thiết kế tốt hướng dẫn bảo đảm chất lượng thiết kế - Một thiết kế tốt phải cho phép sản sinh mã hữu hiệu; phải tối thiểu công sức để chuyển thành chương trình, thiết kế phải tốt cho bảo trì (không dễ bảo trì mà tốn kém)… - Các hướng dẫn đảm bảo chất lượng thiết kế: 6 + Tổ chức phân cấp để kiểm soát cách thông minh thành phần + Tổ chức theo môđun để phân hoạch cách logic thành phần thực thành chức + Sử dụng cách biểu diễn phân biệt tách biệt liệu thủ tục + Tổ chức theo môđun dùng chung cho chức đặc trưng đặc biệt + Hình thành giao diện để rút gọn độ phức tạp việc ghép nối môđun với môi trường bên chúng với + Sử dụng lại thành phần phần mềm có, có mã nguồn, mẫu thiết kế… Các bước thiết kế hướng đối tượng Nêu ưu nhược điểm * Các bước thiết kế hướng đối tượng: - xác định kiến trúc hệ thống - 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ế * Ưu nhược điểm: - Ưu điểm: • dễ bảo trì • đối tượng dùng lại • thiết kế có tính dễ hiểu - Nhược điểm: không dễ dàng nhận đối tượng hệ thống • • 10 Trình bày phương pháp lập trình phổ biến Lập trình thủ tục pp lập trình tiên tiến bao gồm khái niệm : Sử dụng thủ tục: Chia chương trình lớn thành chương trình con( thủ tục) thực công việc xác định Các thủ tục gọi lại nhiều lần, gọi lẫn gọi n Chia để trị, giảm độ phức tạp chương trình Lập trình có cấu trúc: Sử dụng câu lệnh có cấu trúc tạo câu lệnh có cấu trúc phức tạp từ câu lệnh đơn giản Câu lệnh có cấu trúc câu lệnh có mục đích rõ ràng, điểm đầu điểm kết thúc tường minh Lập trình hướng đối tượng dựa đặc trưng : bao gói/che dấu thông tin, kế thừa, đa hình Bao gói/che dấu thông tin: gồm việc liên quan mật thiết với nhau:Gắn kết liệu phương thức xử lý liệu thành thể thống gọi (lớp) đối tượng; Che dấu cài đặt cấu trúc liệu cụ thể đối tượng Đối tượng đưa kết thông qua việc cấp dịch vụ giao diện xác định, tách đc giao diện với phần cài đặt cụ thể (lớp ) đối tượng 7 • - • - Dễ dàng sử dụng lại, dễ bảo trì nâng cấp Đảm bảo đc trạng thái đối tượng đắn Kế thừa : Cho phép xây dựng lớp đối tượng kế thừa lớp đối tượng có Thúc đẩy việc sử dụng lại thân phần mềm phần mềm với Đa hình: Cơ chế cho phép nhìn nhận đối tượng theo góc nhìn khác nhau, đồng thời cho phép đối tượng khác giải nghĩa thông điệp theo cách thức khác Tạo nên mềm dẻo Là chế tảng cho việc thực thiết kế mở xây dựng mẫu thiết kế Lập trình hàm: Pp lập trình dựa việc đánh giá biểu thức toán học tạo giá trị từ giá trị có Lập trình hàm đánh giá biểu thức việc thực việc đánh giá phận( cách song song) thông qua việc sử dụng hàm khác tạo kết mà không thay đổi trạng thái có Dễ dàng song song hóa,không tạo hiệu ứng phụ không dùng chung liệu Nn lập trình hàm tiêu biểu : LISP Scheme Lập trình logic Là phương pháp dựa việc mô tả tri thức( quy tắc miền toán liệu có) mang tính logic toán mục tiêu cần giải Hệ thống kiểm tra xem từ việc liệu quy tắc có cách đạt tới mục tiêu hay không Nn logic điển hình Prolog, áp dụng cho hệ chuyên gia toán chứng minh định lý tự động 11 Nêu đặc trưng phương pháp lập trình hướng đối tượng Phương pháp lập trình hướng đối tượng (Object – Oriented Programming) xuất vào thập kỷ 70 kỷ XX nhanh chóng trở thành phương pháp chủ đạo phát triển phần mềm lớn chuyên nghiệp Lập trình hướng đối tượng giúp phát triển phần mềm có chức phức tạp hơn, có hiệu dễ bảo trì Lập trình hướng đối tượng có đặc trưng Bao che / che giấu thông tin (Encapsulation/Information Hiding) đặc trưng lập trình hướng đối tượng Bao gói / che giấu thông tin bao gồm hai công việc liên quan mật thiết với nhau: (i) việc gắn kết liệu phương thức xử lý liệu thành thể thống gọi (lớp) đối tượng, (ii) việc che giấu cài đặt cấu trúc liệu cụ thể đối tượng, đối tượng đưa kết thông qua việc cấp dịch vụ giao diện xác định Thực tốt việc bao gói / che giấu thông tin cho phép thao tác với đối tượng mà không cần biết cách thức cài đặt cụ thể nó, tức tách phần bất biến (giao diện) khỏi phần khả biến (một cách cài đặt cụ thể) (lớp) đối tượng Do việc sử dụng đối tượng cần biết thông tin tối thiểu giao diện nên dễ dàng sử dụng lại , đồng thời việc bảo trì (nâng cấp cài đặt đối tượng) dễ dàng Thêm 8 nữa, thay đổi trạng thái đối tượng thông qua giao diện xác định nên đảm bảo trạng thái đối tượng đắn Kế thừa (Inheritance) chế đặc biệt lập trình hướng đối tượng, cho phép xây dựng lớp đối tượng kế thừa (sử dụng lại) lớp đối tượng có Kế thừa thúc đẩy việc sử dụng lại thân phần mềm phần mềm với Đa hình (Polymorphism) chế cho phép nhìn nhận đối tượng theo góc nhìn khác nhau, đồng thời cho phép đối tượng khác giải nghĩa thông điệp (lời gọi phương phức) theo cách thức khác Cùng với kế thừa, đa hình tạo nên mềm dẻo đặc biệt lập trình hướng đối tượng Đa hình đồng thời chế tảng cho việc thực thiết kế mở xây dựng mẫu thiết kế 12 Những nội dung đặt liên quan đến lập trình hướng hiệu thực Tính hiệu chương trình : Tính hiệu chương trình gốc có liên hệ trực tiếp với tính hiệu thuật toán xác định thiết kế chi tiết Tuy nhiên, phong cách lập trình có tác động đến tốc độ thực yêu cầu nhớ Tập hợp hướng dẫn sau áp dụng thiết kế chi tiết dịch thành chương trình: Đơn giản hóa biểu thức số học lôgic trước vào lập trình Tính cẩn thận chu kỳ lồng để xác định liệu câu lệnh hay biểu thức chuyển hay không Khi có thể, tránh dùng mảng nhiều chiều Khi tránh việc dùng trỏ danh sách phức tạp Dùng phép toán số học “nhanh” Không trộn lẫn kiểu liệu, cho dù ngôn ngữ có cho phép điều Dùng biểu thức số học logic nhiều trình biên dịch có tính tối ưu tự động sinh chương trình hiệu cách dồn nén biểu thức lặp, thực tính chu trình, dùng số học nhanh áp dụng thuật toán có hiệu liên quan khác Với ứng dụng tính hiệu có ý nghĩa quan trọng, trình biên dịch công cụ lập trình thiếu Hiệu nhớ Tính hiệu nhớ phải tính vào đặc trưng phân trang hệ điều hành Nói chung, tính cục chương trình hay việc bảo trì lĩnh vực chức qua kết cấu có cấu trúc phương pháp tuyệt vời làm giảm việc phân trang làm tăng tính hiệu Hạn chế nhớ phát triển phần mềm nhúng mối quan tâm thực tế, nhớ giá thấp, mật độ cao tiến hóa nhanh chóng Nếu yêu cầu hệ thống cần tới nhớ tối thiểu (như sản phẩm giá thấp, khối lượng lớn) trình biên dịch ngôn ngữ cấp cao phải trù tính cẩn thận với tính nén nhớ, hay phương kế cuối cùng, phải dùng tới hợp ngữ Hiệu vào/ra Các thiết bị vào thường có tốc độ chậm nhiều so với khả tính toán máy tính tốc độ truy cập nhớ Việc tối ưu vào làm tăng đáng kể tốc độ thực Một số hướng dẫn đơn giản để tăng cường hiệu vào/ra: 9 Số yêu cầu vào/ra nên giữ mức tối thiểu Mọi việc vào/ra nên qua đệm để làm giảm phí tổn liên lạc Với nhớ phụ (như đĩa) nên lựa chọn dùng phương pháp thâm nhập đơn giản chấp nhận Nên xếp khối vào/ra với thiết bị nhớ phụ Việc vào/ra với thiết bị cuối hay máy in nên nhận diện tính thiết bị cải tiến chất lượng hay tốc độ 13 Thẩm định xác minh gì? Tầm quan trọng nó? a khái niệm thẩm định kiểm tra xem sản phẩm có đáp ứng yêu cầu người dùng hay không, tức trọng vào việc phát lỗi phần mềm qua bước phát triển xác minh kiểm tra xem sp có với đặc tả hay không, tức trọng vào việc phát lỗi phần mềm qua bước phát triển b tầm quan trọng nhiệm vụ đặc biệt quan trọng phát triển phần mềm vấn đề sống tất công ty phần mềm 14 Có loại thẩm định xác minh nào? Mô tả nội dung loại - có loại : - xác minh thẩm định tĩnh : kiểm tra pm mà không thực chương trình Ví dụ xét duyệt yêu cầu, xét duyệt thiết kế, tra mã nguồn, sử dụng biến đổi hình thức(suy luận) để kiểm tra tính đắn chương trình Với loại hình sản phẩm bước người ta thường lập danh mục cần kiểm tra sử dụng bảng câu hỏi (bảng kiểm – check list) để kiểm tra đặc tả theo danh mục Về lý thuyết, thông qua xmtđ tĩnh phát hầu hết lỗi bước phát triển nhiên lại không cho phép đánh giá cách tổng thể tính hiệu phần mềm - xác minh thẩm định động: kiểm tra thông qua việc thực chương trình, tiến hành sau xây dựng chương trình (mã nguồn) Đây kỹ thuật kiểm tra áp dụng phổ biến thực từ sớm 15 Nêu bước tiến trình kiểm thử tiến trình kiểm thử: mô tả pha việc kiểm thử Tính lần vết yêu cầu: kế hoạch yêu cầu cần tìm kiểm thử tương ứng ngược lại(nhờ bảng lần vết) khoản mục kiểm thử: sản phẩm phần mềm cần kiểm thử phải đc đặc tả lịch trình kiểm thử: lịch trình kiểm thử tổng thể phân bố nguồn lực cho hoạt động kiểm thử theo lịch trình thủ tục ghi lại việc kiểm thử: kết kiểm thử phải ghi lậi cách hệ thống Nó dùng để kiểm toán tiến trình kiểm thử nhằm biết kiểm thử tiến hành đắn Các yêu cầu phần cứng, phần mềm cho kiểm thử ràng buộc: ràng buộc tác động đến tiến trình kiểm thử cần đưa 10 10 11 11 - - 16 Nêu phương pháp kiểm thử thường dùng - pp kiểm thử hộp trắng có đối tượng mã nguồn dựa cấu trúc bên chương trình theo cấu trúc điều khiển hoạt động chúng Để đảm bảo tính đầy đủ thì: lệnh phải thực hiện, điều kiện phải kiểm tra, chu trình phải duyệt qua, cấu trúc dl sử dụng, tiến trình lần vết.Năm kỹ thuật dùng : đồ thị luồng, ma trận kiểm thử, kiểm thử điều kiện, kiểm thử vòng lặp, kiểm thử luồng liệu kt hộp trắng sử dụng loại kiểm thử là: kt đơn, kt tích hợp kt hồi quy - pp kiểm thử hộp đen có đối tượng môdun tạo thành chức phần mềm Nó gọi kiểm thử chức (functional testing) hay kiểm thử hành vi (behavioral testing) Nó xem phần mềm “hộp đen” Thông qua giao diện liệu vào/ra để nhận biết xem chương trình thực chức có phù hợp với mong đợi hay không Kt hộp đen nhằm tìm loại sai sau Thiếu chức chức không đắn Sai giao diện Sai cấu trúc truy cập liệu Sai thực thi chức Sai khởi đầu kết thúc Ba kỹ thuật dùng phân hoạch tương đương, phân tích giá trị biên đồ thị nhân 17 Trình bày phương pháp kiểm thử hộp trắng: sở, yêu cầu cần kiểm tra, kỹ thuật sử dụng - sở: dựa việc xem xét cấu trúc bên chương trình theo cấu trúc điều khiển hoạt động chúng - yêu cầu: + đường độc lập muđun cần thực lần + ràng buộc logic thực hai phía đúng(true) sai(false) +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 sử dụng để đảm bảo tính hiệu lực chúng - Năm kỹ thuật dùng : đồ thị luồng, ma trận kiểm thử, kiểm thử điều kiện, kiểm thử vòng lặp, kiểm thử luồng liệu 18 Trình bày pp kiểm thử hộp đen: sở để lập ca sử dụng, mục tiêu, kỹ thuật dùng, ưu nhược? - sở: đặc tả chức phần mềm liệu mà sử dụng - mục tiêu: Kt hộp đen nhằm tìm loại sai sau Thiếu chức chức không đắn Sai giao diện Sai cấu trúc truy cập liệu Sai thực thi chức Sai khởi đầu kết thúc Kiểm thử hộp đen cần tập trung trả lời câu hỏi sau: hiệu lực chức kiểm thử đến đâu? Lớp đầu vào cho ca kiểm thử tốt? chức nhạy cảm giá trị vào nào? Khả dung thứ lỗi nhịp điệu đối tượng 12 12 - liệu nào? Những tổ hợp liệu đặc biệt ảnh hưởng đến hoạt động hệ thống? Kỹ thuật: + phân hoạch tương đương Ưu: lớp tương đương cần xây dựng ca kiểm thử đại diện nên số lượng thời gian kiểm thử giảm đáng kể Nhược: Không phải với toán áp dụng kỹ thuật Có thể bị sót lỗi biên chọn giá trị khoảng miền tương đương + phân tích giá trị biên: Ưu: Thay phải kiểm thử hết toàn giá trị vùng tương đương, kỹ thuật tập trung vào việc kiểm thử giá trị biên miền giá trị nhập vào để thiết kế ca kiểm thử “lỗi thường tiềm ẩn ngõ ngách tập hợp biên” Tiết kiệm thời gian thiết kế ca kiểm thử thực kiểm thử Nhược: Phương pháp hiệu trường hợp đối số đầu vào (input variables) độc lập với đối số có miền giá trị hữu hạn + đồ thị nhân Ưu: có hiệu việc phân hoạch thành lớp tương đương gặp khó khan, mà số đầu vào xác định Nhược: 19 Kiểm thử đơn vị có đối tượng gì? Ai thực Pp kỹ thuật sử dụng? kiểm tra loại sai nào? - đối tượng: môđun đơn vị phần mềm - người thực hiện: lập trình viên -pp: kiểm thử hộp trắng hộp đen trường hợp cần thiết - kỹ thuật: kiểm thử từ xuống, kiểm thử tăng tiến từ lên, kiểm thử quay lui, kiểm thử big bang - nội dung kiểm thử: kiểm thử giao diện(các tham số vào/ra giao diện), kiểm thử vào/ra(các file, đêm lệnh đóng mở), kiểm thử cấu trúc liệu cục bộ(khai báo sử dụng biến), kiểm thử xử lý (các phép toán tính đắn kết quả), kiểm thử điều kiện logic, kiểm thử sai tiềm ẩn(về ngoại lệ, mô tả) , kiểm thử giá trị (các chu trình) 20.Gỡ lỗi tiến hành nào? Trình bày tiến trình gỡ lỗi Có phương cách gỡ lỗi? nội dung ưu nhược - lỗi tìm chương trình, chúng phải phân tích gỡ bỏ - Tiến trình 13 13 - Phương cách gỡ lỗi + vũ dũng vô mưu: cách dễ lại hiệu Chỉ áp dụng không cách khác Đây cách thực hành thô thiển, khả thi + phương cách lần theo vết cũ thông dụng cho kết với chương trình nhỏ Khi số dòng lệnh tăng lên số đường lần ngược từ chỗ có vị trí sai nhiều đến mức thực + phương cách loại trừ dần nguyên nhân: Khi sử dụng liệu có ta chứng minh phản chứng giả thuyết nguyên nhân gây lỗi sai, từ ta có danh sách nguyên nhân lập ca kiểm thử tương ứng xác định nguyên nhân lỗi phải sửa sửa sai sai khác Từ Câu 21 -> 29 câu có Câu 21 : Phần mềm gì? Nêu đặc trưng Có loại ngôn ngữ để phát triển phần mềm Khái niệm: PM đc mô tả phận cấu thành : Các tập lệnh máy tính thực tạo dịch vụ đem lại kết mong muốn cho người dùng Các cấu trúc liệu( lưu trữ nhớ) làm cho chương trình thao tác hiệu với thông tin thích hợp với nội dung thông tin số hóa Các tài liệu để mô tả thao tác, cách sử dụng bảo trì pm Các đặc trưng Pm kỹ nghệ , không chế tạo theo nghĩa cổ điển: Pm thiết kế chế tạo, k định hình từ trc Quá trình thiết kế , sx phụ thuộc người môi trg phát triển Quá trình phát triển pm định giá thành chất lượng pm Pm không hỏng thoái hóa theo thời gian Phần lớn phần mềm xây dựng theo đơn đặt hàng Sự phức tạp tính thay đổi đổi chất pm Ngày nay, pm đươc phát triển theo nhóm Các loại ngôn ngữ để phát triển pm Ngôn ngữ máy Hợp ngữ Các ngôn ngữ bậc cao Ngôn ngữ hệ thứ tư • • - • - 14 14 - Câu 22 : Chất lượng phần mềm gì? Các tiêu chí chất lượng phần mềm Đạt tiêu chí: Đạt mục tiêu thiết kế đề tổ chức Chi phí vận hàng chấp nhận Đáp ứng chuẩn mực httt hành Sp tạo có giá trị xác đáng Bảo trì Khả dụng Mềm dẻo- có khả làm thích nghi được: kiểm tra , mở rộng ứng dụng phát triển tiếp Có tính khả chuyển: chuyển từ môi trường làm việc sang môi trường làm việc khác Câu 23 : Trình bày hạn chế đặc tả ngôn ngữ tự nhiên Ngôn ngữ tự nhiên có cấu trúc gì? Ưu nhược điểm - Hạn chế đặc tả ngôn ngữ tự nhiên:Người đọc người viết đặc tả ngôn ngữ tự nhiên phải giải thích từ theo nghĩa ,ngôn ngữ tự nhiên có chất mập mờ nên để đạt yêu cầu khó khăn - Ngôn ngữ tự nhiên mềm dẻo yêu cầu lien quan đến co thể biểu diễn hình thức hoàn toàn khác người phát triển không nhận mối liên quan - Thiếu khả mô đun hóa: Cấu trúc ngôn ngữ tự nhiên không cân xứng với cấu trúc yêu cầu hệ thống - Các yêu cầu khó phân hoạch cách hữu hiệu hiệu việc thay đổi xác định cách kiểm tra tất yêu cầu nhóm yêu cầu liên quan - Ngôn ngữ tự nhiên có cấu trúc dạng mở rộng ngôn ngữ tự nhiên,nó phụ thuộc vào định dạng mẫu chuẩn sử dụng để biểu diễn yêu cầu - Ưu, nhược điểm ngôn ngữ tự nhiên có cấu trúc: * Ưu điểm: Giữ phần lớn đặc điểm dễ hiểu ngôn ngữ tự nhiên,có cấu trúc rõ ràng ,chính xác ngôn ngữ lập trình * Nhược điểm: Mức độ đồng bị lạm dụng đặc tả Câu 24: Đặc tả ngôn ngữ mô tả chương trình gì? Ưu điểm Ngôn ngữ mô tả chương trình – PDL(Program Decription Language) tương tự với ngôn ngữ lập trình trừu tượng hơn,có nhiều tính đặc tả ngôn ngữ tự nhiên có cấu trúc - Ưu điểm kiểm tra lỗi cú pháp ngữ nghĩa công cụ lập trình phần mềm,những mâu thuẫn sai sót phát nhờ việc kiểm tra Câu 25 :Thẩm định yêu cầu gì? Cần phải thẩm định nội dung yêu cầu? Có kỹ nghệ để thẩm định yêu cầu? Trình bày tóm tắt nội dung 15 15 Thẩm định yêu cầu xét xem đặc tả yêu cầu có thật xác định hệ thống mà khách hàng mong muốn không Những nội dung cần thẩm định - Tính đắn: hệ thống cần bao quát nhu cầu khác người dùng yêu cầu phải đáp ứng cộng động người sử dụng Tính đầy đủ: phải xác định chức ràng buộc mà người sử dụng hệ thống mong muốn Tính quán: yêu cầu không phép xung đột với yêu cầu khác Tính thực: điểm đặc tả yêu cầu không thực Tính kiểm tra được: yêu cầu pahir viết cho kiểm tra Kỹ thuật thấm định yêu cầu nội dung nó: Rà soát yêu cầu: công việc thủ công , đòi hỏi nhiều người đọc trình rà soát cần quản lý, tổ chức rộng với nhiều nguời tham gia Nó thức không thức Xung đột , mâu thuẫn , lỗi thiếu sót yêu cầu phát ghi nhận trình rà soát Làm mẫu: kỹ thuật quan trọng ; mô hình hệ thống thực trình diễn cho người sử dụng Đào tạo người sử dụng sử dụng hệ thống Tạo sinh ca kiểm thử: yêu cầu kiểm thử Nếu ca kiểm thử thực phần cảu công việc thẩm định dễ phát đề yêu cầu Nếu kiểm thử khó khan hay kiểm thử yêu cầu khó triển khai phải xem lại Phân tích tính quán tự động: với yêu cầu biểu diễn dạng mô hình với ký pháp cấu trúc hay hình thức hóa công cụ CASE sử dụng để kiểm tra tính quán cảu mô hình Ý nghĩa với đặc tả hệ thống lớn Câu 26: Trình bày ý tưởng chiến lược phát triển hệ thống hướng cấu trúc hướng đối tượng Chiến lược phát triển hệ thống hướng cấu trúc: + Hệ thống phân chia thành chức năng, bắt đầu mức cao nhất, sau làm mịn để thành thiết kế với chức chi tiết + Trạng thái hệ thống thể qua sở liệu chung chia sẻ cho thao tác - Chiến lược phát triển hệ thống hướng đối tượng: + Hệ thống nhìn nhận đối tượng tương tác với + Mỗi đối tượng thể lớp xác định thuộc tính phương thức + Các lớp thừa kế từ vài lớp đối tượng cao 16 16 + Các đối tượng liên kết với cách trao đổi thông điệp thực dịch vụ chung Câu 27: Các bước thiết kế hướng cấu trúc Nêu ưu nhược điểm * Các bước thiết kế hướng cấu trúc: - Thiết kế liệu - Thiết kế mô hình liệu logic - Thiết kế sở dl vật lí - Thiết kế xử lí - Thiết kế xử lí logic - Thiết kế kiến trúc modun * Ưu, nhược điểm: - Ưu điểm: • phương pháp thiết kế, công cụ trợ giúp đạt đến mức hoàn thiện • có nhiều hệ quản trị dl mạnh trợ giúp việc lưu trữ khai thác đạt mức độ tự động hóa cao Vì thích hợp với toán xử lý dl mô tả dạng bảng - Nhược điểm: • hạn chế với toán dl đa dạng đòi hỏi tương tác nhiều đối tượng khác • khó sử dụng lại, sai sót số phận lan truyền sang phần khác hệ thống • • Câu 28:Nêu nội dung liên quan đến phong cách lập trình - Phong cách lập trình Phong cách lập trình bao hàm triết lý lập trình nhấn mạnh tới 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/ra Tài liệu chương trình Tài liệu bên chương trình gốc bắt đầu với việc chọn lựa tên gọi định danh (biến nhãn), tiếp tục với vị trí thành phần việc thích, kết luận với cách tổ chức trực quan chương trình Một điều rõ ràng là: phần mềm phải chứa tài liệu bên Lời thích cung cấp cho người phát triển ý nghĩa truyền thông với độc giả khác chương trình gốc Lời thích cung cấp hướng dẫn rõ rệt để hiểu pha cuối kỹ nghệ phần mềm - bảo trì Các thích mở đầu thích chức hai phạm trù đòi hỏi cách tiếp cận có khác Lời thích mở đầu nên xuất đầu modul Các thích chức nhúng vào bên thân chương trình gốc dùng để mô tả cho khối chương trình Khai báo liệu Thứ tự khai báo liệu nên chuẩn hóa cho dù ngôn ngữ lập trình yêu cầu bắt buộc điều Các tên biến việc có nghĩa nên mang thông tin kiểu chúng 17 17 • • - Cần phải giải mục đích biến quan trọng, đặc biệt biến tổng thể Các cấu trúc liệu nên giải đầy đủ cấu trúc chức năng, đặc thù sử dụng Xây dựng câu lệnh Cách xây dựng câu lệnh đơn việc tụt lề minh họa cho đặc trưng logic chức đoạn Các câu lệnh chương trình gốc riêng lẻ đơn giản hóa bởi: Tránh dùng phép kiểm tra điều kiện phức tạp Khử bỏ phép kiểm tra điều kiện phủ định Tránh lồng nhiều điều kiện hay chu trình Dùng dấu ngoặc để làm sáng tỏ biểu thức logic hay số học Dùng dấu cách và/hoặc ký hiệu dễ đọc để làm sáng tỏ nội dung câu lệnh Chỉ dùng tính chuẩn ngôn ngữ Để hướng tới chương trình dễ hiểu nên đặt câu hỏi: Liệu hiểu điều ta không người lập trình cho không? Vào/ra Vào mô đun nên tuân thủ theo số hướng dẫn sau: Làm hợp lệ vào Kiểm tra tin cậy tổ hợp khoản mục vào quan trọng Giữ cho định dạng vào đơn giản Dùng báo cuối liệu thay yêu cầu người dùng xác định “số khoản mục” Giữ cho định dạng vào thống ngôn ngữ lập trình có yêu cầu định dạng nghiêm ngặt Câu 29: Phần mềm lỗi hay không thực hết ca kiểm thử thiết kế Khi dừng kiểm thử? Quá trình kiểm thử cần tổ chức theo chiến lược tổng thể với mức cục thể Tiến trình đảm bảo phát tất lỗi khiếm khuyết phần mềm Càng sau việc phát sửa lỗi đắt đỏ người ta cần phải dừng lại thời điểm thích hợp tùy theo cách tiếp cận bi quan hay lạc quan Thời điểm dừng liên quan đến khái niệm “tiêu chuẩn đầy đủ kiểm thử” Đối với kiểm thử mức môđun người ta thường dừng kiểm thử thực hết ca kiểm thử thiết kế Đối với kiểm thử thẩm định người ta thường dừng gặp trường hợp sau: Hết thời gian(tiếp cận bi quan) Hết kinh phí(tiếp cận bi quan) Đạt đến điểm cân hiệu quả(law of diminishing returns) phát khắc phục số lượng đủ lớn lỗi, phần mềm đạt đến độ tin cậy chấp nhận được(tiếp cận lạc quan) tiếp tục chi phí cho việc phát lỗi không thấp chi phí cho việc sửa lỗi xảy Đây tiêu chí quan trọng xem xét đến việc tiếp tục hay dừng kiểm thử 18 18 19 19