Kỹ sư phần mềm

Kỹ sư phần mềm (tiếng Anh: software engineer) là người áp dụng các nguyên tắc/nguyên lý của công nghệ phần mềm vào việc thiết kế, phát triển, bảo trì, kiểm thử, và đánh giá phần mềm và hệ thống khiến máy tính hay bất cứ thứ gì chứa phần mềm đó sẽ hoạt động.

Kỹ sư phần mềm là người áp dụng các nguyên tắc của kỹ thuật phần mềm để thiết kế, phát triển, bảo trì, kiểm tra và đánh giá phần mềm máy tính. Thuật ngữ lập trình viên đôi khi được sử dụng như một từ đồng nghĩa, nhưng cũng có thể thiếu hàm ý về giáo dục kỹ thuật hoặc kỹ năng.

Các kỹ thuật được sử dụng để thông báo cho quá trình phát triển phần mềm bao gồm định nghĩa, triển khai, đánh giá, đo lường, quản lý, thay đổi và cải tiến chính trong quy trình phát triển phần mềm. Nó chủ yếu sử dụng quản lý cấu hình phần mềm

Ngày nay, ISO/IEC JTC 1/SC 7 được chấp nhận chung về kỹ thuật phần mềm thu thập và được xuất bản dưới dạng Software Engineering Body of Knowledge (SWEBOK). Kỹ thuật phần mềm được coi là một trong những ngành máy tính chính.

Những tranh cãi về định nghĩa và thuật ngữ
Các định nghĩa đáng chú ý về kỹ sư phần mềm bao gồm:

"Việc áp dụng có hệ thống các kiến thức, phương pháp và kinh nghiệm khoa học và công nghệ vào việc thiết kế, triển khai, thử nghiệm và tài liệu hóa phần mềm"—The Bureau of Labor Statistics—IEEE Systems and software engineering – Vocabulary
"Việc áp dụng một cách tiếp cận có hệ thống, có kỷ luật, có thể định lượng được để phát triển, vận hành và bảo trì phần mềm"—IEEE Standard Glossary of Software Engineering Terminology
"một ngành kỹ thuật liên quan đến tất cả các khía cạnh của sản xuất phần mềm"—Ian Sommerville
"thiết lập và sử dụng các nguyên tắc kỹ thuật hợp lý để có được một phần mềm đáng tin cậy, có tính kinh tế và hoạt động hiệu quả trên các máy thực"—Fritz Bauer
"một nhánh của khoa học máy tính liên quan đến việc thiết kế, triển khai và bảo trì các chương trình máy tính phức tạp"—Merriam-Webster
"'kỹ sư phần mềm 'không chỉ bao gồm hành động viết mã, mà tất cả các công cụ và quy trình mà một tổ chức sử dụng để xây dựng và duy trì mã đó theo thời gian. [...] Kỹ sư phần mềm có thể được coi là 'lập trình được tích hợp theo thời gian.'"—Software Engineering at Google

Thuật ngữ này cũng đã được sử dụng một cách ít chính thức hơn:

là thuật ngữ không chính thức đương thời cho một loạt các hoạt động mà trước đây được gọi là lập trình máy tính và phân tích hệ thống;
là thuật ngữ rộng cho tất cả các khía cạnh của thực hành lập trình máy tính, trái ngược với lý thuyết về lập trình máy tính, vốn được chính thức nghiên cứu như một phân ngành của khoa học máy tính;
là thuật ngữ thể hiện sự ủng hộ của một phương pháp tiếp cận cụ thể đối với lập trình máy tính, một phương pháp thúc giục rằng nó được coi như một bộ môn kỹ thuật hơn là nghệ thuật hay một nghề thủ công và ủng hộ việc mã hóa các phương pháp thực hành được đề xuất.

Xem thêm

Kỹ sư khoa học máy tính
Kỹ sư công nghệ phần mềm
Kỹ sư tư vấn phần mềm

Tham khảo

Đọc thêm








Liên kết ngoài

Guide to the Software Engineering Body of Knowledge
The Open Systems Engineering and Software Development Life Cycle Framework OpenSDLC.org the integrated Creative Commons SDLC
Software Engineering Institute Carnegie Mellon