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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




