本说明书目的在于明确说明系统各功能的实现方式,指导开发员进行编码。java
本说明书的预期读者为:系统设计者、系统开发员。web
待开发软件系统的名称:物流配送管理系统算法
此软件系统任务提出者:客户(从事物流业)数据库
此软件系统任务开发者:IT_MOB小组编程
此软件系统任务用户:须要提供配送的客户、配送点和物流总公司缓存
物流配送管理系统需求分析说明书 v1.0tomcat
客户:客户分为已达成交易的实际客户和未交易的潜在客户,本文档涉及到的全部客户都是已注册并登录客户端的用户。安全
属于本项目的其余已发表的文件。服务器
本文件中引用的其余文献、资料以及软件开发标准。数据结构
系统包括的范围:物流配送管理系统。
分类 |
名称 |
版本 |
语种 |
操做系统 |
Windows XP |
2000 |
简体中文 |
操做系统的附加功能 |
SP4 |
3 |
简体中文 |
数据库平台 |
oracle |
92 |
简体中文 |
应用平台 |
tomcat |
5.0 |
简体中文 |
邮件系统 |
Foxmail |
4.2.0 |
简体中文 |
客户端软件 |
MS IE |
7.0 |
简体中文 |
服务器 |
最低配置 |
推荐配置 |
应用和数据库服务器 |
1CPU:P4 2.0G |
1CPU:P4 2.8G |
Mem:512M |
Mem:2G |
|
HD:40G |
HD:120G |
|
|
|
|
邮件服务器 |
Webmail |
2CPU core2 2.4GB |
分类 |
名称 |
版本 |
语种 |
操做系统 |
Windows server |
2003 |
简体中文 |
数据库平台 |
oracle |
92 |
简体中文 |
应用平台 |
tomcat |
5.0 |
简体中文 |
邮件系统 |
Foxmail |
4.2.0 |
简体中文 |
服务器 |
最低配置 |
推荐配置 |
应用服务器、数据库服务器、邮件服务器、目录服务器 |
1CPU:P4 2.0G |
1CPU:P4 2.8G |
Mem:512M |
Mem:2G |
|
HD:40G |
HD:120G |
分类 |
名称 |
版本 |
语种 |
操做系统 |
Windows XP |
2000 |
简体中文 |
数据库平台 |
oracle |
92 |
简体中文 |
应用平台 |
tomcat |
5.0 |
简体中文 |
开发平台 |
JDK |
1.5 |
英文 |
分类 |
最低配置 |
推荐配置 |
开发机器 |
1CPU:P4 2.0G |
1CPU:P4 2.8G |
Mem:512M |
Mem:2G |
|
HD:40G |
HD:120G |
内容描述:物流管理系统是应当前物流发展趋势的产物,旨在为物流组成的各项业务提供一个完整、统一的平台,具备信息共享,资源合理分配,业务协调统一的特色。它分为前台客户端、后台总公司与分公司端共三个子系统。
图例:
功能简介(相似需求分析):
客户端:查询运费,下订单和订单进度查询;
分公司:订单管理(下订单,订单审核,订单修改,订单状态修改),订单异常处理(订单异常处理登记,订单异常处理查询),订单发货(待发订单查询,加开班次申请,交接单生成,交接单绑定,紧急订单提醒,班次查询),交接单管理(交接单生成,交接单绑定,交接单确认,交接单修改),订单收获(交接单确认,交接单修改,班次查询),货物配送(库存订单查询,订单确认),本地信息设置(中转路线选择,配送价格申报);
总公司:配送点管理(添加新配送点,审核各配送点申报的配送费方案),财务管理(统计各部门收益,制定和调整利润分配方案),信息查询(交接单查询,订单查询),线路设置(创建基本线路,管理线路,提供线路查询),运费管理(制定和修改运费方案,提供运费查询),车辆管理(维护车辆基本信息),班次管理(设置班次,为配送点提供班次查询,处理配送点加急班次申请),权限管理(权限分配,后台用户的管理)。
说明整个系统的软硬件架构层次:
图例以下:
书写要求:根据系统设计的功能层次逐一说明(与需求分析中的“系统功能整体说明
”部分的内容基本一致)
2.2.1.2系统架构设计说明
书写要求:根据系统的功能需求设计并说明系统开发所采用的软件开发架构。
书写样例:
Jsp & Servlet & JavaBean架构
架构结构
具体架构层次如图4.1所示。
图 4.1 Jsj架构结构
各层实现功能说明
View层是与客户的交互层,负责提交用户请求和数据,并将后台的响应结果返回给客户层。同时提供客户提交信息的javasript验证功能。
Control层负责项目中业务功能实现流程的管理工做。如:具体的业务功能由哪些类来实现,实现结果有谁来显示等等,必须由Control层来决定。同时Control层还要负责与其它两层的通讯,这个过程还须要一些bean类来协助传递信息,另外Control层还要负责请求的转发与从定向。从Control层所负责的功能上不难想象的到在业务逻辑相对复杂的时候此层代码编写会略显繁重和复杂。
Model层主要是一些实现具体业务功能的类,在这里能够统一简称为Business类。也能够将架构中除了Servlet控制器以外的全部类统一叫作Javabean类。从这种命名方式上能够看出,model层在实现业务功能是具体的实现方式比较自由,但在业务逻辑比较复杂的状况下model层职能的划分会出现问题,可能会形成必定混乱和不便。设想一下若是能够更明确的将model层进一步划分使之变得更有条理,这样就会加强该层的可维护性了。
特别说明,图4.1 中的“bean”可以看做数据封装类,它以实例对象的形式做为各层之间数据通讯的载体,实际上这些对象也属于业务对象,如User对象、Book对象。
Jsp & Servlet & JavaBean架构特色说明
1.架构的优势
结构简单明了,搭建时配制信息不多只有一个文件“web.xml”,该文件主要用来映射Servlet。Control层的应用一定程度上将Jsp中的Java代码分离出来,使得jsp文件的复杂程度有所下降。另外该架构涉及到的架构知识较少,很容易上手。基于Java语言的Web开发技术掌握难易顺序大体可参见图4.2所示。
图4.2 基于Java语言的Web开发技术掌握难易顺序
经过图4.2 可见Jsp+Servlet+JavaBean 这种架构技术组合难度是很低的。
2.架构的缺点
不能将Java代码彻底从页面上脱离,页面中会用Js验证代码,使Jsp页面结构相对复杂,不易维护。Control层读取客户提交的信息要逐条操做,代码书写比较麻烦,Controler层要定义处理响应的分支和model层类的调用,使得Controler自己内容较多不便开发和维护。
另外Jsp+Servlet+JavaBean架构技术组合层次简单,各层的代码开发较随意自主,尤为是在JavaBean实现的Model层因为完成的业务功能多种多样,若是开发人员没有很好的遵循必定开发规范或是开发思路不清晰,那么代码开发会变得混乱。为了解决这些问题,引入必定的架构技术来调理代码开发就变得很必要了。下面一节将Struts、Spring、Hibernate三种比较流行的架构技术引进架构设计中来构建一种较为复杂却层次清晰得的开发模式。
具体架构层次如图4.3所示。
SSH架构结构图(图例1)
n 各层实现功能及开发技术说明
1.四层结构的优点
1)经过成熟的开源产品实现各层功能开发,比起本身开发能缩短开发周期,且架构所用到的开源产品均有很普遍的用户群,经受过实践的考验,质量和性能更有保障。
2)层与层之间松散偶合,增长代码重用率。
3)各层分工明确,这样也利于团队的明确分工。
2.表示层
这一层是面向用户的界面,是用户与系统之间交互的媒介。如:用户在界面发送请求,系统接收请求,进行处理,而后经过界面将结果呈现于用户。这一过程包括了用户动做、数据传递、界面显示。你们熟悉的MVC模式就是将这三者分离,减小三者耦合。咱们在该层借助了Struts来实现。
2)Struts的实现的功能:
管理用户的请求,作出相应的响应。
提供一个Controller,委派调用业务逻辑和其它上层处理。
处理异常,抛给Struts Action.
为显示提供一个模型。
UI(User interface)验证。
如下部分则不应在Struts显示层的编码中常常出现。由于在表示层引入这些代码,则会带来高偶合和很是麻烦的维护代价。
直接的与数据库通讯,如JDBC调用。
与你应用程序相关联的业务逻辑以及校验。
3.业务层
业务层在实际的项目开发中,每一个领域都会有本身独特的业务逻辑,正由于这样,导致项目中代码高度偶合,本来有可能被重用的代码或功能,由于与具体的业务逻辑绑定在一块而致使很难被重用。所以咱们将实现这些具体逻辑的代码抽取出来分为单独的一层,其目的是但愿经过分层,来下降它与系统其余部分的偶合度。
现实中世界是变化的,既然该层实现的是现实中具体的业务逻辑,那该层的实现代码不可避免的会发生变动。怎样让该层适应最大的变化,作到最小的改动?一般咱们在编码的时候会尽可能考虑到同一业务多种实现的兼容和可扩展的能力。所以咱们在该层借助了Spring,经过依赖注入、AOP应用、面向接口编程,来下降业务组件之间的偶合度,加强系统扩展性。
2)Spring实现的功能:
处理应用程序的业务逻辑和业务校验。
管理事务。
提供与其它层协同工做的接口。
管理业务层级别的对象的依赖。
在显示层和持久层之间增长了一个灵活的机制,使得他们不直接的联系在一块儿。
经过揭示从显示层到业务层之间的Context来获得business services。
管理程序的执行(从业务层到持久层)。
4.数据持久层
数据持久层在开发中与数据库进行数据交互必不可少,一般咱们归为CRUD(添加、读取、修改、删除),这些操做占据了系统开发中大部分的时间,同时咱们还须要考虑与数据库交互的性能问题,如链接池、数据缓存等等。系统内部的持续层不但须要大量调试时间,并且还常常缺乏功能使之变得难以控制。针对这点咱们引入ORM开源架构Hibernate。
2)Hibernate实现的功能:
查询对象的相关信息的语句。
存储,更新,删除数据库记录。
支持大部分主流数据库,而且支持Parent/Child关系,事物处理,继承和多态。
5.各层中的封装类
各层的封装类的主要功能都是一致的,就是将有必定联系的数据集合装载在其实力对象中,这样作的道路是显而易见的,经过对象来传递数据集合的效率会更高更方便。
显示层的FormBean类是用封装来自页面form提交的信息的,通常状况下这个类的私有变量是与页面form的元素一一对应的。另外FormBean封装类的对象还负责将要显示的信息传递到显示层,其做用是双向的。
业务逻辑层的ValueObject类是用来封装必定业务功能实现过程当中须要的数据集合的,也就是说要封装的数据都是由业务功能的须要决定的。
持久层的PersistObject类,其实例化对象所封装的数据集是与数据库中表相对应的,即表项对应要封装的数据项。
咱们根据上面封装类的说明能够看出,FormBean、ValueObject、PersistObject、三者的做用类似都是为了封装数据信息,不一样的是这些对象所在的是不一样架构层面,这样作的好处是数据的处理和转递比较有条理,层次清晰易于维护。封装类在架构中的状况如图4.4所示。
各层封装类的状况(图例2)
书写要求:
对系统中比较复杂的功能的实现方式或应用的特殊技术加以说明要求通俗直观便于客户参考。
书写样例:
查询统计(科学项目的查询和统计,科学成果的查询和统计,科学奖励的查询和统计,科技人才的查询和统计)
组合检索:组合检索由拥有搜索权限的用户在组合类别的下拉框中选择须要查询的项目,如科技项目的检索:项目类别+项目资金+项目所属公司+时间;没有选择的项,下拉框默认为空白。点击搜索,系统将对数据库的字段进行模糊搜索,搜索结果列表显示于组合搜索下面,分页显示搜索结果。
注:其它的科技成果搜索,科技奖励搜索,科技人才搜索采用统一的组合搜索形式
统计图表:各分公司统计:根据用户在科技项目申请,科技成果申请,科技奖励申请,科技人才的输入的数据,当拥有该权限的用户点击各分公司统计,系统将从数据库中读取以上的部分数据,进行统计,而后以统计图形的形式显示出来,对各分公司进行比较,方便领导制定企业决策。
某分公司统计:当拥有权限的用户点击某分公司统计,系统将从数据库中读取这对该公司的数据进行统计,显示统计图,该统计主要面向集团和分公司领导。
注:其它的科技成果搜索,科技奖励搜索,科技人才搜索采用统一的统计形式
书写要求:
简要说明本系统中的最主要的数据结构。
书写样例:
订单的填写能够由用户经过web前台完成,也能够由收货员在配送点完成,在用户填写的状况下,须要收货员对物品的重量及体积进行审核,通过审核后确认订单完成并收取货物,最后将货物入库。如图3.1.1_1和3.1.1_2。
图3.1.1_1
图3.1.1_2
输入操做:客户或管理员输入订单详细信息并提交。
输出效果:订单成功进入待审列表。
管理员对待审列表中的订单进行审核,填写相关审核结果。
配送点理货员经过查询当天该配送点的可用班次能够为仓库内货物安排发货,经过查询库存内订单的目的地以及须要中转的订单列表进行安排订单,并生成交接单,在货物装货后,将交接单与班次绑定从而完成一次发货,同时系统提供紧急货物提醒功能,若是订单即将到达收货承诺日期,则进行提醒,理货员能够根据实际状况向总部提交加开班次申请,见图3.1.2_1,3.1.2_2,3.1.2_3,3.1.2_4,3.1.2_5,3.1.2_6。
图3.1.2_1
图3.1.2_2
图3.1.2_3
图3.1.2_4
图3.1.2_5
图3.1.2_6
输入操做:输入查询班次的条件,点击查询按钮。
输出效果:以列表形式详细列出当日班次状况。
输入操做经过界面进行。
输入操做:输入交接单生成信息,并肯定生成交接单。
输出效果:生成交接单。
输入操做经过界面进行。
输入操做:选择交接单编号和订单编号,绑定操做。
输出效果:成功绑定交接单。
输入操做经过界面进行。
输入操做:输入查询条件,查询待发订单。
输出效果:以列表形式显示待发订单。
输入操做经过界面进行。
输入操做:输入查询条件,查询加急订单。
输出效果:以列表形式显示加急订单。
输入操做经过界面进行。
输入操做:输入加开班次的往返配送点等信息,申请加开班次。
输出效果:成功向总公司申请加开班次。
输入操做经过界面进行。
配送点的理货员经过查看到达的班次来安排收货,收货的过程当中须要对本地卸货的交接单内的订单进行检查,同时将本地装货的交接单进行装货,对于订单有缺损的状况,先将订单从交接单中删除,对订单单独进行异常处理,而后标记交接单完成,最后将订单分类入库便可,见图3.1.3_1,3.1.3_2和3.1.3_3。
图3.1.3_1
图3.1.3_2
图3.1.3_3
输入操做:输入查询抵达班次的条件,点击查询按钮。
输出效果:以列表形式详细列出抵达班次状况。
输入操做经过界面进行。
输入操做:输入查询抵达交接单条件。
输出效果:以列表形式显示抵达本配送点的交接单。
输入操做经过界面进行。
输入操做:查询异常交接单。
输出效果:列表形式显示异常交接单。
输入操做经过界面进行。
配送点管理员可查询库存订单,而后根据系统生成的待配送订单(依据订单优先级自动生成)组织配送人员及时准确的将货物送到收货人手中,见图3.1.4_1和3.1.4_2。
图3.1.4_1
图3.1.4_2
输入操做:输入查询库存订单条件,查询库存。
输出效果:以列表形式显示库存订单。
输入操做经过界面进行。
输入操做:输入查询待配送订单条件,并查询。
输出效果:列表形式显示待配送订单。
输入操做经过界面进行。
订单和货物在入库、出库和运输等过程当中可能会出现破损丢失等状况,配送点管理员须要对这些异常订单记录并做出相应的处理办法。见图3.1.5_1和3.1.5_2。
图3.1.5_1
图3.1.5_2
输入操做:填写异常订单登记表信息,并提交。
输出效果:异常订单被成功记录。
输入操做经过界面进行。
输入操做:输入查询异常订单条件,并查询。
输出效果:列表形式显示异常订单。
输入操做经过界面进行。
配送点在配送货物前,须要设置统一的配送费方案,要综合考虑自身及客户的利益,而后向总公司申报,经审核批准后,方可按次配送费方案运营。
配送货物时,因条件限制,有些订单不能直达。配送点须要选择合适的中转路线,以保证订单的及时到达。
配送点同时也要设置一些用户权限,保障系统安全稳定的运行。见图3.1.6_1,3.1.6_2和3.1.6_3。
图3.1.6_1
图3.1.6_2
图3.1.6_3
输入操做:分别填写以质量和以体积为单位收费的配送费方案。
输出效果:系统获得一待审核的配送费方案。
输入操做经过界面进行。
输入操做:将设置的配送费方案提交给总公司审核。
输出效果:待审核方案成功被提交给总公司。
输入操做经过界面进行。
输入操做:输入查询中转路线及班次,选择合适中转路线。
输出效果:列表显示可选择中转路线及班次。
输入操做经过界面进行。
配送点做为一个营利性的单位,须要按期对财务进行统计和汇报,以检验当前的运营制度。见图3.1.7_和3.1.7_2。
图3.1.7_1
图3.1.7_2
输入操做:查询并选择待统计订单,计算月收益。
输出效果:获得每个月收益。
输入操做经过界面进行。
输入操做:输入一时间段。
输出效果:显示该时间段内汇报的统计列表。
输入操做经过界面进行。
客户经过输入待配送货物的配送地、质量和体积估算须要的费用。见图3.2.1_1。
图3.2.1_1
输入操做:输入货物收发地,货物质量和体积,进行估算。
输出效果:输出估算出的费用。
输入操做经过界面进行。
客户决定接受此配送服务后,能够进以下订单界面,填写相关订单信息,提交后即达成交易。
见图3.2.2_1。
图3.2.2_1
输入操做:填写点单详细信息。
输出效果:订单成功进入待审核列表中。
输入操做经过界面进行。
客户须要随时了解已下订单的状态,因此系统应当提供查询订单进度的功能。见图3.2.3_1。
图3.2.3_1
输入操做:填写订单编号。
输出效果:显示订单进度。
输入操做经过界面进行。
总公司创建配送点间基本线路,管理运输线路,为配送点提供线路查询。见图3.3.1_1和3.3.1_2。
图3.3.1_1
图3.3.1-2
输入操做:输入配送点相关信息。
输出效果:增长配送点间线路。
输入操做经过界面进行。
输入操做:查询配送点间线路。
输出效果:返回配送点间线路。
输入操做经过界面进行。
往返配送点间的车辆由总公司提供,其全部权为总公司的。总公司需对其基本信息进行维护。见图3.3.2_1。
图3.3.2_1
输入操做:输入车牌号,检索车辆信息。
输出效果:显示车辆基本信息。
输入操做经过界面进行。
总公司设置班次,为配送点提供班次查询,处理配送点加急班次。见图3.3.3_1和3.3.3_2。
图3.3.3_1
图3.3.3_2
输入操做:输入起始地和目的地,查看班次信息。能够新增,删除班次。
输出效果:显示配送点间班次信息。
输入操做经过界面进行。
输入操做:点击处理,选择待加急班次。
输出效果:新增长急班次。
输入操做经过界面进行。
总公司添加新配送点,审查各配送点配送费计算方案。见图3.3.4_1和3.3.4_2。
见图3.3.4_1
图3.3.4_2
输入操做:选择配送点,点击新增。
输出效果:新增配送点。
输入操做经过界面进行。
输入操做:输入配送点,查询并审查配送费方案。
输出效果:显示配送费方案。
输入操做经过界面进行。
总公司制定利润分配方案,统计各部门收益。见图3.3.5_1、3.3.5_2
和3.3.5_3。
图3.3.5_1
图3.3.5_2
图3.3.5_3
输入操做:分别输入以质量和以体积为标准的收费方案,点击修改。
输出效果:成功设置运费方案。
输入操做经过界面进行。
输入操做:分别输入总公司、收获配送点和发送配送点占运费、收发配送费的比列。
输出效果:成功设置利润分红。
输入操做经过界面进行。
输入操做:输入收益统计中涉及到的部门和时间等条件。
输出效果:返回收益统计。
输入操做经过界面进行。
暂无...