用例和用例图_第1页
用例和用例图_第2页
用例和用例图_第3页
用例和用例图_第4页
用例和用例图_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用例和用例图用例和用例图l 用例建模是用例建模是UML建模的一部分,它也是建模的一部分,它也是UML里最基里最基础的部分;础的部分; l 用例建模的最主要功能就是用来表达系统的功能性用例建模的最主要功能就是用来表达系统的功能性需求或行为;需求或行为;l 用例建模可分为用例图和用例描述;用例建模可分为用例图和用例描述; l 用例图用例图是由软件需求分析到最终实现的第一步,它是由软件需求分析到最终实现的第一步,它描述人们如何使用一个系统,是外部参与者所能观描述人们如何使用一个系统,是外部参与者所能观察到的系统功能的模型图,该图呈现了一些参与者察到的系统功能的模型图,该图呈现了一些参与者和一些用例,

2、以及它们之间的关系,主要用于对系和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模,用画图的方统、子系统或类的功能行为进行建模,用画图的方法来完成;法来完成;l 用例描述用例描述用来详细描述用例图中每个用例,用文本用来详细描述用例图中每个用例,用文本文档来完成。文档来完成。用例图的作用用例图的作用l 用例图展示了用例之间以及用例与参与者之间是怎样相互联用例图展示了用例之间以及用例与参与者之间是怎样相互联系的。用例图对系统、子系统或类的行为进行了可视化,使系的。用例图对系统、子系统或类的行为进行了可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些用户能够理解

3、如何使用这些元素,并使开发者能够实现这些元素。元素。l 用例图主要用来描述用户的功能需求。用例图主要用来描述用户的功能需求。UML侧重从最终用户侧重从最终用户的角度来理解软件系统的需求,强调谁在使用系统、系统可的角度来理解软件系统的需求,强调谁在使用系统、系统可以完成哪些功能。用例分析技术已经是一种公认有效的用户以完成哪些功能。用例分析技术已经是一种公认有效的用户需求获取、分析和描述技术需求获取、分析和描述技术用例图的组成用例图的组成用例图用例图由如下元素组成:由如下元素组成:参与者参与者(Actor)(Actor):也称为参与者,它代表系统的用户。:也称为参与者,它代表系统的用户。系统边界系

4、统边界(System Scope)(System Scope):它确定系统的范围。:它确定系统的范围。用例用例(Use Case)(Use Case):它代表系统提供的服务。:它代表系统提供的服务。关系关系(Association)(Association):关联关系(:关联关系(AssociationAssociation)、)、包含关系(包含关系(IncludeInclude)、扩展关系()、扩展关系(ExtendExtend)以及)以及泛化关系(泛化关系(GeneralizationGeneralization)。)。参与者参与者参与者参与者(actor)是指系统以外的、需要使用系统或与

5、系是指系统以外的、需要使用系统或与系统交互的事物统交互的事物, 包括包括: 人、设备、外部系统等人、设备、外部系统等. 其它译其它译名有名有: 活动者、执行者、行动者、角色等;活动者、执行者、行动者、角色等;参与者是系统外部的一个实体,参与者只可能存在于参与者是系统外部的一个实体,参与者只可能存在于边界之外边界之外,边界之内的所有人和事物都不是参与者。,边界之内的所有人和事物都不是参与者。 从图中可以看出,所有的用例都放置在系统边界内,表明从图中可以看出,所有的用例都放置在系统边界内,表明它属于一个系统。参与者则放在系统边界的外面,表明角色并它属于一个系统。参与者则放在系统边界的外面,表明角色

6、并不属于系统。但是角色负责直接(或间接)驱动与之关联的用不属于系统。但是角色负责直接(或间接)驱动与之关联的用例的执行。例的执行。UMLUML的用例图示意的用例图示意参与者有三大类:系统用户、与所建造的系统交互的参与者有三大类:系统用户、与所建造的系统交互的其它系统和一些可以运行的进程。其它系统和一些可以运行的进程。第一类参与者是真实的人,即用户,命名这类参与者时,第一类参与者是真实的人,即用户,命名这类参与者时,应当按照业务命名;应当按照业务命名;第二类参与者是其它的系统,这类位于程序边界之外的系第二类参与者是其它的系统,这类位于程序边界之外的系统也是参与者。统也是参与者。第三类参与者是一些

7、可以运行的进程,如时间。当经过一第三类参与者是一些可以运行的进程,如时间。当经过一定的时间触发系统中的某个事件时,时间就成了参与者。定的时间触发系统中的某个事件时,时间就成了参与者。l 怎样识别参与者怎样识别参与者谁向系统提供信息?谁向系统提供信息?谁从系统获取(使用)信息?谁从系统获取(使用)信息?谁管理这个系统?谁管理这个系统?谁维护这个系统?谁维护这个系统?系统要使用哪些外部资源?(系统启动打印机、扫描仪)系统要使用哪些外部资源?(系统启动打印机、扫描仪)系统是否和已经存在的系统交互?(跨行转账的外部银行系统是否和已经存在的系统交互?(跨行转账的外部银行系统、时间到了定时启动系统某功能)

8、系统、时间到了定时启动系统某功能)查找参与者时请注意,参与者一定是直接并且主动的查找参与者时请注意,参与者一定是直接并且主动的向系统发出动作并获得反馈的,否则就不是参与者。向系统发出动作并获得反馈的,否则就不是参与者。下面对机票预订系统进行分情况讨论:下面对机票预订系统进行分情况讨论:情况一:机票购买者通过登录网站购买机票,那么谁情况一:机票购买者通过登录网站购买机票,那么谁是参与者?是参与者?情况二:假如机票购买者通过呼叫中心,由人工座席情况二:假如机票购买者通过呼叫中心,由人工座席操作订票系统购买机票,那么谁是参与者?操作订票系统购买机票,那么谁是参与者?情况三:如果机票购买者通过呼叫中心

9、的自动语音预情况三:如果机票购买者通过呼叫中心的自动语音预定机票而不是通过人工座席,那么谁是参与者?定机票而不是通过人工座席,那么谁是参与者?情况四:如果扩大系统边界,让呼叫中心成为机票预情况四:如果扩大系统边界,让呼叫中心成为机票预定系统的一个子系统,并且假设机票购买者将可以定系统的一个子系统,并且假设机票购买者将可以自主选择是通过人工座席还是自动语音登录网站预自主选择是通过人工座席还是自动语音登录网站预订机票,那么谁是参与者?订机票,那么谁是参与者?在对参与者建模的过程中,注意以下几点:在对参与者建模的过程中,注意以下几点:(1)参与者表示人和事物与系统发生交互时所扮演的)参与者表示人和事

10、物与系统发生交互时所扮演的角色,而不是特定的人或特定的事物;角色,而不是特定的人或特定的事物;(2)每个参与者需要一个具有业务一样的名字;)每个参与者需要一个具有业务一样的名字;(3)一个人或事物在与系统交互时,可以同时或不同)一个人或事物在与系统交互时,可以同时或不同时扮演多个角色。时扮演多个角色。UML中的中的Actor实际上是一个版型化的类实际上是一个版型化的类, 可以有三种可以有三种表示形式表示形式Icon形式形式Label形式形式Decoration形式形式由于由于Actor实际上是一个类实际上是一个类, 因此它们之间可以存在因此它们之间可以存在一定的关系一定的关系,参与者之间的关系

11、一般表现为特殊参与者之间的关系一般表现为特殊/一一般化关系,即,泛化关系。般化关系,即,泛化关系。思考:思考:1、这样一个需求:每天自动统计网页访问量,、这样一个需求:每天自动统计网页访问量,生成统计报表,并发送至管理员信箱。这个生成统计报表,并发送至管理员信箱。这个需求的参与者是谁?需求的参与者是谁?2、自动售货机的参与者是谁?、自动售货机的参与者是谁?用例用例用例用例(use case)是是Ivar Jacobson发明的发明的. 其它的中其它的中文译名有文译名有: 用况、用案等用况、用案等.定义定义1: 用例是对一个活动者用例是对一个活动者(actor)使用系统的一项使用系统的一项功能时

12、所进行的交互过程的一个文字描述序列功能时所进行的交互过程的一个文字描述序列.定义定义2: 用例是系统、子系统或类和外部参与者交互用例是系统、子系统或类和外部参与者交互的动作序列的说明的动作序列的说明, 包括可选的动作序列和会出现包括可选的动作序列和会出现异常的动作序列异常的动作序列.用例是代表系统中各个项目相关人员之间就系统的用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约行为所达成的契约, 软件开发过程是用例驱动的软件开发过程是用例驱动的.什么是用例?什么是用例?用例是一种需求方法学用例是一种需求方法学把用例解释为某个参与者把用例解释为某个参与者(actor)要做的一件事,这样要

13、做的一件事,这样的一件事有以下几个特征:的一件事有以下几个特征: 1、这件事是相对独立的;、这件事是相对独立的;2、这件事的执行结果对参与者来说是可观测的和有意义的;、这件事的执行结果对参与者来说是可观测的和有意义的;3、这件事必须由一个参与者发起、这件事必须由一个参与者发起 ;不存在没有参与者的用;不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例。例,用例不应该自动启动,也不应该主动启动另一个用例。用例总是由一个参与者发起,并且满足特征二;用例总是由一个参与者发起,并且满足特征二;4、这件事必然是以动宾短语形式出现的、这件事必然是以动宾短语形式出现的 。l 怎样识别用例

14、怎样识别用例参与者希望系统执行什么任务?参与者希望系统执行什么任务?参与者在系统中访问哪些信息?(创建、存储、修改、删参与者在系统中访问哪些信息?(创建、存储、修改、删除等)除等)需要将外界的哪些信息提供给系统?需要将外界的哪些信息提供给系统?需要将系统的哪个事件告诉参与者?需要将系统的哪个事件告诉参与者?如何维护系统?如何维护系统?如何判断一个用例是否是一个优秀的用例呢?如何判断一个用例是否是一个优秀的用例呢?l 用例是否描述了应该做什么,而不是如何做?用例是否描述了应该做什么,而不是如何做?l 用例的描述是否采取了参与者的视点?用例的描述是否采取了参与者的视点?l 用例是否对参与者有价值?

15、用例是否对参与者有价值?l 用例描述的时间流是否是一个完整场景?用例描述的时间流是否是一个完整场景? 是否所有的参与者、用例都有相应的关联用例或关是否所有的参与者、用例都有相应的关联用例或关联参与者?联参与者?l 怎样确定用例的粒度?怎样确定用例的粒度?(用例规模的大小)(用例规模的大小)用例的粒度可大可小,一般一个系统控制在用例的粒度可大可小,一般一个系统控制在20个左右,但个左右,但没有严格规定没有严格规定用例是系统级的、抽象的描述,不是细化的(考虑的是用例是系统级的、抽象的描述,不是细化的(考虑的是“做什么做什么what”,而不是,而不是“怎样做怎样做how”)对复杂的系统可以划分为若干

16、子系统处理对复杂的系统可以划分为若干子系统处理l 实际上,用例粒度的划分依据最标准的方法是一个实际上,用例粒度的划分依据最标准的方法是一个用例的粒度是否合适,是以该用例是否完成了参与用例的粒度是否合适,是以该用例是否完成了参与者的某个目的为依据的。者的某个目的为依据的。UML中用例用椭圆表示中用例用椭圆表示, 使用动宾结构或主谓结构命使用动宾结构或主谓结构命名名.例例: 字处理程序中字处理程序中, “置正文为黑置正文为黑体体”和和”创建索引创建索引”都可以是用都可以是用例例.使用用例进行需求分析的特点使用用例进行需求分析的特点: 用例从使用系统的角度描述系统中的信息用例从使用系统的角度描述系统

17、中的信息. 用例描述用户提出的一些可见需求用例描述用户提出的一些可见需求, 对应一个具体的用户目标对应一个具体的用户目标. 用例是对系统行为的描述用例是对系统行为的描述, 属于属于UML的动态建模部分的动态建模部分.使用用例时注意的问题使用用例时注意的问题: 不要将所有的需求都以用例的形式表示出来不要将所有的需求都以用例的形式表示出来. 用例只描述系统功能性方面的需求用例只描述系统功能性方面的需求, 它只是全部需求的一部分它只是全部需求的一部分. 本质上用例分析是功能分解技术本质上用例分析是功能分解技术, 但目前是但目前是OO开发的第一步开发的第一步. 用例是与实现无关的关于系统功能的描述用例

18、是与实现无关的关于系统功能的描述.思考:思考:l 网上选课系统网上选课系统脚本脚本其它译名其它译名: 情景、情景、场景场景、情节、剧本、情节、剧本.脚本就是用例的一次完整的、具体的执行过程。用例脚本就是用例的一次完整的、具体的执行过程。用例与脚本的关系,如同类与对象的关系。与脚本的关系,如同类与对象的关系。每个用例有一系列脚本每个用例有一系列脚本, 包括一个主要脚本包括一个主要脚本, 以及几个以及几个次要脚本次要脚本. 相对于主要脚本相对于主要脚本, 次要脚本描述了执行路径次要脚本描述了执行路径中的异常或可选择的情况中的异常或可选择的情况.例:在例:在“订货订货”用例中包括几个相关脚本:用例中

19、包括几个相关脚本: 订货顺利进行的脚本订货顺利进行的脚本; 相关货源不足时的脚本相关货源不足时的脚本; 购货者的信用卡被拒绝时的脚本购货者的信用卡被拒绝时的脚本; l 关联(关联(accociation)l 包含(包含(include)l 扩展(扩展(extend)l 泛化(泛化(generalization)用例图中的关系用例图中的关系l 关联(关联(accociation)每个用例都有参与者启动(每个用例必须和一个参与者关每个用例都有参与者启动(每个用例必须和一个参与者关联,有一个参与者来参与),联,有一个参与者来参与),除包含和扩展用例除包含和扩展用例用例和参与者之间是关联关系,有三种形

20、式。用例和参与者之间是关联关系,有三种形式。泛化关系泛化关系泛化关系代表一般与特殊的关系泛化关系代表一般与特殊的关系, 与继承类似与继承类似.在泛化关系中在泛化关系中, 子用例继承了父用例的行为和含义子用例继承了父用例的行为和含义, 子用例也可以增加新的行为和含义或覆盖父用例中子用例也可以增加新的行为和含义或覆盖父用例中的行为和含义的行为和含义.包含关系包含关系l 包含(包含(include) (是一种依赖关系,加了版型(是一种依赖关系,加了版型)两个以上用例有共同功能,可分解到单独用例,形成包含两个以上用例有共同功能,可分解到单独用例,形成包含依赖;依赖;箭头方向由基本用例指向被包含用例;箭

21、头方向由基本用例指向被包含用例;执行基本用例时,每次都必须调用被包含的用例(吃饭前执行基本用例时,每次都必须调用被包含的用例(吃饭前洗手);洗手);被包含用例也可以单独执行;被包含用例也可以单独执行;l 包含(包含(include)一个用例功能过多,可分解成小用例,构成包含依赖一个用例功能过多,可分解成小用例,构成包含依赖本例中,被包含用例不能单独执行,没有本例中,被包含用例不能单独执行,没有Actor直接指向直接指向它们它们扩展关系扩展关系l 扩展(扩展(extend) (是一种依赖关系,加了版型是一种依赖关系,加了版型)一个用例(在某些一个用例(在某些扩展点扩展点extension poi

22、nt上)扩展另一个上)扩展另一个用例的功能,构成新用例;箭头方向由扩展用例指向被扩用例的功能,构成新用例;箭头方向由扩展用例指向被扩展用例(即基本用例);展用例(即基本用例);扩展用例依赖于被扩展用例(基本用例),只是部分片段扩展用例依赖于被扩展用例(基本用例),只是部分片段组成,不是完整的独立用例,无法单独执行;组成,不是完整的独立用例,无法单独执行;扩展用例不一定每次都被执行和调用。(吃饭前也可以不扩展用例不一定每次都被执行和调用。(吃饭前也可以不洗手),而被包含用例每次必须执行。洗手),而被包含用例每次必须执行。肯定没有参与者指向扩展用例,因为扩展用例依赖基本用肯定没有参与者指向扩展用例

23、,因为扩展用例依赖基本用例。例。几种关系的比较几种关系的比较泛化和扩展表示用例之间的泛化和扩展表示用例之间的 “is a”, 包含关系表示包含关系表示用例之间的用例之间的“has a”.扩展关系的基本用例是扩展关系的基本用例是 well formed 的的. 一个基本用一个基本用例执行时例执行时, 可以执行或不执行扩展用例可以执行或不执行扩展用例.包含关系的基本用例可以不是或是包含关系的基本用例可以不是或是 well formed 的的. 执行基本用例时执行基本用例时, 一定会执行被包含用例一定会执行被包含用例.需要重复处理两个或多个用例时需要重复处理两个或多个用例时, 可以考虑包含关系可以考

24、虑包含关系.处理正常行为的变型且只是偶而描述时处理正常行为的变型且只是偶而描述时, 可以考虑只可以考虑只使用泛化关系使用泛化关系.处理正常行为的变型且希望采用更多控制方式时处理正常行为的变型且希望采用更多控制方式时, 可可以在基本用例中设置扩展点以在基本用例中设置扩展点, 使用扩展关系使用扩展关系.几种关系的比较几种关系的比较关系类型关系类型说明说明表示符号表示符号关联关联actor与与use case之间之间泛化泛化actor之间或之间或use case之之间间包含包含use case之间之间扩展扩展use case之间之间思考:思考:需求建模需求建模用例图用例图 用例图用例图需求分析的第一

25、步是确定系统能够做什么,谁来使用需求分析的第一步是确定系统能够做什么,谁来使用这个系统。这个系统。用例图用例图(use case diagram)是显示一组用例、参与者是显示一组用例、参与者以及它们之间的关系的图。以及它们之间的关系的图。用户、项目管理员、分析人员、开发人员、质保人员用户、项目管理员、分析人员、开发人员、质保人员都可以通过用例图了解系统功能。都可以通过用例图了解系统功能。 实例实例1:图书馆管理系统中的用例图:图书馆管理系统中的用例图1.确定系统涉及的总体信息确定系统涉及的总体信息 图书馆管理系统是对书籍的借阅及读者信息进行统图书馆管理系统是对书籍的借阅及读者信息进行统一管理的

26、系统,具体包括读者的借书、还书,书籍一管理的系统,具体包括读者的借书、还书,书籍预订;图书馆管理员的书籍借出处理、书籍归还处预订;图书馆管理员的书籍借出处理、书籍归还处理、预订信息处理;还有系统管理员的系统维护,理、预订信息处理;还有系统管理员的系统维护,包括增加书目、删除或更新书目、增加书籍、减少包括增加书目、删除或更新书目、增加书籍、减少书籍、增加读者账户信息、删除或更新读者账户信书籍、增加读者账户信息、删除或更新读者账户信息、书籍信息查询、读者信息查询等。息、书籍信息查询、读者信息查询等。2.确定系统的参与者确定系统的参与者根据图书馆管理系统的需求分析,可以确定如下几点:根据图书馆管理系

27、统的需求分析,可以确定如下几点:(1)作为一个图书馆管理系统,首先需要借阅者的参与,借阅)作为一个图书馆管理系统,首先需要借阅者的参与,借阅者可以登录系统查询所需要的书籍,查到所需书籍后可以考者可以登录系统查询所需要的书籍,查到所需书籍后可以考虑预订,当然最重要的是借书、还书操作。虑预订,当然最重要的是借书、还书操作。(2)对于系统来说,借阅者发起的借书、还书等操作最终还需)对于系统来说,借阅者发起的借书、还书等操作最终还需要图书馆管理员来处理,他们还可以负责图书的预订取消。要图书馆管理员来处理,他们还可以负责图书的预订取消。(3)对于图书馆管理系统来说,系统的维护操作也是相当重要)对于图书馆

28、管理系统来说,系统的维护操作也是相当重要的,维护操作主要包括增加书目、删除或更新书目、增加书的,维护操作主要包括增加书目、删除或更新书目、增加书籍、减少书籍等操作。籍、减少书籍等操作。 系统的参与者主要有:借阅者、图书馆管理员、图书馆管理系统的参与者主要有:借阅者、图书馆管理员、图书馆管理系统维护者。系统维护者。3.确定系统用例确定系统用例识别用例最好的方法就是从分析系统的参与者开始,识别用例最好的方法就是从分析系统的参与者开始,考虑每个参与者是如何使用系统的。考虑每个参与者是如何使用系统的。(1)借阅者请求服务的用例)借阅者请求服务的用例l 登录系统;登录系统;l 查询自己的借阅信息;查询自

29、己的借阅信息;l 查询书籍信息;查询书籍信息;l 预订书籍;预订书籍;l 借阅书籍;借阅书籍; 归还书籍。归还书籍。 (2)图书馆管理员处理借书、还书等的用例)图书馆管理员处理借书、还书等的用例l 处理书籍借阅;处理书籍借阅;l 处理书籍归还;处理书籍归还; 删除预订信息。删除预订信息。(3)系统管理员进行系统维护的用例)系统管理员进行系统维护的用例l 查询借阅者信息;查询借阅者信息;l 查询书籍信息;查询书籍信息;l 增加书目;增加书目;l 删除或更新书目;删除或更新书目;l 增加书籍;增加书籍;l 删除书籍;删除书籍;l 添加借阅者账户;添加借阅者账户; 删除或更新借阅者账户。删除或更新借

30、阅者账户。4.使用使用Rose绘制用例图绘制用例图使用使用Rose绘制用例图的步骤:绘制用例图的步骤:1.创建用例图创建用例图2.添加参与者与用例添加参与者与用例3.添加参与者与用例之间的关系添加参与者与用例之间的关系4.添加用例之间的关系添加用例之间的关系Rational Rose 介绍介绍选择实现语言选择实现语言l J2EEl J2SEl JDKl VB6l VC6l Oraclel RUPRational Rose IDE 环境环境浏览器浏览器l 四个视图四个视图用例视图用例视图逻辑视图逻辑视图组件视图组件视图部署视图部署视图1. 用例视图用例视图l 包含内容包含内容PackageUse

31、 caseActorClassUse case diagramClass diagramCollaboration diagramSequence diagramStatechart diagramActivity diagram2. 逻辑视图逻辑视图l 包含内容包含内容ClassClass UtilityUse caseInterfacePackageClass diagramUse case diagram 尽量不用尽量不用Collaboration diagramSequence diagramStatechart diagramActivity diagram3. 组件视图组件视图l

32、包含内容包含内容PackageComponentComponent diagram4. 部署视图部署视图l 包含内容包含内容ProcessorDeviceDeployment diagram文档窗口文档窗口l 可以为任何当前可以为任何当前UML元素添加注释、说明元素添加注释、说明或简单定义等。或简单定义等。l 导出发布模型时,这导出发布模型时,这里的文字也会自动输里的文字也会自动输出。出。标准工具栏标准工具栏l 基本的新建、打开、保存工具基本的新建、打开、保存工具l 浏览类图、浏览交互图、浏览组件图、浏览状态图、浏览类图、浏览交互图、浏览组件图、浏览状态图、浏览部署图以及放大、缩小等方便查看的

33、功能浏览部署图以及放大、缩小等方便查看的功能l 可以可以Ctrl+D删除任意元素。删除任意元素。视图工具栏视图工具栏l 根据不同的视图环境,根据不同的视图环境,显示不同的工具显示不同的工具用例视图用例视图逻辑视图逻辑视图组件视图组件视图部署视图部署视图视图工具栏视图工具栏l 用户可以自己定制工具用户可以自己定制工具栏内容栏内容修改模型属性修改模型属性l Tools菜单中选择菜单中选择“Options”创建元素创建元素l 命名命名l 文档区加注释文档区加注释l 缺省的主用例图缺省的主用例图mainl 缺省的主类图缺省的主类图mainl 缺省的主组件图缺省的主组件图mainl 缺省的主部署图缺省的

34、主部署图main实例实例2:分析:分析:1.参与者参与者管理员管理员2.用例用例管理图书:新增书籍、查询书籍、修改书籍管理图书:新增书籍、查询书籍、修改书籍管理外借:登记外借、查询外借管理外借:登记外借、查询外借统计信息统计信息推荐方案推荐方案 PK 可选方案可选方案优化方案优化方案1 优化方案优化方案2用例的描述用例的描述用例描述是指对一个用例的功能进行的文字描述用例描述是指对一个用例的功能进行的文字描述, 是是参与者与系统交互动作序列的说明参与者与系统交互动作序列的说明.用例描述才是用例的主要部分用例描述才是用例的主要部分, 是后续的是后续的交互图分析和类图分析必不可少的部分交互图分析和类

35、图分析必不可少的部分.用例采用自然语言描述参与者与系统的交互行为用例采用自然语言描述参与者与系统的交互行为,要要易于理解。其读者是开发人员、用户、项目经理、易于理解。其读者是开发人员、用户、项目经理、测试人员等。测试人员等。用例描述的是一个系统做什么(用例描述的是一个系统做什么(whatwhat)的信息,并)的信息,并不说明怎么做(不说明怎么做(howhow),怎么做是设计模型的事。),怎么做是设计模型的事。用例描述模板用例描述模板为了说明一个用例的行为,描述一个用例的关键要为了说明一个用例的行为,描述一个用例的关键要素包括:用例何时开始(前置条件)、何时结束素包括:用例何时开始(前置条件)、

36、何时结束(后置条件)、参与者何时与用例交互、交互了什(后置条件)、参与者何时与用例交互、交互了什么信息,以及用例执行的基本事件流和扩展事件流。么信息,以及用例执行的基本事件流和扩展事件流。1. 1. 事件流事件流事件流就是一个用例在执行时参与者与系统之间的交互过程。事件流就是一个用例在执行时参与者与系统之间的交互过程。事件流的目的是为用例的逻辑流程建立文档,这个文档详细事件流的目的是为用例的逻辑流程建立文档,这个文档详细描述系统用户的工作和系统本身的工作。描述系统用户的工作和系统本身的工作。事件流分为基本事件流和扩展事件流两种。事件流分为基本事件流和扩展事件流两种。2. 2. 用例描述模板用例

37、描述模板 用例描述有两种格式:一种是纯文本格式,另一种是表格形用例描述有两种格式:一种是纯文本格式,另一种是表格形式。式。描述项描述项说明说明用例名称用例名称表明用户的意图或用例的用途,与用例图相符表明用户的意图或用例的用途,与用例图相符标识符标识符可选可选惟一标识符惟一标识符, 便于引用该用例便于引用该用例用例描述用例描述概述用例的几句话概述用例的几句话参与者参与者与此用例相关的参与者与此用例相关的参与者优先级优先级一个有序的排列一个有序的排列, 1代表优先级最高代表优先级最高状态状态可选可选用例状态用例状态, 可以是可以是: 进行中进行中, 等待审查等待审查, 通过审查通过审查, 未通过审

38、未通过审查查前置条件前置条件一个条件列表一个条件列表, 这些条件必须在访问用例前得到满足这些条件必须在访问用例前得到满足后置条件后置条件一个条件列表一个条件列表, 这些条件必须在用例完成之后得到满足这些条件必须在用例完成之后得到满足基本操作流程基本操作流程描述用例中各项工作都顺利进行时用例的工作方式描述用例中各项工作都顺利进行时用例的工作方式可选操作流程可选操作流程描述变异工作方式、出现异常或发生错误的情况下的路径描述变异工作方式、出现异常或发生错误的情况下的路径用例的描述格式用例的描述格式描述项描述项说明说明被泛化的用例被泛化的用例此用例所泛化的用例列表此用例所泛化的用例列表被包含的用例被包

39、含的用例此用例所包含的用例列表此用例所包含的用例列表被扩展的用例被扩展的用例此用例所扩展的用例列表此用例所扩展的用例列表修改历史记录修改历史记录可选可选关于用例的修改时间、修改原因、修改人的详细信息关于用例的修改时间、修改原因、修改人的详细信息问题问题可选可选与此用例的开发有关的问题列表与此用例的开发有关的问题列表决策决策可选可选关键决策的列表关键决策的列表, 将这些决策信息记录下来以便维护时将这些决策信息记录下来以便维护时使用使用频率频率可选可选参与者访问此用例的频率参与者访问此用例的频率, 如如: 每日一次每日一次/每月一次等每月一次等用例的描述格式用例的描述格式(续表续表)用例的描述用例

40、的描述描述用例时易出现的错误:描述用例时易出现的错误:只描述系统的行为只描述系统的行为, 没有描述参与者的行为没有描述参与者的行为只描述参与者的行为只描述参与者的行为, 没有描述系统的行为没有描述系统的行为在用例描述中就设定了对用户界面的设计的要求在用例描述中就设定了对用户界面的设计的要求描述过于冗长描述过于冗长Use case: Withdraw cashActor: customer主事件流:主事件流:储户插入储户插入ATM卡卡,并输入密码并输入密码储户按储户按“取款取款”按钮按钮,并输入并输入取款数目取款数目储户取走现金储户取走现金/ATM卡卡/收据收据(1)储户离开储户离开Use ca

41、se: Withdraw cashActor: customer主事件流:主事件流:ATM系统获得系统获得ATM卡和密码卡和密码设置交易类型为设置交易类型为“取款取款”ATM系统获得取款金额系统获得取款金额输出现金、收据和输出现金、收据和ATM卡卡系统复位系统复位用例的描述用例的描述ATM系统系统“取款取款”用例的两个错误描述:用例的两个错误描述:只描述了只描述了actor的行为的行为只描述了只描述了System的行为的行为用例的描述用例的描述Use case: Withdraw cashActor: customer主事件流:主事件流:储户通过读卡机插入储户通过读卡机插入ATM卡卡ATM系统

42、从卡上读取银行系统从卡上读取银行ID、账号、加密密码、账号、加密密码, 并通过主银行并通过主银行系统验证银行系统验证银行ID和账号和账号储户输入密码储户输入密码, ATM系统根据加密密码对输入密码进行验证系统根据加密密码对输入密码进行验证储户按储户按 “取款取款”按钮按钮, 并输入取款数目并输入取款数目, 该数目应该为该数目应该为100的倍的倍数数ATM系统通知主银行系统系统通知主银行系统, 传递账号和金额传递账号和金额, 并接收返回的确并接收返回的确认信息和账户余额认信息和账户余额ATM系统输出现金、系统输出现金、ATM卡和收据卡和收据ATM系统记录交易到日志文件系统记录交易到日志文件ATM

43、系统系统“取款取款”用例的正确描述:用例的正确描述:找出系统外部的参与者和外部系统找出系统外部的参与者和外部系统, 确定系统边界和范围确定系统边界和范围确定每一个参与者所期望的系统行为确定每一个参与者所期望的系统行为把这些系统行为命名为用例把这些系统行为命名为用例使用泛化、包含、扩展等关系处理系统行为的公共或变使用泛化、包含、扩展等关系处理系统行为的公共或变更部分更部分编制每一个用例的脚本编制每一个用例的脚本绘制用例图绘制用例图区分主要事件流和异常事件流区分主要事件流和异常事件流, 如果需要如果需要, 可以把异常事可以把异常事件流处理为单独的用例件流处理为单独的用例细化用例图细化用例图, 解决

44、用例间重复与冲突的问题解决用例间重复与冲突的问题.用例分析的基本步骤:用例分析的基本步骤:实例分析:语音邮箱系统实例分析:语音邮箱系统目标:构建一个语音邮箱系统目标:构建一个语音邮箱系统问题描述:问题描述: 语音邮箱系统中语音邮箱系统中,可以为每个系统用户可以为每个系统用户(邮箱主人邮箱主人)分配一个分配一个语音邮箱号码。语音邮箱号码。 进行留言时,拨打语音邮箱系统的主号码,进行留言时,拨打语音邮箱系统的主号码, 在听到提示音在听到提示音“请输入邮箱号请输入邮箱号”后,输入语音邮箱号,听到主人设定的问后,输入语音邮箱号,听到主人设定的问候语后,进行留言然后挂断电话。候语后,进行留言然后挂断电话

45、。 邮箱主人拨打语音邮箱系统的主号码,在听到提示音邮箱主人拨打语音邮箱系统的主号码,在听到提示音“请请输入邮箱号输入邮箱号”后,输入语音邮箱号,听到主人设定的问候语后,输入语音邮箱号,听到主人设定的问候语后,后, 输入密码输入密码+#进行邮箱管理。此时系统提供三种服务:进行邮箱管理。此时系统提供三种服务:1.接收信息;接收信息;2.更改问候语;更改问候语;3.更改密码。其中接收留言包括收更改密码。其中接收留言包括收听新留言、存储留言、删除留言等。听新留言、存储留言、删除留言等。实例分析:语音邮箱系统实例分析:语音邮箱系统1. 找出找出actor和外部系统,确定系统边界。和外部系统,确定系统边界

46、。参与者:留言人、邮箱主人参与者:留言人、邮箱主人2. 主要功能分析主要功能分析(参与者期望的系统行为等参与者期望的系统行为等)(1)留言人保留信息留言人保留信息(留言留言)。(2)邮箱主人管理信息:收听邮箱主人管理信息:收听/存储存储/删除。删除。(3)邮箱主人更改问候语。邮箱主人更改问候语。(4)邮箱主人更改密码。邮箱主人更改密码。实例分析:语音邮箱系统实例分析:语音邮箱系统3. 初步找到的用例初步找到的用例留言人:保留信息留言人:保留信息邮箱主人:接收信息、更改问候语、更改密码邮箱主人:接收信息、更改问候语、更改密码4. 进一步寻找用例进一步寻找用例邮箱主人:登录邮箱邮箱主人:登录邮箱留

47、言人、邮箱主人:拨打邮箱号码留言人、邮箱主人:拨打邮箱号码5. 分析用例之间的关系分析用例之间的关系本例较为简单,只使用本例较为简单,只使用“包含关系包含关系”即可。即可。实例分析:语音邮箱系统实例分析:语音邮箱系统6. 绘制初步用例图绘制初步用例图实例分析:语音邮箱系统实例分析:语音邮箱系统7. 编写每一个用例的脚本编写每一个用例的脚本8. 区分脚本中的主事流或异常情况事件流区分脚本中的主事流或异常情况事件流9. 细化用例图,完成用例模型细化用例图,完成用例模型(略略)实例分析:语音邮箱系统实例分析:语音邮箱系统-用例脚本用例脚本用例用例1:拨打邮箱号:拨打邮箱号1. 呼叫者拨打语音邮件系统的主号码。呼叫者拨打语音邮件系统的主号码。2. 语音邮件系统发出提示音:输入邮箱号码并加语音邮件系统发出提示音:输入邮箱号码并加#号。号。3. 呼叫者输入接收者的邮箱号。呼叫者输入接收者的邮箱号。4. 语音邮件系统发出问候语:已进入语音邮件系统发出问候语:已进入XX的邮箱,请留言。的邮箱,请留言。用例用例2: 保留信息保留信息1. 呼叫者完成邮箱号输入操作呼叫者完成邮箱号输入操作.2. 呼叫者说出信息呼叫者说出信息.3. 呼叫者挂断电话呼叫者挂断电话.4. 语音邮件系统将记录的信息存放在接收者的邮箱中语音邮件系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论