1 软件的概念
Software=Programs + Data + Documents(程序+数据+文档)
• 程序: 是按事先设计的功能和性能要求执行的指令序列
• 数据: 是使程序能正常操纵信息的数据
• 文档: 是与程序开发,维护和使用有关的图文材料
1.1 软件的分类
按功能划分: 系统软件 支撑软件 应用软件
按规模划分:
1.2 软件的性质
– 难以描述性
– 不可见性
– 复杂性
– 变化性
– 风险性
– 强合作性
– 易于副本的大批量生产
– 与硬件不同,软件无明显制造过程,无硬件那样的机械磨损及老化问题
2 软件危机
1967年NATO (北大西洋公约组织) 的研究组首次提出
软件危机: 在软件开发和维护过程中存在的周期长、成本高、质量低、维护难的问题
2.1 软件开发的问题
• 缺乏良好的软件质量评测手段
• 缺乏团队开发的合作、协调能力
• 软件开发过程不规范
• 软件可维护性差
• 软件可复用性差
• 缺乏自动化工具协助开发
• 缺乏变更管理措施
• 缺乏风险管理手段
2.2 软件危机面对的问题
–艺术 vs.标准化
– 错误的发现
– 软件需求获取
– 软件支持和维护
– 开发速度 vs. 市场需求
– 开发周期过长、开发成本过高
– 研发风险
– 软件Trouble
– 软件开发中的复杂的协作(人员,问题,过程)
3 软件工程
1967年NATO的研究组首次提出
1968年在德国召开的NATO软件工程会议的认可了“软件工程”概念
工程是应用知识并产生价值的途径
软件工程是以质量为核心,为了经济地开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,涉及到软件过程、 项目管理、开发方法、软件复用、软件度量、开发工具,甚至企业文化等各个方面。
3.2 软件工程目标
– 核心目标是保证和提高软件质量
– 达到软件所要求的功能
– 按时完成开发工作,及时交付使用
– 付出较低的开发成本
– 取得较好的软件性能
– 开发的软件具有较高的可靠性
– 开发的软件维护简单、容易
软件工程目标之间存在着互补和互斥的关系
4 软件生命周期
(软件生存周期,Lifecycle)
软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。