用例和用例图分析
- 格式:ppt
- 大小:479.00 KB
- 文档页数:28
中北大学软件学院实验报告
专业:软件工程
方向:软件开发与测试
课程名称: UML
班级:
学号:
姓名:
辅导教师:井超
2017年3月制
4.用例图如下所示
1).系统参与者
系统角色
2).图书管理
图书管理用例图3).图书借阅和还书用例图
图书的借阅和归还用例4).图书管理系统的整体用例图
图书管理系统的整体用例图
5.实验结论及心得
通过本次实验,我掌握了在课堂上学习的用例图等。
加深了对书本知识的认识和记忆。
在实验中我学会了去如何操作ro se工具图。
通过ro se工具图,可以去清晰的去展示一个关系等。
使用非常方便。
13种uml简介、工具及示例UML(Unified Modeling Language)是一种用于软件开发的标准化建模语言,它使用图形表示法来描述软件系统的不同方面。
在软件开发过程中,使用UML可以帮助开发人员更清晰地理解系统的结构和行为,从而更好地进行设计和实现。
UML提供了包括结构模型、行为模型和交互模型在内的多种建模方式,其中每种模型都有各自的符号和语法规则。
通过使用这些模型,开发人员可以将系统分解成不同的部分,然后逐步细化这些部分的设计,以便更好地组织和管理项目。
在UML中,最常用的建模元素包括用例图、类图、时序图、活动图、状态图等。
每种图表都有其特定的用途和表达能力,开发人员可以根据实际需要选择合适的图表进行建模。
除了建模元素外,UML还定义了一系列的建模工具,这些工具可以帮助开发人员更高效地进行建模和分析。
其中一些常用的建模工具包括Enterprise Architect、Rational Rose、StarUML等。
下面将对13种UML简介、工具及示例进行详细介绍:1. 用例图(Use Case Diagram)用例图是UML中描述系统功能和用户交互的基本图表之一。
它用椭圆表示用例,用直线连接用例和参与者,展示了系统外部用户和系统之间的交互。
用例图可以帮助开发人员更清晰地理解系统的功能需求,从而指导系统的设计和实现。
示例:一个简单的在线购物系统的用例图包括用例“浏览商品”、“添加商品到购物车”、“提交订单”等,以及参与者“顾客”和“管理员”。
2. 类图(Class Diagram)类图是UML中描述系统结构和静态关系的基本图表之一。
它用矩形表示类,用线连接类之间的关系,包括关联关系、聚合关系、继承关系等。
类图可以帮助开发人员更清晰地理解系统的对象结构和类之间的关系,从而支持系统的设计和重构。
示例:一个简单的学生信息管理系统的类图包括类“学生”、“课程”、“教师”等,以及它们之间的关系如“选修”、“授课”等。
2.设计模式常⽤的UML图分析(⽤例图、类图与时序图)1-⽤例图概述1. 展现了⼀组⽤例、参与者以及他们之间的关系。
2. ⽤例图从⽤户⾓度描述系统的静态使⽤情况,⽤于建⽴需求模型。
⽤例特征保证⽤例能够正确捕捉功能性需求,判断⽤例是否准确的依据。
1. ⽤例是动宾短语2. ⽤例是相互独⽴的3. ⽤例是由⽤户参与者启动的4. ⽤例要有可观测的执⾏结果5. ⼀个⽤例是⼀个单元参与者 ActorUML中,参与者使⽤⼀个⼩⼈表⽰:1. 参与者为系统外部与系统直接交互的⼈或事务,于系统外部与系统发⽣交互作⽤2. 参与者是⾓⾊⽽不是具体的⼈3. 代表参与者在与系统打交道时所扮演的⾓⾊4. 系统实际运作中,⼀个实际⽤户可能对应系统的多个参与者。
不同⾓⾊也可以只对应⼀个参与者,从⽽代表同⼀参与者的不通实例⽤例 Use Case系统外部可见的⼀个系统功能单元。
系统的功能由系统单元所提供,并通过⼀系列系统单元与⼀个或多个参与者之间交换的消息所表达。
系统单元⽤椭圆表⽰,椭圆中的⽂字简述系统功能:关系 Relationship常见关系类型有关联、泛化、包含和扩展关联 Association表⽰参与者与⽤例之间的通信,任何⼀⽅都可发送或接受消息。
箭头指向:指向消息接收⽅:⼦系统 SubSystem⽤来展⽰系统的⼀部分功能(紧密联系)泛化 Inheritance继承关系,⼦⽤例和⽗⽤例相似,但表现出更特别的⾏为;⼦⽤例将继承⽗⽤例的所有结构、⾏为和关系。
⼦⽤例可以使⽤⽗⽤例的⼀段⾏为,也可以重载它。
⽗⽤例通常是抽象。
箭头指向:指向⽗⽤例2-类图描述系统中的类,以及各个类之间的关系的静态试图。
表⽰类、接⼝以及它们之间的协作关系,⽤于程序设计阶段。
注意:1. 抽象类或抽象⽅法⽤斜体表⽰2. 如果是接⼝,则在类名上⽅加 <<Interface>>3. 字段和⽅法返回值的数据类型⾮必需4. 静态类或静态⽅法加下划线类图实例:类图中的事务及解释如图,类图从上到下分为三部分,分别为类名、属性和操作1. 属性:如果有属性,则每⼀个属性都必须有⼀个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等2. 操作:如果有操作,则每⼀个操作也都有⼀个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等类图中的六种关系1.实现关系 implements (类实现接⼝)⽤空⼼三⾓虚线表⽰2.泛化关系 extends (表⽰⼀般与特殊的关系) is-a⽤空⼼三⾓实线表⽰3.组合关系 (整体与部分的关系) contains-a实⼼菱形实现表⽰eg.有头类、⾝体类与⼈类类三个类,则⼈类类中应包含头类及⾝体类这两个属性,则⼈类类与头类和⾝体的关系即为组合关系。
•记录预约(Recork booking)事件路径:1接待员输入要预约的日期2系统显示该日的预约3有一张合适的餐桌可以使用:接待员输入顾客的姓名、电话、预约的时间、用餐人数和餐桌号4系统记录并显示新预约。
可选或例外的事件路径3a 没有可用的餐桌:1 没有合适的餐桌可以使用,用例终止3b 餐桌过小1 接待员输入顾客的姓名电话预约时间,用餐人数和餐桌号2 用餐人数多于餐桌容纳的人数,系统询问是否继续预约3 如果回答“否”, 用例将不进行预约而终止4 如果回答“是”, 预约将被输入,并附有一个警告标志。
•记录到达:(Record arrival)基本事件路径1领班输入当前日期2系统显示当天的预约3领班确认一个选定的预约已经到达4系统对此进行记录并更新显示器,将顾客标记为已经到达。
可选或例外的事件路径3a 没有提前预订:1 系统中没有记录该顾客的预约,领班输入预约时间、人数和餐桌号,创建一个未预约登记;2 系统记录并显示新预约//将红字的部分,独立为一个用例,用例描述如下:●记录未预约顾客(Record walk_in)基本事件路径1 侍者领班执行“显示预约”用例2 侍者领班输入时间、用餐人数和分配给顾客的餐桌3 系统记录并显示新预约●取消预约(Cancel booking)基本事件路径1 侍者领班执行“显示预约”用例2 接待员选择要求的预约3 接待员取消该预约4 系统询问接待员确认取消5 接待员回答“是”,系统记录取消并更新显示可选或例外的事件路径4a 预约的时间是在该现时间之前1 系统显示,预约的时间是在该查询时间之前,2 系统显示不能取消过去某段时间的预约4b 已经记录了顾客到来的预约1 系统显示不能取消该预约 调换餐桌(Table transfer)基本事件路径1 侍者领班选择需要的预约2 侍者领班改变该预约的餐桌分配3 系统记录改变并更新显示•显示预约(Display Bookings):1用户输入一个日期2系统显示当日的预约。
UML用例与用例之间的关系1. 引言在软件系统开发过程中,需求分析是一个至关重要的环节。
用例是一种常用的需求表示工具,用来描述系统与用户之间的交互过程。
用例图是一种在统一建模语言(UML)中常用的图形化表示工具,它能够清晰地描述不同角色之间的交互以及系统的功能。
在用例图中,用例之间存在着不同的关系,这些关系能够帮助我们更好地理解和分析需求,从而有助于正确地设计系统。
2. 用例与用例之间的关系用例与用例之间的关系主要体现在用例图中的连接关系,以下是用例与用例之间可能存在的几种关系:2.1 包含关系(include)包含关系描述了一个用例(被包含用例)在执行过程中调用了另一个用例(包含用例)的场景。
被包含用例是包含用例的一部分,它们之间有一个可选的包含关系,即被包含用例可以选择是否执行包含用例。
包含关系在用例图中用带箭头的虚线表示。
举例来说,如果一个系统中有一个支付用例和一个生成订单用例,那么支付用例可以调用生成订单用例来创建订单。
但是在某些情况下,比如采用现金支付时,生成订单用例就可以不执行,所以这个关系是可选的。
2.2 扩展关系(extend)扩展关系描述了一个用例(扩展用例)在某个基本场景(基础用例)的执行过程中可以选择性地插入另一个场景(扩展用例)。
扩展关系使得系统的功能可以按需进行扩展,而不会影响基础用例的执行。
扩展关系在用例图中用带箭头的虚线表示。
以在线购物系统为例,基础用例是购物,而扩展用例可以是添加到购物车、查看商品详情等。
这些扩展用例可以根据用户的需求来选择性地应用,从而实现购物功能的扩展。
2.3 泛化关系(generalization)泛化关系描述了一个用例(子用例)继承了另一个用例(父用例)的属性和行为。
子用例可以复用父用例的功能,并在其基础上进行扩展或修改。
泛化关系在用例图中用带空心箭头的实线表示。
例如,一个系统有多种角色,比如管理员和普通用户,它们都可以登录系统,所以可以有一个登录用例作为父用例,而管理员登录和普通用户登录可以作为子用例,从而实现用例的复用。
需求分析工具需求分析是软件开发过程中至关重要的一个环节,通过对用户需求的深入理解和明确梳理,可以有效地指导系统开发和设计工作。
本文将介绍几种常用的需求分析工具,包括用例图、状态图、数据流图和文本分析,并对其特点和适用场景进行简要分析。
一、用例图用例图是一种图形化的工具,用于描绘系统和用户之间的交互行为。
它主要由参与者(Actor)和用例(Use Case)组成。
参与者表示系统的各种不同角色,比如用户、管理员、系统等;用例表示系统的各种功能和操作。
用例图的主要特点是简洁明了、易于理解,能够直观地展示系统的功能和用户之间的交互方式。
它可以帮助开发团队清晰地了解用户需求,并将其转化为系统的功能模块。
用例图适用于大型系统或复杂的软件开发项目,能够帮助团队成员统一理解和沟通。
二、状态图状态图是一种描述系统在不同状态下的行为和转换的工具。
它通过状态(State)、事件(Event)和转换(Transition)来描述系统的行为和状态的变化。
状态图可以清晰地展示系统的状态转换和事件触发的关系,帮助开发团队更好地理解系统的行为。
状态图的主要特点是可视化、易于理解,能够清晰地表示系统的状态和转换规则。
它适用于需要描述系统状态和行为的需求分析场景,比如订单状态的变化、用户登录状态的转换等。
通过状态图,开发团队可以更好地理解系统的状态流转和状态变化,从而指导系统设计和开发。
三、数据流图数据流图是一种描述系统功能和数据流动的工具。
它通过各种处理过程、数据存储和数据流来描述系统的功能和数据流动。
数据流图可以清晰地展示系统的数据流动和处理过程,帮助开发团队理解系统的功能和数据流动。
数据流图的主要特点是简单明了、易于理解,能够清晰地描述系统的功能和数据流动。
它适用于需要分析系统功能和数据流动的需求分析场景,比如信息系统的输入、处理和输出等。
通过数据流图,开发团队可以更好地理解系统的功能和数据流动,从而指导系统设计和开发。
四、文本分析文本分析是一种通过对系统需求文本进行分析和处理,来理解需求的技术手段。
用例图和用例模型用例图用来描述用户的需求,它从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能;用例图概述UML用例图是软件产品外部特性描述的视图,它从用户的角度而不是开发者的角度来描述软件产品的需求,分析软件产品所需的功能和行为;用例图主要描述了系统需要实现的功能,而忽略系统是如何实现这些功能的;用例模型由用例图组成,它是系统用例图的集合,是对系统从宏观角度的确定描述;用例模型主要用于需求分析阶段,该模型是系统开发者和系统使用者反复讨论的结果,表明了系统开发者和系统使用者对需求规格达成的共识;首先,用例模型描述了待开发系统的功能需求;其次,用例模型将系统看作黑盒,仅从外部执行者的角度来理解系统;再次,用例模型驱动了需求分析之后各阶段的开发工作,影响到开发工作的各个阶段和UML的各个模型;一、用例图元素用例图主要用于定义系统的功能需求,它描述了系统的参与者与系统提供的用例之间的关系;用例图由以下几种元素组成:执行者、用例、关系、用例描述1执行者执行者Actor是系统的外部用户,它是与系统相关联的人或其它系统,可以是普通用户、外部硬件、其他系统;在进行用例图绘制时,首先要找出系统的执行者;一般可以从以下几个方面来考虑怎样找到系统的执行者:谁使用系统的功能;谁向系统提供必要的信息;谁从系统获取信息;谁维护、管理系统工作;系统需要使用哪些外部资源;需要与系统交互的其它系统有哪些;其他对系统产生的结果感兴趣的人或事物;2用例用例是指系统中的一个功能单元,也可以将用例理解为系统功能的分解;用例的表示方法如下:3关系1关联在用例图中,用例和执行者之间的关系用一条连接二者带箭头的连线表示,如图所示,该连线称为关联;它表示了一个执行者和一个用例之间的关系;在用例图中,关联关系只用在执行者和用例之间,用例和用例之间不会存在关联关系;关联关系采用的是单箭头的连线,表示在该关联中执行者是主动的,是执行者启动的用例;如下图所示;2包含包含是指一个用例作为另一个用例必需的部分被使用,包含关系是依赖关系的一种;包含关系用一条连接二者带箭头的虚线表示,并在虚线的上面标注include,箭头方向由基本用例指向包含用例,如下图所示;包含的使用场合:如果多个用例有大量一致的功能,可以将这个功能分解到一个用例中,其他用例和这个用例建立包含关系;一个用例功能太多,可以使用包含关系建立若干小用例;3扩展扩展是指一个用例扩充了另一个用例的功能,但这个扩充功能不是必需的,扩展关系也是依赖关系的一种;扩展关系用一条连接二者带箭头的虚线表示,但在虚线的上面标注的是extend,箭头方向由扩展用例指向基本用例,如下图所示;扩展关系和包含关系的区别;包含用例是一个完整的用例,它可以独立的存在,也可以单独被执行者所调用; 扩展用例并不是一个完整的用例,它只是由部分扩展功能组成的,它不能独立的存在,必须依赖于基本用例;4泛化用例间的泛化关系是指一个概念较为抽象的用例可以被一般化为一个或多个概念更为具体的用例;其中概念较为抽象的用例被称为父用例,概念更为具体的用例称为子用例;子用例是父用例的特殊形式,子用例从父用例处继承属性和行为,还可以添加、覆盖或改变继承的行为;二、用例描述为了进一步说明用例是如何完成功能的,就需要对用例进行更加详细的描述;用例描述主要用来说明执行者为了实现自己的目标与系统进行交互的过程;在用例描述中,需要对用例的主要属性进行说明;这些属性主要包括:简要说明前置条件后置条件基本事件流其他事件流异常事件流。