
3.4 建模实例:创建BBS论坛用例图
论坛也叫网络论坛(Bulletin Board System或Bulletin Board Service,BBS),它们还可以称作电子公告板或公告板服务。论坛是Internet上的一种电子信息服务系统,它提供一块公共的电子白板,每个用户都可以在上面书写,也可以发布信息或提出看法。本节以一个简单的论坛管理系统为例,来说明用例图的创建过程。
3.4.1 确定系统信息
BBS论坛中,用户首先通过论坛登录网页(如果是游客则需要注册)进入论坛,登录成功后可以通过发帖发布新的话题,也可以对已经存在的话题进行回复,还可以通过搜索来查看自己所关心的话题等。
在一个完整的论坛系统中可以实现多个功能,如发帖、回帖、查看帖子以及注册登录功能。如下列出了比较常用且比较重要的论坛常用功能。
1.普通用户注册成会员
几乎所有的网站都提供了用户注册成为会员的功能,当然论坛系统也不例外。用户在系统注册页面可以填写自己的基本信息,注册成功后系统会将信息保存到后台数据库中。另外,注册成功后用户也可以查看和修改当前的内容。
2.会员用户登录
论坛系统中提供了会员用户登录的功能,会员用户只要在论坛登录页面中输入注册成功时的登录名和密码即可。单击按钮后可以检测用户的登录名和密码是否合法,如果合法则可以进入页面进行其他功能的操作,如果不合法则会提示重新登录。
3.会员用户发帖
发帖即发表帖子,只有登录成功的会员用户才享有对该功能的操作,而未注册的用户(即普通用户)不能享有该功能。
4.会员用户回帖
回帖即回复帖子,登录成功的会员用户可以针对某一领域的某个问题跟帖,然后发表自己的意见、见解或看法。而普通用户不能实现回帖的功能。
5.搜索或浏览帖子
普通用户和已注册的会员用户都享有浏览帖子和搜索帖子的功能,浏览帖子即浏览不同领域和版块的所有帖子。他们也可以在搜索框中输入感兴趣的内容查看帖子列表,然后单击查看其详细内容。
6.新手手册
新手手册中的内容是由管理员负责管理的,对于首次进入BBS论坛系统的会员或游客都可以通过查看新手手册来了解该系统的功能和使用。
7.版块管理
版块管理是管理员和超级版主所特有的权限功能,管理员可以对版块进行分类、删除版块、添加版块以及修改版块等。论坛提供了不同版块讨论区域的相关数量统计,并且会员可以选择不同的版块区域进行讨论。
8.帖子管理
管理员、超级版主和版主都可以对帖子进行管理,如对帖子进行添加、删除、设置精华帖子以及控制点击率等操作。
9.会员用户管理
管理员具有最高权限,他可以对会员用户进行增加、删除、修改、查询以及将会员设置为版主等操作。用户添加完成后系统会把会员的相应资料添加到数据库中,例如会员ID、会员名称、会员密码、会员邮箱、会员联系电话和会员居住地址等。管理员会根据用户的身份进行相关内容的设置。将某个用户设置为版主后,该会员用户可以对该版块下的帖子进行管理。
从上面的介绍中,相信读者一定对BBS论坛的相关功能有所了解了,如下图所示为论坛系统总体的功能模块图。

从上图中可以看出,BBS论坛管理系统包括两部分:前台管理和后台管理。其中前台管理根据用户的身份可以划分为普通用户所享有的功能和注册成功的会员用户所享有的功能;后台管理则根据用户身份分别划分为管理员、超级版主和版主,身份不同所享有的功能也不完全相同。
3.4.2 前台功能概述
前台功能是指用户能够访问前台页面进行相关操作,前台功能包括查看不同版块的帖子、根据条件搜索帖子、查看新帖、发表帖子、用户登录以及普通用户注册成为会员等操作。
1.会员用户
由于用户的身份不同,所以他们所享有的功能权限也不相同,如下图所示演示了会员用户可以进行的功能操作。

从上图中可以看出,会员用户主要包括5个功能操作:会员登录、申请享有版主权限、帖子操作、添加好友以及提出建议。其中帖子操作又包括发表帖子、回复帖子、收藏帖子、查看帖子以及将帖子设置为精华帖5个操作。
下面将简单介绍与会员用户相关功能的操作。
□ 会员登录
系统提供了会员登录功能,单击页面中的【登录】按钮,在登录页面输入注册成功的用户名和密码进行登录,只有验证成功后才能使用系统提供的功能。
□ 申请享有版主权限
登录成功的会员用户只享有普通会员的权限,每个会员的等级都可以进行提升,当会员升级到一定级数时就可以申请成为版主。版主可以对该区域内的帖子进行管理操作,如删除帖子和修改帖子等。
□ 添加好友
会员还可以将其他的会员添加为自己的好友,然后与好友分享自己发表、回复的帖子,同时还可以邀请好友欣赏自己收藏的帖子等。另外,会员也可以从好友列表中删除某个好友。
□ 提出建议
会员用户可以查看版主、超级版主和管理员所提出的建议,当然自己也可以向管理员或超级版主提出建议。
□ 发表帖子、回复帖子和查看帖子
会员用户登录成功后可以对论坛中的帖子进行简单的基本操作,如会员可以在某个版块下发表帖子、对某个帖子进行回复或查看某个版块下帖子的详细内容等。
□ 收藏帖子和推荐帖子
论坛上的帖子有很多,有的甚至成百条、成千条,每次查找时也会相当麻烦,所以会员用户可以将自己喜欢的帖子进行收藏,这样方便以后查看。另外也可以选择特定的好友,将某个帖子推荐给他们。
2.普通用户
前台除了为会员用户提供多个功能操作外,也为没有注册的普通用户提供了一些操作。如下图所示为普通用户的功能操作。

从上图中可以看出,普通用户的功能操作主要包括注册成为会员、查看新手手册、查看最新动态、提出建议以及帖子操作5个功能。其中帖子操作包含查看帖子和推荐帖子。
下面对普通用户的功能操作进行简单介绍。
□ 注册成为会员
BBS论坛系统提供了对普通用户注册成为会员的功能,如果想要成为系统的会员,只要单击【用户注册】按钮,在注册页面输入个人信息(如用户名、密码、联系电话和性别等)即可。
□ 查看新手手册
普通用户进入BBS论坛系统后可以查看新手手册了解论坛的基本功能和操作步骤等,这样可以方便用户以最快的速度了解该论坛系统。
□ 查看最新动态
普通用户有权限了解当前论坛系统的最新动态,如发表的新帖子、新话题以及版本更新等内容。
□ 提出建议
会员具有向管理人员提出建议的功能,同样普通用户也有该功能权限。普通用户可以向会员、版主或管理员等提出建议,当然也可以查看管理员向会员或普通用户所提出的建议和意见等。
□ 帖子操作
普通用户可以对论坛系统的帖子进行最基本的操作:查看帖子和推荐帖子。如果是未注册的用户(即普通用户),推荐帖子时不能够向指定的人进行推荐,而是向所有的会员进行推荐。
3.4.3 构造用例模型
用例图描述了一个外部的观察者对系统的印象,强调这个系统是什么,而不是这个系统怎么工作。在BBS论坛系统中,用例图的任务是明确系统是为哪些用户服务,即哪些用户需要利用BBS系统来工作。另外,还需要确定系统中的管理者和相关工作人员。
BBS论坛系统中由于用户身份的不同,所涉及的用户功能也不相同。后台用户主要涉及管理员和版主,而前台用户主要涉及普通用户和会员。下面分别从会员用户和普通用户两方面绘制功能用例图。
1.会员用户功能用例图
用例图的构成包括系统、参与者、用例和关系(如泛化关系、包含关系和扩展关系)。创建用例图模型的基本步骤如下。
(1)确定系统涉及的总体信息。
(2)确定系统的参与者。
(3)确定系统的用例。
(4)构造用例模型。
上文中的会员用户图中已经显示了与会员用户相关的功能操作。在与会员相关的用例图中涉及会员用户、会员要操作的会员登录、推荐帖子、发表帖子、回复帖子以及浏览帖子等功能操作。根据上面的操作步骤绘制会员用户功能的用例图,如下图所示。

上图中包含会员的多个功能操作,如下是对会员主要功能用例的分析。
□ 会员可以选择帖子查看帖子详情,并且对某个帖子进行回复、浏览和收藏等。
□ 会员可以向管理员发送请求成为版主的要求。
□ 会员可以选择添加好友,并且可以删除好友。
2.普通用户功能用例图
除了会员操作外,上文中的普通用户图中也列出了普通用户常用的功能操作。例如,普通用户可以注册成为会员,注册成功后可以修改个人信息,也可以注销当前登录;普通用户可以将自己认为好的帖子向所有人进行推荐,也可以向所有的版主和管理员发送建议等。根据绘制用例图的步骤绘制普通用户功能用例图,如下图所示。
