UML是软件行业的建模规范,可以对软件项目建立需求模型、设计模型、实现模型、测试模型,因为UML有精确的建模语义,各个模型之间还能有效集成,所以可以基于模型进行仿真验证,使得设计具有完整的前瞻能力。
UML当前最新的规范是2.5,有13种图,分为2大类:静态结构图和动态行为图。UML因为讲求建模的精确性,所以比较专业,学起来比较抽象,这里专门以贪吃蛇游戏为例,讲解UML的13种图,如下图所示:
UML 图解1:用例图( Use case diagram )
为什么需要用例图建模
用例图其实来自于电影领域的场景描述,是导演向演员讲述电影剧本的有效方式。
后来被UML建立者Ivar参考,作为描述用户需求的图。
用例图从用户的角度描述一个系统具有哪些功能。
用户采用actor元素表示,
用户对系统的使用场景采用usecase描述,
用例图描述需求有什么好处呢?
这样描述功能需求符合用户的视角,用户易于理解,易于参与。
用例图有什么
任何UML图都有语义、元素、关系和用途,下面对用例图做个列表描述:
语义
|
描述用户使用系统的场景
|
元素 |
参与者(actor):可以是操作员、外部系统、外部设备
、时间。
用例 (use case) :参与者和系统交互的场景描述。 |
关系 |
角色之间:泛化关系(
generalization)
用例之间:包含(dependency),扩展(extend),泛化( generalization) |
用途 |
通过用户使用系统的场景描述功能需求 |
图例:用例图
为了让读者看的更形象,这里采用图例的方式介绍用例图的用法,下面是贪吃蛇游戏的用例图。
用例图说明:
下面是贪吃蛇游戏的用例图说明
用户《player》的 usecase 有 《set game》 和《play game》
《set game》有两种方式有 《set rate》和
《set size》
《play game》包含 《eat food》,也可以
《save game》
应该对每个用例进行详细描述,如下是 《play game》用例的详细描述
用例名称
|
play
game |
前置条件 |
Game启动,初始化完毕 |
基本流 |
1.Player启动game,
2.game初始化 map,
3.map上面出现 food,
4.一个 snake 爬进 map,
5.snake 如果遇到food ,吃掉,加十分,
6.如果遇到wall,死掉,game over。 |
后置条件 |
显示结束游戏时候的积分 |
备选流 |
在基本流3-6,如果player要
退出 game,
系统询问是否保存game,
如果 player选择保存,则game被保存,下次启动游戏的时候可以继续 |
后置条件 |
Game当前进度被保存,下次可以继续。 |
异常流 |
在基本流2,game会记录日志,用于事后分析。
在基本流3-6,如果game异常退出,会记录日志,用于事后分析。 |
后置条件 |
Game当前进度被保存,下次可以继续。 |
非功能需求 |
性能需求:
蛇每秒钟爬动一步,
每秒钟更新计时,
吃掉食物后理解更新积分。
可靠性需求:游戏应该保证基本的运行能力,不会出现卡死或者异常退出。
扩展需求:
界面:支持改变地图背景,蛇的颜色。
数据:可以设置地图的宽度,蛇的宽度。
运行环境:应该支持多种操作系统,包括:windows,Android,ios |
说明:本文的模型采用建模工具EA建模。
UML图解系列:
后记
希望您读了此文后有所受益。
如果您有经验乐于分享,欢迎投稿给我们
如果您对我们的培训、咨询和工具感兴趣:
|