软件系统设计方案
前言
本文根据高级软件工程课上所学知识,对工程实践项目-网上书城进行软件系统分析和设计,最终形成软件系统概念原型。
参考资料:
一、系统架构
系统采用MVC架构,MVC包括模型层(Model)、视图层(View)、控制器层(Controller)
Model代表一个存取数据的对象及其数据模型。
View代表模型包含的数据的表达方式,一般表达为可视化的界面接口。
Controller作用于模型和视图上,控制数据流向模型对象,并在数据变化时更新视图。控制器可以使视图与模型分离开解耦合。
其中控制器创建模型; 控制器创建一个或多个视图,并将它们与模型相关联; 控制器负责改变模型的状态; 当模型的状态发生改变时,模型会通知与之相关的视图进行更新。
二、项目视图
1、分解视图
分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构特点。
2、依赖视图
依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。
3、执行视图
执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。 执行实体可以最终分解到软件的基本元素和软件的基本结构,因而与软件代码具有比较直接的映射关系。在设计与实现过程中,我们一般将执行视图转换为伪代码之后,再进一步转换为实现代码
3.1 顾客
3.2 员工
3.3 管理员
4、实现视图
实现视图是描述软件架构与源文件之间的映射关系。比如软件架构的静态结构以包图或设计类图的方式来描述,但是这些包和类都是在哪些目录的哪些源文件中具体实现的呢?一般我们通过目录和源文件的命名来对应软件架构中的包、类等静态结构单元,这样典型的实现视图就可以由软件项目的源文件目录树来呈现。
实现视图有助于码农在海量源代码文件中找到具体的某个软件单元的实现。实现视图与软件架构的静态结构之间映射关系越是对应的一致性高,越有利于软件的维护,因此实现视图是一种非常关键的架构视图。
src 源代码目录 -main 存放实现类的源代码 --bean model类 --controller 控制器类 --dao 持久层--service 实现业务功能服务 --util 工具类 -test 测试类
三、系统运行环境
操作系统:Windows 10
开发语言:Java
开发工具:IntelliJ IDEA
前端框架:Vue
后端框架:Spring + SpringMVC + Mybatis
数据库: MySQL
技术选型说明:Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。其AOP特性,对重复模块进行集中,实现事务,日志,权限的控制;SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,与Spring无缝衔接,有着灵活的数据验证,格式化,数据绑定机制;Mybatis中数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建。
四、数据库设计
本项目目前共有4张数据库表
1.顾客表
字段名 |
类型 |
长度 |
是否可为空 |
customer_id |
int |
10 |
N |
name |
varchar |
20 |
N |
statement |
varchar |
50 |
Y |
password |
varchar |
20 |
N |
2.普通员工表
字段名 |
类型 |
长度 |
是否可为空 |
worker_id |
int |
10 |
N |
name |
varchar |
20 |
N |
statement |
varchar |
50 |
Y |
password |
varchar |
20 |
N |
3.书籍表
字段名 |
类型 |
长度 |
是否可为空 |
book_id |
int |
10 |
N |
name |
varchar |
20 |
N |
statement |
varchar |
50 |
Y |
price |
int |
10 |
N |
4.订单表
字段名 |
类型 |
长度 |
是否可为空 |
order_id |
int |
10 |
N |
name |
varchar |
20 |
N |
statement |
varchar |
50 |
Y |
belong |
Customer |
20 |
Y |
五、系统概念原型的核心工作机制
用户分为系统管理员、普通员工、顾客三种角色。
1、系统管理员
可以管理员工、顾客与书籍,包括权限更改与赋予,增删改查等。
2、员工
处理书籍订单,更改订单状态
3、顾客
可以进行书籍查询订购,形成订单,也可以管理个人信息。
三类用户在操作前都需要进行登录操作。