深色模式
What is Software Engineering! 什么是软件工程?🖥️
欢迎观看《什么是软件工程》课程!🎉
在观看此视频后,您将能够:
定义 软件工程 📝
列出 软件工程师 的职责 👨💻
比较和对比 软件开发人员 和 软件工程师 🆚
🌍 软件工程的定义
软件工程 是将科学原理应用于软件的设计与创建。该领域采用系统化的方法来收集和分析 业务需求,从而设计、构建和测试软件应用程序,以满足这些业务需求。🔍
📜 软件工程的发展历程
早期阶段
在 1950年代末期,计算机技术开始兴起,软件工程作为一个学科还没有明确的定义。
随着时间推移,软件工程逐渐发展为一个现代化的工程领域。
1960年代
软件工程 作为一个学科正式诞生,并随着新技术的不断发展,软件开发的方法变得更加科学化。
软件工程的趋势从 临时编程 转向了 更正式和标准化的方法。
1970-1980年代
初期的 软件创建 并没有明确的开发流程。
随着计算机的广泛应用,软件成为了生活中越来越重要的一部分,但软件开发的低效性使得开发过程难以跟上快速增长的需求,导致了 “软件危机”。
软件开发常常超预算、进度滞后,代码存在很多 bug,难以管理。
更糟糕的是,当老旧的软件方案开发完成时,更新的技术和更强大的系统已经问世,迫使软件工程师重新构建代码或彻底重新设计系统。
软件危机 (Software Crisis)
这一问题在1960年代中期至1980年代中期之间尤为严重。
小型软件系统的开发方案无法扩展到大规模、复杂项目中。📉
⚙️ 解决方案与现代进展
虽然一些问题仍然存在,但通过持续应用 工程学原理,软件开发过程已得到了显著改善。💡
计算资源 已经更加普及和标准化。
标准化的软件开发方法 使得能够开发出 大规模且可扩展的复杂解决方案。
软件危机的解决 方案包括将杂乱的编程工作转变为一种有组织的 工程学学科。
CASE工具的兴起
1980年代中期,计算机辅助软件工程 (CASE) 工具的增长,进一步缓解了软件危机。
CASE工具可分为六大类:
业务分析与建模
开发工具(如调试环境)
验证与确认工具
配置管理工具
度量与测量工具
项目管理工具
👨💻 软件工程师与软件开发人员的区别
虽然 “软件工程师” 和 “软件开发人员” 常常被交替使用,但它们之间存在细微的差异。🔍
| 角色 | 软件工程师 | 软件开发人员 |
|---|---|---|
| 知识面 | 软件工程师的知识面更广,采取系统化、大局观的方式思考软件开发。 | 开发人员的知识面通常较窄,可能更多集中在实现某些功能。 |
| 任务目标 | 软件工程师专注于设计、构建、维护完整的 软件系统。 | 开发人员专注于编写 特定功能的代码,实现功能需求。 |
| 工作规模 | 通常参与 大规模项目,注重软件的整体架构与结构设计。 | 通常负责具体的代码编写,解决特定的开发问题。 |
总结:
- 软件工程师 负责设计和构建整个系统,而 软件开发人员 专注于实现特定的功能。🛠️

📝 软件工程师的职责
软件工程师的职责包括:
设计、构建 和 维护 软件系统。
编写和测试代码,确保软件质量。
与利益相关者(如客户、第三方软件供应商、安全专家及其他团队成员)进行沟通与协作。🤝
通过采纳科学的、标准化的 软件开发方法,现代软件的设计与开发过程变得更加高效。🧑🔬
🔄 软件开发生命周期 (SDLC)
软件开发生命周期(SDLC)是现代软件开发的基础框架,它定义了开发高质量软件所需的步骤。在本模块的后续部分,我们将详细讨论 SDLC、高质量软件的特性 以及 软件工程领域中的常见角色。
🎯 视频学习总结
在本视频中,你了解到:
软件工程 是一种系统化的设计与开发软件的方法。
软件工程师的职责 包括设计、构建和维护软件系统,编写和测试代码,并与各方利益相关者沟通。
软件工程师 构建的是 完整的系统,而 软件开发人员 实现的是系统中的特定功能。
通过学习软件工程,你将能够更好地理解如何应用工程学原理开发出高质量的软件。📈