码迷,mamicode.com
首页 > 其他好文 > 详细

软件系统设计方案

时间:2021-01-02 11:12:25      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:spec   现在   生产   意义   密码   工作任务   调整   缓存技术   大型   

一,项目介绍

  竞赛、讲座等大学生课外活动已经成为大学生素质教育的关键部分,并且很多大型竞赛成为各大高校核心竞争力的体现,因此各大高校无论院级、校级、还是学生组织都会举办各种各样的活动,并且省级、国家级针对大学生的赛事也是数不胜数。但目前高校对赛事或活动的发布、举办、效果评估仍然较为传统,不能很好的应对越来越多的活动管理工作,导致学生无法及时获取学校赛事信息,并参与其中,学生管理者针对大量的活动发布、报名收集、统计等工作应接不暇,耗费了大量的精力[1];老师对活动举办效果的评估缺乏精确的统计渠道、数据不准、统计有误的情况经常出现于学生而言学生在校有非常多的竞赛赛事活动,现在的赛事活动都提倡多学科,多专业结合,需要多种专业,多种思维一起完成同一个赛事活动。对于在校大学生而言组成一个由多学科专业组成,成员之间彼此互补的团队有一定的困难。

针对这种情况,一套解决此问题,提高管理效率的管理软件就显得非常的有必要。本项目是基于javaweb的一套管理系统,旨在帮助学校,学院整合赛事资源,学生项目资源,学生团队资源,帮助学生及时了解赛事信息,社会实践等信息,帮助学生寻找志和道同的参加活动的伙伴,同时可作为他学院学生在本学院寻找队友的一个平台入口。因此本项目针对以上情况开发的大学生竞赛活动管理系统将有着很好的应用前景。

二,设计方案总述  

  本系统是一个基于网页实现的大学生竞赛活动管理系统,主要满足活动从发布到报名再到活动效果统计的全部需求,并在学生、学生管理员、老师三种角色之间流转,最终达到学生高效寻找和参与活动、学生管理员高效管理活动、老师智能管理和自动统计活动效果以及相关信息的一系列需求。

  设计原则:在系统的构建中有一些具体的原则,我们需要严格的在这些原则的指导下进行系统设计和开发,只有这样,项目才能较好的开发完成积极系统在生产环境使用时能有好的实用性。

 

    安全性原则:在系统中一定要保护数据和其他的相关信息的安全,本系统对用户的密码进行了加密,防止用户隐私泄露,以及各个角色严格限制其权限,避免系统安全遭受到威胁。

 

    实用性原则:开发出的系统要以用户为中心,用户在使用改系统的过程中应该感到方便,而不是受到重重阻碍或者不方便,在设计过程中需要尽量的做到人性化。

 

    可维护性原则:开发完成的系统应该便于后续接手人员进行管理和维护,在设计过程中尽量使各个模块的耦合性低,便于维护和升级换代。

三,软件架构风格

  本项目是一个面向多种类型用户的系统,分为学生,管理员,教师,为了软件设计的合理性、主流性、易用性、维护性考虑,根据系统的分析以及设计,基于相关技术设计了系统的架构,选用了B/S架构,用户浏览器进行访问,服务器对用户的请求作出反应,B/S架构原理如下图所示。

技术图片

 

  

 

 

 

四,设计模式

 

  采用设计模式的目的就是为了软件的重用,因此采用关注点分离的思想,区分软件中变化的部分和不变的部分,在不变的部分使用设计模式,以提高软件的重用性和可维护性。

 

  此项目采用面向对象的思想,因此采用了多态的技术,模板方法模式和策略模式。为了安全的考虑,我们在权限控制模块采取代理模式,进行用户审计,进行权限控制,用户只能访问其权限下的api;采用外观模式,进一步简化浏览器的业务逻辑;采用适配器模式,来适应普通不同用户接口的不适配问题。

 

五,分解和视图

  在合理的分解和抽象基础上抽取系统的关键要素,进一步描述关键要素之间的关系,比如面向数据分解之后形成的数据关系模型、面向事件分析之后总结出的状态转换图、面向并发分解之后总结出的并发任务的时序交互过程等,都是软件架构模型中的某种关键视图。

  软件架构模型是通过一组关键视图来描述的,同一个软件架构,由于选取的视角不同(Perspective)可以得到不同的视图,这样一组关键视图搭配起来可以完整地描述一个逻辑自洽的软件架构模型。一般来说,我们常用的几种视图有分解视图、依赖视图、泛化视图、执行视图、实现视图、部署视图和工作任务分配视图。

  1,分解视图:对系统功能进行分析,画出如下分解视图:

    技术图片

 

  

 

 

  2, 依赖视图

  依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。依赖视图在项目计划中有比较典型的应用。比如它能帮助我们找到没有依赖关系的软件模块或子系统,以便独立开发和测试,同时进一步根据依赖关系确定开发和测试软件模块的先后次序。依赖视图在项目的变更和维护中也很有价值,比如它能有效帮助我们理清一个软件模块的变更对其他软件模块带来影响范围。

  依赖是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。在代码上主要表现为局部变量、方法的参数或者对静态方法的调用。

  根据分解视图的五大模块,我们可以把握其中模块之间的关系,通过UML类图,我们可以画出相应的依赖视图

 

  技术图片

 

 

 

 

  3,泛化视图

 

   泛化视图展现了软件模块之间的一般化或具体化的关系,典型的例子就是面向对象分析和设计方法中类之间的继承关系。值得注意的是,采用对象组合替代继承关系,并不会改变类之间的泛化特征。因此泛化是指软件模块之间的一般化或具体化的关系,不能局限于继承概念的应用。

  技术图片

 

  

  4,执行视图

    执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。

  技术图片

 

 

  5,实现视图

   实现视图是描述软件架构和源文件之间的映射关系。比如软件架构的静态结构以包图或设计类图的方式来描述,但是这些包和类都是在哪些目录的哪些源文件中具体实现的呢?一般我们通过目录和源文件的命名来对应软件架构中的包、类等静态结构单元,这样典型的实现视图可以由软件项目的源文件目录树来呈现。实现视图有助于码农在海量源代码文件中找到具体的某个软件单元的实现。实现视图与软件架构的静态结构之间映射关系越是对应的一致性高,越是有利于软件的维护,因此实现视图是一种非常关键的架构视图。

  本项目的实现视图如下:

     技术图片

技术图片技术图片

 

  6,部署视图

   部署视图是将执行实体和计算机资源建立映射关系。这里的执行实体的粒度要与所部署的计算机资源相匹配,比如以进程作为执行实体,那么对应的计算机资源就是主机,这时应该描述进程对应主机所组成的网络拓扑结构,这样可以清晰地呈现进程间的网络通信和部署环境的网络结构特点。当然也可以用细粒度的执行实体对应处理器、存储器等。部署视图有助于设计人员分析一个设计的质量属性,比如软件处理网络高并发的能力、软件对处理器的计算需求等。

  技术图片

 

 

  7,工作分配视图视图

    工作分配视图将系统分解成可独立完成的工作任务,以便分配给各项目团队和成员。工作分配视图有利于跟踪不同项目团队和成员的工作任务的进度,也有利于在个项目团队和成员之间合理地分配和调整项目资源,甚至在项目计划阶段工作分配视图对于进度规划、项目评估和经费预算都能起到有益的作用。

 技术图片

 

 

 

 

    

 七,软件系统运行环境和技术选型

    本项目采用JavaWeb应用开发技术,基于Vue+Spring Boot实现一个学生竞赛活动管理系统,旨在帮助学校,学院整合赛事资源,学生项目资源,学生团队资源,帮助学生及时了解赛事信息,社会实践等信息,帮助学生寻找志和道同的参加活动的伙伴,同时可作为他学院学生在本学院寻找队友的一个平台入口。前端部分采用HTML、CSS、JavaScript等技术实现用户界面的开发,并采用Vue+Vue-resource+Vue-cookie。后台服务器端基于Java语言进行开发,核心部分采用SpringBoot技术栈,ORM则选择myBatis框架。数据库管理方面使用轻量级MySQL数据库和Redis缓存技术,最终采用ECS云服务器实现系统的发布。使用RESTFul进行接口设计、使用前后端分离开,使用shiro进行权限控制。

  前端开发平台:Hbuilder

       后台开发平台:Eclipse

       数据库:MySQL & Redis

       服务器:云服务器(ECS)

 

八,概念模型的核心工作机制 

   概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论,概念原型是一种虚拟化的、理想化的软件产品形式。也就是说,概念原型 = 用例 + 数据模型。

  基于以上分析和建模,我们就可以总结出此项目的概念原型,同时对此概念模型的工作过程进行分析。

  概念模型的工作过程为:

  管理员登陆之后:可以添加删除学生用户,对活动进行管理,发布修改或者删除。
  学生登陆之后:可以报名参加某个活动,加入某个团队。
  教师在登陆之后:对现有的比赛活动进行统计分析。

 

九,总结

  本篇博客主要给出了学生竞赛管理系统的完整设计方案,给出了其蕴涵的软件结构特点和概念原型(各种视图),并提供了运行环境和技术选型,最后结合实例给出了该系统概念原型的核心工作机制。

 

十,参考资料

  https://gitee.com/mengning997/se/blob/master/ppt/

  Yan YXiong SLou X, et al. Design and Implementation of Educationa1 Adninistration Information Access System Based on Android Platform

  https://refactoringguru.cn/design-patterns/

 

软件系统设计方案

标签:spec   现在   生产   意义   密码   工作任务   调整   缓存技术   大型   

原文地址:https://www.cnblogs.com/zhu21/p/14197876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!