Cơ sở dữ liệu - Chương 1: Tổng quan về công nghệ phần mềm

ppt 30 trang vanle 3070
Bạn đang xem 20 trang mẫu của tài liệu "Cơ sở dữ liệu - Chương 1: Tổng quan về công nghệ phần mềm", để 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:

  • pptco_so_du_lieu_chuong_1_tong_quan_ve_cong_nghe_phan_mem.ppt

Nội dung text: Cơ sở dữ liệu - Chương 1: Tổng quan về công nghệ phần mềm

  1. Khoa CNTT – ĐH Công nghiệp Tp HCM Chương 1 Tổng quan về công nghệ phần mềm BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  2. Nội dung • Một số khái niệm cơ bản về phần mềm – Phần mềm là gì? – Vai trò của phần mềm – Đặc trưng của phần mềm – Thuộc tính của phần mềm • Công nghệ phần mềm là gì? – Khái niệm, đặc trưng – Lịch sử • Khủng hoảng phần mềm • Một số quan điểm sai lệch BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009 2
  3. Khi máy tính chưa xuất hiện, thì việc lập trình chưa có khó khăn gì cả. Khi mới xuất hiện một vài chiếc máy tính chức năng kém thì việc lập trình bắt đầu gặp một vài khó khăn nho nhỏ. Giờ đây khi chúng ta có những chiếc máy tính khổng lồ thì những khó khăn ấy trở nên vô cùng lớn. Như vậy ngành công nghiệp điện tử không giải quyết khó khăn nào cả mà họ chỉ tạo thêm ra những khó khăn mới. Khó khăn mà họ tạo nên chính là việc sử dụng sản phẩm của họ Edsger Dijkstra BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  4. Phần mềm máy tính là gì? • Phần mềm máy tính (Computer software) là: – Sản phẩm do các nhà phát triển phần mềm thiết kế và xây dựng • So sánh chương trình (program) và phần mềm (software) • Software bao gồm 3 phần: – Programs – Data structure • Internal structure • External structure – Documentation, procedures to setup and operate, BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  5. Vai trò của phần mềm • Phần mềm – là linh hồn của hệ thống máy tính • Phần mềm tạo nên sự khác biệt về cácht ổ chức: – Về phong cách – Về năng suất lao động • Ngày càng nhiều tổ chức được phần mềm hổ trợ – Tính tự động hóa ngày càng cao – Chi phí cho phần mềm cao hơn nhiều so với phần cứng • Ứng dụng phần mềm có mặt trên mọi lĩnh vực: kinh tế, quân sự, giáo dục, văn hóa, giải trí, . BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  6. Các đặc trưng của phần mềm Software Characteristics 1. Software is developed or engineered, it is not manufactured(phần mềm được phát triển chứ không được sản xuất). 2. Software doesn't "wear out.“(phần mềm không hao mòn) 3. Although the industry is moving toward component-based assembly, most software continues to be custom built. BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  7. Đặc trưng 1 Phần mềm được phát triển chứ không được sản xuất Tuy phát triển phần mềm và sản xuất phần cứng có 1 số điểm giống nhau – Đòi hỏi phải có thiết kế tốt (good design) – Phụ thuộc vào con người Nhưng hai hoạt động này thực tế rất khác nhau. – Giai đoạn sản xuất phần cứng có thể gặp trở ngại về chất lượng, nhưng với phần mềm thì không rõ ràng. – Quy trình xây dựng "product" khác nhau BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  8. Đặc trưng 2 Phần mềm không mòn cũ nhưng thoái hóa theo thời gian Failure curve for hardware BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  9. Đặc trưng 2 • Phần mềm không nhạy cảm với môi trường sử dụng (bụi, nóng, chấn động, ) như phần cứng nên không mòn cũ như phần cứng • Nhưng phần mềm sẽ lỗi thời theo thời gian do: – Môi trường thay đổi, làm xuất hiện các khiếm khuyết (defect) mới – Lỗi phát sinh tăng do nâng cấp • Phần cứng mòn cũ có thể thay thế được, nhưng với phần mềm thì khôngc ó phần mềm dự trữ để thay thế. BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  10. Failure curve for software BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  11. Đặc trưng 3 Phần mềm không được lắp ráp từ mẫu có sẵn mặc dù kỹ thuật đang hướng tới lắp ráp các thành phần lại với nhau. • Sản phẩm thường được đặt hàng theo yêu cầu BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  12. Tiêu chí của 1 phần mềm tốt? BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  13. Thuộc tính phần mềm BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  14. Thuộc tính phần mềm • Khả năng bảo trì:Nó có khả năng thực hành những tiến triển để thỏa mãn yêu cầu của khách hàng. • Đáng tin cậy: Khả năng tin cậy của phần mềm bao gồm một loạt các đặc tính như là độ tin cậy, an toàn, và bảo mật. Phần mềm tin cậy không thể tạo ra các thiệt hại vật chất hay kinh tế trong trường hợp hư hỏng. • Tính hiệu quả: Phần mềm không thể phí phạm các nguồn tài nguyên như là bộ nhớ và các chu kì vi xử lý. • Tính tiện dụng:Phần mềm nên có một giao diện tương đối dễ cho người dùng và có đầy đủ các hồ sơ về phần mềm. BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  15. Các loại phần mềm 1. System Software (Phần mềm hệ thống) 2. Application Software (phần mềm ứng dụng) 3. Engineering and Scientific Software 4. Embedded Software 5. Product-line Software 6. Web application 7. Artificial Intelligence Software BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  16. Các loại phần mềm 1. System Software (Phần mềm hệ thống) – To service others programs 2. Application Software (phần mềm ứng dụng) – To solve a specific business need 3. Engineering and Scientific Software – Contains a huge computing and sophicated algorithm 4. Embedded Software – Reside within a product or systems, used to control 5. Product-line Software – To provide a specific capabilityfor use by many different customers 6. Web application 7. Artificial Intelligence Software BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  17. Các loại phần mềm 1. System Software (Phần mềm hệ thống) – To service others programs 2. Application Software (phần mềm ứng dụng) – To solve a specific business need 3. Engineering and Scientific Software – Contains a huge computing and sophicated algorithm 4. Embedded Software – Reside within a product or systems, used to control 5. Product-line Software 6. Web application 7. Artificial Intelligence Software BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  18. Legacy software ? BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  19. Lịch sử công nghệ phần mềm • Thập niên1940 : chương trình máy tính được viết bằng tay. • Thâp niên 1950: Các công cụ đầu tiên xuất hiện như phần mềm biên dịch Macro Assembler và phần mềm thông dịch đã được tạo ra. Các trình dịch được tối ưư hoá lần đầu tiên ra đời. • Thập niên1960 : Các công cụ của thế hệ thứ hai như trình dịch tối ưu hoá và kiểm tra mẫu đã được. Khái niệm công nghệ phần mềm đã được bàn thảo rộng rãi. • Thập niên1970 : Các công cụ phần mềm như UNIX các vùng chứa mã, lệnh make, v.v. được kết hợp với .nhau Số lượng doanh nghiệp nhỏ về phần mềm và số lượng máy tính cỡ nhỏ tăng nhanh BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  20. Lịch sử công nghệ phần mềm • Thập niên1980 : các PC và máy trạm ra đời. Cùng lúc có sự xuất hiện của mô hình dự toán khả năng. Lượng phần mềm tiêu thụ tăng mạnh. • Thập niên1990 : Phương pháp lập trình hướng đối tượng ra đời. Các quá trình nhanh như là lập trình cực hạn được chấp nhận rộng rãi. Trong thập niên này, WWW và các thiết bị máy tính cầm tay phổ biến rộng rãi. • Hiện nay: Các phần mềm biên dịch và quản lý như là .NET, PHP và Java làm cho việc viết phần mềm trở nên dễ dàng hơn nhiều. BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  21. Khủng hoảng phần mềm (Software crisis) • Khủng hoảng phần mềm xảy ra 1970từ . • Công nghệ máy tính (phần cứng) đã có những cải thiện cấp số mũ (exponential) về giá cả và mức độ thực thi. • Nhưng với phần mềm thì sao? – Theo báo cáo của IBM (2000) • 31% dự án phần mềm bị hủy bỏ trước khi hoàn thành • 53% dự án vượt quá chi phí dự kiến • 94% dự án phải bắt đầu lại BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  22. Khủng hoảng phần mềm (Software crisis) • Sự cố 2YK (time bomb) • Patriot missile (1991): – Lỗi phần mềm làm phá hủy tên lửa Patriot của Mỹ trong cuộc chiến vùng vịnh • Tên lửa Ariane5 đã bị phá hủy sau khi rời bệ phóng39 giây BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  23. Công nghệ phần mềm • Phần mềm ứng dụng được sử dụng rộng rãi và trở nên không thể thiếu được trong mọi lĩnh vực • Công nghệ phần mềm (software industry) ngày nay đã trở thànhdominant factor trong thế giới công nghiệp hóa BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  24. Công nghệ phần mềm là gì? (Software Engineering) • “A discipline whose aim is the production of quality software, software that is delivered on time, within budget, and that satisfies its requirements” • “ The establishment and use of sound engineering principles in order to obtain economically developed software that is reliable and works efficiently on real machine” • Mục đích của công nghệ phần mềm là cung cấp nền tảng (framework) để xây dựng phần mềm chất lượng cao BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009 6/11/2021 24
  25. Tại sao cần có công nghệ phần mềm • Năng lực máy tính ngày càng mạnh • Các hệ thống được liên kết lại ngày càng lớn • Thế giới thay đổi nhanh (kể cả nghiệp vụ, công nghệ) • Ham muốn của người dùng ngày càng tăng → Yêu cầu tiến hóa phần mềm là tất yếu BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  26. Một số quan niệm sai lầm • Sai lầm của người quản lý (Management myth) • Sai lầm của khách hàng (Customer myth) • Sai lầm của người lập trình (practitioner myth) • Assignment?? BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  27. Ví dụ: Phát triển phần mềm cho máy ATM BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  28. Các thành phần bên trong máy ATM BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  29. Tương tác giữa các thành phần để hoàn thành nhiệm vụ rút tiền BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009
  30. Kịch bản của use case “withdraw cash” BM HTTT – Khoa CNTT – ĐHCN tpHCM - 2009