经销商库存管理想看供应商的库存信息怎么通过.net实现就是引用web服务,让经销

我有一个数据库,很多应用程序需要访问,由于安全的因素不想让别的应用程序直接访问我的数据库,我想自己做一个web&service别的人需要访问我的数据库的话,就直接调用我的web&service来操作,由我的web&service来操作数据库(一些插入、删除、查询等等)
我在一个asp.net的工程里面创建了一个web&service,用来操作我的数据库,但是人家怎么调用,我创建的wen&service放到什么地方,比如像一些asp.net、delphi才能调用?怎么调用?
回复讨论(解决方案)
装了MSDN帮助吗?
ms-help://MS.MSDNQTR.2003FEB.2052/vbcon/html/vbconWindowsFormsWebServices.htm
不管是用ASP.NET还是Winform做客户端调用Web&Service,都是在VS.NET中通过&“添加引用”&来完成的,添加引用的时候会让你指定Web&Service所在的URL,然后指定调用哪个Web&Service,然后就会下载WSDL文件生成代理类,这样你在写客户端程序的时候就像调用本地代码一样,只是代理类中并不存在实际代码,实际代码在你的Web&Service里面。
但是这个web&service本来就是用vs.net做的,所以在vs.net里面调用应该比较方便,但是如果客户端是delphi...这些怎么调用?这些工具里面有这些功能吗?
使用Web服务
我们创建了Web服务,别的网站如何使用这个Web服务。为了方便起见,我们把使用Web服务的客户网站叫做“消费者”,把提供Web服务网站就“生产者”。最本质的东西就是消费者必须知道要调用生产者的什么方法。如果需要参数的话,这些参数必须转换成XML格式进行传入,消费者向生产者发送HTTP请求,并指明要调用的方法和参数,参数可以是通过QueryString形式的SOAP请求或者是以POST的请求头的形式进行传递。
生产者收到发送过来的请求后,对输入参数进行解包,并调用指定类的适当的方法。如果调用完成,就把结果返回,进行打包,然后发送回消费者。消费者收到响应结果,进行解包,就完成了Web服务的调用。
很明显,其实我们在使用Web服务时一点也不用担心发送的HTTP信息的语义,为了达到这样的目的,我们可以使用一个叫做Proxy的类,Proxy的作用是充当消费者应用程序或Web页面和生产者实际Web服务之间的中间过程。对生产者Web服务的每一个方法来说,同时也在Proxy类里有一个相同的方法,Proxy的职责就是处理所有传送的复杂消息,这种复杂性在Proxy类里被隐藏起来的,我们只需要简单地调用该类的方法即可,不必关心语义的事情。
此时你也许很迷惑,但这种迷惑也是可以理解的,这本身就是一个很令人迷惑的话题。要理解的最基本的事情就是:当调用Web服务时消费者和生产者之间的HTTP通信可能是复杂的,而且可能会需要编写不少的代码。我们更愿意看到的是,使用Web服务的页面调用Web服务时就象使用一个本地的组件一样方便,为了实现这一目标,我们使用Proxy类,它的公用接口与Web服务的方法相对应。如果你此时还感到迷惑的话,请看看这个演示文档/code/ConsumeWS.ppt,它将向你解释如何使用Web服务。
利用Visual&Studio&.NET创建Proxy类
在Visual&Studio&.NET里创建Web服务使用的Proxy类是件轻而易举的事情,在ASP.NET&Web项目里,在“引用”上单击右键,选择“添加Web引用”,这时会弹出一个对话框,要你输入一个URL地址,请输入/ws/ASPFAQs.asmx,然后你就会看到这个Web服务的描述(就象你在Web浏览器里直接看到的那样),最后单击“添加引用”按钮,Visual&Studio&.NET会自动为你创建一个Proxy类,并且进行编译。当你把它添加进你的工程里时,Proxy类的名称空间可能就是你的网站地址,比如:com.4guysfromrolla.aspnet,当然你还可以任意改成其他的任何名字。从你的Web页面里通过Proxy类调用Web服务就象你使用本地组件进行调用一样方便。假设你想显示ASP.NET类别(category&ID为22)FAQS的列表,我们可以通过调用Web服务的GetFAQsInCategory方法,在参数里传入22,并把返回的DataSet绑定到一个DataGrid,代码可能象如下的写法那样:
'.aspx&页面中的其他HTML内容......
&asp:datagrid&id=&dgCategoryFAQs&&runat=&server&&/&
Private&Sub&Page_Load(sender&as&Object,&e&as&EventArgs)
&&'创建Proxy类的实例
&&Dim&consumeWebService&as&com._4guysfromrolla.aspnet.ASPFAQs
&&Set&consumeWebService&=&New&com._4guysfromrolla.aspnet.ASPFAQs
&&'把GetFAQsInCategory结果绑定到dgCategoryFAQs
&&dgCategoryFAQs.DataSource&=&consumeWebService.GetFAQsInCategory(22)
&&dgCategoryFAQs.DataBind()
检查一下上面的代码,你可能不明白对com._4guysfromrolla.aspnet.ASPFAQs&Proxy类的调用实际上就是远程Web服务的调用,当调用Proxy类的GetFAQsInCategory方法时,会进行复杂的数据通讯(HTTP的请求/响应)。
在本文里,我们讲述了如何创建Web服务,并如何在ASP.NET页面里使用它。微软公司实际上在.NET里已经简化了创建和使用Web服务的过程。创建一个Web服务简单到只需创建.asmx文件,然后为Web服务的方法写一点代码,并添加宏,那些代码看上去就和本地组件代码一样。使用Web服务也是很简单,这还要归功于Proxy类的使用。如前所述,利用诸如Visual&Studio&.NET那样的工具来创建一个Proxy类也是非常简单的。
在.net下当然最好调了,随便什么语言都可以很方便的调,在服务请求端只要添加web引用即可自动生成代理,再生成它的对象既可方便的获得服务提供端的结果。我用asp调过(用javascript),用java也调过,在Jbuilder中也挺方便的,并且可以在linux下调用windows下的服务,实现跨平台,并可以监视传递的soap消息。
点击你的项目--添加web引用--》输入url地址---出现你的引用的类
dim&dd&as&new&你的工程名称.名称空间
dim&aa&as&**&=dd.方法ASP.NET调用WebService服务的方法详解,ASPNET教程,ASPNET案例,ASPNET实例
      本站 
       
 |  |  |  |  
     |     |     |   
您的位置: &&
&& ASP.NET调用WebService服务的方法详解
ASP.NET调用WebService服务的方法详解
g="zh-CN">
ASP.NET调用WebService服务的方法详解_实用技巧_脚本之家
android软件 MAC软件 驱动下载 字体下载 DLL下载
asp源码 php源码 asp.net源码 jsp源码 网页编辑器 数据库管理 常用组件 脚本下载
在线手册 CSS格式化 JS格式化 Html转化为Js js正则表达式
网页教程基础
服务器常用软件
ASP.NET调用WebService服务的方法详解
作者:沁园春
字体:[增加 减小] 类型:转载 时间: 我要评论
这篇文章主要介绍了ASP.NET调用WebService服务的方法,较为详细的分析了WebService服务的功能,创建步骤与使用方法,需要的朋友可以参考下
本文实例讲述了ASP.NET调用WebService服务的方法&。分享给大家供大家参考,具体如下:
一、WebService:WebService是以独立于平台的方式,通过标准的Web协议,可以由程序访问的应用程序逻辑单元&。
(1)应用程序逻辑单元:web服务包括一些应用程序逻辑单元或者代码&。这些代码可以完成运算任务,可以完成数据库查询,可以完成计算机程序能够完成的任何工作&。
(2)可由程序访问:当前大多是web站点都是通过浏览器由人工访问的,web服务可以由计算机程序来访问&。
(3)标准的we协议:Web服务的所有协议都是基于一组标准的Web协议,如HTTP、XML、SOAP、WSDl、UDDI等
(4)平台独立性:web服务可以在任何平台上实现&。因为标准协议不是由单个供应商专用的,它由大多数主要供应商支持&。
SOAP(Simple& Object Access Protocol,简单对象访问协议)协议:是用于交换XML编码信息的轻量级协议,SOAP协议是HTTP和XML协议的组合&。
WSDL(Web Service Description Language,Web服务描述语言)是用XML文档来描述Web服务的标准,是Web服务的接口定义语言&。
二、创建ASP.NET WEB服务
建立Web服务就是把一些信息或逻辑对其他计算机和客户公开,进一步说,就是从支持SOAP通信的类中建立一个或多个方法&。
创建Web服务的步骤:(VS2008)
首先,新建一个网站&。选择文件--------&新建---------&网站,打开“新建网站”对话框,选择“ASP.NET& web服务”模板&。确定后,创建成功&。
创建好后,会生成Service.asmx,其代码隐藏文件Servece.cs位于App_Code文件中&。Web服务文件都使用扩展名.asmx&。
发现在VS2010中,创建web服务是先新建一个网站,在选择添加新项,然后选择web 服务&。
三、使用ASP.NET Web服务
(1)添加Web引用
&1、新建网站,右键单击网站根目录,选择“添加Web引用”项&。
&2、在“添加Web引用”对话框中,在URl列表框中选择或者填入Web服务的URL&。(.asmx文件路径)然后在“添加Web引用”文本框中填入希望在应用程序中使用的添加Web引用名&。
&3、单击“添加引用”按钮,该引用位于App_WebReferences目录中,在该目录下已经添加了该Web服务的WSDL文件&。而在应用程序的web.config文件的&appSettings&块中,添加了如下配置,以设定实际的Web引用&。
(2)客户端调用Web服务
添加Web引用服务后,可以在客户端调用Web服务&。
1、在新建的网站中,添加网页default.aspx,在页面中添加一个TextBox控件、一个Button控件和一个Label控件
2、添加按钮“调用Serice服务”的单击事件代码如下&。
Using SimpleW
protected void Button1_Click(object sender,EventArgs e)
//实例化Service 对象
Service ms=new Service();
//调用Service对象ms的HelloWord方法
//将TextBox.Text作为参数传递给HelloWord方法
Label1.Text=ms.HelloWorld(TextBox1.Text);
(3)浏览网页Default.aspx,在浏览器中输入姓名,然后单击按钮,将会调用web服务Service的HelloWorld方法,并将结果显示在Label上&。
总结:应用Web服务的整个流程是:添加Web服务----------&添加Web引用----------------&客户端调用
更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》&。
希望本文所述对大家asp.net程序设计有所帮助&。
您可能感兴趣的文章:Jquery + Ajax调用webService实例代码(asp.net)asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码PHP中调用ASP.NET的WebService的代码jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码ASP.NET WebService中使用ASP.NET_SessionId的问题说明使用ASP.NET一般处理程序或WebService返回JSON的实现代码asp.net(c#)动态修改webservice的地址和端口(动态修改配置文件)asp.net类库中添加WebService引用出现问题解决方法asp.net webservice返回json的方法ASP.NET实现基于Forms认证的WebService应用实例ASP.NET如何定时调用WebService服务ASP.NET中Webservice安全 实现访问权限控制ASP.NET中基于soaphead的webservice安全机制
未处理的事件&PageIndexChanging& 之解决方案ASP.NET常用小技巧asp.net中virtual和abstract的区别分析asp.net ajaxControlToolkit ValidatorCalloutExtender的简单用法asp.net Ajax 安装与卸载方法asp.net(c#)动态修改webservice的地址和端口(动态修改配置文件)asp.net通过HttpModule自动在Url地址上添加参数Asp.net 网站性能优化二则分享ASP.NET学习路线图浅谈ASP.NET MVC3的伪静态实现代码
大家感兴趣的内容
1JAVA正则表达式 Pattern和Matche2asp.net(c#)网页跳转七种方法小结3未将对象引用设置到对象的实例 (4未能加载文件或程序集“XXX”或它5asp.net“服务器应用程序不可用”6asp.net gridview 72般绝技7asp.net UpdatePanel的简单用法8System.Runtime.InteropServices9asp.net生成Excel并导出下载五种10HttpWebRequest和HttpWebRespons
最近更新的内容
使用.NET中的Action及Func泛型委托深入剖asp.net调用飞信免费发短信(测试有效)ASP.NET实现TreeView的XML数据源绑定实例Web里URL空格的转换方法asp.net(C#)解析Json的类代码.NET实现XML与DataTable互转的实例代码ASP.NET(C#) String, StringBuilder 与 SASP.NET在上传文件时对文件类型的高级判断C#默认以管理员身份运行程序实现代码浅谈对Lambda表达式的理解
常用在线小工具
Google搜索中
搜狗搜索中
在线教程导航
数据库开发
车友晒价详情
<font color="#FF
南京的都去了,没有我想要的 我想要加上所有选装包的
<font color="#FF万
南京没有夏利门市,居然!
<font color="#FF
太仓汽车4S店 赠 踏板 脚垫 旅行架 倒车雷达 坐垫价格214900
赠 踏板 脚垫 旅行架 倒车雷达 坐垫 价格213000
<font color="#FF万
江都的4S店
<font color="#FF万
还没去4s店,价格网上的。
当时电话谈的是25.8万,但是这个价格包括了我的0.6万元的公务员补贴(厂方给的)以及要求做1万元装潢,
如果不做装潢也不是公务员身份,应该就是27万裸车了。
贷款利息免,不过有手续费3000
<font color="#FF
优惠16500,自己加5000装潢请您填写优惠幅度以及购车地点等详情。
<font color="#FF万
南京卡子门三千元优惠
<font color="#FF万
南京协众,没什么具体谈,只说购买时给点优惠
团购车型:
加入微信号,了解汽车///活动
| 站长工具:
热门搜索:
驱动下载:
加入官方微信号
渠道报价/招聘
任你发任你查
All Rights Reserved.
南京网爵数码科技有限责任公司版权所有
 |  | 现在位置:
基于.NET的物资管理系统 详细内容
基于.NET的物资管理系统
基于.NET的物资管理系统
目前,大中型城市的多数店已经实现了物资管理、客户管理、销售管理及销售管理等的信息化和网络化,提高了管理效率。但是,在大多数小店,店管理仍然以传统人工管理为主,特别是在的采购、销售、库存环节,传统的手工管理处理信息混乱,账目管理困难,效率低下,浪费严重,造成了资产的流失。
使用本系统,可以使管理人员从大量繁琐的手工操作中解放出来,方便店管理者对进销存的实际情况进行集中的查询与管理工作,改进店的工作,提高工作效率和服务质量,同时可以适应店与社会医保综合管理的需求,减少资源的浪费和流失。
经过实际调查和综合分析,本系统使用功能强大的Microsoft VS.NET作为开发环境,使用编程语言C # 对整个系统进行设计与开发,后台数据库使用Microsoft SQL Server 2000。本系统可以根据实际应用的具体情况,适当加以修改,以便更好应用。本系统操作简单,灵活性好,系统安全性高,运行稳定。
关键字:管理系统,物资,.NET ,C#,sql
1 &绪& 论 1.1 课题研究背景及意义
随着生产技术的进步、现代化科学技术和社会经济的迅速发展,世界正在向信息化社会前进,信息正在同物质、能源一起构成当代社会的三大支柱产业。社会活动的日益复杂,也使得各种管理工作越来越依赖计算机进行信息的操作处理。
与我们的健康有着密切关系的卫生系统,目前也面临着信息时代的巨大挑战,旧有的企业管理模式已不能适应新型的社会主义市场经济的要求,再者产品种类繁多、业务量大,单凭手工记账很难适应工作的需要。同时,作为一个关系到人民群众健康的特殊行业,国家对行业又有一些不同于其他行业的管理政策,这些都加大了管理的难度。如何尽快建立和完善行业的信息化管理体制,已成为影响行业生存发展的关键所在。
物资管理系统就是为了解决传统管理过程中的进销存人工处理混乱、账目管理困难等问题,可以使管理人员从大量繁琐的手工操作中解放出来,方便地完成信息管理、入库出库等操作,方便灵活地完成各项属性、销售状况、供需状态的统计,使得各个工作环节的组织更加规范,提高工作效率与服务质量;同时可以适应店与社会医保综合管理的需求。从而可以改变店药库管理的传统模式,加强药库管理,减少资源浪费和流失。
软件开发可以采用多种开发方法,如生命周期法和面向对象方法等。面向对象技术是软件工程领域中的重要技术,它不仅是一种程序设计方法,更重要的是,它是一种对真实世界的抽象思维方式。UML(Unified Modeling Language)就是一种特别适合采用面向对象思维方式的软件建模语言。UML伙伴组织于1996年由Rational公司创立。对象管理组织(OMG)于1997年11月将UML的1.1版接纳为标准。 UML是多种方法相互借鉴、相互融合、趋于一致、走向标准化的产物。这样的统一建模语言为软件开发商及其用户带来诸多便利。许多计算机技术发达的国家已有大量的软件开发组织开始用UML进行系统建模,学习和使用UML已经成为一种潮流。我国软件界对UML也相当关注,越来越多的人投入到了对UML的学习和研究中。
UML只是一种建模语言,在系统的具体编制过程中,我使用了Microsoft专门为使用.NET平台而创建的语言C#。1.2& 本系统使用的方法和语言 1.2.1 统一建模语言UML
统一建模语言(Unified& Modeling& Language ,UML)是一种可视化的建模语言,它能让系统构造者用标准的、易于理解的方式建立起能够表达出他们想象力的系统蓝图,并且提供了便于不同人之间有效的共享和交流涉及结果的机制。
&&& UML包括了一些可以相互组合图表的图形元素。由于UML是一种语言,所以UML具有组合这些元素的法规。UML提供了系统设计所需要的多种图,这些图是在用多个视图来展示一个系统,这组视图被称为一个模型(Model)。一个UML模型描述了一个系统需要做什么。同时,UML提供了组织和扩展这些图的方法。
关于标准建模语言UML的内容,首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。
作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。
(1) UML语义 描述基于UML的精确元模型定义。
(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。&&& 标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:
第一类是用例图,第二类是静态图(Static diagram),包括类图、对象图和包图。第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常, 状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系, 协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择协作图。这两种图合称为交互图。第五类是实现图( Implementation diagram ),包括构件图和配置图。  1.2.2 .NET和C#
微软的.NET是为了解决因特网应用中存在的普遍问题而预先建立的基础设施。.NET的服务器版可运行在Windows NT.Windows 2000以及Windows XP Professional操作系统下.其客户版可运行在Windows 98、Windows Me、Windows XP Home下。目前它只是一个附加的服务补丁,以后的.NET版本极有可能成为操作系统的一部分,今后的版本也有可能会允许.NET的―部分运行在其他版本的Windows操作系统下,微软的.NET提供了下述服务,具体如下
&.NET提供了一种新的运行环境.即.NET框架,它使得程序员能够更容易、迅速地写出优良、健壮的程序代码,并且能够方便地管理、部署和修改代码,所编写的程序和组件都在该环境中执行。它为程序员提供了一些新功能,例如自动内存管理(垃圾收集).以及更方便地访问所有系统服务。它添加了许多实用功能、例如易于访问因特网和数据库。它还为代码复用提供了一种新的机制一一更易于使用.并且比COM更加有效和灵活。.NET框架更易于部署.因为它不需要进行注册设置。它还为版本的制定提供了标准化、系统级别的支持。程序员可以在任一种与.NET兼容的编程语言中使用上述全部功能
.NET为创建HTML页面提供了一种新的编程模型,称为ASP.NET.尽管智能的单机程序仍在不断涌现,但是在不久的将来,大多数因特网通信都会以通用浏览器作为前端,这就要求服务器能够使用HTML语言来构造页面,以便浏览器识别并显示给用户。ASP.NET是一种运行在因特网信息服务(IIS)下的新环境,它使得程序员能够更容易地编写代码来构造基于HTML语言的web页面,供浏览器查看。 ASP.NET提供了一种新的与语言无关的代码编写方式,并将其与web页面请求相关联。它提供了.NET的Web窗体,它是一种与控件交互的事件驱动编程模型、这使得编写web页面变得就像编写普通的VB窗体一样。ASP.NET包含了良好的会话状态管理和安全功能,它比原来的ASP更加健壮,性能也得以提高。
.NET提供了windows窗体,它是一种使用.NET框架编写各种客户程序的新方法。& 一个使用XML Web服务的专用客户端应用程序必须提供良好的用户界面。高质量的界面能够提供更佳的用户感受,.NET提供了一种新的软件包,它被称为.NET windows窗体.这使得程序员能够使用.NET框架轻易地编写出专用的windows客户应用程序。
C#是可用于创建要运行在.NET上的应用程序的语言之一,它从C和C++语言演化而来,是Microsoft专门为使用.NET平台而创建的。因为C#是近期发展起来的,所以吸取了以前的教训,考虑了其他语言的许多优点,并解决了它们的问题。
使用C#开发应用程序比使用C++简单,因为其语法比较简单。但是,C#是一种强大的语言,在C++中能完成的任务在C#中也能完成,C#中与C++比较高级的功能等价的功能(例如直接访问和处理系统内存),只能在标记为“不安全”的代码中使用。这个高级编程技术是非常危险的(正如它的名称),因为它可能覆盖系统中重要的内存块,导致严重的后果。
C#代码常常比C++略长一些。这是因为C#是一种类型安全的语言(与C++不同),一旦为某些数据指定了类型,就不能转换为另一个不相关的类型。所以,在类型之间转换时,必须遵守严格的规则。执行相向的任务时,用C#编写的代码通常比C++长。但C#代码更健壮,调试也比较简单,.NET总是可以随时跟踪数据的类型。在C#中,不能完成如“把4字节的内存放在数据中,并把它解释为x”等的任务。
C#只是.NET开发的一种语言,是目前最好的一种语言。C#的优点是,它是唯一为.NET Framework而设计的语言,是移植到其他操作系统上的.NET版本中使用的主要语言。C#能使用.NET Framework代码库提供的每种功能1.3系统描述
本系统运用面向对象的思想,基于UML进行管理系统的分析与设计。本文运用UML来分析和描述店管理所涉及的基本信息管理、入库、出库、调价、查询、统计、盘点等一系列功能。
系统维护包括:新建操作用户、修改用户信息、删除用户等。
物资管理包括:物资信息的添加、修改和删除和查询等。
客户管理包括:供应客户信息的添加修改和删除等。
采购管理包括:登记公司向供应客户采购物资的入库单等。
盘点管理包括:盘点库存、生成入库出库清单等。1.4 分析方法
&&& 为了适应开发过程多方面的挑战,不同的组织和不同的应用领域需要采取不同的开发过程才能提高开发效率。我在系统的设计开发中,使用了“快速应用工程指导原则”(Guidelines for Rapid APPLication Engineering),简称GRAPPLE。GRAPPLE的思想并没有脱离以往的UML分析方法――RUP(Rational Unified Process, 统一开发过程)。它是一组可以自适应的,灵活的开发思想,可以适应与许多不同组织的软件开发过程,让开发者发挥自己的创造力和好的思想来构建自己的组织。
&GRAPPLE由5个段组成,即需求收集,分析,设计,开发,部署。本次的论文,便是以GRAPPLE方法的基本结构、步骤来构架的,由于在软件的构建阶段,设计和分析都可以往返进行直到设计完成,所以在论文中,我将分析与设计合并为一个章节来叙述。之后在设计的基础上使用微软的Visual C#完成系统的实现。2 &需求收集 2.1 业务过程分析
开发一个系统的起点就是获得对客户业务过程的理解,特别是获得使用目标系统的客户的理解。这就需要系统分析员与客户进行充分的交流。首先要在调研的过程中了解到一套业务领域的词汇。
“物资管理系统”需要实现的功能有主要有:“系统维护” ,“入库管理 ”,“调价管理”,“出库管理”, “财务信息管理”,“信息管理”等,可以用下面的业务流程图来表示它们之间的关系:
图2-1 系统业务流程
此次设计的“物资管理系统”需要完成的主要功能有:“系统维护”,“入库管理”,“调价管理”,“出库管理”,“财务信息管理”,“信息管理”等一系列与业务流程相配套的完整功能。
在系统中,主要的业务流通领域词汇有以下几大类:采购计划,入库,财务验收,付款处理,出库,调价处理,库存盘点,查询。信息管理的总体活动可以由以下的图来描述:
图2-2& 信息管理的活动图2.2& 研究领域分析
现在仍然处在需求收集阶段的概念性分析。这个阶段需要开发出初步的类图、建立和标记类之间的关联,同时填充类的信息。2.2.1 初步用例模型开发
用例是由参与者发起的,参与者能够从用例的执行中获得有价值的事物。用例模型的图形表示法很直观。用例用一个椭圆形表示,直立人形图表表示参与者。用例的发起参与者在用例图的左侧,接受参与者在用例图的右侧。参与者的名字放在参与者图表的下方,用例的名字可以放在椭圆形里面也可以放在椭圆形下方。关联线连接参与者和用例,并且表示参与者与用例之间有通信关系。关联线是实现,和类之间的关联线类似。
&&& 用例分析的一个好处是它能展现出系统和外部世界之间的边界。参与者是典型的系统外部实体,而用例属于系统内部。系统的边界用一个矩形(里面写着系统的名字)来代表。系统的用例装入矩形之内。
参与者、用例和互连线共同组成了用例模型(use case model).
下图说明了这些符号:
图2-4 用例模型示例2.2.1.1 开发系统业务角色
&&& 首先,需要确定整个系统的业务角色。业务角色,顾名思义,就是与业务交流的人或物,都可以被称为业务角色。在本管理系统中,大体上可以分为生产厂家、供应商、采购员、销售员、基本操作员、系统管理员这六类业务角色。2.2.1.2& 开发初步用例图
接下来,需要对每个业务角色标识业务用例,这些业务用例包括:生产、购入、批发销售、输入相关信息、售出、管理整个系统流程等等。
&&& 这个阶段的任务,就是描述系统用例与系统业务角色之间的关系,如图2-6中所示。
图2-6& 业务角色与系统用例2.2.2 开发初步类图 2.2.2.1 系统中的类
类图(Class Diagram)描述类和类之间的静态关系。与数据模型不同,它不仅显示了信息的结构,同时还描述了系统的行为。类图是定义其它图的基础。在类图的基础上,状态图、合作图等进一步描述了系统其他方面的特性。
对象(Object)与对客观世界的理解相关。通常用对象描述客观世界中某个具体的实体。所谓类(Class)是对一类具有相同特征的对象的描述。而对象是类的实例(Instance)。建立类模型时,应尽量与应用领域的概念保持一致,以使模型更符合客观事实,易修改,易理解和易交流。
类描述一类对象的属性(Attribute)和行为(Behavior)。在UML中,类的可视化表示为一个划分成三个格子的长方形(下面两个格子可省略)。图1中,"客户"就是一个典型的类。
类的获取和命名:最顶部的格子包含类的名字。类的命名应尽量用应用领域中的术语,应明确、无歧义,以利于开发人员与用户之间的相互理解和交流。类的获取是一个依赖于人的创造力的过程,必须与领域专家合作,对研究领域仔细地分析,抽象出领域中的概念,定义其含义及相互关系,分析出系统类,并用领域中的术语为类命名。一般而言,类的名字是名词。
下面分析领域一下类中的动词和名词,其中的一些名词将可能成为模型中的类,另一些名词成为类的属性。而动词或者动词短语则成为类的操作或类之间的关联标记。
系统中涉及到的名词有:
(drug),用户(user), 管理员(administrator), 普通用户(common user),信息录入员(information recorder),盘点员,调价员,采购员(buyer),仓库保管员(depository keeper),销售员(seller),账目(account), 发票(invoice), 账单(bill), 入库单(enter depository bill), 出库单(out depository bill), 调价单(change price bill), 客户(client),供应商(merchant),等等。
系统中涉及到的动词有:
入库(enter depository ),出库(out depository ),盘点(check)、调价(change price)、付账(pay)、信息录入(information enter),等等。2.2.2.2 类之间的关系
在这个阶段,对开发出来的初步类图中的类,根据其意义来分成一些组。
人组成的一组: 用户(user), 管理员(administrator), 过期日期(Due date),普通用户(common user),客户(client),生产厂家(manufacturer),供应商(merchant),销售员(seller),采购员(Buyer)
物品组成的一组:(drug),药库(Depository)
生成的单据组成的一组:账目(account), 发票(invoice),Check(支票),账单(bill), 入库单(enter depository bill), 出库单(out depository bill), 调价单(change price bill)2.2.2.3& 构建系统类图
在完成了初步类图的构建之后,需要建立和标记出类之间的关联。具体的表述关联的方法策略是:先从几个类开始,找出与这个类存在关联的其他类,然后再寻找另外一组类与其他类的关联,直到穷尽了所有的类为止。
下面先介绍一下类之间常用的几种关系以及他们的概念:
关联关系:关联(Association)表示两个类之间存在某种语义上的联系。
角色:关联两头的类以某种角色参与关联。
关联类:一个关联可能要记录一些信息,可以引入一个关联类来记录。
聚集和组成:聚集(Aggregation)是一种特殊形式的关联。聚集表示类之间的关系是整体与部分的关系。聚集可以进一步划分成共享聚集(Shared Aggregation)和组成。
继承关系:人们将具有共同特性的元素抽象成类别,并通过增加其内涵而进一步分类。继承(Generalization)定义了一般元素和特殊元素之间的分类关系。在UML中,继承表示为一头为空心三角形的连线。如图2-8中,将User进一步分为common user, administrator和business user,使用的就是继承关系。
依赖关系: 有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。
2.3 系统需求研究 2.3.1 收集系统需求
在对一个系统的开发中,必须集中考虑用户的需求,这个步骤需要开发出系统的功能包图,每个包应代表系统的一个功能模块。
包:将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。UML中这种分组机制叫包(Package)。
任何模型元素都运用包的机制。如果没有任何启发性原则来指导类的分组,分组方法就是任意的。在UML中,最有用的和强调最多的启发性原则就是依赖。包图主要显示类的包以及这些包之间的依赖关系。有时还显示包和包之间的继承关系和组成关系。2.3.2开发系统功能包图
现在可以开发出系统功能包图如图2-11。在图2-11中,“系统”包由“界面”包和“单据”包和“使用者”包组成。这里称它们为"系统"包的内容。当不需要显示包的内容时,包的名字放入主方框内,否则包的名字放入左上角的小方框中,而将内容放入主方框内。包的内容可以是类的列表,也可以是另一个包图,还可以是一个类图。
图2-11系统功能包图
3& 系统分析与设计 3.1 开发系统用例模型
用例能够帮助系统开发者理解系统的预期行为,因而是一个强有力的工具,它能够帮助开发者从用户的观点收集需求。
用例是一个强有力的工具,当使用UML可视化的表达出这些概念后,用例甚至会变得更加强大。可视化可以向用户显示用例,他们可以提供更多的信息。实际生活中用户常常知道的比他们清楚表达出来的要多:用例能够帮助用户解决这个问题。另外,可视化的表达形式允许将用例图和其他种类的图结合起来。
系统分析过程中的一个目标是产生一组用例。此想法是要对用例进行分类整理,以便于引用。这些用例代表着用户对系统的观点。当要对系统升级时,用例目录可以作为进一步收集升级需求的基础。3.2 系统数据库设计 3.2.1 &数据流分析
数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图。
物资物资管理系统的数据流程:对本系统操作的数据源的用户为管理员用户。管理员用户可以进行信息查询、添加、修改、删除等相关操作。通过对本系统的需求分析,系统的基本功能已经确定。
整个系统的数据流程图如2-2:
图2-2& 系统数据流程图&
2.3 &数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。
2.3.1& 物资物资管理系统的数据字典
1.数据字典列表――数据流
数据存储名称:管理员信息
数据来源:管理员信息表
数据去向:管理员登陆模块
数据组成:管理员信息=管理信息唯一标识+管理员帐号+管理员密码+管理员权限+注册时间
描述:存储了管理员的基本信息
数据存储名称:物资类别信息
数据来源:物资类别信息表
数据去向:物资类别模块
数据组成:物资类别信息=物资类别信息唯一标识+物资类别+添加时间+经手人
描述:存储了物资类别的注册信息
数据存储名称:物资信息
数据来源:物资信息表
数据去向:物资信息模块
数据组成:物资信息=物资信息唯一标识+货物名称+供货编号+进价+售价+数量+厂商等
描述:存储了物资信息
数据存储名称:客户信息
数据来源:客户信息表
数据去向:客户信息模块
数据组成:客户信息=客户信息唯一ID+客户编号+姓名+地址+身份证+性别+电话等
描述:存储了客户信息
数据存储名称:库存信息
数据来源:库存信息表
数据去向:库存信息模块
数据组成:库存信息=库存信息唯一标识+物资名称+价格+数量+添加时间+单位+编号等
描述:存储了库存信息
数据存储名称:销售信息
数据来源:销售信息表
数据去向:销售信息模块
数据组成:销售信息=销售信息唯一标识+货物名称+数量+价格+时间等
描述:存储了销售详细信息
2.数据字典列表――数据处理
名字: 数据库信息
描述:存储了数据库的基本信息
数据组成:数据库信息=管理员信息+客户信息+货物信息+库存信息+销售信息
位置:数据库
输出: 查询得到的信息页面
&3.数据字典列表――数据存储
3.2.2& 物资物资管理系统的数据项
管理员数据项:
名称:管理员权限
简述:管理员的权限
数据类型:文本
字段大小:30&
名称:注册时间
简述:管理员的注册时间
数据类型:日期时间
字段大小:8&
货物数据项:
名称:货物单位
简述:货物的计量单位
数据类型:文本
字段大小:50&
名称:颜色
简述:货物的颜色
数据类型:文本
字段大小:50&
名称:单价
简述:货物的单价
数据类型:数字型
字段大小:8&
名称:售价
简述:货物的售价
数据类型:数字型
字段大小:8&
厂商数据项
名称:负责人
简述:供货厂商的负责人
数据类型:文本
字段大小:10&
名称:电话
简述:供货厂商的联系电话
数据类型:文本
字段大小:12&
名称:时间
简述:供货厂商信息的添加时间
数据类型:时间
字段大小:8&
名称:经手人
简述:厂商信息的管理经手人
数据类型:文本
字段大小:10&
库存数据项
销售数据项
3.2.3 &数据库需求分析
用户的需求具体体现在各种学习成绩的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
1)用户为管理员用户;
2)管理员用户登陆后可进行管理员信息、货物信息及厂商信息等的维护,以且货物入库、货物出库及统计信息的维护;
经过系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:
1)管理员信息,包括数据项:帐号,密码,权限等。
2)职员信息,包括数据项:职员ID,职员姓名,性别,电话,所在部门等。
3)货物信息,包括数据项:俄编号,货物名称,计量单位,供货厂商等。
5)销售信息,包括数据项:系统编号,货物名称,货物数量,销售价格等。
6)库存信息,包括数据项:系统编号,货物名称,统计数据等。
7)厂商信息,包括数据项:系统编号,厂商名称,负责人,电话,厂商地址等。3.2.4 &数据库概念结构设计
得到上面数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
设计规划出的实体有:管理员信息实体、客户信息实体、货物信息实体、库存信息实体、销售信息实体和厂商信息实体。
管理员信息实体E-R图如图4-2所示:
职员信息实体ER图如图4-3所示:
图书实体ER图如图4-4所示:
图4-4& 图书实体ER图&
货物入库信息&货物入库信息实体ER图如图4-5所示:
图4-5& 图书借阅信息实体ER图&
货物出库信息实体ER图如图4-6所示:
图4-6图书续借实体ER图&
货物信息实体ER图如图4-7所示:
3.2.3& 数据库逻辑结构设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。
物资物资管理系统数据库中各个表的设计结果如表所示。每个表格表示在数据库中的一个表。
表1为管理员信息表,存储系统中的管理员信息。
表1& 管理员信息表(allusers)
表2为客户信息表,记录系统中客户的详细信息。
表2& 客户信息表(kh)
表3为货物信息表,记录系统中已有货物的信息。
表3&& 货物信息表(allpro)
&&& 表4为库存信息表,记录货物库存的信息。
表4& 货物入库信息表(kc)
表5为销售统计信息表,记录在销售统计的信息。
表5& 销售统计信息表(xiaoshou)
4 &开发系统
&& 这是真正开始实施编程的阶段,有了充分的分析和设计结果,这个阶段的工作就能快速平稳的进行。4.1 编制代码
根据前阶段开发出来的类图、对象图、活动图,下一步的工作就是编制实现系统的代码。本设计我使用的编程语言是Visual C#。4.2& 系统实现
VS.NET编程环境提供了一个统一的集成开发环境,其中集成了许多可视化辅助工具,因此对于用户界面的建立和代码的生成来说是比较简单的。4.2.1 用户界面
用户界面决定了系统可使用性的好坏。用户界面的设计同样需要讲究艺术性和科学性,在利用艺术角度的见解和人性因素的研究之外,还要考虑到系统用户的直观感觉。
下面以销售出库模块为例,来介绍程序的界面。如图4-1
图4-1物资管理系统登录界面
系统界面设计十分简单,只有“用户名”、“密码”两个输入框及“登陆”一个按钮组成。此页面肩负着系统的安全,所以其安全性能要求很高。4.2.2 代码
物资管理系统登录界面部分代码如下:
protected void Button1_Click(object sender, EventArgs e)
&&&&&&& if (TextBox2.Text.ToString().Trim() == "" || TextBox1.Text.ToString().Trim() == "")
&&&&&&&&&&& Response.Write("&script&&#106avascript:alert('请输入完整');history.back();&/script&");
&&&&&&&&&&& Response.End();
&&&&&&& sql = "select * from allusers where username='" + TextBox2.Text.ToString().Trim() + "' and pwd='" + TextBox1.Text.ToString().Trim() + "'";
&&&&&&& DataSet result = new DataSet();
&&&&&&& result = new Class1().hsggetdata(sql);
&&&&&&& // result = new TestOnline.Class1().hsggetdata(sql);
&&&&&&& if (result != null)
&&&&&&&&&&& if (result.Tables[0].Rows.Count & 0)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& Session["username"] = TextBox2.Text.ToString().Trim();
&&&&&&&&&&&&&&& Session["role"] = result.Tables[0].Rows[0]["cx"].ToString().Trim();
&&&&&&&&&&&&&&& Response.Redirect("manage.aspx");
&&&&&&&&&&& }
&&&&&&&&&&& else
&&&&&&&&&&& {
&&&&&&&&&&&&&&& Response.Write("&script&&#106avascript:alert('对不起,用户名或密码不正确!');&/script&");
&&&&&&&&&&& }
&&&&&&& else
&&&&&&&&&&& Response.Write("&script&&#106avascript:alert('对不起,系统错误,请不要越权操作!');&/script&");
4.3& 部分系统界面及功能简介 4.3.1用户信息管理界面如图4-2
图4-2用户信息管理界面
此界面所完成的功能,为管理的系统用户信息,内容包括用户名、密码及再次确认密码。4.3.2主界面 如图4-3
图4-3 物资信息管理界面
此系列页面所实现的功能为管理物资()信息,包括分类管理、添加、管理及查询等。4.3.3客户信息管理界面 如图4-4
图4-4客户信息管理界面
此系列页面所实现的功能为管理客户信息,包括添加、管理及查询等。4.3.4入库管理界面 如图4-5
实现本模块的主要代码如下所示:
protected void Page_Load(object sender, EventArgs e)
&&&&&&& if (!IsPostBack)
&&&&&&&&&&&
&&&&&&&&&&& sql = "select bh from allpro order by id desc";
&&&&&&&&&&& getdata(sql);
&&& private void getdata(string sql)
&&&&&&& DataSet result = new DataSet();
&&&&&&& result = new Class1().hsggetdata(sql);
&&&&&&& if (result != null)
&&&&&&&&&&& if (result.Tables[0].Rows.Count & 0)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& int k = 0;
&&&&&&&&&&&&&&& for (k = 0; k & result.Tables[0].Rows.C k++)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& bh.Items.Add(result.Tables[0].Rows[k]["bh"].ToString().Trim());
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&& protected void Button1_Click(object sender, EventArgs e)
&&&&&&& sql = "select * from kucun where bh='"+bh.SelectedItem.ToString().Trim()+"'";
&&&&&&& DataSet result = new DataSet();
&&&&&&& result = new Class1().hsggetdata(sql);
&&&&&&& if (result != null)
&&&&&&&&&&& if (result.Tables[0].Rows.Count & 0)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& sql = "update kucun set shuliang=shuliang+"+shuliang.Text.ToString().Trim()+" where bh='"+bh.SelectedItem.ToString().Trim()+"'";
&&&&&&&&&&& }
&&&&&&&&&&& else
&&&&&&&&&&& {
&&&&&&&&&&&&&&& sql = "insert into kucun(bh,ggxh,dw,promc,price,shuliang,gys,rkprice) values('" + bh.SelectedItem.ToString().Trim() + "','" + ggxh.Text.ToString().Trim() + "','" + dw.Text.ToString().Trim() + "','" + promc.Text.ToString().Trim() + "'," + price.Text.ToString().Trim() + "," + shuliang.Text.ToString().Trim() + ",'" + gys.Text.ToString().Trim() + "'," + rkprice.Text.ToString().Trim() + ")";
&&&&&&&&&&&&&&
&&&&&&&&&&& }
&&&&&&& int result2;
&&&&&&& result2 = new Class1().hsgexucute(sql);
&&&&&&& sql =& "insert into ruku(bh,ggxh,dw,promc,price,shuliang,gys,rkprice) values('" + bh.SelectedItem.ToString().Trim() + "','" + ggxh.Text.ToString().Trim() + "','" + dw.Text.ToString().Trim() + "','" + promc.Text.ToString().Trim() + "'," + price.Text.ToString().Trim() + "," + shuliang.Text.ToString().Trim() + ",'" + gys.Text.ToString().Trim() + "'," + rkprice.Text.ToString().Trim() + ")";
&&&&&&& result2 = new Class1().hsgexucute(sql);
&&&&&&& if (result2 == 1)
&&&&&&&&&&& Response.Write("&script&&#106avascript:alert('操作成功');&/script&");
&&&&&&& else
& &&&&&&&&&&Response.Write("&script&&#106avascript:alert('系统错误,您输入了非法字符!');&/script&");
图4-5退货登记界面
此系列页面所实现的功能为管理采购信息,包括支付、退货等。
实现本模块的主要代码如下所示:
protected void Page_Load(object sender, EventArgs e)
&&&&&&& if (!IsPostBack)
&&&&&&&&&& &
&&&&&&&&&&& sql = "select * from kucun order by id desc";
&&&&&&&&&&& getdata(sql);
&&& private void getdata(string sql)
&&&&&&& DataSet result = new DataSet();
&&&&&&& result = new Class1().hsggetdata(sql);
&&&&&&& if (result != null)
&&&&&&&&&&& if (result.Tables[0].Rows.Count & 0)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& int k = 0;
&&&&&&&&&&&&&&& for (k = 0; k & result.Tables[0].Rows.C k++)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& promc.Items.Add(result.Tables[0].Rows[k]["promc"].ToString().Trim());
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&& protected void Button1_Click(object sender, EventArgs e)
&&&&&&& sql = "insert into tuihuo(promc,price,rkprice,gys,thsl,memo) values('"+promc.SelectedItem.ToString().Trim()+"',"+price.Text.ToString().Trim()+","+rkprice.Text.ToString().Trim()+",'"+gys.Text.ToString().Trim()+"',"+thsl.Text.ToString().Trim()+",'"+memo.Text.ToString().Trim()+"')";
&&&&&&& result = new Class1().hsgexucute(sql);
&&&&&&& if (result == 1)
&&&&&&&&&&& Response.Write("&script&&#106avascript:alert('添加成功');&/script&");
&&&&&&& else
&&&&&&&&&&& Response.Write("&script&&#106avascript:alert('系统错误,您没有设置好数据库的连接!');&/script&");
&&& protected void promc_SelectedIndexChanged(object sender, EventArgs e)
&&&&&&& sql = "select * from kucun where promc='" + promc.SelectedItem.ToString().Trim() + "'";
&&&&&&& getdata2(sql);
&&& private void getdata2(string sql)
&&&&&&& DataSet result = new DataSet();
&&&&&&& result = new Class1().hsggetdata(sql);
&&&&&&& if (result != null)
&&&&&&&&&&& if (result.Tables[0].Rows.Count & 0)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& price.Text = result.Tables[0].Rows[0]["price"].ToString().Trim();
&&&&&&&&&&&&&&& shuliang.Text = result.Tables[0].Rows[0]["shuliang"].ToString().Trim();
&&&&&&&&&&&&&&& rkprice.Text = result.Tables[0].Rows[0]["rkprice"].ToString().Trim();
&&&&&&&&&&&&&&& gys.Text = result.Tables[0].Rows[0]["gys"].ToString().Trim();
&&&&&&&&&&&&&&&
&&&&&&&&&&& }
&&& }5 部&& 署
在以上的设计过程中,只是属于软件的设计阶段,当开发完成后,系统就要被部署到适当的硬件上运行并要与协同系统集成起来。在多数系统中,硬件是一个重要方面,一个系统可能要包括多种操作平台,并且要跨越很长的物理距离。一个坚实的系统硬件部署图对系统设计来说是必需的。UML提供了一组图符,用户创建一幅图来描述最终系统的硬件设置。
&& 主要的硬件术语有:
节点(node):各种计算资源的通用名称。节点有两种类型。处理器(processor)是能够处理软件构件的节点,设备(device)是不能执行软件构件的节点。设备,如打印机或显示器通常都具有某种形式的与外部世界的接口。
本系统的硬件部署图如图5-1所示:
图5-1 硬件部署图
经过这几个月的设计和开发,“基于.NET的物资管理系统”已经完成了,其功能符合设计需求,能够完成入库、出库、调价、盘点、信息维护、查询等功能。经过最后的使用,证明系统完全具有可行性与可扩充性。
此次设计中,我用SQL Server2000建立后台数据库,用VS.NET 的C#作为主要的应用程序开发工具,应用所学的UML知识进行了系统设计。运行环境是Windows xp/Server.
在设计开始阶段,我用了一个半月的时间进行相关知识的学习、资料的搜集、熟悉开发工具及环境等工作,并到店进行了实地的调研与学习。随后,在UML的快速应用工程指导原则(GRAPPLE)的指导下展开了业务过程建模,系统用例建模,分析模型建立,设计模型建立,硬件部署,编码以及系统的维护与调试,最后完成毕业设计论文的编写和答辩准备工作。在开发过程中,我也遇到了各种各样的困难,在指导老师王会青老师和周围同学的指导、帮助下,得到解决,最终顺利完成了本系统的开发工作。
&本系统的成功运行证明了统一建模语言可以满足进销存、系统管理的复杂要求。在系统的分析阶段,主要是分析系统的需求,理解系统要完成的基本功能,找出系统的用例(Use Case)和角色(Actor),画出系统的用例模型图,用例模型是此后系统建模的基础。通过分析每个用例的顺序图和协作图,找到系统中的各个对象,建立系统的对象模型。抽象出系统的类,并将系统中联系紧密的类划分为若干个包,画出包图。在系统的设计阶段,需要做出高层的系统决策、确定基本的软件结构并且对应用系统进行结构划分。
&统一建模语言(UML)出现以及在建模中的应用是软件工程发展过程中的巨大革命,标志着软件工程的新的发展阶段。在设计的过程中,我对UML理论知识与建模过程有了更深入的理解,独立解决实际问题的能力进一步增强,综合运用所学知识解决实际问题的能力得到很大提高,为我今后的学习和工作积累了经验,为以后完成更复杂的工作奠定了一定的基础。
但是由于毕业设计时间较短,该系统还有待于进一步改进,因此,仍有大量的工作需要开展,以使其更趋于完善!
在本次毕业设计中,我得到了许多老师和同学的关怀和帮助,在此我要向他们表达我真挚的谢意。
首先,我要感谢我的指导老师――老师。老师在从我接触这个课题开始,就指导我广泛接触先进的技术。在系统设计与论文的写作过程中,王老师也不断的督促检查,并提出了许多宝贵的有建设性的意见。王老师的精心指导和深切关怀,以及认真负责的工作态度,严谨的治学精神都使我获益匪浅。在此谨向王会青老师表示崇高的敬意和衷心的感谢!
在程序的编码阶段,我也得到了许多同学的帮助,从他们身上我学到了许多的东西。
最后,我还要感谢所有评阅老师对我的论文的悉心评阅,答辩委员会老师对我的系统的关注与批评,院领导小组对我的综合评定。
再次感谢广大老师和同学们对我的帮助!
参 考 文 献
1.(美) Wendy Boggs,Michael Boggs.UML与Rational Rose2002从入门到精通.北京: 电子工业出版社,2002.
2.(美)Joseph Schmuller.UML基础、案例与应用.北京:人民邮电出版社,2001.
3. 李满潮 .Visual C#.NET编程基础.北京:清华大学出版社,2002.
4. Meilir Page.JonesUML.面向对象设计基础.北京:科学出版社,2003.
5. 刘润东.UML对象设计与编程.北京:希望电子出版社2002.
6. Martin Flower,Kendall Sott.UML精粹――标准对象建模语言简明指南.北京: 清华大学出版社 ,1999.
7. Karli Watson& Marco Bellinaso.康博译.C#入门经典.北京:清华大学出版社, 2002.
8. 孙三才 张智凯 许薰尹.C#与.NET技术平台实战演练.北京:中国青年出版社, 2002.
9. (美)普拉持(Platt,D.s.) .黄惠萍等译.Microsoft.NET精髓著.北京:机械工业出版社 ,2003.
10.& http://www.vchelp.net
12.& .cn/&&&&&
13.& .cn/html/case/szyaopin.htm
15.& http://www.sql-/
16.& .cn&&&
17.& http://www-/software/rational/
没有相关文章
推 荐 阅 读
阅 读 排 行
专 题 列 表
Corporation </small Inc. 网站备案号:鄂ICP备号-2 
基于架构  

我要回帖

更多关于 经销商库存管理 的文章

 

随机推荐