Khái niệm
Khái niệm phần mềm lâu nay thường được đồng nhất với khái niệm chương trình của máy tính, ở mức độ nào đó khái niệm này vẫn đúng trong quy mô học đường. Theo Roger Pressman thì phần mềm là tổng thể của ba yếu tố: các chương trình máy tính, các cấu trúc dữ liệu có liên quan, tài liệu hướng dẫn sử dụng. Định nghĩa này cho thấy sự khác nhau trong việc lập trình ở quy mô học đường so với lập trình ở quy mô công nghiệp, nó xác định thành phần của phần mềm trong công nghệ phần mềm tổng quát và đầy đủ hơn nhiều so với khái niệm thông thường.
Các đặc tính của phần mềm
Một phần mềm là một tập hợp các chương trình thực hiện tự động hoá một số các nhiệm vụ. Cho dù phần mềm được phát triển để làm nhiệm vụ nào đi nữa thì các phần mềm đều có điểm chung đó là: các dữ liệu vào, các tiến trình, các ràng buộc và các giao diện.
- Dữ liệu
• Đầu vào: Dữ liệu vào là dữ liệu ở bên ngoài máy tính và được đưa
vào bảng một thiết bị đầu vào, thường là bàn phím, máy quét hay mạng máy tính.
• Đầu ra: Dữ liệu ngược lại so với dữ liệu vào, tức là các dữ liệu đưa
ra ngoài máy tính, thường được đưa ra bằng các thiết bị đầu ra như màn hình, máy in, máy chiếu, máy scan…
• Sự lưu trữ và tìm kiếm dữ liệu: Dữ liệu được mô tả ở dạng vật lý,
trong một máy có thể đọc được các khuôn dạng dữ liệu. Việc tìm kiếm dữ liệu được hiểu là bạn có thể truy nhập vào dữ liệu ở dạng lưu trữ của nó.
- Xử lý
Xử lý bao gồm một chuỗi các lệnh hoặc các sự kiện có liên quan đến nhau làm việc với các dữ liệu. Kết quả của một xử lý có thể là: làm thay đổi cơ sở dữ liệu, đưa dữ liệu trả lời ra thiết bị đầu cuối, máy in hoặc in ra giấy, có thể là những yêu cầu về trang thiết bị, được suy diễn ra về các tình hướng các phần tử.
- Ràng buộc
• Ràng buộc về thứ tự trước: bắt buộc về thứ tự trước là điều kiện đầu
• Ràng buộc về tính thứ tự sau: ràng buộc loại này là điều kiện cần phải thoả mãn để quá trình xử lý có thể hoàn thành được. Cụm câu lệnh này được đưa vào cuối quá trình xử lý.
• Ràng buộc về thời gian: bao gồm ràng buộc về thời gian xử lý, thời
gian phân chia cho một quá trình xử lý, thời gian yêu cầu đối với các quá trình xử lý bên ngoài, thời gian xử lý đồng bộ, thời gian trả lời cho quá trình xử lý với giao diện bên ngoài.
• Ràng buộc về mặt cấu trúc: có thể là bao gồm việc xác định loại đầu
vào và đầu ra của dữ liệu nào được cho phép, quá trình xử lý được thực hiện như thế nào và mối quan hệ giữa các quá trình với nhau.
• Ràng buộc về điều khiển: liên quan đến việc duy trì mối quan hệ về
dữ liệu.
• Ràng buộc về suy diễn: đó là những khả năng có thể xảy ra từ một
ứng dụng, dựa vào các kết quả trước đó hoặc có thể dựa vào quan hệ về dữ liệu ta có thể dẫn đến một kết quả khác.
- Giao diện
Quan trọng nhất là giao diện người sử dụng – là phương tiện giao tiếp giữa người sử dụng và chương trình. Sau đó là giao diện thủ công – là các mẫu báo cáo và một số giao diện đã được chuẩn hoá như giao diện về mạng LAN của OSI (Open System Interface) của ISO (Intermatonal Standard Organization).
- Tinh đáp ứng
Tính đáp ứng của ứng dụng là thời gian sử dụng và đáp ứng yêu cầu từ người dùng của ứng dụng. Nó được định nghĩa bởi sự định hướng thời gian mà ứng dụng xử lý như: xử lý theo lô, xử lý theo kiểu trực tuyến hay xử lý theo thời gian thực.
• Xử lý theo lô: là ứng dụng mà các phiên giao dịch được ghi lại theo thời gian và thực hiện theo nhóm, tại mỗi thời điểm xác định công việc được xếp lại theo lô và đưa vào xử lý.
• Xử lý theo kiểu trực tuyến: Ứng dụng trực tuyến được định vị trực
tiếp trong bộ nhớ và được sử dụng một cách tuần tự bởi các phiên giao dịch hoặc sự kiện mà không cần phải nạp lại ứng dụng vào bộ nhớ.
• Xử lý theo thời gian thực: ứng dụng dạng này xử lý phiên giao dịch
và sự kiện trên thời gian thực tế mà quá trình xử lý xảy ra. Sau đó kết quả được sẵn sàng sử dụng cho các yêu cầu khác. Những thay đổi thu được từ một quá trình xử lý thời gian thực có thể được khôi phục lại trạng thái ban đầu.
Vòng đời phát triển của một phân mềm – Mô hình thác nước
Một phần mềm từ khi được xây dựng và đưa vào ứng dụng trải qua một giai đoạn dài gọi là vòng đời phát triển của nó. Đây là một phương pháp luận quan trọng trong sản xuất phần mềm vì các lý do sau: nghiên cứu vòng đời phát triển phần mềm để hiểu rõ trình tự từng công đoạn, tìm ra các phương tiện thích hợp nhất để tác động vào từng công đoạn để nâng cao hiệu quả của phần mềm.
Vòng đời phát trỉển của phần mềm được biễu diễn bằng mô hình dưới đây gọi là mô hình thác nước.
Hình 2.5: Vòng đời phát triển của phần mềm - Mô hình thác nước 2.2. Phân tích, thiết kế hệ thống thông tin