湖南大学软件学院UML03



《湖南大学软件学院UML03》由会员分享,可在线阅读,更多相关《湖南大学软件学院UML03(69页珍藏版)》请在文档大全上搜索。
1、用例与用例分析湖南大学软件学院面向对象程序分析与设计 基本概念:Use case、Actor、Scenario Use case间的关系间的关系 Use Case 分析技术分析技术 案例讲解案例讲解Use CasenIvar Jacobson于20世纪6070年代在爱立信公司开发AKE、AXE系列系统时所提出。n85年博士论文与92年出版的用例驱动方法中详细论述nUse Case被认为是第二代面向对象技术的标志。 定义定义1:用例:用例是对一个活动者是对一个活动者(actor)使用使用系统的一项功能时所进行的交互过程的一系统的一项功能时所进行的交互过程的一个文字描述序列个文字描述序列。定义定义
2、2:用例是系统、子系统或类和外部的:用例是系统、子系统或类和外部的参与者(参与者(actor)交互的动作序列的说明,)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作包括可选的动作序列和会出现异常的动作序列。序列。 Ivar Jacobson:用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。用例实例的定义步骤步骤目标目标路径路径通俗一些执行者通过系统达到某个目标目标用例是代表系统中各个项目相关人员之间用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约。它有如下一就系统的行为所达成的契约。它有如下一些特点:些特点:用例描述
3、了用户提出的一些可见的需求;用例描述了用户提出的一些可见的需求;用例可大可小;用例可大可小;用例对应一个具体的用户目标用例对应一个具体的用户目标实现实现测试测试需求需求分析和设计分析和设计Use Cases 把所有这些过程绑到一起把所有这些过程绑到一起软件开发过程以用例驱动。n位于系统边界以外的一个实体,透过系统位于系统边界以外的一个实体,透过系统边界与系统进行有意义交互。边界与系统进行有意义交互。n参与者未必是人,可以是一个外部系统。参与者未必是人,可以是一个外部系统。n在处理参与者时,应考虑其参与系统的身在处理参与者时,应考虑其参与系统的身份,而不是人名或工作名。份,而不是人名或工作名。参
4、与者(Actor)参与者参与者识别思路识别思路n谁使用该系统谁使用该系统n谁改变系统的数据谁改变系统的数据n谁从系统获取信息谁从系统获取信息n谁需要系统的支持以完成日常工作任务谁需要系统的支持以完成日常工作任务n谁负责维护、管理并保持系统正常运行谁负责维护、管理并保持系统正常运行n系统需要应付那些硬件设备系统需要应付那些硬件设备n系统需要和那些外部系统交互系统需要和那些外部系统交互n谁对系统运行产生的结果感兴趣谁对系统运行产生的结果感兴趣案例:库存管理系统 某汽车制造厂需要一套库存管理系统,某汽车制造厂需要一套库存管理系统,该系统实现的业务:生产工人根据生产该系统实现的业务:生产工人根据生产计
5、划领取物料,库存操作员根据生产系计划领取物料,库存操作员根据生产系统的派单准备,交付给领料工人,余料统的派单准备,交付给领料工人,余料即时归还库房。库房管理人员定期盘点即时归还库房。库房管理人员定期盘点库存,通知供应商供货,对长期积存的库存,通知供应商供货,对长期积存的货物,申请退货。货物,申请退货。识别思路:n谁使用该系统n谁改变系统的数据 n谁从系统获取信息 n谁需要系统的支持以完成日常工作任务 n谁负责维护、管理并保持系统正常运行n系统需要应付哪些硬件设备n系统需要和哪些外部系统交互 n谁对系统运行产生的结果感兴趣 操作员,管理员领料员,退料员,操作员,管理员,供应商管理员生产系统, 供
6、应商系统操作员,管理员,领料员,退料员操作员,管理员操作员,管理员库存管理系统的参与者2、用例(Use Case) 用例描述了系统的功能需求,是系统的用例描述了系统的功能需求,是系统的一组动作序列的描述一组动作序列的描述. .用例的本质是用户与计算机之间的一次用例的本质是用户与计算机之间的一次交互作用交互作用。识别用例的策略 (1)参与者希望系统提供什么功能?(2)系统是否存储和检索信息?如果是,这个行为由哪个参与者触发?(3)当系统改变状态时,通知参与者吗?(4)存在影响系统的外部事件吗?(5)是哪个参与者通知系统这些事件?识别用例识别用例执行者使用这个系统达到什么目标?执行者使用这个系统达
7、到什么目标?语法测试:【执行者执行者】使用系统来【用例用例】识别用例识别用例用例要点用例要点价值结果有意义的目标系统执行价值结果由系统生成执行者可见业务语言,用户观点一组用例实例用例的粒度识别用例识别用例有意义的目标有意义的目标识别用例识别用例业务语言而非技术语言业务语言而非技术语言识别用例识别用例用户观点而非系统观点用户观点而非系统观点 用户观点用户观点系统观点系统观点识别用例识别用例用例命名:执行者视角用例命名:执行者视角动词(宾语)动词(宾语)慎用弱动词,弱名词慎用弱动词,弱名词弱动词:进行,使用,复制,加载,重复弱动词:进行,使用,复制,加载,重复弱名词:数据,报表,表格,表单,系统弱
8、名词:数据,报表,表格,表单,系统 基本概念:Use case、Actor、Scenario Use case间的关系间的关系 Use Case 分析技术分析技术 案例讲解案例讲解关系n参与者与用例之间参与者与用例之间n关联关系关联关系n用例与用例之间用例与用例之间n包含关系包含关系 (include)n扩展关系扩展关系 (extend)n泛化关系泛化关系 (generalization)n参与者与参与者之间参与者与参与者之间n泛化关系泛化关系 (generalization)关系参与者与用例之间n关联关系 描述参与者与使用用例之间的关系。在UML中,关系用实线表示,实线可以有箭头,也可以没有
9、箭头。n例:参与者与用例 通过关联相连。1)包含关系)包含关系(include) 包含关系中一个用例总是使用另一个用例的功能 包含关系中基用例本身是不完整的。n例:例: 本例中,用例本例中,用例“Check Credit” 检查输入的信用检查输入的信用卡号是否有效以及信用卡是否有足够的资金。卡号是否有效以及信用卡是否有足够的资金。用例间的关系用例间的关系包含关系包含关系2)扩展关系)扩展关系(extend)n扩展关系允许一个用例(可选)扩展另一个用例的功扩展关系允许一个用例(可选)扩展另一个用例的功能。能。n扩展只能发生在基用例的序列中某个特定的点扩展只能发生在基用例的序列中某个特定的点上,这
10、个点叫扩展点。上,这个点叫扩展点。n扩展关系中基用例本身是完整的。扩展关系中基用例本身是完整的。用例间的关系用例间的关系扩展关系扩展关系用例间的关系用例间的关系扩展关系扩展关系包含关系与扩展关系的区别包含关系与扩展关系的区别用例间的关系用例间的关系泛化关系泛化关系3)泛化关系(也称类属或概括关系)泛化关系(也称类属或概括关系) n泛化关系其实是子类与父类的关系。象类之间泛化关系其实是子类与父类的关系。象类之间的泛化关系一样,用例和参与者也可以继承另的泛化关系一样,用例和参与者也可以继承另一个用例和参与者。一个用例和参与者。关系参与者与参与者之间l泛化关系CustomerCompany Pers
11、onal 基本概念:Use case、Actor、Scenario Use case间的关系间的关系 Use Case 分析技术分析技术 案例讲解案例讲解用例的描述n没有描述的Use Case就像是一本书的目录n从用例的定义也可以看出,用例是一个“文字描述序列”,是“动作序列的说明” 。n用例的描述是用例的主要部分,是后续的交互图分析和类图分析必不可少的部分。用例的描述n 一般说来,用例采用自然语言描述参与者与系统进行交互时双方的行为,不追求形式化的语言表达(面向不同人员)。用例描述的内容n用例的目标n用例是怎么启动的n参与者和用例之间的消息是如何传送的n用例中除了主路径外,其他路径是什么n用