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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

需求工程金芝中国科学院数学与系统科学研究院zhijin@amss.ac.cn第四讲:面向目标的方法•方法概述•建模原语•基于目标的建模和分析•应用情况面向目标的方法WhatYouGetIsWhatYouWant(WYGIWYW)什么是目标•什么是目标?–Agoalisanobjectivethatthesystemunderconsiderationshouldachieve–Goalformulationsrefertointendedpropertiestoensured–Theyareoptativestatementsasopposedtoindicativeones,andboundedbythesubjectmatter什么是目标•不同层次的目标高层策略型目标低层技术型目标运送更多旅客提供随处可用的提现服务及时发出加速指令3次密码错误则不退卡策略性的、粗粒度的、作用于组织范围的抽象目标技术性的、细粒度的、作用于系统设计层面的具体目标什么是目标•不同类型的目标–功能性目标:要实现的服务,是需求相关者期望发生的所有场景的集合。–非功能性目标:与提供服务的质量关联,如良好的保密性,较高的安全性,较强的准确性,较好的易用性等,或者对开发过程质量的期望,例如良好的适应性,较强的互操作性,较高的可重用性等•酒店管理系统的功能性目标:尽可能满足所有客人的房间预定请求•图书管理系统的非功能性目标:用户的每一次查询都能够尽快地返回结果什么是目标•目标由谁来满足:整个系统–火车运输系统:•目标:安全运输•参与者:火车司机、列车轨道、车站计算机、通讯设备、旅客、等等–ATM机系统:•目标:允许合法用户提取现金•参与者:ATM软件、感应器/actuators、用户、等等目标类型和层次功能目标目标非功能目标软目标目标‘硬’目标实现型目标(停止型目标)目标维护型目标(避免型目标)优化型目标精确性目标满足型目标信息型目标性能目标响应时间吞吐量安全性目标完整性目标可满足性还不明确可满足性可以验证产生行为使得目标特性在将来总要被满足(拒绝)限制行为要求目标特性在将来永久保持(拒绝)比较行为,偏向更好保证软目标特性行为提供信息的目标满足请求的目标为什么需要目标•目标分析提供一种关于系统的全局的视角–目标的满足由整个系统及环境主体共同完成。例如:•铁路运输系统的安全性目标是由火车司机、轨道管理系统、车站管理系统、通讯设备、乘客等共同参与完成的;•ATM系统保持用户合法性的目标是由ATM控制软件、感应器、效应器、用户等共同协作完成的。–只有采用全局的俯瞰的视角才能有效地分析和解决这类目标。为什么需要目标•保证需求的完整性–目标是需求足够完整的精确评判标准–规格说明相对于一组目标是完整的,如果可以证明所有目标(G)是能实现的由规格说明(S)和所涉及的领域的特性(D)D,S|=G=S相对于G是完备的为什么需要目标•避免无关需求(最小性)–目标是需求相关性的精确评判标准–需求相对于一组关于所涉及领域的目标是恰当或相关的,如果其规格说明至少被用来证明一个目标若sS,gG,D,s|=g=S相对于G是最小相关的为什么需要目标•向需求相关者解释需求–目标给出了需求的说明对应于设计过程中的设计目标–出现一个需求是因为有一个目标作为它的基础–目标求精树提供了从高层策略目的到低层技术需求的可跟踪链–对业务系统来说,目标将未来软件和组织和业务上下文关联起来为什么需要目标•目标精化过程,为复杂需求文档的结构化提供直观自然的机制,增加其可理解性•目标精化过程中的选择,具有恰当的抽象程度为什么需要目标•目标便于表达和处理冲突需求。–目标的冲突是多视点冲突的根源,–目标的不同满足标准有助于帮助开发人员对采用哪种方式处理冲突进行决策。为什么需要目标•目标相对比较稳定,利于需求演化–实现目标的需求比目标演化的要快,它很容易被另一个实现相同目标的需求替代–越高层的目标越稳定,不同版本的系统常常具有相同的高层目标为什么需要目标•目标能够表达和分析非功能性需求。–非功能性需求是工程研究中的重点和难点,目前大多采用非形式化的方法来描述,–常用的建模工具UML也存在着难以为非功能性需求建模的缺陷。–在面向目标的需求分析中,非功能性需求用软目标来表示,软目标可以逐步分解为子目标目标从何而来?•显式的–系统的需求相关者(Stakeholders)–需求工程师掌握的初步材料目标从何而来?•隐式的:需要进行目标抽取–分析当前的系统,发现问题和不足(精确构型并列举出来),对其取否,导致未来系统要实现的目标集–从初步文档中寻找一些与意图相关的关键词发现目标–对目标进行精化和抽象获得–归结目标冲突或障碍导致新的目标目标什么时候显式化?•显式化:从目标到软件行为•用软件行为实现目标等同于用程序实现设计规格说明方法主线:元模型领域中所关心的事情,其实例会按状态而进化对象上的输入/输出关系,定义状态变迁,由事件触发或终止一种对象,作为行为的执行者操作化目标,可以按由某个Agent可控制的状态来构型的目标方法主线•建模主线:系统的目标层次结构。•围绕目标的伸展关联:–目标操作化为“约束”,–约束由“活动”和活动所操作的“对象”来保证,–对象被区分为“事件”、“实体”、“关系”和“主体”四类,–约束由主体负责完成,–主体执行活动并具有活动的能力,–事件可以触发或者终止活动,等等•可以通过在目标树上添加标记来表示目标间的正向和负向的强弱影响。目标的表示•目标名:每个目标都有名字•简短描述:自然语言陈述句描述•例如:–用户提出“要为核电站设计安全的制冷系统”。则“安全的核电站制冷系统”将作为一个高层抽象目标的描述被抽取出来。–会议调度系统要满足的目标之一是“每个会议都将在所有预期与会人参加的情况下召开。”目标的形式化表示•KAOS语言,NFR建模框架以及i*/Tropos语言:特定的语法•一阶时序逻辑断言算子:–P表示“在当前状态下,性质P成立”;–P表示“在下一个状态,性质P成立”;–P表示“在当前或未来某一状态,性质P成立”;–P在当前以及未来所有状态,性质P成立;–P在前一个状态,性质P成立;–P在当前或以前某一状态,性质P成立;–P在当前和以前所有状态,性质P成立;目标的形式化表示–PQ在所有未来状态,性质P成立则性质Q成立;–kuP在k个时间单位u以内的未来某一状态,性质P成立;–dP在截止时刻d到达前的未来所有状态,性质P成立;–@P在当前状态下性质P成立,但在上一个状态,P不成立;–PWQ在所有未来状态下,性质P成立直到Q成立,允许Q恒假;–PUQ在所有未来状态下,性质P成立直到Q成立,Q必须在未来某一时刻为真。目标模式•完成型目标(Achieve):要求系统最终满足某性质;•终止型目标(Cease):要求系统最终不再满足某性质;•维持型目标(Maintain):要求系统始终满足某性质;•避免型目标(Avoid):要求系统从不满足某性质。目标模式的规约•完成型目标(Achieve):PQ语义:如果P成立,则将来某个时候Q成立•维持型目标(Maintain):P�Q语义:如果P成立,则将来Q总成立PPWQ语义:维持P成立直到Q成立•终止型目标(Cease):PQ语义:如果P成立,则将来某个时候Q不成立•避免型目标(Avoid):P�Q语义:如果P成立,则将来Q总是不成立目标分类•满足性目标(SatisfactionGoals):是满足各主体愿望的完成型目标;•信息目标(InformationGoals):是将环境状态信息通报给主体的完成型目标;•安全目标(SecurityGoals):是避免灾难状态/恶意攻击发生的持续型目标;•精确性目标(AccuracyGoals):是促使主体对环境的信念保持精确的持续型目标。目标的图形表示•除了自然语言和形式化表示,目标还有图形化的表示,通常都是在目标图元中加目标名。•在KAOS中,目标的图形表示是一个平行四边形()。在i*/Tropos中,目标的图形表示是圆角的矩形()。软目标•软目标主要用于表达非功能性需求。•软目标与一般目标的主要区别:–一般目标的满足性标准是客观的,能够清楚定义和表达的。–软目标的满足标准则是主观的、相对的、依评价者的个人判断而定,是满意度(Satisficing)而非满足性(Satisfying)的问题。软目标的表示•NFR框架:软目标的图形化表示为一个云形()•i*和Tropos方法:软目标图形化表示为一个不规则的花生形()。软目标的组成•非功能性软目标通常由两部分组成:类型和主题。例如,–软目标“账户的准确性”中,“准确性”是类型,“账户”是主题。–如果类型改变为“响应时间”则软目标“账户响应时间”的含义也随之改变。•当主题发生改变,软目标的含义也随之改变。–“账户的准确性”与“账户的响应时间”,或与“存款机的响应时间”是完全不同的。•一种略微结构化的软目标表示方法是:“软目标类型[软目标主题]”,例如,–用“响应时间短[账户]”来表示软目标“账户的响应时间”。•软目标可以有多于一个主题,例如,–界面灵活性[普通客户,金卡账户]。目标的操作化•可操作的目标是对目标与软目标进行分解和求精的结果。•可操作的目标是目标分解树中靠近底层叶节点的目标,用于表示满足高层目标的具体设计方案。例如:–要实现“快的帐户响应时间”这个软目标,可以“采用索引技术”,“采用索引技术”就是一个可操作的目标。可操作目标的表示•NFR框架:图形表示为边界加重的云形图案•KAOS:圆角的矩形•i*和Tropos:表示为任务目标间的关联•目标间的关联:–自顶向下的分解关系–自底向上的贡献关系–横向的副作用关系目标的分解•目标分解:–与精化:目标到一组子目标语义:所有子目标被满足,父目标才被满足–或精化:目标到一组精化选择语义:只要一个选择被满足,足以让父目标满足•软目标的分解(软目标类型[主题对象])–按软目标类型进行分解–按软目标对象进行分解–软目标的操作化目标的贡献•一个高层的、抽象的、粗略的软目标可以分解为相对低层的、具体的和细化的子(软)目标或操作化目标。•每个单个的子目标可以对父目标的满足性产生出不同的贡献。•贡献类型分为两个维度:–贡献的影响和贡献的程度。–贡献的影响可以是正向、负向或未知;–贡献的程度可以是完全的、部分的或程度未知。目标的副作用关系•副作用包括贡献副作用和冲突副作用。例如:–“提高性能”会导致“成本提高”,是横向副作用关系,表明一种冲突。即一个目标被满足会阻止另一个目标的满足。–“信息的保密性”会提高“信息的安全性”,也是横向副作用,表明一种贡献。即一个目标被满足会帮助另一个目标的满足。建模原语:目标与/或树建模原语:其它关联•目标与其它需求建模元素的关联–目标与操作:操作的前提条件、后置条件、触发条件,保证目标目标的可满足性–目标与情景:互补•情景:具体、叙述性、过程性、意图隐含于其中•目标:抽象、描述性、显式展现意图•更进一步,情景可以是例子或者是反例,可以展示目标的实现过程,也可以表现阻止目标可满足的情况建模原语:其它关联•目标与其它需求建模元素的关联–目标模型与对象模型:具体的目标可以涉及实体、关系或者agent,支持从目标模型系统化地导出对象模型–目标与Agents:职责关系,将目标赋予一个Agent完成,有利于识别系统的边界•形成目标结构目标形式化表示框架Goal目标模式[目标名]InstanceOf目标分类Concerns对象集合RefinedTo子目标InformalDef自然语言陈述FormalDef一界时态逻辑公式目标形式化表示举例GoalAchieve[TrainProgress]FormalDefGoalMaintain[TrainWaiting]FormalDef)],(),()[:,(1btrOnbtrOnBlockbTraintr)],(W),(),()[:,:(1btrOnbtrOnbtrOnBlockbTraintrGoalAchie

1 / 107
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功