当前位置:文档之家› 中国计量大学软件工程pdf之1-软件工程

中国计量大学软件工程pdf之1-软件工程


3. 实行严格的产品控制 目前主要实行基准配置管理。基准配 置是指经过阶段评审后的软件配置成 分,如各个阶段产生的文档或程序代 码。 对涉及基准配置的修改,必须经过严 格的评审,通过后才能实施修改。
4. 采用现代程序设计技术 实践表明:采用先进的技术既可提高 软件开发的效率,又可提高软件维护 的效率。 80年代及之前:结构化分析、设计技 术 90年代:面向对象分析、设计技术
第1章 软件工程
Байду номын сангаас
1.1
软件危机
1.1.1 软件工程发展历程 1 .程序设计阶段(50至60年代) -个体化软件时代 2.程序系统阶段(60至70年 代)-软件作坊时代 3.软件工程阶段
1.1.2 软件危机的含义
软件危机是指在计算机软件的开 发和维护过程中所遇到的一系列严重 问题。主要是两个问题:
1. 如何开发软件,怎样满足对软件的
日益增长的需求。 2.如何维护数量不断膨胀的已有软 件。
软件危机的主要表现
对软件开发成本和进度的估计不准确 用户不满意 软件质量不高、可靠性差 软件常常不可维护、错误难以改正 缺乏适当的文档资料 软件成本占系统总成本的比例逐年上升 软件开发速度跟不上计算机发展速度
软件工程过程是为了获得高质量的软件
所需要完成的一系列任务的框架,它规 定了完成各项任务的工作步骤。 软件工程过程定义了: 方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑
3.传统方法学 也叫生命周期方法学或结构化范型。 把软件生命周期划分为若干个相对独立 的阶段,每个阶段完成一些确定的任 务;基本按顺序完成各阶段任务,在完 成每个阶段任务时采用结构化技术和适 当的辅助工具;在每个阶段结束时都进 行严格的技术审查和管理复审。
4.面向对象方法学 把数据与对数据的操作结合在一起 面向对象方法学=对象+类+继承+用 消息通讯 面向对象方法学简化了软件的开发和维 护工作,提高了软件的可重用性。
(1) 没有按照软件生命周期开发步骤; (2)忽视软件配置。
1.1.4 消除软件危机的途径 1. 技术措施 使用更好的软件开发方法和开发工具。 2. 组织管理措施 软件开发不是某种个体劳动的神秘技巧, 而应该是一种组织良好、管理严密、各 类人员协同配合、共同完成的工程项 目。
1.2
软件工程
1.2.1 什么是软件工程 软件工程是:指导计算机软件开发 和维护的工程学科。它采用工程的 概念、原理、技术和方法来开发与 维护软件,把经过时间考验而证明 正确的管理技术和当前能够得到的 最好的技术方法结合起来。
7. 承认不断改进软件工程实践的必要性 遵循前6条基本原理,就能够按照当 代软件工程基本原理实现软件的工程 化生产,但不能保证赶上时代前进的 步伐。 积极主动采纳新的软件技术,且不断 总结经验。
1.3 软件工程包含的领域 1.早期软件工程的内容 内容=技术+管理 也就是说:
软件工程是一门交叉学科
5. 结果应能清楚地审查 软件产品是看不见、摸不着的逻辑 产品,开发过程难以评价和管理。 根据软件开发项目的总目标及完成 期限,规定开发组织的责任和产品 标准,使所得的结果能够清楚地审 查。
6. 开发小组的人员应该少而精 开发小组人员的素质和数量是影 响软件产品质量和开发效率的重 要因素。 开发小组人员数目的增加,使相 互交流复杂、费用增加。
软件工程的其它定义: Boehm:运用现代科学技术知识来设计 并构造计算机程序及为开发、运行和维 护这些程序所必需的相关文件资料。 IEEE: 软件工程是开发、运行、维护和 修复软件的系统方法。 Fritz Bauer:建立并使用完善的工程化原 则,以较经济的手段获得能在实际机器 上有效运行的可靠软件的一系列方法。
1.2.2 软件工程的基本原理 1. 用分阶段的生命周期计划严格管理 经统计表明,不成功的软件项目中 有一半左右是由于计划不周造成的。 Boehm认为,在软件的整个生命周 期中应制定并严格执行六类计划:项 目概要计划、里程碑计划、项目控制 计划、产品控制计划、验证计划、运 行维护计划。
2. 坚持进行阶段评审 大部分错误是在编码之前造成的 错误发现与改正得越晚,所需付 出的代价越高。 因此,在每个阶段都进行严格的评 审,以便尽早发现在软件开发过程 的错误。
1.1.3 产生软件危机的原因 1. 与软件本身的特点有关 (1) 在写出程序代码并在计算机运 行之前,软件开发过程的进展情况 较难衡量,软件开发的质量也较难 评价。因此,软件开发过程相当困 难。 (2) 软件维护通常意味着改正或修 改原来的设计,客观上使软件较难 维护。
2. 在软件开发过程中,或多或少地 采用了错误的方法和技术。
软件工程的主要研究内容
软件开发技术:软件开发方法学
软件开发过程 软件工具和软件工程环境
软件工程管理:软件管理学
软件经济学 软件心理学
2.软件工程知识体系

软件需求 软件设计 软件构建 软件测试 软件维护 软件配置管理 软件工程管理 软件工程过程 软件工程工具和方法 软件质量
相关主题