基于java在线答疑系统设计方案

前言

本文根据高级软件工程课上所学知识,对工程实践项目-网上书城进行软件系统分析和设计,最终形成软件系统概念原型。

参考资料:

https://gitee.com/mengning997/se/blob/master/ppt/%E8%BD%AF%E4%BB%B6%E7%A7%91%E5%AD%A6%E5%9F%BA%E7%A1%80%E6%A6%82%E8%AE%BA.pptx

一、系统架构

系统采用MVC架构,MVC包括模型层(Model)、视图层(View)、控制器层(Controller)

Model代表一个存取数据的对象及其数据模型。

View代表模型包含的数据的表达方式,一般表达为可视化的界面接口。

Controller作用于模型和视图上,控制数据流向模型对象,并在数据变化时更新视图。控制器可以使视图与模型分离开解耦合。

二、项目视图

 1、分解视图

分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构特点。

 

2、依赖视图

依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。

 

 3、执行视图

执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。 执行实体可以最终分解到软件的基本元素和软件的基本结构,因而与软件代码具有比较直接的映射关系。在设计与实现过程中,我们一般将执行视图转换为伪代码之后,再进一步转换为实现代码

 

 

4、实现视图

实现视图是描述软件架构与源文件之间的映射关系。比如软件架构的静态结构以包图或设计类图的方式来描述,但是这些包和类都是在哪些目录的哪些源文件中具体实现的呢?一般我们通过目录和源文件的命名来对应软件架构中的包、类等静态结构单元,这样典型的实现视图就可以由软件项目的源文件目录树来呈现。

实现视图有助于码农在海量源代码文件中找到具体的某个软件单元的实现。实现视图与软件架构的静态结构之间映射关系越是对应的一致性高,越有利于软件的维护,因此实现视图是一种非常关键的架构视图。

 

 

三、系统运行环境

操作系统:Windows 10

开发语言:Java

开发工具:IntelliJ IDEA

前端框架:Vue 

后端框架:Spring + SpringMVC + Mybatis

数据库: MySQL

技术选型说明:Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。其AOP特性,对重复模块进行集中,实现事务,日志,权限的控制;SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,与Spring无缝衔接,有着灵活的数据验证,格式化,数据绑定机制;Mybatis中数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建。

 

四、数据库设计

用户信息表

用户信息表用于储存客户的注册资料、活动信数据、权限等。UID为表的主键。用户名、密码、性别等为注册时用户填入的资料,修改后会重新写入。客户角色标志了客户的主要使用方式,限制了客户的权限。用户的最后活跃时间也储存在这张表里。

 

课程信息表

课程信息表主要包含了科目的编号、科目名称等信息。科目编号作为主键,唯一标识了课程。课程名称等信息由管理员进行管理。

 

提问信息表

提问信息表是学生提问的数据的表。主要包括了问题的信息如,编号、标题、内容以及提问的信息如:提问人、提问时间。提问编号为主键。

 

回答信息表

回答信息表是对问题内容的回复,包含了回答的问题的ID、回答人、回答的标题内容、以及时间等信息。回答编号为这个表的主键。

 

申请信息表

申请信息表是学生用户申请科目的信息表,储存了申请人的ID、所申请的课程的ID、申请状态等信息。申请编号为申请信息表的主键。

 

用户-课程关系表

用户-课程关系表是用户与课程的关系的一张表。涵盖了用户的ID与课程的ID。关系的唯一标识是本表的唯一的主键。

 

五、系统概念原型的核心工作机制

系统管理员要完成对系统数据的相关操作:包括学生、课程、及相关的老师信息等。课程管理操作是完成课程菜单的管理,包括:课程的信息浏览、修改和删除、添加新的科目等;用户管理包括:审核注册的信息、查看客户的相关资料、添加制定的管理员等等;连接管理包括:修改删除相关数据、新建制定数据、数据浏览等等;评论管理包括:留言的浏览、浏览数据修改、留言的删除等等。

老师角色,参与了课程信息的添加,删除,修改,申请的接收,申请发送

 

posted @ 2020-12-30 20:03  runforrestrun  阅读(681)  评论(0编辑  收藏  举报