基于AOP的超市管理系统的设计.doc_第1页
基于AOP的超市管理系统的设计.doc_第2页
基于AOP的超市管理系统的设计.doc_第3页
基于AOP的超市管理系统的设计.doc_第4页
基于AOP的超市管理系统的设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

基于AOP的超市管理系统的设计计算机科学与技术03 陈月娟 指导教师 张京军摘要:本课题以面向对象编程(Object-Oriented Programming,OOP)为基础,引入了面向方面编程(Aspect-Oriented Programming,AOP)的思想。采用基于Java语言的AOP扩展AspectJ作为开发语言,Eclipse为开发工具,数据库采用Access 2003,进行了超市管理系统中商品信息、VIP信息、职员信息及系统维护等模块的设计。系统的主要特点是:操作方便、维护简单、运行速度快、可靠性高、实用性强。关键词:Eclipse;Java;AOP;管理系统;数据库Abstract: This subject introduced the idea of the aspect-oriented programming (AOP), which based on the Object-Oriented Programming (OOP), adopted AspectJ as the development language which grounded on the Java language AOP expansion , Eclipse for development tools , and the database is using Access 2003. The subject accomplished the design which contained the module of the informations of commodity, VIP and staffs. The main feature of the subject is easy to operate and maintain simple, fast, high reliability and practicability.Keywords: Eclipse; Java; AOP; Management system; Database前言随着信息技术的迅猛发展,我国商业面临着前所未有的机遇和挑战,在日益激烈的市场竞争面前,建设先进、高效的计算机管理系统,实现商业服务和商业管理的信息化、规范化和自动化,已成为我国商业面向未来发展的必由之路。对于超市来说同样也不例外。现在的软件系统大都采用OOP,OOP的编程思路虽然简单,但OOP有它的不足之处,如在解决横切属性时很容易导致代码混乱和代码分散。因此,在设计软件系统的时候,我们不仅仅要考虑纵向的关系,很多时候,我们还需要关注所谓的“横切关注点(Crosscutting Concerns)”的问题,这就是AOP技术。鉴于此,本文结合AOP技术,完成超市管理系统中对商品、会员、职员和用户管理模块的设计,并实现相应的数据库操作。1.AOP 1.1 AOP的发展AOP是施乐公司帕洛阿尔托研究中心(Xerox PARC)在上世纪90年代发明的一种编程范式。问世的近十年里,除了极少数时间,AOP在大多数情况下都是归于沉寂。然而近几年,越来越多的技术人员逐渐意识到AOP的巨大优势以及它潜在的力量。2001年,AOP被MIT技术评论杂志评为21世纪十种对经济和人类生活工作方式最具影响力的技术之一。AOP已经有数个支持AOP的产品问世,其中比较有名的有AspectJ、AspectWerkz等,这些产品都基于Java平台。通过AOP,开发人员可对这些横切关注点进行分离,将横切关注点以模块化的形式来实现,使得代码更加简单、更易于维护和重用。1.2 AOP技术AOP是许多研究人员独立研究路径的交点。目前关于AOP的相关工作有AspectJ、自适应程序设计、组合过滤器和多维关注点分解等。下面主要介绍AspectJ技术。 AspectJ是Xerox PARC开发的基于Java语言的AOP扩展,它既是一种规约语言,也是一种AOP的实现语言。AspectJ使用Java语言实现单个关注点,并通过对Java进行扩展,提供了编织(Weaving)规则。作为规约语言,AspectJ定义了支持“面向方面”概念的如下语言结构及语义: 连接点( Join Points):AspectJ的核心概念,预先定义好的程序中的特定执行点。例如,对某个类的某个方法的调用入口。 切入点(Pointcuts):对Join Points进行声明的语言结构。 通知(Advices):在切入点处执行的代码。 方面(Aspect):上述三者的结合。以类似于类(Class)的概念,将切入点和通知组合在一起,形成一个程序单元。因为AspectJ语言结构扩展了Java语言,所以,所有合法Java程序也同样是合法的AspectJ程序。AspectJ编译器生成和标准Java字节代码一致的.class文件,任何标准JVM都可以解释执行其生成的代码。由于选择了Java作为自己的语言基础,AspectJ具有Java语言的所有优点,方便Java程序员的使用。2.开发工具 2.1 EclipseEclipse是一个开放源码的、可扩展的应用开发平台,该平台为编程人员提供了一流的Java集成开发环境。作为一套开源工具,可用于构建Web Services、J2EE等各种类型的应用,其所提供的功能不亚于、甚至超过由专业的集成环境提供的商业化产品,如JBuilder。本次设计为基于AOP的开发,通过Eclipse中的AJDT插件实现登录界面中的身份、管理权限的验证以及各界面返回主界面时的权限验证,体现出了Eclipse插件体系结构的优势。2.2 AJDT AJDT(AspectJ Development Tools,AspectJ开发工具)是AspectJ项目为Eclipse开发的插件,用于开发运行AspectJ应用,使程序能运行方面代码。AJDT是Eclipse技术项目的一个子项目,AJDT中包含一系列的称为插件的Eclipse模块,这些模块集成在一个称为功能部件的可安装单元内部,使用Eclipse更新管理系统就能安装。3.系统及数据库设计 3.1 系统设计3.1.1系统主要功能设计系统的主要功能模块如图1所示。 图1系统功能模块图 3.1.2系统业务流程图系统总体流程图如图2所示。图2 系统业务流程图3.2 数据库设计本系统采用Microsoft Access 2003作为数据库。主要涉及到的数据表有:用户表(USER_MANAGER)、会员信息表(VIPID)、商品信息表(COMMODITY_ID)、职员信息表(WORKER)、购物登记表(CONSUME)、销售记录表(WORKER_COMMODITY)。下面介绍各个数据表之间的关系。USER_MANAGER表示一个单独的表,用来存放管理用户的信息,和其他表之间没有关系。其他几个表是系统用来管理各个模块的。其中: VIPID表存储了会员的详细信息,VIP编号是唯一的,它和CONSUME表中的VIP编号相对应。 COMMODITY_ID表用来存放商品的详细信息,其中商品的编号是唯一的。 WORKER表存储了职员的详细信息,职员编号是唯一的,它和WORKER_COMMODITY表中的职员编号对应。根据VIPID和COMMODITY_ID表可以建立CONSUME表。根据WORKER和COMMODITY_ID表可以建立WORKER_COMMODITY表。在建立了超市管理系统的数据库之后,我们还必须为应用程序建立数据源。本设计采用ODBC管理器建立数据源。4.系统功能介绍 本设计完成了超市管理系统的部分内容。系统总共分五个功能模块:商品信息、VIP信息、职员信息、系统维护、信息记录导出Excel表格,具体介绍如下。4.1 登录窗口用户进入登录界面,输入用户名和密码,此时系统开始进行身份验证,如果此用户合法,进入主窗口,同时调用方面代码进行权限验证,使得该用户权限下的相应条目处于可用状态。否则,提示错误信息,要求用户重新登录,同时调用方面代码记录登录次数,如果连续三次登录失败,系统将自动退出。4.2主窗口主窗口如图3所示。此时的用户权限为manager,所以职员的相应目录处于可用状态,导出记录中的职员记录导出、销售记录导出处于可用状态,图4为成功导出到Excel表的提示窗口。如果用户权限为其它,则对应其权限的条目处于可用状态。图3系统主窗口 图4导出Excel表成功窗口4.3商品信息模块系统通过登录时的身份及管理权限的验证,如果其管理权限为vipcomm,则有对商品及会员管理的权利。现在介绍一下各商品信息窗口。4.3.1商品信息录入窗口 商品信息录入窗口主要实现商品信息的录入。当输入为数量、价格、折扣时,必须是数字,否则会有相应的消息框提示。当输入完信息后,单击“确定”按钮将录入的信息保存到数据库中。因为商品编号是唯一的,所以输入的编号有重复时,系统会去查询数据库中是否已经有此记录,如果存在,检查除数量外其他字段对应的值是否相同,如果相同,则将本记录的数量字段的值与录入的值相加,实现数量的累加操作。弹出某商品数量增加成功的消息。否则提示用户该商品号已被占用,重新输入商品号。如果所有信息正确,系统会提示商品信息录入成功。此时所输入的商品信息被保存到数据库中。按“退出”按钮将直接退出系统,按“返回”按钮调用fanmethods1中的FanMethods()方法系统返回到主界面,调用方面代码实现返回主界面时相应的管理权限保持不变。4.3.2商品信息更改窗口 当输入编号时,对应的商品名称和产地会自动显示在对应的文本域中,如果不存在,则弹出对应的消息。此窗口和商品信息录入窗口类似。当用户没有输入所有资料时,会有对话框出现等待用户确认。当用户按照要求修改成功后会弹出修改成功的提示信息。“退出”按钮和 “返回”按钮的功能与商品信息录入模块中的相同。4.3.2商品信息查询窗口 本窗口实现对商品信息的查询。可以按照多个关键字进行查询,即:商品名称、商品编号、商品产地。当用户未在相应得文本域中输入内容时,将实现数据库中的记录按照关键字的升序显示在 JTable表中。此时为商品编号文本域中无输入时对应的窗口。根据选择输入条件的不同,“请输入查询编号”标签也随之改变,即:当选择的条件为名称时,对应的标签为“请输入查询名称”。如果输入到文本域中的内容在数据库中找不到的话,这时系统会告诉用户无此商品记录的提示信息。“退出”按钮和 “返回”按钮的功能与商品信息录入模块中的相同。4.4 VIP信息模块4.4.1 VIP信息录入窗口 信息录入窗口实现会员的录入,实现的功能与商品信息的录入基本相同。其中VIP号必须是数字类型,入会时间的格式需按照提示输入,否则都会出现相应的信息提示。4.4.2 VIP购物登记窗口 购物登记窗口如图11所示。该窗口实现了以下操作: VIP购物信息保存到CONSUME数据表中。 商品数量的更改保存到COMMODITY_ID数据表中。 职员的销售记录保存到WORKER_COMMODITY表中。4.4.3 VIP购物信息查询窗口 在这个窗口中可以看到两个表,一张表是用来显示查到的会员的信息,另一张表是用来显示查到会员的所有购物信息。在输入框输入所要查询的VIP编号,单击“查询”按钮,就会查到相应的会员购物信息。如果输入的会员不存在,则会弹出相应的提示,告诉用户所输入的会员编号不存在。4.5职员信息模块4.5.1职员信息查询窗口 该窗口可以实现按职员编号、职员姓名查询。也可以直接按“第一条”、“前一条”、“下一条”、“最后一条”按钮实现逐条查询。“退出”按钮和 “返回”按钮的功能与商品信息录入模块中的相同。4.5.2职员信息操作窗口 该窗口实现对职员信息的全部操作: 新增 即新来员工的登记工作。成功增加职员记录后,将会弹出职员记录增加成功的信息提示。 修改 当点击该按钮后,职员姓名对应的文本将直接由输入的编号得出,如果未修改全部字段,将会有信息提示,等待用户确认后,弹出相应信息修改成功的提示信息。 删除 只需用户输入职员编号,就可以完成删除操作,因为删除操作的特殊特点,系统会提示是否确定删除记录,确定用户要删除后,提示删除成功的信息。4.5.3职员销售记录查询窗口 从主窗口点击“销售记录”菜单项,进入职员销售记录查询窗口。本窗口可以实现按职员编号、职员姓名、商品编号、商品名称查询。具体实现同商品查询模块相同。4.6用户信息模块从主窗口点击“系统维护”菜单项,将看到如图5所示的窗口。该窗口主要实现用户的添加、用户信息的更改、删除操作。需要注意的是因为该数据表是登录时用到的,所以密码需重复输入,当输入不一致时会提示两次密码输入不一致的信息,如图6所示。其它操作与职员信息操作窗口基本相同。图5职员销售记录查询窗口图 图6密码不一致提示窗口5.结论本设计是基于AOP的超市管理系统,通过这次设计,使我对开发软件的全过程有了深刻的了解,并加深了对Java、Access 2003的认识和理解。通过此次毕业设计,我学习了一个新的开发环境Eclipse,更主要是运用面向方面编程的思想完成了这次设计,为以后的学习打好基础。由于自己缺少实践经验、水平有限、对设计工具的了解也不够深入,系统不可避免地存在着这样或那样的缺点和不足之处,恳请各位领导和老师给予批评指正,提出宝贵意见,以利于本系统的进一步完善。参考文献1 阎菲.Java程序设计教程M.北京:中国水利水电出版社,2004 2 Kiczales G, Hilsdale E, Hugunin J, et al. An Overview of AspectJ C. In Proc. ECOOP 2001, LNCS 2072, Berlin, June 2001. Springer-Verlag, 327353 3 Lieberherr K, Orleans D, Ovlinger J. Aspect-oriented Programming with Adaptive Methods J. CACM, October, 2001, 44(10) 4 Lodewijk Bergmans and Mehmet Aksit. Composing Crosscutting Concerns Using Composition Filters J. CACM, October 2001, 44(10) 5 Tarr P, Harrison W, Ossher H, et al. Workshop on Multi-Dimensional Separation of Concerns in Software Engineering

温馨提示

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

评论

0/150

提交评论