Nội dung bài giảng Bài 4: Phần mềm máy tính sau đây sẽ giúp các bạn tìm hiểu về khái niệm phần mềm và phân loại phần mềm. Mời các bạn cùng tham khảo!
Tóm tắt lý thuyết
1. Khái niệm phần mềm
Có nhiều định nghĩa khác nhau về phần mềm máy tính trên thế giới, song tất cả đều có sự thống nhất chung về nội dung một phần mềm máy tính bao gồm:
- Các chương trình máy tính được viết để giải quyết yêu cầu chức năng của bài toán đặt ra.
- Các cấu trúc dữ liệu phù hợp đã được lựa chọn sao cho chương trình có thế thao tác được đúng và hiệu quả.
- Các tài liệu mô tả toàn bộ bài toán, thuật toán, chương trình và tài liệu hướng dẫn sử dụng.
Để viết chương trình, ngoài việc cần phải có thuật toán khả thi và hiệu quả, việc lựa chọn ngôn ngữ lập trình, xác định phương pháp tổ chức dữ liệu có ý nghĩa rất quan trọng. Bên cạnh đó, các phần mềm cần phải có tài liệu mô tả các đặc điểm kĩ thuật và tài liệu hướng dẫn người sử dụng để hỗ trợ cho việc hiểu, bảo trì, nâng cấp và sửa chữa phần mềm.
2. Phân loại phần mềm
Có nhiều cách phân loại phần mềm dựa vào các tiêu chí khác nhau. Dựa vào mục đích sừ dụng, phần mềm được chia thành các nhóm sau đây.
2.1 Phần mềm ứng dụng
- Phần mềm ứng dụng là các phần mềm máy tính được viết để giúp giải quyết các công việc hằng ngày cũng như những hoạt động nghiệp vụ như soạn thảo, quản lí học sinh, lập thời khoá biểu, quản lí nhân sự,...
- Phần mềm ứng dụng có thể được viết theo đơn đặt hàng riêng của một cá nhân, hay tổ chức (ví dụ: phần mềm quản lí điểm, thời khoá biểu ở một trường học, phần mềm điều khiển một dâv chuyền sản xuất, quản lí khách hàng của một công ty,...), hoặc là phần mềm dùng chung. Các phần mềm dùng chung được thiết kế dựa trên những yêu cầu hằng ngày của nhiều người chứ không phải của một người hay một tổ chức cụ thể nào.
Ví dụ, phần mềm soạn thảo Microsoft Office Word; phần mềm duyệt website trên Internet như Mozilla Firefox; phần mềm trò chuyện với bạn bè online Yahoo Messengers, phần mềm thiết kế bản vẽ autocad, phần mềm nghe nhạc hay xem phim trên dĩa CD (như Jet Audio hay Mpeg). Những phần mềm như vậy còn được gọi là phần mềm đóng gói.
2.2 Phần mềm công cụ
Phẩn mềm công cụ là các phần mềm được sử dụng để hỗ trợ các nhà phát triển phần mềm trong việc tạo ra các phần mềm khác. Ví dụ, các phần mềm hỗ trợ tổ chức dữ liệu SQL Server, Navicat for MySql, phần mềm phát hiện lỗi lập trình và sửa lỗi (fire bug),... đều thuộc các phần mềm công cụ. Do các phần mềm này được dùng với mục đích phát triển phần mềm nên người ta còn gọi chúng là phần mềm phát triển.
2.3 Phần mềm hệ thống
- Phần mềm hệ thống là các phần mềm thường trực trong máy tính, dùng để cung cấp môi trường làm việc cho các phần mềm khác.
- Phần mềm hệ thống quan trọng nhất là hệ điều hành (operating system). Hệ điều hành có. chức năng diều hành toàn bộ hoạt động của mảy tính trong suốt quá trình làm việc. Ngoài ra còn có nhiều phần mềm hệ thống thường trực cung cấp môi trường làm việc cho các phân mêm khác, chẳng hạn phần mềm gõ tiếng Việt: Vietkey, Ưnikey,..., được dùng dê hỗ trợ gõ tiếng Việt từ nhiều phần mềm khác,...
2.4 Phần mềm tiện ích
- Phần mềm tiện ích là các phần mềm giúp cải thiện hiệu quả công việc khi làm việc với máy tính. Chúng là các còng cụ đáp ứng những nhu cầu chung của nhiều người và không liên quan đến các lĩnh vực công việc cụ thể. Ví dụ, các phần mềm soạn thảo văn bản có thể soạn thảo văn bản đơn giản hay soạn thảo các chương trình máv tính, những phần mềm sao chép dữ liệu từ nơi này đến nơi kia, nén dữ liệu để tiết kiệm đĩa, phần mềm dọn dẹp ổ dĩa (Disk cleanup), phần mềm phân mảnh lại ổ đĩa (Disk Deíragementer), các phần mềm diệt virus (BKAV PRO, Symantic, Avira,...)
- Các hệ điều hành thường cung cấp một số tiện ích đi kèm và được xem như môi trường giao tiếp cơ ban giữa người sử dụng với máy tính. Chẳng hạn, hầu hết các hệ điều hành đều có tiện ích soạn thảo văn bản ở mức đơn giản, ví dụ, Window có Notepad, Unix có Vi hay Emag, DOS từ Ver.4 có Edit. Các hệ điều hành trên máy tính cá nhân (PC- Personal Computer) còn có các tiện ích tạo dĩa khởi động hay kiểm tra đĩa cứng.
- Sự phân loại nói trên chỉ có ý nghĩa tương đối. Ranh giới giữa các lớp phần mềm trên rất mờ, thậm chí còn có phần giao nhau. Chẳng hạn, phần mềm gõ bàn phím tiếng Viẹt có thể được coi như phần mềm ứng dụng, dồng thời do tính chất cung cấp môi trường cho các ứng dụng khác mà cũng có thể coi như là một phần mềm hệ thống. Việc đưa ra phân lớp nói trên chỉ có thể cho một bức tranh tổng thể về các lớp phần mềm dựa trên mục đích và phương thức sừ dụng chúng.
2.5 Quá trình xây dựng phần mềm
Giai đoạn đầu khi mới ra đời, MTĐT được sử dụng chủ yêu để giải quyết các bài toán khoa học kĩ ihuật, phục vụ cho mục đích quân sự và nghiên cứu. Khi đó, người lập trình chủ yếu là các chuyên gia trong lĩnh vực ứng dụng, họ vừa phải nghiên cứu cách giải quyết bài toán đặt ra, vừa phải thiết kế, lập trình và thử nghiệm chương trình. Sau này, khi máy tính được sử dụng rộng rãi trong mọi lĩnh vực của đời sống kinh tế - xã hội, khoa học kĩ thuật,... nhu cầu sử dụng phần mềm tăng lên nhanh chóng. Việc sản xuất phần mềm đã không còn giới hạn cho việc phục vụ giải quyết các bài toán khoa học kĩ thuật mà hình thành ngành công nghiệp phần mềm, với sự chuyên môn hoá ngày càng cao.
Ngày nay, làm phần mềm đã trở thành một nghề nghiệp, thường đòi hỏi công sức của nhiều người và là một công việc phức tạp. Để có thể phát triển thành công một dự án phần mềm, quá trình làm phần mềm phải được chia thành nhiều công đoạn và được tiến hành theo các quy trinh nhất định. Có thể hình dung quá trình phát triển một dự án phần mềm qua sơ đồ sau:
Hình 1.18. Các giai đoạn của quá trình xây dựng phần mềm
- Trước hết, cần phân tích để làm rõ nhu cầu của người sử dụng về các đặc điểm, tính năng mà phân mêm phải đáp ứng. Dựa vào kêt quả phân tích, người thiết kế sẽ xây dựng những phác thảo chi tiết cho cài đặt phần mềm. Việc phân tích nhằm làm cho phần mềm đáp ứng đúng nhu cầu của người sử dụng, còn thiết kế tốt sẽ làm lăng hiệu quả và chất lượng của phần mềm. Tiếp theo thiết kế là công việc của người lập trình (coder), có nhiệm vụ hiện thực hoá bản thiết kế thành chương trình phần mềm thực sự. Người lập trình sử dụng ngôn ngữ lập trình, các công cụ hỗ trợ và các giải thuật phù hợp để viết chương trình theo đúng thiết kế. Vì phần mềm là một sản phẩm trí tuệ nên thường tiềm ẩn rất nhiều lỗi. Người ta thường phải áp dụng nhiều biện pháp trong đó có kiểm thừ (test) chương trình để kiểm soát chất lượng phần mềm.
- Sau khi phần mềm làm ra được kiểm tra chất lượng, nhà phát triển cần phải chuyển giao phần mềm cho người sử dụng. Giai đoạn này gồm hàng loạt việc cần làm như viết tài liệu, mua sắm và lắp đặt thiết bị, xây dựng dữ liệu, cài đặt phần mềm lên máy, tổ chức hướng dẫn người sử dụng.
- Khi phần mềm đã đi vào hoạt động, phía người sử dụng vẫn còn cần một khâu rất quan trọng và chiếm nhiều thời gian đó là bảo trì. Bảo trì khác với bảo hành và là một đặc thù của sản xuất phần mềm. Nếu một sản phẩm bị lỗi hoặc hỏng thì việc bảo hành là khôi phục lại trạng thái chất lượng ban đầu. Người ta có thể sửa chữa, thay thế phụ tùng hoặc đổi lấy sản phẩm mới. Bảo trì là làm cho sản phẩm tốt hơn, phù hợp và hiệu quả hơn. Bảo trì thường gồm các công việc: tìm và sửa hết các lỗi; chỉnh sửa phần mềm cho dễ dùng và phù hợp hơn với môi trường nghiệp vụ; bổ sung chức năng cần thiết. Như vậy bảo trì thường rất tốn kém và chi phí bảo trì đắt hơn chi phí phát triển ban đầu.
- Nhìn chung, quá trình xây dựng phần mềm gồm rất nhiều công đoạn phức tạp. Các công đoạn này thường không diễn ra một cách tuyến tính mà thường phải làm đi làm lại nhiều lần mỗi công đoạn để tạo ra được sản phâm đáp ứng đúng nhu cầu của người sử dụng. Do vậy, người ta thường dùng thuật ngữ “phát triển phần mềm” để chỉ quá trình làm ra một sản phẩm phần mồm máy tính.