软件工程概论(完整)ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于缺乏软件开发的经验 ,主观盲目地制 定计划,执行起来和实际情况有很大差距, 对于工作量估计不准确,进度计划无法遵循, 开发工作完成的期限一拖再拖。已经拖延了 的项目,为了加快进度赶上去而增加人力,
反而更加延误了。
.
• 需求在开发的初期阶段提得不够明确, 或 是未能得到确切的表达。
软件人员和用户又未能及时交换意见,使 得一些问题不能及时解决,造成开发后期矛 盾的集中暴露。然而这时问题既难于分析, 也难于挽回。
• 数据是使程序能正常操纵信息的数据 结构
• 文档是与程序开发,维护和使用有关 的图文材料
.
软件的特点(8点)
• 软件是一种逻辑实体,而不是具体的 物理实体。因而它具有抽象性
• 软件的生产与硬件不同,在它的开发 过程中没有明显的制造过程
• 在软件的运行和使用期间,没有硬件 那样的机械磨损,老化问题
• 按软件的功能进行划分:3类 –系统软件
使计算机系统各个部件、相关软件和数据 协调、高效地工作的软件
• 操作系统 • 数据库管理系统 • 设备驱动程序 • 通信处理程序等
.
–支撑软件
协助用户开发软件的工具软件
• 文本编辑程序 • 文件格式化程序 • 磁盘向磁带进行数据传输的程序 • 程序库系统 • 支持需求分析、设计、实现、测 试和支持管理的软件
.
软件工程的定义
• Boehm:运用现代科学技术知识来设计 并构造计算机程序及为开发、运行和 维护这些程序所必需的相关文件资料
• IEEE:软件工程是开发、运行、维护 和修复软件的系统方法
数值计算或数据处理,通常没有与其它程序的接口 。需要按一定的标准化技术、正规的资料书写以及 定期的系统审查。只是没有大题目那样严格。
• 中型 2~5
1~2年 5k~50k
软件人员之间、与用户之间的联系、协调的配合 关系。因而计划、资料书写以及技术审查需要比较 严格地进行。应用程序和系统程序。系统的软件工 程方法是完全必要的。
• 软件工程概述 • 教学安排
.
▪ 什么是软件 ▪ 软件的分类 ▪ 软件的发展和软件危机 ▪软件工程过程和软件生存期 ▪ 软件工程的目的和要求
.
Байду номын сангаас
over
• 软件是计算机系统中与硬件相互依存 的另一部分,它是包括程序,数据及 其相关文档的完整集合
• 程序是按事先设计的功能和性能要求 执行的指令序列
.
.
• 软件的开发和运行常受到计算机系统的 限制,对计算机系统有着不同程度的依 赖性
• 软件的开发至今尚未完全摆脱手工艺的 开发方式
• 软件本身是复杂的 •实际问题的复杂性 •程序逻辑结构的复杂性
• 软件成本相当昂贵 • 相当多的软件工作涉及到社会因素
back
.
.
6
软件的分类(5种划分方式)
• 一次使用 • 频繁使用
.
• 按软件失效的影响进行划分:
• 高可靠性软件 • 一般可靠性软件
.
2
软件的发展
• 程序设计阶段:50-60年代 • 程序系统阶段:60-70年代 • 软件工程阶段:70年代以后
P7 表1.3 计算机软件发展的三个时期 及其特点 back
.
软件开发中的问题
• 计划很难制定致使经费预算常常突破
.
–应用软件
•商业数据处理软件 •工程与科学计算软件 •计算机辅助设计/制造软件 •系统仿真软件 •智能产品嵌入软件 •医疗、制药软件 •事务管理、办公自动化软件 •计算机辅助教学软件
.
• 按软件规模进行划分:
• 类别 参加人员数 研制期限 源程序行数
• 微型 1
1~4周
0.5k
• 小型 1
1~6月 1k~2k
《软件工程》
近二十年来计算机软件已经成为现代科学研 究和解决工程问题的基础,以及管理部门、生 产部门、和服务行业中的关键因素,渗透到了 各个领域,成为当今世界不可缺少的一部分。
展望二十一世纪,软件仍将成为驱动任何事 情从基础教育到遗传工程取得新进展的动力。
学习研究工程化的软件开发方法,使开发过 程更加规范。
极大型 2000~5000 5~10年 1M~10M
军事指挥、弹道导弹防御系统。
只是对软件工程技术依赖的. 程度不同而已。
• 按软件工作方式划分:
• 实时处理软件 • 分时软件 • 交互式软件 • 批处理软件
.
• 按软件服务对象的范围划分:
• 项目软件 • 产品软件
.
• 按使用的频度进行划分:
.
按工程化的原则和方法组织软件开发是 软件开发中的问题一个主要出路。
软件工程阶段,约为70年代以后。50年代到 60年代时,程序设计曾经被看做是一种任人发 挥创造才能的技术领域。写出的程序通篇充满 了程序技巧,这些程序很难被别人看懂。然而 随着计算机的广泛使用,人们逐渐抛弃了这种 观点。对于稍大的程序,并需要较长时间为许 多人使用的程序,人们要求这些程序容易看懂、 容易使用,并且容易修改和扩充。多个软件人 员分工合作、共同完成;只有在项目的总体要 求和技术规范的约束下充分发挥和施展。
.
大型 5~20 2~3年 50k~100k
编译程序、小型分时系统、实时控制系统等。二级管理 ,若干小组,每组5人以下。人员调整往往不可避免,新 手的培训。采用统一的标准,实行严格的审查是绝对必要 的。
甚大型 100~1000 4~5年 1M(=1000k)
若干个子项目,每一个子项目都是一个大型软件。子 项目之间具有复杂的接口。如远程通信系统、多任务系统 、大型操作系统、大型数据库管理系统、军事指挥系统通 常现有这样的规模。很显然,这类问题没有软件工程方法 的支持,它的开发工作是不可想象的。
• 开发过程没有统一的、公认的方法论和 规范指导
加之不重视文字资料工作,资料很不完整; 忽视每个人与其他人的接口部分,发现了问 题修修补补,这样的软件很难维护。
.
• 未能充分做好检测工作
在运行中暴露出大量的问题,轻者影响系统 的正常工作,重者发生事故,甚至造成生命财 产的重大损失。
美国IBM公司在1963年至1966年开发的IBM 360机的操作系统。5000人-年的工作量,1000 人投入,近100万行源程序。每次发行的新版 本都是从前一版本中找1000个程序错误,项目 负责人F.D.Brook总结时说:“正像一只逃亡 的野兽落到泥潭中做垂死的挣扎,越是挣扎, 陷得越深。最后无法逃脱灭顶的灾难。”
反而更加延误了。
.
• 需求在开发的初期阶段提得不够明确, 或 是未能得到确切的表达。
软件人员和用户又未能及时交换意见,使 得一些问题不能及时解决,造成开发后期矛 盾的集中暴露。然而这时问题既难于分析, 也难于挽回。
• 数据是使程序能正常操纵信息的数据 结构
• 文档是与程序开发,维护和使用有关 的图文材料
.
软件的特点(8点)
• 软件是一种逻辑实体,而不是具体的 物理实体。因而它具有抽象性
• 软件的生产与硬件不同,在它的开发 过程中没有明显的制造过程
• 在软件的运行和使用期间,没有硬件 那样的机械磨损,老化问题
• 按软件的功能进行划分:3类 –系统软件
使计算机系统各个部件、相关软件和数据 协调、高效地工作的软件
• 操作系统 • 数据库管理系统 • 设备驱动程序 • 通信处理程序等
.
–支撑软件
协助用户开发软件的工具软件
• 文本编辑程序 • 文件格式化程序 • 磁盘向磁带进行数据传输的程序 • 程序库系统 • 支持需求分析、设计、实现、测 试和支持管理的软件
.
软件工程的定义
• Boehm:运用现代科学技术知识来设计 并构造计算机程序及为开发、运行和 维护这些程序所必需的相关文件资料
• IEEE:软件工程是开发、运行、维护 和修复软件的系统方法
数值计算或数据处理,通常没有与其它程序的接口 。需要按一定的标准化技术、正规的资料书写以及 定期的系统审查。只是没有大题目那样严格。
• 中型 2~5
1~2年 5k~50k
软件人员之间、与用户之间的联系、协调的配合 关系。因而计划、资料书写以及技术审查需要比较 严格地进行。应用程序和系统程序。系统的软件工 程方法是完全必要的。
• 软件工程概述 • 教学安排
.
▪ 什么是软件 ▪ 软件的分类 ▪ 软件的发展和软件危机 ▪软件工程过程和软件生存期 ▪ 软件工程的目的和要求
.
Байду номын сангаас
over
• 软件是计算机系统中与硬件相互依存 的另一部分,它是包括程序,数据及 其相关文档的完整集合
• 程序是按事先设计的功能和性能要求 执行的指令序列
.
.
• 软件的开发和运行常受到计算机系统的 限制,对计算机系统有着不同程度的依 赖性
• 软件的开发至今尚未完全摆脱手工艺的 开发方式
• 软件本身是复杂的 •实际问题的复杂性 •程序逻辑结构的复杂性
• 软件成本相当昂贵 • 相当多的软件工作涉及到社会因素
back
.
.
6
软件的分类(5种划分方式)
• 一次使用 • 频繁使用
.
• 按软件失效的影响进行划分:
• 高可靠性软件 • 一般可靠性软件
.
2
软件的发展
• 程序设计阶段:50-60年代 • 程序系统阶段:60-70年代 • 软件工程阶段:70年代以后
P7 表1.3 计算机软件发展的三个时期 及其特点 back
.
软件开发中的问题
• 计划很难制定致使经费预算常常突破
.
–应用软件
•商业数据处理软件 •工程与科学计算软件 •计算机辅助设计/制造软件 •系统仿真软件 •智能产品嵌入软件 •医疗、制药软件 •事务管理、办公自动化软件 •计算机辅助教学软件
.
• 按软件规模进行划分:
• 类别 参加人员数 研制期限 源程序行数
• 微型 1
1~4周
0.5k
• 小型 1
1~6月 1k~2k
《软件工程》
近二十年来计算机软件已经成为现代科学研 究和解决工程问题的基础,以及管理部门、生 产部门、和服务行业中的关键因素,渗透到了 各个领域,成为当今世界不可缺少的一部分。
展望二十一世纪,软件仍将成为驱动任何事 情从基础教育到遗传工程取得新进展的动力。
学习研究工程化的软件开发方法,使开发过 程更加规范。
极大型 2000~5000 5~10年 1M~10M
军事指挥、弹道导弹防御系统。
只是对软件工程技术依赖的. 程度不同而已。
• 按软件工作方式划分:
• 实时处理软件 • 分时软件 • 交互式软件 • 批处理软件
.
• 按软件服务对象的范围划分:
• 项目软件 • 产品软件
.
• 按使用的频度进行划分:
.
按工程化的原则和方法组织软件开发是 软件开发中的问题一个主要出路。
软件工程阶段,约为70年代以后。50年代到 60年代时,程序设计曾经被看做是一种任人发 挥创造才能的技术领域。写出的程序通篇充满 了程序技巧,这些程序很难被别人看懂。然而 随着计算机的广泛使用,人们逐渐抛弃了这种 观点。对于稍大的程序,并需要较长时间为许 多人使用的程序,人们要求这些程序容易看懂、 容易使用,并且容易修改和扩充。多个软件人 员分工合作、共同完成;只有在项目的总体要 求和技术规范的约束下充分发挥和施展。
.
大型 5~20 2~3年 50k~100k
编译程序、小型分时系统、实时控制系统等。二级管理 ,若干小组,每组5人以下。人员调整往往不可避免,新 手的培训。采用统一的标准,实行严格的审查是绝对必要 的。
甚大型 100~1000 4~5年 1M(=1000k)
若干个子项目,每一个子项目都是一个大型软件。子 项目之间具有复杂的接口。如远程通信系统、多任务系统 、大型操作系统、大型数据库管理系统、军事指挥系统通 常现有这样的规模。很显然,这类问题没有软件工程方法 的支持,它的开发工作是不可想象的。
• 开发过程没有统一的、公认的方法论和 规范指导
加之不重视文字资料工作,资料很不完整; 忽视每个人与其他人的接口部分,发现了问 题修修补补,这样的软件很难维护。
.
• 未能充分做好检测工作
在运行中暴露出大量的问题,轻者影响系统 的正常工作,重者发生事故,甚至造成生命财 产的重大损失。
美国IBM公司在1963年至1966年开发的IBM 360机的操作系统。5000人-年的工作量,1000 人投入,近100万行源程序。每次发行的新版 本都是从前一版本中找1000个程序错误,项目 负责人F.D.Brook总结时说:“正像一只逃亡 的野兽落到泥潭中做垂死的挣扎,越是挣扎, 陷得越深。最后无法逃脱灭顶的灾难。”