2011王立福的软件工程课件(自学考试)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中的活动:过程的实施准备(process 主要任务:--规划软件工程过程
implementation)
依据项目的规模、 重要程度以及复杂性,定义或选 择软件生存周期模型.并将开发过程的活动和任务
映射到该软件生存周期模型.
依据文档过程,建立该过程文档;并将该文档臵于 配臵管理过程之下,并作为实施变更控制的依据; 依据问题解决过程,发现软件工作产品和任务中的 问题和不一致性,并建立相应的文档;
支 持 过 程 方 向
(活 动 与 定 序)
的 建 立
软件开发方法学 软 件 结构化方法 工 面向对象方法 程 面向数据结构 生 方法 存 维也纳开发方 周 期 法(VDM) 过 作用于 …… 程 支持/管理技术与方法
给 出 实 现 开 发 过 程 的 途 径
软件工程基本知识结构
一、概论 正确认识软件开发,
开发关于软件项的外部接口以及软件项的各个软件部 件间的接口的顶层设计,并形成文档。 编制数据库的顶层设计,并形成文档。 编制用户文档的最初版本,并形成文档。
确定软件集成的初步测试需求和进度安排,并形成文
档。
根据下列评价准则,评价软件项的体系结构、接口和数据库
设计,评价结果应形成文档: 软件项需求的可追踪性; 与软件项需求的外部一致性; 软件部件之间的内部一致性;
按合同规定,实现相应的支持过程.
为执行开发过程和支持过程的活动பைடு நூலகம்对开发组织所建 立的标准、方法、工具和计算机程序设计语言进行选
择、剪裁和应用.
依据开发和验收的所有需求(包括安全),为执行过 程的活动制定相应计划,例如风险管理计划、质量保 证计划等,这些同样也包括标准、方法、工具、措施 以及责任等.必要时这些计划可以分别建立.
活动(activity):任务的一个集合;
注:‖软件过程‛和‛活动‛相当于复合映射. 任务(task): 将输入转换为输出的操作。
注:‖任务‛相当于原子映射.
2) 过程分类 按过程的主体,可分为三类过程: (1)基本过程(primary processes) 是指那些与软件生产直接相关的活动集。 (2)支持过程(supporting processes ) 是有关各方按其目标所从事的一系列支持活动集。
N)进度安排、追踪和报告的方法;
O)人员培训(见组织过程)。
注:关于该过程的其它活动和任务,请参见相关的标准。
总的来说,成功实现该过程的结果是:
A)对客户请求产生了一个响应; B)在客户与供方之间建立了一个关于开发、维护、运行、 包装、交付和安装产品和/或服务的协定; C)供方开发了一个符合协定需求的产品和/或服务;
软件工程基础
有效地开展软件开发和软件测评,
既要知其然,也要知其所以然.
北京大学软件工程国家工程研究中心 王立福 2009年4月
一、概论
--试图回答软件开发的本质及开发的基本手段
二、软件过程
--试图回答开发所涉及的活动及活动组织
三、软件需求及系统/产品(需求)规约 --试图回答软件开发的启始点及其工作产品
是从事软件开发的思想基础.
--软件开发的本质是什么?
--软件开发的基本手段是什么?
1 软件开发的本质 问题域 --客观事物系统
映射
领域软件生产线
概念不同,解决问 题的思维逻辑不同 -―距离‛
应用框架
中间件技术与产品 VB、VC --程序设计环境
运行(计算)平台
操作系统与语言处理系统 网络 计算机 --异构
(3)组织过程(institutional processes)
是指那些与软件生产组织有关的活动集。 基本过程 支持过程 组织过程
(1)基本过程 又按过程中活动的不同主体,将基本过程(类)分 为5个过程:获取过程、供应过程、开发过程、 运行过程、维护过程 基本过程 支持过程 组织过程 组织为 获取过程 供应过程 开发过程 运行过程 维护过程
c) 是否从内部或外部来获得现货软件产品;
d) 是否采用a)b)c)的组合。
并针对以上每一种选择给出风险分析。
(5) 供方应基于有关规划的需求和以上的选择,制订项目管 理计划并形成文档。计划中应主要考虑包含以下条目:
A)开发单位(包括外包单位)的项目组织结构、职责和职权; B)工程环境,包括可用的开发环境、运行环境、维护环境以及测试环 境、程序库、设备、设施、标准、规程和工具;
所应用的设计方法和标准的适宜性;
详细设计的可行性; 运行与维护的可行性。 按照联合评审,对软件体系结构进行评审。 注:关于开发过程的其他活动和任务,可参阅有关标准.
总的来说,成功实现开发过程的结果是: a) 收集了软件开发需求并达成协定; b) 开发了软件产品或基于软件的系统; c) 开发了证明最终产品是基于需求的中间工作产品;
非 结构化 或半结构化问题 结构化 问题
问题的结构化谱系 例如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]
例如1:供应过程 供应过程是供方为了向客户提供满足需求的软件产品或服务 所从事的一系列活动和任务。 其目的是向客户提供一个满足已达成需求的产品或服务。 该过程的启动,或通过为应答需方的招标书而开始编制投标书 的决定,或通过与需方签订一项提供系统、软件产品或软 件服务的合同。 继之,确定为管理和保证项目所需的规程和资源,包括编制项 目计划,执行计划,一直到将系统、软件产品或软件服务 交付给需方为止。
本质:问题域到不同抽象层之间概念和计算逻辑的映射.
例如1:问题空间的概念 与
解空间的模型化概念 之间的映射
对象 = F(张山) (模型化概念) (问题空间的概念) 这是一个抽象的过程-数据抽象. 其中, 对应的过程:需求分析 使用的方法:面向对象方法 基于的原理:数据抽象 目标:形成计算的客体。
例如2:问题空间的处理逻辑 与 解空间处理逻辑 之间的映射
加工1(及相关的数据流)=F(计算学生成绩)
学生成绩文件
加工1 计算学生平均成绩
学生平均成绩
科目+年级/班
规约后的处理逻辑
这也是一个抽象的过程-过程抽象 其中:对应的过程:需求分析; 使用的方法:结构化方法; 基于的原理:过程抽象 目标:形成一种可构造的计算逻辑.
例如3: 交互图1=H(计算学生成绩) :教学主任 :教务员 :教员
是产品/系统确认(测试)的标尺
四、软件开发方法学
--试图回答如何从事开发活动
五、CMM(the Capability Maturity Model for software)
--试图回答获得正确产品/系统的过程能力保障
软件开发 本质
导出
软 件 生 存 周 期 过 程
形 成
软 件 生 存 周 期 模 型
求A科平均
递交A科学生成绩表 A科学生成绩表
A科平均
其中:对应的过程:需求分析 设计 使用的方法:面向对象方法 基于的原理:行为结构抽象(简称行为抽象) 目标:形成一种可构造的计算逻辑.
2 实现映射的基本手段 建模:是解决问题的一般途径! 何谓建立问题的模型: 运用所掌握的知识, 通过抽象,给出该问题的一个结构。
支 持 过 程 方 向
(活 动 与 定 序)
的 建 立
软件开发方法学 软 件 结构化方法 工 面向对象方法 程 面向数据结构 生 方法 存 维也纳开发方 周 期 法(VDM) 过 作用于 …… 程 支持/管理技术与方法
给 出 实 现 开 发 过 程 的 途 径
1 开发所涉及的活动
-- 软件生存周期过程 1)基本概念 为了表述软件开发需要做‚什么活(映射)‖,引入了以下三 个概念: 软件过程(process):活动的一个集合;
-实现模型 -部署模型 软件模型
分层的基本动机是控制开发的复杂性, 一个抽象层是由一组确定的术语定义的.
二、软件过程 开发逻辑,是获取正确软件的关键. --软件开发要做那些映射-活动? --应如何正确组织开发活动,形成求解软件的 逻辑?
软件开发 本质
定义
软 件 生 存 周 期 过 程
形 成
软 件 生 存 周 期 模 型
设计、实现和维护的可行性等
依据联合评审过程,对软件需求进行评审.
其中的活动:软件体系结构设计 该活动是针对每一个软件项(或已标识的软件配置项) 主要任务为:
把那些对软件项的需求转变为一种体系结构,即:
In
该软件项的需求
软件体系结构设计
Out
该项的软件体系结构
其中该体系结构描述了该项的顶层结构并标识各个软件 部件。其中应确保对软件项的所有需求都被分配给了相 应的软件部件,并为了进行详细设计而使该项的需求得 到进一步细化。软件项的体系结构应形成文档。
(3) 供方应为关于项目的计划建立适当的需求,以便管理该 项目和保证可交付软件产品或服务的质量。这样的需求应 包括资源的需要以及需方的参与。 (4) 一旦建立了有关规划的需求,供方就应该考虑: a) 是否利用内部资源来开发该软件产品或提供软件服务;
b) 是否通过分包合同来开发该软件产品或提供软件服务;
具体地说,模型是在特定意图下所确定的角度和抽象层 次上对物理系统的描述,通常包含对该系统边界的描述,给
出系统内各模型元素以及它们之间的语义关系。
3
软件系统或项的模型分类
问题空间
问题域 --客观事物系统
需求-一个抽象层
验 证/ 确 认
-概念模型
设计-一个抽象层 实现-一个抽象层 部署-一个抽象层
-设计模型
D)根据协定的需求,向客户交付了该产品和/或服务;
E)根据协定的需求,安装了该产品。
例如2:开发过程 是软件开发者所从事的一系列活动。 包括13个活动: 过程的实施准备
系统需求分析
软件需求分析
系统结构设计
软件体系结构设计
软件详细设计
软件集成 系统集成 软件安装
软件编码和测试
软件合格测试 系统合格测试 软件验收支持
其中的活动:软件需求分析 主要任务: 建立软件需求规格说明书,其中包括: 功能和能力规约,包括性能以及为执行软件的物理特 征和环境条件; 质量特征规约(参考ISO/IEC9126);
软件接口规约;
安全规约;
数据定义和数据库需求;用户操作和执行需求; 用户维护需求等
考虑以下准则,对软件需求进行评估: 是否能够跟踪到系统需求、系统结构; 从外部上,是否与系统需求保持一致; 需求内部的一致性; 是否具有可测性;
该过程包括的基本活动为: a) 启动;
b) 准备投标;
c) 签订合同; d) 规划; e) 执行和控制; f) 复审和评估; g) 交付和完成。
其中每一活动又包含一组特定的任务。例如“规划”活动包 括下述任务: (1) 供方应复审获取需求,以便定义管理该项目、保证可交 付的软件产品或服务质量的框架。 (2) 如果合同中没有规定采用什么软件生存周期模型,那么 供方就应确定或选择一个适合于该项目的范围、规模和复 杂度的软件生存周期模型,并应从本章中所述的过程、活 动和任务中进行选择,并将它们映射到所选择的软件生存 周期模型。
C)生存周期过程和活动的工作分解结构,包括要完成的软件产品、软 件服务和非交付项以及预算、人员配备、物理资源、软件规模和与任 务有关的进度;
D)软件产品或服务的质量特性的管理,可以制订独立的质量计划; E)软件产品或服务的安全、安全保密和其他关键需求的管理,可以制 订独立的安全、安全保密计划;
F)分包方管理,包括分包方选择以及分包方与需方之间的参与等; g)质量保证(见支持过程); H)验证和确认(见支持过程);包括指明与验证机构和确认机构的接口 途径; i) 需方参与,其手段如联合复审、审核、非正式会议、报告、修改和变 更等; J)用户参与,其手段如需求是否实现的演练、原型演示和评估等; K)风险管理,即管理项目有关技术、成本和进度等方面的潜风险; L)安全保密策略,即在每一个项目组织层面上那些按需所知并访问信息的 准则; M)诸如规章、所需的认证、专利权、使用权、所有权、担保权以及许可 证授予权等方面所要求的批准;