Một phần của loạt bài về |
Phát triển phần mềm |
---|
Hoạt động cốt lõi[ẩn]
|
Mô hình và hình mẫu[hiện] |
Phương pháp và framework[hiện] |
Các ngành hỗ trợ[hiện] |
Thực hành[hiện] |
Công cụ[hiện] |
Tiêu chuẩn và khối kiến thức[hiện] |
Bảng thuật ngữ[hiện] |
Sơ lược[hiện] |
Nhà phát triển phần mềm (tiếng Anh: software engineer) là người sử dụng các nguyên tắc của công nghệ phần mềm để thiết kế, phát triển, bảo trì, kiểm thử và đánh giá phần mềm cũng như hệ thống, giúp máy tính hoặc thiết bị chứa phần mềm hoạt động hiệu quả.
Nhà phát triển phần mềm là người ứng dụng các nguyên tắc của kỹ thuật phần mềm trong việc thiết kế, phát triển, bảo trì, kiểm tra và đánh giá phần mềm. Thuật ngữ lập trình viên đôi khi được sử dụng tương đương, nhưng có thể không phản ánh đầy đủ kiến thức kỹ thuật hoặc kỹ năng cần có.
Các kỹ thuật được áp dụng trong quá trình phát triển phần mềm bao gồm việc định nghĩa, triển khai, đánh giá, đo lường, quản lý, thay đổi và cải tiến quy trình phát triển. Đặc biệt, quản lý cấu hình phần mềm được sử dụng để kiểm soát hệ thống các thay đổi, duy trì tính toàn vẹn và khả năng truy nguyên của cấu hình và mã trong suốt vòng đời của hệ thống. Các quy trình hiện đại thường sử dụng các phiên bản phần mềm.
Lịch sử phát triển
Từ những năm 1960, kỹ thuật phần mềm đã được xem là một lĩnh vực kỹ thuật độc lập. Sự phát triển của kỹ thuật phần mềm thường đối mặt với nhiều thách thức, bao gồm việc theo kịp với phần cứng, vượt quá ngân sách, trễ hạn, yêu cầu gỡ lỗi, bảo trì phức tạp và không đáp ứng được nhu cầu của người dùng, hoặc thậm chí không hoàn thành. Năm 1968, NATO đã tổ chức hội nghị Kỹ thuật phần mềm đầu tiên để thảo luận về các vấn đề liên quan đến phần mềm và thiết lập các hướng dẫn cũng như thực tiễn tốt nhất cho phát triển phần mềm.
Hiện nay, ISO/IEC JTC 1/SC 7 là tổ chức được công nhận rộng rãi về kỹ thuật phần mềm và xuất bản tài liệu Software Engineering Body of Knowledge (SWEBOK). Kỹ thuật phần mềm được coi là một trong những lĩnh vực chính của ngành máy tính.
Các tranh cãi về định nghĩa và thuật ngữ
Các định nghĩa nổi bật về kỹ sư phần mềm bao gồm:
- 'Áp dụng một cách hệ thống các kiến thức, phương pháp và kỹ thuật khoa học để thiết kế, triển khai, kiểm tra và tài liệu hóa phần mềm'—Cục Thống kê Lao động—IEEE Kỹ thuật hệ thống và phần mềm – Từ vựng
- 'Sử dụng một phương pháp tiếp cận hệ thống, có kỷ luật và có thể đo lường được để phát triển, vận hành và bảo trì phần mềm'—IEEE Từ điển tiêu chuẩn về thuật ngữ kỹ thuật phần mềm
- 'Một lĩnh vực kỹ thuật bao gồm tất cả các khía cạnh của việc sản xuất phần mềm'—Ian Sommerville
- 'Áp dụng các nguyên tắc kỹ thuật hợp lý để có được phần mềm tin cậy, hiệu quả về chi phí và hoạt động tốt trên các hệ thống 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ỉ là viết mã, mà còn là tất cả các công cụ và quy trình mà một tổ chức sử dụng để phát triển 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.''—Kỹ thuật phần mềm tại Google
Thuật ngữ này cũng được sử dụng trong các ngữ cảnh ít chính thức hơn:
- Thuật ngữ không chính thức hiện đại cho một loạt các hoạt động trước đây được gọi là lập trình máy tính và phân tích hệ thống;
- Thuật ngữ tổng quát 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 lập trình máy tính, vốn được nghiên cứu chính thức như một phân ngành của khoa học máy tính;
- Thuật ngữ thể hiện sự ủng hộ cho một phương pháp tiếp cận cụ thể đối với lập trình máy tính, xem nó như một kỹ thuật hơn là nghệ thuật hay nghề thủ công, và khuyến khích việc áp dụng các phương pháp thực hành được đề xuất.
- Cổng thông tin Khoa học máy tính
- 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
Xem thêm
- Hướng dẫn về Cơ sở Kiến thức Kỹ thuật Phần mềm (SWEBOK Guide): Phiên bản 3.0. Pierre Bourque, Richard E. Fairley (biên soạn). IEEE Computer Society. 2014. ISBN 978-0-7695-5166-1.Quản lý CS1: khác (liên kết)
- Pressman, Roger S (2009). Kỹ thuật phần mềm: Cách tiếp cận của nhà thực hành (ấn bản 7). Boston, Mass: McGraw-Hill. ISBN 978-0-07-337597-7.
- Sommerville, Ian (2010) [2010]. Kỹ thuật phần mềm (ấn bản 9). Harlow, England: Pearson Education. ISBN 978-0-13-703515-1.
- Jalote, Pankaj (2005) [1991]. Cách tiếp cận tích hợp với kỹ thuật phần mềm (ấn bản 3). Springer. ISBN 978-0-387-20881-7.
- Bruegge, Bernd; Dutoit, Allen (2009). Kỹ thuật phần mềm hướng đối tượng: sử dụng UML, mẫu và Java (ấn bản 3). Prentice Hall. ISBN 978-0-13-606125-0.
- Oshana, Robert (21 tháng 6 năm 2019). Kỹ thuật phần mềm cho hệ thống nhúng: phương pháp, kỹ thuật thực tiễn và ứng dụng . Kidlington, Oxford, Vương quốc Anh. ISBN 978-0-12-809433-4.
Các liên kết bên ngoài
- Hướng dẫn về Cơ sở Kiến thức Kỹ thuật Phần mềm
- Khung vòng đời phát triển hệ thống mở và phần mềm Lưu trữ 2010-07-18 tại Wayback Machine OpenSDLC.org với Creative Commons SDLC tích hợp
- Viện Kỹ thuật Phần mềm Carnegie Mellon
Công nghệ phần mềm |
---|
Những lĩnh vực chính của khoa học máy tính |
---|