- Khái niệm cleanroom SE Tìm hiểu về kỹ nghệ - Sử dụng / phạm vi áp dụng phần mềm phòng - Các nội dung của cleanroom SE 1 sạch - Hiện trạng phát triển và nghiên cứu (Cleanroom software - Các công cụ hỗ trợ engineering) - Ví dụ: tìm hiểu hoặc áp dụng một ví dụ cụ thể về cleanroom SE - Khái niệm về tái kỹ nghệ phần mềm - Phạm vi, mục tiêu của tái kỹ nghệ phần mềm - Các khái niệm trong Software Re-engineering Tìm hiểu về tái kỹ - Quy trình tái kỹ nghệ phần mềm nghệ phần mềm 2 - Các phương pháp tiếp cận, các giai đoạn và nhiệm vụ (Software re- - Hiện trạng phát triển và nghiên cứu engineering) - Các công cụ hỗ trợ - Ví dụ: tìm hiểu hoặc áp dụng một ví dụ cụ thể về Software Re- engineering - Tìm hiểu hiện trạng sử dụng công nghệ thông tin hỗ trợ người khiếm thị tiếp cận và sử dụng thông tin Tìm hiểu về bộ tiêu - Phân tích nhu cầu, phương pháp tiếp cận và sử dụng thông tin của chuẩn hỗ trợ thiết kế người khiếm thị Website hỗ trợ người - Tìm hiểu các dịch vụ hỗ trợ người khiếm thị tiếp cận và sử dụng thông 3 khiếm thị tiếp cận và tin sử dụng thông tin - Tìm hiểu các tiêu chí hỗ trợ người khiếm thị nêu trong khuyến cáo (WCAG 2.1) W3C WCAG 2.1 - Các kỹ thuật HTML và CSS trong thiết kế Website đáp ứng các tiêu chí hỗ trợ người khiếm thị nêu trong khuyến cáo W3C WCAG 2.1 - Định nghĩa refactoring - Các vấn đề khi refactor - Nhận biết mã nguồn refactor Tìm hiểu về 4 - Các phương pháp refactor refactoring - Tìm hiêu cụ thể về một công cụ refactor - Áp dụng công cụ đã tìm hiểu áp dụng minh hoạ cho một tình huống hoặc ví dụ refactor cụ thể. - Trình bày về các phương pháp: Z-method, B-method rCOS method Tìm hiểu về các trong phát triển phần mềm: giới thiệu tổng quan, nội dung phương pháp, phương pháp Z- các khái niệm có liên quan 5 method, B-method - Các công cụ hỗ trợ của mỗi phương pháp rCOS method trong - Lựa chọn một phương pháp và lấy ví dụ cụ thể áp dụng phương pháp phát triển phần mềm đó để phát triển một phần mềm. - Real-time process algebra (RTPA): tập các ký pháp toán học sử dụng Tìn hiểu về real-time để mô tả kiến trúc hệ thống, cả khía cạnh tĩnh và động 6 process algebra - Trình bày về các khái niệm và nội dung có liên quan đến RTPA (RTPA) - Ví dụ: tìm hiểu hoặc lấy một ví dụ cụ thể cho việc áp dụng RTPA - Giới thiệu tổng quan về mẫu thiết kế - Hệ thống các mẫu thiết kế Tìm hiểu về các mẫu - Cấu trúc của một mẫu thiết kế thiết kế trong phát - Với mỗi nhóm trình bày cụ thể về một số mẫu thiết kế hay sử dụng 7 triển phần mềm trong nhóm đó (Design patterns) - Trình bày việc áp dụng các mẫu thiết kế vào một ứng dụng cụ thể (có thể lấy bài tập lớn của môn học khác để minh hoạ cho việc áp dụng các mẫu thiết kế như thế nào) - Khái niệm về chỉ số đo chất lượng phần mềm Các chỉ số đo chất - Chỉ số chất lượng cấu trúc: DSQI 8 lượng phần mềm - Chỉ số trưởng thành phần mềm: SMI (Software metrics) - Khoa học phần mềm của Halstead - Số đo độ phức tạp của McCabe - Đảm bảo chất lượng thống kê - Tiếp cận hình thức cho SQA Tổng hợp và so sánh, lấy ví dụ minh hoạ cụ thể - Khái niệm về quy trình phát triển phần mềm nhanh - Phương pháp lập trình XP (Extreme programming) XP (Extreme - Đặc điểm 9 programming) - Quy trình, cách thực hiện - Trình bày một ví dụ cụ thể về áp dụng lập trình XP (Extreme programming) - Khái niệm về thiết kế / xây dựng phần mềm tự động - Các khái niệm có liên quan Các công cụ trợ giúp 10 - Tìm hiểu về các công cụ trợ giúp thiết kế tự động - Trình bày một ví dụ cụ thể về áp dụng một công cụ tự động để xây dựng / thiết kế phần mềm - Khái niệm kiểm thử, phân loại các kỹ thuật kiểm thử - Các quy trình kiểm thử chung - Đặc điểm của ứng dụng Web - Quy trình kiểm thử cho ứng dụng Web Kiểm thử ứng dụng - Các công cụ hỗ trợ kiểm thử cho ứng dụng Web (bao gồm cả các công 11 web cụ kiểm thử tự động) - Các biểu mẫu / tài liệu cho kiểm thử ứng dụng Web - Ví dụ: tìm ứng dụng web có sẵn hoặc xây dựng một ứng dụng web cụ thể và áp dụng các công cụ tìm hiểu được theo quy trình kiểm thử cho ứng dụng đó (có thể áp dụng vào bài tập lớn một môn học khác) - Khái niệm rủi ro phần mềm - Sự cần thiết của quản lý rủi ro Quản lí rủi ro trong - Các hoạt động trong quản lý rủi ro phần mềm 12 dự án phần mềm - Các loại rủi ro trong dự án phần mềm (Risk management) - Quy trình quản lý rủi ro / đánh giá rủi ro - Biện pháp phòng ngừa và hạn chế - Các công cụ hỗ trợ lên kế hoạch và quản lý rủi ro - Ví dụ: tìm hiểu hoặc áp dụng một ví dụ cụ thể về quản lý rủi ro trong dự án phát triển phần mềm (có thể áp dụng vào quá trình xây dựng phần mềm của bài tập lớn một môn học khác) - Khái niệm quản lý cấu hình - Các thành phần trong quản lý cấu hình - Lập kế hoạch quản lý cấu hình trong dự án phần mềm - Phân loại quản lý cấu hình trong dự án phần mềm Quản lý cấu hình - Kiểm tra / đánh giá trong dự án phần - Các công cụ hỗ trợ quản lý cấu hình (CVS: Concurrent Versions 13 mềm System, VSS: Microsoft Visual SourceSafe, Subversion, IBM Rational (Configuration ClearCase, StarTeam của Borland, các công cụ mã nguồn mở - open management) source,…) - Ví dụ: tìm hiểu hoặc áp dụng một công cụ cụ thể về quản lý cấu hình trong dự án phát triển phần mềm (có thể áp dụng vào quá trình xây dựng phần mềm của bài tập lớn một môn học khác) - Khái niệm mạng Petri (lưới Petri) - Mô hình xây dựng mạng lưới từ mẫu - Phân tích bằng đồ thị, biến thiên và mô hình kiểm tra Mạng Petri (lưới Petri - Áp dụng vào các giai đoạn trong phát triển phần mềm (phân tích yêu 14 – Petri nets) trong cầu phần mềm, thiết kế phần mềm (thiết kế cơ sở dữ liệu, thiết kế giao công nghệ phần mềm diện giao tiếp người dùng, thiết kế thủ tục giao tiếp,…), kiểm thử phần mềm, triển khai phần mềm,…) Tham khảo: Petri nets in sofsware engineering (von Prof. Dr. Robert Gold) - Khái niệm quản lý cấu hình phần mềm, - Các tiêu chuẩn quản lý cấu hình Quản lý cấu hình 15 - Các mô hình và phương pháp / kỹ thuật trong quản lý cấu hình phần phần mềm mềm - Tìm hiểu về một công cụ quản lý cấu hình cụ thể - Thổng quan về tài sử dụng: Khái niệm về tính tái sử dụng, Các tài nguyên có thể tái sử dụng, Phân loại tái sử dụng, Các đặc điểm của tính tái sử dụng,... Tái sử dụng trong 16 - Quy trình tái sử dụng Công nghệ phần mềm - Lợi ích và khó khăn - Áp dụng vào tìm hiểu một ứng dụng cụ thể hoặc bài tập lớn môn học đã thực hiện - Khái niệm và các hình thái bảo trì phần mềm - Trình tự nghiệp vụ bảo trì phần mềm Các kỹ thuật bảo trì - Các mô hình và kỹ thuật bảo trì phần mềm 17 phần mềm - Các công cụ bảo trì phần mềm Tìm hiểu về một công cụ bảo trì phần mềm và áp dụng vào bảo trì ứng dụng Web - Khái niệm về độ tin cậy phần mềm - Lịch sử nghiên cứu về mô hình độ tin cậy phần mềm Tìm hiểu về độ tin 18 - Phân nhóm các mô hình đánh giá độ tin cậy phần mềm cậy phần mềm - Các hướng tiếp cận đánh giá độ tin cậy phần mềm - Các công cụ hỗ trợ đánh giá độ tin cậy phần mềm - Khái niệm và ứng dụng của RE Tìm hiểu về Kỹ nghệ - Các vấn đề chính của RE 19 đảo ngược (reverse - Các phương pháp / kỹ thuật RE engineering) Tìm hiểu về một công cụ RE và áp dụng minh hoạ cho một ví dụ hoặc tình huống cụ thể - Khái niệm cơ bản - Các đặc điểm chính Tìm hiểu về 20 - Các thành phần và mô hình hoạt động Blockchain - Xây dựng mô hình quản lý đề thi và tổ chức thi trực tuyến dựa trên blockchain