中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt

上传人:文库蛋蛋多 文档编号:2283578 上传时间:2023-02-09 格式:PPT 页数:107 大小:1.22MB
返回 下载 相关 举报
中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt_第1页
第1页 / 共107页
中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt_第2页
第2页 / 共107页
中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt_第3页
第3页 / 共107页
中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt_第4页
第4页 / 共107页
中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt》由会员分享,可在线阅读,更多相关《中科院需求工程 需求工程(第四讲)面向目标的方法_.ppt(107页珍藏版)》请在三一办公上搜索。

1、需 求 工 程,金芝中国科学院数学与系统科学研究院,第四讲:面向目标的方法,方法概述建模原语基于目标的建模和分析应用情况,面向目标的方法,What You Get Is What You Want(WYGIWYW),什么是目标,什么是目标?A goal is an objective that the system under consideration should achieveGoal formulations refer to intended properties to ensuredThey are optative statements as opposed to indicat

2、ive ones,and bounded by the subject matter,什么是目标,不同层次的目标,高层策略型目标,低层技术型目标,运送更多旅客,提供随处可用的提现服务,及时发出加速指令,3次密码错误则不退卡,策略性的、粗粒度的、作用于组织范围的抽象目标,技术性的、细粒度的、作用于系统设计层面的具体目标,什么是目标,不同类型的目标功能性目标:要实现的服务,是需求相关者期望发生的所有场景的集合。非功能性目标:与提供服务的质量关联,如良好的保密性,较高的安全性,较强的准确性,较好的易用性等,或者对开发过程质量的期望,例如良好的适应性,较强的互操作性,较高的可重用性等 酒店管理系统的功

3、能性目标:尽可能满足所有客人的房间预定请求图书管理系统的非功能性目标:用户的每一次查询都能够尽快地返回结果,什么是目标,目标由谁来满足:整个系统火车运输系统:目标:安全运输参与者:火车司机、列车轨道、车站计算机、通讯设备、旅客、等等ATM机系统:目标:允许合法用户提取现金参与者:ATM软件、感应器/actuators、用户、等等,目标类型和层次,可满足性还不明确,可满足性可以验证,产生行为使得目标特性在将来总要被满足(拒绝),限制行为要求目标特性在将来永久保持(拒绝),比较行为,偏向更好保证软目标特性行为,提供信息的目标,满足请求的目标,为什么需要目标,目标分析提供一种关于系统的全局的视角目标

4、的满足由整个系统及环境主体共同完成。例如:铁路运输系统的安全性目标是由火车司机、轨道管理系统、车站管理系统、通讯设备、乘客等共同参与完成的;ATM系统保持用户合法性的目标是由ATM控制软件、感应器、效应器、用户等共同协作完成的。只有采用全局的俯瞰的视角才能有效地分析和解决这类目标。,为什么需要目标,保证需求的完整性目标是需求足够完整的精确评判标准规格说明相对于一组目标是完整的,如果 可以证明所有目标(G)是能实现的 由 规格说明(S)和 所涉及的领域的特性(D)D,S|=G=S相对于G是完备的,为什么需要目标,避免无关需求(最小性)目标是需求相关性的精确评判标准需求相对于一组关于所涉及领域的目

5、标是恰当或相关的,如果 其规格说明至少被用来证明一个目标若sS,g G,D,s|=g=S相对于G是最小相关的,为什么需要目标,向需求相关者解释需求目标给出了需求的说明 对应于设计过程中的设计目标出现一个需求是因为有一个目标作为它的基础目标求精树提供了从高层策略目的到低层技术需求的可跟踪链对业务系统来说,目标将未来软件和组织和业务上下文关联起来,为什么需要目标,目标精化过程,为复杂需求文档的结构化提供直观自然的机制,增加其可理解性目标精化过程中的选择,具有恰当的抽象程度,为什么需要目标,目标便于表达和处理冲突需求。目标的冲突是多视点冲突的根源,目标的不同满足标准有助于帮助开发人员对采用哪种方式处

6、理冲突进行决策。,为什么需要目标,目标相对比较稳定,利于需求演化实现目标的需求比目标演化的要快,它很容易被另一个实现相同目标的需求替代越高层的目标越稳定,不同版本的系统常常具有相同的高层目标,为什么需要目标,目标能够表达和分析非功能性需求。非功能性需求是工程研究中的重点和难点,目前大多采用非形式化的方法来描述,常用的建模工具UML也存在着难以为非功能性需求建模的缺陷。在面向目标的需求分析中,非功能性需求用软目标来表示,软目标可以逐步分解为子目标,目标从何而来?,显式的系统的需求相关者(Stakeholders)需求工程师掌握的初步材料,目标从何而来?,隐式的:需要进行目标抽取分析当前的系统,发

7、现问题和不足(精确构型并列举出来),对其取否,导致未来系统要实现的目标集从初步文档中寻找一些与意图相关的关键词发现目标对目标进行精化和抽象获得归结目标冲突或障碍导致新的目标,目标什么时候显式化?,显式化:从目标到软件行为用软件行为实现目标 等同于 用程序实现设计规格说明,方法主线:元模型,领域中所关心的事情,其实例会按状态而进化,对象上的输入/输出关系,定义状态变迁,由事件触发或终止,一种对象,作为行为的执行者,操作化目标,可以按由某个Agent可控制的状态来构型的目标,方法主线,建模主线:系统的目标层次结构。围绕目标的伸展关联:目标操作化为“约束”,约束由“活动”和活动所操作的“对象”来保证

8、,对象被区分为“事件”、“实体”、“关系”和“主体”四类,约束由主体负责完成,主体执行活动并具有活动的能力,事件可以触发或者终止活动,等等可以通过在目标树上添加标记来表示目标间的正向和负向的强弱影响。,目标的表示,目标名:每个目标都有名字简短描述:自然语言陈述句描述例如:用户提出“要为核电站设计安全的制冷系统”。则“安全的核电站制冷系统”将作为一个高层抽象目标的描述被抽取出来。会议调度系统要满足的目标之一是“每个会议都将在所有预期与会人参加的情况下召开。”,目标的形式化表示,KAOS语言,NFR建模框架以及i*/Tropos语言:特定的语法一阶时序逻辑断言算子:P表示“在当前状态下,性质P成立

9、”;P表示“在下一个状态,性质P成立”;P表示“在当前或未来某一状态,性质P成立”;P在当前以及未来所有状态,性质P成立;P在前一个状态,性质P成立;P在当前或以前某一状态,性质P成立;P在当前和以前所有状态,性质P成立;,目标的形式化表示,PQ在所有未来状态,性质P成立则性质Q成立;ku P在k个时间单位u以内的未来某一状态,性质P成立;d P在截止时刻d到达前的未来所有状态,性质P成立;P在当前状态下性质P成立,但在上一个状态,P不成立;PW Q在所有未来状态下,性质P成立直到Q成立,允许Q恒假;PU Q在所有未来状态下,性质P成立直到Q成立,Q必须在未来某一时刻为真。,目标模式,完成型目

10、标(Achieve):要求系统最终满足某性质;终止型目标(Cease):要求系统最终不再满足某性质;维持型目标(Maintain):要求系统始终满足某性质;避免型目标(Avoid):要求系统从不满足某性质。,目标模式的规约,完成型目标(Achieve):P Q 语义:如果P成立,则将来某个时候Q成立维持型目标(Maintain):P Q 语义:如果P成立,则将来Q总成立 P P W Q 语义:维持P成立直到Q成立终止型目标(Cease):P Q 语义:如果P成立,则将来某个时候Q不成立避免型目标(Avoid):P Q 语义:如果P成立,则将来Q总是不成立,目标分类,满足性目标(Satisfac

11、tion Goals):是满足各主体愿望的完成型目标;信息目标(Information Goals):是将环境状态信息通报给主体的完成型目标;安全目标(Security Goals):是避免灾难状态/恶意攻击发生的持续型目标;精确性目标(Accuracy Goals):是促使主体对环境的信念保持精确的持续型目标。,目标的图形表示,除了自然语言和形式化表示,目标还有图形化的表示,通常都是在目标图元中加目标名。在KAOS中,目标的图形表示是一个平行四边形()。在i*/Tropos中,目标的图形表示是圆角的矩形()。,软目标,软目标主要用于表达非功能性需求。软目标与一般目标的主要区别:一般目标的满足

12、性标准是客观的,能够清楚定义和表达的。软目标的满足标准则是主观的、相对的、依评价者的个人判断而定,是满意度(Satisficing)而非满足性(Satisfying)的问题。,软目标的表示,NFR框架:软目标的图形化表示为一个云形()i*和Tropos方法:软目标图形化表示为一个不规则的花生形()。,软目标的组成,非功能性软目标通常由两部分组成:类型和主题。例如,软目标“账户的准确性”中,“准确性”是类型,“账户”是主题。如果类型改变为“响应时间”则软目标“账户响应时间”的含义也随之改变。当主题发生改变,软目标的含义也随之改变。“账户的准确性”与“账户的响应时间”,或与“存款机的响应时间”是完

13、全不同的。一种略微结构化的软目标表示方法是:“软目标类型软目标主题”,例如,用“响应时间短账户”来表示软目标“账户的响应时间”。软目标可以有多于一个主题,例如,界面灵活性普通客户,金卡账户。,目标的操作化,可操作的目标是对目标与软目标进行分解和求精的结果。可操作的目标是目标分解树中靠近底层叶节点的目标,用于表示满足高层目标的具体设计方案。例如:要实现“快的帐户响应时间”这个软目标,可以“采用索引技术”,“采用索引技术”就是一个可操作的目标。,可操作目标的表示,NFR框架:图形表示为边界加重的云形图案KAOS:圆角的矩形i*和Tropos:表示为任务,目标间的关联,目标间的关联:自顶向下的分解关

14、系自底向上的贡献关系横向的副作用关系,目标的分解,目标分解:与精化:目标到一组子目标 语义:所有子目标被满足,父目标才被满足或精化:目标到一组精化选择 语义:只要一个选择被满足,足以让父目标满足软目标的分解(软目标类型主题对象)按软目标类型进行分解按软目标对象进行分解软目标的操作化,目标的贡献,一个高层的、抽象的、粗略的软目标可以分解为相对低层的、具体的和细化的子(软)目标或操作化目标。每个单个的子目标可以对父目标的满足性产生出不同的贡献。贡献类型分为两个维度:贡献的影响和贡献的程度。贡献的影响可以是正向、负向或未知;贡献的程度可以是完全的、部分的或程度未知。,目标的副作用关系,副作用包括贡献

15、副作用和冲突副作用。例如:“提高性能”会导致“成本提高”,是横向副作用关系,表明一种冲突。即一个目标被满足会阻止另一个目标的满足。“信息的保密性”会提高“信息的安全性”,也是横向副作用,表明一种贡献。即一个目标被满足会帮助另一个目标的满足。,建模原语:目标与/或树,建模原语:其它关联,目标与其它需求建模元素的关联目标与操作:操作的前提条件、后置条件、触发条件,保证目标目标的可满足性目标与情景:互补情景:具体、叙述性、过程性、意图隐含于其中目标:抽象、描述性、显式展现意图更进一步,情景可以是例子或者是反例,可以展示目标的实现过程,也可以表现阻止目标可满足的情况,建模原语:其它关联,目标与其它需求

16、建模元素的关联目标模型与对象模型:具体的目标可以涉及实体、关系或者agent,支持从目标模型系统化地导出对象模型目标与Agents:职责关系,将目标赋予一个Agent完成,有利于识别系统的边界形成目标结构,目标形式化表示框架,Goal 目标模式目标名 InstanceOf 目标分类 Concerns 对象集合 RefinedTo 子目标 InformalDef 自然语言陈述 FormalDef 一界时态逻辑公式,目标形式化表示举例,Goal Achieve TrainProgress FormalDef Goal Maintain TrainWaiting FormalDef,Goal Ach

17、ieve ConvenientMeetingHeldDefinition“每个会议都将在所有预期与会人参加的情况下召开”FormalDef m:Meeting:m.Requested m.Holds(p:Participant):Intended(p,m)Participates(p,m),目标形式化表示举例,Goal AchieveParticipantsConstraintsKnown InstanceOf InformationGoal Concerns Meeting,Participant,Schedule,RefinedTo ConstraintsRequested,Constra

18、intsProvided InformalDef A meeting scheduler should know the constraints of the various participants invited to the meeting within C days after appointment FormalDef m:Meeting,p:Participant,s:Scheduler Invited(p,m)Scheduling(s,m)=Cd Knows(s,p,Constraints),目标模式,目标名,目标类型,关注的对象,两个子目标,语义定义,目标模型中的其它概念,对象

19、:客观世界领域中所关注的事情,可能是按状态进化的。比如:实体、关系、事件Agent:一种特殊的对象作为行为的执行机制,如果该行为被分配知道一个对象,如果该对象的状态对它来说是可观察的话可以是人、设备、程序、等等,Agent形式化表示举例,Agent Staff/主体定义Has competenceArea,/主体属性Invariant/主体不变式(st:Staff)(InstanceOf(st:ResearchStaff)InstanceOf(st,SecretaryStaff)Load CapableOf/主体能力集合AddCopy,RemoveCopy,BiblioQuery,CheckO

20、ut,Return,IssueReminder,Performs/主体动作集合AddCopy,RemoveCopy,Knows/主体知识集合Borrowing Interface:BorrowingSheet,Agent形式化表示举例,Agent Participant CapableOf CommunicateConstraints,Has Constraints:TupleExcludedDates:SeqOfTimeInterval,PreferredDates:SeqOfTimeInterval,关系形式化表示举例,Relationship Invited Links Particip

21、antscard:0:N,Meetingcard:1:N DomInvar p:Participant,m:Meeting Invited(p,m)pRequesting-,m.ParticipantsList,目标模型中的其它概念,行为/操作:对象之间的输入、输出关系,其数学含义是作用于对象集合之上的关系。动作导致状态迁移。动作通过前置条件、后置条件和触发条件来定义:前置条件:动作执行的起始状态需要满足的最弱必要条件触发条件:动作执行的起始状态需要满足的最弱充分条件后置条件:动作执行的终止状态需要满足的最强条件条件被区分为两大类:领域(domain)前置和后置条件,描述操作所引发的领域中的基

22、本状态迁移,需求(Required)前置和后置条件,描述该操作为确保需求的满足要引发的额外状态迁移。,行为/操作形式化表示,Action 行为名 Input 行为输入 Output 行为输出 DomPre 领域前置条件 DomPost 领域后置条件 RequiredPre 行为执行的前置条件 RequiredPost 行为执行的后置条件,行为形式化表示举例,Action CheckOut/动作定义Input BookCopy Arg:bc,Library Arg:bor/动作输入参数Output Library Res:lib/动作输出参数PreCondition bc lib.availab

23、le/动作前、后置条件PostCondition bc lib.available bc lib.checkedOut Borrowing(bor,bc)Action IssueReminder/动作定义Input Borrower Arg:bor,BookCopy Arg:bc/动作输入参数Output Reminder/动作输出参数TriggerCondition/动作触发条件2wBorrowing(bor,bc)1w(r:ReminderIssued)Occurs(r)r=(bor,bc,-)PostCondition/动作后置条件,行为形式化表示举例,Action DetermineS

24、chedule Input Requesting,MeetingArg:m Output MeetingRes:m DomPre Requesting(-,m)Scheduled(m)DomPost Feasible(m)Scheduled(m)Feasible(m)DeadEnd(m),行为形式化表示举例,Action Move Input tr:Train;loc,loc:Location Output At DomPre At(tr,loc)and locloc DomPost At(tr,loc)RequiredPre for DoorsClosedWhileMoving:tr.Doo

25、rs=closed RequiredPost for DoorsClosedWhileMoving:tr.Doors=closed,目标模型中的其它概念,约束(Constraint):可实现的目标,即能够根据主体可控制的状态来构型的目标。所有的目标最终都将精化为约束,约束被操作化为动作和对象,约束要被分配给主体来完成。,约束形式化表示举例,WeakConstraint MaintainAgendaUpToDate/约束定义 InstanceOf ConsistencyConstraint/约束实例 UnderResponsibilityOf Participant/约束的责任主体 Formal

26、Def/约束的形式化描述(p:Participant,tp:Timeinterval)Free(p,tp)tp BusyPeriods,目标模型中的其它概念,情景(Scenario):由相应主体实例控制的领域相容的状态迁移序列。领域相容性是指当操作的领域前置条件和操作涉及对象的领域不变式满足时,运用该操作所导致的后置条件将满足领域后置条件。依据情景定义找出规约中遗漏的动作和隐含的目标。,情景形式化表示举例,Scenario HandleMeetingRequest/情景定义Is(IssueRequest:SubmitRequest;ValidateRequest);/动作序列AskPartic

27、ipantsConstraints;(GetConstraints:FormulateConstraints;CommunicateConstraints;ValidateConstraints)*;PlanMeeting;(NotifyResults:(NotifyDate&Location|NotifyDeadEnd),需求抽取和建模过程,以元模型为基础的需求抽取,需求抽取过程和策略,策略:遍历元模型图来获取实例获取目标结构:AND/OR结构(HOW:抽取子目标;WHY:提取父目标)识别有冲突的目标将目标逐步精化为可实现的约束标识目标涉及的对象描述对象的领域特性识别对象有意义的状态变迁(行

28、为的前置条件和后置条件)定义行为保证约束的可满足性识别系统的相关主体,确定主体的职责,并将行为赋予主体,目标的精化:基本思路,一组目标G1,G2,Gn是目标G的完全精化,当且仅当G1,G2,Gn|-G(必要性)G1,G2,Gn|-false(一致性)n 1(非平凡性)Forany 1jn,G1,Gj-1,Gj+1,Gn|-G(最小性),目标的精化:精化模式,抽象目标断言的一级与树分解,使得叶子断言的集合是根断言的完全求精,目标精化策略,时间驱动:寻找中间状态,按目标满足的先后次序划分子目标主体驱动:按参与目标实现的主体集合进行目标划分,使子目标有较少的主体参与案例驱动:按照案例分析进行划分,比

29、如:正常案例和例外案例,精化模式:实现型目标的精化,实现型目标的两种精化模式时间驱动的分解PQ:PR,RQ案例驱动的分解PQ:PRQ,PR(PR)P(PR);PRRPPPU(PR);PRP,PRRPR,PP;PP,RR,精化模式:实现型目标的精化,精化模式的作用,支持形式化推理帮助检测不完全的精化帮助开拓需求使各种选择显式化,其它目标精化模式,实现型目标PQ:PRQ,PR,PPWQPQ:PR,RQPQ:PR,RRUQPQ:PP1Q1,PP2Q2,(P1P2)Q1Q2Q,目标的操作化,激励响应模式安全需求模式,激励响应模式目标精化,可操作的约束,可操作的约束,可操作的约束,安全需求精化模式,可操

30、作的约束,可操作的约束,可操作的约束,从约束到行为,目标冲突,识别边界条件,定义分歧模式:,识别边界条件举例,冲突归结,避免边界条件:冲突原因:边界条件的出现直观的策略:防止边界条件的出现引入新目标PB阻止的边界条件B,冲突归结,目标修补:情况:边界条件无法避免策略:引入新目标使得如果边界条件B 出现的话,有分歧的目标断言Ai,在某个合理的将来为真,冲突归结,则引入新目标来避免预测的矛盾:CPdP,矛盾预测:情况:发现一些持久的条件P,使得在某个上下文C中,如果条件P存留的太久,会不可避免地陷入矛盾。即,冲突归结,目标弱化:通过弱化出现分歧的目标的形式,使分歧消失比如,两个目标AchieveR

31、equestSatisfied 和AvoidUnReliableResource Used有分歧的,其断言是Requesting(u,r)Using(u,r)Reliable(r)口Using(u,r)产生分歧的边界条件是(u:User,r:Resource)Requesting(u,r)Reliable(r)引入新目标Requesting(u,r)(Requesting(u,r)Reliable(r)弱化上面第一个目标,以便覆盖这个边界条件。,案例研究旧金山湾区快速交通系统(BART),步骤和模型,四个子模型目标模型、对象模型、Agent职责模型、操作模型开发步骤目标抽取和精化(目标精化)从

32、目标模型中导出对象、关系和属性(对象建模)识别Agent以及Agent的职责(职责分配)定义操作及其前置条件和后置条件(操作化),目标识别,按关键词寻找目标:objective,purpose,intent,concern,in order to,得到目标ServeMorePassengersNewTracksAddedMinimizeDevelopmentCostsMinimizeDistanceBetweenTrainsSafeTransportation,目标识别,建立目标之间的量化关联Contributes(+),ControbutesStrongly(+),Conflicts(-),

33、ConflictsStrongly(-)确定目标的分类Maintain,Avoid:always目标,(PQ),(PQ),表示总是(不)成立Achieve,Cease:eventually目标,PQ,PQ,表示将来每个时刻(不)成立,目标模型,what,what,将目标形式化,识别对象和关联,SpeedLimit,增加属性,Speed,增加属性,识别对象和关联,Loc,WCS-Dist,增加属性,增加关联following,目标模型,why,WHY目标抽象,目标模型,how,HOW目标精化,识别主体和职责分配,识别主体和职责分配,导出主体接口,Speed/AccelerationControl

34、System(判断目标前提,建立目标结论)监测变量:Train.info控制变量:CommandMessage.Accel,CommandMessage.Speed,导出系统操作,MaintainSafeCommandMessage,将目标操作化,估计可能的障碍,目标AchieveCommandMsgIssuedInTime的可能障碍有:CommandMsgNotIssuedCommandMsgIssuedLateCommandMsgSentToWrongTrain目标AchieveCommandMsgDeliveredInTime的可能障碍有:CommandMsgDeliveredLateC

35、ommandMsgCorrupted目标MaintainSafeCmdMsg的可能障碍有:UnsafeAcceleration,进行障碍分析,障碍树,容错树分析障碍消除,导出新的需求目标替换策略,比如设计新的目标Agent替换策略,比如赋予Agent更多的职责障碍缓和策略,比如引入新的子目标,处理冲突,处理冲突,边界条件,处理冲突,应用情况,小结,面向目标的方法将“目标”看作是软件需求的源头和依据,以目标为需求获取的基本线索,诱导需求提供者按目标的分解、精化和抽象关系,逐步构建系统目标与/或树。目标驱动需求获取的步骤:获取目标结构,确定目标所关注的对象;初步确定系统的相关主体和主体能够完成的动

36、作;将目标操作化为约束;对对象和动作进行精化;导出对象和动作为确保约束的满足所需的加强条件;确定主体职责分配的各种候选方案;将动作分配给相应的责任主体。,小结,目标按照所描述的内容可以分为功能性目标和非功能性目标。目标还可以按描述的抽象层次分为高层目标和低层目标。目标障碍分析主要关注系统有哪些可能的例外行为会对期望实现的目标产生阻碍。障碍分析可以看作一般冲突消解过程的特例。目标形式化的定义为一组期望行为的集合,相反的,障碍则定义了一系列不期望发生的行为,是要系统要避免的场景。,小结,软目标主要表达非功能性需求。软目标与一般目标的主要区别:一般目标的满足性标准是客观的,能够清楚定义和表达的。而软目标的满足标准则是主观的、相对的、依评价者的个人判断而定,是满意度而非满足性的问题。软目标的评价决定处于目标分解结构上层的软目标的满足程度。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号