Theo IBM Research: “Phát triển phần mềm đề cập đến một bộ khoa học máy tính liên quan đến quá trình tạo, thiết kế, triển khai và bảo trì phần mềm.”
Bản thân phần mềm là một tập hợp các hướng dẫn hoặc chương trình cho máy tính biết phải làm gì. Nó độc lập với phần cứng và giúp máy tính có thể lập trình được. Có ba loại chính:
Phần mềm hệ thống để cung cấp chức năng cơ bản như hệ điều hành, quản lý đĩa, tiện ích, quản lý phần cứng và các nhu cầu hoạt động khác.
Phần mềm lập trình cung cấp cho người lập trình các công cụ như trình soạn thảo văn bản, trình biên dịch, liên kết, otgger và các công cụ khác để tạo mã.
>>> Tìm hiểu chi tiết: Top 13 bài viết về các phần mềm giải trí và tiện ích thú vị cho pc
Phần mềm ứng dụng (ứng dụng hoặc ứng dụng) để giúp người dùng hoàn thành công việc. Ví dụ bao gồm bộ dụng cụ năng suất văn phòng, phần mềm quản lý dữ liệu, trình phát đa phương tiện và phần mềm bảo mật. Các ứng dụng cũng đề cập đến các ứng dụng web và di động, như những ứng dụng được sử dụng để mua Amazon.com, trò chuyện với Facebook hoặc đăng ảnh trên Instagram.1
Loại thứ tư có thể có là phần mềm nhúng. Phần mềm hệ thống nhúng được sử dụng để điều khiển máy móc và thiết bị thường không được coi là máy tính – mạng viễn thông, ô tô, rô bốt công nghiệp, v.v. Các thiết bị này và phần mềm của chúng có thể được kết nối như một phần của Internet vạn vật (IoT) .2
Việc phát triển phần mềm chủ yếu được thực hiện bởi các lập trình viên, kỹ sư phần mềm và nhà phát triển phần mềm. Các vai trò này tương tác và chồng chéo lên nhau, và động lực giữa chúng rất khác nhau giữa các bộ phận phát triển và cộng đồng.
Lập trình viên, hoặc người lập trình, viết mã nguồn cho máy tính phần mềm cho các tác vụ cụ thể như hợp nhất cơ sở dữ liệu, xử lý đơn đặt hàng trực tuyến, định tuyến giao tiếp, thực hiện tìm kiếm hoặc hiển thị văn bản và đồ họa. Các lập trình viên thường giải thích các hướng dẫn từ các nhà phát triển và kỹ sư phần mềm và sử dụng các ngôn ngữ lập trình như C hoặc Java để thực thi chúng.
Các kỹ sư phần mềm áp dụng các nguyên tắc thiết kế để tạo ra phần mềm và hệ thống để giải quyết vấn đề. Họ sử dụng ngôn ngữ mô hình hóa và các công cụ khác để phát triển các giải pháp thường có thể được áp dụng cho các vấn đề nói chung, trái ngược với một giải pháp đơn giản cho một trường hợp hoặc khách hàng cụ thể. Các giải pháp phần mềm và phần cứng tuân theo phương pháp khoa học và phải hoạt động trong thế giới thực, như với cầu hoặc thang máy.
>>> Tìm hiểu chi tiết: https://digitalfuture.vn/tong-hop-bai-viet-hay-nhat-ve-cac-phan-mem-ung-dung-danh-cho-pc
Các nhà phát triển phần mềm đóng một vai trò ít chính thức hơn các kỹ sư và có thể liên kết chặt chẽ với các lĩnh vực cụ thể của dự án, bao gồm cả mã hóa. Đồng thời, họ quản lý vòng đời phát triển phần mềm tổng thể, bao gồm làm việc trong các nhóm chức năng để chuyển các yêu cầu thành các chức năng, quản lý các nhóm phát triển và quy trình cũng như tiến hành kiểm tra và bảo trì phần mềm3.
Công việc phát triển phần mềm không giới hạn ở các lập trình viên hoặc nhóm phát triển. Các chuyên gia như nhà khoa học, nhà sản xuất thiết bị và nhà sản xuất phần cứng cũng tạo ra mã phần mềm, ngay cả khi họ chủ yếu không phải là nhà phát triển phần mềm. Nó cũng không giới hạn trong các ngành công nghệ thông tin truyền thống như các doanh nghiệp phần mềm hoặc bán dẫn. Trên thực tế, theo Viện Brookings, các doanh nghiệp này “chiếm chưa đến một nửa số công ty phát triển phần mềm”.
Một sự khác biệt quan trọng là phát triển phần mềm tùy chỉnh so với phát triển phần mềm thương mại. Phát triển phần mềm tùy chỉnh là quá trình thiết kế, xây dựng, triển khai và bảo trì phần mềm cho một nhóm người dùng, chức năng hoặc tổ chức cụ thể. Ngược lại, phần mềm thương mại có sẵn (COTS) được thiết kế cho một loạt các yêu cầu, cho phép nó được đóng gói và bán và phân phối thương mại.