Phần Mềm Và Công Nghệ Phần Mềm Khác Nhau Thế Nào?
NỘI DUNG BÀI VIẾT
Bạn hiểu gì về thế giới phần mềm tất cả các khái niệm xung quanh? Tất tần tật những thứ liên quan đến “Phần mềm” được tổng hợp trong bài viết này và nó dành cho bạn.
Phần mềm là gì?
Phần mềm là các chương trình máy tính và những tài liệu liên quan đến nó như: các yêu cầu, mô hình thiết kế, tài liệu hướng dẫn sử dụng… Do đó, chúng ta thấy rằng đặc điểm của phần mềm là trừu tượng và vô hình.
Các sản phẩm phần mềm được chia thành 2 loại:
- Sản phẩm đại trà (Generic Product): Được phát triển để bán ra ngoài thị trường, đối tượng người sử dụng vì thế cũng tương đối đa dạng và phong phú.
- Sản phầm theo đơn đặt hàng (Bespoke Product hoặc Customised Product): Được phát triển cho một khách hàng riêng lẻ theo yêu cầu. Ví dụ: Những hệ thống phần mềm chuyên dụng, hỗ trợ nghiệp vụ cho một doanh nghiệp riêng lẻ …
Như vậy một phần mềm mới có thể được tạo ra bằng cách phát triển từ đầu, thay đổi và điều chỉnh các hệ thống phần mềm đại trà hoặc tái sử dụng lại các phần mềm đã tồn tại.
Công nghệ phần mềm là gì?
Công nghệ phần mềm là những quy tắc công nghệ (engineering discipline) có liên quan đến tất cả các khía cạnh của quá trình sản xuất phần mềm.
Các kỹ sư phần mềm nên tuân theo một phương pháp, một quy trình có hệ thống, có tổ chức trong công việc của mình. Đồng thời, một kỹ sư phần mềm thường ưu tiên sử dụng các công cụ và kỹ thuật có sẵn thích hợp với vấn đề cần giải quyết thay vì tự suy nghĩ các phương pháp của mình. Vì cơ bản, các phương pháp có sẵn đã được những người lập trình viên trước giải quyết hiệu quả vấn đề và được nhiều người công nhận, sử dụng.
Khác biệt giữa công nghệ phần mềm và khoa học máy tính:
- Khoa học máy tính thường đề cập tới lý thuyết và những vấn đề mang tính giải thuật cao, còn công nghệ phần mềm đề cập tới các hoạt động xây dựng và đưa ra một phần mềm hữu ích.
- Khi sự phát triển của phần mềm trở nên mạnh mẽ thì các lý thuyết của khoa học máy tính đã không còn đáp ứng, đóng vai trò là nền tảng hoàn thiện cho công nghệ phần mềm.
Khác biệt giữa công nghệ phần mềm và công nghệ hệ thống:
- Công nghệ hệ thống (hay còn gọi là kỹ nghệ hệ thống) liên quan tới tất cả các khía cạnh của quá trình phát triển hệ thống dựa trên máy tính bao gồm: phần cứng, phần mềm, và công nghệ xử lý. Công nghệ phần mềm chỉ là một phần của quy trình này, nó có liên quan tới việc phát triển hạ tầng phần mềm (software infrastructure), điều khiển, các ứng dụng và cơ sở dữ liệu trong hệ thống.
- Kỹ sư hệ thống phải thực hiện việc đặc tả hệ thống, thiết kế kiến trúc hệ thống, tích hợp và triển khai.
Quy trình phần mềm là gì?
Quy trình phần mềm là tập hợp các hành động với mục đích là xây dựng và phát triển phần mềm. Những hành động thường được thực hiện trong các quy trình phần mềm bao gồm:
- Đặc tả: Diễn giải, liệt kê những gì hệ thống phải làm và các ràng buộc trong quá trình xây dựng hệ thống.
- Phát triển: Xây dựng hệ thống phần mềm.
- Kiểm thử: Kiểm tra xem liệu phần mềm đã thoả mãn yêu cầu của khách hàng.
- Mở rộng: Điều chỉnh và thay đổi phần mềm tương ứng với sự thay đổi yêu cầu.
Những loại hệ thống khác nhau sẽ cần những quy trình phát triển khác nhau. Ví dụ, hệ thống thời gian thực yêu cầu phải hoàn thành đặc tả hệ thống trước khi chuyển sang giai đoạn xây dựng nó. Nhưng với hệ thống thương mại điện tử, chúng ta có thể vừa đặc tả vừa xây dựng chương trình một cách đồng thời.
Tuy nhiên, nếu chúng ta không sử dụng một quy trình phát triển hệ thống thích hợp thì có thể làm giảm chất lượng của hệ thống và tăng chi phí xây dựng.
Mô hình quy trình phát triển phần mềm như thế nào?
Mô hình quy trình phát triển phần mềm là một thể hiện đơn giản của một quy trình phần mềm, và nó được biểu diễn từ một góc độ cụ thể.
Một số ví dụ về mô hình quy trình phát triển phần mềm:
- Mô hình luồng công việc (workflow): mô tả một chuỗi các hành động cần phải thực hiện.
- Mô hình luồng dữ liệu (data-flow): mô tả luồng thông tin.
- Mô hình Vai trò/Hành động (Role/action): chỉ ra vai trò của những người liên quan trong quy trình phần mềm và nhiệm vụ của từng người.
- Ngoài ra, còn có một số mô hình quy trình chung cũng được sử dụng như:
- Mô hình thác nước (waterfall)
- Mô hình phát triển lặp lại (Iterative development)
- Mô hình công nghệ phần mềm dựa thành phần (Component-based software engineering).
Người ta đầu tư bao nhiêu vào phát triển phần mềm?
Để xây dựng một hệ thống phần mềm, chúng ta thường phải đầu tư một khoản ngân sách khá lớn. Theo thống kê cho thấy, chi phí cho việc xây dựng phần mềm chiếm một phần đáng kể của GNP ở tất cả các nước phát triển.
- Chi phí phần mềm thường chiếm phần lớn chi phí của cả hệ thống máy tính.
- Chi phí phần mềm trên máy PC thường lớn hơn chi phí phần cứng.
- Chi phí phần mềm dành cho việc bảo trì phần mềm thường lớn hơn chi phí xây dựng phần mềm.
Đối với những hệ thống đã hoạt động trong thời gian dài, thì chi phí bảo trì thường lớn gấp nhiều lần so với chi phí xây dựng.
Xấp xỉ 60% là chi phí xây dựng và 40% là chi phí kiểm thử. Đối với những phần mềm làm theo yêu cầu của khách hàng, chi phí mở rộng thường vượt quá chi phí xây dựng.
Chi phí biến đổi tuỳ thuộc vào từng loại hệ thống được xây dựng và các yêu cầu về đặc điểm của hệ thống như: hiệu năng và độ tin cậy của hệ thống.
Các phương pháp công nghệ phần mềm là gì?
Phương pháp công nghệ phần mềm bao gồm các mô hình hệ thống, các ký pháp, quy tắc, hướng dẫn thiết kế và quy trình để xây dựng phần mềm một cách dễ dàng, đảm bảo chất lượng cao và chi phí hiệu quả.
Một số phương pháp công nghệ phần mềm đã được đề xuất như:
- Phân tích hướng cấu trúc: Tập trung vào việc xác định các chức năng cơ bản của hệ thố
ng - Phương pháp hướng đối tượng: tập trung vào việc định nghĩa các đối tượng và sự cộng tác giữa chúng
- …
Thế nào là một phần mềm tốt?
Phần mềm phải đáp ứng các chức năng theo yêu cầu, có hiệu năng tốt, có khả năng bảo trì, đáng tin cậy, và được người sử dụng chấp nhận.
Khả năng bảo trì: phần mềm phải được điều chỉnh và mở rộng để thoả mãn những yêu cầu thay đổi.
Mức độ tin cậy: phần mềm phải được tin cậy, bảo mật và chính xác.
Hiệu quả: phần mềm có tốc độ xử lý nhanh, không nên sử dụng lãng phí tài nguyên của hệ thống.
Khả năng được chấp nhận: Phần mềm phải được người dùng chấp nhận với một số tiêu chí như dễ hiểu, dễ sử dụng và tương thích với các thiết bị, hệ thống khác.
Kết
Là một kỹ sư phần mềm giỏi, ngoài chuyên môn bạn cần có khả năng thích ứng, làm việc nghiêm túc, chuyên nghiệp, hiệu quả và tuân thủ quy trình phù hợp với công ty mình đang cống hiến. Dần dần tích lũy, dần dần phát triển, dần dần tạo ra càng nhiều giá trị. Sự nghiệp của bạn chắc chắn sẽ thăng tiến. Chúc các bạn thành công.
Leave a Reply