UML软件工程组织

直面软件开发问题
作者:李春华

我们先来看看软件开发过程中的两个典型场景、这些场景在每个项目中都有可能会遇到,它们比较客观的反映了国内很多软件公司项目开发过程的实际情况。

场景一:一个项目组刚刚接了一个比较大的项目,项目的需求很明确,客户对功能的细节也不是很挑剔,只是对性能要求比较高,整个系统要能承受非常大的用户量,对系统的响应速度要求也很高,项目经理感觉这个项目没有什么大问题,一切都按照计划进行,可是最终部署到用户的服务器上时,整个程序的效率很低,由于公司在这方面没有什么技术积累,虽然以后修改了多次,性能仍然达不到要求。

场景二:某个大型电子政务系统年底需要生成大量的报表,可是报表系统突然出现了故障无法使用,这个报表系统是由一个老程序员编写的,可是此时他已经离开了这家公司,也没留下什么文档,别的开发人员根本无法维护这个报表系统,由于时间紧迫项目经理只好决定让开发人员手工编写了所有报表,浪费了大量的人力物力。

软件开发面临的主要问题

前面的场景显示了国内一些软件公司存在着规模小、技术力量薄弱、管理薄弱、设计人员缺乏等问题,除此以外,我们认为还有以下一些问题严重的制约着管理软件的进一步发展:

  • 产品开发技术路线的选择比较随意,很难适应未来产品的发展的需要,软件不能进行无缝的升级。产品和项目界限不分明,通用性、定制性比较差。产品缺乏良好的结构设计,代码难以维护。
  • 产品的质量很难保证,很多软件产品是从一个项目过渡来的,品对安全性、性能、部署环境往往考虑不够。
  • 产品开发对开发人员的要求比较高、人员的流动对开发的进度影响很大。在很多公司中开发人员没有独立的分工,每个人都负担着一个模块的需求、设计、实现,很多开发人员甚至需要负担一定的美工工作,产品的测试也不是很细致,开发人员负担角色过多的后果就是每部分的工作都很难做得十分到位。
  • 设计能力不足,很多项目经理和开发人员对设计重视不够,为了赶工期,很多项目的设计过程过于简单,有的甚至根本没有设计过程。
  • 项目经理的管理能力不足,没有及时把握进度项目经理自己也不知道项目的状态,下属人员报喜不报忧,害怕报告问题后给自己添麻烦。进度管理必须随时收集有关项目管理的数据,开发人员总是担心管理工作会增加自己的工作量,不愿配合。管理人员甚至不知道应该收集哪些数据。

6、开发计划不充分,没有良好的开发计划和开发目标,项目的成功就无从谈起。

7、找不到软件工程或者项目管理的方法能够大幅度提高应用软件的开发效率,开发周期长、开发费用高,实施费用超支和工期延长,已经司空见惯。更加可怕的是,随着企业的环境和需求的不断变化,“建成即成闲置”,形成软件工程的灾难。

业务基础软件平台

软件开发的问题是由多方面原因造成的,有市场的原因、有公司管理水平的原因,也有技术的原因。目前基于业务基础软件平台的开发方式是解决这些问题的一个比较好的解决办法。业务基础软件平台是一种技术创新,它使软件平台又多了一个层次,并将应用软件的业务逻辑和开发技术分开,使得应用软件的开发者可以仅仅关注应用软件的业务过程,而不必关注其技术的实现。这使管理与业务人员参与应用软件的开发成为可能。

业务基础软件平台包括集成应用平台、开发体系两个部分。从技术角度分析,业务基础软件平台为复杂应用软件系统的开发提供了一个基本框架,并有与之相应的、方便易用的开发与维护管理工具。这个框架给出了一些复杂应用软件的基本组成部分和实现方法,并且预置了很多供参考的软件模块。有了这样的准备,在业务基础软件平台之上开发管理软件就可以降低复杂性,省去很多基础性的研发工作,从而大大缩短研发周期,提高研发效率。

具体来说,业务基础软件平台能满足复杂应用软件系统开发的如下要求:首先是速度要求。通过业务基础软件平台提供的基本框架,以及预置好的模块,软件提供商能很快地研制出用户所需要的复杂应用软件系统。其次是灵活性要求。通过业务基础软件平台提供的开发与管理工具,软件提供商能很方便地满足用户个性化的需求,以及用户在发展过程中各种各样变化的需求。再者是集成性要求。业务基础软件平台为复杂应用软件系统提供了一个集成框架,不仅为集成同一平台上的各种不同软件提供了规则,还为集成其他应用软件系统提供了集成接口。

ezFramework一个佳例

ezFramework是一套面向中小项目的基于J2EE整体解决方案,是面向电子政务、电信、税务、社保、金融等领域的业务基础软件平台,它把开发项目过程中经常遇到的问题进行总结,通过平台的形式来解决这些问题。使用ezFramework可以让开发人员把精力更多的集中于业务,而不是技术本身,所有的技术问题和通用模块都由ezFramework框架来处理。

ezFramework有一整套开发J2EE表现层的界面库,这一点和AWT、SWING是一样的,所不同的是ezFramework是面向BS结构的J2EE表现层的界面库,而AWT和SWING是面向桌面程序的界面库。ezFramework的客户端不需要安装任何运行环境,只需要有一个标准的Internet浏览器就可以了,ezFramework运行在服务器端,能够自动的生成界面需要的html代码。基于ezFramework开发应用软件可以降低软件开发的成本,由于有了界面库,我们只需要把我们要显示的界面描述清楚,框架可以按照我们的要求生成各种风格的界面,而不再需要美工和程序员反复的修改程序。

ezFramework框架的表现层是这个产品的一大特色,除了表现层外,这个框架还包括业务层管理和持久层管理以及一些通用的模块如用户管理、服务管理、认证与授权等等。ezFramework是一个整体解决方案,但是ezFramework不强迫用户必须使用ezFramework的每个部分,用户可以根据自己的需要自由的选择自己需要的模块。


ezFramework系统运行图

基于ezFramework开发不仅能够快速优质的完成项目,同时也有利于我们的标准化和业务积累,各个项目的模块互相都可以使用,同时随着ezFramework的不断升级,软件的质量也可以不断得到提升。

综上所述,通过业务基础软件平台的方式来进行软件的开发是一种有效解决目前开发软件技术瓶颈的好办法。ezFramework已经成为清华同方的开发框架标准,形成了以ezFramework为基础的一系列技术和行业套件,开发一个应用可以从已有的构件库中选择已有的构件,而不必从头到尾进行开发,最大程度实现了组件的重用。

 

版权所有:UML软件工程组织