intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Nhập môn công nghệ phần mềm - Phan Phương Lan

Chia sẻ: Paradise_12 Paradise_12 | Ngày: | Loại File: PDF | Số trang:229

446
lượt xem
158
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Nhập môn công nghệ phần mềm - Phan Phương Lan có kết cấu gồm 2 phẩn trình bày những nội dung sau: Tổng quan về Công nghệ phần mềm, tiến trình phần mềm.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Nhập môn công nghệ phần mềm - Phan Phương Lan

  1. NHẬP MÔN CÔNG NGHỆ PHẦN MỀM GIỚI THIỆU 1 Phan Phương Lan Nội dung Phần I: Tổng quan về Công nghệ phần mềm Chương 1: Giới thiệu về Công nghệ phần mềm Chương 2: Các mô hình về tiến trình phần mềm Chương 3: Quản lý phần mềm Quản lí nhân sự và tổ chức Quản lí chất lượng Quản lí cấu hình Quản lí dự án Chương 4: Ước lượng giá thành Phần II: Tiến trình phần mềm Chương 5: Đặc tả yêu cầu Chương 6: Thiết kế Chương 7: Lập trình Chương 8: Kiểm thử Chương 9: Triển khai hệ thống Chương 10: Bảo trì 2
  2. Tài liệu tham khảo Sách tham khảo chính: Shari Lawrence Pleeger, Joanne M.Atlee, Software Engineering theory and practice, 3th edition, 2006. Ian Sommerville, Software Engineering, 8th edition, 2006. Sách đọc thêm: Hans Van Vliet, Software Engineering principles and practice, John Wiley, 2000. Pressman, Roger S., Software Engineering: A Practitioner’s Approach, McGraw-Hill, 5th edition, 2003. 3
  3. NHẬP MÔN CÔNG NGHỆ PHẦN MỀM CHƯƠNG 1 – GIỚI THIỆU VỀ CÔNG NGHỆ PHẦN MỀM 1 Nội dung Định nghĩa về CNPM Các giai đoạn trong phát triển phần mềm Những người tham gia trong dự án phát triển phần mềm Các yếu tố chính làm thay đổi sự phát triển phần m ềm 2
  4. Định nghĩa về CNPM IEEE: CNPM là (1) Việc áp dụng phương pháp tiếp cận có hệ thống, bài bản và được lượng hóa trong phát triển, vận hành và bảo trì phần mềm; (2) Nghiên cứu các phương pháp tiếp cận được dùng trong (1) NATO: CNPM là việc thiết lập và dùng các nguyên tắc công nghệ đúng đắn để thu được phần mềm một cách kinh tế nhất và chạy hiệu quả trên các máy thật. 3 Định nghĩa về CNPM Mục tiêu của CNPM là làm sao để tạo ra phần mềm: Có chất lượng cao Đúng, thỏa yêu cầu khách hàng Dễ khai thác, vận hành Dễ bảo trì Đúng kế hoạch thời gian Trong phạm vi ngân sách dự kiến Giá thành ngày càng hạ 4
  5. Các giai đoạn phát triển phần mềm Định nghĩa & Phân tích yêu cầu Thiết kế Cài đặt Kiểm thử Phát hành 5 Bảo trì Các giai đoạn phát triển phần mềm Định nghĩa & Phân tích yêu cầu: thu thập mô tả đầy đủ của bài toán Chức năng/tính năng của PM Khả năng mở rộng Các loại tài liệu đòi hỏi Thời gian đáp ứng hoặc các yêu cầu về chất lượng của hệ thống Nghiên cứu khả thi Thiết kế: thiết kế hệ thống và thiết kế chi tiết 6
  6. Các giai đoạn phát triển phần mềm Cài đặt: tập trung vào từng module riêng lẻ: Giải thuật Tài liệu Coding Kiểm thử (kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử hệ thống): thử và xác nhận tính đúng đắn của Tài liệu đặc tả Thiết kế Module Chuyển tiếp giữa các giai đoạn 7 Các giai đoạn phát triển phần mềm Bảo trì Sửa lỗi sau khi phần mềm đã được triển khai Đáp ứng sự thay đổi yêu cầu, sự thay đổi về môi trường, v.v 8
  7. Các giai đoạn phát triển phần mềm Công sức của từng giai đoạn: 40 – 20 – 40 Thiết kế 15% Cài đặt 20% Đặc tả 10% Xác định yêu cầu 10% Kiểm thử 45% 9 Các giai đoạn phát triển phần mềm Công sức của từng giai đoạn – Giai đoạn bảo trì Hoạt động bảo trì chiếm khoảng 50 – 70% toàn bộ công sức Các loại bảo trì: Hoàn thiện, Phòng ngừa, Hiệu chỉnh và Thích ứng Sự phân phối của các loại bảo trì Hiệu chỉnh 21% Hoàn thiện 50% Thích ứng 25% Phòng ngừa 4% 10
  8. Những người tham gia trong dự án phát triển phần mềm Những người tham gia: Khách hàng, Nhà phát triển và Người sử dụng. 11 Những người tham gia trong dự án phát triển phần mềm Các thành viên trong đội phát triển phần mềm: Nhà phân tích yêu cầu: làm việc với khách hàng để xác định và tư liệu hóa các yêu câu Nhà thiết kế: tạo ra bản mô tả mức hệ thống về cái mà hệ thống phải thực hiện Lập trình viên: viết mã lệnh cài đặt sự thiết kế Nhà kiểm thử: bắt các lỗi Người hướng dẫn: chỉ dẫn người dùng cách sử dụng hệ thống Bảo trì viên: chỉnh sửa các lỗi khi hệ thống đã được phát hành và đáp ứng các thay đổi Thủ thư: chuẩn bị và lưu giữ các tài liệu chẳng hạn như các đặc tả yêu cầu Nhóm quản lý cấu hình: duy trì sự phù hợp giữa các thành phần được tạo ra 12
  9. Những người tham gia trong dự án phát triển phần mềm Các vai trò tiêu biểu được thực hiện bởi những thành viên trong đội phát triển phần mềm 13 Các yếu tố chính làm thay đổi sự phát triển phần mềm Các yếu tố chính: 14
  10. NHẬP MÔN CÔNG NGHỆ PHẦN MỀM CHƯƠNG 2 – CÁC MÔ HÌNH VỀ TIẾN TRÌNH PHẦN MỀM 1 Nội dung Tiến trình Các mô hình về tiến trình phần mềm Mô hình thác nước Mô hình chữ V Mô hình bản mẫu Mô hình phát triển ứng dụng nhanh Mô hình gia tăng Mô hình xoắn ốc Mô hình RUP 2
  11. Tiến trình (Process) Tiến trình: một chuỗi các bước bao gồm các hoạt động, các ràng buộc và các tài nguyên mà chúng tạo ra kết quả được mong đợi Tiến trình: bao gồm một bộ các công cụ và các kỹ thuật 3 Tiến trình Các đặc trưng của tiến trình Quy định tất cả các hoạt động chính của tiến trình Sử dụng các nguồn tài nguyên, phụ thuộc vào tập các ràng buộc (chẳng hạn như kế hoạch làm việc) Tạo ra các sản phẩm cuối cùng hoặc trung gian Có thể được tạo thành từ các tiến trình con bằng hệ thống phân cấp hay các liên kết 4
  12. Tiến trình Các đặc trưng của tiến trình Mỗi hoạt động của tiến trình có tiêu chuẩn vào và ra Các hoạt động được tổ chức theo trình tự vì thế sự tính toán về thời gian là rõ ràng Mỗi tiến trình có các nguyên tắc hướng dẫn, bao gồm các mục tiêu của từng hoạt động Các ràng buộc có thể áp dụng vào một hoạt động, tài nguyên hay sản phẩm 5 Tiến trình Tầm quan trọng của tiến trình Áp đặt cấu trúc và tính bền vững lên một tập các hoạt động Hướng dẫn ta hiểu, điều khiển, kiểm tra và cải thiện các hoạt động Cho phép ta có được các kinh nghiệm 6
  13. Tiến trình Lý do để mô hình hóa một tiến trình Hình thành một cách hiểu chung Tìm ra sự không nhất quán, sự dư thừa hay sự bỏ sót Tìm ra và đánh giá các hoạt động phù hợp để đạt được các mục tiêu của tiến trình Cụ thể hóa một tiến trình chung cho một hoàn cảnh cụ thể 7 Tiến trình Chu kỳ sống của phần mềm Khi một tiến trình liên quan tới việc xây dựng một phần mềm, tiến trình có thể được xem như chu kỳ sống của phần mềm. 8
  14. Các mô hình về tiến trình phần mềm Mô hình thác nước Mô hình chữ V Mô hình bản mẫu Mô hình phát triển ứng dụng nhanh Mô hình gia tăng Mô hình xoắn ốc Mô hình RUP 9 Mô hình thác nước (Waterfall Model) Một trong các mô hình đầu tiên về tiến trình phần m ềm Phù hợp với những bài toán được hiểu kỹ có rất ít hay không có các thay đổi về yêu cầu Đơn giản và dễ giải thích với khách hàng Nó biểu diễn Một tổng quan mức rất cao của tiến trình phát triển Một chuỗi tuần tự các hoạt động của tiến trình 10
  15. Mô hình thác nước Phân tích yêu cầu Thiết kế hệ thống Thiết kế chi tiết Lập trình Kiểm thử đơn vị & tích hợp Kiểm thử hệ thống Kiểm thử chấp nhận Vận hành & bảo trì 11 Mô hình thác nước Không có sự lặp lại trong mô hình thác nước Thực tế, các dự án ít khi tuân theo dòng tuần tự của mô hình, mà thường có lặp lại 12
  16. Mô hình thác nước Hạn chế của mô hình thác nước Không có các hướng dẫn về cách thức xử lý những thay đổi về sản phẩm và hoạt động trong suốt sự phát triển Xem sự phát triển phần mềm như một tiến trình sản xuất hơn là tiến trình sáng tạo Không có các hoạt động lặp để tạo ra sản phẩm cuối Phải chờ đợi lâu trước khi có sản phẩm cuối 13 Mô hình chữ V (V Model) Một sự biến đổi của mô hình thác nước Sử dụng kiểm thử đơn vị để xác minh (verify) thiết kế chi tiết Sử dụng kiểm thử tích hợp để xác minh thiết kế hệ thống Sử dụng kiểm thử chấp nhận để thẩm định (validate) các yêu cầu Nếu các vấn đề được tìm thấy trong suốt sự xác minh và thẩm định, phần bên trái của mô hình chữ V có thể được tái thực hiện trước khi việc kiểm thử phần bên phải được tái thực hiện 14
  17. Mô hình chữ V 15 Mô hình bản mẫu (Prototyping Model) Cho phép sự nghiên cứu về các yêu cầu và thiết kế được lặp lại Giảm sự rủi ro và sự không chắc chắn trong phát triển Sử dụng mô hình bản mẫu khi các yêu cầu chưa rõ ràng 16
  18. Mô hình bản mẫu 17 Mô hình phát triển ứng dụng nhanh (Rapid Application Development: RAD) Là tiến trình phát triển phần mềm gia tăng Thời gian phát triển phần mềm rất ngắn Sử dụng các kỹ thuật thế hệ thứ tư Xây dựng dựa trên hướng thành phần với khả năng tái sử dụng Gồm một số nhóm, mỗi nhóm làm 1 RAD theo các pha: Mô hình hóa nghiệp vụ, Mô hình hóa dữ liệu, Mô hình hóa xử lý, Tạo ứng dụng, Kiểm thử và đánh giá ( Business, Data, Process, Application Generation, Testing) 18
  19. Team #3 Business Business Modeling Modeling Team #2 Data Mô hình Data Modeling Modeling Business Business Process Process phát triển Modeling Modeling Modeling Modeling Application Data Team #1 Application Data ứng dụng Generation Generation Modeling Modeling Business Business Testing & Process Testing & Process nhanh Turnover Modeling Turnover Modeling Modeling Modeling Application Application Data Data Generation Generation Modeling Modeling Testing & Testing & Process Process Turnover Turnover Modeling Modeling Application Application Generation Generation Testing & Testing & Turnover Turnover 60 - 90 days 19 Mô hình phát triển ứng dụng nhanh Cần nguồn nhân lực dồi dào để tạo các nhóm cho các chức năng chính Yêu cầu hai bên cam kết trong thời gian ngắn phải có phần mềm hoàn chỉnh, thiếu trách nhiệm của một bên dễ làm dự án đổ vỡ RAD không phải tốt cho mọi ứng dụng, nhất là với ứng dụng không thể module hóa hoặc đòi hỏi tính năng cao RAD không phù hợp khi các rủi ro kỹ thuật cao 20
  20. Mô hình gia tăng (Incremental Model) Kết hợp mô hình tuần tự và ý tưởng lặp lại của chế bản mẫu Sản phẩm lõi cho những yêu cầu cơ bản nhất của hệ thống được phát triển Các chức năng cho những yêu cầu khác được phát triển thêm sau (gia tăng) Lặp lại quy trình để hoàn thiện dần 21 Mô hình gia tăng Phát hành lần 1 Phát hành lần 2 … 22
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
6=>0