


子情景3.2 用例分析,,情境3:嵌入式软件建模—MP3播放器,,,*,(中职)UML与Rose建模应用子情境3.2ppt课件,学习情境3:嵌入式系统建模,—MP3播放器,UML及Rose建模应用,子情境3.2 用例分析,,,,,,,,,根据子项目3.1的需求分析报告,确定嵌入式MP3系统的参与者、用例、参与者与用例之间的关系,包括:确定用户使用MP3系统行为、计算机与系统交互系统行为;最后设计出用户使用播放器的用例图和出计算机与系统交互的用例图子项目描述,,,,,,任务1:识别参与者、用例和建立用例图,,,,,,,,,,任务描述,,根据需求分析中提取的名词来确定参与者;根据需求分析中的主要任务来确定用例最后,按照用例模型的创建方法来建立用户使用播放器的用例图和计算机与系统交互的用例图用例之间的关系:,,用例描述系统满足需求的方式当细化描述用例操作步骤时,就可以发现有些用例以几种不同的模式或特例在运行,而有些用例在整个执行期间会出现多重流程如果将用例中重要的可选性操作流程从用例中分隔出来,以形成一个新的用例,这对整个系统的好处是显而易见的当分离可重复使用的用例后,用例之间就存在着某种特殊关系。
包含和扩展是两个用例紧密相关时,关联用例的两种方法包含关系用于表示用例为执行其功能时需要从其他用例引入功能类似地,扩展关系则表示用例的功能可以通过其他用例的功能得到扩充相关知识,1.包含关系,,在对系统进行分析时,通常会发现有些功能在不同的环境下都可以被使用在编写代码时,我们希望编写可重用的构件,这些构件包括诸如可以从其他代码中调用或参考的类库、子过程以及函数在用例图中UML支持同样的做法用例之间的包含关系在UML中的标记符如图3-2所示注意图中虚线箭头指向被包含用例相关知识,图3-2 包含关系标记符,包含关系和对象之间的调用关系比较相像,它描述的是一个用例需要某种类型的功能,而该功能被另外一个用例定义,那么在用例的执行过程中,就可以调用已经定义好的用例被包含的用例由两种方法确定:一种是被包含的用例事前已经存在,它们是因为某个目的而定义,在系统的开发过程中,恰好需要同样的功能,这样就不需要在系统中重新定义用例,直接将其包含到新的用例中就可以了;另外一种确定被包含用例的方法是从已经存在的几个用例中提取实现相同功能的操作步骤,以形成新的用例被包含用例称为提供者用例,包含用例称为客户用例,提供者用例提供功能给客户使用。
相关知识,为了更好地理解包含关系是如何起作用的,下面列出了“图书管理系统”的系统用例模型的一部分,如图3-3所示相关知识,图3-3 图书管理系统中的包含关系,当图书管理员执行借书操作和还书操作用例时,由于这两个用例都需要进行是否超时的检查,因此,可以将处理超时从这两个用例中提取出来,形成一个公用的新用例为了使用包含关系,用例必须遵循以下两个约束条件:,,客户用例只依赖于提供者用例的返回结果,不必了解提供者用例的内部结构客户用例总会要求提供者用例执行,对提供者用例的调用是无条件的在为系统建立模型时,使用包含关系是十分明智的因为它有助于在将来实现系统时,确定哪里可以重用某些功能,在编写代码时就可实现代码的重用,从而从长远意义上缩短系统的开发周期相关知识,2.扩展关系,,扩展关系是意中依赖关系,它指定了一个用例可以增强另外一个用例的功能扩展关系与包含关系一样,只是将单词include替换成了表示扩展关系的单词extend从如图3-4所示的扩展关系可以看出,扩展关系的虚线箭头是指向基用例的(被扩展用例),箭头的尾部则处在扩展用例上相关知识,图3-4 扩展关系标识符,下面的示例将演示在图书管理系统中如何使用扩展关系:处理超时用例由通知超时用例进行扩展,如图3-5所示。
在本示例中,基用例是处理超时,扩展用例是通知超时如果借阅者按时归还图书,那么就不会执行通知超时用例而当归还图书时超过了规定时间,则处理超时用例就会调用通知超时用例提醒管理员对此进行处理相关知识,图3-5 用例间扩展关系示例,正如3-5中所表示的,通知超时用例指向处理超时用例这样创建的原因是因为通知超时用例扩展了处理超时用例,即通知超时用例是添加到处理超时用例中的一项功能,而不是处理超时用例每次都调用通知超时用例如果每次检查是否超时都要提醒图书管理员,那么就要使用如图3-6所示的包含关系相关知识,图3-6 提示是否超期,,,,,,子任务1:建立用户使用播放器的用例图,,,,,,,,,,子任务描述,用户使用MP3播放器进行播放音乐、选择曲目、调节音量、上下曲进行切换等操作,根据以上操作设计出MP3播放器与用户之间的用例图用例编号,用例名称,用例编号,用例名称,UC01,播放音乐,UC04,下一曲和上一曲,UC02,暂停播放,UC05,调整音量,UC03,选择曲目,UC06,增大音量和减小音量,提取用例,提取用例,系统用例描述的是用户眼中的系统,即用户希望系统有哪些功能和通过哪些操作完成这些功能。
一个用例代表用户与系统交互的一种方式正如前面介绍过的,识别用例的最好方法是从参与者的角度分析系统在MP3播放器中,首要的参与者是用户,和用户有关的用例如下表2所示步骤1,,任务实施,新建参与者“用户”,在工具箱中单击“Actor”(参与者)图标,将光标移动到用例图窗口适当位置,单击鼠标左键,就会出现名为“NewClass”参与者,重命名为“用户”,如图3-8所示步骤2,【注意】在浏览窗口中右键单击“Use Case View”(用例视图),在弹出的菜单上选择菜单项“New”(新建)下的“Use Case Diagram”(用例图)命令,从键盘输入文本“MP3用例”命名该用例图,双击“MP3用例”打开用例图窗口以下步骤在此前提下实施,不再赘述图3-8 新建参与者对象,,任务实施,新建用例,在工具箱中选择“Use Case”(用例)工具图标,将光标移动到用例图窗口适当位置,单击鼠标左键,就会出现名为“NewUseCase”用例,输入文本“播放音乐”进行重命名,按相同的方法依次新建名为“暂停播放”、“选择曲目”、“上一曲”、“下一曲”、“调整音乐”、“增大音量”及“减少音量”等7个用例,如图3-9所示。
步骤3,图3-9 新建用例,,任务实施,建立参与者与用例之间的导向关联,下面以播放音乐和选择曲目为例,说明一下创建包含关系的步骤:,,步骤4,【提示】用户和播放音乐、暂停播放、上一曲、下一曲、增大音量和减小音量用例的关系是关联关系,使用工具箱画出它们之间的关联关系而播放音乐包含选择曲目,选择曲目包含上一曲和下一曲,调整音乐包含增大音量和减小音量,它们之间是包含关系1)在工具箱中单击选定“Dependency or instantiates”工具图标,如图3-10所示任务实施,(1)在工具箱中单击选定“Dependency or instantiates”工具图标,如图3-10所示图3-10 选定工具“Dependency or instantiates”(依赖或实例),,任务实施,(2)指向用例“选择曲目”,按住鼠标左键,拖动至“播放音乐”,松开鼠标,出现“带箭头的虚线”,即依赖关系,如图3-11所示图3-11 新建用例间依赖关系,,任务实施,(3)双击依赖关系“虚线”,在弹出的对话框中的Stereotype中选择include,如图3-12所示,然后单击“OK”按钮,完成包含关系的创建,如图3-13所示。
图3-12 选择“包含”关系,图3-13 用例间的包含关系,,任务实施,【提示】参照上述方法,画出其他用例间的包含关系,最后完成如图3-14所示的用户使用播放器的用例图,图3-14 用户使用播放器的用例图,,任务实施,,,,,,子任务2:建立计算机与系统交互的用例图,,,,,,,,,,子任务描述,由于MP3播放器是一个嵌入式系统,所以计算机与MP3播放器系统之间也要进行相关的操作,例如,读取媒体文件、添加媒体文件、删除媒体文件和重命名媒体文件等根据以上操作绘制出计算机与MP3播放器系统之间的用例图注意】在浏览窗口中右键单击“Use Case View”(用例视图),在弹出的菜单上选择菜单项“New”(新建)下的“Use Case Diagram”(用例图)命令,从键盘输入文本“计算机系统用例”命名该用例图,双击“计算机系统用例”打开用例图窗口以下步骤在此前提下实施,不再赘述新建参与者“计算机”,在工具箱中单击“Actor”(参与者)图标,将光标移动到用例图窗口适当位置,单击鼠标左键,就会出现名为“NewClass”参与者,重命名为“计算机”,如图3-15所示步骤1,图3-15 新建参与者,,任务实施,提取用例,,在工具箱中选择“Use Case”(用例)工具图标,将光标移动到窗口适当位置,单击鼠标左键,就会出现名为“NewUseCase”用例,输入文本“添加媒体文件”进行重命名,按相同的方法依次新建名为“删除媒体文件”、“重命名媒体文件”和“读取媒体文件”的用例。
步骤2,在工具箱中选择“Use Case”(用例)工具图标,将光标移动到窗口适当位置,单击鼠标左键,就会出现名为“NewUseCase”用例,输入文本“添加媒体文件”进行重命名,按相同的方法依次新建名为“删除媒体文件”、“重命名媒体文件”和“读取媒体文件”的用例步骤3,新建参与者与用例间,,的双向关联,,,任务实施,【提示】参照该过程,建立参与者“计算机”与用例“删除媒体文件”、“重命名媒体文件”、“读取媒体文件”间的关联,最后完成的效果如图3-16所示图3-16 计算机与系统交互的用例图,,任务实施,Thank You !,。