Tổng quan: - Tiêu chí phần mềm tốt - Các hoạt động chính (liên hệ bài tập lớn) - Các mô hình phát triển phần mềm cơ bản (mô tả được đặc điểm chính, phân biệt, ưu nhược điểm, liên hệ bài tập lớn) PHân tích yêu cầu - định nghĩa, nêu ví dụ liên hệ BTL, phân biệt được, (yêu cầu hệ thống/người dùng) - các khái niệm use case, user story, ví dụ liên hệ BTL - phân biệt yêu cầu chức năng/phi chức năng, dùng ví dụ - các tiêu chí cần có của yêu cầu tốt, nhận xét trên các ví dụ cụ thể - độ đo cho yêu cầu, tại sao cần? ví dụ - các công việc trong kĩ nghệ yêu cầu, các cách thu thập yêu cầu - vẽ sơ đồ use case cho một mô tả kịch bản sử dụng - các cách thẩm định yêu cầu,liên hệ bài tập lớn. - mục đích của việc quản lý thay đổi yêu cầu, cách bạn làm bài tập lớn hỗ trợ gì việc quản lý thay đổi yêu cầu Thiết kế - cho một use case, vẽ biểu đồ phân tích -> thiết kế Quản lý dự án - vai trò và nhiệm vụ của quản lý dự án - các hoạt động quản lý dự án - liên hệ bài tập lớn (bạn đã làm gì hoặc đáng ra có thể làm gì) - Scrum (xem lại các câu hỏi của bài kiểm tra) - lập kế hoạch dự án, cho một danh sách các công việc và điều kiện về thời gian và phụ thuộc, tìm lịch thực hiện. - ước lượng dự án: bạn biết những phương pháp ước lượng dự án nào? Đối với phát triển phần mềm kiểu Agile, phương pháp nào thông dụng? - CÔng cụ quản lý dự án, liên hệ bài tập lớn Kiến trúc - Các dạng kiến trúc( vẽ được hình và 1 câu giải thích, 1 ví dụ) bạn áp dụng kiến trúc gì cho bài tập lớn, bạn biết một hệ thống có thực nào sử dụng kiến trúc gì. - các quyết định về kiến trúc thường được đưa ra vào những thời điểm nào trong lộ trình phát triển phần mềm, liên hệ bài tập lớn Kiểm thử phần mềm: 1.Có những loại kiểm thử cơ bản nào cần thực hiện trong quá trình xây dựng phần mềm. 2.Phân biệt giữa test hộp trắng và test hộp đen 3.a Viết các test case hộp đen cho hàm sau: // return -1 if a or b is negative USCLN(int a,int b): int b.Phân hoạch tương đương của miền input trong hàm trên là gì? ----------------- Các dạng câu hỏi khác (ôn thi) -Với mỗi loại kiểm thử, hiểu được nó là gì, phục vụ công đoạn nào, tại sao cần nó. -Cho một yêu cầu, thiết kế acceptance test để kiểm tra được yêu cầu đó. (cần đủ các loại thông tin cho mỗi test) -Phân biệt giữa xác minh và thẩm định, trong các loại kiểm thử mà bạn biết loại nào thuộc loại xác minh, loại nào thuộc loại thẩm định. -Vai trò của stub và test driver trong kiểm thử đơn vị. -Vẽ đồ thị, liệt kê các test case theo kiểu test hộp trắng cho một hàm, mô tả mục đích của mỗi test. -Liệt kê test kiểu hộp đen (phân hoạch tương đương, biên) cho một hàm, mô tả mục đích của mỗi test. -Phân biệt giữa các chiến lược tích hợp hệ thống, liên hệ Agile. == các câu hỏi khác về quá trình thực hiện bài tập lớn. -Vai trò của công cụ quản lý phiên bản đối với việc lập trình (nó đem lại lợi ích gì, nên sử dụng nó như thế nào) -so sánh giữa việc sử dụng framework phát triển ứng dụng như Rails với việc phát triển ứng dụng từ đầu (bài tập lớn Java môn OOP)