Bài giảng Công nghệ phần mềm - Chương 2: Quy trình phần mềm - Nguyễn Minh Huy

Khái niệm cơ bản Quy trình phần mềm làlà gìgì? Chuỗi hoạt động. Theo trình tựtự nhất định. Sản xuất phần mềm. Pha của quy trình: Đầu vào Đầu ra Pha Chuỗi con hoạt động liên quan. Công đoạn. Mỗi pha định nghĩa: WHAT: làm gì. WHO: aiai tham giagia. INPUT: đầu vào. OUTPUT: đầu rara. Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy 5 Hoạt động N Phần mềm Khái niệm cơ bản Cách cách mô tả quy trình: Workflow: Theo luồng công việc. Trình tựtự các bước quy trình. Cách thông dụng thểthể hiện quy trình. Dataflow: Theo luồng dữ liệu. Xoay quanh một đơn vị dữ liệu

pdf24 trang | Chia sẻ: thanhle95 | Lượt xem: 448 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Công nghệ phần mềm - Chương 2: Quy trình phần mềm - Nguyễn Minh Huy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Quy trình phần mềm GV. Nguyễn Minh Huy 1Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung  Khái niệm cơ bản.  Các loại quy trình phần mềm. 2Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung  Khái niệm cơ bản.  Các loại quy trình phần mềm. 3Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Đặc điểm của làm việc không quy trình:  Không theo trình tự nhất định.  Không có bài bản định sẵn.  Cảm tính, lúc này lúc khác.  Khó dự đoán kết quả (predictable).  Khó kiểm soát chất lượng (controllable).  Khó lặp lại thành công (repeatable).  Đầy may rủi!! 4Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Quy trình phần mềm là gì?  Chuỗi hoạt động.  Theo trình tự nhất định.  Sản xuất phần mềm.  Pha của quy trình: Đầu vào Đầu ra Pha Hoạt động 1 Hoạt động 2  Chuỗi con hoạt động liên quan.  Công đoạn. Mỗi pha định nghĩa:  WHAT: làm gì.  WHO: ai tham gia.  INPUT: đầu vào.  OUTPUT: đầu ra. 5Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy Hoạt động N Phần mềm CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Cách cách mô tả quy trình: Workflow:  Theo luồng công việc.  Trình tự các bước quy trình.  Cách thông dụng thể hiện quy trình.  Dataflow:  Theo luồng dữ liệu.  Xoay quanh một đơn vị dữ liệu.  Role/Action:  Theo vai diễn.  Xoay quanh một vai diễn. 6Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Quy trình phỏng vấn xin việc: Workflow:  Dataflow: đơn vị dữ liệu “đơn xin việc” 1. Tiếp nhận hồ sơ 2. Xét duyệt 3. Phỏng vấn 4. Thông báo kết quả  Role/Action: vai diễn “người phỏng vấn”, 7Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy 1. Tiếp nhận 2. Xét duyệt 2.1. Lưu trữ 2.2. Loại bỏ 2. Xét duyệt 3. Phỏng vấn 3. Thông báo kết quả CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Các pha chính yếu trong quy trình:  Phân tích yêu cầu.  Thiết kế phần mềm.  Cài đặt phần mềm.  Kiểm nghiệm phần mềm.  Bảo trì phần mềm. 8Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Phân tích yêu cầu:  Trả lời câu hỏi WHAT.  Xác định những gì cần làm.  Vai trò tham gia: BA (Business Analyst).  Các hoạt động:  Thu thập yêu cầu khách hàng.  Đặc tả yêu cầu.  Kiểm nghiệm yêu cầu.  Mô hình hóa phần mềm. 9Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Thiết kế phần mềm:  Trả lời câu hỏi HOW.  Xác định làm như thế nào.  Vai trò tham gia: kiến trúc sư hệ thống (architect).  Các hoạt động:  Thiết kế tổng thể (high-level design).  Thiết kế kiến trúc.  Thiết kế chi tiết (low-level design).  Thiết kế dữ liệu.  Thiết kế giao diện.  Thiết kế xử lý. 10Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Cài đặt phần mềm:  Hiện thực hóa bản thiết kế.  Vai trò tham gia: lập trình viên (developer).  Các hoạt động:  Cài đặt mã nguồn.  Cài đặt cơ sở dữ liệu.  Cấu hình hệ thống. 11Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Kiểm nghiệm phần mềm:  Phát hiện lỗi:  So với phân tích, thiết kế.  So với cách hiểu khách hàng.  Vai trò tham gia: kiểm tra viên (tester), khách hàng, lập trình viên.  Các hoạt động:  Kiểm thự đơn vị (lập trình viên).  Thanh tra mã nguồn.  Kiểm thử hệ thống (tester).  Nghiệm thu (khách hàng). 12Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm cơ bản  Bảo trì:  Pha “hậu mãi”.  Vận hành, chỉnh sửa, nâng cấp.  Vai trò tham gia:  Kỹ thuật viên (technical support).  Lập trình viên.  Các hoạt động:  Thiết lập nền tảng hoạt động: máy móc, mạng, ứng dụng,  Lắp đặt và cấu hình phần mềm.  Thông báo và sửa lỗi phần mềm.  Nâng cấp phần mềm. 13Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung  Khái niệm cơ bản.  Các loại quy trình. 14Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Mô hình thác nước – Waterfall Model: Winston Royce đề cập,1970. 15Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Mô hình thác nước – Waterfall Model:  Đặc trưng:  Các pha diễn ra TUẦN TỰ và ĐỘC LẬP.  Tách rời giữa phác thảo và hiện thực.  Chú trọng kiểm nghiệm sau khi làm. Ưu điểm:  Thực hiện có hệ thống và bài bản.  Tiên liệu chặt chẽ trước khi làm.  Có thể dự đoán kết quả (predictable-process).  Khuyết điểm:  Khó khăn khi có thay đổi xảy ra.  Chỉ thích hợp với dự án có yêu cầu rõ ràng và ổn định.  Cải tiến cho phép quay lui. 16Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Mô hình tiến hóa – Evolutionary Model:  Cải tiến phương pháp Code & Fix. 17Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Mô hình tiến hóa – Evolutionary Model:  Đặc trưng:  Không đặt nặng tiên liệu trước.  Cải tiến dần qua các phiên bản.  Nhận phản hồi thường xuyên.  Phân tích, thiết kế, và kiểm tra sơ lược. Ưu điểm:  Yêu cầu không cần rõ ràng và ổn định.  Thích ứng tốt với thay đổi (adaptive-process).  Khuyết điểm:  Thiếu cách tiếp cận toàn diện.  Dễ dẫn đến làm việc chấp vá.  Khó dự đoán kết quả. 18Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Hiện thực hóa mô hình tiến hóa:  Phát triển qua nhiều vòng lặp ngắn. Mỗi vòng lặp là một quy trình con.  Có sản phẩm THẬT sau mỗi vòng lặp.  Các quy trình được sử dụng:  Quy trình Waterfall lặp.  Quy trình xoắn ốc.  Quy trình RUP.  Phương pháp Agile. 19Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Waterfall lặp: 20Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Quy trình xoắn ốc (Spiral Process):  Barry Boehm đề xuất, 1986. Mỗi xoắn ốc là một pha.  4 hoạt động trong một pha:  Xác định mục tiêu.  Định lượng rủi ro.  Thực hiện.  Kế hoạch pha sau. 21Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Các loại quy trình  Quy trình RUP (Rational Unified Process):  Do IBM-Rational đề xuất (2003). Gồm 4 pha:  Inception: khảo sát.  Elaboration: phân tích & thiết kế.  Construction: cài đặt & kiểm nghiệm.  Transition: bảo trì & nâng cấp.  Cách lặp: lặp mỗi pha, lặp cả quy trình. 22Nhập môn Công Nghệ Phần Mềm - Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập  Bài tập mô phỏng quy trình:  Nhóm của bạn được giao thực hiện một “DỰ ÁN”.  1 – 2 thành viên trong nhóm đóng một VAI DiỄN. Mỗi vai diễn thực công việc ĐỘC LẬP. 23Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập  Các vai diễn:  Customer:  Cung cấp yêu cầu qua trả lời phỏng vấn.  Analyst:  Thu thập yêu cầu: thông qua phỏng vấn (3 lần). Phân tích yêu cầu: phân nhóm, liệt kê, giải thích.  Architect:  Phác thảo sản phẩm: lập khung sườn, dàn ý.  Gợi ý thực hiện: diễn giải cách thực hiện.  Developer:  Hiện thực hóa sản phẩm: phát triển theo dàn ý. QC Person:  Kiểm tra sản phẩm: lập bảng đánh dấu đạt/chưa đạt. 24Nhập môn Công Nghệ Phần Mềm – Nguyễn Minh Huy CuuDuongThanCong.com https://fb.com/tailieudientucntt