1 软件危机与软件工程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
教材
软件工程导论(第三版) 张海藩
清华大学出版社(1997)
5
第1讲 软件危机与软件工程
6
内容提要
软件的特点 软件的分类 软件工程产生的背景:软件危机与神话 软件工程的概念 软件工程现状
7
计算机软件已经成为一种驱动力。它是进行商业决策的引 擎;它是现代科学研究和工程问题寻求解答的基础;它也 是鉴别现代产品和服务的关键因素。它被嵌入在各种类型 的系统中:交通、医疗、电信、军事、工业生产过程、娱 乐、办公、……难以穷举。软件在现代社会中确实是必不 可少的。而且我们进入21世纪,软件将成为从基础教育到 基因工程的所有领域新进展的驱动器。
17
软件的分类
• 大型 5~20
2~3年 50k~100k
• 编译程序、小型分时系统、实时控制系统等。二级管理,若干小组
,每组5人以下。人员调整往往不可避免,新手的培训。采用统一的标
准,实行严格的审查是绝对必要的。
• 甚大型 100~1000 4~5年 1M(=1000k)
• 若干个子项目,每一个子项目都是一个大型软件。子项目之间具
信息
25
计算机和软件的历史观
70年代和80年代
“新的工业革命” “工业社会将转变为信息社会” ……(大批量生产带来的产品过剩)
和支持管理的软件
15
软件的分类
应用软件
商业数据处理软件 工程与科学计算软件 计算机辅助设计/制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件
16
软件的分类
按软件规模进行划分:
类别 参加人员数 研制期限 源程序行数
微型
1
软件的生产与硬件不同,在它的开发过程中没有 明显的制造过程
在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题
10
11
软件的特点
软件的开发和运行常受到计算机系统的限制,对 计算机系统有着不同程度的依赖性
软件的开发至今尚未完全摆脱手工艺的开发方式 软件本身是复杂的
实际问题的复杂性 程序逻辑结构的复杂性 软件成本相当昂贵 相当多的软件工作涉及到社会因素
有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型
数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类
问题没有软件工程方法的支持,它的开发工作是不可想象的。
• 极大型 2000~5000 5~10年 1M~10M
• 军事指挥、弹道导弹防御系统。
• 只是对软件工程技术依赖的程度不同而已。
12
13
软件的分类
按软件的功能进行划分:
系统软件
使计算机系统各个部件、相关软件和数据协调、高 效地工作的软件
操作系统 数据库管理系统 设备驱动程序 通信处理程序等
14
软件的分类
支撑软件
协助用户开发软件的工具软件
文本编辑程序 文件格式化程序 磁盘向磁带进行数据传输的程序 程序库系统 支持需求分析、设计、实现、测试
Software Engineering
Dr. Zhang,Xiaohong
2006, Fall
School of Software Engineering, Chongqing University
1
个人信息
张小洪
Email:xhongz@yahoo.com.cn TEL:15923238399(小灵通) 办公地点:重庆大学A区主楼1003室
1~4周
0.5k
小型
1
1~6月 1k~2k
数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标 准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那 样严格。
中型 2~5
1~2年 5k~50k
软件人员之间、与用户之间的联系、协调的配合关系。因而计划、 资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。 系统的软件工程方法是完全必要的。
High level languages were invented easier
User Programmer Computer
23
软件的发展
Early 1960s:
Very few large software projects were done by some experts.
Middle to late 1960ຫໍສະໝຸດ Baidu:
研究方向:
软件工程、机器视觉与数据挖掘等
2
软件工程的主要内容
软件工程概述 过程模型 需求分析与分析建模 软件设计原则 软件体系结构设计 软件测试 软件维护 可行性分析 面向对象分析与设计
3
参考教材
软件工程 -实践者的研究方法 (英文版 第五版) Roger S. Pressman 机械工业出版社
Truly large software systems were attempted.
After 1968:
Software Engineering
24
软件的角色
软件在社会上扮演了双重角色
它本身是一种产品
将计算机硬件的计算能力发挥出来
同时,它也是一种传递产品的工具
软件传递了我们这个时代最重要的产品:
18
软件的分类 按软件工作方式划分:
实时处理软件 交互式软件 批处理软件 分时软件
19
软件的分类
按软件服务对象的范围划分:
项目软件 产品软件
20
软件的分类 按使用的频度进行划分:
一次使用 频繁使用
21
软件的分类 按软件失效的影响进行划分:
高可靠性软件 一般可靠性软件
22
软件的发展
In the early days:
“Software” = “Place a sequence of instructions together to get the computer to do something useful”. Late 1950’s: User Computer Computer became cheaper and more common
8
什么是软件
软件是计算机系统中与硬件相互依存的另一部分, 它是包括程序,数据及其相关文档的完整集合
程序是按事先设计的功能和性能要求执行的指令 序列
数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料
9
软件的特点
软件是一种逻辑实体,而不是具体的物理实体。 因而它具有抽象性
教材
软件工程导论(第三版) 张海藩
清华大学出版社(1997)
5
第1讲 软件危机与软件工程
6
内容提要
软件的特点 软件的分类 软件工程产生的背景:软件危机与神话 软件工程的概念 软件工程现状
7
计算机软件已经成为一种驱动力。它是进行商业决策的引 擎;它是现代科学研究和工程问题寻求解答的基础;它也 是鉴别现代产品和服务的关键因素。它被嵌入在各种类型 的系统中:交通、医疗、电信、军事、工业生产过程、娱 乐、办公、……难以穷举。软件在现代社会中确实是必不 可少的。而且我们进入21世纪,软件将成为从基础教育到 基因工程的所有领域新进展的驱动器。
17
软件的分类
• 大型 5~20
2~3年 50k~100k
• 编译程序、小型分时系统、实时控制系统等。二级管理,若干小组
,每组5人以下。人员调整往往不可避免,新手的培训。采用统一的标
准,实行严格的审查是绝对必要的。
• 甚大型 100~1000 4~5年 1M(=1000k)
• 若干个子项目,每一个子项目都是一个大型软件。子项目之间具
信息
25
计算机和软件的历史观
70年代和80年代
“新的工业革命” “工业社会将转变为信息社会” ……(大批量生产带来的产品过剩)
和支持管理的软件
15
软件的分类
应用软件
商业数据处理软件 工程与科学计算软件 计算机辅助设计/制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件
16
软件的分类
按软件规模进行划分:
类别 参加人员数 研制期限 源程序行数
微型
1
软件的生产与硬件不同,在它的开发过程中没有 明显的制造过程
在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题
10
11
软件的特点
软件的开发和运行常受到计算机系统的限制,对 计算机系统有着不同程度的依赖性
软件的开发至今尚未完全摆脱手工艺的开发方式 软件本身是复杂的
实际问题的复杂性 程序逻辑结构的复杂性 软件成本相当昂贵 相当多的软件工作涉及到社会因素
有复杂的接口。如远程通信系统、多任务系统、大型操作系统、大型
数据库管理系统、军事指挥系统通常现有这样的规模。很显然,这类
问题没有软件工程方法的支持,它的开发工作是不可想象的。
• 极大型 2000~5000 5~10年 1M~10M
• 军事指挥、弹道导弹防御系统。
• 只是对软件工程技术依赖的程度不同而已。
12
13
软件的分类
按软件的功能进行划分:
系统软件
使计算机系统各个部件、相关软件和数据协调、高 效地工作的软件
操作系统 数据库管理系统 设备驱动程序 通信处理程序等
14
软件的分类
支撑软件
协助用户开发软件的工具软件
文本编辑程序 文件格式化程序 磁盘向磁带进行数据传输的程序 程序库系统 支持需求分析、设计、实现、测试
Software Engineering
Dr. Zhang,Xiaohong
2006, Fall
School of Software Engineering, Chongqing University
1
个人信息
张小洪
Email:xhongz@yahoo.com.cn TEL:15923238399(小灵通) 办公地点:重庆大学A区主楼1003室
1~4周
0.5k
小型
1
1~6月 1k~2k
数值计算或数据处理,通常没有与其它程序的接口。需要按一定的标 准化技术、正规的资料书写以及定期的系统审查。只是没有大题目那 样严格。
中型 2~5
1~2年 5k~50k
软件人员之间、与用户之间的联系、协调的配合关系。因而计划、 资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。 系统的软件工程方法是完全必要的。
High level languages were invented easier
User Programmer Computer
23
软件的发展
Early 1960s:
Very few large software projects were done by some experts.
Middle to late 1960ຫໍສະໝຸດ Baidu:
研究方向:
软件工程、机器视觉与数据挖掘等
2
软件工程的主要内容
软件工程概述 过程模型 需求分析与分析建模 软件设计原则 软件体系结构设计 软件测试 软件维护 可行性分析 面向对象分析与设计
3
参考教材
软件工程 -实践者的研究方法 (英文版 第五版) Roger S. Pressman 机械工业出版社
Truly large software systems were attempted.
After 1968:
Software Engineering
24
软件的角色
软件在社会上扮演了双重角色
它本身是一种产品
将计算机硬件的计算能力发挥出来
同时,它也是一种传递产品的工具
软件传递了我们这个时代最重要的产品:
18
软件的分类 按软件工作方式划分:
实时处理软件 交互式软件 批处理软件 分时软件
19
软件的分类
按软件服务对象的范围划分:
项目软件 产品软件
20
软件的分类 按使用的频度进行划分:
一次使用 频繁使用
21
软件的分类 按软件失效的影响进行划分:
高可靠性软件 一般可靠性软件
22
软件的发展
In the early days:
“Software” = “Place a sequence of instructions together to get the computer to do something useful”. Late 1950’s: User Computer Computer became cheaper and more common
8
什么是软件
软件是计算机系统中与硬件相互依存的另一部分, 它是包括程序,数据及其相关文档的完整集合
程序是按事先设计的功能和性能要求执行的指令 序列
数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料
9
软件的特点
软件是一种逻辑实体,而不是具体的物理实体。 因而它具有抽象性