背景
近期,老师开始带我们尝试直接与甲方接触,进行需求的沟通。
学习过软件工程后我们会知道,项目在正式动工开发之前,做好需求分析是十分关键的。这部分内容有时甚至是一个项目周期中占比最多的部分。
需求分析的工作并不比编程开发简单。需求分析最后应该以文档的形式将分析结果呈现出来。而这个文档中最重要的部分就是图例。
正好最近软件工程实验刚刚结束,其实验报告中的需求分析部分也需要使用图例。于是这篇文章将在软件工程实验题目情景下,对需求分析中的三个重要的图例(用例图、活动图、时序图)进行介绍与分析。
题目:计算机专业课程在线考试管理系统。
情景:随着考试类型的不断增加及考试要求的不断提高,传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,人们迫切要求进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。计算机专业课程在线考试管理系统要求能够管理参加考试学生的相关信息,能够构件课程知识点、划分题型、建立题库、自动出卷,客观题自动评分及成绩汇总等功能。(题干原文)
用例图
用例图包含两个元素:角色和用例。
角色、用例之间的主要关系有:关联、泛化、包含、拓展、依赖。
下面一用户登陆系统为例进行介绍
关联(角色-用例)
角色与用例之间用一条直线相连。如下图:
表示用户会用到登录系统这个功能。
泛化(角色-角色 或 用例-用例)
子元素与父与元素之间用(子指向父的)箭头连接。如下图:
表示管理员、教师、学生三种角色都会用到登录系统这个功能;且登录系统有两种方式:账密登录、微信登录。
包含(用例-用例)
基础用例与包含用例之间用(基础指向包含的)虚线箭头连接。如下图:
表示用户在账号登录过程中,包括输入账号、输入密码、确认登录等操作。
拓展(用例-用例)
基础用例与拓展用例之间用(拓展指向基础的)“拓展” 箭头连接。如下图:
表示当用户在登录过程中忘记了密码时,会需要用到忘记密码的功能。
拓展用例是在特定条件出现时,才会被执行的用例。
依赖(用例-用例)
用例与用例之间用一条直线相连。如下图:
表示展示首页功能的执行,需要登录系统功能的完成。
活动图
活动图包含五个元素:开始、活动、判断、执行顺序、结束。元素及图标如下图:
除了上述五个元素外,还有需要用泳道来划分不同对象(角色)的执行区域,各个对象都应该在自己泳道里进行自己部分的活动。
泳道如下图:
我们以下述情景为例介绍活动图的绘制:
- 管理员登录系统维护教师、班级、学生、课程、题库、题库中的题目等各类基础信息。
- 教师登录系统添加考试信息,添加考试时可选题库以随机出题;发布考试;批改主观题;查看学生考试情况。
- 学生登录系统查看、参与考试;考完后可查看考试详情(得分等)。
活动图如下:
活动图在绘制或者阅读时,通常都会遵循从上到下、从左到右的顺序。
时序图
时序图包含四个元素:对象、生命线、控制焦点、消息。如下图:
对象:具体可以指角色、对象、类等等。角色用小人表示;对象、类等用方框表示。
生命线:在时序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间。
控制焦点:又称为激活期,表示时间段的符号,在这个时间段内对象将执行相应的操作。
消息:在对象之间横向传递的信息。
时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在对象之间横向传递,依照时间顺序纵向排列。类似这样:
对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:
- 把初始化整个交互活动的对象放置在最左端。
- 把交互频繁的对象尽可能的靠拢。
以学生参加考试并交卷为例展示时序图:
总结
图例 | 作用 |
---|---|
用例图 | 用于描述系统的参与者与系统之间的交互。它展示了系统的功能或服务,说明了各个参与者可以与哪些功能交互以及如何与这些功能交互。 |
活动图 | 用于描述系统中的业务流程或工作流。它展示了不同活动之间的顺序和条件关系,以及在这些活动中涉及的对象(比如各个对象的活动边界)。 |
时序图 | 用于描述对象之间的交互和消息传递顺序。它展示了系统中对象如何协同工作以完成特定的任务或交互。 |
希望这篇文章对你有帮助!
参考文章
https://www.woshipm.com/pmd/3516753.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。