《F4+2团队项目系统设计改进》
项目软件系统设计改进
1引言
1.1编写目的
本阶段完成系统的大致设计并明确系统的数据结构与软件结构。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件概貌,把它加工成在程序细节上非常接近与源程序开发的软件表示。
预期读者:软件测试员、程序开发员、软件分析员
1.2背景
说明:
a. 待开发软件系统的名称;动态的太阳系模型
b. 列出此项目的任务提出者、开发者、用户以及将运行该软件的计算站(中心)。
项目任务提出者:马仲山
项目任务开发者:马仲山,马绍辉,马世芳,张俊逸,马婧,马婧
用户:初一学生
实现该软件的计算机网络:校园网
1.3定义
逻辑结构:简称数据结构,用来实现用户观点的系统结构的表示。
管理员:系统的最高级权限的用户
1.4参考资料
《软件工程导论》 张海潘 牟永敏 编著 清华大学出版社
2总体设计
2.1需求规定
第一:系统是单用户的,这里的单用户是指不需要用户名和密码,用户进入系统可以直接对系统进行操作。第二:系统有多视角。第三:太阳系是可以放大、缩小的,并且保证放大、缩小后行星照样能正确地运行。第四:有专门的初始化工具。第五:有对应的工具按钮。
系统为模拟系统,外观要逼真才比较好,所以我们需要从网上下载关于行星的图片,这样看起来比较逼真。真实的太阳系是三维空间的,不同的视角下观看的结果是不一样的,所以在系统要实现从两种视角来观看太阳系,分别为俯视和侧视。这两种视角看到太阳系的感觉是完全不一样的。选定了一种视角后就可以在这种视角下观看太阳系各行星的运行,当然也可以放大,缩小,左(右,上,下)移动整个太阳系,在太阳系运行过程中,当然也可以暂停行星的运行,使太阳系处于静止状态,再次点击运行,行星会接着动起来。如果想回到最初的状态,也可以点一下复原按钮,整个太阳系又回到了此视角下的最初始的状态。如果想换个视角来看太阳系,直接点击你想要的视角的按钮,这两种视角下可以行使的功能是一样的。根据功能的划分,我们将系统划分为以下9个功能模块和两大界面,以及在工具栏上设置工具按钮。
2.2运行环境
操作系统在windowXP以上
客户端要配备JDK和SQL等应用开发软件
2.3基本设计概念和处理流程




2.4结构
2.5功能器求与程序的关系
本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
|
教师模块 |
学生模块 |
|
|
单用户 |
√ |
√ |
|
多视角 |
√ |
√ |
|
任意放大缩小 |
√ |
|
|
初始化工具 |
√ |
2.6人工处理过程
需要时刻的备份数据,以上不可抗拒因素导致数据的丢失。
3接口设计
3.1用户接口
应用程序接口是一组定义、程序及协议集合,通过API 接口实现计算机软件之间的相互通信。目前主流API 接口的有SGI 开发的OpenGL和微软开发的DirectX。两者分别有各自的优势,OpenGL可跨平台使用, 具有高度移植性并且是最为广泛使用的2D/3D 图形 API。DirectX 仅局限于Windows平台,常应用于游戏领域,除了具有图形API,另还有声音、输入、网络等API 接口。本系统中仅用到图形API 接口,同时需要考虑仿真系统跨平台后的适用性,因此本系统最终选择OpenGL 图形库接口。
3.2外部接口
暂无
3.3内部接口
程序内的各个模块之间采用函数调用、参数传递、返回值得方式进行信息传递。
4运行设计
4.1运行模块组合
我们将行星的运动放在辅线程中,若需让行星运行的时候创建辅线程,若想让运动的行星暂停下来则只需撤销辅线程。若要保证行星在运行的时候准确地在轨道上,那么就要不停的计算下个时刻行星位置的坐标,轨道是个椭圆,我们可以有现成的数学公式用来计算,但是放在或缩小或平移后椭圆参数会发生变化,此时我们就需要让各参数加上或减去一些值,保证在轨道发生改变后那些行星依然找得到自己的路。
4.2运行控制
运动控制作为系统基础功能,通过模型变换控制天体位置、天体自转及公转速度以实现天体运动的效果。为增加系统的生动性及真实感,在每个场景中均表现出天体运动场景。
动画演示模块
(1) 公转自转动画模块:点击按钮,观看公转自转教学演示动画。
(2) 行星介绍动画模块:点击按钮,观看行星介绍教学演示动画。
(3) 配音及背景音乐模块:配音辅助学生理解记忆。
4.3运行时间
24小时都可运行
5系统数据结构设计
5.1逻辑结构设计要点
给出本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。
5.2物理结构设计要点
(1)八大行星围绕太阳的公转。
(2)八大行星和太阳的自转。
(3)个性化的人工界面。
5.3数据结构与程序的关系
通过在数据库内建立主外键来关联这些数据。
6系统出错处理设计
6.1出错信息
|
错误类型 |
错误提示 |
|
输入信息不合法 |
输入信息不正确,请再次输入 |
|
程序运行错误 |
给予相应的出错提示 |
6.2补救措施
a.当出现断电或者电脑出现故障(死机、蓝屏)的话,可以通过以前备份的形式对数据进行回复。
b.当用户需要在此增加功能的时候,可以通过在原系统的基础上进行扩充。
6.3系统维护设计
1)在数据库设计的时候,学生信息与学生上机、学生充值、学生退卡记录都不在一个表中,防止信息删除或更新的时候,信息的不一致重叠罗嗦。
2)在程序内部通过建立模块,不同窗体调用一个模块的形式进行设计,减少了代码的操作量,提高了运行的速度。
《F4+2团队项目系统设计改进》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- jmeter 读取excel数据
jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...
- python ( EOL while scanning string literal)
python错误: EOL while scanning string literal: 这个异常造成的原因是字符串,引号没有成对出现 参考:http://www.jb51.net/article/6 ...
- Data Center Drama 欧拉回路的应用
这题说的是给了n个点 和m条边, 这m条边是无向的,任务是将这些边变成有向的,并且添加最少的有向边使得这个图中每个点的入度为偶数, 出度为偶数. 我们可以考虑使用欧拉回路来解决这个问题,这样说,假如一 ...
- VS添加节点
很喜欢添加节点来减少代码的长度,方便阅读:VS快捷键和相关设置
- 关于在ASP.NET中使用JavaScript的建议
一个很恼人的情况,就是当你使用JS在一个ASP,NET应用程序中引用一个在模板页初始化的服务器控件的时候: 比如,我们在模板页有一个TextBox的服务器控件,而且我们想要去获取他的Text:如果你使 ...
- DOS操作系统的历史
昨日(7月27日),微软公司的DOS操作系统迎来了30岁生日. DOS是历史上一个划时代的产品,标识着PC(个人电脑)的崛起和普及,对计算机行业影响深远. 只有了解DOS的历史,才能理解今天的计算机工 ...
- python excel操作单元格复制和读取的两种方法
操作单元格 新建一个sheet, 单元格赋值(两种方法) 单元格A1赋值为’xiaxiaoxu’ 单元格A2赋值为‘xufengchai’ 打印A1和A2单元格的值(两种方法) #coding=utf ...
- P2158/bzoj2190 [SDOI2008]仪仗队
P2158 [SDOI2008]仪仗队 欧拉函数 计算下三角的点数再*2+1 观察斜率,自行体会 #include<iostream> #include<cstdio> #in ...
- kafka调试遇到的问题
在三台机器上以不同的端口部署了三个kafka和zookeeper实例,对应三套环境. 如: zk1:2181 zk2:2182 zk3:2183 kafka1:9092 kafka2:9093 kaf ...
- mysql-cluster 7.3.5安装部署
集群环境 管理节点 10.0.0.19 数据节点 10.0.0.12 10.0.0.17 sql节点 10.0.0.18 10.0.0.22 添加mysql用户 groupadd mysql user ...