软件工程是 采用工程的概念、原理、技术和方法来开发、维护软件,将管理技术与开发技术有效地结合起来,以计算机科学与技术学科为基础,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才的一门学科。它主要研究计算机各类软件的构造、设计、开发方法、测试、维护等相关的知识和技术,涉及程序设计语言、数据库、软件开发工具、系统平台、设计模式等多方面,进行软件需求分析、软件设计、软件测试、软件维护等。
软件工程的核心目标是研究和开发与软件开发各个阶段相关的高效、实用的方法、技术和工具,追求成本效益比,即在最小成本下实现利益最大化,同时追求“足够好”的软件质量,满足用户需求即可,避免无止境追求完美而提高成本。常见的软件过程模型包括瀑布模型、敏捷模型(如Scrum)、Kanban模型、XP模型(极限编程)和螺旋模型等,这些模型指导了软件开发的各个阶段,确保开发过程有序进行。
软件工程专业的课程内容非常广泛,不仅包括通识教育、基础学科知识,还涵盖了专业核心知识以及实践教学。学生需要掌握计算机科学的基础知识及编程的基本功,更重要的是要知道在什么情况下应该用什么样的技术可以最好地解决问题,更关注开发大型软件系统的组织方法和流程,强调的是软件开发的工程性。
总的来说,软件工程是研究和应用工程化方法来构建和维护高质量、高效、可靠的软件系统的学科,涉及软件开发的整个生命周期,包括需求分析、设计、编码、测试、部署和维护。这个专业的目标是培养能够在软件开发和维护领域胜任各种任务的高级专门人才。