铁大课表
概要设计说明书
第七小组:闫立新、曹锦锋、李夏蕾、
苏海岩、王伟光、杨世超
2014年4月8日
1引言... 2
1.1编写目的... 2
1.2背景... 2
1.3定义... 2
1.4参考资料... 2
2总体设计... 2
2.1需求规定... 2
2.2运行环境... 2
2.3基本设计概念和处理流程... 3
2.4结构... 3
2.5功能器求与程序的关系... 3
2.6人工处理过程... 3
2.7尚未问决的问题... 3
3接口设计... 3
3.1用户接口... 3
3.2外部接口... 3
3.3内部接口... 4
4运行设计... 4
4.1运行模块组合... 4
4.2运行控制... 4
4.3运行时间... 4
5系统数据结构设计... 4
5.1逻辑结构设计要点... 4
5.2物理结构设计要点... 4
5.3数据结构与程序的关系... 4
6系统出错处理设计... 5
6.1出错信息... 5
6.2补救措施... 5
6.3系统维护设计... 5
1引言
1.1编写目的
概要设计主要是利用比较抽象的语言对整个需求进行概括,确定对系统的物理配置,确定整个系统的处理流程和系统的数据结构,接口设计,人机界面,实现对系统的初步设计。我们根据需求分析得到的数据流图,将之转化为软件结构和数据结构,建立起目标系统的逻辑模型。使软件编程人员能对目标系统有一致的认识。
1.2背景
a. 所建议开发的软件系统的名称:铁大课表;
b.本项目的任务提出者、开发者:闫立新、曹锦锋、李夏蕾、苏海岩、王伟光、杨世超
用户:石家庄铁道大学在校学生
实现该软件的计算中心或计算机网络:学生android手机;
c. 该软件系统同其他系统或其他机构的基本的相互来往关系:该软件系统与手机操作系统、与android内置SQLite数据库系统。
1.3定义
课表:只学校对学生上课过程中的课程安排,具体指什么时候在哪儿上什么课。
Curriculum schedule课程表
1.4参考资料
- 《软件工程》 孙家广, 高等教育出版社;
- 《软件工程及软件开发应用》 施一萍,清华大学出版社;
- 《Android手机程序设计入门、应用到精通》孙宏明,中国水利出版社;
- 《疯狂android讲义》(第2版)李刚,电子工业出版社。
2总体设计
2.1需求规定
a. 软件应支持用户查看课表的详细信息;
b. 软件支持记录随堂记事或者作业;
c. 灵活地对作业以及课程信息(课程名称,上课地点等)的编辑,更新;
d. 软件应具有一定的容错能力和抗干扰能力,在非硬件故障或非通讯故障时,系统能够保证软件功能能正常运行;
e. 软件应能够在原始版本的基础上不断添加新功能;
f. 软件应支持所有使用android 4.0操作系统的手机、平板等移动设备;
g. 软件的实现过程中,代码编写应符合规范,在软件设计及编写的过程中,应随时更新相关软件文档。
2.2运行环境
2.2.1硬件环境
本款软件的硬件平台为android4.0以上手机,CPU为1G Hz以上,RAM为256MB以上,ROM为256MB以上。输入输出必须保证在0-3秒之间完成。
2.2.2软件环境
本款软件基于android平台,是以LINUX为核心的手机操作系统,是标准的LINUX2.6内核。所涉及数据库为Android自带的SQLite数据库,支持具有android软件的手机安装使用。
2.3基本设计概念和处理流程
2.4结构
用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系.
2.5功能器求与程序的关系
本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
|
显示模块 |
数据库模块 |
添加模块 |
清空数据模块 |
添加课表 |
|
√ |
√ |
|
添加作业 |
|
√ |
√ |
|
显示课表/作业 |
√ |
√ |
|
|
清空表中数据 |
|
√ |
|
√ |
2.6人工处理过程
a. 由于学校不提供教务处访问接口,不能通过用户登录自动导入课表,用户不得不手动添加自己的课表;
b. 作业具有灵活性,随堂的作业也需要通过手动输入。
2.7尚未问决的问题
a. 没有具体针对不同分辨率的手机设置不同的显示模式;
b. 存在这一些不得不手工实现的问题。
3接口设计
3.1用户接口
a. 键盘:在用户输入课表或添加作业时,系统自动弹出键盘;
b. 对话框:允许系统一对话框的方式向用户传达信息;
c. 其他选项:允许用户在提供的各种按钮和选项中选择。
3.2外部接口
a. 与硬件的借口:本软件基于android平台,使用的函数完全由android API提供,与手机硬件接口由android平台本身封装;
b. 与android系统接口:本软件基于android平台,使用android提供的各种API函数,处于系统架构最上层的应用层;
c. 与数据库的接口:本软件通过android自带的SQLite数据库对本地数据库进行查找和读写,设置了一个基本的SQLiteDatabase类来帮助实现这些功能。
3.3内部接口
- 第一次打开软件时通过调用OnCreate类创建数据库表;
- MySQLiteOpenHelper和SQLiteDatabase共同实现数据库的存取;
- 通过调用delete函数清除表中的数据。
4运行设计
4.1运行模块组合
本课表软件主要以每个activity为一个功能模块,一般一个activity完成一个特定的功能,通过主activity中事件的触发启动另外的activity,运用intent等消息传递机制实现每个模块之间的链接与组合。各模块之间相对独立,程序的可移植性好。各个模块之间主要以传递数据和消息来实现模块之间的合作与数据共享。
4.2运行控制
运行控制将严格按照个模块间的函数调用关系来实现,用户通过启动软件进入本软件的主界面,将有一系列的功能选项,每个事件源将引起程序的不同响应。各事务中心模块中,需要对运行控制进行正确的判断,选择正确的运行控制路径。本软件系统只用两种外界控制方式:
- 按键控制:在切换课表星期数时,点击上面的“←”和“→”进行选择;
- 输入控制:点击菜单键进行课表的编辑或作业的编辑。
- 显示模块:显示页面将同时显示欢迎信息、当前日期、开学周次、课表信息以及其他菜单选择信息,需要初始化的过程,将占用一定的CPU和内存;
- 课程详细信息模块:详细信息需要一个activity专门显示,点击分享按钮将调用系统的短信服务,因此将占用一定的系统资源。
4.3运行时间
5系统数据结构设计
5.1逻辑结构设计要点
本系统内所使用的数据结构
名称 |
标识符 |
数据项 |
类型 |
定义 |
课程信息 |
Class |
String |
字符串 |
Class(string) |
映射表 |
Map |
Key,value |
键值关系 |
Map(string,string) |
5.2物理结构设计要点
数据项 |
存储位置 |
访问方法 |
存取单位 |
存取长度 |
是否私有 |
Class_name |
课程表 |
查找数据库 |
String |
20 |
Private |
Class_address |
课程表 |
查找数据库 |
String |
20 |
Private |
Class_no |
课程表 |
查找数据库 |
String |
10 |
Private |
auto_update_frequency_title |
课程表 |
查找数据库 |
String |
10 |
Private |
Operation |
课程表 |
查找数据库 |
String |
80 |
Private |
5.3数据结构与程序的关系
数据结构 |
课程类 |
数据库类 |
解析类 |
Class |
√ |
√ |
√ |
Map |
√ |
√ |
6系统出错处理设计
6.1出错信息
用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
错误信息 |
输出形式 |
处理方法 |
编辑课表失败 |
提示栏 |
提示“**不能为空 |
获取作业信息失败 |
提示栏 |
提示“获取作业失败,请重试“ |
非法操作错误 |
提示栏 |
提示“非法操作” |
信息丢失 |
本地校验 |
提示“信息可能丢失” |
6.2补救措施
说明故障出现后可能采取的变通措施,包括:
- 当课表程序被意外终止时,强制退出前系统将CPU及各个寄存器当前的数据压栈保存,当用户再次启动课表程序时,提示用户上次退出是意外终止,将保存的寄存器信息还原;
- 如遇未知错误导致时钟软件安装时出错,则系统将保存错误信息,恢复原寄存器内容,释放内存已使用的空间;
- 当课表软件意外地访问到了系统文件,收到操作系统的拒绝信息时,将终止当前操作,并恢复操作之前的各寄存器。
6.3系统维护设计
暂时没有考虑。