软件开发平台设计思考

      一个软件公司要想提高公司的软件开发效率,一定会有自己的软件开发平台。今天就和大家分享下一个软件平台的设计思考。
       在设计软件开发平台过程中,为了少走弯路,我们要尽量多往外看一看,吸取一下别人成功的经验,结合自己的实际情况进行设计。在我查看了不少的业界软件开发平台,我把它们分为三类。下面介绍如下三类:

第一类
        该类产品是基于业务对象的业务架构平台,业务对象的配置过程是平台的核心,通过配置业务对象基本完成了整个软件开发过程。业务对象的配置包含对象信息的配置、对象的分类、对象的方法、对象的视图、子对象、对象的属性、对象的页面展示形态等;其中属性的配置包含属性的类型、属性值的约束、属性的页面展示控件、属性之间的依赖等。同一个对象的在不同页面的展现形态通过对象的视图去配置。这类平台淡化了页面的交互配置,而是将页面的展示方案交给对象通过对象展示模板的方案进行配置。
      因此有关页面展示的配置过程并不是特别直观,主要是通过内置的展示模板供用户选择且都被包含在对象的配置过程中,在展现交互层的动态能力偏弱。这种方式虽然不直观,但是由于对象的特征和展示的配置都集中在业务对象上,软件的迭代要更加敏捷一些,因为通过更改对象的配置就可以适应需求的变化。

以下是某产品的对象配置和属性配置的部分截图,提供示意查看。

对象配置界面

软件开发平台设计思考_第1张图片

属性配置界面

软件开发平台设计思考_第2张图片


第二类

       在这类平台中,业务对象的配置相对简单,业务对象配置主要包含对象基本信息的录入、子对象的添加,属性部分基本特征的录入,例如数据类型。这类平台中,业务对象的职责主要用来生成数据库表结构和绑定表单及列表。在该平台的的表单创建时,需要指定绑定的业务对象。业务对象的属性与表单的控件进行绑定。当然业务对象在初始绑定表单时特征有个转换的过程,主要是属性的类型会和控件的类型的转换。
       在该类平台中,业务对象及属性配置中,只定义了部分基本的特征。部分其他的复杂的特征例如属性的依赖(如:省和市的依赖)、属性在页面上的显示隐藏在业务对象并没有对应的特征转换。因此需要用户在页面的配置过程中进行相关级联的配置,这种属性依赖在页面上体现为控件之间的级联,保存后为作为页面的配置。然而当用户创建新的页面再绑定该对象时,这种级联无法传递,因为对象本身并没有存储这种级联性。不过这类产品提供了通过页面的复制进行传递这种特性。而在第一类平台中是通过属性之间值的约束进行配置的。在属性之间进行约束的话,具有全局性,即使该对象在不同的页面展示无需再次配置。

以下是第二类产品的部分示意截图:

对象属性的配置界面

软件开发平台设计思考_第3张图片

表单的配置界面

软件开发平台设计思考_第4张图片

第三类

第三类软件开发平台,它淡化了业务对象的概念,而是直接将数据库和页面的技术特征展示在配置表单上。它是以数据库域为核心。数据库的字段、特征的变化影响着页面属性、特征的变化。但也提供了在不同的技术域下个性的特征配置的过程。

数据库属性配置界面

软件开发平台设计思考_第5张图片

页面属性配置界面

软件开发平台设计思考_第6张图片

总结分析和扩展

       上述三类软件平台都为软件开发提供了一定的便捷,但是他们的设计理念却有着一定的差异。第一类平台所有的配置都集中在业务对象,通过对象的配置解决所有的问题。第二类平台在业务对象上有着粗略的配置,更多细节复杂配置体现在页面的配置上。而在第三类中,直接从技术出发,由数据库的配置影响页面的配置,允许部分页面的配置再次更改,理念更加技术化。
       而在设计一个平台时,首先需要定位平台的客户目标,是开发人员?还是业务人员?还是有一定开发能力的业务人员?是一个人完成整个过程?还是多人协同完成整个过程?定位不同必然平台设计的思路也会有差异。很显然,上面我介绍的这三类平台都是由一个人进行完成整个软件配置过程。
       其次我们需要清楚软件只是业务的体现方式,软件是实现业务的一种工具,在没有软件的年代,我们通过文字、图片、口述交流来表达业务,而在有了软件后,使得表达业务更加的方便。因此我们要明白,业务才是软件的本质,业务的特征才是决定软件的核心设计。有了软件后,软件本身也会衍生出一些软件本身的特征,例如软件采用的编程语言、软件的界面形式等。
        软件的生命周期有不同角色的人参与,从调研到开发再到运维。在这里我主要分为业务和技术两种角色。业务人员进行对软件进行业务建模,技术人员对技术建模的产物进行加工和技术特征的补充。
       在一个软件中我们首先要能够区分哪些是业务决定的哪些是技术决定的,换句话说哪些是业务特征哪些是技术特征。业务特征往往可以引导和制约技术特征的值,业务和技术特征的区分可以让不同的人参与进来,业务精通的人参与业务特征的配置中,技术精湛的人参与技术特征的补充。因此区分哪些是由业务决定的,哪些是由技术决定的格外重要。
       下面的列表是对一些常见的特征之间的映射关系。

属性业务特征 对应技术特征
数据类型 控件类型
属性依赖 级联控件
非空 必填
密码 密码控件
唯一性 数据验重
可变性 不可修改
多值 控件类型
格式规则 填写约束
范围规则 填写约束

 

 

 

 

 

 

 

 

 

 

        对一个特征的看法不同的人有不同的看法,例如级联有人说是技术的,有人说是业务的。在判断特征域的归属时,我给大家的建议是如果这个特征没有软件、没有技术也能表达的话那么他就是业务的。

 

 

你可能感兴趣的:(软件平台)