软件技术连载(一)

来源:互联网 发布:java等待线程执行完毕 编辑:程序博客网 时间:2024/04/30 15:59

软件技术连载(一)

PowerBuilder的魅力(一)应用软件开发障碍的另类视角

作者:轻风  个人主页 http://gentlebreeze.home4u.china.com

谈到软件开发的障碍首先想到的是软件重用的问题。如何使得软件开发标准化、共用、可装配是这一行业的人们多年追求的目标。目前的技术及体系大多围绕着这一论题展开,从软件结构的发展历程可以清晰地看出这一问题。需要说明的是我们不认为.NET完全试图解决这个问题,.NET解决的是系统互操作的问题,也就是不同系统的连通性和协作性。真正解决这些问题的方案还没有超越以组件为基石的结构。

然而应用软件开发领域的现实中遇到的障碍绝不仅仅是重用的问题,或者说商业软件公司在为客户服务过程中的环境复杂的多,现实的多。我们看到这么一个现实,客户对我们承诺的扩展性并不感兴趣,他们无法理解的是为什么原本并不复杂的业务功能总是改来改去还是实现不了。更令人尴尬的是不仅业务逻辑没有实现,甚至是集成性、连通性等我们先前推销的东西也没有实现,客户也都能忍让或者根本就不用。我们认为应用软件开发最现实的障碍就是客户的业务逻辑实现与软件开发效率的矛盾。主要表现在以下几点

1.         由于客户竞争压力的加大,要求开发时间越来越短

2.         在短时间内既要能够理解用户的业务逻辑又要能够实现软件

3.         客户的业务逻辑越来越以个性化为前提,挑战了完全面向标准化的模式的产品开发

4.         对于客户业务逻辑的特殊性和临时要求要能够快速反应和实现

5.         有能力使得客户尽快理解软件是否满足他们的要求,并及时修改

 

障碍消除与PowerBuilder

一、快速实现能力

理解客户需求的时间成本是难以迅速降低的。你需要具备一定的行业知识、交流能力和抽象能力,这不是技术范畴的问题。技术范畴只解决了提供方法帮助你描述需求和调整审视角度,例如UML。因此我们认为理解客户需求的时间相对固定。在这种状况下试图降低总体的时间只有降低软件开发的时间,也就是必须具备快速实现能力才能够将主要精力放到业务逻辑以及同客户的交流上,才能够快速响应客户的变动要求。很多3GL比较坚固,但是开发时间过长,特别是界面与逻辑分离造成了开发量剧增,一个简单的要求需要在多个层面上书写基本代码和连通代码,这使得开发人员没有时间花费更多的精力在业务逻辑的理解上。须知项目的总体预算是有极限的,只能够平衡而不能够兼顾。PowerBuilder4GL体现在快速实现的原则基础上。特别是在数据计算领域能以交互的方式能够实现计算逻辑和界面构造的一体化。计算列和对计算列的访问、分组与分组计算等等只需要交互模式就可以同时实现逻辑和界面。我们说ADO/JDBC都是良好的数据访问模型,但是却没有数据计算能力,用JDBC对结果集进行一个简单的计算是如此的复杂:方法+循环+方法,而用PowerBuilder你需要做的就是点击。数据计算能力集中体现了商业软件开发的效率原则。另外其他的RAD都把界面和数据本身分开,这样自然有灵活性的优点,但是却迫使开发者进行频繁的切换分别完成逻辑和界面。按照Sybase公司的解释:你应该专注于业务逻辑的理解而不是代码的实现。

二、技术实现的低成本

系统和项目最终要盈利。如同前面阐述的客户需求的成本也同样是难以降低的,必须努力降低总体开发成本。除了实现速度以外要考虑到学习曲线、平均工资、培养成本、流失风险等等诸多因素。PowerBuilder降低技术成本的主要方式是专注和开放方式。因为客户从来不需要所有的问题都解决好,只需要关键的问题解决好。就如同众多的技术人员知道的,应用软件领域的成本仍然主要集中于对关系数据库的访问、计算以及数据表现上,同时不同的语言有着不同能力的各种模型,这一问题困扰着开发人员,PowerBuilder不断地保持这方面的低成本优势,期待中的11版即将封装日历控件到数据窗口以内甚至是数据窗口的树型结构表现形式,此外,更努力地扩展了这一领域特长的适应性,例如手持设备、WEB。还使擅长的领域与其他体系能够集成如J2EE.NET(这将在以后的连载中详细讨论)。这使得自己擅长的领域可以溶入到其他体系结构当中,无论.NETJava自身都没有提供足够强大的易于掌握的和低价的数据计算模型,这始终限制了它们的应用范围,这种开放方式使得自己的特长得以迅速放大。我们运用java做服务开发的时候如果有数据窗口作为数据计算模型支撑,是多么惬意的事情,它就要实现了。这种理念和Java以及微软试图无所不能的方式是不同的。

三、业务交流与程序集成

风险往往来自于这么一个现实:用户不看到结果往往无法阐述自己的需求,这也就是原型方法的重要性。很多分析员画了流程图、IPO给客户看,并让客户确认,结果是客户要去学这些图形的含义,但最后还是无法说清楚自己的意思。不是说建模不重要,而是必须有良好的方法和客户交流需求,使得客户可能确认需求,仅靠建模是不够的。PowerBuilderInfoMaker工具是主要的原型工具,它使得开发人员以极为快速的方式建立程序原型,并能够运行展示给客户,使得客户明确未来的程序基本样式。另一个极为重要的特性就是InfoMakerPowerBuilder的一致性。建立的原型可以集成到未来的程序中,而不是摧毁,这大大提高了开发的重复利用,节约了开发成本。如果说UML是一个工程图纸,那么InfoMaker就可以做成一个缩小比例的效果模型,一个可被重用的效果模型。

需要再次强调的是:我们不排斥其他模式的优点,正像这些优点无法被抹煞一样!

 

 

原创粉丝点击