基于物业管理系统谈软件开发

来源 :硅谷 | 被引量 : 0次 | 上传用户:xjfox1986
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]以Microsoft Solutions Framework开发模型为框架,从解决方案的定义,以及实现代码的需求分析开始,讨论建立物业管理系统整个过程;讨论物业管理系统的设计和体系结构;讨论设计过程的各个递进阶段,包括概念、逻辑以及物理设计模型;使用统一建模语言(UML)分析和设计事务的处理过程。
  [关键词]物业管理 MSF C#.NET 设计模式 面向接口
  中图分类号:TP311文献标识码:A 文章编号:1671-7597(2008)1120111-02
  
  一、前言
  
  随着信息化的发展和居民社区的建设,施行规范同一的物业管理,用信息化技术提高物业管理水平势在必行。物业管理中涉及到居民生活的方方面面,如何更科学、更高效地管理这些琐碎而凌乱的信息,给社区居民提供优质的服务,是每个物业管理公司需要考虑和解决的问题。很多物业管理系统虽然实现了基本信息的管理,但系统的灵活性和实用性方面仍存在不少问题。该课题研究的目的在于针对以前物业管理系统中存在的缺点,按照软件工程和面向对象的规范要求,研发一套稳定的、实用的和灵活的物业管理系统,为社区居民提供更优质的服务。
  
  二、预想(Envisioning)
  
  (一)功能需求(FR)
  功能需求是指“用户X可以做Y”这样的系统使用特性。功能需求通常可以通过技术解决方案的特定能力来完成。
  小区物业管理系统设计要满足如下功能需求:
  1.功能需求1系统操作员可以管理物业公司内的所有小区的信息。
  2.功能需求2系统操作员可以管理物业公司内所有的楼房信息。
  3.功能需求3系统操作员可以管理物业公司内所有的单元信息。
  4.功能需求4系统操作员可以管理物业公司内所有的房间信息。
  5.功能需求5系统操作员可以管理物业公司内所有户主信息。
  6.功能需求6系统操作员可以管理所有户主的每月电费信息。
  7.功能需求7系统操作员可以管理所有户主的每月井水费信息。
  8.功能需求8系统操作员可以管理所有户主的每月自来水费信息。
  9.功能需求9系统操作员可以为每个户主添加服务费。
  10.功能需求10户主可以通过浏览器查询自己的交费记录。
  (二)非功能需求(NFR)
  非功能需求是指系统范围的能力或者行为。
  1.非功能要求1系统可以针对用户对计算的熟悉程度,让用户自己选择数据系统。
  2.非功能要求2系统将来可能要在网络环境下运行。
  
  三、规划
  
  获得成功的解决方案的关键是仔细规划。对于如今开发的复杂事务处理系统来讲,这个阶段就更为重要。事实上,对于.NET Framework这样的完全面向对象的环境,仔细地规划和设计应用,对于获得最优性能,可扩充性最为关键。数据模型、数据访问技术和用户接口只是开发之前必须要解决的大量设计问题中的一部分。在这部分中,将要讨论物业管理系统的规划阶段所要进行的设计考虑和决定。
  用于应用开发的Microsoft Solutions Framework过程模型,将应用开发项目的规划阶段又划分为三个相继的步骤:概念阶段、逻辑阶段以及物理阶段。
  (一)概念设计
  对于小区物业管理系统,在概念设计阶段要分析功能需求,并且根据这些需求得到一组UML使用案例图解。使用案例(Use Case)图解可以图形化地定义称为演员(actors)的用户角色,他们将会与系统、活动或者他们将要执行的使用案例进行交互。通过将功能要求表示为使用案例,会强制用户必须从使用者的观点思考系统。
  1.小区物业管理系统案例使用案例
  小区管理UseCase-操作员可以进入小区管理,系统将列出全部小区信息,操作员可以进行添加、修改、删除小区的信息。在进入小区管理之前,如果操作员未进行身份验证,则先进入身份验证。
  2.序列与活动图解
  


  小区管理者通过小区数据访问者获取全部小区的信息,保存到本地。界面对象将小区管理者的数据绑定到窗体中。
  操作员向界面对象输入新的小区名、备注提交添加申请,界面对象调用小区管理者的Add方法将新的小区信息添加到本地数据库中。
  操作员向界面对象输入新的小区名、备注提交修改申请,界面对象调用小区管理者的Modify方法将本地数据库中的小区信息修改。
  (二)逻辑设计
  在逻辑阶段中,开发者或者技术结构设计人员要将概念设计阶段定义的活动或者过程,映射到负责提供所要求功能的逻辑类或者组件。开发者通常会将系统划分为三个或者更多的逻辑部分或者层。这种类型的体系结构一般称为3-层或者n-层体系结构。逻辑阶段也是设计阶段过程中数据库结构设计人员设计数据模型的地方,包括数据结构,数据集成规则以及数据访问技术。对于小区物业管理系统采用3-层体系结构。
  
  (三)物理设计
  在规划期间的最后一个阶段是物理设计阶段,开发者和系统结构设计人员要着重定义系统的物理和特定技术的属性。对于3-层或者n-层体系结构,这通常要将逻辑层与驻留构成各层软件组件的物理计算机进行映射。
  1.选择编程语言
  小区物业管理系统采用C#开发。
  2.使用命名空间组织类
  使用命名空间将管理管理系统分别放在不同的程序集中,方便使用。
  
  四、开发
  
  在已经清晰地理解了物业管理系统的目标、功能和体系结构,接下来就要讨论一些代码和实现的细节。由于系统的类太多,代码量大,这里将只写出本系统的一部分。
  (一)Area类
  Area类是一个处于业务逻辑层,负责管理小区信息的类。通过此类可以对小区的信息进行添加、修改、删除。
  Area类需要由数据访问层的对象支持所以首先要引入下列命名空间:
  using 物业管理.DBAFactory;//此命名空间是本系统提供的数据访问层的生成工厂
  using 物业管理.IDBA; //此命名空间是本系统提供的数据访问层的接口。
  using 物业管理.Model; //此命名空间是本系统提供的类型化的DataSet,是各层之间数据传输的标准。
  Area类类图如图3-1所示。
  
  AreaDataTable属性是为界面表示层提供的数据访问的接口。AreaDataTable是Model.AreaDataTable类型。Model.AreaDataTable类是从DataTalbe类继承过来的。
  AreaManage属性是_dtArea对象中数据的导航属性。通过这个属性客户程序可以获取或设置当前_dtArea中行记录指针的位置。
  Add是为客户应用程序提供的添加小区信息的方法。
  Delete是为客户应用程序提供的删除小区信息的方法。
  Modify是为客户应用程序提供的修改小区信息的方法。
  Save是为客户应用程序提供的将本地数据库保存到远程数据库的方法。
  (二)Building类
  Building类是一个处于业务逻辑层,负责管理楼信息的类。通过此类可以对楼的信息进行添加、修改和删除。
  (三)Unit类
  Unit类是一个处于业务逻辑层,负责管理单元信息的类。通过此类可以对单元的信息进行添加、修改和删除。
  
  五、程序集设计讨论
  
  对于业务逻辑层与数据访问层的接口,一般的结构如图4(a)所示。
  通过图4,很明显可看到图4(a)显示了一种紧依赖的关系。业务逻辑层必须依赖于数据访问层才能开发,必须了解数据访问层中的各个属性以及它的方法。而且在数据访问层没有开发完之前,业务逻辑层只能做等。
  再看图4(b),它显示了一幅较好的设计图。业务逻辑层不再与数据访问层是一种紧依赖的关系。相反它们俩谁跟谁都没关系。现在的业务逻辑与数据访问层都与数据访问层接口是一种紧依赖的关系。而数据访问层接口在规则阶段就已经定义好了。这样业务逻辑层与数据访问层就可以互不干预,并行开发了。
  


  虽然图4(b)解决了紧依赖关系,但是它还存在一个问题。那就是业务逻辑层在运行时要动态的加载数据访问层的程序集,但如果业务层引用数据访问层对象较多时,会在很多地方做New的操作,而此时的数据访问程序集名称不一定就固定不变,且实现数据访问层接口的类名也不一定不变,这样数据访问层变任何一个地方,业务逻辑层的代码将大片大片的修改。为使数据访问层的修改不会波及到业务逻辑层做了如下的设计。如图5所示。
  
  从图5可以看到这时的业务逻辑层与数据访问层的组件彻底的断绝了关系。业务逻辑层不再需要知道数据访问组件叫什么名字,哪个接口是有哪个类来实现的。它就需要数据访问层的接口与数据访问工厂。在这个架构中,数据访问工厂的作用就是可以根据应用程序配制文件动态的生产了不同的数据访问组件,可以是访问Access的数据访问组件,也可以是访问Sql Server数据库的数据访问组件,也可以是访问WebService的数据访问组件,还可以是其它的数据访问组件,只要该组件是实现了数据访问层接口。
  
  六、结论
  
  在物业管理系统的开发过程中,应用了Microsoft解决方案框架MSF,不断的做迭代、增量式开发,使用软件与用户的需要层层贴近,最终完全满足用户需求。在每次的迭代中都将代码重构,找出问题的抽象,应用软件设计模式,使得软件更加的稳定,扩展性更好。
  
  参考文献:
  [1]张玉平,等. 深入浅出C#编程.北京:中国科学技术出版社,2005.89-127.
  [2]Mathew Bortniker James Conard.VB.NET事务处理高级编程(Pfrofessional Visual Basic.NET Transactions Written and tested for final release of .NET v1.0,清华大学出版社2002.7.1.
  [3]Wallace B.McClure等著,SQL Server 2005 Oracle与MySql基于ADO.NET 2的高级编程,清华大学出版社,2007.1.1.
  [4]许进标. Visual Studio.NET高手攻略. 北京:人民邮电出版社,2004.78-113.
  [5]JimArlow Lla Neustadt,UML 2 and the Unified Process Practical Object-Oriented Analysis and Design(Second Edition),China Machine Press,2006.6.1.
  
  作者简介:
  杨林,男,汉族,山东淄博,淄博职业学院信息工程系,学士,在读硕士,助教,主要研究方向:计算机应用技术。
其他文献
[摘要]介绍几种先进的公路养护技术的原理、优点及其适应范围。  [关键词]乳化沥青 封浆层 同步碎石封层 就地冷再生  中图分类号:TU7 文献标识码:A 文章编号:1671-7597(2008)1120084-01    为了保持公路交通运营的安全、快速和高效提高公路建设投资的效益,要求我们必须加快发展公路的养护技术,实现公路养护管理与技术的现代化,提高公路养护的质量与效率,保护好公路这一巨大的
正安县职高系培养初、高级技术人才的省级重点职业高级中学 ,位于正安县城东门 ,校园环境幽静 ,师资队伍雄厚 ,校园占地面积两万多平方米 ,学校教学设施齐全 ,有高大雄伟的教
中图分类号:TU2 文献标识码:A 文章编号:1671-7597(2008)1120094-01    山区高速公路有其自身区别于平原高速公路的水文地质等各方面的特点,如何准确地把握山区高速公路的特点、难点,合理地掌握技术标准,灵活地布设线位,如何将“安全、环保、舒适、和谐”的现代理念融入勘察设计之中,迫切需要加以认真研究和探讨。    一、总体设计原则    山区高速公路路线设计时,要顺“势”而
党中央国务院颁布“十一五”国民经济发展纲要之后,自对节能减排设定了具体的约束性指标,并作为考核各级政府领导的指标之一,各级政府的发展重心正由“快”向“好”逐步调整,
[摘要]思林电站引水隧洞底拱浇筑初期,混凝土表面产生气泡等缺陷,通过对其成因及各种影响因素的试验分析,采用了底拱小钢模翻模施工技术成功地解决了这一难题,施工后混凝土外观质量得到有效控制,消除了常规施工工艺中无法避免的混凝土表面气泡等缺陷。  [关键词]思林水电站 隧洞底拱 表面气泡 翻模抹面  中图分类号:TU7 文献标识码:A 文章编号:1671-7597(2008)1120097-02    
[摘要]介绍微表处的优点及施工,并说明相关集料的配比。探讨微表处施工技术的优越性。  [关键词]微表处 沥青 混凝土 养护 公路  中图分类号:TU3 文献标识码:A 文章编号:1671-7597(2008)1120096-01    随着我国公路建设的迅猛发展,公路养护特别是沥青路面预防性养护工作正逐渐受到各级公路管理部门的高度重视。如何科学、合理地进行公路养护,特别是沥青路面预防性养护,对保持
9.1 Vijeo citect 报告:服务器rnVijeo citect 报告是一个非常强大的、厂级的报告分析工具.它从Vijeo citect 系统无缝地收集历史和报告数据,集成了工业标准技术.Vijeo Citec
一、进行学校内部改革。转变学校的办学功能,按照服务油田与服务社会并举、职前教育与职后教育并举、学历教育与职工培训并举的原则,形成多功能、多层次,多形式的办学模式。
[摘要]工程担保和工程保险是建设工程风险管理的有效途径,我国的工程保险、担保制度刚刚起步,市场发育很不成熟,针对存在的主要问题提出完善的建议。  [关键词]工程保险 工程担保 现状 建议  中图分类号:F284文献标识码:A 文章编号:1671-7597(2008)1120102-01    一、推行工程担保和工程保险的意义    工程担保和工程保险是建设工程风险管理的有效途径,工程担保和工程保险
[摘要]主要介绍现阶段以全波光纤和密集波分技术为代表的光传输技术,以及光传输技术在广电技术领域中的应用,并且设想了以光技术为基础的新型电视媒体资产业务网络。  [关键词]光传输 广电领域 光应用  中图分类号:TM7 文献标识码:A 文章编号:1671-7597(2008)1120106-01    一、光传输    让我们再来看看光传输,现在各省市有线电视台网络中在主干线多使用光缆传输信号,在电