01软件危机与软件工程
软件工程
第一章 软件工程概述1.1 软件危机 1.2 软件工程 1.3 软件生命周期 1.4 软件过程
软件工程
1.1 软件危机什么是软件? 什么是软件?软件是计算机系统中与硬件相互依存的另一部 是程序、数据及其相关文档的完整集合。 分,是程序、数据及其相关文档的完整集合。 程序是能够完成预定功能和性能的可执行的指 令序列。 令序列。 数据是使程序能够适当地处理信息的数据结构。 数据是使程序能够适当地处理信息的数据结构。 文档是开发、 文档是开发、使用和维护程序所需要的图文资 料。
什么是软件危机? 什么是软件危机?软件危机是指在计算机软件的开发和维护过程 中所遇到的一系列严重问题。 中所遇到的一系列严重问题。
软件工程
软件危机的主要特征(60年代末全面爆发) 软件危机的主要特征(60年代末全面爆发) 年代末全面爆发软件开发成本和进度估计很不准确; 软件开发成本和进度估计很不准确; 软件需求不充分,用户不满意; 软件需求不充分,用户不满意; 软件质量无保证; 软件质量无保证;60年代末,美国的多次火箭发射失败,主要是由软件错误造成。 60年代末,美国的多次火箭发射失败,主要是由软件错误造成。 年代末 阿脱拉斯火箭被迫炸毁(连字符错误),损失1850万美元。 阿脱拉斯火箭被迫炸毁(连字符错误),损失1850万美元。 ),损失1850万美元
软件系统维护难度大; 软件系统维护难度大; 软件开发过程无规范(无文档资料); 软件开发过程无规范(无文档资料); ……
软件工程
软件的特点1、软件是一种逻辑实体,而不是具体的物理实体。因而 软件是一种逻辑实体,而不是具体的物理实体。 它具有抽象性。 它具有抽象性。 软件的生产与硬件不同, 2、软件的生产与硬件不同,在它的开发过程中没有明显 的制造过程。 的制造过程。 在软件的运行和使用期间,没有硬件那样的机械磨损, 3、在软件的运行和使用期间,没有硬件那样的机械磨损, 老化问题。(软件退化,软件维护) 。(软件退化 老化问题。(软件退化,软件维护) 失效率曲线 软件的开发和运行常受到计算机系统的限制, 4、软件的开发和运行常受到计算机系统的限制,对计算 机系统有着不同程度的依赖性。(软件移植) 。(软件移植 机系统有着不同程度的依赖性。(软件移植)
软件工程
5、软件的开发至今尚未完全摆脱手工艺的开发方式。 软件的开发至今尚未完全摆脱手工艺的开发方式。 高强度的脑力劳动) (高强度的脑力劳动) 6、软件本身是复杂的。 软件本身是复杂的。 实际问题的复杂性。 实际问题的复杂性。 程序逻辑结构的复杂性。 程序逻
辑结构的复杂性。 7、软件成本相当昂贵。 软件成本相当昂贵。 硬、软件成本比例变化图 8、软件工作涉及到社会因素。(涉及机构、体制、管 软件工作涉及到社会因素。(涉及机构、体制、 。(涉及机构 理方式、观念、心理等。) 理方式、观念、心理等。)
软件工程
失效率曲线
软件工程
1995硬、软件成本比例变化
软件工程
软件发展阶段 程序设计阶段 — 50至60年代 50至60年代 程序系统阶段 — 60至70年代 60至70年代 软件工程阶段 — 70年代以后 70年代以后
软件工程
时期 程序设计 特点 软件所指 程序设计语言 软件工作范围 需求者 开发组织 软件规模 决定质量因素 开发技术手段 维护责任者 硬件特征 软件特征 程序 汇编及机器语言 程序编写 程序设计者本人 个人 小型 个人程序设计技术 子程序、程序库 程序设计者 价格高,存储容量 小,工作可靠性差 完全不受重视 程序及说明书 高级语言 包括设计和测试 少数用户 开发小组 中、小型 小组技术水平 结构化程序设计 开发小组 程序、文档及数据 软件语言* 软件生存期 市场用户 开发小组及大、中型软件 开发机构 大、中、小型 管理水平 数据库,开发工具,开发 环境,工程化开发方法, 标准和规范 专职维护人员 程序系统 软件工程
降价,速度、存储容量 向超高速、大容量、微型 及可靠性有明显提高 化及网络化方向发展 开发技术有进步,但未获 软件技术的发展不能满 突破性进展,价格高,未 足需求,出现软件危机 完全摆脱软件危机
软件工程
两条著名的定律:墨菲定律与卡尔特汉定律 两条著名的定律:墨菲(Murphy)定律: 墨菲(Murphy)定律:工作比想象的更为复杂; 工作比想象的更为复杂; 花费的时间比预计的更长; 花费的时间比预计的更长; 所需的费用比设想的更多; 所需的费用比设想的更多; 毛病能够出到什么地方就一定会出到那个地方。 毛病能够出到什么地方就一定会出到那个地方。
卡尔特汉(Kaltuhan)定律: 卡尔特汉(Kaltuhan)定律:墨菲是个乐观主义者。 墨菲是个乐观主义者。
软件工程
软件危机的部分原因分析 软件规模大。 软件规模大。 70年代末穿梭号宇宙飞船的软件包含 70年代末穿梭号宇宙飞船的软件包含 4000万行目标代码 万行目标代码。 4000万行目标代码。 软件复杂性高。 软件复杂性高。 软件的改正随开发阶段的推进而越来越困难。 软件的改正随开发阶段的推进而越来越困难。图:改正一个问题需付出的代价
早期软件开发的个体化特点,使相当多的软件 早期软件开发的个体化特点, 开发人员忽视软件需求的重要性, 开发人员忽视软件需求的重要性,轻视软件维 护。
……
软件工程
改正一个问题需付出的代价改正 2000 一个 1000 问题 的估 计费 200 用
5.0 改正 2.5 一个问题 估计 的工 0.5 作量
20 (美元) 美元) 需 求 分 析 结 构 设 计 详 编集 系 现 细 码成 统 场 设 测 测 试 试 计
(人天) 0.05 人天)
软件工程
解决软件危机的途径 组织管理措施– 软件开发应该是一种组织良好、管理严密、各类人 软件开发应该是一种组织良好、管理严密、 员协同配合、共同完成的工程项目。 员协同配合、共同完成的工程项目。必须充分吸取 和借鉴人类长期以来从事各种工程项目所积累的行 之有效的管理经验。 之有效的管理经验。
技术措施– 方法 – 工具
软件工程
1.2
软件工程 (software engineering)
“软件工程”术语首次出现:1968年NATO会议。 软件工程”术语首次出现:1968年NATO会议 会议。 Organization) (North Atlantic Treaty Organization) 软件工程是指导计算机软件开发和维护的工 程学科。 程学科。 采用工程的概念、原理、 采用工程的概念、原理、技术和方法来开发 与维护软件,把经过时间考验而证明正确的管 与维护软件, 理技术和当前能够得到的最好的技术方法结合 起来。 起来。 核心内容是“ 核心内容是“以工程化的方式组织软件的开 发”。
软件工程
软件工程是一门交叉学科软 件 工 程 的 主 要 研 究 内 容
软件开发模型 软件开发方法 软件立项到终止的全过程 软件开发工具 软件开发环境 计算机辅助软件工程(CASE) 计算机辅助软件工程(CASE) 软件工程管理 软件工程经济学
软件工程
软件工程的三个要素 软件工程包括三个要素:方法、工具和过程。 软件工程包括三个要素:方法、工具和过程。 1)软件工程方法为软件开发提供了“如何做” 软件工程方法为软件开发提供了“如何做” 的技术。 的技术。 2) 软 …… 此处隐藏:1541字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




