《软件工程》课件第14章 软件开发实战_第1页
《软件工程》课件第14章 软件开发实战_第2页
《软件工程》课件第14章 软件开发实战_第3页
《软件工程》课件第14章 软件开发实战_第4页
《软件工程》课件第14章 软件开发实战_第5页
已阅读5页,还剩43页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十四章软件开发实战—物流网络管理系统设计与实现14.1概述14.2系统分析14.3总体设计14.4详细设计14.5系统实现14.6系统测试14.1概述物流作为一种现代流通方式在世界范围内受到广泛重视,并获得迅速发展。我国自20世纪70年代末引入物流概念以来,随着改革开放的深入,经济增长方式的转变,各级政府、产业界和理论界高度重视并切实推进现代物流发展,促进商品及各种要素的高效流动和配置优化。当然,在我国受到经济转型和经济发展总体水平的影响,现代物流的理论研究和实践运作与国际先进水平相比存在较大差距,现代物流研究任重道远。随着国内信息化步伐的加快,加之物流企业对行业信息的需求越来越大,促使物流信息网迅速发展。物流信息网信息的及时性、准确性正好符合国内物流企业对行业信息的要求,它已经成为国内物流企业信息的主要来源。物流信息网为各类物流企业提供了浏览、查询物流行业信息、供求信息等,帮助企业更多的了解行业的动态信息,提高企业的运营效率。通过物流信息网企业能够更及时调整企业的发展趋势以适应市场的变化,同时在不同程度上减少成本,以便更好地提高物流企业的效率和效益,来满足现代经济发展的需要。以现代管理的要求和全球经济的发展来看,一个物流企业要在竞争激烈的市场中站稳脚跟并时刻掌握制胜先机,实施一个有效的信息系统是十分必要的,大量的成功实力已经表明,物流信息系统的应用可为传统的运输企业带来实效;降低空载率;提高对在途车辆的监控能力,有效保障货物安全;网上货运信息发布及网上下单,增加商业机会;无时空限制的客户查询功能,有效地满足客户对货物在运情况的跟踪监控,提高业务量;对各种自愿的合理综合利用,降低运营成本。对传统仓储企业带来的实效表现在:提高配送能力和发货准确性;减少库存和短缺消耗;可降低劳动力成本,提高仓库空间利用率,提高生产率。如今在物流领域大量运用了信息技术,信息技术对物流的发展起着重要的推动作用。了解信息管理技术,使用计算机来管理物流信息对于更好的发展物流是很有必要的。物流信息系统是指把物流和物流信息结合成一个有机的系统,用各种方式选择收集输入物流设计、业务统计的各种有关数据,经过有针对性、有目的的计算机处理,输出对管理工作有用的信息的一种系统。它是由人员、设备和程序组成,为物流管理者执行计划、实施、控制等只能提供相关信息的交互系统。现代物流和信息技术的发展促进了物流信息系统的发展,而物流信息系统反过来对现代物流的发展起到了举足轻重的作用。物流信息是与物流活动有关的必要信息,用该物流网络管理系统管理信息与其他方式管理信息比较起来有如下的特征:

(1)方便管理大量的信息物流信息是随着商品交易信息的发生而大量产生的。在市场经济发展迅速的今天,使物流信息有自动地大量产生的趋势。而大量的信息管理在计算机的辅助下,比以往传统管理信息的方式更加方便、快捷与安全。利用该系统的数据库技术,能够大量的管理与日俱增的信息,并能够安全长期的保存信息,为物流企业的发展与管理提供可参考的数据依据。

(2)为管理更新速度快的物流信息找到了新方法物流信息更新速度快。多运输少量生产、多频度小数量配送似的各种作业活动频繁发生,从而要求物流信息不断更新,而且更新的速度越来越快。这样,运用信息管理系统不仅能够方便的管理,而且还在一定的程度上节省了人力物力。 (3)为来源多样化的物流信息提供了一个平台物流信息不仅包括企业内部的物流信息,而且包括企业外的物流信息和与物流活动有关的基础设施的信息。企业竞争优势的体现需要各供应链与企业之间相互协调合作。协调合作的手段无疑是信息交换和共享。该物流网络管理系统便给广大的供应链提供了一个交流的平台,成功的使得信息得到了交换与共享,在一定程度上起到了协调、促进物流业发展的作用。

(4)物流网络系统的网络构造物流信息和商品交易信息在企业内、企业间进行着广泛的处理。到目前为止,在许多与交易相关的若干企业建立了企业间的物流信息系统。但是,在具有数个交易对象的情况下,每一个交易企业设置了信息交换中心,数据的交换比较麻烦。而物流网络信息管理系统就像是一个信息交易市场,各大企业把自己的信息摆在这个系统里等待符合条件的企业来交易。在这里,系统制定了数据交换的标准,并在一些行业按照标准进行处理。14.2系统分析该物流网络管理系统是根据物流业务的基本功能及特点开发而成的一个基于B/S系统,大体上是由前台模块和后台模块构成的。前台功能不仅能够使得用户会员方便的管理自己的信息,也可以快速获取其他用户的信息,促进物流业的发展。而后台管理只有管理该系统的工作人员才有权利进入,主要负责审核信息的安全性,以提供给用户安全的信息,还负责发布物流相关公告与知识,来方便用户会员进行业务交易。整个系统承担的主要工作是:在客户端,实现信息的反馈与查询;在服务器端主要实现信息的发布、更新,负责审核用户发布信息的安全性。工作负荷不算大,但可能需要一段时间来审核信息,造成信息的更新与反馈不及时。该物流网络管理系统主要实现的是企业物流信息的录入、发布与更新。因此,不管对物流企业发展自己的业务或是物流公司获取最新的物流信息以及各个物流业务之间的紧密衔接关系,物流的数据必须具有高度的完整性和准确性,这就要求系统的高度安全性、可维护性、可靠性及灵活性。比如货物或者车辆信息管理,用户在录入信息时候或者数据读出数据库的时候出现异常而产生差错,可能会影响其他企业的物流业务,耽误时间,可能造成不必要的损失或不可挽回的严重失误,这就要求系统具有高度的安全性、可维护行、可靠性和灵活性,要求系统要具有强大的功能以适应不痛层次的用户的不同的需求。另外,系统的操作界面要简便、通俗、富有人性化,以便于用户及管理人员的操作。系统的功能需求如下所述:(1)任何一个网络用户都可以注册成为该系统的固定用户,注册时需要输入基本注册信息,以后还可以修改个人的基本信息,注销会员信息功能只有管理员才能完成。(2)任何用户都可以无条件浏览其他会员发布的货物、车辆信息以及管理员发布的信息公告。但是要自己发布信息就要先注册成会员。修改删除信息的功能只有发布该信息的会员才能执行。(3)只允许系统规定的信息管理员来添加和修改系统公告;所有现实在客户端的信息都必须先经过信息管理员的审核;信息管理员可以查询该系统的所有注册的会员信息,也可以修改删除会员资料。(4)只有已经注册的会员才能受理接受其他会员发布的车辆或货物信息。14.3总体设计1.系统框图根据上述系统需求分析,设计系统功能框图,如下图所示:图14-1系统功能框图2.系统开发环境该系统采用B/S模式,以Eclipse+MyEclipse7.0为前台开发工具,以微软公司的MicrosoftSQLServer2000为后台数据库服务器,在安装了JDK1.5.08和Tomcat6.0的WindowsXP系统下开发而成。14.4详细设计1.数据库设计根据前面功能模块设计可知,此物流网络管理系统的服务对象有两类,即管理员和注册用户。由于管理员和注册用户对此系统的操作的权限有很大差别,在系统中要分别记录他们的数据信息,因此首先需要如下两个数据实体。管理员数据实体:记录管理员的用户名和密码,这是管理员登陆系统时所必须的。注册用户数据实体:包括会员名、密码、电子邮件、电话等等,这些信息由用户自己进行维护,管理员和其他会员可以根据这些信息来了解该用户。物流网络管理系统,物流信息数据自然是最为重要的。这些信息都是由已注册为会员的用户发布的,主要包括企业信息、车辆信息和货物信息。该系统的会员注册与会员所发布的信息由于要在后台审核之后才能发布,而在前台查询的信息是通过用户表、车辆信息、货物信息与企业信息表实现的。所以需要多设置出四个拥有同样字段的数据表来存放刚刚发布或修改的未经后台审核的信息提供给后台管理员使用,等后台处理完之后会自动在前台调用的数据表中完成添加或修改工作。对于物流管理系统,物流相关方面的知识和系统公告是由系统的管理员负责发布的,这就需要如下两个数据实体。网站公告信息实体:包括公告标题、公告内容、公告日期。物流知识实体:包括文章标题、文章主题、作者和日期。这样,用户就可以通过网站上的信息及公告,快速的掌握最近的物流情况,帮助物流公司更快更准地抓住商机。本系统数据库采用SQLServer2000数据库服务器管理数据,系统的数据库名为WuLiu_DB。以下图14-2和图14-3即为该数据库表的部分实体图及E-R图。图14-2管理员实体图图14-3物流网络管理系统E-R图2.页面设计为网站设计一个友好的界面可以大大地提高人们对它的喜爱程度和用户的“回头率”。对于商务服务性网站来说,漂亮、友好、人性化的界面是十分重要的。根据前面的模块功能分析,此系统的界面设计主要分为两个部分:前台用户界面和后台管理界面。前台用户界面主要是针对用户进行网上浏览物流货物或车辆信息、发布信息的,是物流网络面向外界的功能,因此要满足用户使用的基本要求,需要包括用户注册、用户登陆、用户在线发布信息及浏览几个部分的界面设计。后台管理主要是针对管理员管理系统的,因此包括管理员登陆、会员信息管理、车辆与货物信息管理及公告发布几个部分的界面设计。(1)系统主界面在浏览该系统时首先展现在用户眼前的便是如图14-4所示的界面。该界面简洁、直观。上方提供了进入各个功能页面的连接,左侧提供会员登陆的区域,主要部分显示最新发布的货物信息、车辆信息及网络公告,管理员的登陆可以通过页面下方的链接进入。图14-4系统主界面(2)用户注册界面用户需要注册后才能在此网络系统上发布自己的信息和与其他会员进行交易,因此需要设计一个操作简单方便的会员注册页面。用户在注册页面内输入的个人信息要添加到数据库的会员表(db_Customer)中,根据该表的字段信息,可知注册界面中需要输入的用户信息包括:登陆用户名、密码、确认密码(保证用户两次输入的密码一样)、电子邮箱、性别、电话、找密问题和找密答案,其中用户名、密码、确认密码及电子邮箱是必填项目。在完成注册后,添加到会员附表中,该信息要先经由后台管理员的审核,审核通过后该用户便成为正式会员,同时会员的信息添加到数据库的会员表中。用户注册界面如图14-5所示。图14-5用户注册界面(3)信息发布界面在该系统中,有很多功能是和信息发布有关的。如会员添加货物信息、车辆信息,管理员添加系统公告等都是一种设计方法,都是根据系统库所涉及的信息数据表设置添加的项目(同用户注册页面),这里就不具体描述了,如果用户没有登陆,则不能添加跳转到登陆页面;添加成功后将信息添加到数据库中的信息附表中,同样要经过后台工作人员的审核,审核成功才能正式添加到信息表中,提供给前台浏览。图14-6所示是货物信息添加的界面。图14-6货物信息发布界面(4)信息修改页面用户在完成信息发布后,如果该信息有变动,会员可以对自己所发布的信息进行修改与删除。这里同样以货物信息处理为例,如图14-7所示会员可以查看所有以本人发布的信息,通过修改与删除链接可进行相应的操作,删除功能可直接点击<删除>执行,而点击<修改>进入修改界面将列出所有添加项及原有添加内容提供给会员修改,提交修改后,同样需要后台审核,而发布日期将自动改成修改完毕的日期,信息将在响应的数据表中得到更改。如图14-8所示货物信息修改界面。图14-7货物信息查看界面图14-8货物信息修改界面(5)信息查询界面该系统属于信息管理系统,当然离不开信息的查询功能。为了使用户及管理员查询出最为详细的信息,查询字段的选择是非常重要的。这里以货物信息查询页面的设计为例说明,查询的字段要和货物这个实体有着密切的联系。根据数据表中的字段信息,我们把货物类型、数量、起始和抵达地点、运输类型和运输时间作为查询字段。查询结果显示在本页面查询信息下放,采取分页显示信息结果,节省的页面的占用面积,同时也便于浏览者浏览。效果如图14-9所示。图14-9货物信息查询界面(6)后台信息审核界面为了提供给浏览者最为安全可靠的信息,避免无关信息出现在该系统平台上,本系统提供了信息审核功能。该审核工作由后台工作人员负责,只有工作人员登陆后台才能进行操作。审核所调用的数据表是附表,工作人员要对会员信息、企业信息、货物信息和车辆信息进行审核,所以审核工作分为四大类,在审核完毕后直接在前台调用的会员表与信息表中进行修改。在审核的时候将刚刚发布的信息以列表形式展现给管理员,以会员信息为例(如图14-10所示),通过点击详情即可决定该信息是否可以通过。该界面便于管理员查看信息,并且操作简单,如图14-11所示。图14-10后台会员信息查看界面图14-11会员信息审核界面14.5系统实现1.JavaBean的编写JavaBean在整个系统开发模式中处于数据库与页面之间,负责数据的处理。在系统分析结束后,接下来的任务是根据系统的需求编写所需要的JavaBean。数据库操作的JavaBean是一个公共类,通常包括连接数据库的方法getConnection,执行插入、删除与更新操作的方法executeUpdate、执行查询语句的方法executeQuery、关闭数据库连接的方法close。本例中使用的是JDBC_ODBC方式访问数据库,使用Eclipse+SQL2000的软件环境编写访问数据库的程序,先要下载安装三个java连接sql驱动文件(msbase.jar、mssqlserver.jar、msutil.jar)。下面详细介绍如何编写物流网络信息系统中的数据库操作的JavaBean“DatabaseBean.java”

文件,代码如下:……

变量定义(略)publicDatabaseBean(){Class.forName(driverName).newInstance();//正式加载SQLServer2000JDBC的驱动ConnectiondbConn=DriverManager.getConnection(dbURL,user,password);//在操作数据库之前,要先获得与数据库的一个连接

stmt=dbConn.createStatement();//用于执行静态SQL语句并返回它所生成结果的对象}//创建执行更新操作的方法executeUpdata()public

booleanexecuteUpdata(Stringsql){

try { stmt.executeUpdate(sql);

return

true;}catch(SQLExceptione) {e.printStackTrace(); con.close();

return

false;}}//创建执行查询语句的方法executeQuery()publicResultSetexecuteQuery(Stringsql){try{rs=stmt.executeQuery(sql);

returnrs;}catch(SQLExceptione){e.printStackTrace(); con.close();return

null;}}2.货物信息发布功能实现

(1)实现信息插入功能servlet文件中的doGet()方法中添加如下代码,作用是查找出该发布人是否已登录或该发布人的公司以便在下面的doPost()方法中添加到数据表当中去。StringName=(String)request.getSession().getAttribute("username"); StringPassword=(String)request.getSession().getAttribute("paw"); Stringsql="select*fromdb_CusmtoerwhereName='"+Name+"'andPassword='"+Password+"'";

if(Name==null) { request.getRequestDispatcher("/WuLiu/user/LogIn.jsp").forward(request,response);//如果发布人没有登陆跳转到登陆页面

}else { DatabaseBeandatabase=null;

try{ StringEnterprise=database.executeQuery(sql).getString("Enterprise"); request.getSession().setAttribute("EName",Enterprise); } }(2)实现信息插入功能servlet文件的doPost()方法的相关代码,实现信息的插入:if(Phone.matches("(^[0-9]{3,4}[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$")){……读取添加数据略java.sql.Dateissuedate=newjava.sql.Date(date.getYear(),date.getMonth(),date.getDate());//读取当前日期StringEName=(String)request.getSession().getAttribute("EName");Stringsql="insertintodb_GoodsMeg(GoodsStyle,GoodsName,GoodsNumber,GoodsUnit,StartOmit,StartCity,EndOmit,EndCity,Style,TransportTime,Phone,State,Link,IssueDate,Remark,Request,UserName,Enterprise)values('"+GoodsStyle+"','"+GoodsName+"','"+GoodsNum+"','"+GoodsUnit+"','"+StartOmit+"','"+StartCity+"','"+EndOmit+"','"+EndCity+"','"+Style+"','"+TransportTime+"','"+Phone+"','"+State+"','"+Link+"','"+issuedate+"','"+Remark+"','"+Request+"','"+Name+"','"+EName+"')";DatabaseBeandatabase=null;

try{if(database.executeUpdata(sql)) {request.getRequestDispatcher("/WuLiu/user/Success.jsp").forward(request,response);database.closeCon();}}}else{{request.getRequestDispatcher("/WuLiu/user/Wrong.jsp").forward(request,response);}(3)程序流程图如下所示:图14.12物流信息添加功能程序流程图3.显示信息分页

(1)相关代码:DatabaseBeandatabase=newDatabaseBean();Stringsql="select*fromdb_GoodsMeg";ResultSetrs=database.executeQuery(sql);rs.last();intRowCount=rs.getRow();intPageCount=(intRowCount+intPageSize-1)/intPageSize;if(intPage>intPageCount)intPage=intPageCount;if(intPageCount>0){rs.absolute((int1)*intPageSize+1);i=0;while(i<intPageSize&&!rs.isAfterLast()){Stringstr=rs.getString("GoodsName")+rs.getString("GoodsNum")+rs.getString("GoodsUnit")+rs.getString("StartCity")+rs.getString("EndCity")+rs.getString(Style")+rs.getString("State")+rs.getString("TransportTime");rs.next();i++;}(2)程序流程图如下所示:图14.13显示信息程序流程图14.6系统测试由于物流管理系统软件产品已经开发完毕,第三方测试的目的或是对软件系统进行验收测试,或是为了提高软件产品的稳定性和可靠性,增强软件的适用性,通过测试及时发现软件的缺陷和限制,以提供软件的适用能力和一致性。测试用例管理的工作流程如图14-14所示,测试人员首先编写和修订测试用例,并将测试用例加入到测试任务中生成测试执行文档,测试人员阅读测试执行文档并在执行文档中输入测试结果,所有测试执行文档执行完成后,测试任务可以被关闭。需要注意的是,一个测试用例必须在进入到一个测试任务中才能输入测试执行结果。图14-14测试用例执行流程1.测试环境与方式客户机操作系统:WindowsXP服务器操作系统:WindowsXP数据库服务系统:SQLServer2000(安装SP4补丁)浏览器:IE6.0该系统先是通过单元测试,然后进行集成测试。在单元测试过程中是使用以界面为基础的测试。以界面为基础的测试仅仅依靠软件与其运行环境之间的界面来选择和产生测试数据,而不管软件的具体需求和具体实现细节。包括软件输入,输出数据的类型取值范围以及取值的概率分布等等。单元测试的手段及思路:在对模块测试的阶段,主要根据白盒测试的思路进行测试,根据程序的编写来编写测试用例,大致分为一下几种方向:①对局部数据结构的检测在检测中对本该输入日期型或数值型数据的地方输入字符型数据,以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论