Mỗi phần mềm từ khi ra đời, phát triển đều trải qua một chu kì trong công nghệ phần mềm được gọi là vòng đời của phần mềm. Người ta nghiên cứu vòng đời của phần mềm để hiểu rõ từng giai đoạn và có biện pháp phát triển thích hợp để phát triển vào từng giai đoạn đó nhằm đảm bảo chất lượng của sản phẩm. Vòng đời phát triển của sản phẩm phần mềm được biểu diễn bằng một mô hình gọi là mô hình thác nước.
Công nghệ hệ thống: Phần mềm là một bộ phận của hệ thống quản lí nói
chung. Do đó, công việc nghiên cứu phần mềm từ đầu phải được thiết lập yêu cầu cho mọi phần tử hệ thống và được đặt trong mối lien kết chặt chẽ với các thành phần khác của hệ thống như phần cứng, nhân tố con người, …Công nghệ hệ thống và phân tích bao gồm việc thu thập yêu cầu ở mức hệ thống với một lượng nhỏ thiết kế và phân tích mức đỉnh.
Phân tích yêu cầu phần mềm: Tiến trình thu thập yêu cầu được tập trung
và làm mạnh đặc biệt vào phần mềm. Để hiểu được bản chất của các phần mềm phải xây dựng kĩ sư phần mềm phải hiểu về lĩnh vực thông tin đối với phần mềm cũng như các chức năng cần có, hiệu năng và giao diện của phần mềm.
Thiết kế: Thiết kế phần mềm là một tiến trình nhiều bước tập trung vào
bốn thuộc tính phân biệt của chương trình là: - Cấu trúc dữ liệu - Kiến trúc phần mềm - Các thủ tục Công nghệ hệ thống Phân tích Thiết kế Mã hóa Kiểm thử Bảo trì
- Các đặc trưng giao diện
Tiến trình thiết kế dịch các yêu cầu thành một biểu diễn của phần mềm có thể được khẳng định về chất lượng trước khi giai đoạn mã hoá bắt đầu. Giống như các yêu cầu, việc thiết kế phải được lập tư liệu và trở thành bộ phận của cấu hình phần mềm.
Mã hoá: Thiết kế phải được dịch thành ngôn ngữ máy mà máy tính có thể
đọc và hiểu được. Bước mã hoá thực hiện công việc này.
Kiểm thử: Mục đích chính của kiểm thử là phát hiện ra những lỗi khiếm
khuyết của phần mềm. Kiểm thử phần mềm là yếu tố quyết định cho việc đảm bảo chất lượng phần mềm. Tính minh bạch ngày càng tăng của phần mềm như một phần tử hệ thống và những chi phí kèm theo liên quan đến những sai hỏng phần mềm là những lực lượng thúc đẩy cho việc kiểm thử toàn vẹn.
Kiểm thử được tiến hành sẽ tìm ra những lỗi trong phần mềm. Kết quả của kiểm thử sẽ được so sánh với kết quả dự kiến. Khi lỗi được phát hiện ra quá trình sửa lỗi bắt đầu.
Để thực hiện mục tiêu kiểm thử người ta sử dụng 2 loại kiểm thử khác nhau là kiểm thử hộp đen và kiểm thử hộp trắng.
Kiểm thử hộp đen (Black Box): tiến hành kiểm thử xem từng chức năng
có vận hành hoàn toàn không. Việc kiểm thử hộp đen chỉ được tiến hành tại giao diện phần mềm. Kiểm thử hộp đen tập trung vào các chức năng của phần mềm. Việc kiểm thử hộp đen dự định tìm lỗi trong các phạm vi sau:
- Lỗi chức năng không đúng hay bị bỏ sót - Lỗi giao diện
- Lỗi trong cấu trúc dữ liệu hay thâm nhập cơ sở dữ liệu ngoài - Lỗi hiệu năng
Kiểm thử hộp đen chỉ xem xét 1 số khía cạnh của hệ thống mà ít để ý tới cấu trúc logic bên trong của phần mềm. Do đó việc kiểm thử hộp đen dù có kĩ lưỡng đến đâu cũng có thể bỏ lỡ những lỗi và để khắc phục vấn đề này xuất kiện việc kiểm thử hộp trắng.
Kiểm thử hộp trắng (White Box): là một phương pháp thiết kế kiểm thử có
dùng cấu trúc điều khiển của thiết kế thủ tục để suy ra các trường hợp kiểm thử. Kiểm thử hệ thống tập trung vào cấu trúc điều khiển chương trình. Các trường hợp kiểm thử được thực hiện đều đảm bảo rằng tất cả các câu lệnh trong chương trình đều được thực hiện ít nhất 1 lần, tất cả các điều khiển logic đều được thử qua.
Bảo trì: Sau khi bàn giao phần mềm cho khách hàng chắc chắn nó sẽ có
những thay đổi để tương thích với hệ thống. Quá trình bảo trì còn xảy ra khi khách hàng cần nâng cao chức năng của sản phẩm. Việc bảo trì phần mềm phải áp dụng lại các bước của vòng đời phát triển phần mềm cho chương trình hiện tại chứ không phải chương trình mới.