Phần mềm là các chương trình máy tính và những tài liệu liên quan đến nó như: các yêu cầu, mô hình thiết kế, tài liệu hướng dẫn sử dụng… Do đó, chúng ta thấy rằng đặc điểm của phần mềm là trừu tượng và vô hình.
Chương 1: Tổng quan CNPM Nội dung Một số khái niệm Công nghệ phần mềm Quy trình cơng nghệ phần mềm: Quy trình thác nước Quy trình thác nước cải tiến Quy trình Prototype Quy trình xoắn ốc Khái niệm phần mềm Ví dụ: xét số phần mềm sau: Phần mềm quản lý học sinh cấp Phần mềm quản lý thư viện Phần mềm quản lý nhà sách Phần mềm quản lý khách sạn Phần mềm quản lý phòng mạch tư Phần mềm quản lý sổ tiết kiệm Phần mềm quản lý bán vé chuyến bay Phần mềm xếp thời khóa biểu … Khái niệm phần mềm Phần mềm gì? Được xem xét hai góc độ: Góc nhìn người dùng Góc nhìn chun viên tin học Khái niệm phần mềm Phần mềm góc nhìn người sử dụng: Chương trình thực thi máy tính thiết bị chuyên dụng khác Nhằm hỗ trợ cho nhà chuyên môn lĩnh vực chuyên ngành thực tốt thao tác nghiệp vụ Khái niệm phần mềm Môi trường triển khai phần mềm: Máy tính: Desktop, Laptop, Tablet PC… Thiết bị chuyên dụng: Thiết bị di động: PDA, Pocket PC, ĐTDĐ Các thiết bị chuyên dụng khác: set-top box, router, Hỗ trợ làm tốt thao tác nghiệp vụ: Tin học hóa nghiệp vụ làm thủ công Cải tiến chức nghiệp vụ thực máy tính Đề ra, xây dựng triển khai chức nghiệp vụ Khái niệm phần mềm Phần mềm góc nhìn chun viên Tin học: Đây hệ thống bao gồm thành phần bản: Thành phần giao tiếp Thành phần xử lý Thành phần lưu trữ Cần xây dựng để thực theo yêu cầu người sử dụng Khái niệm phần mềm Thành phần giao tiếp (Giao diện): Cho phép tiếp nhận yêu cầu việc sử dụng phần mềm từ người sử dụng, từ thiết bị thu thập liệu, từ phần mềm khác Cho phép trình bày kết việc thực yêu cầu cho người dùng (kết công việc thực máy tính) điều khiển hoạt động thiết bị điều khiển (đóng/mở cửa, dừng hay cho chuyển động…) Khái niệm phần mềm Thành phần giao tiếp (Giao diện): Một cách tổng quát, thành phần giao tiếp cho phép nhập/xuất thông tin với hình thức trình bày/giao tiếp tương ứng Mục tiêu thành phần đưa thơng tin từ giới thực bên phần mềm (người sử dụng, thiết bị, phần mềm khác…) vào bên trong, ngược lại Khái niệm phần mềm Thành phần xử lý: Kiểm tra tính hợp lệ thông tin nguồn cung cấp từ người dùng theo quy định ràng buộc giới thực Ví dụ: cho mượn tối đa sách, lớp học không 50 học sinh… Tiến hành xử lý cho kết mong đợi theo quy định tính tốn có sẵn giới thực Hoặc tiến hành xử lý theo thuật giải tự đề xuất 10 Yếu tố khái niệm phần mềm tốt Hiệu suất xử lý Tính dễ hiểu Đặc trưng gần Các tiêu Thời gian (Phần cứng phát triển) 24 Phát triển Công nghệ phần mềm Giai đoạn (1950 – 1960) Xử lý theo lơ, xử lý tập trung, xử lý phân tán, sửa đổi phần mềm Giai đoạn (từ 1960 đến 1970) Hệ thống đa chương trình đa nguời dùng Bắt đầu “khủng hoảng” phần mềm Giai đoạn (từ 1970 đến 1980) Sự phát triển sử dụng rộng rãi máy tính cá nhân Sự phát triển công ty phần mềm Giai đoạn (từ 1980 đến nay) Phần cứng ngày phát triển Hệ thống phần mềm ngày đa dạng, phong phú, xử lý ngày phức tạp, công nghệ ngày phát triển… 25 Cuộc khủng hoảng phần mềm Số lượng phần mềm tăng vọt (do phát triển phần cứng: tăng khả năng, giá thành hạ) Có nhiều khuyết điểm phần mềm dùng xã hội: Thực khơng u cầu (tính tốn sai, khơng ổn định…) Thời gian bảo trì nâng cấp q lâu, chi phí cao, hiệu thấp Khó sử dụng, Thực chậm Không chuyển đổi liệu phần mềm … 26 Cuộc khủng hoảng phần mềm Một số kết luận: Việc tăng vọt số lượng phần mềm điều hợp lý tiếp diễn Các khuyết điểm phần mềm có nguồn gốc từ phương pháp, cách thức quy trình tiến hành xây dựng phần mềm: Cảm tính: người theo phương pháp riêng Thô sơ, đơn giản: tập trung vào việc lập trình mà quan tâm đến cơng việc cần làm khác (khảo sát trạng, phân tích yêu cầu, thiết kế…) Thủ cơng: cịn thiếu cơng cụ hỗ trợ quy trình phát triển 27 Cơng nghệ phần mềm Khái niệm: Công nghệ phần mềm ngành khoa học nghiên cứu việc xây dựng phần mềm có chất lượng cao thời gian chi phí thực hợp lý Cơng nghệ phần mềm Phương pháp Cơng cụ Quy trình 28 Cơng nghệ phần mềm Các đối tượng nghiên cứu Công nghệ phần mềm: Quy trình cơng nghệ phần mềm: Hệ thống giai đoạn mà trình phát triển phần mềm phải trải qua, với giai đoạn cần xác định rõ: Mục tiêu, kết nhận từ giai đoạn trước đó, Kết chuyển giao cho giai đoạn Phương pháp phát triển phần mềm: Hệ thống hướng dẫn cho phép bước thực giai đoạn quy trình phần mềm 29 Cơng nghệ phần mềm Các đối tượng nghiên cứu Công nghệ phần mềm: Công cụ Môi trường phát triển phần mềm: Hệ thống phần mềm trợ giúp lĩnh vực xây dựng phần mềm Hỗ trợ chuyên viên tin học bước xây dựng phần mềm theo phương pháp với quy trình chọn trước 30 Qui trình Cơng nghệ phần mềm Yêu cầu phần mềm Phân tích Phân tích Thiết kế Lập trình Thiết kế Thiết kế Lập trình Lập trình Lập trình Kiểm tra Phần mềm 31 Qui trình Cơng nghệ phần mềm Phân tích: Mô tả mức phát thảo thành phần phần mềm (đã có u cầu) Thiết kế: Mơ tả mức chi tiết thành phần phần mềm (đã có u cầu) Lập trình: Thực thành phần phần mềm (đã thiết kế) Kiểm tra: kiểm chứng thành phần phần mềm (đã thực hiện) 32 Quy trình thác nước Các hoạt động giới thực Khảo sát Hiện trạng Xác định Yêu cầu Các u cầu Phân tích Mơ hình Thế giới thực Mơ hình phần mềm Thiết kế Cài đặt Phần mềm Kiểm chứng Phần mềm “chất lượng” Triển khai Waterfall 33 Quy trình thác nước cải tiến Khảo sát Hiện trạng Xác định Yêu cầu Phân tích Thiết kế Cài đặt Kiểm chứng Triển khai 34 Quy trình Prototype Xác định yêu cầu “Thiết kế nhanh” Xây dựng Prototype Đánh giá xác định rõ yêu cầu Phát triển phần mềm 35 Quy trình xoắn ốc Lập kế hoạch Tiếp xúc Khách hàng Đánh giá khách hàng Phân tích rủi ro Phân tích, thiết kế Xây dựng triển khai 36 Bài tập Xét phần mềm giải tập đa thức Giả sử xét chức tính đạo hàm đơn thức P(x) = a.xn (với a số thực, n số nguyên không âm), theo qui tắc tính đạo hàm Q(x) = P’(x) = n.a.xn-1 Viết chương trình giải phương trình bậc Xét phần mềm quang hình học, giả sử xem xét chức xác định ảnh vật qua thấu kính Cho biết cơng thức xác định ảnh: 1/d + 1/d’ = 1/f Chức xác định hình chiếu điểm M đường thẳng d 37 38 ... phần mềm theo hợp đồng Lớp phần mềm khung Lớp phần mềm đóng gói 15 Khái niệm lớp phần mềm Lớp phần mềm: Lớp phần mềm hệ thống phần mềm lĩnh vực hoạt động Do lĩnh vực hoạt động nên phần. .. triển phần mềm: Hệ thống hướng dẫn cho phép bước thực giai đoạn quy trình phần mềm 29 Công nghệ phần mềm Các đối tượng nghiên cứu Công nghệ phần mềm: Công cụ Môi trường phát triển phần mềm: ... 27 Cơng nghệ phần mềm Khái niệm: Công nghệ phần mềm ngành khoa học nghiên cứu việc xây dựng phần mềm có chất lượng cao thời gian chi phí thực hợp lý Công nghệ phần mềm Phương pháp Công cụ