Phân loại phần mềm Hai cách phân loại chính: Theo chức năng thực hiện Theo lĩnh vực ứng dụng Phân loại theo chức năng Phần mềm hệ thống: Hệ điều hành, tiện ích tổ chức tệp… Ph
Trang 1GIỚI THIỆU VỀ CÔNG NGHỆ PHẦN MỀM
BÀI 1
Trang 2Nội dung
Phần mềm
Công nghệ phần mềm
Tiến trình phần mềm
Trang 4Phần mềm là gì?
Khái niệm và định nghĩa
Lệnh (chỉ thị) instructions: Máy tính thực hiện một thao tác.
Chương trình (program): Một chuỗi các lệnh nhằm thực hiện một tác vụ
cụ thể.
Dữ liệu: Thông tin “thô”-> cần xử lý -> Thông tin hữu ích.
Phần mềm: Một hay nhiều chương trình để xử lý dữ liệu.
Trang 5 Cấu trúc làm việc (Bộ nhớ trong)
Cấu trúc lưu trữ (Bộ nhớ ngoài)
Tài liệu
Hướng dẫn sử dụng <- người dùng
Tham khảo kỹ thuật <- người bảo trì
Phát triển <- người kỹ thuật
Trang 6Vai trò PM
PM: Linh hồn của các hệ thống máy tính
Nền tảng trong mọi hoạt động của xã hội ngày nay
Sự phụ thuộc của các nền kinh tế
Thu chi từ PM chiếm đáng kể trong GNP; ví dụ: Năm 2006, Ấn độ xuất khẩu hơn 30 tỷ USD; thế giới có > 7 triệu kỹ sư CNTT và tạo ra 600 tỷ USD/năm; Thế giới chi phí cho phần mềm trong năm 2000 khoảng 770 tỷ USD
Phần mềm sai hỏng -> kinh tế sẽ bị tổn thất: Yahoo mất vài chục tỷ đô la trong những năm qua
Tạo nên sự khác biệt giữa các tổ chức: Phong cách làm việc và năng suất lao động
Càng nhiều hệ thống cần phần mềm trợ giúp
Ứng dụng PM có mặt ở mọi nơi, mọi lĩnh vực kinh tế, khoa học, quân
sự, …
Trang 7Đặc trưng của PM
Không mòn cũ, nhưng thoái hóa theo thời gian: Môi trường, nhu cầu thay đổi -> ko sử dụng
Không lắp ráp từ mẫu sẵn có:
Ko có danh mục cho trước
Sản phẩn đặt hàng theo yêu cầu riêng
Trang 8Đặc trưng của PM (tiếp)
Thay đổi là bản chất
Theo thế giới thực để đáp ứng nghiệp vụ, nhu cầu con người.
Thay đổi theo môi trường: phần cứng
Cần phát triển theo nhóm
Quy mô lớn
Thời gian
Trang 9Phân loại phần mềm
Hai cách phân loại chính:
Theo chức năng thực hiện
Theo lĩnh vực ứng dụng
Phân loại theo chức năng
Phần mềm hệ thống: Hệ điều hành, tiện ích tổ chức tệp…
Phần mềm nghiệp vụ: Trợ giúp các hoạt động nghiệp vụ
Sản phẩm theo đơn đặt hàng: Hệ thống TT quản lý (thư viện, kế toán…)
Sản phẩm dùng chung: Office
Phần mềm công cụ: Trợ giúp các quá trình phát triển phần mềm (ngôn ngữ lập trình, quản lý dự án …)
Trang 10Phân loại phần mềm
Phân loại theo lĩnh vực ứng dụng:
Phần mềm hệ thống: Phục vụ cho các PM khác, tương tác với phần
cứng, phục vụ nhiều người dùng
Phần mềm thời gian thực: Thu thập, xử lý các dữ liệu thời gian thực (dùng điều khiển các hệ thống tự động)
Phần mềm nghiệp vụ: Xử lý các thông tin nghiệp vụ nghiệp vụ
Phần mềm khoa học kỹ thuật: Mô phỏng vật lý…
Phần mềm nhúng: phụ thuộc vào các thiết bị và thực hiện chức năng bị hạn chế.
Trang 11Sự tiến hóa của PM
Phần mềm tiến hóa theo phần cứng bao gồm cả quy mô, sự phức tạp, tốc độ
Sự tiến hóa của PM có thể chia làm 4 giai đoạn:
GĐ 1: 1950-> 1960
Chương trình nhỏ, tính toán chuyên dụng
Xử lý số và xử lý theo lô (batch)
Ngôn ngữ: Mã máy, hợp ngữ
Tiêu chí đánh giá: Nhanh, kích cỡ của bài toán
GĐ 2: -> giữa 1970s
Sản phẩm đa nhiệm, đa người dùng
Xử lý số, ký tự, theo lô và thời gian thực
Trang 12Sự tiến hóa của PM
Ngôn ngữ có cấu trúc
Tiêu chí đánh giá: Nhanh, kích cỡ bài toán, số lượng người dùng
GĐ 3: -> 1990
Phần mềm cá nhân, mạng, hệ thống lớn và chia sẻ được
Xử lý số, ký tự, multimedia; theo lô, thời gian thực, phân tán và song song
Ngôn ngữ: bậc cao, hướng đối tượng
Tiêu chí đánh giá: Tiện dụng, tin cậy và dễ bảo trì
GĐ 4: 1900-> nay
Phần mềm lớn, hướng người dùng
Ngôn ngữ: hướng đối tượng và trực quan (Visual)
Tiêu chí đánh giá: Tiện dụng, tin cậy và dễ bảo trì
Trang 14 Năng lực máy tính tăng nhanh
Thế giới thay đổi nhanh về nghiệp vụ và CN
Ham muốn của người dùng
Trang 17Các định nghĩa về CNPM
Công nghệ phần mềm (Software Engineering: SE)
Bauer (1969): SE là thiết lập và sử dụng các nguyên lý công nghệ đúng đắn
để được PM 1 cách kinh tế, vừa tin cậy vừa làm việc hiệu quả trên các máy thực
Sommerville (1995): SE là nguyên lý công nghệ liên quan đến tất cả các mặt lý thuyết, phương pháp và công cụ của PM
Pressman (1995): SE là bộ môn tích hợp cả qui trình, các phương pháp, các công cụ để phát triển PM máy tính
3 mặt cơ bản của SE
Quy trình (thủ tục)
Phương pháp
Công cụ
Trang 18 Chia chương trình thành các modul
Trừu tượng hóa dữ liệu
Tăng trưởng (nửa đầu 1980s)
Phương pháp phát triển hệ thống: CSDL, phân tích thiết kế hướng cấu trúc
Các bộ công cụ phát triển: Trợ giúp phân tích thiết kế, các ngôn ngữ bậc cao
Bắt đầu quan tâm đến quản lý: Độ đo phần mềm
Trang 19Lịch sử của SE (tiếp)
Phát triển (Từ giữa 1980s)
Hoàn thiện công nghệ cấu trúc
Phát triển công nghệ đối tượng: Kho dữ liệu, đa phương tiện, định hướng
sử dụng lại (thành phần, mẫu, framework)
Phát triển các mô hình quản lý: Chuẩn quản lý được công nhận IS9000-03)
Trang 20Các yếu tố cơ bản
Quá trình:
Xác định trình tự các công việc cần thực hiện
Xác định các tài liệu, sản phẩm cần bàn giao và cách thức thực hiện
Định ra các mốc thời gian (milestones) và sản phẩm đưa ra
Phương pháp: Cách làm cụ thể để xây dựng PM; thường mỗi công đoạn có một phương pháp riêng
Phân tích: xác định, đặc tả yêu cầu
Thiết kế: đặc tả kiến trúc, giao diện, dữ liệu, thủ tục
Trang 21Vòng đời phát triển PM
Trang 22Các bước phát triển PM (1)
Trang 23Các bước phát triển PM (2)
Xác định yêu cầu: Hệ thống làm gì, những ràng buộc nó cần tuân thủ
Phân tích hệ thống: Vai trò PM trong hệ thống, phác họa và chọn phương
án khả thi
Lập kê hoạch: Ước lượng, lập lịch, tổ chức
Phân tích yêu cầu: Các yêu cầu cụ thể (chức năng, ràng buộc);
Đặc tả yêu cầu: kiến trúc, giao diện, xử lý, dữ liệu
Phát triển: Tạo ra phần mềm như thế nào
Thiết kế: Chuyển các yêu cầu thành các bản thiết kế hệ thống như nó tồn tại
Mã hóa: Chuyển thiết kế thành chương trình
Trang 24Các bước phát triển PM (3)
Kiểm thử: Sửa lỗi, hoàn thiện
Tài liệu: Hướng dẫn sử dụng, tham khảo kỹ thuật và phát triển hệ thống.
Vận hành và bảo trì: Hoàn thiện hệ thống sau khi đưa vào sử dụng
Sửa lỗi: Đảm bảo vận hành trong suốt
Thích nghi: với môi trường (kỹ thuật, nghiệp vụ)
Nâng cao: Hòan thiện chức năng, phát triển dự phòng
Thêm mới: Thêm các chức năng mới
Trang 25III Tiến trình phần mềm
Các nội dung chính
Tiến trình và mô hình tiến trình
Các giai đoạn của tiến trình
Trang 26Tiến trình PM
Tiến trình PM (Software Process):
Là một tập các hoạt động có cấu trúc nhằm phát triển và tiến hóa 1 PM
Một tiến trình cụ thể phải trả lời được các câu hỏi: Làm gì, khi nào, ai làm, như thế nào, bằng gì, ở đâu, kết quả và tiêu chí đánh giá
Các hoạt động chính của 1 tiến trình
Xác định yêu cầu: định rõ yêu cầu sản phẩm
Phát triển: Tạo ra sản phẩm
Thẩm định: PM đáp ứng được yêu cầu ko?
Tiến hóa: thay đổi nhằm đáp ứng yêu cầu mới (môi trường, người dùng)
Trang 27Mô hình tiến trình
Mô hình tiến trình là cách biểu diễn trừu tượng tiến trình phần mềm theo một cách nhìn cụ thể nào đó
Trang 28Các loại mô hình tiến trình
Các mô hình tiêu biểu tiêu biểu
Mô hình thác nước
Mô hình phát triển tiến hóa
Mô hình làm bản mẫu
Mô hình xoắn ốc
Mô hình phát triển ứng dụng nhanh
Mô hình tăng trưởng
Trang 29Mô hình thác nước
Tách biệt giữa các pha, tiến hành tuần tự
Chậm có phiên bản thực hiện được
-> Khó khăn đối với các dự án lớn
Trang 30Mô hình phát triển tiến hóa
Trang 31Mô hình làm bản mẫu
Trang 32Mô hình xoắn ốc
Trang 33Mô hình phát triển nhanh
Trang 34Mô hình tăng trưởng
Chuyển giao từng phần của hệ thống
Cho sản phẩm dùng trong thời gian ngắn
Công ty phải có tiềm lực cao
Trang 35Các giai đoạn của tiến trình
Trang 36Đặc tả yêu cầu
Nghiên cứu khả thi
Phân tích và xác định yêu cầu
Đặc tả yêu cầu
Thẩm định yêu cầu
Trang 37Thiết kế phần mềm
Trang 38Lập trình và gỡ rối
Chuyển thiết kế thành chương trình
Trang 39Kiểm thử
Trang 40Tiến hóa
Trang 41Hỏi đáp