1、第10章.模型驱动方法主要内容1.模型驱动方法的作用2.面向目标的方法3.基于场景的方法4.基于用例的方法为什么要模型驱动?方法学支持?模型驱动方法面向目标的方法基于场景的方法面向Agent的方法?基于用例的方法模型驱动方法n不仅仅是获取q在不同层次上进行获取、分析、验证和管理n承上启下q展开上一层q准备下一层的展开1.模型驱动方法的作用n指导和组织需求获取行为的开展q模型可以用于指导后续需求获取行为的开展 n整理和归类需求获取行为得到的信息 q模型是进行信息整理和归类的很好的框架依据n为详细信息的分析提供背景基础和上下文知识 q模型驱动方法则是侧重于前期需求阶段的方法,是传统需求分析方法的一
2、个很好的补充 n帮助组织需求文档的结构 n作为需求验证的知识基础 q发现细节知识与模型内容的偏差和错误 q指导需求验证行为的开展 主要内容1.模型驱动方法的作用2.面向目标的方法3.基于场景的方法4.基于用例的方法2.面向目标的方法n为什么需要目标?q业务需求?n不够严谨n无法形成方法学支持q面向目标的方法n将“目标”严格定义q单位、组织方式目标模型n建立方法学支持q模型的建立与应用2.面向目标的方法n从早期就指导RE活动q有利于需求的获取q指导后期活动n关注Why,深层次分析组织及其涉众的目标、候选方案和隐式因素q深入理解涉众关注2.面向目标的方法n很多现存的方法学也开始整合对目标的分析与处
3、理技术。目标概念在需求工程方法中的广泛被接受现象说明:目标已经成为了需求工程常用的核心概念”Kavakli2002。n目标将会补充传统方法中的实体(Entities)概念和行为(Activities)概念,一起成为需求工程建模与分析的基本对象类别Yu1998。nKAOSDardenne93,van Lamsweerde1995、NFRMylopoulos1992,Chung2000、I*Yu1997、GBRAMAnton1996,Anton19972.面向目标的方法n目标q目标:是系统被开发的目的 n可以在不同的抽象层次上进行描述 n它有着明确的定义方式 DoorsClosedBetweenS
4、tationsNext(s)At(tr,W closed tetr.doorSta s)(tr,At s)(tr,At Station):s Train,:tr(rmalDef Fostations.twobetween moving is ain tr the whileclosed remainmust doors trainThe n DefinitioInformal SafetyGoal InstanceOf tationsedBetweenSDoorsClos MaintainGoal2.面向目标的方法n目标分类q功能目标(Functional Goal)和非功能目标(Non-fu
5、nctional Goal)n满足型目标(Satisfaction Goal)和信息型目标(Information Goal)n安全目标(Safety Goal)、性能目标(Performance Goal)、可用性目标(Usability Goal)等等 q软目标(Soft Goal)和硬目标(Hard Goal)q实现目标(Achieve Goal,又称为终止目标Cease Goal)、维护目标(Maintain Goal,又称为避免目标Avoid Goal)和优化目标(Optimize Goal)2.面向目标的方法n目标模型q关系n目标之间的链接目标之间的链接 qSupport(又称为D
6、ependency)链接和Conflict链接 qAND和OR链接 qAND Contribution链接和OR Contribution链接 积极(Positive),消极(Negative)n目标与其他需求模型元素的链接目标与其他需求模型元素的链接 qAND Operationalization链接和OR Operationalization链接:连接目标和操作 前置(pre-)、后置(post-)和触发(trigger)操作 qContribution链接:连接目标和场景等需求的描述元素 q普通链接:连接目标和分析模型 qResponsibility链接:连接目标和行为者 qDepend
7、ency链接:链接目标和任务、资源 2.面向目标的方法2.面向目标的方法n面向目标方法的处理过程 q目标的获取目标的获取:精化与分解n现状和背景的分析:问题与缺陷n已有目标的验证和细化 n基于场景的方法等等q目标分析目标分析:精化与分解n建立系统的目标模型 q目标实现目标实现 n收集与目标相关的需求信息,讨论可能的候选解决方案,确定最终的系统详细需求和解决方案 2.面向目标的方法n精化与分解2.面向目标的方法n精化与分解2.面向目标的方法的作用n指导和组织需求获取行为的开展q目标的发现和精化n整理和归类需求获取行为得到的信息 q目标模型为纲q目标模型与其他元素之间的关联n为详细信息的分析提供背
8、景基础和上下文知识 q目标定义了标准q目标关联的模型给出实现n帮助组织需求文档的结构 q参考目标的精化关系建立文档结构n作为需求验证的知识基础 q以目标为关联元素的验收标准主要内容1.模型驱动方法的作用2.面向目标的方法3.基于场景的方法4.基于用例的方法为什么需要“基于场景的方法”n需求获取内容的处理?q获取笔录:权宜之计n用户需求+问题域特性n混杂,不清晰等特性q基于场景的方法n场景为单位n问题域特性 或者 用户需求+问题域特性n组织清晰基于场景的方法n以场景为单位组织用户需求(和问题域特性)n很受实践者欢迎q易于接受q易于使用q用例驱动!n方法多样,差异性很大q也可以用来处理 业务需求
9、和 系统级需求q还可以用来处理 设计问题、测试问题基于场景的方法nZorman1995将场景定义为对系统和环境行为的局部描述nPlihon1998将场景定义为对行为或者事件序列的描述,序列中的行为和事件是系统需要完成的一个任务的特殊示例。nJarke1996认为场景包含有行为序列和行为发生的环境,环境描述了行为的主体、客体和上下文设置。n以上的描述都不足以作为场景的准确定义,人们也很难给场景下一个非常准确的定义Rolland1998a。3.基于场景的方法n场景q具有重点描述真实世界的特征,它利用情景、行为者之间的交互、事件随时间的演化等方式来叙述性的描述系统的使用 3.基于场景的方法n基于场景
10、的方法的用途3.基于场景的方法n场景方法的分类3.基于场景的方法n场景的形式:场景的表达模式 q描述(Description)n表示法的正规性 q非形式化语言、半形式化语言和形式化语言n媒介形式(Medium)q叙述性的自由文本、结构化文本、强限制文本、表格、图表、图像等 q外观n动态、静态、交互3.基于场景的方法n场景的内容q主要关注点 n关于现在的,关于未来的,关于解决方案的 q环境范围 n系统内部,系统外部,系统和环境的交互q抽象层次 n具体的、抽象的、混合的q覆盖范围 n功能需求,非功能需求 q粒度 n整个业务过程;某个任务的完成过程;某个交互行为的详细处理步骤 q示例类型 n正常流程
11、,异常流程 3.基于场景的方法n场景的目的q描述(descriptive)n需求的文档化,n需求协商q探索(exploratory)n需求获取 n需求建模与分析 q解释(explanatory)n需求的验证 3.基于场景的方法n场景的生命周期3.基于场景的方法n场景方法的作用q组织需求获取得到的信息;3.基于场景的方法n场景方法的作用q帮助进行详细的需求分析;q指导需求验证3.基于场景的方法n场景方法的作用q结合面向目标的方法,指导需求获取活动的开展;3.基于场景的方法n场景方法的作用q指导需求规格说明文档写作;n用例文档主要内容1.模型驱动方法的作用2.面向目标的方法3.基于场景的方法4.基
12、于用例的方法4.基于用例的方法n用例q相关场景集合的叙述性的文本描述 q用例的概念是Jacobson1992最先在Objectory方法中提出的qUML以用例来捕获系统的功能需求,而不是所有的系统需求q被广泛应用:以用例为中心 4.基于用例的方法4.基于用例的方法nUML将用例定义为“在系统(或者子系统或者类)和外部对象的交互当中所执行的行为序列的描述,包括各种不同的序列和错误的序列,它们能够联合提供一种有价值的服务”Rumbaugh2004。nCockburn2001认为用例描述了在不同条件下系统对某一用户的请求所作出的响应。根据用户的请求和请求时的系统条件,系统将执行不同的行为序列,每一个
13、行为序列被称为一个场景。n目标性,多场景性n功能需求(擅长)与非功能需求(偏弱)4.基于用例的方法n重要术语4.基于用例的方法用例的描述ID:用例的标识,通常会结合用例的层次结构使用X.Y.Z的方式名称:对用例内容的精确描述,体现了用例所描述的任务,通常是“动词名词”用例属性包括创建者、创建日期、更新历史等参与者:描述系统的主参与者、辅助参与者和每个参与者的目标描述:简要描述用例产生的原因,大概过程和输出结果优先级:用例所描述的需求的优先级触发条件:标识启动用例的事件,可能是系统外部的事件,也可能是系统内部的事件,还可能是正常流程的第一个步骤前置条件:用例能够正常启动和工作的系统状态条件后置条
14、件:用例执行完成后的系统状态条件正常流程:在常见和符合预期的条件下,系统与外界的行为交互序列分支流程:用例中可能发生的非常见的其他合理场景异常流程:在非预期的错误条件发生时,系统对外界进行响应的交互行为序列相关用例:记录和该用例存在关系的其他用例。关于用例之间的关系见10.4.4业务规则:可能会影响用例执行的业务规则特殊需求:和用例相关的其他特殊需求,尤其是非功能性需求假设:在建立用例时所做的假设待确定问题:一些当前的用例描述还没有解决的问题4.基于用例的方法用例的描述示例Use Case UC1:Process SaleGoal in Context:Accurate and fast sa
15、les process with no payment errors.Actors:Primary:-Cashier:processes the sales items and returns changes Secondary:-Customer:purchases sales items and gets change-Payment Authorization Service:processes customer authorization-Inventory System:update inventoryPreconditionCashier is identified and aut
16、henticatedPost-ConditionSales is saved.Accounting and Inventory are updated.Receipt is generated4.基于用例的方法用例的描述示例Steps(Basic Flow):1.Customer arrives at POS checkout with goods to purchase 2.Cashier starts a new sale 3.Cashier enters item identifier.4.System records sale line item and presents item d
17、escription,price,and running total.Price calculated from a set of price rules.Cashier repeats step 3-4 until done with all items.5.System presents total.6.Cashier tells Customer the total,and asks for payment.7.Customer pays and System handles payment.8.System logs completed sale and sends sale and
18、payment information to the external Inventory system(to update inventory).9.System presents receipt.10.Customer leaves with receipt and goods.4.基于用例的方法用例的描述示例Extensions*a:At any time,system crashes:in order to support recovery and correct accounting,ensure all transaction sensitive state and events
19、can be recovered at any step in the scenario 1.Cashier restarts the system,logs in,and requests recovery of prior state 2.system reconstructs prior state3a:Invalid Identifier 1.system signals error and rejects entry3b:There are multiple of same item category and tracking unique item identify not imp
20、ortant 2.Cashier can enter item category identifier and quantity4.基于用例的方法用例的描述示例Special Requirements1.Touch screen UI on a large flat panel monitor.Text must be visible from 1 meter2.Credit authorization response within 30 seconds 90%of the time3.Language internationalization on the text displayed4.
21、Pluggable business rules to be insertable at steps 3 and 7Technology and data variations list3a.Item identifier entered by laser scanner or keyboard3b.Item identifier must be any UPC,EAN,JAN,or SKU coding systemTo be defined4.基于用例的方法n场景定位q用例是静态的结构化文本描述。q用例的内容可以是对当前世界的描述,也可以是对将来确定的解系统的内部行为描述,还可以是对一种期
22、待的解决方案的描述。q用例可能会被用于描述系统内部的交互,也可能被用于描述系统和环境的交互,还可能会被用于描述行为的环境和背景。q用例是类型层次的事件描述,主要用来描述功能需求。n可以包含其他类型的需求q用例的内容既包含有正常流程,又包含有异常流程。4.基于用例的方法n场景定位q用例可以是比较抽象的,用于描述整个业务过程;也可以是比较具体的,用于描述某个任务的完成过程;还可以是非常具体的,描述某个交互行为的详细处理步骤。在需求工程的前期,会产生第一种和第二种用例描述,但最终都需要细化为最后一种形式的用例描述。q用例可以用于各种目的的应用,包括描述、探索和解释(explanatory)。需求获取
23、和需求验证是它在需求工程中的主要应用阶段,它也可以用于需求的建模、交流和协商。q场景的各种生命周期特征、应用和处理过程都适用于用例。4.基于用例的方法n用例的发现q涉众及其目标q每个涉众的一个目标意味着一个用例n用例的使用q描述、探索与解释4.基于用例的方法n用例模型q用例q参与者q关联q系统边界q多用例综合处理n不允许功能分解4.基于用例的方法用例文档本章小结n模型驱动方法是基于模型的建立和使用而提出的方法,它在整个需求工程,甚至软件工程中都可以发挥重要的作用q面向目标的方法n目标的概念将会对需求工程产生重要的影响q基于场景的方法n在软件工程当中有着极为广泛的应用q基于用例的方法n是最为常用的一种基于场景的方法n模型驱动方法虽然已经得到了相当广泛的应用,但是它们仍然在不断的发展和完善