2011王立福的软件工程课件(自学考试).ppt
软件工程基础有效地开展软件开发和软件测评,既要知其然,也要知其所以然. 北京大学软件工程国家工程研究中心王立福 2009年4月一、概论 --试图回答软件开发的本质及开发的基本手段 二、软件过程--试图回答开发所涉及的活动及活动组织 三、软件需求及系统/产品(需求)规约--试图回答软件开发的启始点及其工作产品是产品/系统确认(测试)的标尺 四、软件开发方法学--试图回答如何从事开发活动 五、CMM(the Capability Maturity Model for software)--试图回答获得正确产品/系统的过程能力保障软件开发 本质 软 件 生 存 周 期 过 程 导出 软 件 生 存 周 期 模 型 软 件 工 程 生 存 周 期 过 程 支 持 过 程 方 向 (活 动 与 定 序) 的 建 立 形 成 软件开发方法学 结构化方法 面向对象方法 面向数据结构方法 维也纳开发方法(VDM) …… 给 出 实 现 开 发 过 程 的 途 径 支持/管理技术与方法 作用于 软件工程基本知识结构一、概论--软件开发的本质是什么?--软件开发的基本手段是什么?正确认识软件开发,是从事软件开发的思想基础. 1 软件开发的本质 问题域--客观事物系统 概念不同,解决问 题的思维逻辑不同 -“距离” 操作系统与语言处理系统 网络 计算机 --异构 VB、VC --程序设计环境 中间件技术与产品 应用框架 领域软件生产线 映射 运行(计算)平台 本质:问题域到不同抽象层之间概念和计算逻辑的映射.例如1:问题空间的概念 与解空间的模型化概念 之间的映射 对象 = F(张山)(模型化概念) (问题空间的概念)这是一个抽象的过程-数据抽象.其中, 对应的过程:需求分析使用的方法:面向对象方法基于的原理:数据抽象目标:形成计算的客体。 例如2:问题空间的处理逻辑 与解空间处理逻辑 之间的映射加工1(及相关的数据流)=F(计算学生成绩)加工1 计算学生平均成绩 科目+年级/班 学生成绩文件 学生平均成绩 规约后的处理逻辑 这也是一个抽象的过程-过程抽象 其中:对应的过程:需求分析;使用的方法:结构化方法; 基于的原理:过程抽象目标:形成一种可构造的计算逻辑.例如3: 交互图1=H(计算学生成绩)其中:对应的过程:需求分析 设计使用的方法:面向对象方法基于的原理:行为结构抽象(简称行为抽象)目标:形成一种可构造的计算逻辑. :教务员 :教员 递交A科学生成绩表 A科学生成绩表 :教学主任 求A科平均 A科平均2 实现映射的基本手段何谓建立问题的模型:运用所掌握的知识, 通过抽象,给出该问题的一个结构。问题的结构化谱系例如1 :y=x² +5 结构化 问题 非 结构化 或半结构化问题建模:是解决问题的一般途径! 其中:采用数学作为建模工具 例如2:信用卡确认系统的功能模型 财务结算机构(负责信 用卡帐户的结算服务) 零售机构(顾客通过该 机构刷卡,购买商品或 服务。 其中:采用UML作为建模工具 何谓模型any abstraction that includes all essential capabilities,properties,or aspects of what is being modeled without anyextraneous details. Firesmith,Henderson-Sellers]具体地说,模型是在特定意图下所确定的角度和抽象层 次上对物理系统的描述,通常包含对该系统边界的描述,给 出系统内各模型元素以及它们之间的语义关系。 问题空间 需求-一个抽象层 设计-一个抽象层 实现-一个抽象层 部署-一个抽象层 验 证/ 确 认3 软件系统或项的模型分类 -概念模型 -设计模型 -实现模型 -部署模型 软件模型 问题域--客观事物系统 分层的基本动机是控制开发的复杂性,一个抽象层是由一组确定的术语定义的.二、软件过程--软件开发要做那些映射-活动?--应如何正确组织开发活动,形成求解软件的逻辑?开发逻辑,是获取正确软件的关键.软件开发 本质 软 件 生 存 周 期 过 程 定义 软 件 生 存 周 期 模 型 软 件 工 程 生 存 周 期 过 程 支 持 过 程 方 向 (活 动 与 定 序) 的 建 立 形 成 软件开发方法学 结构化方法 面向对象方法 面向数据结构方法 维也纳开发方法(VDM) …… 给 出 实 现 开 发 过 程 的 途 径 支持/管理技术与方法 作用于1 开发所涉及的活动-- 软件生存周期过程1)基本概念为了表述软件开发需要做“什么活(映射)”,引入了以下三个概念: 软件过程(process):活动的一个集合; 活动(activity):任务的一个集合;注:”软件过程”和”活动”相当于复合映射. 任务(task): 将输入转换为输出的操作。注:”任务”相当于原子映射.