中科院需求工程 需求工程(第九讲)文档驱动的方法_.ppt_第1页
中科院需求工程 需求工程(第九讲)文档驱动的方法_.ppt_第2页
中科院需求工程 需求工程(第九讲)文档驱动的方法_.ppt_第3页
中科院需求工程 需求工程(第九讲)文档驱动的方法_.ppt_第4页
中科院需求工程 需求工程(第九讲)文档驱动的方法_.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

需 求 工 程,金芝 中国科学院数学与系统科学研究院 ,第九讲:文档驱动方法,需求文档的重要性 四变量模型 scr需求方法 形式化scr和表演算机制 总结,从软件工程师的职责谈起,工程师的职责之一:保证产品的适用性 要求和应用专家准确、细致地沟通 沟通必须以写下来的需求陈述为基础 用户和实现者能够阅读和分析 能够在产品开发完成后用于评估这个产品 能够用于评定产品完成后的关于产品缺陷的争论 没有文档,任何工程师做不到这一点 发现需求是一门艺术,文档化需求并验证它的完整性是一门学科,需求文档,需求文档不表达如何开发产品,需求文档是关于将开发什么产品要做什么的描述 三个术语 描述:关于该产品的一些信息,可以不完整,但必须是真实的 规格说明:该产品需求属性的一个描述,软件产品的外部可见的行为 模型:具有产品的部分属性,以及可能不属于产品的属性,维护完整性一致性,方便验证,好文档的作用,可以描述已经存在的软件我们可以不用读代码就能够回答关于该软件的问题 可以描述还不存在的软件程序员和客户可以就需求达成一致意见 验证产品是否满足需求(测试和/或审查) 可以建立工具检查规格说明 可以建立工具模拟系统并检查系统,文档可接受的标准,描述必须比代码容易理解 文档必须用一种不限制解决方案的方式陈述需求 测试和证明最终能够自动化,程序与其它工程产品不同吗?,在计算机出现之前,工程师使用经典数学来描述和分析产品 在计算机科学中,大多数研究者发明新的“语言” 我们将软件作为产品来开发,程序与其它工程产品不同吗?,我们为什么不能简单地用我们习惯的数学来建模? 传统产品是无生命的东西(x) 我们需要描述被程序遵循的过程(x) 功能不是连续的(),需求阶段的目的,在开始构建产品之前,决定要构建什么 在设计之前显式地说出是“什么决定”,而不是象设计中那样隐式地给出 确定你构建的是必需的 让用户在产品构建之前进行评判 为软件开发者提供有组织的参考文档 提供精确,一致的信息 关于约束的问题只涉及一次 让他们不用决定什么对用户来说是最好的 补偿他们对环境的知识的缺少 给他们足够的信息进行设计决策 让他们准确地估计需要的时间和资源,需求阶段的目的,容许人员的更替 为质量保证组提供参考文档 测试设计不应该以来程序 授权的需要质量保证组和程序员可能不一致 说明实现相关的所有约束 知道你面临什么 为应付客户的变化提供某种形式的保护 能够评判可行性和代价 说明未来修订的约束,两变量模型,硬件/软件系统的传统模型基于两个假设: 系统具有输入和输出 输出是输入的数学函数 其中,输入是系统的实际物理输入 数学函数可能很复杂并难以描述 难以得到应用专家的审查,四变量模型,在系统的外部,存在物理变量,一些是监视变量、一些是控制变量、一些两者都是 外部设备感应监视变量,决定计算机的输入,读取计算机输出,影响控制变量的值 系统需求说明在监视变量和控制变量之间希望存在的关系 领域专家根据监视变量和控制变量来审查需求,而不是根据输入和输出变量 软件需求使用输入和输出变量来描述,四变量模型,影响系统行为的环境量,由系统控制的环境量,度量被监测的量,设置被控制的量,nat:物理世界的法则核系统环境引入的约束 req:系统必须维护的被监视的量和被控制的量之间的其他约束 in:从被监视的量到输入数据项的映射 out:从输出数据项到被控制的量的映射,四变量模型的关系,整个系统:满足监视变量和控制变量之间的关系 输入设备:满足监视变量和输入变量之间的关系 输出设备:满足输出变量和控制变量之间的关系 软件系统:满足输入设备和输出设备之间的关系,识别和声明监视和控制变量,识别监视变量:(mt1, mt2, , mtn) 识别控制变量:(ct1, ct2, , ctp) 主要的监视变量是系统外的东西,它的值应该影响系统的输入,比如: 客户计量器的读数 蒸汽温度 主要的控制变量是系统外的东西,它的值应该由系统来决定,比如: 操作者来计算机屏幕上看到的东西 什么将出现在帐单上,定义变量之间的关系,nat关系:mt ct mt:m在t时刻的取值 ct:c在t时刻的取值 (mt, ct) nat 当且仅当ct描述的环境控制量是环境约束在mt描述的环境监视量下是允许的 req关系:mt ct mt:m在t时刻的取值 ct:c在t时刻的取值 (mt, ct) req 当且仅当ct描述的环境控制量是计算机系统在mt描述的环境监视量下是允许的,关系满足的条件,domain(req) domain(nat) domain(reqnat) = domain(req) domain(nat) 其中, (1)表示系统需求文档的完整性; (1)和(2)表示系统需求文档的可行性,定义变量之间的关系,in关系:mt it mt:m在t时刻的取值 it:c在t时刻的取值 (mt, it) in 当且仅当在mt描述的环境监视量下输入设备正常工作时可能产生的值 out关系:ot ct ot:m在t时刻的取值 ct:c在t时刻的取值 (ot, ct) out 当且仅当输出设备正常工作时并输出ot描述的取值时可能的环境控制量的取值,文档化软件需求,软件需求由系统需求决定: req (mt, ct) in (mt, it) out (ot, ct) nat (mt, ct) 实际软件描述为 sof (it, ot): (it, ot) sof 当且仅当ot描述的是软件在输出it描述的取值时可能的产生的输出变量的取值,软件需求文档的检查,完整包含上述内容 验证req在nat定义的条件下的满足系统可行性条件 一些其它简单检查 sof中出现的输入变量都是in中的输入变量 out中出现的输出变量都是sof中的输出变量 in中出现的监视变量都是req中的监视变量 out中出现的控制变量都是req中的控制变量 req和nat中的变量相同,软件需求的可接受性,让软件是可接受的,sof必须满足: mt it ot ct in (mt, it) sof (it, ot) out (ot, ct) nat (mt, ct) req (mt, ct) 采用功能表述: mt mt domain(nat) (req(mt) = out(sof(in(mt) 更简洁的表述: (nat(insofout) req,四变量模型蕴涵的需求过程,定义“控制变量”的完整列表 定义“监测变量”的完整列表 对每个监测变量,说明其可能的取值集合(如果和时间相关,则定义为时间函数)。这个监测变量的取值集合是nat的值域 对每个控制变量,将它的取值描述为监测变量的取值的函数,四变量模型蕴涵的需求过程,说明系统:“理想”系统的行为 假设能够获得被检测系统变量的精确值 假设能够计算出被控制系统变量的精确值 期望要保持的监测变量和控制变量之间的关系,用nat和req表示 定义可允许的软件行为: 对软件系统行为的可容忍的程度,包括: 对度量被检测的属性值和计算被控制的属性值的时间延迟和精度要求,用in和out表示,scr需求方法,scr:software cost reduction 提出:heninger,k.l., 80年代初期 成功应用领域: a-7操作飞行程序 潜水艇通讯系统 加拿大darlington核电站安全组件 lockheeds c-130j操作飞行程序,基本概念和表示法,基本表示法 表表示法 状态机,基本概念和表示法,构造子一:模式类 定义在被监护变量上一个状态机 其中的状态称为系统模式 变迁由事件触发,模式类刻画了系统运行的一段相互关联的上下文 主要目的是划分状态集合,简化函数的描述,基本概念和表示法,构造子二:项 定义在输入变量,模式,或者其它项之上的辅助函数 是一个抽象概念,或者高层概念 引入的目的是为了减少冗余说明,基本概念和表示法,构造子三:条件 定义某个事件点上的一个或多个系统实体上的谓词,比如:关系式等 其中,系统实体可以是输入/输出变量,模式或者项 刻画系统某个特定可度量时期的某方面的性质 当一个条件的值从真变为假,或者从假变为真,就发生一个事件。从这个意义上说,条件主要用于刻画事件发生的时机,基本概念和表示法,构造子四:事件 当系统的任何实体的值发生了变化,就有一个事件出现 scr描述两类事件发生的时机: t(c):当条件c变为真 f(c):当条件c变为假 由检测变量的变化引起的事件为检测事件 在特定条件下发生的事件为条件事件 t(c)when d:在条件d为真的情况下,当条件c变为真 f(c)when d:在条件d为真的情况下,当条件c变为假,案例:安全注入系统,基本需求: 负责打开和关闭安全注入阀。 需要监测水压,当水压低于阈值以下时,打开注入阀,向反应堆内核填加冷冻剂 系统操作员可以用block(或reset)开关阻止安全注入(或恢复安全注入),安全注入系统:scr需求,overridden:表示安全喷射被阻止,三个被监测量,每个感应器产生一个输入量,被控制的量,两个模式类,重载,三个系统模式,安全注入系统:scr需求,系统有两个模式类: “压力”模式 “重载”模式 模式类“压力”中有三个系统模式: 压力太低,waterpress = low 允许的范围,low waterpress = permit 压力高, permit waterpress,scr需求的表示,模式变迁表:定义软件可以处于的模式(状态)及其模式变迁 一个系统将包含不同的模式类,每个模式类有一个模式表,展示引起模式之间的变迁的条件 函数表示形式:模式 事件 模式,scr需求的表示,事件表 描述从模式和事件到控制变量或项的取值上的一个函数 函数表示形式: 模式 事件 控制变量的取值 | 项的取值,scr需求的表示,条件表 描述从模式和条件到控制变量或项上的一个函数 函数表示形式: 模式 条件 控制变量的取值 | 项的取值,scr需求定义过程,生成系统需求规范srs 确定并描述控制变量c; 确定并描述监视变量m; 确定并描述系统模式类; 定义关系req; 生成系统设计规范sds 确定并描述输入和输出变量; 定义输入/输出变量和监视/控制变量之间的关系; 生成软件需求规范sors 定义关系d_in和d_out; 对srs进行扩充,增加诸如系统在硬件失效时的行为等需求 定义硬件失效时行为; 对每个控制变量增加时序约束; 把关系req扩展为关系。,scr需求中各类关系,形式化scr:基础,基础命名: 模式集合(ms=mi) 实体名集合(rf=mr ir or gr) 实体取值的集合(vs=msts) 数据类型集合(ts) ty:函数,系统实体该实体的合法值 ty:rf vs,模式类名集合,输入变量名集合,输出变量名集合,项名集合,安全注入系统:scr需求,overridden:表示安全喷射被阻止,三个被监测量,每个感应器产生一个输入量,被控制的量,两个模式类,重载,三个系统模式,形式化scr:例,rf=block,reset,waterpres,pressure, safetyinjection,overridden ty(pressure)=toolow,permitted,high ty(waterpres)=0,1,2,2000 ty(overridden)=true,false ty(block)=on,off,形式化scr:条件,简单条件 true false rv:rrf, =, v ty(r) 复合条件:简单条件通过连接词组合而成 连接词:,,形式化scr:事件,基本表示法 t 事件种类 原始事件: t(r=v), rrf, vty(r) 监测事件: t(r=v), rir, vty(r) 基本事件: t(c), c是一个简单条件 简单条件事件: t(c) when d, t(c)是一个基本事件,d是一个简单条件或者复合条件 条件事件:简单条件事件的和取或析取,事件的语义,简单事件 t(c) = c c 如果c = rv,则c = (rv) = rv 简单条件事件 t(c) when d = c c d,老状态下的条件c,新状态下的条件c,形式化scr:事件例,t(block=on) when reset=off blockon block=on reset=off,形式化scr:系统模型,一个系统为一个四元组: em输入事件的集合 s可能的系统状态的集合 s0初始状态 t系统变换,为em s到s上的一个部分函数,表示被允许的系统状态变迁,形式化scr:系统模型,假设: 单输入假设:每次系统变迁正好只有一个监测事件出现 同步假设:系统在响应下一个监测事件之前,对当前的监测事件的响应必须全部完成,实体排序,构造实体的新状态依赖集 监测变量的新状态依赖集为空 由条件表定义的实体,其新状态依赖集包含所关联的模式类名,和出现在条件表中的所有实体名 由事件表或模式变迁表定义的实体,其新状态依赖集包含出现在表中作为一个基本事件的一部分的所有实体 新状态依赖集构成了rf上的一个偏序关系,scr需求的表示,条件表 描述从模式和条件到控制变量或项上的一个函数 函数表示形式: 模式 条件 控制变量的取值 | 项的取值,safetyinjection在新状态中依赖模式类pressure和项overridden,scr需求的表示,模式变迁表:定义软件可以处于的模式(状态)及其模式变迁 一个系统将包含不同的模式类,每个模式类有一个模式表,展示引起模式之间的变迁的条件 函数表示形式:模式 事件 模式,模式类pressure在新状态中依赖waterpress,scr需求的表示,事件表 描述从模式和事件到控制变量或项的取值上的一个函数 函数表示形式: 模式 事件 控制变量的取值 | 项的取值,overridden在新状态中依赖模式类pressure和监测变量block和reset,偏序关系序列,一种可能性: r = ,表函数:条件表,表函数:事件表,表函数:事件表,表函数:变迁表,表函数:变迁表,自动一致性检查,合适的语法 类型正确性 变量和模式定义的完整性 初始值:模式类、输入变量、输出变量 可达性:模式类忠的每个模式都是初始模式静态可达的 互斥性:条件相互之间是互斥的 覆盖:条件表中的变量,其域中每点有定义 无循环性:实体依赖无循环,规格说明的验证,检验的方面包括 需求描述的良构性 语法:我们是否正确地使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论