atm系统的用例模型_软件系统设计方案——以软件学院选课系统为例 - Panteng0623...

一.项目概述 

  本项目的基于现有的软件学院信息化平台的学生选课系统进行开发,采取两轮选课模式,即一轮不设人数上限并随机抽签进行筛选,第二轮对剩余未选满的课程进行抢课的方式从而达到学生选课的目的。对于本项目主要用户有三类,一为科大软院的学生,其主要有选课需求、信息查询需求、基本信息的登记与修改需求等,二为参与授课的老师,其主要需求有课程设置需求、基本信息的登记与修改需求、成绩设置需求等,三为负责整个系统维护的管理员,其需要在有学生与老师功能权限的功能基础上,额外能实现对学生信息的增删改查,对教师信息的增删改查,及对选课时间的管理等需求。

二、系统架构

  本项目的基于MVC框架模式进行开发,即Model(模型)-View(视图)-Controller(控制器):V即View视图是指用户看到并与之交互的界面。比如我们平时上网所见的由HTML/CSS编写而成的网页界面,或者软件app的用户交互界面。要注意的是,在视图层中其实没有真正的处理发生,这交由其他两层进行处理,它只是作为一种输出数据并允许用户操纵的方式。M即model模型是是应用程序中用于处理应用程序数据逻辑的部分。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,具有复用性,这样使得一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。正是由于它的存在,使得视图层与模型层能够解耦合。

  因此我们用一张直观的图来描述其三者之间的关系:

                                                            c422e57e3890c176a2811597a2bad6c7.png

三、运行环境和技术选型说明

  细化到具体开发工具,本项目采取主流的SSM开发框架,实现MVC框架模式的开发。SSM也即Spring+Springmvc+Mybatis,是由Spring、MyBatis两个开源框架整合而成。Spring、Springmvc、Mybatis分别承担上述框架的业务层(Service层)、控制层/表现层及视图层、持久层(DAO层)的角色。Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。而SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。Mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。Mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。

  同时对于视图层的前端,主要由bootstrap完成,背景用插件。数据库交互查询用到pagehelper分页。在添加修改相关功能时通过ajax来验证其主键是否存在可用,实现添加操作。

四、软件系统概念原型视图

系统功能模块视图

15c4207498c6401f451443af18afc7e5.png

项目部署视图

23311a3cf35f0fd93e821f1c84432c13.png

软件用户用例图

.1管理员的用例图

  185b26d3a7d9671184c05c2b31c8dab9.png

 .2学生的用例图

    31556e0cb94a53b79df0c16aacb6b21f.png

.3教师用例图

      80937c9503018343113f1fc427700467.png

项目工作进度规划图

5bfc29914ba99f7d866430bac808a1a9.png

工作分配视图表

项目组成员名单

姓名

学号

项目中的分工

AAA

SA2022xxxx

项目进度管理,后端编写,整理文档

BBB

SA2022xxxx

页面设计,后端编写,整理文档

CCC

SA2022xxxx

页面设计,系统测试,整理文档

DDD

SA2022xxxx

页面设计,前端编写,整理文档

关键功能的流程图

.1学生修改个人信息

d7fd70e57c6de37a5f61f7f6518446a1.png

 .2学生选课与退课

934b7b99f53f1e4c6bd03ea9a869c2ea.png

.3教师添加课程

  教师添加课程功能流程如图所示。教师用户登录后,可以进入课程添加窗口,进行新课程的添加。

8f4c494d3709c1d384584e76dcc5b0d5.png

 4.6.4教师删除课程

教师删除课程功能流程如图所示。教师用户登录后,可以进入课程删除窗口,进行新课程的删除。

ace528de688f424a196e0cab2f013c38.png

项目逻辑视图

f14b040decbc41b420ed3035437331ee.png

五、数据库设计  

学生基础信息表

属性名类型是否可取空(Y/N)注释
student_idintN学生学号(主键)
student_namevarcharN学生姓名
student_sexset<Male>N性别选项
student_gradeset<Grage>N年级选项
student_dateset<Date>N出生年月日选项
student_majorset<Major>N专业方向选项(网安、嵌入式、大数据、软设)
student_phoneint N学生联系方式
student_mailvarcharN学生邮箱

教师基础信息表:

属性名类型是否可取空(Y/N)注释
teacher_idintN教职工号(主键)
teacher_namevarcharN教师姓名
teacher_sexset<Male>N性别选项
teacher_dateset<Date>N出生年月日选项
teacher_collegeset<Major>N教师任职学院
teacher_phoneint N教师联系方式
teacher_mailvarcharN教师邮箱
teacher_locationvarcharN教师办公地点

课程信息表   

属性名类型是否可取空(Y/N)注释
course_idintN课程编号(主键)
course_namevarcharN课程名
course_startWeekset<Week>N课程起始周
course_endWeekset<Week>N课程结束周
course_memberintN课程容量
course_teacherIdintN授课老师教职工号
course_introducevarcharN课程介绍
course_startTimeset<Time>N课程第几节起始
course_endTimeset<Time>N课程第几节结束
course_dayset<Day>N星期几上课

账号密码存储表   

属性名类型是否可取空(Y/N)注释
protect_idintN学生/教师/管理员id号(主键)
protect_typeSet<Type>N用户类型选项
protect_passwordvarchrNid对应的密码

选课信息存储表  

属性名类型是否可取空(Y/N)注释
choose_studentIdset<StudentId>N选择该课学生的学号
choose_idintN该选课记录条目序号(主键)
choose_gradesset<Grades>Y该学生本课程的成绩(初始值为空)
choose_courseIdset<courseId>N该学生所选课程id号

 管理员基础信息表:

属性名类型是否可取空(Y/N)注释
Administrator_idintN管理员id
First_Start_TimeDATETIMEY一轮选课开始时间
First_End_TimeDATETIMEY一轮选课结束时间
Second_Start_TimeDATETIMEY二轮选课开始时间
Second_End_TimeDATETIMEY二轮选课结束时间

六、项目的实现视图:

  语句:表结构与初始数据

  817d71b476f5db88106e5f32b10a2e8d.png

  类:控制层

      23652f2faff92ac5d5758a1d7e5920b0.png

  类:登录拦截

    28bf12ad69be86dcf0e001eb1b09a35f.png

  类:数据访问接口

  76092c0563fafb2479265e6794c01dc2.png

   5. 各类数据的结构实体类

        f98eb66933effc4f8ede36684c9fb755.png

   类接口及其的implement类(具体实现)

        4b32d620a89ffe6d6484ba858c6f01f0.png

  7.配置文件和mapper层(DAO)

           af3bfcbe0696e37e39081f801e585ec2.png   

   层:前端页面

   b16fc55b5be9083654ab82c88c7d1534.png

七、概念原型核心工作机制

概念原型的定义

  在理解概念原型之前,我们首先要理解概念的定义——即人对能代表某种事物或发展过程的特点及意义所形成的思维结论。因此我们可以得出概念原型的定义,其是一种虚拟的、理想化的软件产品形式,更加直观的来说,概念原型等于数据模型加上用例。

基于本选课系统项目的概念原型

  总上所述,我们已经将用例和数据模型一一列出,至此我们可以得出基于本项目的概念原型——在本项目中一共有三个用例:软院学生、教师、管理员。及六个数据模型:学生基础信息表、教师基础信息表、课程信息表、账号密码储存表、选课信息储存表、管理员基础信息表。

基于本选课系统项目的工作过程

  通过上述的概念模型我们可以给出整个项目的工作过程:首先,不论是学生、管理员还是教师都需要用户输入学号(教职工号)和密码,才能登录系统,若需要修改密码则可输入旧密码进行修改。修改后对应账号密码存储表表项将被修改,教师及学生登录后可以修改个人基础信息,对于教师而言可以教师增添授课信息、修改个人信息及登记学生成绩,这些操作将对教师基础信息表、课程信息表进行更新,学生可以查看已开设的课程信息,已选课程,课程考试成绩在合理的选课时间可以进行选课,同时也可以对已经选择的课程进行退课,这些操作也将会对课程信息储存表、学生基础信息表进行更新。最后,作为管理员,整个系统的最高权限者,其囊括了教师及学生的全部功能,同时,作为选课时间的管理者,还可以设置选课即抢课时间.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值