2011王立福的软件工程课件(自学考试)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
继之,确定为管理和保证项目所需的规程和资源,包括编制项 目计划,执行计划,一直到将系统、软件产品或软件服务 交付给需方为止。
该过程包括的基本活动为: a) 启动; b) 准备投标; c) 签订合同; d) 规划; e) 执行和控制; f) 复审和评估; g) 交付和完成。
软
软
件
件
生形 生 存成 存
周
周
期
期
过
模
程
型
向
(活 动 与 定 序)
的 建 立
程 生 存
发 面向数据结构
过 程
方法
周 的 维也纳开发方
期
途 径
法(VDM)
过 程
作用于 ……
支持/管理技术与方法
软件工程基本知识结构
一、概论 正确认识软件开发, 是从事软件开发的思想基础.
--软件开发的本质是什么? --软件开发的基本手段是什么?
例如1 :y=x²+5
其中:采用数学作为建模工具
例如2:信用卡确认系统的功能模型
零售机构(顾客通过该 机构刷卡,购买商品或 服务。
财务结算机构(负责信 用卡帐户的结算服务)
其中:采用UML作为建模工具
何谓模型
any abstraction that includes all essential capabilities, properties,or aspects of what is being modeled without any extraneous details. Firesmith,Henderson-Sellers]
软件工程基础
有效地开展软件开发和软件测评, 既要知其然,也要知其所以然.
北京大学软件工程国家工程研究中心 王立福
2009年4月
一、概论
--试图回答软件开发的本质及开发的基本手段
二、软件过程
--试图回答开发所涉及的活动及活动组织
三、软件需求及系统/产品(需求)规约 --试图回答软件开发的启始点及其工作产品
是产品/系统确认(测试)的标尺
四、软件开发方法学
--试图回答如何从事开发活动
五、CMM(the Capability Maturity Model for software)
--试图回答获得正确产品/系统的过程能力保障
支
给
软件开发
本质
导出
持 软 出 软件开发方法学
过 程 方
件 工
实 现
结构化方法
开 面向对象方法
部署-一个抽象层
-部署模型
分层的基本动机是控制开发的复杂性,
一个抽象层是由一组确定的术语定义的.
二、软件过程 开发逻辑,是获取正确软件的关键.
--软件开发要做那些映射-活动? --应如何正确组织开发活动,形成求解软件的
逻辑?
支
给
软件开发
本质
定义
持 软 出 软件开发方法学
过 程 方
件 工
实 现
结构化方法
开 面向对象方法
软
软
件
件
生形 生 存成 存
周
周
期
期
过
模
程
型
向
(活 动 与 定 序)
的 建 立
程 生 存
发 面向数据结构
过 程
方法
周wenku.baidu.com期
的 维也纳开发方
途 径
法(VDM)
过 程
作用于 ……
支持/管理技术与方法
1 开发所涉及的活动
-- 软件生存周期过程
1)基本概念 为了表述软件开发需要做“什么活(映射)”,引入了以下三 个概念: • 软件过程(process):活动的一个集合; • 活动(activity):任务的一个集合;
注:”软件过程”和”活动”相当于复合映射. • 任务(task): 将输入转换为输出的操作。
注:”任务”相当于原子映射.
2) 过程分类
按过程的主体,可分为三类过程:
(1)基本过程(primary processes)
是指那些与软件生产直接相关的活动集。
(2)支持过程(supporting processes )
是有关各方按其目标所从事的一系列支持活动集。
(3)组织过程(institutional processes)
是指那些与软件生产组织有关的活动集。
基本过程
支持过程
组织过程
(1)基本过程 又按过程中活动的不同主体,将基本过程(类)分
为5个过程:获取过程、供应过程、开发过程、 运行过程、维护过程
基本过程 组织为
其中:对应的过程:需求分析 设计 使用的方法:面向对象方法 基于的原理:行为结构抽象(简称行为抽象)
目标:形成一种可构造的计算逻辑.
2 实现映射的基本手段
建模:是解决问题的一般途径! 何谓建立问题的模型:
运用所掌握的知识, 通过抽象,给出该问题的一个结构。
非 结构化 或半结构化问题
结构化 问题
问题的结构化谱系
加工1
学生平均成绩
计算学生平均成绩
规约后的处理逻辑
这也是一个抽象的过程-过程抽象 其中:对应的过程:需求分析; 使用的方法:结构化方法; 基于的原理:过程抽象 目标:形成一种可构造的计算逻辑.
例如3: 交互图1=H(计算学生成绩)
:教学主任
:教务员
:教员
求A科平均 A科平均
递交A科学生成绩表 A科学生成绩表
对象 = F(张山) (模型化概念) (问题空间的概念) 这是一个抽象的过程-数据抽象.
其中, 对应的过程:需求分析 使用的方法:面向对象方法 基于的原理:数据抽象
目标:形成计算的客体。
例如2:问题空间的处理逻辑 与
解空间处理逻辑 之间的映射 加工1(及相关的数据流)=F(计算学生成绩)
学生成绩文件 科目+年级/班
具体地说,模型是在特定意图下所确定的角度和抽象层 次上对物理系统的描述,通常包含对该系统边界的描述,给 出系统内各模型元素以及它们之间的语义关系。
3 软件系统或项的模型分问类题空间
问题域 --客观事物系统
需求-一个抽象层
-概念模型 验
证/ 确
设计-一个抽象层
-设计模型
认
实现-一个抽象层
-实现模型 软件模型
支持过程 组织过程
获取过程 供应过程 开发过程 运行过程 维护过程
例如1:供应过程
供应过程是供方为了向客户提供满足需求的软件产品或服务 所从事的一系列活动和任务。
其目的是向客户提供一个满足已达成需求的产品或服务。
该过程的启动,或通过为应答需方的招标书而开始编制投标书 的决定,或通过与需方签订一项提供系统、软件产品或软 件服务的合同。
1 软件开发的本质
问题域 --客观事物系统
映射
领域软件生产线
应用框架
概念不同,解决问 题的思维逻辑不同
-“距离”
中间件技术与产品
VB、VC --程序设计环境
操作系统与语言处理系统
网络 计算机
--异构
运行(计算)平台
本质:问题域到不同抽象层之间概念和计算逻辑的映射.
例如1:问题空间的概念 与 解空间的模型化概念 之间的映射
该过程包括的基本活动为: a) 启动; b) 准备投标; c) 签订合同; d) 规划; e) 执行和控制; f) 复审和评估; g) 交付和完成。
软
软
件
件
生形 生 存成 存
周
周
期
期
过
模
程
型
向
(活 动 与 定 序)
的 建 立
程 生 存
发 面向数据结构
过 程
方法
周 的 维也纳开发方
期
途 径
法(VDM)
过 程
作用于 ……
支持/管理技术与方法
软件工程基本知识结构
一、概论 正确认识软件开发, 是从事软件开发的思想基础.
--软件开发的本质是什么? --软件开发的基本手段是什么?
例如1 :y=x²+5
其中:采用数学作为建模工具
例如2:信用卡确认系统的功能模型
零售机构(顾客通过该 机构刷卡,购买商品或 服务。
财务结算机构(负责信 用卡帐户的结算服务)
其中:采用UML作为建模工具
何谓模型
any abstraction that includes all essential capabilities, properties,or aspects of what is being modeled without any extraneous details. Firesmith,Henderson-Sellers]
软件工程基础
有效地开展软件开发和软件测评, 既要知其然,也要知其所以然.
北京大学软件工程国家工程研究中心 王立福
2009年4月
一、概论
--试图回答软件开发的本质及开发的基本手段
二、软件过程
--试图回答开发所涉及的活动及活动组织
三、软件需求及系统/产品(需求)规约 --试图回答软件开发的启始点及其工作产品
是产品/系统确认(测试)的标尺
四、软件开发方法学
--试图回答如何从事开发活动
五、CMM(the Capability Maturity Model for software)
--试图回答获得正确产品/系统的过程能力保障
支
给
软件开发
本质
导出
持 软 出 软件开发方法学
过 程 方
件 工
实 现
结构化方法
开 面向对象方法
部署-一个抽象层
-部署模型
分层的基本动机是控制开发的复杂性,
一个抽象层是由一组确定的术语定义的.
二、软件过程 开发逻辑,是获取正确软件的关键.
--软件开发要做那些映射-活动? --应如何正确组织开发活动,形成求解软件的
逻辑?
支
给
软件开发
本质
定义
持 软 出 软件开发方法学
过 程 方
件 工
实 现
结构化方法
开 面向对象方法
软
软
件
件
生形 生 存成 存
周
周
期
期
过
模
程
型
向
(活 动 与 定 序)
的 建 立
程 生 存
发 面向数据结构
过 程
方法
周wenku.baidu.com期
的 维也纳开发方
途 径
法(VDM)
过 程
作用于 ……
支持/管理技术与方法
1 开发所涉及的活动
-- 软件生存周期过程
1)基本概念 为了表述软件开发需要做“什么活(映射)”,引入了以下三 个概念: • 软件过程(process):活动的一个集合; • 活动(activity):任务的一个集合;
注:”软件过程”和”活动”相当于复合映射. • 任务(task): 将输入转换为输出的操作。
注:”任务”相当于原子映射.
2) 过程分类
按过程的主体,可分为三类过程:
(1)基本过程(primary processes)
是指那些与软件生产直接相关的活动集。
(2)支持过程(supporting processes )
是有关各方按其目标所从事的一系列支持活动集。
(3)组织过程(institutional processes)
是指那些与软件生产组织有关的活动集。
基本过程
支持过程
组织过程
(1)基本过程 又按过程中活动的不同主体,将基本过程(类)分
为5个过程:获取过程、供应过程、开发过程、 运行过程、维护过程
基本过程 组织为
其中:对应的过程:需求分析 设计 使用的方法:面向对象方法 基于的原理:行为结构抽象(简称行为抽象)
目标:形成一种可构造的计算逻辑.
2 实现映射的基本手段
建模:是解决问题的一般途径! 何谓建立问题的模型:
运用所掌握的知识, 通过抽象,给出该问题的一个结构。
非 结构化 或半结构化问题
结构化 问题
问题的结构化谱系
加工1
学生平均成绩
计算学生平均成绩
规约后的处理逻辑
这也是一个抽象的过程-过程抽象 其中:对应的过程:需求分析; 使用的方法:结构化方法; 基于的原理:过程抽象 目标:形成一种可构造的计算逻辑.
例如3: 交互图1=H(计算学生成绩)
:教学主任
:教务员
:教员
求A科平均 A科平均
递交A科学生成绩表 A科学生成绩表
对象 = F(张山) (模型化概念) (问题空间的概念) 这是一个抽象的过程-数据抽象.
其中, 对应的过程:需求分析 使用的方法:面向对象方法 基于的原理:数据抽象
目标:形成计算的客体。
例如2:问题空间的处理逻辑 与
解空间处理逻辑 之间的映射 加工1(及相关的数据流)=F(计算学生成绩)
学生成绩文件 科目+年级/班
具体地说,模型是在特定意图下所确定的角度和抽象层 次上对物理系统的描述,通常包含对该系统边界的描述,给 出系统内各模型元素以及它们之间的语义关系。
3 软件系统或项的模型分问类题空间
问题域 --客观事物系统
需求-一个抽象层
-概念模型 验
证/ 确
设计-一个抽象层
-设计模型
认
实现-一个抽象层
-实现模型 软件模型
支持过程 组织过程
获取过程 供应过程 开发过程 运行过程 维护过程
例如1:供应过程
供应过程是供方为了向客户提供满足需求的软件产品或服务 所从事的一系列活动和任务。
其目的是向客户提供一个满足已达成需求的产品或服务。
该过程的启动,或通过为应答需方的招标书而开始编制投标书 的决定,或通过与需方签订一项提供系统、软件产品或软 件服务的合同。
1 软件开发的本质
问题域 --客观事物系统
映射
领域软件生产线
应用框架
概念不同,解决问 题的思维逻辑不同
-“距离”
中间件技术与产品
VB、VC --程序设计环境
操作系统与语言处理系统
网络 计算机
--异构
运行(计算)平台
本质:问题域到不同抽象层之间概念和计算逻辑的映射.
例如1:问题空间的概念 与 解空间的模型化概念 之间的映射