软件可扩展性设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件可扩展性设计与实现
作为很多类似于矿物局这样包括许多相同职能部门(各分矿)的单位,其下各部门的业务流程及其所涉及的关系模式具有相似性。要为各部门按照相同的思路分别编写各自的一套几乎完全相同的程序无疑会浪费大量的时间、人力和财力。此时,引入程序自动生成(或自动套用)的思想是非常必要的,因为各矿的业务流程相同,所涉及的关系模式也相同。我们便可以在完整地实现好一个部门的程序后对其进行适当的改造,使其成为能供所有部门共同使用的程序。这需要我们做如下两方面工作:首先应根据现有部门中的数据库表生成新部门的数据表结构。在我们的系统中,本项工作通过编写特定的JavaBean程序来完成。其次,应将已生成部门程序中“能变的”部分利用变量替换常量的方式来将其转化成程序中“可变的”部分,从而实现程序的自动套用。
至于程序的自动生成,这是我们生成新矿程序的第一思路----最初,我们的思路是,根据已有矿的程序文件,利用JAVA中的FileInputStream类来复制生成新的文件。这样,在生成过程中,还应对“要变的”部分进行修改,具体的实现过程是进行文件内的字符串替换。这种方式要在文件的复制过程中加入查找、替换的操作。此做法的弊端是:(1)程序的冗余:每生成一个新矿,便使整个系统的文件数量增加一大部分,久而久之,难免会使系统过分臃肿。
(2)字符串的查找、替换要求极高的准确性和全面性:查找不够准确或全面将有可能导致新生成的程序根本无法使用。基于以上种种弊端和不灵活性,我们最终采用的是程序的自动套用方式。但这并不是说程序的自动生成没有用武之地,对于那些子系统间的相似性并不是很强的系统而言,使用程序的自动生成未免不是一种对策。
软件可扩展性设计与实现
时间管理的概念
对于一个MIS系统,管理通常都是面向时间的,有的以年或季度为单位,有的以月或周为单位,一些业务比较频繁的系统甚至还会以天或小时甚至分或秒为单位。其中,系统所能使用的年份将最终决定软件的寿命。传统C/S模式的软件开发中,通常是利用下拉列表给出系统可使用的年份。这种方式不具灵活性。要想延长软件的使用寿命,必须修改下拉列表中的年份,也就是要修改源程序。可见,这种陈旧的利用年份的方式极大地钳制了软件发挥作用的时间。在我们的软件中,引入了时间管理的概念,将对时间的管理加入到各级管理员的后台管理程序中。同时,在相应的数据库用户下建立年份维护表,供系统程序调用。这样,系统所能使用的年份是动态变化的,由管理员直接维护。管理页面以较为简洁的方式实现,只要管理员从中输入起止年份,后台数据库中的年份维护表中便可生成起止年份范围内的所有年份,供程序调用。这样,系统所能使用的年份是动态变化的,也就不再是影响系统寿命的致命因素了。