CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM & LỖI PHẦN MỀM 1.1 Định nghĩa về phần mềm. Phần mềm là một tập hợp các chương trình máy tính, dữ liệu và tài liệu liên quan được thiết kế để thực hiện một nhiệm vụ cụ thể hoặc cung cấp một dịch vụ cho người dùng. Nó bao gồm các lệnh và chỉ thị được viết trong một ngôn ngữ lập trình nhất định, được biên dịch hoặc thông dịch để chạy trên một máy tính hoặc một môi trường thực thi. Phần mềm có thể có các ứng dụng khác nhau, từ các ứng dụng văn phòng đơn giản đến các hệ điều hành phức tạp.
Phần mềm có thể được phân loại thành hai loại chính: 1. Phần mềm ứng dụng: Đây là phần mềm được thiết kế để giải quyết một nhu cầu cụ thể của người dùng cuối. Ví dụ bao gồm các ứng dụng văn phòng như xử lý văn bản, bảng tính, trình chỉnh sửa hình ảnh, trình duyệt web, ứng dụng di động, trò chơi điện tử và nhiều hơn nữa. Phần mềm ứng dụng được phát triển để cung cấp các chức năng và tiện ích cho người dùng trong việc thực hiện công việc cụ thể.
Phần mềm hệ thống: Đây là phần mềm được thiết kế để quản lý và điều khiển các tài nguyên phần cứng và phần mềm trên một máy tính hoặc một mạng máy tính. Ví dụ bao gồm hệ điều hành như Windows, macOS, Linux, các trình điều khiển thiết bị và các hệ thống quản lý cơ sở dữ liệu. Phần mềm hệ thống cung cấp các công cụ và giao diện để quản lý và tương tác với phần cứng, hỗ trợ các ứng dụng ở mức độ cao hơn và cung cấp các dịch vụ cơ bản như quản lý tệp tin, mạng, bảo mật và giao tiếp. Định nghĩa về công nghệ phần mềm.
Công nghệ phần mềm là lĩnh vực nghiên cứu, phát triển và ứng dụng các phương pháp, quy trình và công cụ để tạo ra, quản lý và duy trì phần mềm. Nó liên quan đến 6 Downloaded by NHIM BIEN (nhimbien1@gmail.com) lOMoARcPSD|39458107 việc áp dụng các nguyên tắc kỹ thuật và quản lý để phát triển phần mềm một cách hiệu quả và đáng tin cậy. Công nghệ phần mềm bao gồm các giai đoạn và hoạt động như: 1. Phân tích yêu cầu: Quá trình tìm hiểu và xác định yêu cầu của phần mềm từ khách hàng và người dùng cuối.
Điều này bao gồm việc thu thập thông tin, phân tích nhu cầu và đặc tả yêu cầu hệ thống. Thiết kế phần mềm: Quá trình tạo ra kiến trúc và thiết kế tổng thể cho phần mềm dựa trên yêu cầu đã xác định. Điều này bao gồm việc lựa chọn các cấu trúc dữ liệu, giao diện người dùng, thiết kế cơ sở dữ liệu và quyết định về kiến trúc phần mềm. Lập trình: Quá trình viết mã và triển khai chương trình phần mềm.
Các ngôn ngữ lập trình như Java, C++, Python và C# được sử dụng để triển khai các chức năng của phần mềm. Kiểm thử và đảm bảo chất lượng: Quá trình kiểm tra và xác minh tính đúng đắn, hiệu suất và đáng tin cậy của phần mềm. Triển khai và duy trì: Quá trình triển khai phần mềm trên môi trường sản xuất và duy trì nó trong suốt vòng đời. Các hoạt động bao gồm cài đặt phần mềm, cung cấp hỗ trợ, sửa lỗi và nâng cấp.
Công nghệ phần mềm cũng liên quan đến các khía cạnh quản lý dự án, quản lý rủi ro, quản lý phiên bản và quản lý quy trình phát triển phần mềm. Nó đóng vai trò quan trọng trong việc đảm bảo hiệu suất và độ tin cậy của phần mềm. Vòng đời của phần mềm. Vòng đời của phần mềm là quá trình tổ chức và quản lý phần mềm từ khi nó được khởi tạo cho đến khi nó được ngừng sử dụng hoặc thay thế bằng phiên bản mới.
Mô hình vòng đời phần mềm phổ biến nhất là mô hình Waterfall, nhưng hiện nay cũng có nhiều mô hình phát triển phần mềm linh hoạt khác như Agile và DevOps. Dưới đây là các giai đoạn chính trong vòng đời phần mềm theo mô hình Waterfall: 7 Downloaded by NHIM BIEN (nhimbien1@gmail. Yêu cầu: Giai đoạn này tập trung vào việc nắm bắt và hiểu rõ yêu cầu của phần mềm từ khách hàng. Điều này bao gồm việc thu thập thông tin, phân tích yêu cầu và đặc tả yêu cầu hệ thống.
Thiết kế: Trong giai đoạn này, kiến trúc tổng thể của phần mềm được thiết kế. Các yêu cầu được chuyển đổi thành một thiết kế cụ thể với các thành phần, giao diện và cấu trúc dữ liệu. Lập trình: Giai đoạn này liên quan đến việc viết mã và triển khai chương trình phần mềm. Mã nguồn được phát triển dựa trên thiết kế đã được xác định trong giai đoạn trước.
Kiểm thử: Quá trình kiểm tra và xác minh tính đúng đắn, hiệu suất và đáng tin cậy của phần mềm. Triển khai: Giai đoạn triển khai bao gồm cài đặt phần mềm trên môi trường sản xuất và chuẩn bị cho việc sử dụng. Quá trình triển khai bao gồm cài đặt, cấu hình và hướng dẫn người dùng. Bảo trì: Sau khi phần mềm được triển khai, giai đoạn bảo trì bắt đầu.
Nó bao gồm việc duy trì, sửa lỗi và nâng cấp phần mềm để đảm bảo hiệu suất và độ tin cậy của nó trong suốt vòng đời. Các mô hình phát triển phần mềm linh hoạt như Agile và DevOps tập trung vào việc tăng cường sự linh hoạt, tương tác và sự phản hồi liên tục giữa các giai đoạn trong vòng đời phần mềm. Những mô hình này thường chia nhỏ quá trình phát triển thành các vòng lặp ngắn gọi là "sprints" hoặc "iterations" để có thể nhanh chóng thích ứng với sự thay đổi và phản hồi từ phía khách hàng và người dùng.Định nghĩa chất lượng phần mềm và đảm bảo chất lượng phần mềm.1 Định nghĩa chất lượng phần mềm Chất lượng phần mềm đề cập đến mức độ mà phần mềm đáp ứng được các yêu cầu, tiêu chuẩn và mong đợi của người sử dụng. Nó liên quan đến khả năng của phần mềm để hoạt động đúng đắn, đáng tin cậy, hiệu quả và dễ sử dụng.
Có nhiều yếu tố quan trọng ảnh hưởng đến chất lượng của phần mềm, bao gồm: 8 Downloaded by NHIM BIEN (nhimbien1@gmail. Độ chính xác: Phần mềm cần thực hiện đúng các chức năng và nhiệm vụ mà nó được thiết kế để làm. Độ chính xác đo lường mức độ phù hợp giữa kết quả mà phần mềm tạo ra và kết quả mong đợi. Độ tin cậy: Độ tin cậy của phần mềm liên quan đến khả năng của nó hoạt động một cách ổn định và không gây ra lỗi hoặc sự cố.
Phần mềm tin cậy là phần mềm có khả năng duy trì hiệu suất ổn định trong thời gian dài. Hiệu suất: Hiệu suất của phần mềm đo lường khả năng của nó để hoạt động với mức độ tối ưu, bao gồm tốc độ xử lý, thời gian đáp ứng và khả năng xử lý công việc lớn. Bảo mật: Chất lượng phần mềm cũng liên quan đến khả năng của nó để bảo vệ thông tin và ngăn chặn truy cập trái phép. Phần mềm cần có các biện pháp bảo mật để đảm bảo tính riêng tư và an toàn của dữ liệu.
Dễ sử dụng: Phần mềm tốt là phần mềm mà người dùng có thể sử dụng dễ dàng và hiểu rõ. Giao diện người dùng cần được thiết kế một cách thân thiện và trực quan, giúp người dùng tương tác với phần mềm một cách hiệu quả. Để đảm bảo chất lượng phần mềm, quy trình kiểm thử và đảm bảo chất lượng phần mềm thường được thực hiện trong quá tr 1.2 Định nghĩa đảm bảo chất lượng phần mềm. Đảm bảo chất lượng phần mềm (Software Quality Assurance - SQA) là quá trình và hoạt động nhằm đảm bảo rằng phần mềm được phát triển và cung cấp đáp ứng các tiêu chuẩn chất lượng đã được xác định trước.
Mục tiêu của SQA là đảm bảo rằng phần mềm đáp ứng các yêu cầu, đạt được hiệu suất mong đợi và có độ tin cậy cao. Quá trình SQA thường bao gồm các hoạt động sau: 1. Xác định yêu cầu chất lượng: Đây là quá trình xác định các tiêu chuẩn và yêu cầu chất lượng mà phần mềm cần đáp ứng. Yêu cầu chất lượng có thể bao gồm khả năng chính xác, độ tin cậy, hiệu suất, bảo mật và dễ sử dụng.
Lập kế hoạch SQA: Trong giai đoạn này, kế hoạch SQA được xác định để định rõ các hoạt động, phương pháp và tiến độ cho việc đảm bảo chất lượng 9 Downloaded by NHIM BIEN (nhimbien1@gmail.com) lOMoARcPSD|39458107 phần mềm. Kế hoạch này bao gồm việc định nghĩa các tài liệu, kiến thức và nguồn lực cần thiết để thực hiện SQA. Kiểm tra và đánh giá: Quá trình kiểm tra và đánh giá được thực hiện để xác định xem phần mềm có đáp ứng các yêu cầu chất lượng đã xác định hay không. Điều này có thể bao gồm kiểm tra chức năng, kiểm tra hiệu suất, kiểm tra bảo mật và kiểm tra tính tương thích.
Quản lý vấn đề chất lượng: Trong quá trình SQA, việc quản lý và theo dõi các vấn đề liên quan đến chất lượng phần mềm là rất quan trọng. Các vấn đề phát sinh trong quá trình phát triển và triển khai phần mềm cần được xử lý một cách hiệu quả để đảm bảo chất lượng tổng thể của phần mềm. Đảm bảo quy trình chất lượng: SQA cũng liên quan đến việc đảm bảo rằng quy trình phát triển phần mềm đáp ứng các tiêu chuẩn chất lượng. Điều này bao gồm việc đánh giá, cải tiến và theo dõi quy trình để đảm bảo rằng nó đáng tin cậy và hiệu quả.
Lỗi phần mềm.1 Định nghĩa lỗi phần mềm & phân loại lỗi phần mềm. Lỗi phần mềm là sự sai khác giữa hành vi thực tế của phần mềm và hành vi được mong đợi hoặc mô tả trong yêu cầu, thiết kế hoặc tài liệu khác. Lỗi phần mềm có thể xuất hiện trong quá trình phát triển, triển khai hoặc sử dụng phần mềm. Chúng có thể gây ra các vấn đề như chức năng không hoạt động, sự cố và mất dữ liệu.
Dưới đây là một số phân loại phổ biến: 1. Lỗi chức năng (Functional errors): Đây là các lỗi liên quan đến việc phần mềm không thực hiện đúng các chức năng đã được yêu cầu hoặc mô tả. Ví dụ, một tính năng không hoạt động, hoặc phần mềm không trả về kết quả đúng. Lỗi hiệu suất (Performance errors): Lỗi hiệu suất xảy ra khi phần mềm không đáp ứng được yêu cầu về hiệu suất hoặc sự đáp ứng nhanh chóng.
Điều này có thể bao gồm thời gian đáp ứng chậm, tài nguyên tiêu thụ quá mức hoặc khả năng xử lý công việc lớn không đạt yêu cầu. 10 Downloaded by NHIM BIEN (nhimbien1@gmail.