Tổng quan về phần mềm và công nghệ phần mềm (phần 1)
Tổng quan về phần mềm và công nghệ phần mềm
1. Các khái niệm cơ bản
- Phần mềm(software)- theo nghĩa hẹp là 1 tập hợp các câu lệnh được viết bằng ngôn ngữ lập trình-> giải quyết bài toán
- Công nghệ (engineering) là cách sử dụng các công cụ, kỹ thuật để giải quyết vấn đề
- Công nghệ phần mềm (SE – sofware engineering): áp dụng các công cụ, các kỹ thuật một cách có hệ thống để phát triển các ứng dụng dựa trên máy tính.
- Phát triển phần mềm (SW Development) – quá trình từ khi quyết định sản xuất phần mềm đến khi chuyển giao cho khách hàng
- Bảo trì (Maintetance)- quá trình khắc phục lỗi, thay đổi logic -> phần mềm tốt hơn
- Loại bỏ (Retirement) – thay thế ứng dụng bằng ứng dụng mới
2. Tiến hóa của phần mềm
- Những năm đầu (từ 1950 đến 1960):
+ mỗi máy sử dụng cho một ứng dụng riêng
+ phương thức xử lý theo lô (batch). Việc phát triển phần mềm chưa được quản lý, môi trường lập trình có tính cá nhân
- Thời kỳ năm 1960 đến giữa những năm 1970:
+ các hệ thống đa nhiệm, đa người dùng xuất hiện-> tương tác người máy
+ tiến bộ lưu trữ trực tuyến làm xuất hiện thế hệ đầu tiên của hệ quản trị cơ sở dữ liệu
+ yêu cầu lớn về công việc bảo trì phần mềm
- Thời kỳ giữa những năm 1970 đến đầu năm 1990:
+ hệ thống phân tán xuất hiện làm tăng quy mô và độ phức tạp của phần mềm ứng dụng
+ mạng máy tính phát triển mạnh-> nhu cầu truy cập dữ liệu trực tuyến
+ công nghệ chế tạo máy tính phát triển-> chi phí cho phần mềm tăng
- Thời kỳ sau 1990:
+ kỹ nghệ hướng đối tượng đang nhanh chóng thay thế cách tiếp cận phát triển phần mềm truyền thống
+ sự phát triển của internet-> phát triển nhanh về phần cứng và phần mềm
+ phần mềm trí tuệ nhân tạo ứng dụng các thuật toán phi số như hệ chuyên gia, mạng noron nhân tạo được ứng dụng
3. Khủng hoảng phần mềm
- Từ sự tiến hóa của phần mềm => thách thức:
- Sự tăng quy mô của phần mềm
- Sự tăng chi phí làm phần mềm
- Sự kéo dài thời gian phát triển một phần mềm
- Sự phụ thuộc nhiều vào kinh nghiệm của người làm phần mềm
- Chất lượng của phần mềm không ổn định
- Sự thiếu kinh nghiệm làm phần mềm
- Gánh nặng bảo trì hệ thống cũ để tiếp tục hoạt động
- Thách thức phát triển phần mềm gia tăng, nguyên nhân:
- Khả năng phần mềm không thể sử dụng hết được tiền năng của phần cứng
- Khả năng xây dựng phần mềm không bắt nhịp được với nhu cầu sử dụng phần mềm tăng lên, đặc biệt là khi internet phát triển
- Quy mô và độ phức tạp của phần mềm ngày càng tăng
- Khả năng bảo trì hệ thống phần mềm cũ tồn tại khó khăn và chi phí lớn