一、实验目的
综合实践基于UML的建模全部技术。
二、实验环境
Process on开发环境
三、实验任务
给出某小型软件分析建模案例
四、实验步骤
分析任务内容,完成相应工作,主要包括:
基于Process on完成任务实现;
发布完整的软件建模与分析文档。
当前随着科技文化与IT技术的飞速发展,人与人之间的交流方式逐渐增多,网络聊天、语音聊天、网络视频、博客、微信已成为人们彼此沟通和交流信息的主要方式。为了便于人们在某一专业领域探讨问题和发表意见,Internet上还出现了博客技术分享平台。在平台上,人们可以提出自己在某一专业领域中遇到的问题,即发表某一主题,随后,平台上的其他人会根据自己的知识和经验发表技术或提出解决问题的方法。
开发CSDN博客系统的目的是提供一个技术交流的平台,便于广大用户交流经验、探讨问题。因此,CSDN博客系统最基本的功能首先是发表主题其次是其他人根据主题发表自己的看法。此外,为了记录主题的发表者和主题的回复者信息,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能发表和回复主题,浏览者(游客)只能浏览主题信息。
系统的需求分析是软件开发过程中不可缺少的,尤其在对某个系统进行UML建模之前,明确系统的需求是至关重要的。
CSDN博客系统主要是用来在网上交流技术的,当有人提出一个问题或者见解,其他人可以针对不同的方面提出自己的想法并发表自己的见解。但是为保证平台的安全性,不是任何人都可以发表文章和回复文章的,必须以博主的身份登录系统后,才能够发表和回复博客。因此CSDN平台将用户划分为4类:普通游客、博主、会员和管理人员。
下面是一个CSDN博客系统的大致操作流程。用户通过登录平台的网页进入论坛,一般情况下多为注册用户博主的身份,有时还需要注册成为会员,登录平台后可以就某个话题(技术问题)展开讨论。在平台上,可以通过发动态或者博客功能发布新的话题;通过回复评论功能对已经存在的话题进行回复;通过搜索的功能查找所关心的话题。而平台的管理员通过管理功能创建、编辑和删除平台的某个版块;对注册为CSDN会员的用户进行管理;此外,还要对博主所发的博客和评论进行管理。根据上述的操作流程以及管理员需要的功能,CSDN博客系统的功能可分为以下模块。
CSDN博客系统要提供新会员注册功能。在注册页面用户可以录入基本信息;提供检查注册信息的有效性功能;将新注册的会员的基本信息保存在数据库相应的数据表中。
CSDN博客系统为博主提供登录功能。博主通过在界面上输入用户名和密码,并对用户名及密码的正确性和有效性进行检查。如果是系统中合法的用户,则可以登录系统进行相关操作,如登录用户可以发表博客、浏览博客、回复博客、修改个人信息;否则提示用户身份不合法。
针对博主提供发表文章的功能,未注册的用户(即游客)不能使用该功能。
注册为平台的用户可以对某一话题展开讨论,发表自己的意见,并给出回复。
游客、博主和会员都可以通过该功能查询文章和阅读帖子;并根据自己的喜好针对文章标题信息进行检索并查看文章的详细内容。
当会员完成注册后,系统会把会员的注册信息添加到后台数据库中,通过包括会员的ID、用户名、密码、电子邮箱、找回密码需回答的问题等信息。同时,根据会员具有特殊操作的权利,如免费浏览VIP文章、观看VIP课程、下载千万资源、VIP个性化设置特权。管理者可以根据数据库中注册的特殊身份登录到平台后对会员信息进行管理。管理员具有最高的权限,可以删除会员、回收会员号、修改会员的积分、排行等。
针对不同的技术内容,博主可以将整个博客划分成不同的区域,用户可以选择进入不同的区域,同时平台还提供不同区域中包括文章数量等的相关统计信息。例如,博主可以将博客版块进行分类、添加版块、删除版块。
①版块分类:主要用于当有新主题的博客时,为其创建一个与之匹配的版块,并将博客移至版块内。
②添加版块:主要是为了对系统进行扩展,其中不包含将博客移至新版块内,因为系统可能还出现和该版块匹配的博客。
③修改版块信息:博主对已存在版块信息进行修整,修改板块头像、名字和详情介绍。
系统允许博主对板块分类进行调整,博主还可以添加新的版块。
系统的管理员和博主都可以对会员发表博客进行转移/置顶/删除、设置精华博客、控制博客的点击率等操作。
博主可以把不符合法律规范或者没有意义的博客放进垃圾箱,同时在垃圾箱中提供彻底删除博客、恢复博客、清空等操作;博主可以推荐好的博客,将这些博客置顶,同时管理员还有监督博主的权利和义务,也就是管理员可以强制性向博主提出要求:此外,管理员也可以根据博主的回复评论次数和博客的浏览次数,将一些博客集中起来,将它们设置为热门博客,这样能够更明显地显示现在大家关注的事件或者主题。
博主将一些博客添加置顶标记,为的是让一些不想回复或者没有时间回复博客的用户和游客表达自己的意见,例如顶一下博客。博主还可以设置精华博客,向用户提供博客的最新动态。
当然,博主可以向管理员申请放弃博主身份。
评论区主要由管理员负责。管理员审核评论区的言论。即管理员权限较高,可以删除系统中的评论,同时可以向博主提出建议,也可以对自己提出的建议进行修改。
新手手册也是由管理员负责。对于首次进入CSDN博客系统的游客,可以通过查看新手手册来了解系统的功能和应用。手册中的内容也是由管理员负责提供。
根据上述的功能需求分析,可以确定系统整体功能分为前台功能模块和后台功能模块。并根据参与者的身份把前台功能分为普通游客和会员的功能,后台功能分为博主和管理员的功能。
用户第一次访问CSDN页面后,可进行查看精华博客、搜索博客、查看动态信息、用户注册等操作。用户在此CSDN平台中通过注册成为该平台的真正用户并成功登录系统后,可进行发表博客、回复博客、查看自己发表的博客等操作。前台功能分为普通游客和会员的功能,其功能模块划分如图所示。
普通游客功能模块分析如下。
①在线注册:系统提供了新会员在线注册功能。如果想成为系统的会员,在主界面提供会员注册的功能,单击注册新会员,填写用户的一些信息即可。
②浏览博客:普通游客可以在系统主界面上浏览博客,以获得基本的信息。
③推荐博客:普通游客是未注册的用户,因此,普通游客不可以向指定的人推荐博客,只能浏览博客。
④查看新手手册:游客进入CSDN平台后,可以通过查看新手手册的功能,以最快的速度了解CSDN的功能以及操作步骤等。
⑤查看系统最新动态:普通游客有权了解平台的最新动态,比如新发表的博客、新话题、博主更换等。
①会员登录:会员登录成功后才能使用系统提供的功能。
②发表、回复、浏览博客:会员登录成功后可以发表博客、回复博客和浏览博客。
③收藏博客:会员可以将一些自己喜欢的博客收藏,便于后续阅读。
④浏览VIP文章、课程:会员可以浏览各种付费文章和视频,不受VIP阻碍限制。
⑤下载千万资源:会员可以下载博主上传的资源,免费下载无需再支付任何费用。
⑥VIP个性化设置特权:会员可以在自己的主页面设置VIP特权背景,美化自己的主页面显示。
若用户的权限为博主或管理员,则可进入后台进行博客类别管理、版面管理和用户管理等操作。后台功能分为博主和管理员的功能,其功能模块划分如图所示。
①版主功能模块分析如下。
- 版主登录:登录成功后才能进人某版块的后台,管理该版块内的帖子。
- 置顶帖子、设置热门帖子、设置精华帖:版主登录成功后,可以进行将帖子置顶、设置热门帖子和设置精华帖,版主可以向所有的会员针对某热门话题或者有争议的话题发起征帖操作。
- 垃圾箱:可以把帖子拖进垃圾箱,也可以把帖子回收和彻底删除。
- 发出辞职请求:版主可以向管理员申请辞去版主职务。
②管理员功能模块分析。
管理员可以完成登录、版块管理、会员管理、建议箱管理和新手手册管理操作。
- 划分版块:管理员可以根据主题的不同时将博客进行版块分类,每个版块分别设置不同年版块号和主题。
- 修改版块:可以修改主题等信息。
- 添加版块:可以根据用户的需求,适当添加一些新的版块,以满足用户需求,现时可以添加精华版块。
- 删除版块:可以删除版块内容。
- 关闭版块:可以暂时关闭版块。
- 设置版块:每个版块都需要由博主来管理,为博主设置博主账号。
- 回复博主辞职的请求:回应博主发辞职请求。
- 添加会员和删除会员:可以添加新会员或删除一些不合格的会员。
- 修改会员信息:可以修改会员的基本信息。
- 限制会员活动:如果一些会员对系统进行攻击、破坏或者发表一些不健康的帖子,管理员可以根据事情的轻重,限制会员活动。
- 设置会员升级:由系统自动记录会员登录时间和登录次数,当达到升级要求时,系统自动完成会员升级。
- 回复会员请求:根据会员提出的请求进行回复。
- 建议管理:删除、查看、采纳建议。
- 提出建议:管理员可以通过建议箱向游客、会员和博主分别提出建议。
- 更新建议:会员可以更新自己提出的建议。
- 征求意见:管理员可以针对某项活动征求用户的意见。
本实验将从四个方面描述CSDN博客系统的系统建模。
1.创建系统用例模型。分析系统的参与者,并根据不同的参与者分别制其对应的用例图。
2.创建系统静态模型。通过识别和分析系统中的类和对象来创建系静态模型,包括系统的类图和包图。
3.创建系统动态模型。根据系统的用例模型来考查对象之间的相互作用。
4.创建系统部署模型。部署模型是对系统的实现结构进行建模。
进行系统分析和设计的第一步是创建系统的用例模型。作为描述系统的用户或参与者所能进行的操作模型,它在需求分析阶段有着重要的作用,整个开发过程都是围绕系统需求用例表述的问题和问题模型进行的。
创建系统用例模型的第一步是确定系统的参与者。根据前面的需求分析可知CSDN博客系统的参与者包含以下五种。
①用户。泛指所有使用CSDN博客系统的人,是专门抽象出来的一个参与者。
②普通用户。即游客,没有在CSDN中进行注册的用户,无权发博客、发动态、上传资源和回博客以及浏览、点赞、收藏、分享文章和关注、私信博主的权限,可以浏览、点赞博客。
③注册用户。已经注册成为CSDN博客的博主,登录CSDN后即可拥有发博客、发动态、上传资源和回博客以及浏览、点赞、收藏、分享文章和关注、私信博主的权限。
④会员用户。已开通CSDN会员的博主,可以免费浏览VIP文章、观看VIP课程、下载千万资源、VIP个性化设置特权。
⑤管理员。拥有对博主博客进行管理、打赏的权限。
上面的普通用户、注册用户、会员用户、管理员都继承自用户,是泛化的关系。据此画出如图1所示的系统参与者。
根据不同的参与者可以分别画出各自的用例图。下面以“注册用户”参与者为例,先分析注册用户在系统中进行的活动。
①注册会员用例:注册用户通过升级成为会员。升级会员成功后可以修改个人信息、在线注销会员身份等。
②浏览博客用例:注册用户可以进人系统主界面浏览博客,选择自己想要浏览的文章并点赞、评论、收藏、分享博客,关注和私信博主。
③编辑博客用例:博主可以选择写文章进行编辑,在排版美化后发表博客。
④向粉丝推荐博客用例:博主可以将自己认为比较好的博客,向所有人推荐,并写出推荐理由。
⑤查看新手手册用例:注册用户进入CSDN系统,可以根据新手手册迅速了解该系统的操作步骤、功能等各方面的情况。
⑥查看系统最新动态用例:注册用户进入此界面可以了解CSDN的最新动态,如新发表技术问题、新话题等。
根据上述分析画出注册用户的用例视图,如图2所示。
在获得系统的基本需求用例模型后,通过识别和分析系统中的类和对象来创建系统的静态模型。通过寻找系统域描述和需求描述中的名词来识别系统对象,根据前面的系统需求分析可以识别系统中存在10个类:管理员、博主、会员、游客、板块、动态、建议、新手手册、请求信息和回复信息。
下面以“管理员”类、“博主”类、“板块”类为例,分析其属性并绘制出这三个类的类图。
①“管理员”类包含的属性主要有管理员的姓名、账号、操作时间、联系方式和管理属性。其包含的操作主要有显示操作选择界面、划分版块、添加版块、删除版块、修改版块、设置博主、关闭版块、打开版块、添加会员、删除会员、限制会员活动、修改会员信息、设置会员升级要求、提出建议、查看建议、更新建议、更新和设置手册内容等。
②“博主”类包含的属性主要有博主账号、博主的会员号、博主级别等,这些属性用来记录博主的基本信息和与之有关的版块。博主在管理版块的同时,也保留会员身份。请求辞职标记属性用来记录当前博主是否发出请求。其包含的操作主要有显示博主详细信息、置顶博客、形成请求辞职博主列表、热门博客、设置精华内容、垃圾箱管理、发起投票、评论区管理等。
③“板块”类包含的属性主要有版块类型、版块号、版块主题、版块开放时间、版块系统记录、博主账号。其包含的操作有显示版块详细信息、形成被关闭版块列表、设置需关闭版块标记、形成所有版块列表。
根据上述分析这三个类对应的类图如图3所示。
根据系统的用例模型,可以通过两种方式来考查对象之间的相互作用的系统对象行为。
一种是以相互作用的一组对象为中心进行考查,即交互图,其包括序列图和通信图;另一种是以独立的对象为中心进行考查,包括活动图和状态图。对象之间的相互作用构成了系统的动态模型。
系统活动图用来描述系统的参与者是如何协同工作的,在CSDN博客系统中可以创建的主要活动图包括:普通游客管理活动图、会员用户管理活动图、博主管理活动图、管理员功能活动图等。下面以“博主管理”为例,分析其活动流程并绘制出活动图。
博主具体活动过程描述如下。
①博主如果要注册为会员,首先申请会员号,如果注册失败则退出系统,注册成功后可登录进人主界面。
②博主注册为会员后可以修改个人信息、登录系统和在线注销。操作结束后退出系统。
③博主根据需要进入主页可以查看新手手册、查看系统最新动态、浏览博客,在浏览文章时可以点赞、评论、收藏、分享博客,关注和私信博主。
④博主可以选择写文章进行编辑,在排版和美化后发表博客。
⑤博主可以将自己认为比较好的博客,向所有人推荐,并写出推荐理由。
根据上述分析绘制出的博主管理活动图如图4所示。
状态图用来对有明确状态转换的类进行建模。在CSDN博客系统中,有明确状态转换的类有普通游客、注册博主、注册会员、管理员4个。下面以博主进行博客管理的状态图为例,分析其状态转换过程并绘制出博客管理的状态图。
博主成功登录CSDN系统后,进人博客管理模块界面,在该状态下可以置顶精华博客、将博客置顶以及删除博客,对上述的任一操作都会进入数据更新页面状态。
根据上述分析绘制出的博客管理状态图如图5所示。
顺序图描述了系统中的一组对象在时间上交互的整体行为。根据前面的用例分析,了解到CSDN博客系统中重要的交互行为如下。
①普通游客功能顺序图:浏览博客、点赞博客、注册成功博主。
②博主功能顺序图:划分版块、删除/修改版块、关闭版块、发表博客、发动态、上传资源、回博客、置顶博客、分享博客、私信粉丝。
③注册会员功能顺序图:查看VIP文章、视频,下载千万资源,VIP个性化设置。
④管理员功能顺序图:收录博主精华文章、排行博客价值度、打赏博主优秀文章。
下面以“博主发表文章”为例,分析其事件流并绘制出其顺序图。
博主登录CSDN博客系统后,进入个人功能界面,选择写文章,显示该界面,根据界面提示信息,在发表文章界面编辑文章内容,然后美化文章格式,最后选择或创建文章类别,当博主确认发表时,系统提示数据库保存发表信息。发表博客的事件流如表1所示。
表1 发表博客事件流
内容 | 说明 |
用例编号 | Member_I |
用例名称 | 发表博客 |
用例说明 | 博主可以以文章的形式发表自己的见解 |
参与者 | 博主 |
前置条件 | 博主被系统识别并授权 |
后置条件 | 后台数据库保存发表的博客信息(包括时间、发表者等信息) |
基本路径
| 注册用户进人CSDN博客系统登录,输人账号和密码并提交 登录成功后,进入到CSDN首页,在首页显示博客版块分类信息 单击写文章按钮进入发表文章页面 在页面中进行见解编辑,完工后单击按钮发表 数据库处理相应的文章信息 显示文章发表成功,保存信息 |
扩展路径 | 发表成功后,单击查看内容 显示文章内容 |
根据表1的事件流绘制出如图6所示的发表博客顺序图。
通信图描绘了系统中一组对象在空间排列上的交互行为。根据在创建顺序图中的分析,知道CSDN博客系统中的交互行为主要有普通游客、注册会员、博主和管理员。下面以分析博主“发表博客”为例绘制出其通信图。
发表博客主要涉及5个对象:博主、博主登录界面、博主个人界面、发表博客界面和后台数据库。博主首先要登录CSDN博客系统,在博主登录界面输人登录账号和密码,登录界面向博主显示登录是否成功:如果登录成功,则进入博主个人界面,在该界面中显示博主可以完成的各项功能选项;博主选择输入选项,博主功能界面则根据博主的选择显示相应的操作界面,即发表博客界面;博主在该界面输入要发表的博客信息,则界面向博主提示是否发表成功:当发表博客界面接收到博主的确认信息后,会把信息保存到数据库中,数据库完成保存后,将结果返回到界面。
根据上述分析绘制出的发表博客协作图如图7所示。
前面所创建的静态模型和动态模型是从逻辑角度对系统进行概念建模,而系统部署模型是对系统的实现结构进行建模,其包括两种形式:组件图和部署图。
组件即构造应用系统的软件单元。在组件图中不仅包括组件,还应包含组件之间的依赖关系,便于通过依赖关系来估计对系统组件的修改可能对系统的影响。
在CSDN博客系统中可以对系统的主要参与者和主要业务实体类分别创建对应的组件进行映射。根据类图创建系统的组件图,包括用户组件、管理员组件、版块组件、博客组件、数据库服务组件,以及由登录页面、后台管理页面、浏览博客页面、发表/回复博客页面等多个Wb页面组成一个总的界面组件,并且所有的组件又形成一个Wb应用程序。
根据上述分析绘制出的系统组件图如图8所示。
部署图用于描述系统中的软件和硬件如何进行配置。CSDN博客系统的应用服务器主要负责整个Web应用程序,数据库负责数据管理,以及多个终端通过系统的客户端来访问网站平台。
在CSDN博客系统中,系统包含3种结点。
①Web系统服务器结点:发布Web应用程序。
②Web浏览器结点:即客户端结点,游客或博主在浏览器对CSDN博客系统的各种操作。
③数据库服务器结点:负责数据存储和处理。
根据上述分析绘制出的CSDN博客系统部署图如图9所示。