中外运物流配送系统详细设计.docx
- 文档编号:5546430
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:131
- 大小:1.49MB
中外运物流配送系统详细设计.docx
《中外运物流配送系统详细设计.docx》由会员分享,可在线阅读,更多相关《中外运物流配送系统详细设计.docx(131页珍藏版)》请在冰豆网上搜索。
中外运物流配送系统详细设计
中外运物流配送系统详细设计说明书
变更记录
日期
版本
变更说明
作者
2004-6-10
1.0
初始版本
徐连武
签字确认
系统模块
对应章节
对应部门
负责人签字
1引言
1.1编写目的
本说明书目的在于明确说明系统各功能的实现方式,指导开发员进行编码。
本说明书的预期读者为:
物流配送项目小组,(成员:
张慧娟、董柯、于匡济、叶田、周宏博、谭鹏飞)
1.2范围
主要针对中外运物流配送项目需求分析说明书提出了基本的范围,实施目标和功能等信息,供实施、开发等部门使用。
1.3背景
本文以物流公司物流管理为背景,开发出了一个自动化、智能化的物流管理系统。
2系统环境
2.1操作系统
Server:
WindowsServer2003/2008
2.2数据库
开发使用SQLServer2005Express
2.3客户端
Client:
IE6/7浏览器、Firefox2、Opera9
2.4网络及硬件
数据中心可以放在公司机房,要求申请互联网IP地址。
或者放在有关电信机房采用主机托管模式。
网络中心数据服务器:
P42.6、2G内存以上,配SQLSERVER2005
网络中心应用服务器:
P42.6、2G内存以上,配Jrun4.0中间件
客户机:
普通PC,配:
IE6以上浏览器,网络连接
3编程命名规范
3.1概述
设计、开发人员应严格遵守此套开发规范和标准,并落实到自己的设计与代码程序中。
命名规范将包括:
编程命名规范,业务对象命名规范,数据库命名规范,Web站点结构命名规范等。
编码规范将包括:
C#编程规范,第三方模块使用规范等。
本命名规范主要针对使用VisualS规范,即编程命名规范部分。
3.2变量命名的总原则
变量命名的总原则时一个通用性的原则。
3.2.1一般性原则
1、变量名称应当准确完整的描述变量的含义
2、名称应当反映业务上的问题而不是技术上或是编程上的解决方法
3、名称的长度应当足够长
4、名称的最后一部分应当有限定符
5、应当用Count,Index或Nbr代替Num、No
3.2.2对特定类型数据的命名
1、循环技术变量的名称应当有含义(如果循环语句的长度超过了两行或者存在着嵌套循环,尽量避免使用l,j,k之类的变量,应该使用有意义的变量)
2、临时变量的命名应当有意义
3、所有布尔型变量的命名能够直接从名称上看出为真的条件
4、命名的常量应当代表了抽象的实体而非他们所代表的值
5、从变量命名中应当可以看出变量的作用域是局部变量,模块变量或者全局变量
6、变量的名称中不同的单词首字母要大写,以方便阅读
3.2.3关于短名称的使用
1、如果不是绝对必须,尽量避免使用短的名称
2、如果变量中单词的所写只能缩短一两个字符则使用单词的完全拼写
3、所有单词的缩写规则应当一致
3.2.4其他应当避免的命名问题
1、名称具有误导性
2、两个不同的命名具有相似的含义
3、不同的命名拼写很相似,仅差一两个字符
4、在变量名称中不应当使用数字
5、完全和变量含义不相关的命名
3.3VISUALSTDIO.NET
3.3.1大写样式
使用下面的三种大写标识符约定
Pascal大小写
将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用Pascal大小写。
Camel大小写
标识符的首字母小写,而每个后面连接的单词的首字母都大写。
大写
标识符中的所有字母都大写。
仅对与由两个或者更少字母组成的标志符使用f该约定。
下表汇总了大写规则,并提供了不同类型的标识符的示例。
标识符
大小写
示例
类
Pascal
AppDomain
枚举类型
Pascal
ErrorLevel
枚举值
Pascal
FatalError
事件
Pascal
ValueChange
异常类
Pascal
WebException(注意总是以Exception后缀结尾)
只读的静态字段
Pascal
RedValue
接口
Pascal
IDisposable(注意总是以|前缀开始)
方法
Pascal
ToString
命名空间
Pascal
System.Drawing
参数
Camel
TypeName
属性
Pascal
BackColor
受保护的实例字段
Camel
redValue很少使用
公共实例字段
Pascal
RedValue很少使用
3.3.2区分大小写
为了避免混淆和保证跨语言交互操作,请遵循下列规则:
1、不要使用要求区分大小写的名称。
对于区分大小写和不区分大小写的语言,组件都必须完全可以使用。
不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。
因此,在创建组件或类中必须避免这种情况。
2、不要创建仅是名称大小写有区别的两个命名空间。
3、不要创建具有仅是大小写有区别的参数名称的函数。
4、不要创建具有仅是大小写有区别的类型名称的命名空间。
5、不要创建具有仅是大小写有区别的属性名称的类型。
6、不要创建具有仅是大小写有区别的方法名称的类型。
3.3.3命名空间命名指南
命名空间的一般性规则是使用公司名称,后跟技术名称和可选的功能与设计,如下所示:
CompanyName.TechnologyName[.Feature][.Design]
3.3.4类命名指南
1、使用名词或名词短语命名类
2、使用Pascal大小写
3、不要使用类型前缀,如在类名称上对类使用C前缀。
例如,使用类名称FileStream,而不是CFileStream。
4、不要使用下划线字符(_)。
5、有时候需要提供以字母|开始的类名称,虽然该类不是接口。
只要|是作为类名称组成部分的整个单词的第一个字母,这便是适当的。
6、在适当的地方,使用复合单词命名派生的类。
派生类名称的第二个部分应当时基类的名称。
3.3.5接口命名指南
1、用名词或名词短语,或者描述行为的形容词命名接口。
2、使用Pascal大小写。
3、给接口名称加上字母|前缀,以指示该类型为接口。
4、在定义类|接口对使用相似的名称。
两个名称的区别应该只是接口名称上有字母|前缀。
5、不要使用下划线字符(_)。
3.3.6枚举类型命名指南
1、对于Enum类型和值名称使用Pascal大小写。
2、不要在Enum类型名称上使用Enum后缀。
3、对大多数Enum类型使用单数名称,但是对作为位域的Enum类型使用复数名称。
4、总是将FlagAttribute添加到位域Enum类型。
3.3.7参数命名指南
1、使用描述性参数名称。
参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。
2、对参数名称使用Camel大小写。
3、使用描述参数的含义的名称,而不要使用描述参数的类型的名称。
开发工具将提供有关参数的类型的有意义的信息。
因此,通过描述意义,可以更好地使用参数名称。
少用基于类型的参数名称,仅在适合使用他们的地方使用它们。
4、不要使用保留的参数。
保留的参数时专用参数,如果需要,可以在未来的版本中公开它们。
相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。
5、不要给参数名称加匈牙利语类型表示法的前缀。
3.3.8方法命名指南
1、使用动词或动词短语命名方法。
2、使用Pascal大小写。
3.3.9属性命名指南
1、使用名词或名词短语命名属性。
2、使用Pascal大小写。
3、不要使用匈牙利语表示法。
4、考虑用于属性的基础类型相同的名称创建属性。
4对象设计
4.1.1系统类图结构
4.1.2关键类设计
4.1.2.1订单类设计
【类图】:
【描述】:
一个订单包括多种货物,因此在订单类中有货物列表。
交接单中记录了很多货物,因此也与货物有关系,订单时通过货物与交接单关系起来。
交接单中还存储了车辆、司机、路线、发车时间的信息。
同时,订单中记录了先点单的客户的信息,记录了起点与终点。
因此,订单是关系各个实体的关键类
客户操作订单:
订单管理包括下订单、订单修改和删除。
下订单由用户或配送点管理员完成,在配送点收到客户货物之前可以修改或删除订单。
对于客户不在网上下单的情况,配送点管理员需要把订单输入到系统中,以便统一管理。
配送点管理员在配送点业务员收到客户货物并清点后,修改订单的状态为确认。
订单生效,客户货物进入拼凑、运输流程。
管理员操作订单:
配送点管理员负责订单状态的维护,订单状态包括无效、确认、在途、配送中和客户已收。
订单是允许受限删除的,当订单处于未生效状态时,下订单客户可以自行删除订单;如果订单在下单之后一定时间内仍然没有生效,则系统自行将订单删除。
(该时间可以系统管理员设定)
每一个系统管理员与配送点的管理人员可以查询配送点的当前订单情况。
查询的信息可以包括:
今日订单,历史订单,未处理订单以及特定订单的状态等。
每个配送点管理员只能查询由本配送点下的订单。
注册后的客户可以查询自己的历史订单、当日订单及未生效订单。
未注册客户只能根据订单号及验证信息查询该订单。
为了给总公司提供选择路线、调整路线及管理配送点的决策依据,系统允许总公司管理员查询路线订单、配送点订单列表。
【逻辑时序图】
4.1.2.2权限管理类的设计
【类图】:
【描述】:
权限——角色——用户的关系:
一个角色有多个权限;一个用户有多个角色。
同时一种权限属于多个角色,一种角色属于多个用户。
在此系统中,将用户分成了客户及员工两种。
同时在设计权限的时候使用了设计模式中的组合模式。
权限分为权限集合及叶子权限。
用户的角色决定了可以执行的操作。
当用户登录系统时,通过核对用户帐号的信息,能够得到用户的角色,而一个角色对应了一个操作字符串,通过将操作字符串解析为操作树,对这颗操作树进行中序遍历便可以得知角色能够进行的操作。
如果一个用户有多个角色,那么需要用每一个角色都解析一次操作树,其解析的最终结果为每个角色可以执行的操作的并集。
从而对这颗树的中序遍历也得到了这个用户能够执行的所有操作之和。
如果一个角色需要获得较小的管理操作权限,那么他必须首先获得其之上更大的权限。
例如一个用户要能够查看车辆信息,那么他必须要获得车辆管理的权限。
反之则不然,即一个用户如果没有获得其下的车辆的增删改查或者运力调度其中之一的权限,那么他必然得不到较大的车辆管理的权限。
在对操作树进行中序遍历后,能够得到构造信息,根据构造信息能够决定在页面读取时,呈现给用户的界面。
操作字符串的结构为特征标识字符串&&模块授权标识&&模块操作授权标识。
(&&为分割符)
完成后的构造信息决定了一个用户是否可以见到该操作或者可用该操作。
【时序图】
4.1.2.3路线相关类设计
【类图】:
【描述】:
路线包括多个配送点,在一条路线上包含多个路段的价格。
同时交接单上存储路线的信息。
总公司可以根据市场情况添加路线。
系统选择添加路线,输入增加路线的名称,然后添加路线经过的配送点,并可以通过添加、移除、上移、下移等操作调整线路顺序。
总公司可以修改路线。
系统在选定某一条路线之后,可以调整路线的起点、终点及路经配送点的顺序。
并且可以在线路修改中修改线路相关的价格。
根据市场需求,总公司可以删除一条路线。
系统在选择删除路线操作之后,选择要删除的路线,确认后即可删除。
系统会同时删除该线路的价格。
总公司可以查看线路或一条路线的详细信息。
系统选择查看路线信息,将能看到所有的路线。
选择单一的路线后,可以查看到该路线的具体信息,如:
路线始点、终点、路经的配送点以及该路线的运输价格描述。
【时序图】:
4.1.2.4报表相关类设计
【类图】:
【描述】:
报表分为配送点报表及总公司报表,分别属于总公司及配送点。
总公司报表管理:
总公司可以产看生成的年、季、月三个报表。
系统分别选择要生成报表的年、季、月,然后点击生成报表,系统自动生成报表,并呈现在页面上;点击导出到Excel、word可以把报表导出。
报表内容如下:
报表时间、报表生成时间、配送点名称、配送货物总重量、总体积、配送收入、总公司受益。
配送点报表管理:
总公司和配送点可以查看各个配送点的营业报表。
系统选择要查看的配送点。
若是配送点则只能查看自己的报表。
分别选择要生成报表的年、季、月,然后点击生成报表,系统自动生成报表,并呈现在页面上;点击导出到Excel、word可以把报表导出。
报表分为收货报表、发货报表、收发总表三种报表。
收货报表的内容如下:
配送点名称、报表时间、报表生成时间、发货配送点、配送货物总重量、总体积、配送收入。
发货报表的内容如下:
配送点名称、报表时间、报表生成时间、收货配送点、配送货物总重量、总体积、运送收入。
收发总表的内容如下:
配送点名称、报表时间、报表生成时间、收发类型、对端配送点、配送货物总重量、总体积、收入。
【时序图】:
5模块功能详细设计
5.1前台操作模块
5.1.1客户信息管理子模块
5.1.1.1注册功能
功能名称
注册账户
功能编号
4.1.1.1
功能描述
前台未登录用户,可以注册系统账户
操作流程:
1、用户进入注册页面
2、用户填写注册信息并提交
3、系统显示信息
4.1若操作成功提示成功信息
4.2若操作失败提示失败信息
5、返回前台主页面
业务流程:
1、用户选择注册链接
2、系统跳转至注册页面
3、用户填写各项信息并提交
4、系统检查各项信息的合法性
5、若各项信息合法且账户无重复,连接数据库添加账户条目并提示成功信息;若否,提示失败信息
6、系统跳转至前台主页面
流程图:
页面输入
未登录用户
必须输入:
客户姓名,密码,验证密码,地址,电话,邮箱,密码提示问题,提示问题答案
可选输入:
页面输出
成功、失败提示
对应类
ClassClient
对应方法
RegisterClient()
方法输入
ClientName,ClientAddress,ClientPhone,ClientEmail,ClientPassword,ClientRePasswordClientPasswordQuestion,ClientPasswordAnswer
方法输出
Boolean:
true:
操作成功
false:
操作失败
查询条件
无
方法描述
在方法内自动生成账户编号并自动添加至表中
接口设计
数据库表
账户表
表字段
ClientId,ClientAccountName,ClientName,ClientAddress,ClientPhone,ClientEmail,ClientPassword,ClientPasswordQuestion,ClientPasswordAnswer
对表操作
在用户注册账户时,在账户表中插入一条数据
例外说明
必须输入的信息没有输入,系统提示错误信息;数据库插入失败,提示错误。
5.1.1.2查看修改个人信息功能
功能名称
查看修改账户信息
功能编号
4.1.1.2
功能描述
前台已登录用户,可以查看并修改其账户信息
操作流程:
1、用户进入信息中心
2、用户修改注册信息并提交
3、系统显示信息
4.1若操作成功提示成功信息
4.2若操作失败提示失败信息
5、返回前台主页面
业务流程:
1、用户选择信息中心链接
2、系统跳转至账户页面
3、用户填写各项信息并提交
4、系统检查各项信息的合法性
5、若各项信息合法,连接数据库更新账户条目并提示成功信息;若否,提示失败信息
6、系统跳转至前台主页面
流程图:
页面输入
已登录用户
必须输入:
可选输入:
密码,验证密码,地址,电话,邮箱,密码提示问题,提示问题答案
页面输出
客户信息、客户信息修改页面、失败提示
对应类
ClassClient
对应方法
UpdateClient()
方法输入
ClientAddress,ClientPhone,ClientEmail,ClientPassword,ClientRePasswordClientPasswordQuestion,ClientPasswordAnswer
方法输出
Boolean:
true:
操作成功
false:
操作失败
查询条件
ClientId
方法描述
根据修改信息更新客户表
接口设计
数据库表
账户表
表字段
ClientId,ClientAccountName,ClientName,ClientAddress,ClientPhone,ClientEmail,ClientPassword,ClientPasswordQuestion,ClientPasswordAnswer
对表操作
在用户修改账户时,在账户表中更新数据
例外说明
必须输入的信息没有输入,系统提示错误信息;数据库更新失败,提示错误。
5.1.1.3修改密码功能(并入4.1.2.2)
5.1.1.4下订单功能
功能名称
下订单
功能编号
4.1.1.4
功能描述
前台已登录用户,可以向系统提交订单
操作流程:
1、用户进入订单提交页面
2、用户填写订单并提交
3、系统显示信息
4.1若操作成功提示成功信息
4.2若操作失败提示失败信息
5、返回前台主页面
业务流程:
1、用户选择下订单链接
2、系统跳转至订单提交页面,系统读取客户表信息
3、用户填写或修改各项信息并提交
4、系统检查各项信息的合法性
5、若各项信息合法,连接数据库添加订单条目(默认未生效)和订单货物条目并提示成功信息;若否,提示失败信息
6、系统跳转至前台主页面
流程图:
页面输入
已登录用户
必须输入:
发货配送点送货配送点货物名称货物数量货物总重量货物总体积保价费用收货人姓名收货人联系电话收货人地址
可选输入:
寄件人姓名寄件人联系电话寄件人地址寄件人邮箱订单备注
页面输出
成功、失败提示
对应类
ClassOrder
对应方法
AddOrder()
方法输入
StartStation,EndStation等订单信息列表
方法输出
Boolean:
true:
操作成功
false:
操作失败
查询条件
无
方法描述
方法读取预置信息及自动计算价格并添加至表中
接口设计
数据库表
订单表,订单货物表
表字段
OrderId,ClientId,ReportId,OrderStatus,StartStation,EndStation,OrderRemark,OrderWeight,OrderVolume,OrderDeliveryPrice,OrderDispatchPrice,OrderTotalPrice,OrderSupportValue,OrderDate,OrderReceiverName,OrderReceiverPhone,OrderReceiverAddress,OrderSenderName,OrderSenderPhone,OrderSenderAddress,OrderIdentifyingCode,GoodsId,GoodsName,GoodsAmount,OrderId,DeliveryReceiptId,GoodsTypeName
对表操作
向订单表插入一条记录
例外说明
必须输入的信息没有输入,系统提示错误信息;数据库插入失败,提示错误。
5.1.1.5历史订单查询功能
功能名称
查询当前用户历史订单
功能编号
4.1.1.5
功能描述
前台已登录用户,可以查询其提交过的所有订单。
操作流程:
1、已登录用户进入历史查询页面
2、用户点击订单条目进入订单显示子页面或键入过滤条件
3、系统显示信息
3.1若查询成功返回结果列表
3.2若操作失败提示失败信息
业务流程:
1、已登录用户进入历史查询页面,系统根据当前用户ID查询数据库并分页列出其所有历史订单
2、用户进行查询
2.1用户翻页查询或/并点击条目进入订单显示子页面,系统连接数据库查询并返回该订单详情
2.2用户输入过滤信息并提交,系统连接数据库查询并返回过滤后列表,用户参照2.1方式继续查询
流程图:
页面输入
前台已登录用户
必须输入:
可选输入:
订单编号、订单时间
页面输出
订单查询列表、订单详细信息页面、失败提示
对应类
ClassOrder
对应方法
QueryHistory()
方法输入
OrderId,OrderDate
方法输出
DataSet,数据结果集
查询条件
ClientId,OrderId,OrderDate
方法描述
方法根据用户编号和/或过滤条件查询数据库,返回订单信息结果集
接口设计
数据库表
订单表
表字段
OrderIdClientIdReportIdOrderStatusStartStationEndStationOrderRemarkOrderWeightOrderVolumeOrderDeliveryPriceOrderDispatchPriceOrderTotalPriceOrderSupportValueOrderDateOrderReceiverNameOrderReceiverPhoneOrderReceiverAddressOrderSenderNameOrderSenderPhoneOrderSenderAddressOrderSenderEmailOrderIdentifyingCode
对表操作
根据过滤信息组合查询属于同一用户的订单信息
例外说明
必须输入的信息没有输入,系统提示错误信息;查询不成功,返回错误信息。
5.1.1.6订单的删除与修改功能
功能名称
用户未生效订单的删除与修改
功能编号
4.1.1.6
功能描述
前台已登录用户,可以删除、修改其提交过且未生效的订单。
操作流程:
1、已登录用户进入订单删除修改页面4.10.4
2、用户点击列出的未生效订单条目中删除或修改链接
3、系统显示信息
3.1若2中选择删除操作,进入删除订单功能页面4.10.2
3.2若2中选择修改操作,进入订单修改页面4.10.3
业务流程:
1.已登录用户进入4.10.4流程,隐式携带参数:
用户ID=当前用户ID,订单状态=未生效
2.用户根据需求进入4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 外运 物流配送 系统 详细 设计