软件危机与软件工程概念:殷仁昆教授讲解
需积分: 32 10 浏览量
更新于2024-08-14
收藏 196KB PPT 举报
"这篇内容来自清华大学郑人杰和殷仁昆教授的《软件工程讲义》,探讨了软件工程的起源及其重要概念。"
在计算机科学领域,软件工程是一门专门应对“软件危机”的学科。软件危机指的是在软件开发过程中普遍遇到的一系列问题,如软件成本过高、开发周期延误、质量难以保证以及后期维护困难。这些问题的根本原因在于开发人员创建的软件无法满足用户的需求,这既可能涉及到人的因素,如沟通不足或理解偏差,也可能涉及到技术问题,如设计缺陷或方法不恰当。
软件工程的出现是为了提供一套系统化、规范化的解决方案。1968年,Bauer在北大西洋公约组织会议上首次提出“软件工程”这一概念,强调以经济高效的方式开发可靠的软件。随着时间的推移,国际电气和电子工程师协会(IEEE)对软件工程的定义进行了多次修订,以反映其在开发、运行、维护和修复软件方面的系统方法和工程化应用。
在软件工程实践中,有一套完整的框架来指导开发过程。该框架包括软件工程的目标,如提高软件的可用性、正确性和经济性;软件工程过程,涵盖需求获取、分析、设计、实现、测试、确认和维护;以及软件工程的原则,如选择合适的开发模型、采用适当的设计方法、提供高质量的工程支持,并重视管理。
软件工程过程中的关键环节涉及多种建模方法,如结构化分析时的数据流图、实体关系图、状态迁移图和数据字典;结构化设计时将数据流图转化为系统结构图;结构化程序设计时的程序流程图、N-S图和PAD图;还有程序环路复杂性计算、测试用例设计(逻辑覆盖、循环测试、基本路径覆盖、因果图)、可靠性分析以及后期的维护。随着技术发展,OMT和UML等现代建模语言也成为了软件工程的重要工具,如对象模型、动态模型(状态图、事件追踪图)、用例图、类图、顺序图和活动图等。
此外,软件被分为应用软件、系统软件和支撑软件三大类,它们与硬件、数据库、人以及各种过程共同构成了计算机系统。软件的发展经历了从早期的程序设计阶段到程序系统阶段,最终演变为现在的软件工程阶段。
软件工程是一个综合性的学科,它不仅关注技术层面,还重视管理和工程方法,旨在解决软件开发中的实际问题,提高软件质量和效率,确保软件能够满足用户需求并适应不断变化的环境。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-05-12 上传
魔屋
- 粉丝: 26
- 资源: 2万+
最新资源
- Angular程序高效加载与展示海量Excel数据技巧
- Argos客户端开发流程及Vue配置指南
- 基于源码的PHP Webshell审查工具介绍
- Mina任务部署Rpush教程与实践指南
- 密歇根大学主题新标签页壁纸与多功能扩展
- Golang编程入门:基础代码学习教程
- Aplysia吸引子分析MATLAB代码套件解读
- 程序性竞争问题解决实践指南
- lyra: Rust语言实现的特征提取POC功能
- Chrome扩展:NBA全明星新标签壁纸
- 探索通用Lisp用户空间文件系统clufs_0.7
- dheap: Haxe实现的高效D-ary堆算法
- 利用BladeRF实现简易VNA频率响应分析工具
- 深度解析Amazon SQS在C#中的应用实践
- 正义联盟计划管理系统:udemy-heroes-demo-09
- JavaScript语法jsonpointer替代实现介绍