Bài giảng Công nghệ phần mềm - Chương 1: Giới thiệu tổng quan về công nghệ phần mềm - Hoàng Thị Hà

pdf 22 trang Gia Huy 17/05/2022 2760
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 1: Giới thiệu tổng quan về công nghệ phần mềm - Hoàng Thị Hà", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_1_gioi_thieu_tong_quan_v.pdf

Nội dung text: Bài giảng Công nghệ phần mềm - Chương 1: Giới thiệu tổng quan về công nghệ phần mềm - Hoàng Thị Hà

  1. Chương 1: Giới thiệu tổng quan về công nghệ phần mềm GV: Hoàng Thị Hà Email: htha@vnua.edu.vn
  2. Nội dung 1. Lịch sử hình thành và phát triển 2. Một số khái niệm cơ bản có liên quan trong lĩnh vực công nghệ phần mềm 3. Trình bày thêm về vấn đề đạo đức nghề nghiệp liên quan tới lĩnh vực công nghệ phần mềm 4. Câu hỏi ôn tập 05/10/2018 2
  3. 1. Lịch sử hình thành và phát triển  Quá trình tiến hóa của phần mềm  Những năm 1950s đến những năm 1960s  Những năm 1960s đến giữa những năm 1970s  Giữa những năm 1970s – 1990s  Thời kỳ năm 1990 - nay  Sự ra đời của công nghệ phần mềm 05/10/2018 3
  4. 2. Một số khái niệm cơ bản  Phần mềm là gì?  Kỹ nghệ phần mềm là gì?  Sự khác nhau giữa CNPM và khoa học máy tính?  Sự khác nhau giữa công nghệ phần mềm và kỹ nghệ hệ thống.  Tiến trình phần mềm là gì?  Mô hình tiến trình phần mềm là gì? 05/10/2018 4
  5. Một số khái niệm cơ bản(1)  Chi phí của CNPM là gì?  Các phương thức CNPM là gì?  CASE (Computer-Aided Software Engineering) là gì?  Những thuộc tính tốt của phần mềm là gì?  Những thách thức mà CNPM phải đối mặt? 05/10/2018 5
  6. Phần mềm là gì (2)  Các chương trình máy tính kết hợp với các tài liệu như: yêu cầu phần mềm, các mô hình thiết kế và hướng dẫn sử dụng  Các sản phẩm phần mềm có thể được phát triển cho từng khách hàng cụ thể hoặc phát triển cho thị trường dùng chung  Các sản phẩm phần mềm có thể là  Generic – phần mềm được phát triển cho một nhiều đối tượng khách hàng khác nhau (Excel, word )  Bespoke (custom) phát triển cho một khách hàng cụ thể theo mô tả của họ  Phần mềm mới có thể được tạo ra bằng việc phát triển một chương trình mới, cấu hình các hệ thống phần mềm chung hoặc tái sử dụng phần mềm đã có 05/10/2018 6
  7. Kỹ nghệ phần mềm là gì?  Kỹ nghệ phần mềm là những kỹ nghệ cơ bản liên quan tới tất cả các khía cạnh của việc sản xuất phần mềm  Kỹ nghệ phần mềm dựa trên một phương pháp và cách tiếp cận đã được chuẩn hóa, kết hợp với việc sử dụng các công cụ và kỹ thuật hợp lý để giải quyết, phát triển phần mềm dưới những ràng buộc và nguồn tài nguyên có thể 05/10/2018 7
  8. Sự khác nhau giữa kỹ nghệ phần mềm và khoa học máy tính  Khoa học máy tính liên quan tới những nguyên lý và phương pháp; CNPM liên quan tới các thực tế phát triển và bàn giao các sản phẩm phần mềm hữu ích  Những kiến thức về khoa học máy tính là cần thiết cho những kỹ sư phần mềm, giống như những hiểu biết về vật lý cho các kỹ sư điện. 05/10/2018 8
  9. Sự khác nhau giữa CNPM và kỹ nghệ hệ thống  Kỹ nghệ hệ thống liên quan tới tất cả các khía cạnh của việc phát triển các hệ thống dựa trên máy tính, bao gồm phần cứng, phần mềm và tiến trình công nghệ. CNPM là một phần của tiến trình này, liên quan tới việc phát triển cơ sở hạ tầng phần mềm, điều khiển, ứng dụng và CSDL trong hệ thống  Các kỹ sư hệ thống liên quan tới việc đặc tả hệ thống, thiết kế kiến trúc, tích hợp và phát triển 05/10/2018 9
  10. Tiến trình phần mềm là gì?  Một tập hợp các hoạt động với mục tiêu phát triển hoặc cải tiến phần mềm  Các hoạt động chung trong tiến trình phần mềm là:  Đặc tả - hệ thống phải làm gì và những ràng buộc trong việc phát triển  Phát triển – sản xuất hệ thống phần mềm  Kiểm thử (validation)- kiểm tra xem phần mềm có đáp ứng được những mong muốn của khách hàng  Cải tiến (Evolution) – thay đổi phần mềm để đáp ứng được những yêu cầu thay đổi 05/10/2018 10
  11. Mô hình tiến trình phần mềm là gì?  Một cách trình diễn đơn giản một tiến trình phần mềm  Một số ví dụ về mô hình tiến trình phần mềm  Workflow perspective - sequence of activities;  Data-flow perspective - information flow;  Role/action perspective - who does what.  Các mô hình tiến trình chung  Waterfall;  Iterative development;  Component-based software engineering. 05/10/2018 11
  12. Chi phí của kỹ nghệ phần mềm  Gần 60% chi phí cho việc phát triển phần mềm, 40% chi phí cho kiểm thử phần mềm. Đối với phần mềm riêng, chi phí cho việc cải tiến sản phẩm còn nhiều hơn chi phí phát triển  Chi phí khác nhau phụ thuộc và các kiểu phát triển hệ thống và các yêu cầu thuộc tính của hệ thống, chẳng hạn như tính hiệu năng và độ tin cậy.  Sự phân phối chi phí của các giai đoạn phụ thuộc vào mô hình phát triển được sử dụng 05/10/2018 12
  13. Activity cost distribution Waterfall model 0 25 50 75 100 Specification Design Development Integration and testing Iterative development 0 25 50 75 100 Specification Iterative development System testing Component-based software eng ineering 0 25 50 75 100 Specification Development Integration and testing Development and evolution costs for long-lifetime syst ems 0 10 200 30 400 System development System evolution 05/10/2018 13
  14. Product development costs 0 25 50 75 100 Specification Development System testing 05/10/2018 14
  15. Mô hình kỹ nghệ phần mềm là gì?  Các cách tiếp cận cấp trúc hóa để phát triển phần mềm bao gồm: các mô hình hệ thống, các định nghĩa, quy tắc, các hướng dẫn thiết kế và các tiến trình đã được chứng minh qua thực tiễn  Biểu diễn mô hình  Các cách biểu diễn các mô hình dạng hình học  Quy tắc  Các ràng buộc đối với các mô hình hệ thống;  Gợi ý (Recommendations)  Lời khuyên từ thực tiễn;  Process guidance  Những hoạt động nào cần tuân thủ 05/10/2018 15
  16. CASE (Computer-Aided Software Engineering) là gì?  Các hệ thống phần mềm hỗ trợ tự động hóa các hoạt động trong tiến trình phần mềm  Các hệ thống CASE thường được sử dụng phân thành 2 loại  Upper-CASE  Các công cụ hỗ trợ những hoạt động trong giai đoạn đầu của tiến trình phần mềm, chẳng hạn như đặc tả hoặc thiết kế  Lower-CASE  Các công cụ hỗ trợ cho các hoạt động ở giai đoạn cuối của tiến trình phần mềm, chẳng hạn như lập trình, gỡ lỗi và kiểm thử 05/10/2018 16
  17. Những thuộc tính tốt của phần mềm  Phần mềm được bàn giao đáp ứng được những yêu cầu chức năng và hiệu năng, dễ bảo trì, độ tin cậy và được chấp nhận  Maintainability – tính bảo trì  Phần mềm có thể được cải tiến để đáp ứng những yêu cầu thay đổi của khách hàng  Dependability – Độ tin cậy  Phần mềm phải đáng tin cậy;  Efficiency - tính hiệu quả  Phần mềm phải tính tới việc sr dụng hiệu quả các nguồn tài nguyên hệ thống  Acceptability – Tính chấp nhận  Phần mềm phải được người sử dụng chấp nhận, điều này có nghĩa là nó cần phải hiểu được, sử dụng được và tương thích với các hệ thống khác. 05/10/2018 17
  18. Những thách thức mà ngành CNPM phải đối mặt  Tính đồng nhất, việc bản giao và độ tin cậy  Heterogeneity – tính không đồng nhất  Các kỹ thuật sử dụng để phát triển phần mềm phải tính tới tính không đồng nhất của các môi trường thực thi  Delivery – bàn giao sản phẩm  Phát triển các kỹ thuật giúp bàn giao sản phẩm trong thời gian ngắn nhất  Độ tin cậy  Phát triển các kỹ thuật để chứng minh rằng phần mềm đáng tin cậy đối với người sử dụng. 05/10/2018 18
  19. 3. Các chuyên gia và đạo đức nghề nghiệp  Những mối quan hệ cần phải quản lý của các chuyên gia công nghệ thông tin:  Chuyên gia công nghệ thông tin và người sử dụng lao động  Mối quan hệ giữa các chuyên gia CNTT và khách hàng  Mối quan hệ giữa các chuyên gia CNTT và nhà cung cấp  Mối quan hệ giữa chuyên gia CNTT và các chuyên gia khác  Mối quan hệ giữa chuyên gia CNTT và người sử dụng  Mối quan hệ giữa các chuyên gia CNTT và cộng đồng 05/10/2018 19
  20. Các chuyên gia và đạo đức nghề nghiệp  Những quy tắc đạo đức của các chuyên gia CNTT  Phác thảo về những nguyện vọng cơ bản mà một chuyên gia mong muốn.  Danh sách những quy tắc cơ bản mà các thành viên trong tổ chức cần tuân thủ.  Cải thiện việc ra quyết định mang tính đạo đức  Khuyến khích việc nâng cao ý thức đạo đức trong quá trình thực hiện nhiệm vụ  Các quy tắc đạo đức cũng xác định các hành vi có thể chấp nhận và không thể chấp nhận  Tăng cường sự tin tưởng và tôn trọng của cộng đồng 05/10/2018 20
  21. CÂU HỎI ÔN TẬP 1. Khủng hoảng phần mềm là gì? Vì sao khủng hoảng phần mềm lại dẫn tới sự ra đời của ngành công nghệ phần mềm? 2. Hãy trình bày những khái niệm cơ bản của lĩnh vực công nghệ phần mềm. 3. Các chuyên gia CNTT cần phải quản lý những mối quan hệ nào trong quá trình làm việc? Những mối quan hệ này ảnh hưởng như thế nào đối với việc tuân thủ các quy tắc đạo đức nghề nghiệp. 4. Các tổ chức CNTT chuyên nghiệp có vai trò gì trong việc hỗ trợ các chuyên gia CNTT thực hành các quy tắc đạo đức nghề nghiệp? 05/10/2018 21
  22. Question? 22