《用例分析与用例图》由会员分享,可在线阅读,更多相关《用例分析与用例图(55页珍藏版)》请在金锄头文库上搜索。
1、软件工程用例分析用例分析 与用例图与用例图软件工程回顾回顾&需求工程的六个阶段需求工程的六个阶段需求获取、需求分析与协商、系统需求获取、需求分析与协商、系统建模、需求规约、需求确认、需求建模、需求规约、需求确认、需求管理管理&需求分析的概念需求分析的概念&需求的类型与怎样获取需求需求的类型与怎样获取需求&需求分析过程需求分析过程&需求规格说明书(需求规格说明书(SRS)软件工程主要内容主要内容&基于用例的分析与设计基于用例的分析与设计&业务用例与系统用例业务用例与系统用例&用例与用例关系用例与用例关系&小结与实验小结与实验软件工程前言之一前言之一&软件开发过程中常见的场景软件开发过程中常见的场
2、景你这做的是什么你这做的是什么东西!东西!这个做还不错,不过这个做还不错,不过好像不是我想要的。好像不是我想要的。我们这很混乱,你这个我们这很混乱,你这个系统应该把我们的所有系统应该把我们的所有问题全部解决掉!问题全部解决掉!“弱弱弱弱”地问:地问:“您您到底想要什么?到底想要什么?”软件工程前言之二前言之二&需求分析与管理需求分析与管理软件开发过程中的软件开发过程中的“永远永远的痛的痛”软件工程 基于用例的分析与设计基于用例的分析与设计软件工程以用例为中心组织需求以用例为中心组织需求用例用例用例用例可用性可用性可用性可用性可靠性可靠性可靠性可靠性网络协议网络协议网络协议网络协议业务规则业务规
3、则业务规则业务规则硬件接口硬件接口硬件接口硬件接口界面约束界面约束界面约束界面约束性能性能性能性能软件工程基于基于UMLUML的分析与设计的分析与设计&使用使用UMLUML过程的基本特征是:过程的基本特征是:用用例驱动,以体系结构为中心,反例驱动,以体系结构为中心,反复,渐增式复,渐增式。&用例包含了功能描述,它们将影用例包含了功能描述,它们将影响后面所有阶段及视图。响后面所有阶段及视图。软件工程用户视图用户视图用户视图用户视图用例图用例图用例图用例图实现视图实现视图实现视图实现视图 结构视图结构视图结构视图结构视图 行为视图行为视图行为视图行为视图 环境视图环境视图环境视图环境视图 类图类图
4、类图类图对象图对象图对象图对象图顺序图顺序图顺序图顺序图协作图协作图协作图协作图状态图状态图状态图状态图活动图活动图活动图活动图组件图组件图组件图组件图部署图部署图部署图部署图结构模型视图结构模型视图软件工程业务用例与系统用例业务用例与系统用例&业务用例:业务用例:业务过程是描述这个业务的具体工作流的业务过程是描述这个业务的具体工作流的一次涉众与实现业务目标的业务之间的交互一次涉众与实现业务目标的业务之间的交互它可能包含手工和自动化的过程它可能包含手工和自动化的过程也可能发生在一个长期的时间段中也可能发生在一个长期的时间段中&系统用例系统用例涉及范围是这个计算机系统涉及的范围涉及范围是这个计算
5、机系统涉及的范围是一个系统参与者与计算机系统一起实现一个目是一个系统参与者与计算机系统一起实现一个目标标是参与者如何与计算机技术相联系,而不是业务是参与者如何与计算机技术相联系,而不是业务过程。过程。软件工程业务用例与系统用例业务用例与系统用例业务级(概要级)业务级(概要级)系统级系统级软件工程华软校园华软校园ATMATM机系统机系统用例模型用例模型华软华软特有特有的业的业务务软件工程用例与用例关系用例与用例关系&用例图用例图&参与者参与者&用例用例&用例关系用例关系软件工程用例图用例图获取需求、指导测试、对过获取需求、指导测试、对过程中的其他工作流起指导作程中的其他工作流起指导作用用系统内部
6、系统内部系统外部系统外部整车销售整车销售软件工程参与者参与者&参与者,参与者,ActorActor关键词:关键词:边界边界参与者:在参与者:在系统之外系统之外,透,透过过系统边界系统边界与系统进行与系统进行有意有意义交互义交互的的任何事物任何事物软件工程边界边界-BoundaryBoundary&也叫系统边界,用于界定系统功能范围也叫系统边界,用于界定系统功能范围4用用一一个个带带名名称称的的矩矩形形框框,把把描描述述系系统统功功能能的的用用例例都都置置于于其其中中,而而描描述述的的与与系系统统交交互互的的角角色色都都置于其外置于其外4系统系统-完整系统或子系统完整系统或子系统4一个系统包括一
7、个或多个用例一个系统包括一个或多个用例&准准确确的的定定义义系系统统的的边边界界(功功能能)不不是是一一件件很很容易的事容易的事&先先识识别别出出系系统统的的基基本本功功能能集集,以以此此为为基基础础定定义义一一个个稳稳定定的的、精精确确定定义义的的系系统统体体系系结结构构,再不断地扩充系统功能,以逐步完善再不断地扩充系统功能,以逐步完善软件工程识别参与者识别参与者&要点要点系统外系统外4参与者代表在系统边界之外的真实事参与者代表在系统边界之外的真实事物,并不是系统的成分物,并不是系统的成分系统边界系统边界4参与者透过系统边界参与者透过系统边界直接直接与系统交互,与系统交互,参与者的确定代表参
8、与者的确定代表系统边界系统边界的确定的确定有意义交互的任何事物有意义交互的任何事物4人、外部系统、外部因素、时间人、外部系统、外部因素、时间软件工程识别参与者思路识别参与者思路&谁使用系统的主要功能谁使用系统的主要功能&谁改变系统的数据谁改变系统的数据&谁从系统获取信息谁从系统获取信息&谁需要系统的支持以完成日常工作任务谁需要系统的支持以完成日常工作任务&谁负责日常维护、管理并保证系统正常运行谁负责日常维护、管理并保证系统正常运行&谁使用或删除系统中的信息谁使用或删除系统中的信息&谁(或什么)对系统运行产生的结果(值)感兴趣谁(或什么)对系统运行产生的结果(值)感兴趣&系统需要应付(处理)那些
9、硬设备系统需要应付(处理)那些硬设备&系统需要和那些外部系统交互系统需要和那些外部系统交互&在预定时间,是否有事件自动发生在预定时间,是否有事件自动发生&时间、气温等内部外部条件时间、气温等内部外部条件&软件工程参与者的类型和职责参与者的类型和职责&主要参与者主要参与者直接与系统交互的人,或执行系统主要功能的执直接与系统交互的人,或执行系统主要功能的执行者行者&次要参与者次要参与者使用系统次要功能的执行者,或维护系统一般功使用系统次要功能的执行者,或维护系统一般功能的执行者能的执行者&外部硬件外部硬件作为系统一部分的、运行应用的非计算机的硬件作为系统一部分的、运行应用的非计算机的硬件&其他系统
10、其他系统为其工作需要与系统交互的外部系统为其工作需要与系统交互的外部系统软件工程参与者之间的关系参与者之间的关系&独立关系独立关系&泛化关系泛化关系一个参与者的抽象一个参与者的抽象描述可以被一个或描述可以被一个或多个具体的参与者多个具体的参与者所共享所共享客户客户客户客户个体客户个体客户个体客户个体客户商业客户商业客户商业客户商业客户软件工程用例用例&定义:定义:Use CaseUse Case&用例表示系统的一项外部用例表示系统的一项外部功能功能,它从,它从用户用户的的角度角度分析分析所得的需求。为完成一个相所得的需求。为完成一个相对完整的一种功能,系统执对完整的一种功能,系统执行的一系列动
11、作的集合行的一系列动作的集合&是是外部可见外部可见的一种系统功能的一种系统功能&代表的是一个代表的是一个完整完整的功能的功能&有一系列动作有一系列动作用例用例软件工程用例用例1&用例捕获某些用例捕获某些角色角色可见的可见的需求需求,实现,实现一个具体的角色需求一个具体的角色需求&用例由其用户角色使用,并提供确切用例由其用户角色使用,并提供确切的的输出给角色输出给角色&用例可大可小用例可大可小,但它必须是对一个具,但它必须是对一个具体的角色目标实现的完整描述体的角色目标实现的完整描述&用例的动态执行过程可以用用例的动态执行过程可以用U M LU M L的交的交互作用来说明,可以用状态图、顺序图、
12、互作用来说明,可以用状态图、顺序图、协作图、活动图或非正式的文字描述来协作图、活动图或非正式的文字描述来表示表示软件工程用例的命名用例的命名&执行者视角:执行者视角:(状语)动词(状语)动词+(定语(定语+ )宾语)宾语软件工程识别用例识别用例&识别用例识别用例关键词:价值关键词:价值定义定义4用例实例是用例实例是系统执行系统执行的的一系列动作一系列动作,这些动作将生成特定这些动作将生成特定参与者可观测参与者可观测的的结果值结果值4一个用例定义一个用例定义一组用例实例(场景)一组用例实例(场景)4场景场景-用例的实例用例的实例简洁:参与者简洁:参与者使用系统使用系统达到目标达到目标软件工程识别
13、用例要点识别用例要点&可观测可观测用例止于系统边界用例止于系统边界&结果值结果值用例是有意义的目标用例是有意义的目标&系统执行系统执行结果值由系统生成结果值由系统生成&由参与者观测由参与者观测业务语言、用户观业务语言、用户观点点&一组用例实例一组用例实例用例的粒度用例的粒度软件工程可观测:用例止于系统边界可观测:用例止于系统边界系统系统描述交互,而不是内在的系统活动描述交互,而不是内在的系统活动软件工程结果值:有意义的目标结果值:有意义的目标业务功能,而非系统处理业务功能,而非系统处理软件工程系统执行:结果值由系统生成系统执行:结果值由系统生成系统需要处理的,由系统生成系统需要处理的,由系统生
14、成软件工程参与者观测:用户观点而非系统观点参与者观测:用户观点而非系统观点用户观点用户观点系统观点系统观点软件工程用例粒度用例粒度&用例要有路径,路径要有步骤;用例要有路径,路径要有步骤;而这一切都是可观测的而这一切都是可观测的&最常犯错误:粒度过细,陷入功最常犯错误:粒度过细,陷入功能分解能分解过细的粒度,一般都会导致技术语过细的粒度,一般都会导致技术语言的描述,而不再是业务语言言的描述,而不再是业务语言软件工程用例粒度用例粒度-1&把步骤当用例把步骤当用例&把系统活动当用例把系统活动当用例软件工程用例粒度用例粒度-2软件工程&“四轮马车四轮马车”C(Create)R(Read)U(Upda
15、te)D(Delete)&所有业务最终会成为所有业务最终会成为CRUD?&CRUD能为能为Actor提供价值?提供价值?&CRUD掩盖业务,掩盖业务,锐变成关系数据库的建模:锐变成关系数据库的建模:“系统就是数据的增删改查系统就是数据的增删改查”关心数据的存储和维护,反而忽略了用户的目的关心数据的存储和维护,反而忽略了用户的目的用例粒度用例粒度-3-3软件工程用例粒度用例粒度-4&如果确实是如果确实是CRUD?如果如果CRUD不涉及复杂的交互,一不涉及复杂的交互,一个用例个用例“管理管理”即可即可不管是不管是C、R、U、D,都是为了完,都是为了完成成“管理管理”目标目标甚至很多种的基本数据管理
16、都可以甚至很多种的基本数据管理都可以用一个用例表示用一个用例表示软件工程用例粒度用例粒度-5&灵活处理灵活处理CRUD可以把包含复杂交互的路径独立出去形成用例可以把包含复杂交互的路径独立出去形成用例可以把包含复杂交互的路径独立出去形成用例可以把包含复杂交互的路径独立出去形成用例软件工程用例关系用例关系&Include提取公共步骤,便于复用提取公共步骤,便于复用&Extend分离扩展路径分离扩展路径&Generalization同一业务目的的不同技术实现同一业务目的的不同技术实现软件工程包含关系包含关系软件工程包含关系包含关系1 1软件工程包含关系包含关系2&某些步骤在多个用例重复出现,且单某些
17、步骤在多个用例重复出现,且单独形成价值独形成价值&用例步骤较多时,可用用例步骤较多时,可用IncludeInclude简化简化&当完全知道什么时间要调用用例时,当完全知道什么时间要调用用例时,基用例需要包含用例所封装的逻辑基用例需要包含用例所封装的逻辑&可以简单认为源代码中的函数调用或可以简单认为源代码中的函数调用或操作调用操作调用软件工程包含举例包含举例2软件工程包含关系包含关系软件工程扩展关系扩展关系软件工程扩展关系扩展关系1软件工程扩展关系扩展关系2&将扩展用例的事件流在一定的条将扩展用例的事件流在一定的条件下按照相应的扩展点插入到基础件下按照相应的扩展点插入到基础用例中。用例中。 基础
18、用例不必知道扩展用例的基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点任何细节,它仅为其提供扩展点扩展用例的行为是否被执行要扩展用例的行为是否被执行要取决于主事件流中的判定点。取决于主事件流中的判定点。 软件工程&基用例路径本身是完整的基用例路径本身是完整的&可能是一条扩展路径可能是一条扩展路径&扩展路径步骤多扩展路径步骤多&扩展路径内部还可以有扩展点扩展之扩扩展路径内部还可以有扩展点扩展之扩展展&扩展路径未定或容易变化分离以扩展路径未定或容易变化分离以“冻结冻结”基用例基用例&基础用例可以单独存在,但在一定条件下,基础用例可以单独存在,但在一定条件下,他的行为可以被另一个用例作为扩展他
19、的行为可以被另一个用例作为扩展扩展关系扩展关系3 3软件工程扩展举例扩展举例软件工程泛化关系泛化关系&同一业务目的不同技术实现:同一业务目的不同技术实现:一个用例可以泛化为另一个更普通一个用例可以泛化为另一个更普通用例(更普通用例特化为特殊用例)用例(更普通用例特化为特殊用例)UML 1.5: 用例间的泛化关系表明子用例间的泛化关系表明子用例包含父用例中定义的所有属性、用例包含父用例中定义的所有属性、行为序列和扩展点,并且参与父用例行为序列和扩展点,并且参与父用例中所有的关系中所有的关系软件工程泛化泛化一个售货员可以终止任何交易,除了一个售货员可以终止任何交易,除了那些需要特殊的售货员(高级代
20、理)那些需要特殊的售货员(高级代理)终止的超过了一定限制的交易终止的超过了一定限制的交易软件工程识别用例识别用例-登录怎么处理?登录怎么处理?软件工程识别用例识别用例-几个登录?几个登录?或或软件工程用例之间的关系用例之间的关系软件工程小结小结&理解需求理解需求&以用例为中心组织需求以用例为中心组织需求&基于用例的需求分析过程基于用例的需求分析过程获取原始需求获取原始需求开发一个可以理解的需求开发一个可以理解的需求4识别参与者识别参与者4识别用例识别用例4确定关系确定关系软件工程思考思考&基于用例的需求分析过程可大致分几步?基于用例的需求分析过程可大致分几步?&什么是系统边界什么是系统边界&用例的概念用例的概念&用例的关系用例的关系&参与者的定义与关系参与者的定义与关系软件工程实验实验06&画出系统用例图画出系统用例图&注意用例的粒度与关系注意用例的粒度与关系&描述一个用例的活动图描述一个用例的活动图软件工程 谢谢谢谢