软件工程的特性可以从多个角度进行总结,以下是一些关键的特性:
理论与实践结合:
软件工程不仅注重理论知识的学习,如数据结构、算法、操作系统等,还强调实践技能的培养,如编程、测试、项目管理等。
跨学科性:
软件工程专业融合了计算机科学、数学、工程学、管理学等多个学科的知识,使学生具备全面的专业素养。
创新与实践:
软件工程专业鼓励学生进行创新思维,通过参与实际项目,将理论知识应用于解决实际问题中。
关注大型程序的构造:
软件工程关注于大型程度的构造,通常涉及多人合作、长时间开发的大型系统。
控制复杂性:
软件工程的中心课题是控制复杂性,通过分解问题,使各部分之间保持简单的通信关系,从而管理复杂性。
软件经常变化:
软件必须适应现实世界的变化,开发过程中必须考虑软件将来可能的变化。
开发软件的效率非常重要:
社会对新应用系统的需求不断增加,软件供不应求,因此开发软件的效率成为关键课题。
和谐地合作是开发软件的关键:
软件开发需要多人协同工作,必须明确每个人的责任和相互通信的方法。
软件必须有效地支持它的用户:
软件开发的目的是支持用户的工作,必须仔细研究用户,确定适当的功能需求、可用性要求及其他质量要求。
由具有一种文化背景的人替具有另一种文化背景的人创造产品:
软件工程师通常不是应用领域的专家,但必须为这些领域开发应用系统,缺乏应用领域的相关知识是软件开发项目出现问题的常见原因。
产品化:
交付符合质量标准的组件、构件和系统。
过程决定结果:
流程质量决定产品质量,关注过程胜过关注人,也非常关注过程评估和过程改进。
阶段性明确:
需求评审、设计评审、编程、测试等阶段分明,严格控制变更。
责任明确:
角色定义清楚,分工细致。
文档化:
强调规范的文档,大量的文档模板。
计划性强:
完整的计划,严格控制变更。
注重项目管理:
围绕项目开展管理工作,包括风险预防、里程碑控制和关键路径法等。
以顾客为中心的全面质量管理:
预防为主,检验为辅,即缺陷预防思想。
这些特性共同构成了软件工程的核心,旨在以系统化、规范化、量化的方式开发、运行和维护软件,确保软件的质量和效率。