《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 安装并启动 ...
随机推荐
- unity3d-碰撞检测
碰撞检测 游戏中很多时候都要判断碰撞检测,比如子弹打中敌机.当碰撞后.就要发生爆炸. 或者敌机减血, 我们先看一张图片,看皮球从天空下落.与地面碰撞的过程 碰撞检测条件 游戏中两个对象发生碰撞是需要条 ...
- win10下的iis的配置(服务于asp.net)
win10下的iis的配置和win7下的是类似的. 1.右键开始,打开控制面板,进入卸载程序中,勾上如下图所示的项目,即可装上iis. 这里写图片描述 2.重启后搜索iis,进入iis配置中.点击网站 ...
- workerman定时任务使用
定时任务在有些场合很实用,像淘宝的自动确认收货就必须放在服务端进行,这时workeran的定时任务就派上用场了,它可以支持毫秒,crontab的粒度是一分钟 需要注意的是因为定时任务一直在执行,业 ...
- cf463d
这题说的是给了k个串算出这k个串的最长公共子序列,这k个串每个串都是由1--n的数字组成的. 将第一串的数字按照顺序重新编号为123...n 然后后面的串按照这个编号重新标号,就转化为下面每个串大最长 ...
- Python: ljust()|rjust()|center()字符串对齐
通过某种对齐方式来格式化字符串 ①对于基本的操作,可以使用字符串的ljust(),rjust(),center() ②函数format()同样可以用来很容易的对齐字符串,使用<,>,~
- 让前端独立于后端进行开发,模拟数据生成器Mock.js
让前端独立于后端进行开发,模拟数据生成器Mock.jsMock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. Home · nuysoft/Mock Wiki ...
- WindowsServer-性能计数器
https://jingyan.baidu.com/article/59703552e764e48fc00740dd.html
- 写给java程序员的c++与java实现的一些重要细微差别-附完整版pdf学习手册
0.其实常规的逻辑判断结构.工具类.文件读写.控制台读写这些的关系都不大,熟悉之后,这些都是灵活运用的问题. 学习c/c++需要预先知道的一个前提就是,虽然有ANSI C标准,但是每个c/c++编译器 ...
- 20145127《java程序设计》第九周学习总结
一.教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 JDBC(Java DataBase Connectivity) 驱动的四种类型 JDBC-ODBC Bridge Driver N ...
- 20145205武钰_Exp5 MSF基础应用
20145205武钰_Exp5 MSF基础应用 实验后回答问题 exploit:这个词本身只是利用,但是它在黑客眼里就是漏洞利用.有漏洞不一定就有Exploit(利用).有Exploit就肯定有漏洞. ...