Phần mềm là gì? Phân loại phần mềm được sử dụng phổ biến hiện nay và cùng tìm hiểu các tiêu chí dùng để đánh giá chất lượng của một phần mềm qua bài viết sau
Phần mềm là gì?[/caption]
Phần mềm hay còn gọi là phần mềm máy tính (nhu liệu), đây là một tập hợp dữ liệu hoặc các câu lệnh để hướng dẫn máy tính cho máy tính biết cách để làm việc. Trong khoa học máy tính và kỹ thuật phần mềm thì phần mềm máy tính bao gồm tất cả thông tin được xử lý bởi hệ thống máy tính, chương trình máy tính, thư viện và dữ liệu. Những nội dung trên không thể thực thi liên quan, ví dụ như tài liệu trực tuyến, phương tiện kỹ thuật số. Phần mềm và phần cứng vật lý có khái niệm trái ngược với nhau nhưng chúng yêu cầu lẫn nhau và không thể tự sử dụng một cách thực tế.
Phần mềm được viết bằng các ngôn ngữ lập trình cấp cao là những ngôn ngữ tự nhiên dễ dàng và hiệu quả hơn đối với các trình lập viên. Các ngôn ngữ lập trình cấp cao được dịch sang ngôn ngữ máy bằng trình biên dịch hoặc trình thông dịch hoặc cũng có thể kết hợp cả hai cùng một lúc. Tuy nhiên chúng cũng có thể viết bằng một hợp ngữ ở mức thấp gồm các lệnh mạnh để hướng dẫn ngôn ngữ máy của máy tính và được dịch sang ngôn ngữ máy bằng phần mềm lắp ráp.
Phần mềm là gì?
Phần mềm là gì?[/caption]
Phần mềm hay còn gọi là phần mềm máy tính (nhu liệu), đây là một tập hợp dữ liệu hoặc các câu lệnh để hướng dẫn máy tính cho máy tính biết cách để làm việc. Trong khoa học máy tính và kỹ thuật phần mềm thì phần mềm máy tính bao gồm tất cả thông tin được xử lý bởi hệ thống máy tính, chương trình máy tính, thư viện và dữ liệu. Những nội dung trên không thể thực thi liên quan, ví dụ như tài liệu trực tuyến, phương tiện kỹ thuật số. Phần mềm và phần cứng vật lý có khái niệm trái ngược với nhau nhưng chúng yêu cầu lẫn nhau và không thể tự sử dụng một cách thực tế.
Phần mềm được viết bằng các ngôn ngữ lập trình cấp cao là những ngôn ngữ tự nhiên dễ dàng và hiệu quả hơn đối với các trình lập viên. Các ngôn ngữ lập trình cấp cao được dịch sang ngôn ngữ máy bằng trình biên dịch hoặc trình thông dịch hoặc cũng có thể kết hợp cả hai cùng một lúc. Tuy nhiên chúng cũng có thể viết bằng một hợp ngữ ở mức thấp gồm các lệnh mạnh để hướng dẫn ngôn ngữ máy của máy tính và được dịch sang ngôn ngữ máy bằng phần mềm lắp ráp.
Phân loại phần mềm
Trên thực tế, chúng ta có 3 cách để phân loại các phần mềm là phân theo mục đích hoặc lĩnh vực sử dụng, phân theo bản chất hoặc miền thực thi, phân theo công cụ lập trình.1. Mục đích và lĩnh vực sử dụng
Phần mềm cho ứng dụng: phần mềm này sử dụng cho các hệ thống máy tính để thực hiện các chức năng đặc biệt và cung cấp các chức năng giải trí ngoài những hoạt động cơ bản của máy tính.Phần mềm hệ thống: phần mềm này quản lý hành vi phần cứng của máy tính, cung cấp các chức năng cơ bản được người dùng yêu cầu hoặc phần mềm khác để chạy đúng. Một phần mềm hệ thống sẽ bao gồm:
- Hệ điều hành (operating system): là bộ sưu tập thiết yếu của phần mềm quản lý tài nguyên và cung cấp các dịch vụ chung cho các phần mềm khác chạy trên đỉnh của chúng. Phần cốt lõi của hệ điều hành sẽ bao gồm có các chương trình giám sát, bộ tải khởi động, hệ vỏ và hệ thống cửa sổ.
- Trình điều khiển thiết bị (drive): đây là một thiết bị cụ thể được gắn vào máy tính mà mỗi thiết bị cần ít nhất một trình điều khiển.
- Tiện ích (utility): là chương trình máy tính nhằm hỗ trợ người dùng trong việc bảo trì và chăm sóc máy tính.
2. Phân theo bản chất hoặc miền thực thi
Các ứng dụng cho máy tính để bàn: trình duyệt web, Microsoft office, các ứng dụng điện thoại thông minh và máy tính bảng.Các tập lệnh JavaScript: là phần mềm được nhúng truyền thống trong các trang web được chạy trực tiếp bên trong trình duyệt web khi một trang web được tải mà không cần plugin trình khác cũng có thể được chạy trong trình duyệt web nếu phần mềm được dịch sang JavaScript. Hoặc nếu một plugin trình duyệt web hỗ trợ ngôn ngữ đó được cài đặt.
Phần mềm máy chủ: gồm có các ứng dụng web thường chạy trên máy chủ web và xuất các trang web được tạo động sang trình duyệt web, sử dụng ví dụ như: PHP, Java, ASP, NET,… hoặc là các JavaScript chạy trên máy chủ.
Plugin và các tiện ích mở động: đây là phần mềm mở rộng hoặc sửa đổi chức năng của một phần mềm khác, yêu cầu phần mềm đó phải được sử dụng để hoạt động.
Phần mềm nhúng cư trú: ví dụ như firmware trong hệ thống nhúng hay thiết bị dành riêng cho việc sử dụng đơn lẻ hoặc các công dụng như xe hơi và tivi. Ở trong bối cảnh của hệ thống nhúng, đôi khi không có sự phân biệt rõ ràng giữa phần mềm hệ thống và phần mềm ứng dụng.
Microcode: đây là một phần mềm nhúng đặc biệt nên tương đối khó đọc hiểu, cho bản thân bộ xử lý biết cách thực thi mã máy. Chính vì vậy chúng có cấp độ thấp hơn mã máy.
3. Phân loại theo công cụ lập trình
Các công cụ lập trình cũng là một loại phần mềm ở dưới dạng chươn trình hoặc ứng dụng được các nhà phát triển phần mềm sử dụng để tạo, gỡ lỗi, bảo trì và hỗ trợ phần mềm.Đối với một phần mềm có thể được viết từ 1 hay nhiều hơn các ngôn ngữ lập trình khác nhau, mỗi ngôn ngữ có ít nhất một triển khai, mỗi ngôn ngữ đó sẽ bao gồm một bộ công cụ lập trình riêng đi kèm. Các công cụ này là các chương trình khép kín như trình dịch biên, trình gỡ lỗi, trình thông dịch, trình liên kết, trình soạn thảo,…
Chất lượng phần mềm
Để đo lường một chất lượng phần mềm các tổ chức thường dựa trên các tiêu chí đánh giá của chứng chỉ ISO 9001 hoặc chứng chỉ CMM. Một phần mềm chất lượng được đánh giá từ chất lượng quy trình đến chất lượng phần mềm nội bộ. Cụ thể chúng được đánh giá như sau:Quảng cáo
1. Tính năng
Là khả năng cung cấp các chức năng để thỏa mãn yêu cầu và mục đích được xác định khi bắt đầu triển khai phần mềm. Gồm có các chức năng:- Tính phù hợp.
- Tính chính xác.
- Khả năng tương tác.
- Tính bảo mật.
2. Độ tin cậy
Việc đánh giá độ tin cậy của một phần mềm cung cấp có thể ước tính được mức độ rủi ro trong kinh doanh và khả năng gây ra lỗi tiềm ẩn của ứng dụng sau khi thử nghiệm. Nguyên nhân của độ tin cậy kém hầu hết là do cấu trúc phần mềm không được kết hợp với mã hóa. Việc kiểm tra và giám sát độ tin cậy sẽ giảm thiểu lỗi phần mềm như dừng hoạt động hoặc gây ảnh hưởng trực tiếp đến người dùng.- Tính hoàn thiện cấu trúc ứng dụng.
- Quy trình mã hóa
- Tính phức tạp của các thuật toán lập trình.
- Khả năng xử lý, chịu lỗi, phục hồi và quản lý tài nguyên.
- Phần mềm quản lý tính toàn vẹn và tính thống nhất của dữ liệu.
3. Tính hiệu quả
Là khả năng đáp ứng hiệu quả một cách thích hợp nhằm tiết kiệm tài nguyên, tăng hiệu suất ứng dụng và khả năng mở rộng phần mềm. Tính toán nguồn lực, mã nguồn đảm bảo hiệu năng cao khi phần mềm chạy trên hệ thống như khi xử lý các thuật toán, giao dịch, khả năng mở rộng. Đánh giá tính hiệu quả của phần mềm qua những điều kiện như sau:- Cấu trúc ứng dụng
- Độ tương tác thích hợp với các nguồn tài nguyên
- Hiệu suất, thời gian truy cập và quản lý dữ liệu.
- Quản lý bộ nhớ, mạng và không gian đĩa.
- Quy trình mã hóa và lập trình.
4. Tính bảo mật
Các biến pháp bảo vệ, ngăn chặn khả năng xảy ra các vi phạm bảo mật đến phần mềm, dữ liệu của hệ thống và ngăn chặn nguy cơ tấn công của các lỗ hổng.Để đánh giá độ an toàn, bảo mật cần kiểm tra các thuộc tính sau đây:
- Cấu trúc ứng dụng
- Sự tuân thủ thiết kế nhiều lớp
- Vấn đề thực tế bảo mật
- Quy trình mã hóa, lập trình
- Bảo mật truy cập vào hệ thống, kiểm soát các chương trình
5. Khả năng bảo trì
Bao gồm khả năng kiểm tra, nâng cấp, thay đổi và phát triển phần mềm cho phù hợp với yêu cầu, chức năng và môi trường.Quảng cáo
Đánh giá khả năng bảo trì qua các thuộc tính sau:
- Cấu trúc phần mềm và lập trình hướng đối tượng
- Khả năng phân tích
- Mức độ phức tạp của giao dịch, lập trình,thuật toán
- Kiểm soát mức độ mã hóa
- Tính ổn định của phần cứng, hệ điều hành, thành phần trung gian, cơ sở dữ liệu độc lập
- Khả năng kiểm thử được.
6. Kích thước
Kích thước phần mềm được đo lường yêu cầu toàn bộ mã nguồn phải được thu thập chính xác gồm các tập lệnh cấu trúc cơ sở dữ liệu, mã nguồn thao tác dữ liệu, các tiêu đề thành phần, các tệp cấu hình,… Có hai loại kích thước phần mềm cần đo là kích thước kỹ thuật và kích thước kỹ năng- Kích thước kỹ thuật đo bằng phương pháp đánh số kỹ thuật là số dòng mã trên mỗi công nghệ, số lượng tệp tin, chức năng,…
- Kích thước kỹ năng được đo bằng cách phân tích điểm chức năng từ quan điểm và yêu cầu của người dùng.