软件系统设计方案

1.项目介绍

设计和开发选课系统必定会涉及很多数据。因为我们发选修系统的最终目标是实现数据无纸化管理。在开发前对数据流程进行分析,不仅能够使开发的业务逻辑更加明朗,还能避免因数据混乱造成开发失败。
此次选课系统数据流程的分析主要是根据用户和选课系统的交互及其交互过程中产生的数据信息的走向、流动和存储来进行的,由此设计出合理的数据逻辑,保证选课系统运行过程中数据的流通,同时也确保
了业务逻辑的正常开发。同学们选课的数据,老师开设课程的数据能够确保存入数据库。在老师打分和学生选课的时候数据库又能够向相关的用户提供他们所需要的信息。
2.系统架构

架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的范围。

  模型-视图-控制器模式,也称为MVC模式(Model View Controller)。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,

不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。它把软件系统分为三个基本部分:

    模型(Model):负责存储系统的中心数据。

    视图(View):将信息显示给用户(可以定义多个视图)。

    控制器(Controller):处理用户输入的信息。负责从视图读取数据,控制用户输入,并向模型发送数据,是应用程序中处理用户交互的部分。负责管理与用户交互交互控制。

  视图和控制器共同构成了用户接口。

  且每个视图都有一个相关的控制器组件。控制器接受输入,通常作为将鼠标移动、鼠标按钮的活动或键盘输入编码的时间。时间被翻译成模型或试图的服务器请求。用户仅仅通过控制器与系统交互。

3.分解视图

  分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构(breakdown structure)特点。分解视图用软件模块勾划出系统结构,

往往会通过不同抽象层级的软件模块形成层次化的结构。由于前述分解方法中已经明确呈现出了分解视图的特征,我们这里简要了解一下分解视图中常见的软件模块术语。

 

 

 

 

 

4.执行视图

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

合并成一个。

执行实体可以最终分解到软件的基本元素和软件的基本结构,因而与软件代码具有比较直接的映射关系。在设计与实现过程中,我们一般将执行视图转换为伪代码之后,再进一步转换为实现代码。

 

 

5.部署视图

 

 

 

 

 

 

 

 

 

 6.依赖视图

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

那么这两个软件模块也具有一定的依赖关系。

 

 

 

 7.项目目录

 

 

 8.数据库设计

Student表即学生信息表。主要用于存放学生的信息。

 

   Teacher表。主要用于存储老师的信息数据。

 

  Course表即课程信息表。主要用于课程信息的存储。

9.概念原型与核心工作机制

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

  软件架构代表了软件系统的整体设计结构,它应该是所有这些视图的集合。但我们不会将不同角度的这些视图整合起来,因为不便于阅读和更新。不过我们会有意识地将不同角度的

  视图之间的映射关系和重叠部分了然于胸,从而深刻理解软件架构内在的一致性和完整性,这就是系统概念原型。

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

通过之前的分析与设计可以总结出项目的概念原型工作过程:用户将需要申请的信息通过浏览器端上传到服务器上,服务器通过部署在服务器上的模型对接受到的图片进行推理,随后将结果返还给前端。

用户可以对返回的结果进行评价,服务器会将用户不满意的bad case存储下来,方便之后对于算法与模型的分析。

posted @ 2020-12-29 12:11  mxtw  阅读(4007)  评论(0编辑  收藏  举报