四川大学锦城学院
本科毕业论文(设计)开题报告
题 目 动漫周边工艺品网页界面设计的分析与研究
系 别 计算机科学与软件工程系
专 业 电子商务专业
学生姓名 杨东
学 号 090250134 年级 09级
指导教师 张蕙
教务部制表
二Ο一一 年 二 月 十六 日
第二篇:软件界面设计论文系统分析与设计论文
总第254期20xx年第12期
计算机与数字工程
Computer&DigitalEngineeringVol.38No.12
??96
基于MVP模式的进销存系统的软件架构设计
邓志宏??张??智??李建奇??汪永琳
(湖南文理学院计算机科学与技术学院??常德??415000)
*
摘??要??随着企业信息化的快速进展和网络的日益普及,企业实现基于计算机的进销存系统管理是中小企业普遍关注的热点问题。当前该类软件系统普遍基于两层C/S结构,未解决其业务逻辑的不灵活及安全的问题。该系统结构采用基于MVP模式的三层架构,给出了关键的C#程序代码,后台数据库基于SQLServer2008。实践表明系统的可伸缩性强,使用效果可靠稳定,有一定的实用推广价值。
关键词??进销存系统;三层架构;MVP模式中图分类号??TP393
DesignofEnterprisesStockingSellingandStoringSystem
BasedonMVPMode
DengZhihong??ZhangZhi??LiJianqi??WangYonglin
(ComputerScienceandTechnologyDepartment,HunanUniversityofArtsandScience,Changde??415000)Abstract??WiththeenterpriseinformationquickprogressandthegrowingpopularityoftheInternet,enterpriseimple??mentationofcomputer??basedinventorysystemmanagementisgenerallyconcernedwithhotspots.Thecurrentclasssoftwaresystemsaregenerallybasedonatwo??layerC/S,sotheirbusinesslogicisnotflexibleandsafetyproblems.ThissystemstructurebasedontheMVPpatternofthree??tierstructure,giventhekeyofC#code,databaseisbasedontheSQLServ??er2008.Thescalabilityofthesystem,thesystem??sactualperformancespecificationfortheenterprise,dailymanagement,reducethecostofrunningcosts.
KeyWords??buying??stocking??sellingsystem,three??tierarchitecture,MVPmodeClassNumber??TP393
1??引言
当今随着电子商务、互联网业务的迅猛发展,许多公司与企业对货物都实行了信息化管理。这样不仅提高了管理水平和工作效率,同时也最大限度地减少了手工操作带来的失误,并且有效地节省了人力、物力资源。于是进销存管理系统便应运而生。因此,一套好的进销存管理系统对于企业的现代化进程来说是必不可少的。目前市场上,国内外已有公司推出相关进销存管理系统。但是这些系
统并不能完全满足市场上对专业进销存系统的需求。不同的商业领域的进销存管理流程差异很大。由此本文提供一套比较通用且灵活的行业进销存管理系统解决方案。
2??需求分析
现代企业在对其资源进行优化配置的同时,也必须对信息资源进行优化配置。随着信息时代的到来,信息量与日俱增,同物质、能源相比,信息具有再生性,取之不尽,用之弥增,但对于企业的需求
*
收稿日期:20xx年6月7日,修回日期:20xx年7月9日
基金项目:湖南省教育厅资助科研项目(编号:08C612)资助。
作者简介:邓志宏,男,副教授,研究方向:DotNet平台上的软件。张智,男,研究方向:DotNet平台上的软件。李建奇,男,副教授,研究方向:计算机控制技术。汪永琳,男,副教授,研究方向:计算机系统结构。
20xx年第12期计算机与数字工程??97
而言,有效信息则是稀缺的。如果不对信息进行优化配置,企业将不能充分开发和利用有效信息;大量无效信息的存在势必影响企业的生产经营决策和组织管理,甚至引导企业走入投资、经营与管理误区,给企业带来不必要的经济损失。优化配置信息资源是现代企业决策科学化、投资合理化、生产规模化、经营效益化的根本保证。所以,开发企业应用的进销存管理系统尤为重要。本文所设计的进销存管理系统可以基本上满足企业的进销存管理,对节约管理成本,提高企业的竞争力,可起到一定的优化作用。进销存管理的主要任务有:企业的采购管理、企业的销售管理、企业库存商品的管理[1~3]
。
通过实际调查,要求本系统达到以下要求:1)由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机界面。
2)如果系统的使用对象较多,则要求有较好的权限管理。
3)方便的数据查询,让用户很容易地获取到想要信息。
4)减少人工干预,尽可能地做到全自动化。5)需要数据报表功能,为企业的决策提供一种参考。
负责库存状况、库存商品数据上限报警、库存商品数量下限报警、商品进销存变动表、库存盘点。
5)报表统计模块,包含了员工信息报表分析、客户信息报表分析、供应商信息报表分析、员工销售情况报表分析、供应商进货报表分析、商品库存报表分析。
6)系统维护模块。系统维护模块主要负责本单位信息、系统用户设置、用户权限设置、密码更改设置、数据备份、和数据库恢复、数据清理
[4~5]
。
4??详细设计
系统采用三层架构,把系统的界面、业务、数据分离,各个层次各司其职。这样做的优点是使项目结构更清楚。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了,所以更安全。三层架构属于瘦客户的模式,用户端只需一个较小的硬盘、较小的内存、较慢的CPU就可以获得不错的性能。相比之下,单层或胖客户对服务器的要求较高[6~7]。4.1??数据访问层(DAL)
数据访问层主要是定义、维护数据的完整性、安全性,它响应逻辑层的请求,负责所有对数据库访问的操作。
DAL层的类结构如图2所示。这里可以把数据访问层分成三个小层。分别是基类、抽象层、实现层。他们在数据访问上扮演不同的角色,构造一个健康稳定的系统结构。
基类DataAccess定义所有数据库操作的公共方法。通过对接口IDbCommand的操作来实现。这么做的好处是为下两层提供了模板方法,减少代码的冗余。
实现SQL语句执行的代码如下:
protectedInt32ExecuteNonQuery(IDbCommandcmd){
????returncmd.ExecuteNonQuery();}
3??总体设计
企业进销存管理系统是一个典型的数据库管理系统。它由基本信息管理、采购管理、销售管理、库存管理、报表统计、系统维护等模块组成,具体模块如图1
所示。
1)基本数据管理模块主要负责对系统基本数据录入(基础数据包括库存商品、客户信息、供应商信息、员工信
图1??系统模块结构
息)。
2)采购管理
模块。该模块主要负责商品的采购数据录入、采购退货数据录入、采购分析、采购统计、与供应商往来对账。
3)销售管理模块。该模块主要负责商品的销售数据录入、销售退货数据录入、销售统计、月销售状况(销售分析、明细账本)、商品销售排行、往来分析、商品销售成本表。
4)库存管理模块。库存管理模块主要
图2??数据访问层类图
??98邓志宏等:基于MVP模式的进销存系统的软件架构设计第38卷
抽象层继承了DataAccess类,它的职责是为进销存系统所有的数据库访问提供抽象类。这样一来如果某些因素造成更换数据库,就可以改变很少的代码来适应需求的变化。
与系统用户管理相关的数据库操作类如下:
publicabstractBooleanInsertUser(UserDetailsuser);publicabstractBooleanDelUser(Int32UserID);publicabstractBooleanUpdateUser(UserDetailsuser);publicabstractList<UserDetails>GetUsers();
publicabstractBooleanChangeUserPwd(Stringloginname,Stringpwd,intpopedomID,stringoldPwd);
publicabstractList<UserDetails>GetUsers(Stringlogin??name,Stringpwd,intpopedomID);publicabstractInt32GetCount();
}
数据访问层还提供了一个工厂属性类,包含所有抽象类的属性。
实现代码如下:
publicstaticUserProviderUser{
????get{returnUserProvider.Instance;}}
4.2??业务逻辑层(BLL)
业务逻辑层负责对用户界面层输入的数据进行有效性的验证,处理数据,将处理后的数据传送到数据访问层。或者从表现层接收数据,处理后再送回表现层[5~7]。BLL层的主要结构如图3,主要使用了模板方法模式。
基类中定义了通用的数据验证方法,来处理数据合法性的业务逻辑。
屏蔽字符串为null代码如下:
protectedstaticStringConvertNullToEmptyString(Stringinput){
????return(input==null?"":input);}
业务逻辑层定义了所有实体类。这些类是业务逻辑的核心。
例如把User这个实体单独提取出来,就可以为User添加相应的属性。它调用了数据访问层的方法,成为用户界面层与数据访问层的纽带。从而把系统用户所有的业务逻辑封装在User类中。
User的部分方法如下:
publicstaticboolLogin(stringusername,stringpwd,intpope??domid){????
????
username=ConvertNullToEmptyString(user??
除此之外这抽象层的类还提供了一个实例化自身的静态属性,这是使用一种反射机制,可以方便的实例化抽象类。相关代码如下:staticprivateUserProvider_instance=null;publicstaticUserProviderInstance{????get????{????????????
if(_instance==null){
TypeuserType=assembly.GetType_instance=(UserProvider)Activa??
????????????????????????????????????}}
}
("数据集所在的位置");tor.CreateInstance(userType);
return_instance;
实现层实现了抽象层的抽象类,是针对不同的数据库做不同的编码实现。该进销存是使用SQLServer2008数据库,对书库的实现方法如下:
publicoverrideBooleanDelUser(Int32UserID){????
using(SqlConnectioncon=newSqlConnection(this.Connecitonstring))????{
??????sqlStr="deletefromtb_UserwhereUserID="+Use??rID+"";
??????SqlCommandcmd=newSqlCommand(sqlStr,con);??????con.Open();
??????return(ExecuteNonQuery(cmd)==1);????}
name);
????????pwd=ConvertNullToEmptyString(pwd);????????return(User.GetUser(username,pwd,popedo??mid).Count==1);}
4.3??用户界面层(UI)
用户界面,承担着向用户显示问题模型和与用户进行操作和I/O交互的作用。用户界面的设计,包含技术和非技术的问题。非技术方面,程序的界面,涉及到美工、心理学甚至社会学的内容,向客户提供方便的使用界面,是系统界面设计的一个重要内容。
20xx年第12期计算机与数字工程??99
在美工方面本方案选择了WPF框架来做显示界面,WPF支持非破坏性图像缩放、裁切和旋转,WPF功能(如用户界面(UI)、动画和图形)能与托管代码无缝集成。
图3??业务逻辑层类图
互系统使用MVP模式来实现(结构如图4),Model实现业务逻辑,Presenter实现显示逻辑,将View和Model完全分离,View实现页面接口[7~8]。这样做的优点是在用户界面层把美工界面与显示逻辑分离。从而使可以以最小的代价来更换一套系统的UI。
5??结语
综上所述,进销存管理系统在设计的过程中要注意数据库的合理性、软件架构的灵活性、软件界面的美观性,在三者的基础上根据企业的实际情况进行调整。本案例的目的是提供一个进销存管理系统的解决方案,从整体框架出发设计该系统,描述重点在软件架构上。
参考文献
[1]赵晓霞.进销存管理系统的设计与实现[J].煤炭科技,
2009(29):244~246
[2]曹文钢,陈帝江.面向制造业的可重构进销存管理系统
设计[J].组合机床与自动化加工技术,2006(11):91~93,97
[3]汤四新.企业进销存软件应用模式分析[J].财会通讯
(综合版),2004(10):56~57
[4]何桂霞,蔡日梅.面向纺织企业的进销存系统设计与实
现[J].浙江工业大学学报,2007(4):444~447
[5]杜彦炜,智育平,刘开福.离散型制造企业进销存信息
管理系统的设计与实现[J].组合机床与自动化加工技术,2007(6):104~107
[6]汤永华.基于三层体系架构的图纸分发管理系统的开
发[J].梅山科技,2009(6):18~23
[7]张国军.基于.NET多架框的企业进销存解决方案[J].
科技情报开发与经济,2008(18):167~168
[8]孙朝云,孙向科,沙爱民.基于MVC架构网络教学管理
系统的设计与实现[J].计算机工程与设计,2009,30(23):5541~5543
用wpf做的用户操作空间代码如下:
<StackPanelOrientation="Horizontal">
<ButtonName="btnRefash"Tag="Refash"Click="Oper??ate_Click">
????????<DockPanel>
????????<ImageWidth="32"Height="24"DockPanel.Dock="Top"Source="Images\Load.png"/>????????<TextBlock>刷新</TextBlock>????????</DockPanel></Button>
<ButtonName="btnExit"Tag="Exit"Click="Operate_Click">
????????<DockPanel>
????????<ImageWidth="32"Height="24"DockPanel.Dock="Top"Source="Images\Exit.png"/>????????<TextBlock>退出</TextBlock>????????</DockPanel></Button></St
ackPanel>
从技术的角度来看,同其他层一样,界面层的结构也应该是一个可维
图4??MVP模式类结构图
护的、可扩展的结构,在很多方面,界面层的设计
原则和其他层的设计原则是一样的。
基于这种理念,用户界面层与业务逻辑层的交
(上接第88页)
[3]刘艳,史浩山,张鹏.基于WinCE的数据采集与监控系
统设计与实现[J].计算机测量与控制,2009,17(5):874~877
[4]殷淑英.基于ModBus_TCP协议的井下智能测控装置
设计[J].电器开关,2009(4):51~53
[5]刘沛津,等.基于ModBus/TCP协议的火电厂实时数据
集成及网络通信控制器研制[J].电力自动化设备,
2009,29(8):128~131
[6]王欣,孙百生.AT91SAM9261在GPS接收机中的应用
[J].单片机与嵌入式系统应用,2007(1):51~55[7]王亚鹏,许玮,丁辰龙.共话机器视觉技术发展[J].自
动化博览,2009(8):40~42
[8]彭道刚,张浩,李辉,等.基于Modbus协议的ARM嵌
入式监测平台设计与实现[J].2009(1):115~123