【#第一文档网# 导语】以下是®第一文档网的小编为您整理的《系统分析师论文范文-论基于构件的软件开发》,欢迎阅读!
论基于构件的软件开发
【摘要】
2011年3月,我有幸参加了沈铁设计院综合管理信息平台(简称:信息平台)项目的开发工作,并担任系统架构师一职,负责系统的架构设计及核心构件的开发工作。该系统是沈阳铁道勘察设计院有限公司委托开发的,项目于2011年底验收,满足客户方提出设计、生产、经营、管理的需求。 本文以信息平台为例,讨论基于构件的软件开发,简单说明为什么要用构件开发及获取构件的方式,接着详细介绍了通过一次登录后可以任意跳转到其它各子系统的单点登录构件、数据库访问构件、展现信息的层次结构的目录树构件、方便设置文档格式的活动表单构件等系统主要的构件以及开发过程,开发策略,加强构件复用程度,提高软件的开发效率,缩短软件的开发时间。文章最后简略说明几种构件技术的发展趋势。 【正文】
2011年3月,我有幸参加了沈铁设计院综合管理信息平台(简称:信息平台)项目的开发工作,并担任系统架构师一职,负责系统的架构设计及核心构件的开发工作。该系统是沈阳铁道勘察设计院有限公司委托开发的,项目于2011年底验收,满足客户方提出设计、生产、经营、管理的需求。 信息平台包含有企业门户、综合办公、设计生产、经营计划、技术质量、人力资源、档案管理、信息中心、公司决策、后台管理等十个子系统。为利用好以前各种硬件平台的投资,选择信息平台运行于windows+sqlserver2005 平台上,采用.net开发技术。采用四层B/S架构,这四层分别为界面层、外观层、业务逻辑层及数据访问层,信息平台的各种功能基本具有这四层架构。系统的主要功能有:通过一次登录后可以任意跳转到其它各子系统的单点登录;采用目录树构件来展现数据的层次结构;活动表单构件方便用户编辑格式化的文档数据等服务。这些功能都以Web service接口的方式公开给各应用系统调用,有了这些基础功能,应用系统就可以省去单点登录,用户格式化的信息编辑,信息的层次展现等功能的开发和维护,缩短开发周期和降低开发成本。 信息平台采用了基于构件的开发方式,基于构件的软件开发是一种自底向上的,基于包装好的构件来构造应用系统的方法,它主要包含构件的检索与获取,理解与评价构件,修改构件,组装构件,应用与布署等工作。基于构件的开发涉及到构件的获取问题,目前构件的获取主要有三种方式:公司产品库,第三方构件和自主开发,因为考虑到需求变化时构件的修改问题,我们只采用了从产品库获取
和自主全新开发两种方式。 鉴于我们公司具有多年的项目积累,我们从公司的产品库中选择合适的构件,对于与需求类似的构件,进行修改后,做好构件的版本记录。经过我们的分析、筛选和比对,发现以往项目中经常用到的单点登录模块,只需要改进一下验证方式就可以复用到新系统中;接着从共用的底层模块中,发现了数据库访问模块,只要在灵活性和可替换性方面加强一下,也达到我们复用的标准;最后发现目录树和活动表单这两个模块,几乎是最成熟的,除了界面外其它不用修改,可以直接复用。 接下来详述一下组成系统的主要构件: 1.首先介绍一下,单点登录构件(SSO),SSO可以让用户登录信息平台后,可以跳转到任意其它应用系统,进入其它系统时无需再次登录,免除用户每使用一个应用系统就得再次登录的重复操作,需要接入的应用系统只要到信息平台注册,按照规范配置即可实现这一功能。当用户进行页面请求时,就会被SSO捕获(采用.net 的 httpmodule机制),SSO首先判断是当前客户端是否存在在该用户的Cookie,如果不存在则跳转到信息平台的登录页面,要求通过后会跳转到用户所请求的页面,完成一次SSO过程。验证用户的合法性,有几种情况:第一种是对用户的密码进行MD5加密后与数据库进行比对,同时还要对用户登录的计算机与数据库进行比对;第二种是判断用户是否插入登录钥匙盘。只要有一种验证通过即视为验证成功,不再进行下一步验证,对于这种需求,由于项目初期还不知以后会有多少种验证方式,所以从构件库获取之后,在设计上增加职责链的设计模式,以适应增加新的验证方式提高扩展性。 2.数据库访问构件,从构件库获取后,抽象出一套规范的数据访问接口,以后构件的修改不会影响到其它调用的程序。为了解决以后还可以替换成其它类型的数据库平台,采用了“倚赖注入”的理念,即抽象工厂模式,通过配置文件配置数据库操作的具体实现构件(类),来生成实例,这样就可以实现以下场景:比如数据库从 sqlserver2005替换成oracle,只要使用oracle数据库访问构件,然后配置在配置文件中,即可以完成不同数据库平台的切换,其他程序无须改动,做到平滑过渡,提高系统稳定性。 3.活动表单构件,这个构件是直接从产品构件库提取出来的,只做了界面调整,为信息平台的企业门户内的通知公告、院内新闻、重要精神等等栏目使用,用户在创建发布的信息时,可以对发布的内容在活动表单编辑器内设置字体、格式、段落等排版信息。同时支持附件上传功能。 4.目录树构件,这个构件也是直接从产品构件库提取出来,为信息平台的设计生产的单项设计项目的信息进行构件复用,项目树结构由六级节点组成。Root根节点为零级节点由项目名称表示,一级节点由设计阶段表示,二级节点由单项工程名称表示,三级节点由专业表示,四级节点由功能区(工作区、输入区、提资区、收资区、成品区等)表示,五级节点即叶节点由功能属性名(图纸、文字、图片、其他等)表示;还有人力资源子系统的组织机构树等。 5.在界面层
的设计中,因为构件库中没有相应的控件,只好采取自主全新开发,如时间段选择控件,文本框智能提示控件,基于flash的多文件上传控件,以及用户/部门选择控件。这些控件还提供了日常的数据验证功能,开发时跟.net服务器控件一样,拖拉到开发页面即可,让开发人员把精力集中在系统的业务功能实现上,而非技术细节,缩短了界面层的开发周期,也为后续项目积累了基础控件。 该系统采用基于构件的开发方法,从构件库中获取构件,并采用了“依赖注入”,抽象工厂,后期绑定等技术,提高扩展性、灵活性和稳定性。对于构件库没有的进行了自主全新开发,开发完成后加构件库,为后续项目开发提供构件。这种开发方法保证了系统质量并按期通过验收。 虽然从产品构件库中获取到大部分的构件,但构件本身的修改不是件容易的事情,如上述所提的单点登录(SSO)构件,数据访问构件都需要资深的开发人员采用一些如“依赖注入”,抽象工厂,后期绑定等技术,提高扩展性、灵活性和稳定性;而构件库没有用自主全新开发的,比如flash批量上传文件控件还涉及flash,Ajax等技术,用户/部门选择控件对javascript技术的要求也特别高,这就要求构件开发人员的选拔和培训成了一件紧迫的工作,在以后的项目中会更加重视这一工作,培养合格的构件开发人员,让更多合格的构件加入到产品构件库,提高公司的整体开发效率。 目前主流的构件技术标准有三种:Corba,EJB和COM/Dcom/Com+,Corba是OMG组织制定的一种标准,这种标准易于扩充和修改,具有较高的通用性和适应性;EJB是JAVA体系的,凭借JAVA跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台Com/Dcom/Com+是微软公司研发的,主要用于windows平台,对windows支持度高。 最后展望一下构件技术的发展趋势,随着企业业务的开展,信息技术的不断应用,企业集成的问题越来越突出,构件将向SOA架构靠拢(服务也是一种构件),构件间通过ESB方式进行通信,实现各应用的松耦合,提高灵活性和扩展性,以支撑不断变化的企业业务需求。
本文来源:https://www.dy1993.cn/o8A.html