2024—2025学年第 二 学期

课程设计名称: UML建模技术课程设计
课程设计题目: 新闻中心管理系统的分析与设计
完 成 期 限: 自 2025年 6 月 16 日 至 2025 年 6 月 27 日共 2 周

设计内容:

  1. 软件设计说明

该系统主要是为了实现企业商务网站实时动态新闻的显示及管理。要求系统提供良好的维护界面及用户访问界面。具体实现以下功能:

(1)用户管理:用户注册、密码修改、信息完善等;

(2)新闻分类显示: 热点新闻、行内新闻、产业新闻、社会新闻等;

(3)新闻内容及相关新闻列表显示:用户通过标题可以查看该新闻的内容及与该新闻相关的其他信息;

(4)新闻管理:添加、编辑、修改、删除新闻等;

(5)评论管理,对用户评论进行管理。

2. 任务要求

(1)问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?

(2)系统分析:明确软件项目的功能和非功能性需求,通过建模工具对功能需求进行用例建模;

(3)静态建模:根据需求分析结果,建立项目的类模型和对象模型;

(4)动态建模:结合静态模型建立项目的时序图、活动图、状态图等模型;

(5)物理建模:建立项目的构件图和部署图;

(6)文案撰写:依据建模结果撰写课程设计说明书。

3. 参考文献

建模语言及工具、建模类相关参考文献,文献条数不少于10篇,含外文资料1篇。

第一步:系统需求分析

一、系统功能需求分析

根据设计任务书和系统描述,新闻中心管理系统的功能模块主要包括:

(1)用户管理模块:

  • 用户注册、登录
  • 用户信息完善与密码修改
  • 用户评论操作

(2)新闻分类浏览模块:

  • 浏览分类:热点新闻、行业新闻、产业新闻、社会新闻
  • 支持按分类筛选新闻

(3)新闻内容展示模块:

  • 通过新闻标题点击查看新闻内容
  • 显示相关新闻列表(根据标签或关键词推荐)

(4)新闻管理模块(管理员):

  • 添加新闻
  • 修改新闻
  • 删除新闻
  • 编辑新闻内容、标题、封面图等

(5)评论管理模块(管理员):

  • 删除违规评论
  • 审核评论内容(可选)

二、系统参与者与角色(Actors)

角色 权限描述
普通用户 注册、登录、查看新闻、发表评论、修改信息
管理员 登录后台,管理新闻内容、管理评论、管理用户信息

用例图设计

2.1 用例列表

用户相关用例:

  • 注册账号
  • 登录系统
  • 修改密码 / 完善信息
  • 浏览新闻分类
  • 查看新闻内容
  • 查看相关新闻推荐
  • 发表评论

管理员相关用例:

  • 登录后台
  • 添加新闻
  • 修改新闻
  • 删除新闻
  • 管理评论(查看/删除)
  • 管理用户(可选扩展功能)

2.2 用例图说明

我们将在UML工具中绘制以下结构的用例图:

  • 一个系统边界框:“新闻中心管理系统”
  • 两个角色(User、Admin)
  • 每个角色与其对应的用例用线连接

第三步 类图设计(Class Diagram)

核心类及说明

类名 关联类 主要属性字段 主要方法
User Comment 用户ID、用户名、密码、邮箱、注册时间 登录()、注册()、评论()
Admin News, Comment 管理员ID、用户名、权限等级 添加新闻()、删除评论()
News Category, Comment 新闻ID、标题、内容、发布时间、作者、分类 发布()、编辑()、推荐()
Comment News, User 评论ID、内容、评论时间、用户ID、新闻ID 审核()、删除()
Category News 分类ID、分类名 获取分类新闻()

第四步:时序图(Sequence Diagram)

我们可以设计以下典型业务流程的时序图:

  1. 用户登录系统
  2. 用户浏览新闻 → 查看详情 → 发表评论
  3. 管理员登录后台 → 添加新闻 → 新闻展示
  4. 管理员删除评论 → 评论消失

第五步:协作图(Collaboration Diagram)

例如:

  • “用户评论新闻”的协作图
  • “管理员发布新闻”的协作图
  • “管理员删除评论”的协作图

第六步:活动图(Activity Diagram)

示例活动图:

  • 用户浏览新闻的流程
  • 用户发表评论流程
  • 管理员添加新闻的流程
  • 管理员删除评论的流程

第七步:状态图(State Diagram)

可建状态图对象:

News 新闻对象状态:

  • 草稿 → 审核中 → 已发布 → 已删除

Comment 评论对象状态:

  • 草稿 → 审核中(可选)→ 已发布 → 已删除

第八步:部署图和构件图(Deployment / Component)

部署图可表示:

  • 前端(用户浏览界面、管理员后台)
  • Web服务器
  • 数据库服务器(存储新闻、用户、评论)

1.需求分析部分

新闻中心管理系统是为企业官方网站或门户型平台构建的内容发布与互动系统,其主要功能包括新闻内容管理、分类浏览、用户互动、评论审查等模块,旨在实现新闻信息的有效组织、快速发布、精准传播与用户参与。

该系统主要包含以下几个核心功能模块:


(1)用户管理模块

用户管理模块用于支持普通访客的注册、登录及个人信息维护,是系统交互的基础入口。包括以下功能:

  • 用户注册与登录(含账号密码校验)
  • 修改密码及完善个人资料
  • 支持用户发表评论

功能需求:

  • 注册信息需包含用户名、密码、邮箱等字段
  • 支持密码加密存储与重置功能
  • 用户可对已发评论进行查看和删除(如允许)
  • 用户信息可修改但需保留历史记录(如日志记录)

(2)新闻浏览模块

该模块为用户提供按分类浏览新闻的功能,支持按标签、分类、日期等方式筛选新闻。

系统预设新闻分类包括:

  • 热点新闻
  • 行业新闻
  • 产业新闻
  • 社会新闻

功能需求:

  • 新闻页面显示标题、摘要、发布时间、阅读量等信息
  • 支持分类标签点击跳转、分页浏览
  • 可按关键词或标题进行模糊查询

(3)新闻详情与推荐模块

当用户点击某条新闻标题时,可进入详情页面查看完整内容,同时系统可根据当前新闻的分类、标签或关键词展示相关资讯,实现内容推荐。

功能需求:

  • 展示完整新闻内容(包含文字、图片等)
  • 同时展示相关文章推荐列表
  • 支持评论区域嵌入于页面底部
  • 新闻阅读量应自动累加记录

(4)新闻管理模块(管理员端)

该模块由系统管理员操作,实现对新闻内容的全生命周期管理,包括新闻的添加、修改、删除和内容维护等。

功能需求:

  • 管理员可通过后台管理界面添加新闻(填写标题、内容、封面、分类等字段)
  • 支持编辑已有新闻内容(限管理员)
  • 支持对任意新闻进行删除操作,删除应设为逻辑删除或回收站机制
  • 新闻应带有发布时间、作者信息,可按时间倒序排列

(5)评论管理模块(管理员端)

用户可对新闻发表评论,为保障平台内容质量与互动安全,管理员需具备评论审查与管理功能。

功能需求:

  • 普通用户可在新闻详情页发表评论
  • 评论应记录用户、时间、内容、所评论新闻等字段
  • 管理员可查看全部评论,并进行删除或屏蔽处理
  • 系统支持按用户、新闻ID等筛选评论

(6)非功能性需求(选填,可补充)

  • 系统应具备良好的响应速度,支持并发用户访问
  • 系统界面应清晰简洁,方便用户操作
  • 数据存储安全,用户密码应加密
  • 页面支持移动端适配(响应式设计)

二、用例图设计

用例图(Use Case Diagram)是对系统功能的宏观建模,用于描述系统参与者(Actors)与系统功能之间的交互关系,揭示系统在外部角色视角下提供的服务。

本章将从参与者定义、功能用例列表、用例关系说明及可视化构图建议四个方面进行设计。

2.1 参与者(Actors)

本系统中定义了两类主要参与者:

参与者名称 说明
普通用户(User) 浏览新闻、发表评论、注册与登录系统
管理员(Admin) 管理新闻、管理用户评论、后台登录

2.2 系统主要用例(Use Cases)

根据上一章的功能分析,将系统功能抽象为如下用例:

用户端功能(User):

  1. 注册账号
  2. 登录系统
  3. 修改密码 / 完善信息
  4. 浏览新闻分类
  5. 查看新闻内容
  6. 查看相关新闻推荐
  7. 发表评论

管理端功能(Admin):

  1. 管理员登录后台
  2. 添加新闻
  3. 编辑新闻
  4. 删除新闻
  5. 管理评论(查看/删除)

2.3 参与者与用例之间的关系

参与者 可执行的用例
用户 注册账号、登录系统、修改密码、浏览新闻分类、查看新闻内容、查看推荐新闻、发表评论
管理员 管理员登录后台、添加新闻、编辑新闻、删除新闻、管理评论

说明:

  • 所有用户可在未登录状态下浏览新闻,但需登录后方可发表评论与修改个人信息。
  • 管理员在系统中具有新闻与评论的增删改管理权限。

2.4 用例图可视化建议(UML工具绘制)

在 UML 建模工具(如 StarUML、Rational Rose、PlantUML 等)中,可以按照如下步骤进行用例图绘制:

🌐 系统边界:

  • 创建一个系统边框,命名为 新闻中心管理系统(News Management System)

👤 添加参与者:

  • 创建两个参与者(Actor):用户管理员

🔁 添加用例:

  • 使用椭圆表示功能用例,如“注册账号”“发布新闻”“管理评论”等
  • 用直线连接参与者与其可执行的用例

img

三、系统静态模型设计

静态建模用于描述系统中存在的“对象”以及这些对象之间的关系。其核心工具是类图(Class Diagram)与对象图(Object Diagram),它们分别用于描述系统在结构层面上的类定义与具体运行时的对象实例。

3.1 类图设计(Class Diagram)

类图用于表示系统中的主要类、类的属性和方法,以及类之间的静态关系(如关联、依赖、继承等)。

🔑 核心类定义与说明

类名 关联对象 主要属性字段 主要方法
User Comment userId、username、password、email、registerTime register()、login()、comment()
Admin NewsComment adminId、username、password、role addNews()、editNews()、deleteComment()
News CategoryComment newsId、title、content、author、publishTime、readCount、categoryId publish()、recommend()
Comment UserNews commentId、content、commentTime、userId、newsId delete()
Category News categoryId、categoryName listNewsByCategory()

👁 类之间的关系

  • UserComment 是一对多关系(一个用户可以发表多个评论)
  • NewsComment 是一对多关系(一篇新闻可有多个评论)
  • News 属于一个 Category,一个 Category 下可有多条 News
  • Admin 可以操作 NewsComment

类图结构建议(可在UML工具中绘图)

  1. 所有类使用矩形表示,分为三层结构:类名 / 属性 / 方法
  2. 关联关系用直线连接,带有箭头指示方向(如一对多、多对一)
  3. 管理员与普通用户未继承于同一父类,可分开表示,权限完全不同

img

3.2 对象图设计(Object Diagram)

对象图用于描述某一时刻系统中的对象实例及其属性值,展示类图的实际应用。

🧾 示例:某一用户浏览新闻并评论的场景

类实例 属性值举例
User: u1 userId = 101,username = “张三”
News: n1 newsId = 2001,title = “产业发展新趋势”
Comment: c1 commentId = 3001,content = “文章不错!”,userId = 101,newsId = 2001
Category: cat1 categoryId = 1,categoryName = “产业新闻”

对象之间的连接如下:

1
2
3
u1  ---> c1
c1 ---> n1
n1 ---> cat1

说明:

  • 用户张三(u1)评论了新闻(n1),生成评论对象 c1
  • 新闻属于“产业新闻”分类(cat1)

四、系统动态模型设计

动态模型用于描述系统在运行过程中的行为变化,关注对象之间的交互顺序、流程控制以及对象状态随事件的转移情况。本系统的动态模型包括:时序图(Sequence Diagram)协作图(Collaboration Diagram)活动图(Activity Diagram)状态图(State Diagram)

4.1 时序图(Sequence Diagram)

时序图展示在某一业务场景下,对象之间消息传递的先后顺序。以下选取三个典型业务场景进行建模。


(1)用户浏览新闻详情并发表评论

参与对象:

  • 用户(User)
  • 新闻(News)
  • 评论(Comment)
  • 系统界面(UI)

交互顺序:

  1. 用户在主页面点击某条新闻标题
  2. 系统加载该新闻的内容详情
  3. 系统自动查询该新闻对应的评论列表并展示
  4. 用户在底部输入评论内容并点击“发布”
  5. 系统创建评论对象并关联到该新闻和该用户
  6. 页面刷新,展示新发布的评论

(2)管理员登录并发布新新闻

参与对象:

  • 管理员(Admin)
  • 系统界面(后台UI)
  • 新闻模块(News)

交互顺序:

  1. 管理员输入账号密码登录系统
  2. 系统验证账号信息并登录成功
  3. 管理员点击“发布新闻”进入添加界面
  4. 填写新闻标题、内容、分类等信息
  5. 点击“提交”,系统创建新闻对象,保存到数据库
  6. 页面提示“发布成功”,并跳转至新闻列表页

(3)管理员删除用户评论

参与对象:

  • 管理员(Admin)
  • 评论模块(Comment)
  • 系统界面(后台UI)

交互顺序:

  1. 管理员登录后台
  2. 进入“评论管理”模块
  3. 系统展示所有评论列表
  4. 管理员点击“删除”某条评论
  5. 系统确认后将该评论标记为删除
  6. 评论在前台不可见

4.2 协作图(Collaboration Diagram)

协作图强调对象之间的结构关系消息传递顺序,与时序图互为补充。


示例:用户发表评论协作图

参与对象:

  • User
  • News
  • Comment
  • UI界面

协作过程:

  1. UserUI 上操作发表评论按钮
  2. UI 调用 News 查询新闻信息
  3. 创建 Comment 实例,绑定 UserNews
  4. 保存 Comment 至数据库

消息编号示意:

  1. UI → News:getNewsById(newsId)
  2. UI → User:getCurrentUser()
  3. UI → Comment:new Comment(content)
  4. Comment → DB:save()

4.3 活动图(Activity Diagram)

活动图用于表示业务流程中操作的控制流,适合描述用户或管理员操作路径的逻辑结构。


(1)用户浏览并评论新闻活动图

流程说明:

  • 开始
  • 用户打开新闻分类页面
  • 选择具体新闻标题 → 查看详情
  • 判断是否登录
    • 未登录 → 显示“请先登录”提示
    • 已登录 → 填写评论内容
  • 点击“提交评论”
  • 系统保存评论 → 显示新评论
  • 结束

(2)管理员发布新闻活动图

流程说明:

  • 开始
  • 管理员登录后台
  • 进入“发布新闻”界面
  • 填写新闻表单内容(标题、分类、内容)
  • 点击“发布”
  • 系统校验输入合法性
    • 不合法 → 提示错误并返回表单
    • 合法 → 存入数据库,返回“发布成功”
  • 结束

4.4 状态图(State Diagram)

状态图描述某一对象在生命周期中所经历的状态变化及触发条件,适用于描述如“新闻”“评论”等对象的状态逻辑。


(1)新闻对象状态图(News)

状态节点:

  • 草稿(Draft)
  • 已发布(Published)
  • 已删除(Deleted)

触发事件:

  • 管理员点击“保存草稿” → 状态为 Draft
  • 管理员点击“发布” → 状态变为 Published
  • 管理员点击“删除” → 状态变为 Deleted

(2)评论对象状态图(Comment)

状态节点:

  • 可见(Visible)
  • 被删除(Deleted)

触发事件:

  • 用户发布评论 → 状态为 Visible
  • 管理员执行删除操作 → 状态变为 Deleted

五、系统部署模型设计

部署模型描述系统在物理环境中的分布结构,即各个模块在硬件或网络节点上的部署方式。通过部署图和构件图,明确系统运行时各个组件、节点之间的物理连接关系与依赖。


5.1 部署图设计(Deployment Diagram)

部署图用于表示系统各部分在服务器、客户端、数据库等物理节点上的实际部署情况,以及它们之间的通信关系。


📡 部署结构说明

本系统部署在典型的B/S结构下,主要包括以下节点:

节点名称 描述
客户端浏览器 用户访问平台的入口,显示网页内容、提交请求
Web服务器 承载网站前端页面及后台管理系统,处理业务逻辑
数据库服务器 存储新闻、用户、评论等系统核心数据

⚙ 组件与节点关系

部署节点 部署组件
客户端浏览器 前端页面(HTML、CSS、JS)
Web服务器 控制器模块(Controller)、服务模块(Service)、视图模板(View)
数据库服务器 MySQL/PostgreSQL 数据库、数据表结构

img

5.2 构件图设计(Component Diagram)

构件图用于表示系统的逻辑模块结构,即各个功能模块(组件)之间的依赖关系与通信结构。


📦 系统核心构件模块

构件名 功能描述
用户模块(User Component) 处理用户注册、登录、信息修改等功能
新闻模块(News Component) 负责新闻的添加、修改、展示与分类推荐
评论模块(Comment Component) 处理用户评论的添加、展示与后台审查
管理后台模块(Admin Component) 管理新闻和评论的后台操作界面
公共组件(Common Utilities) 包含分页、验证、加密等公共服务类

img

六、总结

本次课程设计以新闻中心管理系统为对象,围绕其业务需求与实际功能展开了完整的 UML 建模实践。

在系统分析阶段,通过深入理解新闻发布、用户互动、后台管理等功能,明确了系统的核心业务逻辑与参与者行为边界。在建模过程中,依托 UML 方法论,构建了从用例建模静态建模(类图、对象图)到动态建模(时序图、协作图、活动图、状态图)的完整模型体系,并进一步拓展了系统的部署模型与构件模型

本系统以用户友好性与管理高效性为出发点,实现了从前端交互到后台数据处理的全链路覆盖,具备良好的扩展性与可维护性。

通过此次建模设计,不仅掌握了 UML 各类图形的实际应用方法,也提高了对软件系统结构与行为的整体把握能力,为后续实际开发与系统架构设计打下了扎实基础。

当然,系统建模过程中仍存在部分抽象粒度不够细致、数据冗余控制未展开深入建模等问题,未来可在数据库设计、权限细化、安全审计等方向做进一步优化。


七、参考文献

[1] Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling Language User Guide [M]. Addison-Wesley, 2005.
[2] 邱锡鹏. 软件工程导论(第3版) [M]. 清华大学出版社, 2020.
[3] 王珊, 萨师煊. 数据库系统概论(第6版) [M]. 高等教育出版社, 2017.
[4] 陈伟. 面向对象建模与UML实践教程 [M]. 电子工业出版社, 2018.
[5] 杨柳青. UML与软件建模技术 [M]. 北京航空航天大学出版社, 2022.
[6] 洪维恩. 软件架构设计基础 [M]. 人民邮电出版社, 2019.
[7] 刘瑞新. Java Web开发实战经典 [M]. 清华大学出版社, 2021.
[8] 李波. 系统分析与设计(UML建模) [M]. 中国水利水电出版社, 2018.
[9] 李刚. 疯狂Java讲义 [M]. 电子工业出版社, 2022.
[10] Andrew Stellman & Jennifer Greene. Head First Software Development [M]. O’Reilly Media, 2008.

课程说明书如下

课程设计说明书下载