1 软件及软件工程介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
如何开发软件? 怎样满足对软件日益增长的 需求?如何维护数量不断膨胀的已有软件?
• 软件危机的解决方法
– 充分吸取与借鉴人类长期以来从事各种工程项 目所各界的行之有效的原理/概念/技术和方法, 吸取以前软硬件研究与开发的经验教训 – 开发软件工程支撑环境
– 从管理和技术两方面着手,将软件开发工作变 成一种组织良好/管理严密/各类人员协同配合 的项目工程
(如何做)
• 运行维护:(保持软件持久)
– 发布、实施、维护、升级
定义
开发
运行维护
13
软件工程的框架
• 可概括为:目标、过程和原则。
– 软件工程目标:生产具有正确性、可用性以及 开销合宜的产品。
– 软件工程过程:生产一个最终能满足需求且达 到工程目标的软件产品所需要的步骤。包括开 发过程、支持过程、管理过程等。 – 软件工程的原则是指围绕工程设计、工程支持 以及工程管理在软件开发过程中必须遵循的原 则。
• 结论:按工程化的原则和方法组织软件开 发工作 • 软件发展改变了人们对软件的看法,软件
12
软件生存期
• 又称为软件生命周期(Life cycle)
– 通常分为3个阶段:定义、开发和维护
• 软件定义 :(做什么)
– 问题定义、可行性研究、需求分析
• 软件开发:包括设计和实现
– 设计包括概要设计、详细设计 – 实现包括编码和测试; – 测试包括单元测试、集成测试
– 第二阶段(1956-1968):
• 操作系统, 数据库管理系统, • 延期完成、难以维护
– 第三阶段(1968-现在):
• 软件工程阶段(1970-1990) • 面向对象软件工程阶段(1980-现在)
2
• (汉森人工智能)
返回
3
第1章 软件及软件工程介绍
• 计算机软件(software)
– 是计算机系统中的程序、数据及其相关文档的 完整集合。 – 是重要的科技领域 – 是软件产业的核心
• 按服务对象的范围分
– 定制(项目)软件: 军用指挥系统/卫星控制系统 – 产品软件: 由软件开发机构开发直接提供给市 场
• 按使用频度分
– 一次性软件:普查类软件 – 高频度软件:天气预报计算软件
• 按软件失效的影响分
– 低稳定性软件: 如游戏软件; 字处理
返回9
软件的特性
• • • • • 形态特性:不可见的逻辑实体 智能特性:凝聚了大量的脑力劳动 开发特性:尚未完全摆脱手工方式 质量特性:无法得到没有缺陷的软件产品 生产特性:复制简单,但开发成本高
• 学习研究工程化的软件开发方法,使开发 过程更加规范。培养学生的软件素质,提
14
软件工程框架
目标 用 性 正 确 性 合 基 本 过 程 算
性
支 持 过 程 过程
可
选取适宜的开发模型 原 采用合适的设计方法 则 提供高质量的工程支持
重视软件工程的管理
组 织 过 程
15
软件工程的目标
• 软件工程的目标: 是运用先进的软件开发技 术和管理方法来提高软件的质量和生产率。
16
生产率
• 生产率和质量存在内在联系,但不存在根本 对立。 • 影响软件生产率的主要因素
– 人员素质:开发组织的规模和专长 – 问题因素:问题本身的复杂性,需求和设计约束 改变的项数及变化的程度 – 过程因素:使用的分析和设计技术,程序语言和 CASE工具及复审技术 – 资源因素: CASE工具, 软硬件资源的可用性
• 软件的作用:
– 产品 – 产品生产载体
4
软件产业的发展阶段
• 早期专业的服务公司(1949-1959) • 早期软件产品公司(1959-1969) • 强大的企业解决方案提供商的出现(19691981)
– 如Oracle,Sybase(华尔街数据库提供商),IBM
• 客户大众市场软件(1981-1984)
– 质量指软件产品正确、可用。
• 正确性指软件产品达到预期功能的程度。
• 可用性指软件基本结构、实现性能及文档为用户可 用的程度。
– 生产率指开销适宜。
• 开销合宜是指软件开发、运行的整个周期、成本开 销满足用户要求的程度。 • 单位是 代码行/人月, 功能点/人月。
• 目标:就是生产具有正确性、可用性以及
– 如微软,Lotus
• 互联网增值服务(1994年至今)
– 如雅虎、谷歌、腾讯。收入模式不再是通过销 售软件获得,而是通过应用来自外部软件公司
5
全球软件产业的发展
6
第1章 软件及软件工程介绍
• 计算机软件(software)
– 是计算机系统中的程序、数据及其相关文档的 完整集合。 – 是重要的科技领域 – 是软件产业的核心
•
– – – –
实时处理软件 分时软件 交互式软件 批处理软件
① ② ③ ④
航空订票、信息查询 一台主机多个终端,unix操作系统 训练系统、游戏软件 打印机的后台处理
8wenku.baidu.com
• 按规模分
– 微型软件(5百行以内); 小型(2千行); 中型(5万行) – 大型(10万行); 甚大型(1百万行); 巨型(1千万行)
• 管理特性:对大规模知识型工作者的智力劳 动管理 • 环境特性:依赖于计算机系统环境
• 维护特性:维护工作量很大,修改可能引入
10
软件危机
• 背景
– 1960s,计算机硬件迅速发展,软件发展滞后
• 表现:
– 软件开发周期长、成本高、质量差、维护困难
• 原因:
– 缺乏开发经验和数据积累 – 缺少合适的交流方法和需求描述工具 – 开发过程不规范 – 测试阶段检测不充分
• 软件的作用:
– 产品 – 产品生产载体
软件的分类
7
计算机软件的分类
• 按功能分:
例如: ① 操作系统和编译程序; – 系统软件 ② 数据库管理系统, 网络软件, – 支撑(工具)软件 RationalRose, 软件开发环境; ③ 工程/科学计算软件, 嵌入式软件, – 应用软件 Web应用软件,人工智能软件, 按工作方式分 电子表格, CAD软件
第1章 软件及软件工程介绍
• 计算机软件(software)
– 是计算机系统中的程序、数据及其相关文档的 完整集合。 – 是重要的科技领域 – 是软件产业的核心
• 软件的作用:
– 产品 – 产品生产载体
软件的分类
1
计算机软件:重要的科技领域
• 计算机软件的发展
– 第一阶段(1946-1956):
• 科学计算程序, 服务性程序和程序库, • 无管理、无文档
如何开发软件? 怎样满足对软件日益增长的 需求?如何维护数量不断膨胀的已有软件?
• 软件危机的解决方法
– 充分吸取与借鉴人类长期以来从事各种工程项 目所各界的行之有效的原理/概念/技术和方法, 吸取以前软硬件研究与开发的经验教训 – 开发软件工程支撑环境
– 从管理和技术两方面着手,将软件开发工作变 成一种组织良好/管理严密/各类人员协同配合 的项目工程
(如何做)
• 运行维护:(保持软件持久)
– 发布、实施、维护、升级
定义
开发
运行维护
13
软件工程的框架
• 可概括为:目标、过程和原则。
– 软件工程目标:生产具有正确性、可用性以及 开销合宜的产品。
– 软件工程过程:生产一个最终能满足需求且达 到工程目标的软件产品所需要的步骤。包括开 发过程、支持过程、管理过程等。 – 软件工程的原则是指围绕工程设计、工程支持 以及工程管理在软件开发过程中必须遵循的原 则。
• 结论:按工程化的原则和方法组织软件开 发工作 • 软件发展改变了人们对软件的看法,软件
12
软件生存期
• 又称为软件生命周期(Life cycle)
– 通常分为3个阶段:定义、开发和维护
• 软件定义 :(做什么)
– 问题定义、可行性研究、需求分析
• 软件开发:包括设计和实现
– 设计包括概要设计、详细设计 – 实现包括编码和测试; – 测试包括单元测试、集成测试
– 第二阶段(1956-1968):
• 操作系统, 数据库管理系统, • 延期完成、难以维护
– 第三阶段(1968-现在):
• 软件工程阶段(1970-1990) • 面向对象软件工程阶段(1980-现在)
2
• (汉森人工智能)
返回
3
第1章 软件及软件工程介绍
• 计算机软件(software)
– 是计算机系统中的程序、数据及其相关文档的 完整集合。 – 是重要的科技领域 – 是软件产业的核心
• 按服务对象的范围分
– 定制(项目)软件: 军用指挥系统/卫星控制系统 – 产品软件: 由软件开发机构开发直接提供给市 场
• 按使用频度分
– 一次性软件:普查类软件 – 高频度软件:天气预报计算软件
• 按软件失效的影响分
– 低稳定性软件: 如游戏软件; 字处理
返回9
软件的特性
• • • • • 形态特性:不可见的逻辑实体 智能特性:凝聚了大量的脑力劳动 开发特性:尚未完全摆脱手工方式 质量特性:无法得到没有缺陷的软件产品 生产特性:复制简单,但开发成本高
• 学习研究工程化的软件开发方法,使开发 过程更加规范。培养学生的软件素质,提
14
软件工程框架
目标 用 性 正 确 性 合 基 本 过 程 算
性
支 持 过 程 过程
可
选取适宜的开发模型 原 采用合适的设计方法 则 提供高质量的工程支持
重视软件工程的管理
组 织 过 程
15
软件工程的目标
• 软件工程的目标: 是运用先进的软件开发技 术和管理方法来提高软件的质量和生产率。
16
生产率
• 生产率和质量存在内在联系,但不存在根本 对立。 • 影响软件生产率的主要因素
– 人员素质:开发组织的规模和专长 – 问题因素:问题本身的复杂性,需求和设计约束 改变的项数及变化的程度 – 过程因素:使用的分析和设计技术,程序语言和 CASE工具及复审技术 – 资源因素: CASE工具, 软硬件资源的可用性
• 软件的作用:
– 产品 – 产品生产载体
4
软件产业的发展阶段
• 早期专业的服务公司(1949-1959) • 早期软件产品公司(1959-1969) • 强大的企业解决方案提供商的出现(19691981)
– 如Oracle,Sybase(华尔街数据库提供商),IBM
• 客户大众市场软件(1981-1984)
– 质量指软件产品正确、可用。
• 正确性指软件产品达到预期功能的程度。
• 可用性指软件基本结构、实现性能及文档为用户可 用的程度。
– 生产率指开销适宜。
• 开销合宜是指软件开发、运行的整个周期、成本开 销满足用户要求的程度。 • 单位是 代码行/人月, 功能点/人月。
• 目标:就是生产具有正确性、可用性以及
– 如微软,Lotus
• 互联网增值服务(1994年至今)
– 如雅虎、谷歌、腾讯。收入模式不再是通过销 售软件获得,而是通过应用来自外部软件公司
5
全球软件产业的发展
6
第1章 软件及软件工程介绍
• 计算机软件(software)
– 是计算机系统中的程序、数据及其相关文档的 完整集合。 – 是重要的科技领域 – 是软件产业的核心
•
– – – –
实时处理软件 分时软件 交互式软件 批处理软件
① ② ③ ④
航空订票、信息查询 一台主机多个终端,unix操作系统 训练系统、游戏软件 打印机的后台处理
8wenku.baidu.com
• 按规模分
– 微型软件(5百行以内); 小型(2千行); 中型(5万行) – 大型(10万行); 甚大型(1百万行); 巨型(1千万行)
• 管理特性:对大规模知识型工作者的智力劳 动管理 • 环境特性:依赖于计算机系统环境
• 维护特性:维护工作量很大,修改可能引入
10
软件危机
• 背景
– 1960s,计算机硬件迅速发展,软件发展滞后
• 表现:
– 软件开发周期长、成本高、质量差、维护困难
• 原因:
– 缺乏开发经验和数据积累 – 缺少合适的交流方法和需求描述工具 – 开发过程不规范 – 测试阶段检测不充分
• 软件的作用:
– 产品 – 产品生产载体
软件的分类
7
计算机软件的分类
• 按功能分:
例如: ① 操作系统和编译程序; – 系统软件 ② 数据库管理系统, 网络软件, – 支撑(工具)软件 RationalRose, 软件开发环境; ③ 工程/科学计算软件, 嵌入式软件, – 应用软件 Web应用软件,人工智能软件, 按工作方式分 电子表格, CAD软件
第1章 软件及软件工程介绍
• 计算机软件(software)
– 是计算机系统中的程序、数据及其相关文档的 完整集合。 – 是重要的科技领域 – 是软件产业的核心
• 软件的作用:
– 产品 – 产品生产载体
软件的分类
1
计算机软件:重要的科技领域
• 计算机软件的发展
– 第一阶段(1946-1956):
• 科学计算程序, 服务性程序和程序库, • 无管理、无文档