您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页快递物流管理信息系统的设计与实现

快递物流管理信息系统的设计与实现

来源:爱问旅游网
基于B/S结构的快递物流管理信息系统的

设计与实现

Design and Realization of Express Logistics

Management Information System

Author: Shao Lusheng

Supervisor: Associate Professor Liu Xiao

Major: Information Management and Information System

Northeastern University

June 2009

毕业设计(论文)任务书

毕业设计(论文)题目: 基于B/S结构的快递物流管理信息系统的系统设计与实现 基本内容: 论文在理论联系实际的基础上对快递物流企业的业务流程进行分析,并运用面向对象的思想对快递物流企业管理信息系统进行系统分析、设计,进而对其各功能模块进行实现。本文作者旨在从业务流程重组思想上吸取精华,结合当今流行的面向对象开发方法,系统、全面地分析了快递物流企业物流业务流程,设计了一套基于B/S结构的快递物流管理信息系统。开发出的新系统能较为有效的应对管理中出现的诸多问题,并且对民营快递物流企业从业人员提供理论和实践上的借鉴与思考。 毕业设计(论文)专题部分: 题目: 基本内容: 学生接受毕业设计(论文)题目日期 第 周 指导教师签字: 年 月 日 摘 要

伴随着电子商务时代的到来,快递物流业将成为物流业的巨大业务增长点。而经济全球化使得中国快递业全面对外开放的步伐日益迅速,对民营快递业带来巨大机遇的同时,也带来了巨大的挑战。信息技术的迅猛发展,使得企业的信息化建设变为现实。民营快递企业要想在当今市场中立于不败之地,也必须跟上时代的步伐,加快企业的信息化建设,为客户提供满意的服务,同时提高企业的内部管理效率。

本文就是在这样的背景下,从信息化建设的角度所做的尝试,以期对民营快递企业提供有益的建议。论文在理论联系实际的基础上对快递物流企业的业务流程进行分析,并运用面向对象的思想对快递物流企业管理信息系统进行系统分析、设计,进而对其各功能模块实现。本文作者旨在从业务流程重组思想上吸取精华,结合当今流行的面向对象开发方法,运用UML建模工具,系统、全面地分析了快递物流企业物流业务流程,设计了一套基于B/S结构的快递物流管理信息系统。该系统从快递业务的收货、仓储、配送、发货和送货等环节入手,利用JSP+Tomcat+SQL Server2000构建基于Web的快递物流系统,相应的系统功能模块也包括收货、仓储、配货、发货、送货和系统管理等。此外,针对客户的需求,设计和实现了货物跟踪模块,该模块可以实现用户对货物的实时跟踪。开发出的新系统能较为有效的实现民营快递物流企业的信息化,并且可以对民营快递物流企业从业人员提供理论和实践上的借鉴与思考。 关键词:快递物流,管理信息系统,面向对象,UML,系统分析与设计

ABSTRACT

With the fast development of economic globalization and information technology, marketing competition is becoming more and more fierce. Logistics industry is playing a vital role in the process of development related to other industries for a country especially for China, the biggest developing one. All types of industries are adopting or have adopted advanced technology in order to improve their service and product quality in such an increasingly competitive and greatly changing surroundings. The great advance of social production brought by economic globalization and E-commerce promotes the expansion of international and national trades and the acceleration of capital flows, which requires more logistics services.

As an important branch of logistics, express logistics is the inevitable product of social and economic development. Its core feature is high-tech, efficient and the state of art service. In particular, accompanied by the arrival of the age of electronic commerce, express logistics industry will become a huge interest growth point. However, with the full opening of China's express delivery industry, foreign companies have set up sub or branch in China, which will bring the private courier industry a tremendous impact. So it is the biggest issue faced by express logistics scholars and practitioners how to stay firmly in such an increasingly fierce and huge competition.

This article aims to provide useful suggestions to the private courier companies. It analyzes the express logistics business processes based on

theory and practice. This paper carries on the express logistics management information system analysis, design, and its realization of the function modules on the basis of object-oriented method. The author of this article aims at absorbing the best mind from BPR (Business Process Reengineering). In light of today's popular object-oriented development methodology, this express logistics management information system is realized on the basis of B/S software architecture. The new system will deal with these logistics management issues more effectively. The author hope it can arise some deep thinking among theorist and practitioners.

Key Word: Express Logistics, MIS, OO, UML, System Analysis and Design

目 录

毕业设计(论文)任务书 ............................................. 摘 要 ................................................................... ABSTRACT ................................................................ 第1章 绪论 ............................................................

1.1 课题研究的背景 ...............................................................................

1.1.1 国外快递物流发展现状 .................................................................. 1.1.2 国内快递物流发展现状 .................................................................. 1.1.3 国内快递物流管理信息系统的应用现状 ............................................

1.2 课题研究的意义 ............................................................................... 1.3 课题研究的方法及论文结构 .............................................................

1.3.1 课题研究的方法 ........................................................................... 1.3.2 论文结构 .....................................................................................

第2章 相关理论及技术 ...............................................

2.1 物流基础理论 ..................................................................................

2.1.1 物流概念和现代物流特点 ............................................................... 2.1.2 快递物流 ..................................................................................... 2.1.3 物流管理信息系统 ........................................................................

2.2 面向对象开发方法 ...........................................................................

2.2.1 面向对象的开发思想 ..................................................................... 2.2.2 面向对象开发方法的开发过程 ......................................................... 2.2.3统一建模语言UML .......................................................................

2.3 系统架构及实现技术........................................................................

2.3.1 C/S与B/S架构 .......................................................................... 2.3.2 动态网站开发技术的选择 ............................................................... 2.3.3 JSP、JavaBean、JDBC技术 ....................................................... 2.3.4 数据库相关概念 ...........................................................................

2.4 系统开发工具简介 ...........................................................................

2.4.1 Rational Rose ............................................................................. 2.4.2 Macromedia Dreamweaver8.0..................................................... 2.4.3 JDK1.5 ...................................................................................... 2.4.4 Microsoft SQLServer2000 ...........................................................

第3章 快递物流管理信息系统的系统分析 .........................

3.1 系统规划 ..........................................................................................

3.1.1 快递物流企业战略规划 .................................................................. 3.1.2 快递物流管理信息系统规划 ............................................................

3.2 业务需求分析 ..................................................................................

3.2.1 确定参与者 .................................................................................. 3.2.2 确定业务角色(Business Actor) ...................................................... 3.2.3 业务用例图 .................................................................................. 3.2.4 高层活动图 ..................................................................................

3.3 系统分析 ..........................................................................................

3.3.1 系统需求分析............................................................................... 3.3.2 问题域分析 ..................................................................................

第4章 快递物流管理信息系统的系统设计 .........................

4.1 系统设计目标和原则........................................................................

4.1.1 系统设计目标............................................................................... 4.1.2 系统设计原则...............................................................................

4.2 总体设计 ..........................................................................................

4.2.1 体系结构设计............................................................................... 4.2.2 总体功能设计...............................................................................

4.3 详细设计 ..........................................................................................

4.3.1 交互图详细设计 ........................................................................... 4.3.2 类图详细设计...............................................................................

4.4 代码设计 .......................................................................................... 4.5 数据库设计 ......................................................................................

4.5.1 数据库设计目标与原则 .................................................................. 4.5.2 数据库概念设计 ........................................................................... 4.5.3 数据库逻辑设计 ........................................................................... 4.6 界面设计 .............................................................................................

第5章 快递物流管理信息系统的系统实现 .........................

5.1 系统环境配置 ..................................................................................

5.1.1 系统开发环境............................................................................... 5.1.2 系统环境配置...............................................................................

5.2 数据库连接 ......................................................................................

5.2.1 建立ODBC数据源 ......................................................................

5.2.2 数据库连接 ..................................................................................

5.3 系统功能的实现 ...............................................................................

5.3.1 注册登陆模块............................................................................... 5.3.2 收货管理模块............................................................................... 5.3.3 仓储管理模块............................................................................... 5.3.4 配货管理模块............................................................................... 5.3.5 发货管理模块............................................................................... 5.3.6 客户服务管理模块 ........................................................................ 5.3.7 系统管理模块...............................................................................

5.4 系统测试 .......................................................................................... 5.5 系统评价 ..........................................................................................

第6章 总结与展望 ....................................................

6.1 工作总结 .......................................................................................... 6.2 研究展望 ..........................................................................................

参考文献 ................................................................ 致 谢 ................................................................... 攻读学士学位期间参与的科研项目 ................................... 附录1:英文资料与翻译 .............................................. 附录2:主要JavaBean及Java类代码 ..............................

第1章 绪论

1.1 课题研究的背景

1.1.1 国外快递物流发展现状

快递业是快速递送文件、包裹、物品并提供全程控制与相关服务的行业,它是为了满足现代经济发展的需求而新兴的一个行业,于上世纪60年代诞生于美国。目前美日欧快递业的发展比较成熟,随着长期的改革发展与创新,它们都具有非常丰富的管理经验和技术优势,但发展特点和总体趋势各有不同。美国快递市场注重规模效应,多发展大型企业,提供全面的服务,其中以UPS和Fedex最具代表性;欧洲快递业注重个性化,通过在不同市场上确立业务重点,力求提供专业化、个性化的特色服务,避开竞争的焦点,发挥自身的长处;日本快递业则倾向于统一规划,寻求资源的最优配置,以实现社会资源的最大化效用[23]。

1.1.2 国内快递物流发展现状

快递业作为我国新兴的服务行业,是现代物流产业和服务贸易领域的重要组成部分,对加强国际经济合作和国内各地区经济交流具有重大影响。我国快递业发展至今,已经形成了国有、民营和外资企业三足鼎立的局面,各市场主体在国际快递、国内异地快递和同城快递三个细分市场内进行着激烈的竞争[24]。针对相应的物流业务,快递物流市场也可细分为国际快递、国内异地快递和同城快递市场。总体来看,我国快递物流市场布局如表1.1所示。

表1.1 我国快递物流市场结构

Table1.1 the Structure of Express Logistics Market in China 国际快递 国内异地快递 70% 20% 30% 同城快递 25% 70% 国有企业 民营企业 外资企业 80% 5% 从市场份额的分配情况来看,各市场主体都有自己的优势,在国际快递业务中,外资企业占有国际快递高端市场的80%,而在国内异地快递业务上,国有企业享有70%的城际快递市场份额,民营企业则在同城快递中占有绝对优势。

自从快递业引入中国市场,其发展非常迅速。快递业在极大地加快商品流通同时,也激发了更大的快递需求。2007年,中国整个网络购物市场的成交额已达590亿元,仅淘宝网每天就有1个亿的配送需求,电子商务的发展给快递物流业的发展提供了巨大的市场份额和发展空间。

虽然快递行业这几年得到了快速的发展,然而作为一个新兴崛起的行业,依旧有着其不成熟的地方,还存在许多的问题:

(1) 业务响应速度慢

对于一个快递公司而言,货物运输时间的长短是能否取得成功的关键,也是客户所关心的重点[21]。然而,由于在货物运输过程中需要经历很多的环节,而各个环节之间并不能非常平滑的过渡,在各个环节交接过程中往往消耗了大量的时间,最终导致货物运输时间的增长[14]。

(2) 缺乏保证货品准确投递的机制

货物运输过程中需要经历很多的环节,每个环节对于投递成功与否都起到关键性的作用。然而,目前的快递行业各个环节的关系的并没有理顺,缺乏精心的组织安排和周密的衔接,仍停留在粗放式管理的阶段,致使一些环节和部门之间相互脱节,影响了快件传递的速度。

同时,由于各个环节各自为政,相对比较。所以,一旦货物运输过程中出现问题,很难有一个快捷的方式和统一的平台供快递公司员工使用来讨论解决方案。这将会大大影响员工的工作效率,由于缺乏一个透明、统一的交流平台,也让货物投递出现许多的不确定因素[23]。

(3) 与客户之间互动不够人性化

客户同快递公司交互方式非常单一,通常需要亲自到柜台办理业务,其相应的软件系统支持跟不上业务的发展。快递公司给客户提供的额外服务较少,通常只有提供货物运输方面的核心业务,而缺乏其他个性化的服务项目[23]。

1.1.3 国内快递物流管理信息系统的应用现状

据有关资料表明,2007年中国物流行业IT产品应用的总体市场规模达到16.3亿元人民币,比2006年增长18.1%。总体上,在中国已经开始进行信息化建设的物流企业中,80%左右仍处于初级建设阶段,信息化建设的目标是实现对信息、数据的及时收集和有效整合[25]。

快递物流信息化建设中存在的问题包括: (1) 中小快递物流企业的信息化程度低

今年上半年的调查数据显示,快递物流企业采用信息化系统进行管理的不到30%,即使采用了计算机管理的,功能也非常简单。

(2) 缺乏标准统一的主流信息系统

目前物流信息系统的标准较为混乱,不成体系,难以互联互通,难以实现信息共享。网络的设计和优化也缺乏基础理论的指导。

(3) 开发商难以盈利

快递物流软件是管理软件,需求的个性化和生产的批量化是难以统一的,因此造成开发成本极高。例如,上海天天快递公司是国内较大型的民营快递公司,其软件的生产管理系统是单独开发的,仅满足一段时期的业务需要,开发商随尽力为其承建系统,但由于系统无法复用到其他快递公司,开发商由此付出了高额的开发成本,回报却差强人意。

(4) 提供基础信息和公共服务的平台发展缓慢

GPS、GIS技术服务在大型企业的应用比例为23%,在大型物流企业的应用仅为12.5%,在中小企业几乎是空白。基础技术服务应用比例趋少,整个行业的整合就相对困难。

(5) 信息系统对决策的支持力度不高

物流信息化有三个层次,一是以内部整合资源和流程为目的的信息采集和交换,其主要的目标是通畅、低成本、标准化。二是通过与客户的信息系统对接,形成以供应链为基础的、高效快捷便利的信息平台。三是以优化决策为目的的信息加工、挖掘,把信息变为知识,提供决策依据。从各种调查结果来看,约一半的企业信息管理系统对决策的支持不高,其中38%起到初步的支持作用,13%基本与决策无关。

加强企业的信息化建设既能提升企业内部管理,同时又能为顾客提供更加方便快捷的服务。快递物流企业内部管理信息化,首先能提高企业处理突发事件的能力。快递物流风险的多样性、复杂性以及风险发生地和管理地之间的远程性等都要求我们通过网络信息技术的的应用,提高企业快速获取动态信息的能力,从而动态的、及时的进行风险管理。其次,还能对系统中的数据进行统计分析,提高管理水平。快递企业通过客服管理信息化,能准确掌握顾客信息与需求,能为顾客提供相互交流与合作的平台[26]。

1.2 课题研究的意义

鉴于上述国内民营快递物流企业存在的问题,本文在理论联系实际的基础上对民营快递物流企业的业务流程进行分析,并运用面向对象的思想对快递物流企业管理信息系统进行系统分析、设计,进而对其各功能模块的实现。本文作者旨在从业务流程重组思想上吸取精华,结合当今流行的面向对象开发方法,系统、全面地分析了快递物流企业物流业务流程,设计了一套基于B/S结构的快递物流管理信息系统。开发出的新系统能较为有效的应对上述物流管理中出现的诸多问题,并且对快递物流企业从业人员提供理论和实践上的借鉴与思考。

快递物流管理信息系统的应用,可以保障民营快递物流企业的业务流程的顺利实施,实现快递物流企业源站点与目的站点的信息集成,而且支持分布式的应用,进而提高企业经营效率和效益。本文在分析快递业务流程的基础上,为快递物流企业设计了一套管理信息系统,旨在为民营快递物流企业实施管理的信息化提供一个参考模式。

1.3 课题研究的方法及论文结构

1.3.1 课题研究的方法

本文采用理论与实践相结合的研究方法,运用快递物流和系统开发的前沿理论知识对快递物流业务流程进行分析和优化。文献查阅为本文理论架构与内容充实奠定了基础;面向对象的开发理念是论文系统分析和设计的主导思想;JSP相关技术及网络数据库SQLServer技术为基于B/S模式的快递物流管理信息系统的顺利实现提供了技术上的支持;Rational Rose、Dreamweaver8、JDK1.5和Windows XP等开发工具和系统环境为系统开发和运行提供了良好的平台。

1.3.2 论文结构

论文首先对国内外快递物流发展现状和MIS在国内快递物流企业的应用现状进行

了理论阐述,并确定采用面向对象的开发思想进行系统的分析、设计和实现。在需求分析阶段,论文综合企业与客户两方面的需求,利用UML统一建模语言中的业务用例图与业务活动图对快递物流企业的整体业务流程进行分析与建模;在系统分析阶段,利用UML统一建模语言中的用例图、简明用例顺序图、顺序图、协作图、类图以及状态图对系统的功能性需求进行建模;在系统设计阶段,将对系统分析阶段产生的顺序图、协作图和类图等进一步的细化,同时对系统的非功能性需求进行建模,对快递物流管理信息系统的数据库、输入输出和界面也进行了较为系统、全面的设计,即着重从技术实现角度设计系统;在系统的实现阶段,利用功能强大的JSP技术以及相关的Java技术(如JavaBean)等对系统的主要功能进行了实现,实现的系统有良好的可扩展性,为快递企业的分布式应用提供保障。在论文的结尾,还对系统进行了必要的测试和评价以及对系统的安全与可靠性给予了考虑。

各章节内容具体安排如下:

第一章,绪论,主要对课题的研究背景、研究意义以及论文的研究方法和内容结构进行概述。

第二章,相关理论和技术介绍,包括快递物流相关理论、系统开发方法、体系结构以及开发软件等的介绍。

第三章,业务需求分析、系统分析,利用UML语言和Rational Rose建模工具对其进行全面、系统的分析。

第四章,系统设计,结合第三章的系统分析结果,综合考虑系统的技术解决方案,对系统进行设计。

第五章,系统实现、测试和评价,利用JSP+Tomcat+SQL Server2000对系统进行实现,并进行了必要的测试和评价。

第六章,工作展望和总结。

第2章 相关理论及技术

2.1 物流基础理论

2.1.1 物流概念和现代物流特点

物流来源于英文Logistics System,Logistics的主要含义是后勤保障。被誉为“管理学之父”的美国学者德鲁克最先提出了“物流”的概念,它在提出这个概念的时候也指出:物流是“一块经济界的黑暗”、“一块未被开垦的处女地”[4]。

权威的物流管理协会将物流定义为:物流管理是供应链管理的一部分,它对从原产地到消费地的货物流和货物存储、服务及相关信息进行计划、实施和控制,以满足客户需要[5]。

现代物流理论认为,现代物流服务的核心目标是在物流全过程中以最小的综合成本来满足顾客的需求。因此,现代物流具有以下几个特点[5]:

(1) 信息化

物流信息化表现为物流信息的商品化,物流信息收集的数据库化和代码化,物流信息处理的电子化和计算机化,物流信息传递的标准化和实时化,物流信息存储的数字化等。因此,条码技术(Barcode)、数据库技术(Database)、电子订货系统(Electronic Ordering System, EOS)、电子数据交换(Electronic Data Interchange,EDI)、企业资源计划(Enterprise Resource planning,ERP)等技术在物流系统中逐渐得到普遍的应用。

(2) 网络化

物流网络化有两层含义:一是物流与配送网点的网络化,企业根据自身的营销范围和目标,通过详细的分析、选择与优化,逐渐建立全国范围的物流和配送网络,提高物流系统的服务质量和配送速度;二是物流配送系统的计算机通信网络,包括外部网和内部网,外部网(基于Internet的电子商务网络平台)主要用于配送中心与上游供应商或制造商的联系,以及与下游顾客之间的联系,内部网(Intranet)主要用于企业内部各部门间的信息传输。

(3) 自动化

物流系统的自动化可以提高劳动生产率,减少物流作业的差错;还可以方便物流信息的实时采集与追踪,提高整个物流系统的管理和监控水平等。GPS与Internet的结合

更是当前物流跟踪中的一大热点。

2.1.2 快递物流

快递(Express)服务(简称快递、速递、速运)是物流行业的一个特殊运营模式,提供了对所寄递物品的担保,进行快速可靠地运输[23]。

根据国家邮政局的定义,快递服务(Express Service: Courier Service)是指快速收寄、运输、投递单独封装的、有名址的快件或其他不需储存的物品,按承诺时限递送到收件人或指定地点、并获得签收的寄递服务。

“联合国临时主要产品分类”(UN Provisional central Product classification,以下简称:临时CPC)中将快递服务(CPC7512)定义为:“除国家邮政当局提供的服务以外,由非邮政速递公司利用一种或多种运输方式提供的服务,包括提取、运输和递送信函和大小包裹的服务,无论目的地在国内或国外。这些服务可利用自有或公共运输工具来提供”[23]。

快递的主要优势体现在送达速度快、配装手续简单、实行承诺制服务、可随时进行信息查询。

2.1.3 物流管理信息系统

物流管理信息系统也称物流信息系统(LIS, logistics information system),由人员、计算机硬件、软件、网络通信设备及其它办公设备组成的人机交互系统,其主要功能是进行物流信息的收集、存储、传输、加工整理、维护和输出,为物流管理者及其它组织管理人员提供战略、战术及运作决策的支持,以达到组织的战略竞优,提高物流运作的效率与效益[3]。

物流管理信息系统的具体功能因物流服务系统的对象不同而差异很大。物流服务侧重点不同,其物流管理信息系统的主要功能也不同,比较典型的物流管理信息系统功能有以下几方面[15]:

(l) 运输管理

由运输业务部门进行运输管理信息工作。 (2) 订货管理

商流是物流业务活动的基础。物流业务部门要掌握订货品种、数量、发货时间等物流信息,以便为物流业务活动做好一切准备工作。

(3) 仓储管理

在物流业务活动中,由储存业务部门进行有关储存计划、统计资料、物品入库清单,物品出库通知,物品在存盘点记录,储存中损失、损耗的处理等管理信息工作。

(4) 配送管理

由配送业务部门进行的有关配送计划、统计资料、配送物品清单、配送路线等管理信息工作。

(5) 成本管理

由财务部门进行的物流各环节,主要物流作业、车辆或单项物流活动成本的记录、核算、分析、控制等管理信息工作。

(6) 综合管理

一般由综合业务部门进行的有关物流计划、统计资料,物流需求的社会调查资料,物流企业年度经营情况总结等的物流管理信息工作。

2.2 面向对象开发方法

2.2.1 面向对象的开发思想

面向对象方法是从现实世界中客观存在的事物出发来构造软件,并在系统构造中尽可能运用人类的自然思维方式。面向对象强调以问题域的事物中心来思考问题、认识问题,并根据这些事物的本质特征,把它抽象地表示为系统中的对象,作为系统的基本构成单位。面向对象方法可以使系统直接地映射问题域,保持问题域中事物及相互关系的本来面貌。面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态等概念和原则来构造系统的软件开发方法[1]。

2.2.2 面向对象开发方法的开发过程

在面向对象开发方法的发展过程中形成了许多复杂的开发过程,不利于向一致的方向发展,妨碍技术交流,也给用户的选择带来困惑[6]。本文结合传统Booch方法、OMT方法、Fusion方法以及其他方法,对面向对象开发方法的开发过程作一概括。上述几

种具体方法的主要步骤是分析、设计、构造和测试,本文将面向对象开发方法的开发过程分为需求分析、分析、设计、实现和测试五个步骤,该方法/过程中的模型如图2.1所示。

图2.1 面向对象开发方法的开发过程及其结果

Figure The Development Process and its Result of OO Method

2.2.3统一建模语言UML

面向对象开发方法是面向对象思想在软件开发领域的应用,软件开发过程实质是先对系统进行建模,进而对建模的概念系统进行实现。任何一种建模方法都包括两部分内容:建模过程和建模语言。三者之间的关系如图2.2所示。

图2.2 建模方法的内容构成

Figure2.2 the Content of Modelling

上节对面向对象的开发过程进行了阐述,本节将对简要介绍本系统开发用到的建模语言,即UML。在利用面向对象的方法开发系统时需要进行建模分析,统一建模语言UML是当前面向对象建模的公认标准。

统一建模语言(Unified Modeling Language, UML)是一种可视化的建模语言,它能让系统构造者用标准的、易于理解的方式建立起能够表达他们想象力的系统蓝图,并且提供了便于不同人之间有效地共享和交流设计结果的机制[13]。

UML图形是建模的可视化表示,通过绘制UML图形,可以从不同的抽象角度使系统可视化。UML定义了9类图形,用于建立系统模型:用例图、活动图、顺序图、协作图、类图、对象图、状态图、组件图、配置图[1]。

1 用例图(Use Case Diagram):用例图被称为参与者的外部用户所能观察到的○

系统功能的模型图。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。参与者是系统的主体,是一种角色,表示提供或接收系统信息的人或系统。

2 活动图(Activity Diagram):活动图显示了系统的流程,可以是工作流程也可○

以是事件流。在活动图中定义了流程从哪里开始,到哪里结束,以及在这之中包括哪些活动。

○3 顺序图(Sequence Diagram):顺序图表示了对象之间传送消息的时间顺序。每一个对象用一条生命线来表示,即用垂直线代表整个交互过程中对象的生命周期。生命线之间的箭头连接代表信息。顺序图可以用来进行一个场景说明,即一个事务的历史过程。

○4 协作图(Collaborative Diagram):协作图对在一次交互中有意义的对象和对象间的链建模。

○5 类图(Class Diagram):类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联。

○6 对象图(Object Diagram):对象图是对包含在类图中的各个类进行实例建模,它显示了在某一时间点上系统中的一组对象以及它们之间的关系。

○7 状态图(State Diagram):状态图是一个类对象所经历的所有历程的模型图。状态由对象的各个状态和连接这些状态的变迁组成。

○8 组件图(Component Diagram):组件图表示了系统中的各种组件。 ○9 部署图(Deployment Diagram):部署图用来描述系统的实际物理结构。

图2.3 UML的视图及其关系

Figure2.3 the UML Views and their Relationship

有关UML视图的描述以及其与图之间的对应关系见表2.1。

表2.1 UML视图简介及其与UML图对应表

Table2.1 UML View Introduction and the Correspondence with UML Diagram 用例视图 逻辑视图 概述 描述系统应该交付的功能,即外部参与者所看到的功能。 描述如何实现用例视图中提出的那些系统功能,可以细分为静态视图和动态视图。 使用者 客户、设计人员、开发人员以及测试人员 设计人员、开发人员 对应的UML图 用例图、活动图 静态图(类图、对象图)动态图(状态图、活动图、顺序图和协作图) 并发视图 组件视图 描述系统的非功能性特性,它将系统划分为进程和处理器。 描述系统的实现模块以及它们之间的依开发人员、系统集成人员 开发人员 状态图、协作图、组件图和部署图 组件图 赖关系。 部署视图 显示系统的物理部署。 开发人员、系统集成人员和测试人员 部署图 其中顺序图和协作图统称为交互图(Interactive Diagram)。上述UML的九种图共同合作从不同侧面来描述建模的系统,即通过不同的视图(View)显示被建模系统的不同方面。这里视图是一个抽象的概念,它是由许多图(Diagram)组成的一个抽象。每个视图显示该系统的一个特定方面,只有通过多个视图才能构造出该系统的完整描绘。UML从逻辑上包含五种视图:用例视图(Use Case View)、逻辑视图(Logical View)、组件视图(Component View)、并发视图(Concurrency View)和部署视图(Deployment View)。UML各种视图之间的关系如图2.3所示。

2.3 系统架构及实现技术

2.3.1 C/S与B/S架构

软件体系结构的风格很多,但最主要也是最常见的不外乎客户机/服务器(Client/Server, C/S)风格和浏览器/服务器(Browser/Server, B/S)风格[20]。

(1) C/S架构的优势与劣势

C/S模式又称C/S结构,是软件系统体系结构的一种。C/S模式简单地讲就是基于企业内部网络的应用系统。与B/S模式相比,C/S模式的应用系统最大的好处是不依赖企业环境,即无论企业是否能够上网,都不影响应用[17]。C/S软件体系结构如图2.4所示。

图2.4 C/S体系结构

Graph2.4 the Software Architecture based on C/S

1 应用服务器运行数据负荷较轻 ○

最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序,二者可分别称为前台程序与后台程序。当需要对数据库中的数据进行任何操

作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

2 C/S架构的劣势是高昂的维护成本且投资大 ○

首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。

(2) B/S架构的优势与劣势

B/S模式又称B/S结构。它是随着Internet技术的兴起,对C/S模式应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet)等访问和操作共同的数据;最大的缺点是对企业环境依赖性太强,由于各种原因引起企业中断都会造成系统瘫痪[17]。B/S软件体系结构如图2.5所示。

图2.5 B/S软件体系结构

Graph2.5 the Software Architecture based on B/S

1 维护和升级方式简单 ○

目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。所有的操作只需要针对服务器进行,而无须对客户端的浏览器进行升级和维护。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。

2 应用服务器运行数据负荷较重 ○

由于B/S架构管理软件只安装在服务器端上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端完全通过WWW浏览器实现,极少部分事务逻辑在前端实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

(3) 本系统体系结构的选择

鉴于上述B/S体系结构具有分布式和维护升级方便等优点,考虑到快递物流公司一般具有多个站点,且站点之间相距遥远,本系统采用B/S体系结构。

2.3.2 动态网站开发技术的选择

目前,最常用的三种动态网页语言有PHP(Hypertext Preprocessor),ASP(Active Server Pages)和JSP(Java Server Pages)[16]。

(1) PHP

PHP是一种嵌入HTML页面中的脚本语言。它大量地借用C和Perl语言的语法,并结合PHP自己的特性,使Web开发者能够快速地写出动态产生页面。

PHP是完全免费的开源产品,不用花钱,Apache和Mysql也是免费开源的,在国外非常流行PHP和Mysql搭配使用,可以非常快速的搭建一套不错的动态网站系统,因此国外大多数主机系统都配有免费的Apache+PHP+Mysql。通常认为这种搭配的执行效率比IIS+ASP+Access要高,而后者的使用还必须另外交钱给微软。

(2) ASP

ASP是微软的Windows IIS系统自带的脚本语言,利用它可以执行动态的Web服务应用程序。ASP是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

(3) JSP

JSP是Sun公司推出的一种动态网页技术。JSP技术是以Java语言作为脚本语言的,

熟悉JAVA语言的人可以很快上手。

JSP本身虽然也是脚本语言,但是却和PHP、ASP有着本质的区别。PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比PHP和ASP都高。

JSP最大的好处就是开发效率较高,JSP可以使用JavaBeans或者

EJB(Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理,但是这种网站架构因为其业务规则代码与页面代码混为一团,不利于维护,因此并不适应大型应用的要求,取而代之的是基于MVC的Web架构。MVC的核心思想是将应用分为模型、视图和控制器三部分。模型是指应用程序的数据,以及对这些数据的操作;视图是指用户界面;控制器负责用户界面和程序数据之间的同步。通过MVC的Web架构,可以弱化各个部分的耦合关系,并将业务逻辑处理与页面以及数据分离开来,这样当其中一个模块的代码发生改变时,并不影响其他模块的正常运行,所以基于MVC的Web架构更适应于大型应用开发的潮流。

2.3.3 JSP、JavaBean、JDBC技术

(1) JSP

JSP (Java Server Page)它是由SUN公司倡导的由许多公司参与共同建立起来的一种动态网页技术标准。它是一种基于Java的技术,所以它用来产生跨平台和跨Web服务器的动态网页技术。JSP的执行原理和熟知的VBScript和JavaScript并不相同,它是完全在服务器端执行的,而不像大多数的脚本,有一部分还在浏览器端执行的。在传统的静态HTML网页中加入Java程序片断和JSP标记(tag)就构成了JSP(.jsp)网页。当Web服务器收到浏览器访问JSP网页请求时,它首先执行其中的程序片断,然后将执行的结果以HTML页面的形式返回给浏览器端[2]。

1 JSP技术的特点 ○

Java Server Page(JSP)是使用Java代码动态生成HTML文档的Web页面摸板。JSP运行于服务器端组件,称为JSP容器,它将JSP转化成等价的Java Serverlet。正因为如此,Serverlet和JSP页面最终是相关的。JSP页面具有了Serverlet的所有优点,如良好的性能和扩展性,对HTTP会话提供嵌入式支持等。同时JSP页面还具有自身的优点,如需要时自动重新编译和与Web开发工具具有更大的兼容性。

JSP元素可以分为三种:伪指令、脚本元素(包含表达式、Script和声明)和动作。其中,伪指令是指示JSP容器生成什么代码的命令;在表达式和Script中可以使用9个隐含对象;行为是创建、修改或使用对象的高层JSP元素,使用严格的XML语法编码[10]。

2 优点 ○

1) 一处编写随处运行。

2) 系统的多台平支持。差不多在所有平台上都有一致的Java Server/JSP的Web Server/Application Server系统,它可以让你在任意环境做开发,在任意环境进行系统部署,在任意环境扩展。

3) 强大的可伸缩性。从只有一个小的jar文件就可以运行Server/JSP到由多台服务器进行集群和负载均横,到多台Application进行事务处理、消息处理,一台服务器到无数以服务器,Java显示了一个巨大的生命力。

4) 多样化和功能强大的开发工具支持。 (2) JavaBean

JavaBean是一种Java语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java类可以通过自省机制发现和操作这些JavaBean属性[12]。

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代

码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。

(3) JDBC

JDBC是一种可用于执行SQL语句的JavaAPI(Application Programming Interface应用程序设计接口),它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序[12]。

通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQL Server。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“Write Once,Run Everywhere!”[9]。

2.3.4 数据库相关概念

数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”[8]。

数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。 (1) 物理数据层

它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。

(2) 概念数据层

它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。

(3) 逻辑数据层

它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。

数据库管理系统(Database Management System, DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。

2.4 系统开发工具简介

2.4.1 Rational Rose

Rose是美国的Rational公司的面向对象建模工具,利用这个工具,可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、Java、VB和Oracle等语言和系统的代码。Rational Rose包括了统一建模语言(UML),OOSE,以及OM

T。其中统一建模语言由Rational公司3位世界级面向对象技术专家Grady Booch、

Ivar Jacobson、和Jim Rumbaugh通过对早期面向对象研究和设计方法的进一步扩展而得来的,它为可视化建模软件奠定了坚实的理论基础[13]。

Rational Rose是一个完全的,具有能满足所有建模环境(Web开发,数据建模,Visual Studio和 C++)需求能力和灵活性的一套解决方案。Rose 允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练。通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可

靠的应用系统。

2.4.2 Macromedia Dreamweaver8.0

Macromedia Dreamweaver8.0是建立Web站点和应用程序的专业工具,由美国着名的多媒体开发商Macromedia公司推出的一套专业可视化网页开发工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。从对基于CSS的设计的领先支持到手工编码功能,Dreamweaver8.0提供了专业人员在一个集成、高效的环境中所需的工具。开发人员可以使用Dreamweaver8.0及所选择的服务器技术来创建功能强大的Internet应用程序,从而使用户能连接到数据库、Web服务和旧式系统[11]。

2.4.3 JDK1.5

JDK(Java Development Kit,Java开发包,Java开发工具)是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具和Java基础的类库。JDK是一个编写Java的Applet和应用程序的程序开发环境,由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成[9]。

2.4.4 Microsoft SQLServer2000

Microsoft SQL Server2000 数据库是Microsoft公司在大型数据库领域的一个版本和旗舰产品,也是Microsoft公司争夺电子商务领域最重要的核心部件市场—网络数据库平台的一大利器,是Windows数据库家族中出类拔萃的成员,它在易用性、可伸缩性、可靠性和其他性能方面做出了一系列革新,并且为开发者提供了快速简便的编程模式。它为企业运作、电子商务和移动计算提供了广泛的可伸缩性的解决方案,提供一个综合平台。这个平台使用户可以轻松地设计、建立、管理及使用数据仓库解决方案,它具有强大的数据仓库,同Microsoft office产品紧密集成[12]。

第3章 快递物流管理信息系统的系统分析

3.1 系统规划

3.1.1 快递物流企业战略规划

本民营快递物流企业立足辽宁省沈阳市,辐射东北三省,目前在沈阳、长春、哈尔滨、大连、齐齐哈尔等设有公司站点。公司未来的发展方向为做强做大快递物流服务,提供更多的物流增值业务,提高快递效率。公司战略目标如下1:

(1) 提高东北三省快递物流服务的市场占有率,力争在五年内达到50%以上。将快递服务的地区延伸至县级以下;

(2) 在稳固东北三省快递物流服务的同时,向京津和中原地区扩展,力争在3年内通过加盟、合作或并购的方式扩展公司站点; (3) 进一步提高快递物流服务水平,提升快递效率; (4) 形成与客户的良性互动,提供更多便捷的物流增值业务。

为了达成以上战略目标,快递物流企业的信息化建设是重中之重。通过信息化建设,一方面快递物流企业可以优化业务流程,提高生产效率;另一方面可以搭建起与客户之间互动的健康平台,提高客户服务水准,留得住客户,进而提高客户的企业认同感。

3.1.2 快递物流管理信息系统规划

快递物流信息系统规划应遵循目标导向原则、需求导向原则、立足现实原则、适度超前原则[18]:

(1) 目标导向原则:物流信息化规划目标必须与企业战略目标相一致。

(2) 需求导向原则:企业物流运作中关键业务和流程,对实现物流战略目标意义重大。信息化规划必须正确识别这些关键业务和流程,正确识别物流战略对这些业务和流程的信息化需求,并从满足战略需求着眼,有重点、有针对性地进行规划。

1

本民营快递企业是沈阳的一家快递公司,公司主要以国内异地快递和同城快递为业务,目前规模较小,但发展势头

强劲。有关公司资料来自于电话采访和网络资源。

(3) 立足现实原则:信息化不是简单的电子化,需要与企业的具体情况相结合、与具体发展阶段相结合、与物流实际相结合。

(4) 适度超前原则:信息化是一个不断发展的过程,一蹴而就和一劳永逸的信息化是不现实的。

3.2 业务需求分析

业务需求分析是在用户调研的基础上,对调研获得资料进行整理和分析,进而概括总结出企业的业务需求(并非系统需求)。UML利用业务用例图和高层活动图来捕获客户的需求,这里的客户需求是全方位的,它既包括手动形式执行的业务也包括基于IT系统执行的业务。在业务模型的层次上,我们使用术语“业务用例图”来代替用例图,这样做的目的是为了清晰的区分它们,从而消除在将业务系统模型转换为IT系统时可能产生的混淆。实践证明,活动图在业务系统减摩中有很大的用武之地。因此,对于快递物流的业务需求分析利用业务用例图和高层活动图进行建模[1]。

3.2.1 确定参与者

业务系统的外部用户(例如客户或业务伙伴,在UML中称为业务角色)将使用业务系统的输出,这些外部用户无需了解业务用例具体如何执行详细信息。通过对快递物流企业的业务调研,我们发现与业务系统打交道的主要是源站点客户和目的站点客户,这两类用户可统称为客户[13]。

与业务系统有关的参与者还包括业务系统内部的员工或工作人员(在UML中称为业务工人),这些业务工人是外部用户与业务系统打交道的“接口”,即业务系统通过业务工人为外部用户提供服务,同时对业务系统来说业务工人也在实现着某项功能。这里的功能和服务是不同的,至少从角度上考虑是不一样的。通过用户调研和资料搜集,我们发现下列几类业务工人是快递物流业务系统必不可少的:

1 源站点收货员; ○

2 目的站点收货员; ○

3 配货员; ○4 司机; ○

5 送货员。 ○

3.2.2 确定业务角色(Business Actor)

从参与者中我们可以筛选出源站点客户和目的站点客户为业务角色。这里的源站点客户和目的站点客户是相对的,对于一次交易来说,某客户是源站点客户,而对于另外一次交易,他有可能成为目的站点客户,因此,二者角色是可以互换的,但这里为了更清晰的说明问题,并非将二者统称为客户。不过在接下来的系统设计和实现中我们对该问题进行了梳理。

3.2.3 业务用例图

业务用例是描述机构中一组相关的工作流。机构中的全部业务用例一起完整的描述业务目标[1]。

业务用例图的元素包括业务工人、业务角色和业务用例。业务工人是机构中的角色,业务角色是机构外部和机构交互的人,业务用例是机构中的一组相关工作流。通过上述分析,我们可以得出快递物流业务用例图如图3.1所示。

图3.1 快递物流业务用例图

Figure3.1 the Business Use Case Diagram of Express Logistics

表3.1 业务用例图要素表

Table3.1 Business Use Case Element Table 业务用例图元素 内容 业务用例 源站点收货、配货、发货、目的站点收货、送货和客户附加服务 业务角色 业务工人 源站点客户、目的站点客户 源站点收货员、配货员、司机、目的站点收货员、送货员 图3.1概要描述了快递物流的主要业务流程,对于一些细节性的业务活动我们并未列出。该业务用例图涉及的要素如表3.1所示。

3.2.4 高层活动图

活动图与程序设计中的流程图相似,用于表示活动集。在业务需求分析中,我们将用活动图来描述这些业务过程,也就是描述业务系统的功能。在活动图中可以明确地看出参与者们(业务工人和业务角色)是并行执行某个业务用例还是各自地执行。

正如结构化分析中的流程图具有层次性一样,活动图也是有层次结构的。这里的高层活动图是指从宏观上、整体上来描述快递物流业务,至于每个业务用例的具体细节,在后续的系统分析阶段将进一步细化。快递物流业务高层活动图如图3.2所示。

图3.2 快递物流业务高层活动图

Figure3.2 the Higher Activity Diagram of Express Logistics

3.3 系统分析

系统分析是为了捕获和描述系统的所有需求,建立一个定义了系统问题域类中关键类的模型(即系统中处理的事物),目的是为系统开发人员和建立系统需求的的人员(用户/客户)提供一个沟通的基础,让他们可以相互交流各自对系统的看法和理解,并达成一致意见。因此,一般来说,分析都是通过与用户或客户的协作完成的[13]。

分析不应该受技术解决方案或实现细节的。也就是说,在分析阶段,开发人员不应该考虑有关代码和程序的问题,因为分析只是理解和实现系统的第一步。系统分析包括两部分的内容:系统需求分析和问题域分析[29]。

本课题要研究的是快递物流管理信息系统,因此从系统类型上应属于IT系统。而对于IT系统的建模应基于业务系统,因此系统分析理应以上述的业务需求分析为基础。

3.3.1 系统需求分析

系统需求分析会在客户和系统提供者之间产生一个协议。其中,客户可以是一个与系统提供者在同一个组织中的用户,也可以是另一个公司的用户,这时会基于需求文档编写一份详细的业务合同。尽管通常不可能在这样的文档中定义所有的事情,但还是应该尽可能地细化系统需求[31]。

系统需求分析通常与业务需求分析集成,在业务需求分析中的业务资源、规则和目标都将被建模。它描述IT系统能给用户提供哪些功能,在系统需求分析时,通常将IT系统作为一个黑盒子来看待。

系统需求分析通常利用UML中的用例图和简明用例顺序图2来表示[13]。

1 用例图展示了IT系统的所有使用者(参与者),以及在IT系统中这些使用者○

可以执行的功能(用例);

2 简明用例顺序图用来描述每个用例中用户与IT系统的交互过程。○这里的简明用

例顺序图是为了和后面的问题域分析中的用例顺序图清晰的划分而采用的叫法。

(1) 用例图

结合业务用例图和调研资料,对快递物流管理信息系统的用例图分析如下:

1 确定系统参与者 ○

2

这里的简明用例顺序图是一种新的顺序图使用方法,它是将整个系统看作一个对象,通过描述参与者与系统的交

互,从动态的角度对系统用例图进行的扩展和细化。

参与者代表与系统接口的任何事物或者人,通常代表着一个系统的使用者,或者需要与系统打交道的人或事物。它描述的是用户在使用IT系统时可以扮演的角色,而不一定是一个具体的人。通过对系统的需求分析,系统的参与者有:

1) 源站点收货员; 2) 源站点仓库管理员; 3) 配货员; 4) 司机(驾驶员); 5) 目的站点收货员;

6) 目的站点仓库管理员; 7) 送货员; 8) 源站点客户; 9) 目的站点客户; 10) 系统管理员。

其中,源站点客户和目的站点客户均来自于业务用例图中的业务角色,而其他的参与者都来自于组织内部,在业务系统分析中称为业务工人,而相对于系统来说是系统的参与者。

2 确定系统用例 ○

用例是系统参与者与系统交互过程中所需要完成的事物,也是系统和参与者之间的对话,它表示系统提供的功能,即系统给操作者什么样的使用操作[30]。

通过对系统的分析和上述角色的分析,确认用例如下:1) 源站点收货 2) 仓储 3) 配货 4) 发货 5) 目的站点收货

其中,源站点收货与目的站点收货是两个不同的概念。源站点收货面向的对象是客户,而目的站点收货面向的对象是其它某一站点(即源站点)。但二者性质是一样的,

6) 目的站点仓储 7) 送货 8) 客户附加服务 9) 系统管理

因此可以将源站点收货和目的站点收货抽取出一个收货用例,二者都对收货用例进行了扩展。

这里的客户附加服务包括客户货物跟踪、注册登陆、客户信息服务,由于这些用例描述的并非功能性需求,因此将其列为客户附加服务。

3 创建用例图 ○

用例图被称为参与者的外部用户所能观察到的系统功能的模型图,是描述需求分析中的业务需要IT系统参与的工作。通过对系统的分析,快递物流管理信息系统的用例图如图3.3所示。

图3.3 快递物流管理信息系统用例图

Figure3.3 the Use Case Diagram of Express Logistics MIS

对系统中的用例描述如表3.2所示。 (2) 简明用例顺序图

这里的简明用例顺序图是我们倡导的一种UML顺序图的特殊用法。简明用例顺序图是用来描述每个用例中用户与IT系统之间的交互过程,它仍属于从系统外部来看待系统所能提供的功能,因此属于外部视图的范畴,是系统需求分析的内容之一。

这里的简明用例顺序图涉及到事件的概念并利用了UML中的扩展构造型机制。 在UML中,事件是用来对一个将发生的事情进行规格化的描述。在用例的语境中,事件是用户对IT系统的操作。事件是用户通过用户界面发起的,例如单击搜索按钮或按Enter键,这些都将执行系统内部的某些东西[34]。

表3.2 快递物流管理信息系统的用例描述

Table3.2 the Use Case Description of Express Logistics MIS 用例描述 源站点收货 仓储 收到客户的业务需求通知后,源站点收货员上门取货,填写快递单,并将快递单信息录入系统。 仓库管理员对收货员收到的货物根据将要送达的站点进行分类和配货 发货 目的站点收货 仓储,填写仓储单。每个仓库管理员负责一个仓库。每个仓库仓储要送达其他某个或某些站点的货物。 配货员根据车辆和快递货物的情况进行配货,填写配货单。 根据配货单,源站点司机进行送货。每个司机只负责一个车辆,一个车辆可由多名司机来负责。 目的站点收货员接收送达本站点的货物,同时填写已达货物清单。这里的收货员与目的站点收货员面对的对象是有区别的。 目的站点仓库管理员对到达的货物根据要送达的区域进行分类和仓储,填写仓储单。每个仓库仓储要送达某个区域或某些区域的货物。 送货员对要送达的货物进行派件处理,即送货到门,同时要求客户填写到货确认。 客户附加服务包括服务信息查询如报价等、系统注册登陆和货物跟踪服务。 系统管理员对车辆、仓库、工作人员、客户以及单据信息等进行管理,这些统称为系统管理,即所谓的后台管理。 目的站点仓储 送货 客户附加服务 系统管理 对于本课题,采用简明用例顺序图对用例进行细化是合理的。由于快递物流管理信息系统的目标之一就是实现信息或数据收集、加工和处理的方便和快捷,因此,对于以信息为主要处理对象的系统来说,利用简明用例顺序图是明智的选择。

理论和实践已证明将以下两种类型的事件区分开来是有价值的:

1) 查询事件的目标是显示信息,通常不会修改IT系统中的任何东西。查询事件的结果就是已经显示的信息。

2) 转换事件的目标是对IT系统中的信息进行存储、修改或删除操作。转换事件的结果取决于转变是否成功,如果成功,信息将被存储、修改或删除;如果失败,那么对用户和系统而言就没有任何东西发生改变。

在UML中并没有对查询事件和转换事件的支持,因为我们将使用UML扩展构造型,它是UML中一种用来表示自定义元素的扩展机制。我们将对该语言进行扩展,创建两种特定的事件类型:

在事件名称之前添加构造型《Q》表示该事件是查询事件; 在事件名称之前添加构造型《M》表示该事件是转换事件。

在简明用例顺序图中,我们能够清楚地了解其涉及的是什么类型的事件,但并没有将IT系统对这些事件的应答描述成一个的事件,因为每个事件都有其固有的反馈。

本系统共有11个用例,每个用例都对应有一个简明用例顺序图,分别为:源站点收货简明用例顺序图、源站点仓储简明用例顺序图、配货简明用例顺序图、发货简明用例顺序图、目的站点收货简明用例顺序图、目的站点仓储简明用例顺序图、送货简明用例顺序图、注册登陆简明用例顺序图、客户信息服务简明用例顺序图、货物跟踪简明用例顺序图和系统管理简明用例顺序图。鉴于篇幅,这里只列出其中的5个,如下图所示。

1 源站点收货简明用例顺序图 ○

图3.4 源站点收货简明用例顺序图

Figure3.4 the Concise Sequence Diagram of the Pickup Use Case at Source Site

2 源站点仓储简明用例顺序图 ○

图3.5 源站点仓储简明用例顺序图

Figure3.5 the Concise Sequence Diagram of the Storage Use Case at Source Site

3 配货简明用例顺序图 ○

图3.6 配货简明用例顺序图

Figure3.6 the Concise Sequence Diagram of the Distribution Use Case

4 发货简明用例顺序图 ○

图3.7 发货简明用例顺序图

Figure3.7 the Concise Sequence Diagram of the Delivery Use Case

5 注册登陆简明用例顺序图 ○

图3.8 注册登陆简明用例顺序图

Figure3.8 the Concise Sequence Diagram of the Registration and Login Use Case

3.3.2 问题域分析

对系统进行需求分析后,接下来的工作就是问题域分析。该分析活动应该没有任何技术或实现细节,因为它是对将要解决的问题的确切陈述,所以分析应该包含一个理想的模型,另外,分析还涉及到那些与问题域有关的必备知识[31]。

问题域分析将产生问题域的模型:类、对象,以及根据真实世界中各实体之间关系进行建模的交互模型。这里将利用交互视图、类图和状态图对问题域进行分析,其中交互视图包括顺序图和协作图[13]。

(1) 交互视图

交互视图和用例之间存在着很紧密的关系。用例展开的是外部视图,它将系统看成一个黑盒子。而在交互视图中,这个黑盒子将被打开,显示出IT系统内部发生的事情。交互视图展示了处理特定任务所需的对象,以及这些对象相互通信的机制。UML使用两种图来进行交互视图建模:顺序图和协作图。

顺序图表示对象之间传送消息的时间顺序,每一个对象用一条生命线来表示,用垂直线代表整个交互过程中对象的生命周期。生命线之间的箭头连接代表信息。顺序图可以用来进行一个场景说明,即一个事务的历史过程。顺序图关注的焦点是时间。这里的顺序图和简明用例顺序图是不同的,简明用例顺序图是外部视图的范畴,而顺序图着眼于系统内部,将系统展开进行分析。

协作图是对在一次交互中有意义的对象和对象间关系的建模。它也可以描述对象之间是如何交互的,但协作图中的主要焦点是空间。将焦点集中于空间意味着协作图对对象之间的空间关系特别感兴趣,因而会在图中明确地显示它们。

顺序图和协作图结合起来,从不同角度来看待交互过程,因此可以完整的描述一个用例中对象间完整的交互过程。问题域分析中的顺序图和协作图是对系统需求分析中的

简明用例顺序图的具体化和细化,它通过对IT系统分解为各个具体的实体对象,对参与者与系统的交互进行可视化建模,即它描述了系统如何实现用户所需的服务或系统需要提供的功能。

本系统共有11个用例,同简明用例顺序图一样,分析顺序图和分析协作图3也分别应有11个,鉴于篇幅所限,这里仅列出其中的10个,分别为:源站点收货分析交互视图、源站点仓储分析交互视图、配货分析交互视图、发货分析交互视图和注册登陆分析交互视图。

1 源站点收货分析顺序图 ○

图3.9 源站点收货分析顺序图

Figure3.9 the Analytic Sequence Diagram of the Pickup at Source Site

2 源站点收货分析协作图 ○

图3.10 源站点收货分析协作图

Figure3.10 the Analytic Collaborative Diagram of the Pickup at Source Site

3 源站点仓储分析顺序图 ○

图3.11 源站点仓储分析顺序图

Figure3.11 the Analytic Sequence Diagram of the Storage at Source Site

4 源站点仓储分析协作图 ○

图3.12 源站点仓储分析协作图

Figure3.12 the Analytic Collaborative Diagram of the Storage at Source Site

5 配货分析顺序图 ○

图3.13 配货分析顺序图

Figure3.13 the Analytic Sequence Diagram of the Distribution

6 配货分析协作图 ○

3

这里的分析顺序图和分析协作图,是对系统需求分析中的简明用例顺序图的细化和具体化,通过对系统分解为各

个实体对象,对参与者和系统的交互进行可视化建模。这里是为了与前者区分而采用的叫法。

图3.14 源站点配货分析协作图

Figure3.14 the Analytic Collaborative Diagram of the Distribution

○7 发货分析顺序图

图3.15 发货分析顺序图

Figure3.15 the Analytic Sequence Diagram of the Delivery

8 发货分析协作图 ○

图3.16 发货分析协作图

Figure3.16 the Analytic Collaborative Diagram of the Delivery

9 注册登陆分析顺序图 ○

图3.17 注册登陆分析顺序图

Figure3.17 the Analytic Sequence Diagram of the Registration and Login

10 注册登陆分析协作图 ○

图3.18 注册登陆分析协作图

Figure3.18 the Analytic Collaborative Diagram of the Registration and Login

(2) 问题域类图(分析类图)

类是具有相同特征(属性)和相同行为(方法)的对象的集合,类的名称、属性和方法是描述一个类的三个最基本的方面。类图是面向对象系统的建模中最常见的图,显示了一组类、接口、协作以及他们之间关系[1]。

在抽象模型中表述现实世界,可以分为两个步骤:第一步,将个别人或事物抽象成对象;第二步,把类似的对象组合成类。通过对快递物流管理信息系统用例视图、简明用例顺序图和交互视图分析,寻找对象,定义对象,将功能分配到对象上,并归纳各对象应记录的属性,对这些对象进行抽象,描述过程中的类。对顺序图的消息进行分析,消息的传递转化为类的操作。上节中顺序图和协作图描述了快递物流基本工作流程,显示了描述事件流过程中的对象(顺序图和协作图的矩形),对这些对象进行抽象,描述

出业务处理过程中的类。对顺序图和协作图的消息(对象之间的通信,即图中的箭头)进行分析,每个消息都转化为类的操作[33]。

通过对系统需求分析和细化用例可以发现快递物流管理信息系统的问题域类有:源站点、源站点客户、源站点仓库、源站点仓储单、源站点车辆、目的站点、目的站点客户、目的站点仓库、目的站点仓储单、目的站点车辆、货物、配货单、发货单、已达货物列表和送货单。

通过对上述类分析,可以发现上述类之间是有某种关系的。在UML中类之间的关系有关联(Association)、泛化(Generation)、依赖(Dependency)和精化(Refinement)四种[1]。只有定义和描述了类之间的关系,各个类才能构成一个整体、有机的静态模型即类图。

关联是类之间的一种连接。在UML中,关联关系定义为描述一组链接的一种 关系,其中,链接定义为一组对象之间的一种语义连接。在关联关系中,也存在着一种称为“聚合”的关系,它是关联的一种特殊情况。

泛化是一种在一般元素和特殊元素之间存在的关系。其中,特殊元素可以只包含那些附加信息。允许使用一般元素的实例的任何地方,都可以使用特殊元素的实例来代替。

依赖是元素之间存在的一种关系,其中,一个是依赖元素,一个是被依赖元素。对后者的影响将影响到前者。

精化是同一事物的两种描述之间的一种关系,这两种描述是在不同抽象层次进行的。

对上述类的分析,快递物流管理信息系统所涉及的类之间的关系包括关联、泛化和聚合三种,其中关联关系这里不单独列出,将在问题域类图中列出。其中,泛化关系如图3.19所示。

图3.19 类泛化关系示例图

Figure 3.19 the Diagram of Generalization Relationship between Classes

源站点仓库和目的站点仓库是相对的概念,源站点与目的站点之间是可以角色互换的,二者本质是相同的,如都具有名称、所属站点、体积和状态等属性,同时都具有添加、删除和更新状态等操作,因此,可以将两者相同的部分抽象出一个新的类,即父类。二者都是该父类的特殊形式,可以继承父类,同时在父类的基础上添加自己独有的属性和操作。其他类之间的泛化关系与上述类似,在此不作赘述。

快递物流管理信息系统中的类之间的关系除了泛化外,还有一种聚合关系,聚合关系示例图见图3.20。

图3.20 类聚合关系示例图

Figure 3.20 the Diagram of Aggregation Relationship between Classes

聚合关系是关联关系的一种特殊形式。它指出了类之间的关系是“整体与部分”的关系。上图中的配货单是由发货单组成的,发货单是针对每个车辆生成一个发货单,而配货单是对所有车辆的配货情况的汇总,因此,二者是聚合的关系。

该系统涉及的问题域类有多个,完整的分析类图如图3.21所示。

图3.21 快递物流管理信息系统分析类图

Figure3.21 the Analytic Class Diagram of Express Logistics MIS

包含类之间关系的分析类图如图3.22所示。

图3.22 快递物流管理信息系统分析类图(含类之间的关系)

Figure3.22 the Analytic Class Diagram of Express Logistics MIS (with Relationship)

(3) 状态图

一般来说,状态图(State Diagram)是对类的描述的补充。它用于显示类的对象可能具备的所有状态,以及那些引起状态改变的事件[1]。

在实际建模时,并不需要为所有的类都绘制状态图,仅对那些具有多个明确状态的类,并且类的这些不同状态会影响和改变类的行为时才绘制类的状态图。

对该系统进行分析,货物和车辆两个类都有多个明确的状态,并且状态的不同会影响类的行为。

货物类有已收货、配货中、发货中和送货中四种状态,不同的事件会对货物的状态有不同的影响。货物类的状态图如图3.23所示。

图3.23 货物类状态图

Figure3.23 the State Diagram of Goods Class

车辆类有闲置中、使用中、维修中和报废中四个状态。车辆类的状态图如图3.24所示。

图3.24 车辆类状态图

Figure3.24 the State Diagram of Vehicle Class

第4章 快递物流管理信息系统的系统设计

4.1 系统设计目标和原则

4.1.1 系统设计目标

系统的设计目标:可扩展性,灵活性,可插入性[19]。

(1) 可扩展性:新的功能很容易集成到现有的系统中去,而不影响到系统的其他模块;

(2) 灵活性:允许代码修改平稳的发生。当修改一处时不至于影响到另一处,这样可以缩小维护的代价;

(3) 可插入性:容易用一个类替换已经存在的类。只要接口一致,更改实现类不影响类的使用者。

4.1.2 系统设计原则

在系统设计阶段,分析阶段的结果被扩展为一个技术解决方案。新类被加入进来,以提供以下一些技术基础结构:用户界面、处理对象存储的数据库、与其他系统的通信、与系统中各种设备的接口等[7]。

设计阶段的目标是为待解决系统指定一个可行的技术解决方案,该方案能够很容易地转变为程序代码。在设计阶段,不仅会细化那些在分析阶段定义的类,还会加入一些新的类,以便处理技术领域的问题,如数据库、用户界面、通信和设备等[1]。

在本系统的设计过程中,应遵循以下原则:

(1) 统一各种原始单据的格式,统一帐目和报表的格式; (2) 删除不必要的管理冗余,实现管理规范化、科学化;

(3) 界面尽量简单化,做到实用、方便,满足企业不同员工的需要;

(4) 系统设计考虑到系统的各种角色,对使用本系统的用户设计合理的使用权限。 设计阶段分为两个部分:

1 总体设计(Architecture Design):这是一个高层的设计,包括体系结构设○

计和总体功能设计,前者用来定义包(子系统),包括包之间的依赖关系和主要的通信机制;后者从功能的角度宏观设计系统。

2 详细设计(Detailed Design):此部分进一步细化包内的内容,对所有的类○

都详尽地进行描述,为编写代码的程序员提供一份清晰的规格说明。同时,可以用UML中的动态模型来说明对象如何在特定的情况下做出相应的行为。

4.2 总体设计

4.2.1 体系结构设计

良好的体系结构是一个可扩展和可修改的系统的基础。在进行体系结构设计时,包可以专注于一个特定的功能领域的处理,或者专注于一个特定的技术领域的处理[1]。

本系统中的包,有以下几个:

用户界面包:该包的内容描述整个用户界面所使用的类,这些类提供的操作允许用户查看系统中的数据,并允许用户输入新数据。这些类是基于Java AWT包设计的,后者是Java中用来编写用户界面应用程序的一个标准库。用户界面包和下面要介绍的业务对象包合作,后者包含那些实际存储数据的类。其中,用户界面包调用业务对象提供的操作,从而对这些对象进行检索和插入数据操作。

本系统的用户界面包包括源站点收货窗口类、目的站点收货窗口类、配货窗口类、注册窗口类、登陆窗口类等。

业务对象包:该包来自于分析模型的问题域类。在设计阶段,将进一步细化这些类,从而完整地定义它们的操作,并且为它们增加永久存储的支持。业务对象包与将要介绍的数据库包合作,因为所有的业务对象类必须继承于数据库包内的永久类。

本系统中的业务对象包包括站点类、车辆类、仓库类、用户类、快递单类等。 数据库包:数据库包为业务对象包中的类提供服务,以便后者能够实现永久存储的功能。在本系统中,永久类的属性信息将通过关系型数据库来存储。这里涉及到将系统中的各个类映射到传统关系模型中的相应的表的工作,这是后面将要介绍的数据库设计的内容。

实用工具包:实用工具包包含了一些可以被系统中其他包使用的服务。 这些包的内部设计如图4.1所示。

图4.1 快递物流管理信息系统体系结构图

Figure4.1 the Architecture Diagram of Express Logistics MIS

4.2.2 总体功能设计

总体功能设计也属于高层设计,它和体系结构设计从不同的角度共同描述系统的全貌。总体功能设计侧重于系统的功能,而体系结构设计着重于系统的结构。

根据系统分析的结果,可以得出系统的总体功能结构图如图4.2所示。

快递物流管理信息系统 源 站 点 收 货 管 理 模 块 源 站 点 仓 储管 理 模 块 配 货 管 理 模 块 发货 管 理 模 块 目的站 点 收 货 管 理 模 块 目的 站 点 仓 储 管 理 模 块 送货 管 理 模 块 货物跟踪管 理 模 块 客户信息服务 模 块 系统管 理 模 块 注册登陆模 块

图4.2 快递物流管理信息系统总体功能结构图

Figure4.2 the Function Structure Diagram of Express Logistics MIS

系统功能结构图是根据用例图得到的,该系统共分为11个模块。每个子系统完成其中的一部分功能,各个子系统之间相互协作、共享信息,并非是孤立的个体,整个系统共同满足用户全方位的需求。

4.3 详细设计

在面向对象方法中,系统详细设计阶段对每一个类加以丰富和完善细节,对在实现过程中使用的类进行详细的定义。最常用方法是把分析得出的类直接带进设计中,详细设计成为添加细节并做出实现决策的过程[6]。

详细设计的目的是描述新的技术类,即在用户界面包和数据库包中的类,并且对分析阶段已形成的业务对象类的描述进行扩展和细化。这是通过创建新的类图和交互图时实现的。虽然这些图用的还是分析阶段使用的图,但是在此阶段,进一步细化了这些图的定义,并站在一个更高的技术层面来定义它们。分析阶段对用例的描述在此用来验证设计阶段对这些用例的处理是否正确,另外,还可以使用顺序图来说明每一个用例是如

何在系统中实现的。

由于本系统使用关系数据库,因此应将系统中的各个类映射到传统关系模型中的相应的表,即详细设计中应包括数据库设计的内容。

具体说来,详细设计需要以下两个方面的工作:

1 交互图详细设计; ○

2 类图详细设计。 ○

4.3.1 交互图详细设计

交互图详细设计是对系统分析阶段产生的顺序图和协作图进一步的细化,设计出的交互图中的事件可以直接作为实现类中的操作,同时也显示了类之间的消息传递机制,通过一个类调用另一个类的方法(操作),来实现类之间的交互。

交互图详细设计是系统详细设计中非常重要的内容,它可以为系统实现提供基础。 (1) 源站点收货详细设计交互图

图4.3 源站点收货详细设计顺序图

Figure4.3 the Detailed Design Sequence Diagram of the Pickup at Source Site

图4.4 源站点收货详细设计协作图

Figure4.4 the Detailed Design Collaborative Diagram of the Pickup at Source Site

(2) 源站点仓储详细设计交互图

图4.5 源站点仓储详细设计顺序图

Figure4.5 the Detailed Design Sequence Diagram of the Storage at Source Site

图4.6 源站点仓储详细设计协作图

Figure4.6 the Detailed Design Collaborative Diagram of the Storage at Source Site

(3) 配货详细设计交互图

图4.7 配货详细设计顺序图

Figure4.7 the Detailed Design Sequence Diagram of the Distribution

图4.8 配货详细设计协作图

Figure4.8 the Detailed Design Collaborative Diagram of the Distribution

(4) 发货详细设计交互图

图4.9 发货详细设计顺序图

Figure4.9 the Detailed Design Sequence Diagram of the Delivery

图4.10 发货详细设计协作图

Figure4.10 the Detailed Design Collaborative Diagram of the Delivery

(8) 注册登陆详细设计交互图

图4.11 注册登陆详细设计顺序图

Figure4.11 the Detailed Design Sequence Diagram of the Registration and Login

图4.12 注册登陆详细设计协作图

Figure4.12 the Detailed Design Collaborative Diagram of the Registration and Login

(9) 货物跟踪详细设计交互图

图4.13 货物跟踪详细设计顺序图

Figure4.13 the Detailed Design Sequence Diagram of the Goods Track

图4.14 货物跟踪详细设计协作图

Figure4.14 the Detailed Design Collaborative Diagram of the Goods Track

4.3.2 类图详细设计

类图详细设计是对系统分析得到的类图进一步的细化,同时考虑了具体的技术解决方案[13]。通过详细设计得到的类可以直接转换为实现阶段的Java类代码,即为实现阶段的Java类代码提供了基础框架,编程人员只需在具体属性和方法上充实内容即可。

不含类之间关系的设计类图如图4.15与图4.16所示。

图4.15 快递物流管理信息系统设计类图

Figure4.15 the Design Class Diagram of Express Logistics MIS

图4.16 快递物流管理信息系统设计类图(续)

Figure4.16 the Design Class Diagram of Express Logistics MIS (to be continued)

含类之间关系的设计类图如图4.17所示。

4.4 代码设计

代码设计是系统设计的基础工作之一,是实现系统的前提条件。代码就是代表客观存在的实体及其各种属性的符号。它通常是用一些字母、数字的组合,把较长的自然语言概括成适合计算机处理的较简单的字符串。代码设计遵循唯一化、规范化、系统化的原则[7]。

在系统分析的基础上,根据代码设计的原则,为满足管理和使用需要,本系统需要的代码有单据代码、货物代码、客户代码、车辆代码、工作人员代码、仓库代码等,下面将给出代码的设计。

(1) 单据编号是单据的唯一标识,单据的代码设计如图4.18所示。

图4.17 快递物流管理信息系统设计类图(含类之间的关系)

Figure4.17 the Design Class Diagram of Express Logistics MIS (with Relationship between Classes)

单据编号 20090416 001 日期 序号

图4.18 单据代码设计图

Figure 4.18 Invoice Code Design Diagram

(2) 货物编号是货物的唯一标识,货物的代码设计如图4.19所示。

货物编号 016 001 类别 序号

图4.19 货物代码设计图

Figure 4.19 Goods Code Design Diagram

(3) 客户编号是客户的唯一标识,客户的代码设计如图4.20所示。

客户编号 001 01 0001 站点 区域 序号

图4.20 客户代码设计图

Figure 4.20 Customer Code Design Diagram

(4) 车辆编号是车辆的唯一标识,车辆的代码设计如图4.21所示。

车辆编号 001 01 01 站点 类型 序号

图4.21 车辆代码设计图

Figure 4.21 Vehicle Code Design Diagram

(5) 工作人员编号是工作人员的唯一标识,工作人员的代码设计如图4.22所示。

工作人员编号 001 01 0001 站点 部门 序号

图4.22 工作人员代码设计图

Figure 4.22 Staff Code Design Diagram

(6) 仓库编号是仓库的唯一标识,仓库的代码设计如图4.23示。

仓库编号 001 01 站点 序号

图4.23 仓库代码设计图

Figure 4.23 Warehouse Code Design Diagram

4.5 数据库设计

4.5.1 数据库设计目标与原则

设计数据库的重点就是为数据库的业务职能和用于表示这些业务职能的数据概念设计以及功能建模。使用数据库可以带来许多好处:如减少数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等。准确地设计数据库以建立业务模型是至关重要的。因为数据库一旦实现完毕,再对其设计进行修改将花费大量的时间。另外设计良好的数据库其执行情况也会将会更好[8]。

设计数据库是应考虑以下部分: (1) 结构化考虑

数据库设计必须高度结构化,按照规范化的标准进行设计,防止插入异常、删除异 常和修改复杂等情况的出现。

(2) 冗余性考虑

数据库设计是程序设计的基础,好的数据库的设计要做到:一方面要尽可能的减少冗余度,减少存储空间的占用,降低数据的一致性问题发生的可能性;另一方面,还要考虑适当的冗余,以提高运行速度、降低开发难度。

(3) 数据正确性和一致性考虑

数据库设计时必须考虑维护数据的正确性和一致性,在系统中,多个用户共享数据库,由于并行开发操作,可能影响数据的一致性,因此在数据库设计时可以考虑通过加

锁等办法保证数据的一致性。

4.5.2 数据库概念设计

在数据库概念设计阶段,数据库设计人员充分调查和分析用户的应用需求,概念结构设计的目标是产生出一个能反映组织信息需求的概念模型。最常见的概念模型是实体-联系模型(E-R模型)。它是整个数据库设计的关键[26]。

概念结构的主要特点是:

1 能真实、充分地反映现实世界,包括事物和事务之间的联系,能满足用户对数○

据的处理要求,是对现实世界的一个真实模型;

2 易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是○

数据库设计成功的关键;

3 易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充; ○

4 易于向关系、网状、层次等各种数据模型转换。 ○

在对快递物流企业充分调研的基础上,通过以上的系统分析和设计,可以得到各个实体及其它们之间的相互关系。具体的实体包括:货物、仓库、工作人员、系统管理员、快递单、仓储单、站点区域、公司站点、发货单、客户和车辆。

这里的工作人员是对收货员、仓库管理员、配货员、司机等组织内人员的统称,在数据库逻辑设计时会区分这些实体。 (1) 实体及其属性图

本系统共有11个实体,分别为货物、仓库、车辆、站点、站点区域、客户、系统管理员、工作人员、快递单、仓储单和发货单。由于篇幅,这里仅列出其中的5个,如下图所示。

图4.24 货物实体及其属性图

Figure4.25 the Entity and its Attributes of Goods

图4.25 仓库实体及其属性图

Figure4.25 the Entity and its Attributes of Warehouse

图4.26 工作人员实体及其属性图

Figure4.26 the Entity and its Attributes of Staff

图4.27 客户实体及其属性图

Figure4.27 the Entity and its Attributes of Customer

图4.28 车辆实体及其属性图

Figure4.28 the Entity and its Attributes of Vehicle

(2) 实体—关系图(E—R图)

实体—关系图描述了数据库概念设计中的各个实体及其之间的关系,快递物流管理信息系统的实体—关系图如下图所示。

图4.29 实体—关系图

Figure4.29 Entity—Relationship Diagram

4.5.3 数据库逻辑设计

数据库逻辑设计是按照计算机系统的观点对数据进行建模,主要用于DBMS的实现。本系统采用SQL Server2000 数据进行建模[27]。

在数据的规范化表达中,一般将一组相互关联的数据称为一个关系,而在这个关系下的每个数据指标项则被称为数据元素,这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段[8]。

规范化的表结构设计,在以后的数据维护中,不会发生插入(insert)、删除(delete)和更新(update)时的异常。反之,数据库表结构设计不合理,不仅会给数据库的使用和维护带来各种各样的问题,而且可能存储了大量不需要的冗余信息,造成系统资源的浪费。

本系统涉及的数据库基本表有客户、系统管理员、仓库管理员、驾驶员、收货员、配货员、货物、快递单、仓储单、配货单、发货单、仓库、站点、站点区域和车辆15

个表。每个表具体的字段、数据类型、长度、是否允许空等信息列表如下。限于篇幅,论文只列举出客户、仓库管理员、驾驶员、货物、快递单、仓库、车辆、站点和站点区域8个数据库表的信息。

(1) 客户信息表

表4.1 客户信息表

Table4.1 Customer Info Table 列名 customer_id site_id customer_name customer_password customer_address customer_tel 数据类型 int int varchar varchar varchar varchar 长度 4 4 50 50 50 50 允许空 字段名称 客户编号 站点编号 客户姓名 客户密码 客户地址 客户电话 √ √ √ √ √ (2) 仓库管理员信息表

表4.2 仓库管理员信息表

Table4.2 Warehouse Manager Info Table 列名 wmanager_id warehouse_id wmanager_name wmanager_password wmanager_tel 数据类型 int int varchar varchar varchar 长度 4 4 50 50 50 允许空 字段名称 仓库管理员编号 仓库编号 仓库管理员姓名 仓库管理员密码 仓库管理员电话 √ √ √ √ (3) 驾驶员信息表

表4.3 驾驶员信息表

Table4.3 Driver Info Table 列名 driver_id vehicle_id driver_name driver_password driver_tel 数据类型 int int varchar varchar varchar 长度 4 4 50 50 50 允许空 字段名称 驾驶员编号 车辆编号 驾驶员姓名 驾驶员密码 驾驶员电话 √ √ √ √ (4) 货物信息表

表4.4 货物信息表

Table4.4 Goods Info Table

列名 goods_id expinvoice_id goods_name goods_num goods_volume goods_weight goods_state 数据类型 int int varchar int varchar varchar varchar 长度 4 4 50 4 50 50 50 允许空 字段名称 货物编号 快递单编号 货物名称 货物数量 货物体积 货物重量 货物状态 √ √ √ √ √ √ (5) 快递单信息表

表4.5 快递单信息表

Table4.5 Express Invoice Info Table 列名 expinvoice_id fetcher_id customer_id storage_id expinvoice_fetdate expinvoice_state expinvoice_arrdate 数据类型 int int int int varchar varchar varchar 长度 4 4 4 4 50 50 50 允许空 字段名称 快递单编号 收货员编号 客户编号 仓储单编号 收货日期 快递单状态 到达日期 √ √ √ √ √ √ (6) 仓库信息表

表4.6 仓库信息表

Table4.6 Warehouse Info Table 列名 warehouse_id site_id warehouse_name warehouse_volume warehouse_state 数据类型 int int varchar varchar varchar 长度 4 4 50 50 50 允许空 字段名称 仓库编号 站点编号 仓库名称 仓库容积 仓库状态 √ √ √ √ (7) 车辆信息表

表4.7 车辆信息表

Table4.7 Vehicle Info Table 列名 vehicle_id site_id vehicle_name vehicle_size vehicle_load 数据类型 int int varchar varchar decimal 长度 4 4 50 50 9 允许空 字段名称 车辆编号 站点编号 车辆名称 车辆型号 车辆载重 √ √ √ √ vehicle_state varchar 50 √ 车辆状态 (8) 站点信息表

表4.8 站点信息表

Table4.8 Site Info Table 列名 site_id site_name site_address site_tel 数据类型 int varchar varchar varchar 长度 4 50 50 50 允许空 字段名称 站点编号 站点名称 站点地址 站点电话 √ √ √ 4.6 界面设计

设计阶段的一项特殊的活动就是创建用户界面,即系统的“外观”,它是系统与用户的接口,也是信息输入输出的主要途径[7]。

界面设计的基本原则是:

(1) 用户原则。人机界面设计首先要确立用户类型。划分类型可以从不同的角度,视实际情况而定。确定类型后要针对其特点预测他们对不同界面的反应。这就要从多方面设计分析。

(2) 信息最小量原则。人机界面设计要尽量减少用户记忆负担,采用有助于记忆的设计方案。

(3) 帮助和提示原则。系统设计要有恢复出错现场的能力,在系统内部处理的工作要有提示,尽量把主动权让给用户。

本系统界面设计简单明了,直观性强,方便操作员操作。系统分为收货管理、仓储管理、配货管理、发货管理、系统管理和客户网站等几大功能。进入系统首页,单击上面的导航键可以进入不同的功能模块。本系统每个功能模块界面设计风格统一,进入模块首页,该模块信息以列表的形式显示于页面上,该页面上一般还会涉及到信息的录入和查询功能。系统界面风格如下图所示。

图4.30 系统界面风格 Figure4.30 System Interface

第5章 快递物流管理信息系统的系统实现

5.1 系统环境配置

5.1.1 系统开发环境

本系统采用的技术架构为JSP +Tomcat + SQL Server 2000,即使用JSP作为Web应用程序开发语言,采用Tomcat作为Web服务器和JSP引擎,采用SQL Server 2000作为后台关系型数据库管理系统。

本系统开发平台采用如下环境: 操作系统:Windows XP; 软件开发IDE:Jbuilder2005; 数据库:SQL Server 2000; 建站工具:Dreamweaver8.0。

基于B/S结构的快递物流管理信息系统技术体系结构如图5.1所示。

图5.1 系统技术体系结构图

Figure5.1 System Software Architecture Diagram

5.1.2 系统环境配置

(1) 安装与配置JDK环境

1 安装JDK软件 ○

执行“JDK 1.5.0.15 Setup.exe”的安装程序,用户可以按其默认路径进行安装,也可自定义安装路径。这里假设JDK软件安装在D:\\Program Files\\Java\\目录下。

2 配置环境变量 ○

右击我的电脑->属性->高级->环境变量->系统变量。 在“系统变量”中新建以下两个环境变量: JAVA_HOME= D:\\Program Files\\Java\\jdk1.5.0_15;

CLASSPATH=%JAVA_HOME%\\lib\\dt.jar; %JAVA_HOME%\\lib\ools.jar; 并编辑变量Path,在其值最后加上“%JAVA_HOME%\\bin;”。

3 测试JDK ○

“hello.java”的文件是一个简单的java程序,这里用来测试JDK是否已安装成功。 将该文件复制到JDK的安装路径下,然后打开命令提示符窗口,进入到hello.java所在目录下,依次键入下面的两条命令,然后按Enter键:

javac hello.java java hello

此时若屏幕显示文字“hello”则表示JDK已安装成功。另外,如在命令提示符窗口中分别键入命令“java”和“javac”均显示出正确的帮助文件,则也表示JDK配置正确。

(2) 安装与配置Tomcat服务器

1 安装TOMCAT ○

执行“Tomcat 5.5.9 Setup.exe”的安装程序,用户可以按其默认路径进行安装,也可自定义路径。这里假定Tomcat软件安装在文件夹“D:\\Program Files\\Apache Software Foundation\\Tomcat 5.5”。

2 配置环境变量 ○

右击我的电脑->属性->高级->环境变量->系统变量。 在“系统变量”中新建以下两个环境变量:

CATALINA_HOME=D:\\Program Files\\Apache Software Foundation\\Tomcat 5.5 CATALINA_BASE=D:\\Program Files\\Apache Software Foundation\\Tomcat 5.5 并编辑变量CLASSPATH,在其值最后加上“D:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\common\\lib\\servlet-api.jar;”。这用来把TOMCAT安装目录下子文件夹common\\lib中类servlet-api.jar的路径添加到CLASSPATH中去。

3 测试Tomcat ○

打开IE浏览器,访问网址080/,若您看到Tomcat的欢迎页面(如图5.2所示),说明Tomcat服务器安装已成功。

图5.2 tomcat配置成功页面

Figure5.2 Success Page in Tomcat Allocation

5.2 数据库连接

JDBC是一种可用于执行SQL语句的JavaAPI (Application Programming Interface应用程序设计接口),它由一些Java语言编写的类和界面组成。JDBC为数

据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序[9]。

JDBC驱动有四种类型,本系统采用其中的JDBC-ODBC桥作为驱动类型。这里首先建立ODBC数据源。

5.2.1 建立ODBC数据源

单击Windows的“开始”菜单→控制面板→性能和维护→管理工具,双击“数据源(ODBC)”,选择“系统DSN”→添加SQL server数据源,设置数据源名称为“express”、服务器为(local)→选择“使用网络登陆ID的Windows NT验证”→更改默认数据库为“express”→完成→测试数据源,如果通过测试,表示已成功为数据库“express”建立了ODBC数据源。

5.2.2 数据库连接

数据库连接包括两个步骤:首先要加载相应数据库的JDBC驱动程序;然后建立连接。由于本系统涉及到经常对数据库的操作,因此定义了一个数据库连接类Link_db.java,见附录2。

(1) 加载JDBC驱动程序

本系统要加载和注册JDBC-ODBC桥驱动,使用下面的语句: Class.forName(“sunjdbc.odbc.JdbcOdbcDriver”);

Class.forName()方法的执行,将创建数据库驱动的实例并注册到驱动管理器在JDBC-ODBC的驱动程序加载后,就可以建立与该DBMS的连接了。

(2) 建立数据库连接

这个步骤要使数据库驱动连接到相应的DBMS。连接的建立通过使用

DriverManagement类的static方法getConnection(),如本系统的数据库连接语句为:

Connection con=DriverManager.getConnection(\"jdbc:odbc:express\

5.3 系统功能的实现

根据系统设计的结果,通过对系统进一步的设计和优化,将系统设计中的源站点收货管理模块和目的站点收货管理模块、源站点仓储管理模块和目的站点仓储管理模块、发货管理模块和送货管理模块、客户附加信息服务模块和货物跟踪模块,分别合并成一个功能模块来实现,这样一方面减小了逻辑和物理冗余,实现功能模块的可重用性,另一方面可以节省人力、物力和财力,从而减少开发成本。

整个系统分为两大子系统、七大功能模块,两大子系统分别为面向客户的门户网站(快递物流网)和面向企业员工的快递物流管理信息系统,七大功能模块分别为注册登陆模块、收货管理模块、仓储管理模块、配货管理模块、发货管理模块、客户服务管理模块和系统管理模块。其中两大子系统共享注册登陆模块,两大子系统的后台管理合并为系统管理模块,面向客户的门户网站在该系统称为客户服务管理模块,其他的功能模块属于企业内部的快递物流管理信息系统。

5.3.1 注册登陆模块

注册登陆模块存在于面向客户的门户网站和面向员工的快递物流管理信息系统中。其中,客户为了获得服务需要注册,而企业员工无需注册,只需由系统管理员根据其职位为其分配帐号和密码,当然每个用户(包括客户和企业员工)都可以自行完善资料。客户注册界面如图5.3所示。用户登录界面如图5.4所示。

图5.3 用户注册界面

Figure5.3 User Registration Interface

图5.4 用户登录界面

Figure5.4 User Login Interface

用户登录模块包括客户、收货员、仓库管理员、配货员、司机和系统管理员6个角色的登录。不同的角色登录后的首页是不同的。

5.3.2 收货管理模块

收货是快递业务的重要内容之一,收货员登录收货管理模块后,对收取的货物登记,填写快递单,快递单将贯穿整个业务流程,直至客户确认已收货为止。收货管理操作分为两个步骤:一是填写快递单基本信息;二是填写货物信息。收货管理模块的界面如图5.5、5.6所示。

图5.5 收货管理界面(1)

Figure 5.5 Pickup Management Interface(1)

图5.6收货管理界面(2)

Figure 5.6 Pickup Management Interface (2)

5.3.3 仓储管理模块

仓储管理是仓库管理员对收货员收取的货物进行仓储,并对货物和仓库进行管理。根据系统设计的结果,每位仓库管理员隶属于一个仓库,通过对快递单进行筛选,确定需仓储在本仓库的快递货物,生成仓储单。仓储管理的界面如图5.7所示。

5.3.4 配货管理模块

配货管理员对该站点收取的货物根据要发往的站点进行分类,然后查看该站点的车辆状况,进行配货。配货管理的界面如图5.8所示。

图5.7 仓储管理界面

Figure5.7 Storage Management Interface

图5.8 配货管理界面

Figure5.8 Distribution Management Interface

5.3.5 发货管理模块

驾驶员对配货单进行确认,生成发货单,并且更改货物和车辆状态。发货管理的界面如图5.9所示。

图5.9 发货管理界面

Figure5.9 Delivery Management Interface

5.3.6 客户服务管理模块

图5.10 快递物流网门户页面

Figure5.10 Express Logistics Web Portal Page

客户服务管理模块即快递物流网,该功能模块将细化为以下功能:新闻公告、企业文化、企业简介、产品介绍、服务介绍和货物跟踪等。快递物流网门户页面如图5.10所示。

货物跟踪功能是本系统面向客户的重要功能之一,它可以为客户提供实时监控货物状态的功能,客户只需输入快递单号即可查询快递单信息和对应的货物信息。货物跟踪界面如图5.11所示。输入快递单号后,即可跟踪货物,跟踪结果界面如图5.12所示。

图5.11 货物跟踪界面

Figure5.11 Goods Tracking Interface

图5.12 货物跟踪结果界面

Figure5.12 Goods Tracking Result Interface

5.3.7 系统管理模块

该功能模块负责快递物流网和快递物流管理信息系统的后台管理工作,具体包括单据管理、用户管理、站点管理、车辆管理、仓库管理。系统管理的界面如图5.13所示。

图5.13 系统管理界面

Figure5.13 System Management Interface

5.4 系统测试

通常,一个系统需要经过单元测试、集成测试、系统测试和接受性测试。单元测试时对单个类或一组类的测试,一般情况下由编程者自己完成。集成测试是集成组件和类,以校验它们是否是像指定的那样进行合作。系统测试是将系统看作一个“黑盒子”,检验系统是否具有最终用户所期望的功能。接受性测试与系统测试类似,它是由客户实施的,以验证系统 是否满足客户的需求。单元测试实用类图来说明;集成测试一般使用组件图和协作图;系统测试则利用用例图检验最初在这些图中定义的系统行为[7]。

5.5 系统评价

系统评价有着重要的作用,一方面是评估当前系统的各项指标,另一方面也是为今后的系统开发提供宝贵的经验。系统评价的主要内容包括:

(1) 检查系统的目标、功能及各项指标是否达到设计要求。 (2) 检查系统的质量。 (3) 检查系统使用效果。

(4) 根据评审和分析的结果,找出系统的薄弱环节,提出改进意见。

新系统开发完成并经过软件测试后,即可得到系统性能的各项参数,据此可对系统的性能做出评价。对于Web系统来说,其主要的性能指标包括安全性、可靠性、响应速度及稳定性等。

在模拟环境下,设置好Web服务器和数据库服务器,利用IE7.0远程访问快递物流管理信息系统来实施整个系统的性能测试。

在系统的可靠性、安全性及资源的利用率等方面,系统的各项指标均测试合格。总的来说,快递物流管理信息系统已经达到预期的要求。如果进一步在服务器的响应速度、安全控制、数据的处理效率等方面做进一步的改进,即可投入到现实应用中。

第6章 总结与展望

6.1 工作总结

随着电子商务的快速发展和市场专业化分工的进一步深化,快递物流业在中国呈现出迅猛发展趋势。快递业将成为未来物流业的一支生力军活跃在市场经济的大潮中。民营快递企业在目前的行业中尚处于劣势,尤其是国际快递巨头纷纷驻足中国,给中国经济带来生机和活力的同时,无形中给民营快递公司这一弱不禁风的群体以沉重的打击。正如第二章绪论对快递物流的阐述,目前民营快递在区域快递市场占据大部分份额,如何保证这块“蛋糕”不被瓜分,是民营快递从业者的根本出发点。

民营快递企业普遍存在着管理粗放、信息化程度低、与客户沟通少和服务理念不完善等致命弱点,因此,重组业务流程和信息化建设成为快递物流理论界和实践界普遍关注的问题。

本文也着重从业务流程分析和管理信息系统开发两个方面出发,首先运用面向对象的方法对快递物流企业的业务需求和系统需求进行分析,接着深入系统内部,对系统作了深入详细的分析,此后对快递物流管理信息系统进行了设计,最后实现了该系统并对该系统进行了必要的测试和评价。

具体工作如下:

(1) 分析了课题研究的背景与意义;

(2) 采用面向对象的思想和UML建模方法对快递物流企业的主要业务流程进行分析,即业务需求分析;

(3) 在业务需求分析的基础上进行快递物流MIS系统需求分析。运用UML中的用例图和简明用例顺序图对快递物流管理信息系统进行可视化建模;

(4) 在系统需求分析的基础上,深入系统内部,对系统如何满足客户需求和提供功能服务进行了深入浅出的分析,即系统分析。系统分析采用用例图、交互图、类图和状态图从不同角度刻画要建模的系统;

(5) 在系统分析的基础上进行系统设计,系统设计考虑系统具体的技术实现细节,给出系统的技术解决方案。系统设计包括两个部分:总体设计和详细设计。总体设计是从宏观上把握要实现的系统,利用UML包图和总体功能设计图从不同侧面描绘系统。详细设计将进一步细化系统分析阶段的成果:顺序图、协作图和类图;

(6) 根据设计出的系统,利用JSP和RDBMS SQL Server2000对系统进行实现,构建的软件系统是基于B/S模式的,可以满足企业日益增长的业务需要,同时为客户搭建一个与企业交流的平台。

6.2 研究展望

由于条件和本人能力的有限,系统尚存在着一些不足之处。例如,系统完成之后需要经过一段时间的运行和测试以确保其稳定性,本系统在这方面并没有完成,所以系统中可能还存在着一些漏洞,需要在今后的时间里去发现和解决,使系统逐步趋于完善。

(1) 根据快递业务的特点,开发出的系统应能较好的支持Wap功能,尤其是在源站点收货和送货上门时,可以对快递单信息和用户确认信息等进行实时的录入和编辑操作。而本系统在对无线支持上考虑不周,这是未来本系统进一步开发的工作之一;

(2) 在配送功能上,系统未能支持配送路线设计的问题,只能凭驾驶员的经验,这显然是一种粗糙的解决方案。由于配送路线问题涉及到全球定位系统(GPS)和地理信息系统(GIS)的内容,这超出了本文作者的知识和能力范围,因此在该方面的工作还很欠缺;

(3) 另外,在客户、货物、仓库等所属站点分类上也需要人为的操控,相关的理论和技术支撑略显单薄。

综上所述,本系统在今后还有很多需要进一步完善的地方,这些都将促使本文作者开展下一步的工作。

参考文献

[1] 蒋 慧, 吴礼发, 陈卫卫. UML设计核心技术[M]. 北京:希望电子出版社, 2001-01 [2] 沈建男. 精通从JavaScript到JSP范例程序设计[M]. 北京:中国青年出版社, 2001-06 [3] 邵举平, 董邵平. 物流管理信息系统[M]. 北京:清华大学出版社, 2005-03

[4] (日本)铃木秀郎编着, 关志民译. IT时代的物流服务[M] 北京:机械工业出版社,2004 [5] 于宝琴, 赵家俊. 现代物流信息管理[M] 北京:北京大学出版社, 2006 [6] 蔡临宁. 物流系统规划—建模及实例分析[M]. 北京:机械工业出版社, 2003-09 [7] 黄梯云. 管理信息系统(修订版)[M] 北京:高等教育出版社, 2000 [8] 萨师煊, 王珊. 数据库系统概论(第四版)[M], 高等教育出版社, 2006 [9] 郎波. Java语言程序设计[M] 北京:清华大学出版社, 2005 [10] 杨易. JSP网络编程技术与实例[M], 北京:人民邮电出版社, 2005

[11] 朱印宏, 熊利荣. Dreamweaver8完美网页设计[M], 北京:中国电力出版社, 2007 [12] 刘中兵, 李伯华等. JSP数据库项目案例导航[M], 北京:清华大学出版社, 2006 [13] (瑞士)Patrick Grassle, Henriette Baumann Philippe Baumann着, 徐锋译 UML2.0实

战项目开发指南[M], 北京:人民邮电出版社 2007-08

[14] 孙丽君, 胡祥培, 王征. 车辆路径规划问题及其求解方法研究进展[J]. 系统工程,

2006,(11)

[15] 邢薇, 马立和, 沙宁. 物流企业管理信息系统(MIS)综述[J] 中国科技信息,

2005,(8)

[16] 渠芳, 曹志梅. ASP、PHP和JSP技术的比较研究[J]. 现代情报, 2002,(7) [17] 罗云. 面向电子商务的现代物流管理信息系统的开发[J]. 物流技术,.2002(12) [18] 赵争 道路运输物流信息平台的设计与实现[J]. 计算机工程, 2008(8) [19] 基于JSP平台的第三方物流信息平台设计与实现[J] 物流技术. 2004(11) [20] 基于B/S结构的第三方物流系统设计与实现[J] 计算机工程, 2003(1) [21] 孙学农, 徐辉增. 物流配送车辆调度问题方法综述[J] 科技信息, 2005(3)

[22] 伍良启, 罗衡彬, 王大溪. 快递物流信息平台的设计与实现[J]. 广西科学院学报,

2007,(4)

[23] 陈世阳. 我国快递业现状及对策[J]. 中国水运, 2007,(9)

[24] 吴文化, 樊桦. 关于扶持我国快递企业发展及完善城市配送服务体系的建议

[J]. 综合运输, 2002(2)

[25] 徐红梅. 吉林省共用物流信息平台系统设计及关键技术研究[D]. 吉林大学, 2008 [26] 第四方物流信息交易平台及其实现[D]. 南京工业大学, 2005

[27] 基于ASP的中小物流企业信息平台的研究与实现[D]. 哈尔滨工程大学. 2007 [28] Shih-Che Loa, Randolph W. Hallb. The design of real-time logistics information system

for trucking Industry[J] Computers & Operations Research 2008, (21) :3439 –3451 [29] Yu, F; Luo, Q. Design and implementation of GIS-based logistic information system[C]

International Symposium on Information Processing (ISIP 2008)/International Pacific Workshop on Web Mining and Web-based Application (WMWA 2008) 2008, (12), 234-240

[30] Chen, YJ; Zhou, QH. The Application of UML to the Design of Reverse Logistics

Information System [C] International Colloquium on Computing, Communication, Control, and Management 2008. (23), 129-135

[31] Chung, JY; Wan, CX; Liao, GQ. The design and implementation of the traffic logistics

system based on Internet [C] 2nd International Conference on Management of e-Commerce and e-Government 2008. (13), 27-35

[32] Zhang, DY Zhang, J. The enterprises logistics information platform framework based on

E-commerce[C] IEEE International Conference on Automation and Logistics, 2007, (34), 34-44

[33] Benaissa, M Boukachour, J Benabdelhafid. A Web service in Integrated Logistics

Information System[C] International Symposium on Logistics and Industrial Informatics, 2007, (8), 25-32

[34] CHI Wenzong, WU Zhongyuan. Development and Design of a New Logistics

Information Management System[C] 2009 International Conference on Computer Engineering and Technology, 2009, (14), 23-34 网络资源

[1] 中国物流与采购联合会网统计数据con/200707/81.html [2] 《物流业调整和振兴规划》

[3] 电子商务物流的若干问题研究con/2007/80.html

致 谢

历时三个多月的毕业设计终于告一段落,值此论文搁笔之际,借此机会谨向一切关心和帮助过我的人致以最诚挚的谢意。

首先,我要特别感谢我最尊敬的导师刘晓副教授。本文是在刘老师的悉心指导下完成的,从论文的选题到交付无不渗透着刘老师的心血。在这几个月的时间里,导师不仅在学习上给予我无私的指导,而且在生活上教给我许多做人的道理,使我受益匪浅,这些都将成为我一生的财富。刘老师渊博的知识、严谨的治学态度和高屋建瓴的学术视野深深地感染着我,刘老师洒脱处世的人生哲学、富于激情的生活态度将是我一生学习的榜样。

同时,我还要感谢在我本科四年给予我莫大关心和支持的亲爱的老师们,是你们耐心地为我排忧解难,教会我许多专业知识,是你们的默默无闻和无私奉献使得我在学习上勇往直前、决不放松,在此谨向你们致以最真挚的谢意!感谢与我相处四年的大学同学,感谢你们陪伴我度过了四年快乐充实的大学生活,感谢你们对我的理解与包容!

感谢刘晓老师研讨班的所有学长学姐们,是你们中肯的建议使得论文趋于完善。尤其是陈休晔学姐,在有繁重学习任务的同时,也不忘给予我耐心的指导,主动和我交流论文事宜,无微不至地告知我论文写作和答辩过程中的问题和细节。

最后,我要感谢我的父母,四年的寒窗苦有你们在背后默默地支持和鼓舞才使得我顺利地完成学业,父母无私的爱是我不畏艰难、昂首向前的不竭动力。我将用一生的时间去回报你们所付出的一切。

攻读学士学位期间参与的科研项目

[1] [2]

附录1:英文资料与翻译

Development and Design of a New Logistics Information Management

System

CHI Wenzong, WU Zhongyuan

Abstract

Along with the gradual maturity of distributed computing platform J2EE, J2EE has become the current mainstream enterprise application and development platform and J2EE/EJB technology makes system have a good technical foundation on expansibility, portability and flexibility. Against the background of a certain logistics management system development, an analysis and design of MVC design pattern under J2EE architecture is carried out in this paper. On business layer, the entity bean is encapsulated by session bean, which normalizes the client access, reduces the coupling between business layer and client end, centralizes security management and transaction control and improves the performance. Meanwhile, the value object is introduced into the system to encapsulate the interactive data between Web layer and business layer, which decreases the network overhead of the system.

Keywords: J2EE; logistics information; MVC design pattern

I. INTRODUCTION

In today's society of economic globalization, information has become the key factor in enterprise growth. The corresponding information processing

technologies also change quickly. The information technology level of enterprise has become an important symbol of enterprise with strong competitive power. Information technology has greatly improved the abilities of enterprise on information collecting, processing and publishing. And therefore, an enterprise wants to be in an unassailable position in the competitive information society, it must pay close attention to information technology development and apply advanced information technology. The analysis, design and implementation of a logistics management system based on J2EE/EJB are introduced in this paper.

II. OVERALL SYSTEM DESIGN

According to the design criterion of system and superiority of Web application, we divide the whole system into data layer, business logic layer and Web layer (control layer and presentation layer), which is absolutely in accord with MVC design mode (Model/View/Controller). Mode which meets the requirements is adopted to carry out subdivision disposal on each layer. The whole application system takes EJB and business logic layer of encapsulation system as core. When the system runs, Web layer doesn’t directly access to the system resources, database for example, it completes the access and operation to system resources (database) through the interaction of EJB. The modular structure chart of the whole system is grossly shown as Fig 1. The basic structure of software design is shown as Fig 2.

III. MODE DESIGN

This system adopts MVC design mode (Model/View/Controller). MVC is a typical software design mode. Under this design structure, an application is divided into three parts, namely Model, View and controller, each part is responsible for different function.

J2EE structure can be perfectly combined with MVC design mode and the concrete correspondences of MVC design mode to J2EE technology are as follows: JSP is corresponding to View, because the whole application system is interacted with the external mainly through JSP; Servlet is corresponding to controller and it is used as the intermediate hub between JSP and EJB; EJB is corresponding to model, it mainly deals with data services. The application framework of MVC design mode under J2EE structure is shown as Fig 3.

IV. DESIGN AND REALIZATION OF WEB LAYER

Actually, web layer includes two layer structures in MVC mode, namely View and Controller, which will be described respectively, because the structure of each function module in the system is grossly similar, plus space limits, we can not enumerate and explain all realizations one by one, and therefore, only some representative parts are listed in this paper. A. Design of view

For user access system, we put a login homepage (JSP or html page) at the first place as the initial contact point between client end user and the

system, user logins to access this page and the user login information is submitted, the system server receives login information, after the user's identity and password are verified, the user is allowed to enter into the system.

In the past, a page wanted to be connected to the next page, generally it was directly connected to the next page in JSP or html page by using , when an user accessed to the system, each page he accessed to, the page address would be shown on the address bar URL or the user single-clicked this page by right key of mouse, the address would also be shown, even, the address of the next page can be found out. In this way, it allowed the direct access of user. If the user remembered the

addresses of these pages, for some pages among these pages, he can directly access to it by inputting the URL address of this page without login, i.e. the user can entered into the system without login, and therefore the security of this system can not be ensured and the login verification mechanism we set lost its function completely. It’s undoubtedly unreasonable and insecure. On the client end, there are two modes to enter into the system, shown as Fig 4, among the two modes, mode 2 is what we desire.

For this problem, the solution of this system is that avoid using the mode to directly connect, we can transmit the name of the next page to the corresponding Servlet by parameter transmission mode and Servlet controls the jump and distribution of view. In this way, the

address of this page will not be shown on the address bar URL when user access to the page or when the user single-clicks this page by right key of mouse, the concrete page address will not be shown.

In fact, ISP is also a java type and Web container will convert it into a java type. View types (namely JSP page) in the middle of the system are listed in Table 1, some different departments use the same views. For example, both restaurant management department and warehouse management

department use the following views: historyplan.jsp, historyplangoods.jsp, totalgoods.jsp and submitbycategory.jsp. It’s because that these

departments carry out similar operations, which embodies the reusability of codes.

Table1 View Class in the System View name login.jsp unitset.jsp Goodsnameset.jsp Provideset.jsp Orderplanresult.jsp Purchasing management Buyplanresult.jsp Goods unit Function System landing interface modifying(increasing or deleting)interface and goods units need to be inputted and added by hand Dish supply setting interface Supplier setting interface which displays basic supplier information and manages suppliers(add,delete and modify) Purchase plan generating interface Purchase plan seeing interface,look over the goods needed to be bought in the purchasing plan and choose the purchasing mode:morning or afternoon through this interface Supply plan seeing interface,see the condition of Provlanresult.jsp goods which needed to be provided by suppliers in the purchasing plan Inputexecutetime.jsp Inputeviewtime.jsp Purchase transfer registration from generating interface Purchase transfer registration from seeing interface by departiment Historyplan.jsp Historical plan on some day of a certain department inquiry and result show Display all goods included in a class of a certain goods on the interface so that the department manager can choose a certain number of goods to form the restaurant or warehouse plan Plan summary interface,finally form the restaurant or warehouse plan on the day Transfer confirmation interface Reception confirmation interface Ex-warehouse confirmation interface Reception management interfce Supply ex-warehouse interface Inventory updating interface Submitbycategory.jsp Restautant management Totalgoods.jsp confirmDistribute.jsp confirmTake.jsp confirmFor.jsp Selectdep.jsp Warehouse management confirmIn.jsp refreshWarehouse.jsp B. Design of controller

According to related operation requests of users, controller mainly jumps to different views or transaction logic (call EJB). Due to reasons in the aspects of speed and maintainability, etc, the controller is generally realized by Servlet, i.e. Servlet provides the access points of user and manages the request processing, including call security services (authentication and authorization, commission business processing and suitable view selection management), etc. The following method is adopted in the design and realization of Servlet:

Firstly, we realize the user login module, which includes the extended subclass Login.java of login.jsp and Servlet, in login.jsp, use to appoint the request and response of this view, which are handled by Login.java, its handling process is described as follows: after the user logins from login.jsp view and passes the identity authentication, a session is generated by Login.java and the related information of the user will

be stored in the session; if the user password is wrong, directly jump to the error display interface and hint login again.

Secondly, if we want to realize the design in other logic control Servlet subclasses, we should carry out the following treatment: when responding to the corresponding JSP view requests, first judge if the session produced by Login.java exists, if the session exists, it shows that the user has passed the system authentication and it’s legal, and then continue to carry out the treatment; if it doesn’t exist, the view is relocated to login viewlogin.jsp and require login authentication.

The distribution of control view is an important function we must consider when we design Servlet, and therefore, view distribution control is absolutely necessary in various Servlet realizations.

V. DESIGN AND REALIZATION OF BUSINESS LAYER

This layer is Model class of MVC division as well as core layer of application program, which embodies and handles the core business logic and provides necessary interface services for Web layer components. Business components are always EJB components in EJB container. A. Thinking about EJB design

The system to be designed is a distributed component system, in such a multi-layer and distributed system, a remote call method needs to be used to send and receive data between layers. Therefore, EJB is used to realize the business layer.

We remove the interactive logic between client end and entity bean from the application client end, and then use a session Bean to encapsulate the entity Bean, the session Bean is taken as the exterior of entity Bean, finally realizes the session facade pattern (shown as Fig 5). This operation makes the modularity of program better. One main advantage of modular design is abstract and abstract components are carried out by defined interfaces. Therefore, any component can be replaced by a spare module. Although entity Bean provides remote interfaces for client server, it is not completely abstract, because it is closely associated with fields in a given database. Web layer is interacted with database through EJB layer. In such a case, Web components needs to call session Bean first and then session Bean calls one or more entity Beans.

B. Realization of EJB

According to the above analysis, in the system design, if each table in database is corresponding to an entity bean, it is not reasonable. Please note that generally, when we define an entity bean, we must see if it is an entity in the real world, if it’s only a correlation or satellite information, we can give consideration to its treatment in session bean.

According to requirements, the system mainly designs the following entity beans:

User: This entity bean is corresponding to T_User table in database; Unit: This entity bean is corresponding to T_Unit table in database;

Category: This entity bean is corresponding to T_Category table in database;

GoodsName: This entity bean is corresponding to T_GoodsName table in database;

Today: This entity bean is corresponding to T_Today table in database; Provider: This entity bean is corresponding to T_Provide table in database.

When we design session beans, generally a function module is corresponding to a session bean, considering code reuse, these conditions which have close relations and similar businesses between some modules are realized in the same session bean. When designing EJB, session beans adopt remote interfaces, it’s because that session beans are generally called by remote components (components not in the same Java virtual machine, such as JSP and Servlet).

However, entity beans are generally not called by Web components or other client layer components directly, so all interfaces of entity beans are designed as local interfaces,

which are directly called by session beans in EJB container. C. Value object class

The client end of J2EE application program needs to exchange data with enterprise bean (session bean and entity bean), i.e. the business components

of enterprise bean need to send back data to client end, or database stores data, and enterprise bean needs to obtain data on the client end when it runs.

We directly introduce the value object class to reduce the system overhead and encapsulate multiple data attributes needed to be transmitted between client end and enterprise bean so that the client end can fill multiple attribute values needed to be transmitted to enterprise bean into the value object class first and then transmit these attribute values to the enterprise bean; conversely, enterprise bean can also transmit the analysis, design and realized data based on J2EE/EJB flow management system to the client end in this manner, thereby realizing using one remote method to call multiple attributes and greatly reducing the network overhead of the system. Because he value object class is required to be transmitted between the client end and server end of distributed system, it must be serial Java object which can be serialized.

VI. DESIGN OF DATABASE

The design of database is one of important parts in the system and we choose the database system MicsoftSQLServer2000, which is a relational database management system. A. Conceptual model design

The detailed E-R diagram of database design is shown as Fig 6, Fig 6 only embodies the relations between analysis, design and realization of a part of important J2EE/EJB logistics management systems and it a sketch. The

number of each kind of table list in the system is not only one, with the passage of time, they will form their respective table list sets, and therefore, we need to increase the entity objects of each table list sets on the basis of original entity. B. Logic database design

The logic design of database, including the relation between tables, is the core of optimal relational database performance. A good logic database design can lay a good foundation for database and application program optimization.

The database design of this system adopts the third normal form standard combined with appropriately decreased normal form standard (namely denormalization to a certain degree) to handle various tables and choose appropriate normative standards according to concrete conditions. In this way, the whole database design allows appropriate redundancy, which not only improves the operation efficiency of database but also remains the flexibility of its data operation.

VII. TEST AND ANALYSIS OF SYSTEM PERFORMANCES

After the system development is finished, we test the system

performances. The test tool is IBM RPT (Rational Performance Tester). The test environment is as follows:

Hardware environment

Server end: Server: CPU IntelP4 2.4GHz, memory 1G, hard-disk space: 120G

Client end: Computer type above 586 Software environment

Server end: Microsoft Windows2000 Server, IBM WebSphere Application Server, Version 5.1, Microsoft SQLserver2000

Client end: Windows2000 Professional

Test results are shown as Table 2 and Table 3:

Table2 Run Summary Run Summary Completed user number Executed test Display computer results Active user number Total user number Elapsed time[H:M:S] Running state 15 Platform:/resource/ PlanteByWebSphereTest/ Schedule/PlanOrder.testSuite All hosts 0 15 0:06:50 Completed Table3 page response summary Page summary [operating]average response time of all pages[ms] [operating]the shortest response time of all pages[ms] [operating]the longest response time of all pages[ms] [operating]VP percentage of by-pass pages [operating]total VP percentage of by-pass pages Total page hit number Total page test number 9.862 30 5,707 100 83 83 83 VIII. CONCLUSION

The results of operation test show that the design and development of this system meet with users’ expected requirements and the system

performances obtain the satisfaction of the users. In realization, this system

design tries to manifest the separation of logic from business logic, which makes its realization more standard and improves efficiency and security. In addition, it is favorable to reuse, system maintenance and future extension. The logistics management system realized by using J2EE technology has various functions required by users and gets a relative high evaluation from users, and therefore the system development is successful.

REFERENCES

[1] Marcello Mariucci, Enterprise Application Server Development Environments, University of Stuttgart, 2000, 10

[2] Weiquan Zhao, David Kearney, Gianpaolo Gioiosa, Architectures for Web Based Applications, University of South Australia, 2002

[3] Ed Roman, Richard berg, The Technical Benefits of EJB and J2EE Technologies over COM+ and Windows DNA, 1999, 11

[4] Kwang Wu Lee, Dr.Padmanabhan Krishnan, Towards a Formal Framework for Enterprise Javabeans, 2001, 11

[5] Jens Uwe Pipka, Test-Driven Web Application Development in Java, 2002, 1

[6] Vera Peeters, Simple Design and Unit Testing with Enterprise JavaBeans: The Box Metapho, 2001

一种新的物流信息管理系统的开发与设计

池文忠,吴忠雁

摘要

伴随着J2EE分布式计算平台的逐渐成熟,J2EE已经成为目前主流的企业应用和开发平台。J2EE/EJB技术能使开发的系统在可扩展性、便携性和灵活性上有很好的技术基础。本文以某个物流管理系统为开发背景,提出了在J2EE体系下基于MVC设计模式的分析与设计。在业务层,实体类被封装在会话类,这使得用户请求的标准化,减少了用户端与业务层的耦合度,集中处理安全管理和事务控制,从而提高系统性能。同时,系统通过引入价值对象来封装网络层与业务层的交互数据,这将减少系统的网络费用。

关键词:J2EE,物流信息系统,MVC设计模式

1 前言

经济全球化使得信息技术成为企业增长的主导因素。相应的信息处理技术也在迅速的发展和改变。企业的信息技术水平已成为企业具有强大竞争力的重要标志,信息技术大大提高企业在信息收集、处理和运用的能力。因此,企业要想在竞争中立于不败之地,就必须密切关注信息技术的发展和采用先进的信息技术。本文基于J2EE/EJB技术对物流管理系统的分析、设计与实现进行探讨。

2 系统总体设计

根据系统的设计规范和网络应用的优越性,我们将整个系统分为数据层、业务逻辑层和网络层(控制层和表示层),这和MVC开发模式(模型/视图/控制层)不谋而合。在每一层,都将实现细节的处理功能,从而满足不同的需求。整个应用系统以EJB和封装的业务逻辑层为核心。系统运行时,网络层并不直接获取系统资源如数据库,而

是通过与EJB的交互获取系统资源。整个系统的模块结构图如图1所示。软件设计的基本架构如图2所示。

3 模式设计

该系统采用MVC设计模式。MVC是一个典型的软件设计模式,在该模式下,一个应用被划分为三个部分,即模型、视图和控制器,每一个部分负责不同的功能。

J2EE架构能与MVC设计模式完美整合,二者具体的对应关系如下:JSP相当于视图,因为整个系统与外界的交互是通过JSP实现的;Servlet相当于控制器,它相当于JSP与EJB之间的集线器和中转站;EJB相当于模型,主要用于处理数据。J2EE框架下,MVC设计模式的应用框架如图3所示。

4 网络层的设计与实现

事实上,网络层包括MVC设计模式下的两个部分:视图和控制器。二者本应分别详述,但由于二者有一定的相似性和空间,本文只列举出某些具有代表性的部分。 A 视图设计

为了用户访问系统,我们将用户登陆主页作为最初的客户端和系统的联系点。用户登录时访问该页,并将登录信息提交该系统,系统服务器接收登录信息。用户身份和密码通过验证后就可以进入该系统。

在过去,一个页面想与另外一个页面建立联系,通常是在JSP或Html页面嵌入,当一个用户进入该系统,他所访问的每一页的地址都将在浏览器的地址栏里显示,或者用户鼠标右击该链接,地址也将出现,有时甚至下一页面的地址也能被发现。在这种情况下,该系统允许直接访问用户信息。如果用户记住这些页面的地址,他就可以不经过登陆,而是通过在地址栏输入页面地址直接进入系统,因而系统的安全性并未得到保证,而且系统的验证机制将彻底失去它的功能。这无

疑是不合理的也是不安全的。在客户端,存在两种进入系统的模式,如图4所示,其中,第二种模式是我们期望的。

对于该问题,系统的解决办法是避免应用形如的直接链接,而是通过参数传递模式将下页的名字传递给Servlet,Servlet控制视图的跳转和发送。在这种方式下,具体的页面地址不会出现在地址栏中。

实际上,JSP也是一种java类型,网页容器将它转换成为java类型。系统中的视图类型(即JSP页面)列表如下,一些不同的部门利用相同的视图,例如,食堂管理部门和仓库管理部门都将利用下面的几个视图historyplan.jsp,

historyplangoods.jsp, totalgoods.jsp and submitbycategory.jsp. 理由是这些部门从事相似的操作,这些是代码重用性的具体表现。

Table1 View Class in the System View name login.jsp unitset.jsp Goodsnameset.jsp Provideset.jsp Orderplanresult.jsp Purchasing management Buyplanresult.jsp Goods unit Function System landing interface modifying(increasing or deleting)interface and goods units need to be inputted and added by hand Dish supply setting interface Supplier setting interface which displays basic supplier information and manages suppliers(add,delete and modify) Purchase plan generating interface Purchase plan seeing interface,look over the goods needed to be bought in the purchasing plan and choose the purchasing mode:morning or afternoon through this interface Supply plan seeing interface,see the condition of Provlanresult.jsp goods which needed to be provided by suppliers in the purchasing plan Inputexecutetime.jsp Inputeviewtime.jsp Restautant management Historyplan.jsp Purchase transfer registration from generating interface Purchase transfer registration from seeing interface by departiment Historical plan on some day of a certain department inquiry and result show Display all goods included in a class of a certain Submitbycategory.jsp goods on the interface so that the department manager can choose a certain number of goods to form the restaurant or warehouse plan Totalgoods.jsp confirmDistribute.jsp confirmTake.jsp confirmFor.jsp Selectdep.jsp Warehouse management confirmIn.jsp refreshWarehouse.jsp Plan summary interface,finally form the restaurant or warehouse plan on the day Transfer confirmation interface Reception confirmation interface Ex-warehouse confirmation interface Reception management interfce Supply ex-warehouse interface Inventory updating interface B 控制器设计

根据用户的相关操作请求,控制器主要跳转到不同的视图或业务逻辑(即EJB)。鉴于速度和可维护性方面的原因,控制器一般通过Servlet来实现,例如,Servlet提供了用户访问系统的连接点和管理请求处理,包括请求安全服务(鉴定和批准,委托业务处理和相应的视图选择管理)等。在servlet的设计与实现中,下面的方法将被采用:

首先,将实现用户登陆模块,这包括login.jsp和Servlet的扩展子类Login.java。在login.jsp中,用指定该视图的请求和应答,其中请求和应答由login.java处理,具体的处理过程如下:用户从login.jsp视图中登陆并通过身份验证,一个会话进程将产生,用户的信息将被存储在会话中;如果用户密码错误,将直接跳转到错误提示窗口提示再次登陆。

接着,如果想实现其他逻辑控制Servlet子类的设计,我们应进行下面的处理:当对相应的JSP视图请求应答时,首先判断由Login.java生成的会话是否存在,如果存在则表明用户通过了系统的验证并且该会话是合法的,接着继续处理;如果不存在,该视图将被重新定位到viewlogin.jsp页面并且需要登陆验证。

设计Servlet时,控制视图的分发是我们必须考虑的很重要的功能。因此,在各种各种的Servlet实现中,视图分发控制绝对是必须的。

5 业务层的设计与控制

该层是MVC设计模式的模型类,是应用程序的核心层,它包含并处理核心业务逻辑,而且为网络层组件提供必要的接口服务。业务组件在EJB容器中一般式EJB组件。

A 考虑EJB设计

要设计的系统显然是一个分布式系统,在这样一个多层次的分布式系统中,用来发送和接收层间数据的远程调用方法是必须的。

我们将客户与实体类间的交互逻辑从应用程序的客户端分离,然后用一个会话类封装实体类,该会话类可看作是实体类的外层,最后实现会话正面模式,如图5。这将使得程序更具有模块性。标准化设计的主要优点是抽象,抽象的组件通过定义的接口来表达。因此,任意一个组件都能被共享的模块来替代。尽管实体类为客户服务器提供了远程接口,但并非是彻底抽象的,因为它和给定的数据库域密切相关。网络层通过EJB层与数据库交互。这样,网络层组件首先需要调用会话类,然后会话类调用一个或多个实体类。 B EJB的实现

根据上述的分析,在系统设计阶段,如果数据库中的每个表与实体类对应,那将是不合理的。当我们设计一个实体类时,我们必须判断该类在现实世界中是否是一个实体,如果它仅仅是相关或附属的信息,我们可以考虑在会话类中处理它。

根据需求,该系统主要设计了以下实体类: 用户:该实体类与数据库中的T_User表相对应; 单位:该实体类与数据库中的T_Unit表相对应; 类别:该实体类与数据库中的T_Category表相对应; 货物名称:该实体类与数据库中的T_GoodsName表相对应;

今天:该实体类与数据库中的T_Today表相对应; 供应商:该实体类与数据库中的T_Provider表相对应。

设计会话类时,通常一个功能模块对应一个会话类,考虑到代码的重用性,具有密切关系和相似业务的不同模块,通常在同一个会话类中实现。当设计EJB时,会话类采用远程接口,这是因为会话类一般称为远程组件(不在相同的java虚拟机上的组件,如JSP和Servlet)。然而,实体类并非直接被叫做网络组件或其他的客户层组件,因此所有的实体类接口将设计成本地的接口,该接口被直接称作EJB容器中的会话类。 C 价值对象类

J2EE应用程序的客户端需要与企业级类(会话类和实体类)交换数据,例如企业级类的业务组件需要返回数据给客户端,或者数据库存储数据,并且当系统运行时,企业级类需要接收来自客户端的数据。

为了减少系统流量和封装客户端与企业级类之间传递的数据,我们引入了加之对象类。这样,客户端首先将多样的属性值填充在价值对象类中,然后将这些属性值传递给企业级类;相反,企业类也能将基于J2EE/EJB数据流管理系统的分析、设计和实现的数据以相同的方式传递给客户端,从而实现了仅用一个远程方法去调用多个属性,这将大大减少系统的网络费用。由于该价值对象类需要在分布式系统的客户端和服务器端传递,因此它必须是连续的java对象。

6 数据库设计

数据库设计是系统设计的很重要的一部分,我们选择关系型数据库管理系统Microsoft SQL Server2000作为数据库管理系统。 A 概念模型设计

系统数据库设计的详细E-R图如图6所示,图6只是一个略图,其中仅包含了部分关系。每种表的数目不仅仅是一个,随着时间的推移,他们将形成各自的列表集合,因此,需要基于原始实体增加每个列表集合的实体对象。 B 逻辑数据库设计

数据库的逻辑设计是最优的关系型数据库性能的核心,其中包括表之间的关系。好的数据库逻辑设计能为优化数据库和系统打下良好的基础。本系统的数据库设计采用第三种范式和适当的反向规格化标准针对具体的情况,处理各种各样的数据表,这样不仅可以提高数据库的操作效率同时保留了数据操作的灵活性。

7 系统性能的测试和分析

开发完系统后,接下来需要测试系统的性能。测试工具是IBM RPT(Rational Performance Tester)。测试环境如下:

硬件环境

服务器端:服务器:CPU IntelP4 2.4GHz,内存1G;硬盘:120G 客户端:586以上的计算机类型 软件环境

服务器端:Microsoft Windows2000 Server;IBM WebSphere Application Server, Version 5.1;Microsoft SQLserver2000

客户端:Windows2000 Professional 测试结果如表2和表3所示。

Table2 Run Summary Run Summary Completed user number Executed test Display computer results 15 Platform:/resource/ PlanteByWebSphereTest/ Schedule/PlanOrder.testSuite All hosts Active user number Total user number Elapsed time[H:M:S] Running state 0 15 0:06:50 Completed Table3 page response summary Page summary [operating]average response time of all pages[ms] [operating]the shortest response time of all pages[ms] [operating]the longest response time of all pages[ms] [operating]VP percentage of by-pass pages [operating]total VP percentage of by-pass pages Total page hit number Total page test number 9.862 30 5,707 100 83 83 83 8 结论

运行测试结果显示系统的设计和开发能满足用户的期望需求,系统的性能得到了用户的满意。在实现时,该系统尽量使显示从业务逻辑中分离,这将使得实现更具标准化和提高系统效率和安全性。此外,还将有利于重用,系统维护和未来的扩展。运用J2EE实现的物流管理系统具有用户所需的各种功能并得到了用户相对较高的评价,因此该系统开发是成功的。

参考文献

[1] Marcello Mariucci, Enterprise Application Server Development Environments, University of Stuttgart, 2000, 10

[2] Weiquan Zhao, David Kearney, Gianpaolo Gioiosa, Architectures for Web Based Applications, University of South Australia, 2002

[3] Ed Roman, Richard berg, The Technical Benefits of EJB and J2EE Technologies over COM+ and Windows DNA, 1999, 11

[4] Kwang Wu Lee, Dr.Padmanabhan Krishnan, Towards a Formal Framework for Enterprise Javabeans, 2001, 11

[5] Jens Uwe Pipka, Test-Driven Web Application Development in Java, 2002, 1

[6] Vera Peeters, Simple Design and Unit Testing with Enterprise JavaBeans: The Box Metapho, 2001

附录2:主要JavaBean及Java类代码

Link_db.java

package useBean; import java.sql.*; public class Link_db{

private static Connection con=null; private Statement state=null; private ResultSet rs=null; public void init(Connection con){ }

public void close(){ }

public int select(String sql){

int k=-10;

this.init(Link_db.getCon()); try{

k=0;

rs=state.executeQuery(sql); if(rs.next()){ try{ } try{ } try{ }

if(con!=null){ }

con.close(); state=null; if(state!=null){ }

state.close(); state=null; if (rs !=null){ }

rs.close(); rs=null;

try{

}catch(Exception e){ }

}catch(Exception e){

}catch(Exception e){

}catch(Exception e){

}

}

}

}

k=k+1;

}catch(Exception e){

k=-1; this.close();

this.close(); return k;

public int update(String sql){ }

public static synchronized Connection getCon(){ }

public String chStr(String str){ }

if(str==null){ } return str;

str=\"\"; try{ }

str=(new String(str.getBytes(\"iso-8859-1\"),\"GB2312\")).trim(); }catch(Exception e){ }else{ try{ } return con;

con=DriverManager.getConnection(\"jdbc:odbc:express\}catch(Exception e){ int k=-10;

this.init(Link_db.getCon()); try{ }

this.close(); return k;

k=0;

k=state.executeUpdate(sql); k=-1;

}catch(Exception e){

Usetime.java

package useBean; import java.text.*; import java.util.*; public class Usetime{

public String getddTime(){

Date currentDate; // Used to get date to display String now; // String to hold date displayed

SimpleDateFormat formatter; // Formats the date displayed

formatter = new SimpleDateFormat (\"yyyy/MM/dd/\ currentDate = new Date();

now = formatter.format(currentDate);

}

public String getssTime(){

SimpleDateFormat formatter; // Formats the date displayed Date currentDate; // Used to get date to display String now; // String to hold date displayed

return now;

Formatter = new SimpleDateFormat (\"yyyy/MM/dd/ HH:mm:ss\ currentDate = new Date();

now = formatter.format(currentDate);

}

public String gethhTime(){

Date currentDate; // Used to get date to display String now; // String to hold date displayed

return now;

SimpleDateFormat formatter; // Formats the date displayed

formatter = new SimpleDateFormat (\"HH:mm:ss\ currentDate = new Date();

now = formatter.format(currentDate); }

}

return now;

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务