面向目标的需求工程方法GlOitdREGoal-OrientedRE刘璘CourseforMSEStudents@SchoolofSoftware,TsinghuaU标Gl目标GoalAgoalisanobjectivethesystemunderconsiderationhldhshouldachieveGoalformulationreferstointendedpropertiestobeensuredTheyareoptativestatements,asopposedtoindicativeypppones,andboundedbythesubjectmatter目标定义为系统想要达到的状态或条件是对系统目标定义为系统想要达到的状态或条件,是对系统设计意图的一种说明和陈述,隐含地表达了期望系统所体现出的行为以及要满足的约束2统所体现出的行为,以及要满足的约束。目标分类3基于目标的方法GlbdAhGoal-basedApproachesApproachFocusonwhysystemsareconstructed重点放在为什么要建立一个系统重点放在为什么要建立一个系统Expressthe‘why’asasetofstakeholdergoals将建立系统的原因表示为干系人要实现的目标集合Usegoalrefinementtoarriveatspecificrequirements进行目标精化得到具体的需求Goalanalysis目标分析Goalanalysis目标分析document,organizeandclassifygoals对目标进行组织、分类、建立文档Goalevolution目标演化refine,elaborate,andoperationalizegoals对目标求精、细化、操作化Goalhierarchiesshowrefinementandobstaclerelationshipsbetweenl次构表间的精关系4goals运用目标层次结构表示目标间的精化及阻碍关系目标在需求分析中主要有下面的作用目标指导需求获取目标能够表达和分析非功能性需求目标能够把需求和组织业务环境联系起来目标能够把需求和组织业务环境联系起来目标便于表达和处理冲突需求目标能够驱动后续的设计过程5基于目标的方法GlbdhGoal-basedApproachesAdvantages优点Reasonablyintuitive比较直观yuExplicitdeclarationofgoalsprovidessoundbasisforconflictresolution目标可作为冲突解决的可靠依据dDisadvantages缺点Hardtocopewithevolutionofgoals目标的演化难于处理Cf(d)thlhihCanregressforeverup(ordown)thegoalhierarchy在目标层次结构上往复运行,无法终止6运用基于目标的方法UilbdhUsingagoal-basedapproachTipsMultiplesurcesyieldbetteralsMultiplesourcesyieldbettergoals多方采集所得到的目标更为精确Associatestakeholderswitheachgoal(revealsviewpointsandAssociatestakeholderswitheachgoal(revealsviewpointsandconflict)将各个目标与干系人联系起来,以强调不同人的观点和冲突UilhlbUsescenariostoexplorehowgoalscanbemet运用情景描述如何来实现目标ExplicitconsiderationofobstacleshelpstoelicitexceptionsExplicitconsiderationofobstacleshelpstoelicitexceptions考虑障碍有助于明确可能的例外情况7MdlliGl目标建模ModellingGoals8Glli目标分析GoalAnalysisGoalElaboration目标求精“Why”questionsexplorehihl(tt)highergoals(context)通过问“为什么”来探求高级目标(环境、上下文的要求)“How”questionsexplorelowergoals(operations)通过问“怎样”来探求低层目通过问怎样来探求低层目标(操作方式)“Howelse”questionsexplorealternativesexplorealternatives通过问“其它怎样”来探求其它的候选方案9Glli目标分析GoalAnalysisDependencyAnalysis分析目标依赖关系Precedenceordering–mustachievegoalsinaparticularorder目标实现的先后次序Obligation–achievingonegoalrequiresachievementofanother目标实现的制约关系Thwarting–achievingonegoalpreventsachievementofanother目标实现的阻碍关系ObstacleAnalysis目标障碍关系Canthisgoalbeobstructed,ifsohow?该目标的实现可能发生何种阻碍,如何阻碍?Whataretheconsequencesofobstructingit?目标受阻的后果是什么?10目标受阻的后果是什么?KAOSKAOSBackgroundgDevelopedintheearly90’sfirstmajorteleologicalrequirementsmodelinglanguage主要的目的论需求建模语言之一主要的目的论需求建模语言之fulltoolsupportavailable具有全面的工具支持hasbeenappliedtoanumberofindustrialcasestudies运用多个工业实例Twoparts:Twoparts:Informalgoalstructuringmodel非形式化的目标结构模型Formaldefinitionsforeachentityintemporallogic对每个实体给出形式化的定义ApproachMethodfocusesongoalelaboration关注目标的求精与细化Methodfocusesongoalelaboration关标的求精与defineinitialsetofhighlevelgoals&objectstheyreferto定义初始的高层目标与目标所指的对象defineinitialsetofagentsandactionstheyarecapableof11defineinitialsetofagentsandactionstheyarecapableof定义一组初始的主体以及它们所能进行的操作KAOSKAOSApproachppMethodfocusesongoalelaboration关注目标的求精与细化defineinitialsetofhighlevelgoals&objectstheyreferto定义初始的高层目标与目标所指的对象定义初始的高层目标与目标所指的对象defineinitialsetofagentsandactionstheyarecapableof定义一组初始的主体以及它们所能进行的操作Theniteratively之后反复执行以下步骤Theniteratively之后反复执行以下步骤refinegoalsusingAND/ORdecomposition对目标进行与/或分解idifblldlfliidentifyobstaclestogoals,andgoalconflicts找出目标障碍,即目标冲突operationalizegoalsintoconstraintsthatcanbeassignedtoindividualtagents将目标操作化为约束,并分配给主体refine&formalizedefinitionsofobjects&actions12对对象及动作求精并形式化KAOS元模型KAOSmetamodelKAOSmeta-model13运用基于目标的方法UilbdhUsingagoal-basedapproachGoals目标:用于表示企业或组织的目的highlevelobjectivesofthebusinessororganisationRequirements需求:描述如何通过新的系统实现目的specifyhowagoalistobeaccomplishedbythenewsystemTypes目标类型Achievementgoals——成就型目标Maintenancegoals——保持型目标Maintenancegoals保持型目标Softgoals——软目标Obstacles&constraints障碍与约束Obstaclesarebehaviorsthatpreventachievementofagivengoal障碍是妨碍某个目标达成的行为Constraintsareconditionsontheachievementofgoals14Constraintsareconditionsontheachievementofgoals约束是达成某个目标所需满足的条件“每个会议都将在所有预期与会人参加”的情况下召开”GoalAchieve[ConvenientMeetingHeld]InstanceOfInformationGoalInstanceOfInformationGoalConcernsMeeting,Participant,Schedule,…RefinedToMeetingRequested,ConstraintsKnown,MeetingPlanned,…InformalDefinition“每个会议都将在所有预期与会人参加的情况下召开”每个会议都将在所有预期与会人参加的情况下召开FormalDef∀m:Meeting:m.Requestedm.Holds∧(∀p:Participant):Intended(p,m)→Participates(p,m)15SystemGoalAchieve[BookRequestSatisfied]InstanceOfSatisfactionGoalInstanceOfSatisfactionGoal%declarationofgoalcategory%ConcernsBorrower,Book,Borrowing,...FormalDef(∀bor:Borrower,b:Book,lib:Library)Requesting(bor,b)∧b.subject∈lib.coverageAreaqg(,)∧jg⇒◊(∃bc:BookCopy)(Copy(bc,b)∧Borrowing(bor,bc))16P表示“下一个状态下,性质P成立”;P表示“当前或未来某一状态下,性质P成立”;P表示当前或未来某状态下,性质P成立;P当前以及未来所有状态下,性质P成立;P前一个状态下,性质P成立;P当前或从前某状态下性质P成立♦P当前或从前某一状态下,性质P成立;P当前和从前所有状态下,性质P成立;PQ在所有未来状态下,性质P成立则性质Q成立;QQ≤kuP在k个时间单位u以内的未来某一状态下,性质P成立;≤dP在截止时刻d到达前的未来所有状态下,性质P成立;@P在当前状态下性质P成立在上一个状态下P不成立@P在当前状态下性质P成立,在上一个状态下P不成