层次化构件为软件系统的可伸缩性提供了强有力的保证,使得软件开发人员开发相关软件产品或者开发系列版本的软件产品变得简单化,提高了软件开发的经济效益和社会效益。软件构件分层没有定论,分层的结构类型很多。最常用的情况是,软件的构件分为物理操作层构件、公共服务层构件、用户界面层构件以及特定领域层构件4种,但是这4个层次的划分,是比较模糊的划分,它们不具有严格意义上的上下层关系。下面以物理操作层构件、公共服务层构件为例,探讨基于构件基础上的层次化软件构造。
1.物理操作层构件
物理层构件是为上层提供数据库或者物理硬件的一种透明、统一的操作服务,具有多样性和复杂性的特征。物理操作硬件的构件,需要对硬件控制信息数据系统进行定义,同时也要对上层服务接口进行重新定义。这些接口的定义必须要明确、简单、清晰,在接口保持不变并且能够实现原有服务的条件下,可以使用不同的实现来代替原有的实现。对于硬件的常用操作可以使用统一的方式进行定义,如发送控制信息、打开关闭硬件、捕获硬件中断请求、读取反馈信息等等,这种统一的开发方式简化了硬件操作的复杂性,能够减轻工作人员的开发负担。
对于一些特定的硬件,例如用于产品记录的条形码、高炉控制用的温度计、手写输人的手写板、声控装置的声音传输设备等等,都需要设计专用的逻辑控制模块。在将这些模块开发成构件的过程中,需要将相关的构件集成到控制软件中,同时,需要保持硬件设计的不变动,在硬件设计不变的情况下,只需要将控制构件更新,便可以实现改进的功能。对于数据库的操作构件,需要沿用ODBC的思想,以便为数据库的插入、选择、更改和删除提供相应的接口,在这种情况下,不管后台数据的大小和类型发生什么样的变化,应用软件仍然可以完成既定的任务。
2.公共服务层构件
公共服务层构件能够为常见的问题提供相关的解决算法,例如目录管理问题的解决、文件读写问题的解决、报表制作模板的解决、网络通信问题的解决等等,同时,公共服务层构件还可以对常用的数据提供操作支持,这种构件支持重复利用,能够有效节约软件开发的时间,避免重复劳动的发生,避免重复开发过程带入新的错误,此外,还可以提高软件开发的正确率,从而实现提高软件产品质量的目的。在科学计算领域中,如三角函数的正弦、余弦、正切、余切等要求较高的算法、微积分运算、概率求解问题等,关于这类问题可以根据专家的高效算法来实现,这样在遇到相应的问题时就不需要去查阅资料,可以用编码来实现,既可以保证算法的正确性,也能够节省软件设计和开发的时间。此外,在科学计算领域中另外一个重要的内容就是各种函数曲线的绘制,如常用的圆、矩形、正弦、余弦、抛物线、物理实验曲线、化学中原子、分子结构图等。这种结构图的绘制过程十分复杂,因此,可以将其开发成为特定的绘图构件,节约开发人员的精力,现在主流的高级程序设计语言Java中都开始提供类似的构件。另一种公共服务构件可以提供常见的操作支持,如栈顶元素的获取、压栈出栈操作等。无论该种元素的类型是组合结构还是整数结构,无论其存放方式是树、数组、链表还是其他的结构,该种构件都能够提供统一的服务接口,也可以根据数据结构动态的变化来选择不同的算法,这样,就不需要另行编写查找语言代码。
这种公共服务层构件的使用频率较高,在开发时需要进行深人和仔细的分析,并将相关领域专家学者的科研成果融合进来,提供统一的服务接口,使各类构件能真正实现“即插即用”,能很好地组合新的软件。
在很多大型项目的开发中,层次化软件构造的应用范围十分广泛,在软件开发过程中以及后续的维护过程中,层次化软件构造都具有其独特的优势。基于层次结构开发的软件易理解、易实现,将不同层次的开发任务交给不同的软件开发人员,可以高效利用软件开发人员的专业特长和开发经验,提高软件并行开发的能力,大大节约软件开发的周期时间。基于层次结构开发软件大大提高了构件的重用性,已经开发的构件可以在本软件中得到反复运用,而且软件版本升级后也可以继续使用这蚱构件,实现软件构件的即插即用,通过构件集成就可以开发出全新的软件。由于底层构件早就开发完成,当上层构件需要添加新功能时,只要对编码进行简单的编排即可完成,具有很高的可修改性、可扩展性并且易于维护,可以有效缩短软件开发的时间周期,简化软件系统的后期维护工作。