仓库智能管理平台的软件开发文档Word文件下载.docx
《仓库智能管理平台的软件开发文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《仓库智能管理平台的软件开发文档Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
用户界面·
10
概要设计说明书·
11
数据结构设计·
文中涉及以下术语和定义
GUI:
GraphicalUserInterface图形用户界面
OperationLayer操作层
DataSource数据层
DataOperation数据库的相关操作:
Insert插入Update更新Delete删除Select选择Search查找
数据库相关术语:
Index索引
Data数据
Object对象
Record记录
BeginAddress/EndAddress开始/结束地址
Root数据根目录
Item物品
Description数据库状态描述
Initialization初始化
Attribute属性
RecordSet数据记录集
Passwd(Password)密码
Class类
FatherClass父类
SonClass子类
Table表
项目开发计划
1.引言
1.1编写目的
编写此文档是为了在后期项目实施过程中开发人员更加容易的清楚项目的总体规划及实施方案,了解项目的开发进程。
1.2项目背景
仓库智能化管理:
随着现代物流水平的不但提高,对物流运输、储存和中转的效率要求也日益增加,仓库作为物流储存和中转的重要场所,物流快速发展的趋势要求其工作效率提高。
但是由于物流量的增大和仓库内储存货物的多样性又使得仓库管理的工作量日益增大。
由此传统的人工式的仓库管理已不能满足现代物流的需求,所以我们提出了一个能够智能化管理仓库的平台解决这一矛盾。
2.项目概述
2.1工作内容
智能化仓库管理程序应具有以下功能
a.协助管理物品的进入\取出仓库工作
b.智能的为新入库的物品寻找合适的储存地点
c.只要输入物品的相关信息,便可自动从储存地点自动取出物品的功能。
d.储存物品保质期或者储存期限已到的提示功能。
e.统计仓库内物品、自动对物品重新摆放整理、自动测量仓库内环境物化水平。
f.其他为了提高智能化水平必须的功能。
2.2条件和限制
目前只能使用软件虚拟一个仓库,并对真实的仓库使用过程进行模拟。
达到测试使用软件的目的。
由于题目要求,还需要制作一个3D的仓库模型,以便对仓库的运行情况进行监视。
2.2产品
软件:
智能化仓库管理软件安装软件包。
文档:
a.软件使用许可文档(Eula);
b.软件安装帮助文档;
c.软件使用帮助文档;
d.关于软件所有权以及制作者信息的文档
2.3运行环境
16位DOS环境。
2.4软件验收结果需要符合的标准
软件运行顺利,没有崩溃现象,界面没有错误,各版块各种功能运行结果正确。
3.实施计划
3.1任务分工
盛安宇(SAY):
软件图形界面
郑征(Cristie):
软件底层数据处理
二人共同完成软件功能处理部分
3.2关键问题
3.2.1底层数据的储存及读取
以indexpage+datapage的形式,采用树形模型+关系型模型,第三范式对数据进行规范性的索引和储存,提高查询效率。
3.2.2图形界面的设计和用户友好性
使用C语言绘出类似windows程序的菜单,考虑到鼠标控制的复杂性,所有操作均通过键盘实现。
绘出假3D的仓库模型,始终以上帝视角(45°
)观察仓库内部。
3.2.3代码规范性和版本控制问题
由于是分工开发,所以不可避免的存在代码的可读性和代码的版本控制问题。
故除了写代码时严格遵守规范性规定以外,还需要引入代码的版本系统,在每一个代码文件的开头部分都要以注释的形式写明此代码文件版本,完成日期,最后的修改日期,代码作者等信息,对于老版本的代码,均应放入老代码池中,并且分类存放,以利于后期调试工作。
软件需求及规格说明
1.任务概述
1.1运行环境
16位DOS环境,以及Microsoft98、2000、XP及2003server。
1.2条件和限制
只限于在DOS应用环境可以全屏幕运行的系统,所以Vista和Windows7在运行环境中被排除了。
2.系统总体设计
2.1系统架构图
图1:
系统架构图
2.2程序处理流程图
图2;
程序出入库处理流程图
2.3数据库工作原理(图3)
2.4数据表树形结构示意图
图4:
数据库树形结构
2.5程序模块示意图(图5)
3.数据描述
3.1静态数据
CreateTime:
数据库的创建时间;
PassWord:
数据库的密码;
RootTable:
数据库的根目录表;
GuaranteePromiseTimeTable:
仓库中储存物品的保质期表;
OwnersTable:
所有人登记表。
LargestSize:
数据库所能记录的最大数据值
3.2动态数据
CurrentSize:
数据库的当前大小;
CurrentID:
目前数据库索引的最后ID值;
LastAccessTime:
最后一次操作数据库的时间;
RandomCode:
数据库索引页开头的随机乱码,每一次初始化均会改变;
4.数据库描述
数据库内容表格
Indexpage
随机产生的乱码值
经过MD5加密的数据库密码
Description
LastAccessTime
CurrentID
CreateTime
LargestSize
Index
ID
Type
Name
BeginAddress
EndAddress
DataPage
DataRecord
Attribute
XYZ
FatherClass
SonClass
Weight
Size
InTime
DeadTime
GuaranteeTime
Owner
HasCheked
Note
Root
SecondClassTables
Owners
Tel
Address
Item
Guarantee
DifferentItems
DeadDate
5.保密性和安全性要求
5.1密码安全性
5.1.1数据库密码
数据库密码存放于数据库索引页中,出于安全性和保密性需要,在密码置于512位随机产生的乱码之后,并且512位的随机码在每次初始化数据库之后均要改变一次。
密码有效时间最短64天最长不大于128天。
并且数据库中存放密码使用MD5加密,暂不提供密码找回功能。
5.1.2软件启动密码
软件初始化前要求提供软件启动密码,密码输错3次软件自动关闭。
密码存放于密码文档中,若发现文档不存在即发出错误警告并且一定时间后软件自动关闭。
5.2数据安全性
数据库由于日志文件设计的复杂性,暂不考虑加入数据备份及恢复功能。
但要求数据库文件中所有内容均以二进制形式存放,以保证在不知道算法的情况下无法进行有效的破解。
6.用户界面
6.1菜单选项
FileEditViewHelp
6.2用户界面要求
友好,操作简便,容易上手,快捷键设置科学。
概要设计说明书
1.数据结构设计
1.1数据库系统内部数据结构
1.1.1数据库与外部的接口
StructFileName
{
FILE*filePt;
FILE*IndexPt;
charindexPath[25];
charfilePath[25];
}
StructAttribute
longintID;
//onlyidentifierofaobject
chartype;
//type='
t'
(table),'
i'
(item),'
r'
(root),'
h'
(hidden)
charname[10];
//thenameofaobject
charXYZ[6];
//thepositionofanobjectstored
longintfatherClass;
//previousclassofaobject.root`sfatherclass==0
longintsonClass;
//nextclassofaobject,anitem`ssonclass==0
floatweight;
intsize[4];
//itcontainsthethreerecordof3Dofanobject
structtminTime;
//thetimeanobjectwasinputedinthestorage
structtmdeadTime;
//thedeadlineofanobjectexistsinthestorage
longintowner;
//theownerofanobject
longintguaranteeTime;
//theguaranteequalitytimeofanobject,itis0whenisforever
inthasChecked;
//0:
notchecked1:
checked
charnote[50];
//extranotes
}
StructDescription
structtmLastAccessTime;
structtmCreateTime;
longintLargestSize;
longintCurrentSize;
longintCurrentID;
structOwner
longintID;
charName[10];
charphone[15];
charaddress1[20];
charaddress2[20];
StructGuaranteeTime
longintTargetID;
structtmGuaranteeTime;
1.1.2数据库内部模块之间的接口
StructIndex
charname[10];
charIndexAddress[186];
StructAddress
intBegin;
charstar="
;
"
intEnd;
structIndexChain
longintbegin;
longintend;
structIndexChain*NEXT;