UML建模语言UML及面向对象分析及设计主讲:陈克建Email:xznuckj@163.comUML建模语言第5章用例图本章首先介绍了用例图的概念,具体讲解了用例图的组成要素,其次介绍了如何使用Rose创建用例图,最后通过一个示例详细讲解了使用Rose创建用例图的步骤。UML建模语言5.1用例图的基本概念用例图源于Jacobson的OOSE方法,它通过用例(UseCase)来捕获系统的需求,再结合参与者(Actor)进行系统功能需求的分析和设计。UML建模语言5.1.1用例图的定义由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。5.1.2用例图的作用用例图是需求分析中的产物,主要作用是描述参与者和用例之间的关系,帮助开发人员可视化地了解系统的功能。UML建模语言为了更好地掌握如何画用例图,有必要详细地了解用例图的4个组成要素:参与者(角色)、用例、系统边界、关联。5.2用例图的组成UML建模语言5.2.1参与者1.参与者的概念2.参与者的确定3.参与者间的关系UML建模语言1.参与者的概念参与者(Actor)是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象。UML建模语言2.参与者的确定在获取用例前首先要确定系统的参与者,寻找参与者可以从以下问题入手:.系统开发出来后,使用系统主要功能的是谁?.谁需要借助系统来完成日常的工作?.系统需要从哪些人或其他系统中获得数据?.系统会为哪些人或其他系统提供数据?.系统会与哪些其他系统交互?其他系统可以分为两类,一类是该系统要使用的系统,二是启动该系统的系统,包括计算机系统和计算机中的其他应用软件。.系统是由谁来维护和管理的,以保证系统处于工作状态?.系统控制的硬件设备有哪些?.谁对本系统产生的结果感兴趣?UML建模语言3.参与者间的关系由于参与者实质上也是类,所以它拥有与类相同的关系描述,即参与者与参与者之间主要是泛化关系(或称为“继承”关系)。公司管理系统用例图参与者间的泛化关系UML建模语言泛化后的公司管理系统用例图UML建模语言5.2.2系统边界所谓系统边界是指系统与系统之间的界限。把系统边界以外的同系统相关联的其他部分称之为系统环境。系统名称用例参与者UML建模语言5.2.3用例1.用例的概念用例(UseCase)是参与者(角色)可以感受到的系统服务或功能单元。带路径名的用例UML建模语言2.用例的识别任何用例都不能在缺少参与者的情况下独立存在。同样,任何参与者也必须要有与之关联的用例,所以识别用例的最好方法就是从分析系统参与者开始,在这个过程中往往会发现新的参与者。UML建模语言3.用例的粒度用例的粒度指的是用例所包含的系统服务或功能单元的多少。用例的粒度越大,用例包含的功能越多,反之则包含的功能越少。UML建模语言下图为学生管理系统中的维护学生信息用例,管理员需要进行添加学生信息、修改学生信息、删除学生信息等操作。UML建模语言还可以根据具体的操作把它抽象成3个用例细化后的学生管理系统UML建模语言4.用例规约用例图只是在总体上大致描述了系统所提供的各种服务,让用户对系统有一个总体的认识。但对于每一个用例还需要有详细的描述信息,以便让其他人对于整个系统有一个更加详细地了解,这些信息包含在用例规约之中。而用例模型指的也不仅仅是用例图,而是由用例图和每一个用例的详细描述——用例规约所组成的。UML建模语言为了减少模型维护的工作量、保证用例模型的可维护性和一致性,可以在用例之间抽象出包含(Include)、扩展(Extend)和泛化(Generalization)这几种关系。5.2.4关联UML建模语言1.包含包含关系是指用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。UML建模语言2.扩展在一定条件下,把新的行为加入到已有的用例中,获得的新用例称为扩展用例(Extension),原有的用例称为基础用例(Base)。UML建模语言从扩展用例到基础用例的关系就是扩展关系。UML建模语言3.泛化用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系。UML建模语言5.3用例图的创建概述5.3.1创建用例图5.3.2创建参与者5.3.3创建用例5.3.4创建用例之间的关联RationalRose是一种面向对象的统一建模语言的可视化建模工具,下面介绍如何使用RationalRose绘制用例图。UML建模语言5.3.1创建用例图打开RationalRose后,在UseCaseView图标上单击鼠标右键,在弹出的快捷菜单中选择New|UseCaseDiagram命令建立新的用例图。UML建模语言创建新的用例图后,在UseCaseView树型结构下多了一个名为NewDiagram的图标,这个图标就是新建的用例图图标。右键单击此图标,在弹出的快捷菜单中选择Rename命令来为新创建的用例图命名。UML建模语言双击用例图图标,会出现用例图的编辑工具栏和编辑区。UML建模语言5.3.2创建参与者参与者是每个用例的发起者,要创建参与者,首先要单击用例图工具栏中的图标,然后在用例图编辑区内单击画出参与者。接下来可以对这个参与者命名,单击已画出的参与者,会弹出如下对话框。UML建模语言对于一个完整的用例图来说,参与者往往不只一个,这就需要创建参与者之间的关系。UML建模语言5.3.3创建用例单击工具栏中的图标,然后在用例图编辑区内单击鼠标左键画出用例。单击已画出的参与者,弹出如图如下所示的对话框。UML建模语言接下来创建用例和参与者之间的关联关系。UML建模语言5.3.4创建用例之间的关联1.创建包含关系单击用例图工具栏中的图标,然后在需要创建包含关系的两个用例之间拖动鼠标,双击虚线段,弹出如下对话框。UML建模语言用例之间的包含关系UML建模语言2.创建扩展关系UML建模语言5.4用例图的创建示例1.学生信息管理模块2.班级信息管理模块3.成绩管理模块4.网上选课模块5.账号管理模块下面通过一个实际的系统用例图——“学生信息管理系统”来讲解用例图的创建过程。UML建模语言5.4.1需求分析1.学生信息管理模块学生信息管理模块主要用来实现系统管理员、教师、校领导等对学生基本信息的管理。2.班级信息管理模块班级信息管理模块主要用来实现系统管理员、校领导对班级基本信息的管理。3.成绩管理模块成绩管理模块主要用于实现教师对学生考试成绩的管理以及学生对考试成绩的查询。4.网上选课模块网上选课模块主要用于实现学生在网上了解并选择自己感兴趣的课程。5.账号管理模块账号管理模块主要实现系统管理员对用户账号的管理。UML建模语言5.4.2识别参与者要确定参与者,首先要分析系统的主要任务以及系统所涉及的问题、分析使用该系统主要功能的是哪些人、谁需要借助系统来完成工作、系统为哪些人提供数据、谁来维护和管理系统。UML建模语言5.4.3确定用例1.学生信息管理的用例2.班级信息管理的用例3.成绩管理的用例4.网上选课的用例5.账号管理的用例UML建模语言1.学生信息管理的用例登录。查询学生基本信息。录入学生基本信息。修改学生基本信息。删除学生基本信息。找回密码。2.班级信息管理的用例登录。找回密码。查看班级基本信息。修改班级基本信息。删除班级基本信息。录入班级基本信息。3.成绩管理的用例登录。找回密码。录入成绩。修改成绩。保存成绩。查询成绩。删除成绩。UML建模语言4.网上选课的用例登录。找回密码。查看课程信息。按课程编号查看。按课程名查看。选择课程。删除已选课程。维护课程信息。5.账号管理的用例创建新账号。设置账号。设置账号基本信息。设置账号权限。删除账号。查看账号。UML建模语言5.4.4构建用例模型1.班级信息管理用例图UML建模语言2.成绩管理用例图UML建模语言3.网上选课用例图UML建模语言4.账号管理用例图UML建模语言5.5本章小结本章首先介绍了用例图的概念和作用,讲解了用例图的重要组成元素:参与者、用例、系统边界和关联。接着又介绍了如何通过RationalRose创建用例图和用例图的各个元素,并创建它们之间的关系。最后通过学生信息管理系统具体讲解了如何在实际中创建用例图。UML建模语言练习题网络的普及带给了人们更多的学习途径,随之用来管理远程网络教学的“远程网络教学系统”也诞生了。“远程网络教学系统”的功能需求包括:(1)学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。(2)教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。(3)系统管理员负责对网站页面的维护,审核不法课件和不法教学信息,批准用户注册。UML建模语言练习题(1)学生需要登录“远程网络教学系统”后才能正常使用该系统所有功能。如果忘记密码,可以通过“找回密码”功能找回密码。登录后学生可以浏览课件、查找课件、下载课件、观看教学视频,请画出学生参与者的用例图。(2)教师登录“远程网络教学系统”后可以上传课件、上传教学视频课件、发布教学心得、修改教学心得。如果忘记密码,可以通过“找回密码”功能找回密码。请画出教师参与者的用例图。UML建模语言练习题(1)学生需要登录“远程网络教学系统”后才能正常使用该系统所有功能。如果忘记密码,可以通过“找回密码”功能找回密码。登录后学生可以浏览课件、查找课件、下载课件、观看教学视频,请画出学生参与者的用例图。UML建模语言练习题(2)教师登录“远程网络教学系统”后可以上传课件、上传教学视频课件、发布教学心得、修改教学心得。如果忘记密码,可以通过“找回密码”功能找回密码。请画出教师参与者的用例图。