软件工程软件工程第 1章软件工程的实质本章要点
一、软件工程概述
二、软件工程的知识体系
三、软件工程的三段论
四、软件工程模型一、软件的概念
1、软件
是计算机系统中与硬件相互依存的另一部分,
它包括程序 (Program),数据 (Data)和文档
(Document)。
程序是按照事先设计的功能和性能要求执行的指令序列;可以在任意规模和体系结构的计算机中执行;
数据使程序能够正常操纵信息的数据结构;例如数字、文本、图形、视频、音频等信息数据;
文档是与程序开发维护和使用有关的各种图文资料。
一、软件的概念
2、软件的特征
1)软件是被开发或设计的,而不是传统意义上被制造的。
2)软件不会“磨损”,但是会退化
3)软件产业正在向基于构件的组装前进,但大多数软件仍然是定制的。
3、软件的应用
系统软件、实时软件、商业软件、工程和科学计算软件、嵌入式软件、个人计算机软件、基于 Web的软件、
人工智能软件一、软件的概念
4、软件工程
是针对软件这一具有特殊性质的产品的工程化方法。软件工程涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方法,来指导软件人员的工作。
二、软件产业的发展
起始于 20世纪中期,3个发展阶段
第一个阶段,20世纪 50年代到 20世纪 60年代。
程序设计阶段,个体手工劳动的生产方式。
第二个阶段是 20世纪 60年代到 20世纪 70年代。
成为软件设计阶段,小组合作的生产方式。
第三个阶段从 20世纪 70年代至今,称为软件工程时代,采用了工程化的生产方式。
软件危机
软件工程三、软件工程的三段论三、软件工程的三段论
三段论:一段论是“软件项目管理论”,
二段论是“软件项目开发论”,三段论是
“软件过程改进论”。这三段论组成一个稳固的三角形。
软件开发过程是软件人员生产软件的过程
管理过程是项目管理者规划软件开发、控制软件开发的过程
过程改进相当于对软件开发过衡和软件管理过程的“工艺流程”进行管理和改进。
四、软件工程
1、软件工程的再定义
用工程化的方法指导实际的软件开发
IEEE的定义:软件工程是,(1)将系统化的、
严格约束的、可量化的方法应用于软件的开发、
运行和维护,即将工程化应用于软件。 (2)在 (1)
中所述方法的研究。
四、软件工程
2、过程、方法和工具
软件工程是一种层次化的技术。
过程层是基础
方法层 — 如何做
工具层 — 对过程和方法提供自动或半自动的支持四、软件工程
3、软件工程的一般过程
如果不考虑应用领域、项目规模和复杂性,与软件工程相关的工作可分为三个一般阶段。
1)定义阶段 —,做什么”
2)开发阶段 —,如何做”
3)支持阶段 — 关注“变化”,纠正错误,进行适应性和增强型的修改五、软件过程模型
1、软件的开发策略
软件开发策略包含过程、方法和工具三个层次和软件工程的一般过程。软件开发策略常常被称为过程模型。
问题解决环五、软件过程模型
2、软件过程模型
常见的软件工程模型有:线性模型,V模型、
增量式模型、螺旋模型、快速原型模型等。
五、软件过程模型
1)瀑布模型五、软件过程模型
瀑布模型适用的项目
在项目开始前,项目的需求很明确
在项目开始前,解决方案也很明确
类似的项目如:
公司的财务系统
库存管理系统
短期、小型项目五、软件过程模型
2) V模型五、软件过程模型
V模型适用的项目
在项目开始前,项目的需求很明确
在项目开始前,解决方案也很明确
对系统的性能安全很严格的项目
类似的项目如:
航天飞机等
公司的财务系统五、软件过程模型
3)原型模型五、软件过程模型
原型模型适用的项目
在项目开始前,项目的需求不明确
需要减少项目需求的不确定性
类似的项目如:
确定显示界面
第一次开发的产品,验证可行性五、软件过程模型
4)增量式模型五、软件过程模型
增量模型适用的项目
项目开始,明确了需求的大部分,但是需求可能会发生变化
对于市场和用户把握不是很准,需要逐步了解
对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。
五、软件过程模型
5)螺旋式模型五、软件过程模型
螺旋模型适用的项目
风险是主要的制约因素
不确定因素和风险限制了项目进度
用户对自己的需求也不是很明确
需要对一些基本的概念进行验证
可能发生一些重大的变更
项目规模很大
项目中采用了新技术小结
一、软件工程概述
二、软件工程的知识体系
三、软件工程的三段论
四、软件工程模型
一、软件工程概述
二、软件工程的知识体系
三、软件工程的三段论
四、软件工程模型一、软件的概念
1、软件
是计算机系统中与硬件相互依存的另一部分,
它包括程序 (Program),数据 (Data)和文档
(Document)。
程序是按照事先设计的功能和性能要求执行的指令序列;可以在任意规模和体系结构的计算机中执行;
数据使程序能够正常操纵信息的数据结构;例如数字、文本、图形、视频、音频等信息数据;
文档是与程序开发维护和使用有关的各种图文资料。
一、软件的概念
2、软件的特征
1)软件是被开发或设计的,而不是传统意义上被制造的。
2)软件不会“磨损”,但是会退化
3)软件产业正在向基于构件的组装前进,但大多数软件仍然是定制的。
3、软件的应用
系统软件、实时软件、商业软件、工程和科学计算软件、嵌入式软件、个人计算机软件、基于 Web的软件、
人工智能软件一、软件的概念
4、软件工程
是针对软件这一具有特殊性质的产品的工程化方法。软件工程涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方法,来指导软件人员的工作。
二、软件产业的发展
起始于 20世纪中期,3个发展阶段
第一个阶段,20世纪 50年代到 20世纪 60年代。
程序设计阶段,个体手工劳动的生产方式。
第二个阶段是 20世纪 60年代到 20世纪 70年代。
成为软件设计阶段,小组合作的生产方式。
第三个阶段从 20世纪 70年代至今,称为软件工程时代,采用了工程化的生产方式。
软件危机
软件工程三、软件工程的三段论三、软件工程的三段论
三段论:一段论是“软件项目管理论”,
二段论是“软件项目开发论”,三段论是
“软件过程改进论”。这三段论组成一个稳固的三角形。
软件开发过程是软件人员生产软件的过程
管理过程是项目管理者规划软件开发、控制软件开发的过程
过程改进相当于对软件开发过衡和软件管理过程的“工艺流程”进行管理和改进。
四、软件工程
1、软件工程的再定义
用工程化的方法指导实际的软件开发
IEEE的定义:软件工程是,(1)将系统化的、
严格约束的、可量化的方法应用于软件的开发、
运行和维护,即将工程化应用于软件。 (2)在 (1)
中所述方法的研究。
四、软件工程
2、过程、方法和工具
软件工程是一种层次化的技术。
过程层是基础
方法层 — 如何做
工具层 — 对过程和方法提供自动或半自动的支持四、软件工程
3、软件工程的一般过程
如果不考虑应用领域、项目规模和复杂性,与软件工程相关的工作可分为三个一般阶段。
1)定义阶段 —,做什么”
2)开发阶段 —,如何做”
3)支持阶段 — 关注“变化”,纠正错误,进行适应性和增强型的修改五、软件过程模型
1、软件的开发策略
软件开发策略包含过程、方法和工具三个层次和软件工程的一般过程。软件开发策略常常被称为过程模型。
问题解决环五、软件过程模型
2、软件过程模型
常见的软件工程模型有:线性模型,V模型、
增量式模型、螺旋模型、快速原型模型等。
五、软件过程模型
1)瀑布模型五、软件过程模型
瀑布模型适用的项目
在项目开始前,项目的需求很明确
在项目开始前,解决方案也很明确
类似的项目如:
公司的财务系统
库存管理系统
短期、小型项目五、软件过程模型
2) V模型五、软件过程模型
V模型适用的项目
在项目开始前,项目的需求很明确
在项目开始前,解决方案也很明确
对系统的性能安全很严格的项目
类似的项目如:
航天飞机等
公司的财务系统五、软件过程模型
3)原型模型五、软件过程模型
原型模型适用的项目
在项目开始前,项目的需求不明确
需要减少项目需求的不确定性
类似的项目如:
确定显示界面
第一次开发的产品,验证可行性五、软件过程模型
4)增量式模型五、软件过程模型
增量模型适用的项目
项目开始,明确了需求的大部分,但是需求可能会发生变化
对于市场和用户把握不是很准,需要逐步了解
对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。
五、软件过程模型
5)螺旋式模型五、软件过程模型
螺旋模型适用的项目
风险是主要的制约因素
不确定因素和风险限制了项目进度
用户对自己的需求也不是很明确
需要对一些基本的概念进行验证
可能发生一些重大的变更
项目规模很大
项目中采用了新技术小结
一、软件工程概述
二、软件工程的知识体系
三、软件工程的三段论
四、软件工程模型