Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Tổng quan
Phần mềm là gì?
! Phần mềm khác với chương trình như
thế nào?
! Phần mềm bao gồm các chương trình
máy tính và tài liệu liên quan.
! Phần mềm luôn gắn với một hệ thống cụ
thể.
! Các sản phẩm phần mềm có thể được
phát triển cho một khách hàng cụ thể
hoặc được phát triển cho thị trường
chung.
ẫn sử dụng. 10. Gặp gỡ đồng nghiệp, khách hàng và cấp trên. 11. v.v. Đây chỉ là một phần danh sách các hoạt động của CNPM! 13 [Phillip A. Laplante,2007] Nguyễn Thị Minh Tuyền Nhập môn CNPM Một số câu hỏi thường gặp 1. Công nghệ phần mềm là gì? 2. Những hoạt động cơ bản (activities) của CNPM? 3. Sự khác nhau giữa CNPM và khoa học máy tính (computer science)? 4. Sự khác nhau giữa CNPM và công nghệ hệ thống (system engineering)? 5. Những thử thách chính mà công nghệ phần mềm phải đối mặt? 6. Chi phí của CNPM? 7. Kỹ thuật và phương pháp CNPM tốt nhất? 8. Quy trình phần mềm (software process) là gì? 14 Nguyễn Thị Minh Tuyền Nhập môn CNPM Lịch sử về Công nghệ phần mềm v Công nghệ phần mềm (CNPM)/Kỹ nghệ phần mềm (Software Engineering). v Thuật ngữ “Công nghệ phần mềm” được đưa ra tại hội nghị do NATO tổ chức vào năm 1968 để thảo luận về vấn đề “khủng hoảng phần mềm” (software crisis). v Khủng hoảng phần mềm § Khái niệm được đưa ra để chỉ những khó khăn gặp phải trong quá trình phát triển những dự án lớn, phức tạp vào những năm 1960. v Việc áp dụng một phương pháp công nghệ vào việc phát triển phần mềm sẽ § Giảm chi phí phát triển phần mềm § Tạo ra được phần mềm có độ tin cậy cao hơn. 15 Nguyễn Thị Minh Tuyền Nhập môn CNPM Công nghệ phần mềm là gì? v Công nghệ phần mềm là một lĩnh vực công nghệ liên quan đến tất cả các khía cạnh của việc sản xuất phần mềm từ giai đoạn đặc tả hệ thống đến giai đoạn bảo trì hệ thống sau khi nó đã được đưa vào sử dụng § Sử dụng các lý thuyết và phương pháp hợp lý để giải quyết các vấn đề sao cho vẫn đảm bảo được các ràng buộc về mặt tài chính và tổ chức. § Không chỉ là quy trình về mặt kỹ thuật mà gồm cả việc quản trị dự án và các phương pháp, công cụ phát triển để hỗ trợ cho việc sản xuất phần mềm. 16 Nguyễn Thị Minh Tuyền Nhập môn CNPM Chi phí phần mềm v Chi phí phần mềm thường chiếm phần lớn chi phí cho hệ thống máy tính. Chi phí cho phần mềm trên một PC thường lớn hơn chi phí phần cứng. v Chi phí bảo trì phần mềm thường lớn hơn chi phí phát triển phần mềm. v Công nghệ phần mềm liên quan đến việc phát triển phần mềm hiệu quả về mặt chi phí. 17 Nguyễn Thị Minh Tuyền Nhập môn CNPM [Roger Pressman, 2009] Công nghệ phân tầng (Layered Technology) Software Engineering a “quality” focus process model methods tools 18 Nguyễn Thị Minh Tuyền Nhập môn CNPM CNPM và khoa học máy tính v Khoa học máy tính (computer science) tập trung vào lý thuyết và nền tảng. v CNPM liên quan đến những thực tiễn của việc phát triển và phân phối sản phẩm phần mềm. Computer Science Software Engineering 19 Nguyễn Thị Minh Tuyền Nhập môn CNPM CNPM và công nghệ hệ thống v Công nghệ hệ thống (system engineering) gồm tất cả các khía cạnh của việc phát triển các hệ thống máy tính bao gồm cả phần cứng, phần mềm và quy trình. v CNPM là một phần của quy trình chung đó.. System engineering Software engineering 20 Nguyễn Thị Minh Tuyền Nhập môn CNPM Chi phí cho CNPM? v Khoảng 60% chi phí phần mềm là chi phí phát triển phần mềm, 40% là chi phí dành cho kiểm thử phần mềm. v Đối với phần mềm đặt hàng, chi phí để cải tiến phần mềm lớn hơn chi phí sản xuất phần mềm. 21 Nguyễn Thị Minh Tuyền Nhập môn CNPM Kỹ thuật và phương pháp CNPM tốt nhất? v Tất cả các dự án phần mềm đều phải được quản lý và phát triển một cách chuyên nghiệp. v Các kỹ thuật và phương pháp khác nhau phù hợp với các loại hệ thống khác nhau. Không có phương pháp nào tốt nhất! 22 Nguyễn Thị Minh Tuyền Nhập môn CNPM The Ariane launcher accident 23 Nguyễn Thị Minh Tuyền Nhập môn CNPM Tầm quan trọng của CNPM v Ngày càng nhiều các nhân và tổ chức sử dụng các hệ thống phần mềm phức tạp. Thêm vào đó, nhu cầu về phần mềm thay đổi nhanh chóng § Cần tạo ra những hệ thống đáng tin cậy nhanh và hiệu quả về chi phí. v Thông thường, sản xuất phần mềm sử dụng các kỹ thuật và phương pháp CNPM sẽ rẻ hơn là viết một phần mềm theo kiểu một dự án phần mềm cá nhân. v Đối với đa số các loại hệ thống, phần lớn chi phí là dành cho việc thay đổi phần mềm sau khi nó được đưa vào sử dụng. 24 Nguyễn Thị Minh Tuyền Nhập môn CNPM Nội dung Phần mềm Công nghệ phần mềm Quy trình phần mềm Công nghệ phần mềm và Web 25 Nguyễn Thị Minh Tuyền Nhập môn CNPM Quy trình phần mềm là gì? v Một chuỗi các hoạt động để tạo ra một sản phẩm phần mềm. v Có 4 hoạt động cơ bản chung nhất cho tất cả các quy trình phần mềm. 26 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các hoạt động quy trình phần mềm v Đặc tả (Software specification) § Định nghĩa phần mềm sẽ sản xuất và các ràng buộc về mặt chức năng của phần mềm. v Phát triển (Software development) § Phần mềm được thiết kế và lập trình. v Thẩm định (Software validation) § Phần mềm được kiểm tra để đảm bảo là nó đáp ứng được yêu cầu người dùng. v Cải tiến (Software evolution) § Phần mềm được thay đổi để đáp ứng được sự thay đổi yêu cầu của người dùng và yêu cầu của thị trường. 27 Nguyễn Thị Minh Tuyền Nhập môn CNPM Những thử thách chính v Tính không đồng nhất § Càng ngày, các hệ thống càng được yêu cầu như một hệ phân tán qua mạng bao gồm nhiều loại thiết bị di động và máy tính. v Sự thay đổi của xã hội và thương mại § Xã hội và thương mại không ngừng thay đổi vì kinh tế phát triển và công nghệ mới ra đời. Chính vì vậy, việc thay đổi những phần mềm có sẵn và phát triển những phần mềm mới một cách nhanh chóng là cần thiết. v Bảo mật và tin cậy § Vì phần mềm liên quan đến tất cả các mặt của đời sống. 28 Nguyễn Thị Minh Tuyền Nhập môn CNPM Tính đa dạng của CNPM v Có nhiều loại hệ thống phần mềm. v Không có những kỹ thuật nào phù hợp với tất cả các loại hệ thống phần mềm trên. v Việc sử dụng các công cụ và phương pháp CNPM phụ thuộc vào loại ứng dụng được phát triển, yêu cầu của khách hàng và kỹ năng của đội ngũ phát triển phần mềm. 29 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các loại ứng dụng v Ứng dụng độc lập § Những hệ thống ứng dụng chạy trên máy tính cục bộ như PC. Những hệ thống này gồm tất cả những tính năng cần thiết và không cần kết nối mạng. v Ứng dụng dựa vào giao dịch tương tác § Những ứng dụng chạy trên một máy tính từ xa và được truy cập bởi người dùng từ máy tính của họ. Ví dụ: ứng dụng e-commerce. v Ứng dụng điều khiển nhúng § Những hệ thống sử dụng phần mềm để điều khiển và quản lý các thiết bị phần cứng. 30 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các loại ứng dụng v Hệ thống xử lý khối § Hệ thống được thiết kế để xử lý dữ liệu trong những khối lớn (batch). Những hệ thống này xử lý một số lượng lớn dữ liệu đầu vào đơn lẻ và tạo ra đầu ra tương ứng. v Hệ thống giải trí § Những hệ thống phục vụ cho việc giải trí của người dùng. v Hệ thống mô phỏng và mô hình hóa § Những hệ thống được phát triển bởi các kỹ sư và các nhà khoa học để mô phỏng các quy trình vật lý, gồm nhiều đối tượng rời rạc hay tương tác với nhau. 31 Nguyễn Thị Minh Tuyền Nhập môn CNPM Các loại ứng dụng v Hệ thống thu thập dữ liệu § Hệ thống thu thập dữ liệu từ môi trường sử dụng các cảm biến và gởi dữ liệu đó tới các hệ thống khác để xử lý. v Hệ thống của hệ thống § Những hệ thống chứa một số hệ thống phần mềm khác. 32 Nguyễn Thị Minh Tuyền Nhập môn CNPM Những nguyên tắc cơ bản v Một số nguyên tắc cơ bản có thể áp dụng cho tất cả các loại phần mềm, không phân biệt các kỹ thuật phát triển được sử dụng: § Hệ thống nên được phát triển sử dụng quy trình phát triển dễ hiểu và có thể quản lý được. § Hiệu năng (performance) và độ tin cậy là quan trọng đối với tất cả các loại hệ thống. § Việc hiểu và quản lý được các yêu cầu và đặc tả phần mềm là quan trọng. § Nếu có thể, nên sử dụng lại phần mềm hơn là viết mới hoàn toàn. 33 Nguyễn Thị Minh Tuyền Nhập môn CNPM Nội dung Phần mềm Công nghệ phần mềm Quy trình phần mềm Công nghệ phần mềm và Web 34 Nguyễn Thị Minh Tuyền Nhập môn CNPM CNPM và web v Web là nền tảng để chạy ứng dụng. v Ngày càng nhiều tổ chức sử dụng hệ thống dựa vào web hơn là những hệ thống cục bộ. v Các dịch vụ Web (Web service) cho phép các tính năng của ứng dụng được truy cập thông qua web. v Cloud computing là một phương pháp cung cấp các dịch vụ máy tính để chạy các ứng dụng từ xa trên ‘cloud’. 35 Nguyễn Thị Minh Tuyền Nhập môn CNPM CNPM cho Web v Tái sử dụng phần mềm là phương pháp chính để xây dựng những hệ thống dựa vào web. § Xây dựng những hệ thống này bằng cách tập hợp các component và các hệ thống phần mềm có sẵn. v Những hệ thống dựa vào Web nên được phát triển và phân phối dần dần. § Sẽ không thực tế nếu đặc tả tất cả các yêu cầu phần mềm trước. v Giao diện người dùng bị ràng buộc bởi khả năng của web browser. 36 Nguyễn Thị Minh Tuyền Nhập môn CNPM CNPM cho Web v Những hệ thống dựa vào web là những hệ thống phân tán phức tạp. v Những nguyên tắc cơ bản của CNPM đều có thể áp dụng được cho các hệ thống dựa vào Web. 37 Nguyễn Thị Minh Tuyền Nhập môn CNPM Tổng kết v Công nghệ phần mềm là lĩnh vực công nghệ liên quan đến tất cả các khía cạnh của việc sản xuất phần mềm. v Tiêu chí của một sản phẩm phần mềm là tính bảo trì được, tính tin cậy được, tính hiệu quả và tính chấp nhận được. v Những hoạt động cơ bản của quy trình phần mềm là đặc tả, phát triển, thẩm định và cải tiến phần mềm. v Những khái niệm cơ bản của CNPM hoàn toàn có thể áp dụng cho tất cả các loại phát triển hệ thống. v Có nhiều loại hệ thống khác nhau và mỗi loại cần những công cụ và kỹ thuật CNPM phù hợp để phát triển. 38 Nguyễn Thị Minh Tuyền Nhập môn CNPM Source: 39 Nguyễn Thị Minh Tuyền Nhập môn CNPM Câu hỏi?
File đính kèm:
- Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Tổng quan.pdf