快速创建可复用体系结构

显著节约成本的重用一直是软件工程的“圣杯”。从复制和粘贴源代码到类层次上的细粒度(fine-grained)复用,再到框架和体系结构层次上的粗粒度(coarse-grained)大规模复用,复用技术已经逐渐成熟。而在体系结构上的显著节约成本的重用应该成为所有开发项目都致力的一个战略性活动。在读过这篇文章后,你将会明白运用模式及IBM Rational XDE V2003 如何创建你自己的可复用框架。

注释: 所有的模型和代码都使用XDE v2003 for .NET来描述。类似的的框架可以在J2EE环境下建立。代码语言采用C#,所以对于C++或JAVA程序员都应该是清晰易懂的。

复用体系结构

大约二十多年前,软件工程业被比喻成旧时代的打铁。在那个时候,当你想建一座房屋,要去铁匠铺找所有需要使用的金属部件,从固定在墙上的烛台到锁门的铰链,甚至小小的钉子,都需要一个一个地手工来制造。这正如当时的软件工程--几乎所有的代码都是新的,每项规则和每个设计都是专门为正在构建的系统而编写,而且以后它们可能又需要重新被构建。代码复用(当时唯一可尝试的复用方式)可以被看成是在五金商店购买成百上千钉子,而不是自己亲手打造每一个钉子。这样,使用更为可靠的代码就可以缩短开发周期。

在20世纪80年代中期,经济可行的面向对象编程语言的引入,诸如C++(Smalltalk已出现,但并没有在业务环境中得到广泛使用),通过类直接支持代码的复用。复用方面已取得了一些重要的成果,但是预测中的“大跃进”并没有如期而至。这是由于开发者常常不能决定哪些类应当被复用。的确,一些代码的复用,使将来的代码编写更为快捷、可靠。但是,直到可视化建模和代码生成工具的出现,开发者才开始看到设计复用—概念及思想--带来了比代码复用更大的经济回报。他们意识到在体系结构及设计层次上的复用将带来相当巨大的收益。

现在打铁匠的类比法更具有说服力。随着设计模式的发明,而且从设计模型中产生代码非常简单,所以复用设计便成为一种理念。现在,一改过去复用“钉子”的作法,我们正在复用基础和墙壁,这类似于预先建造房屋的组成部分。我们不再是房子的建筑者,而是房子的设计者。不再需要请众多邻居帮忙钉木板建房,你现在可以直接买墙壁和屋顶,然后在几个小时之内就能够完成装配。

体系结构框架也是如此,为什么不从已有体系结构的20%,或者30%,甚至60%来开始呢?为什么不在应用中使用相同的构架,以便更易于软件工程师在工作中连续的应用?微软建立MFC类库,Sun提出Java和J2EE标准,他们都在作这方面的努力,而且,Microsoft目前又在尝试使用.NET来实现这种思想。正如他们90年代所作,更简单快捷、代价更低,并且更可靠地基于J2EE来构建Web应用。换而言之,像J2EE这样的框架为构建Web应用提供了经济显著的复用。

"优质、快速、低成本:只能同时选择其中两个"是一个旧的工程定律,其中的一个必须为另外两个而作出牺牲。但是复用体系结构框架是降低风险的一种途径,并且同时兼顾了这三个原则。

快速体系结构

大规模的工业体系结构,比如J2EE,已积累了大量的经验与资源,它影响着项目、公司和工业之间的可复用性。在创建体系结构上投入大量的努力,仍然能带来显著的投资回报(ROI)。但是如果我们不使用J2EE, .NET,或者一些其它的行业体系框架会怎样呢?或者要是我们的组织需要一个建立在J2EE或.NET之上的可复用体系结构,那又会怎样呢?我们可能只复用这个体系结构几次,或者几十次,而不是数千次,我们需要的是建立健壮的、可利用的架构能力。但是,快速却不够熟练的构建架构会给我们带来对于我们付出最小化的回报。

本文中,我们将使用设计模式快速建立框架,这是一个模式的模式。在XDE中应用这些模式将会产生大量代码。所以,实现这个框架的大多数代码不需要人工介入。即使这是使用模式所带来的唯一好处,我们仍然会有很多可用的代码。几行手写“粘合代码”将起到一个连接的作用。最后,我们将有一个3-tier 体系结构,它在可重复、可预测和健壮(基于组件)的框架中处理业务逻辑。这个框架可以复用(以单一模式应用,而不是重复敲入代码)来更快地建立其它应用架构。曾经从事这个框架的开发者在以后使用相同框架的应用时,不必再走弯路。框架的改进或加固会被快速地在应用间传播,这只需要通过重复应用模式即可,而不必多次手工修改代码。

时间: 2024-09-07 13:57:43

快速创建可复用体系结构的相关文章

c语言多线程问题,快速创建多个线程!

问题描述 c语言多线程问题,快速创建多个线程! for(int i=10;i>0;i--) pthread_create(&pid,NULL,doit,NULL); 怎么创建出来的线程ID是重复的啊?应该怎么处理快速创建线程的时候,线程ID会复用? 解决方案 你用了一个pid,当然只能获得一个id了,改为: pthread pid[10]; for(int i=10;i>0;i--) pthread_create(&pid[i],NULL,doit,NULL); 解决方案二:

在VF里根据现有表结构快速创建同结构的临时表

创建|临时表 假设表jxc_jyz(nYear n(4),nMonth n(2),cXSBM c(20),nQCZC_sl n(12,3),nBQJH_sl n(12,3),nBQXS_sl n(12,3),nQMKC_sl n(12,3),cJZZT n(2))如果我们要创建一个结构同上的临时表Tjxc_jyz,常用方法是:CREATE CURSOR Tjxc_jyz(nYear n(4),nMonth n(2),cXSBM c(20),nQCZC_sl n(12,3),nBQJH_sl n(

如何快速创建网站地图

创建|网站地图 如果你想让搜索引擎快速收录和频频更新你的网站,创建一个网站地图是很有必要的.特别是google,平时更新速度比较慢,如果有网站地图辅助,就能更好的更新收录. 我阅读google自己网站上的创建网站地图的例子,看得我很晕,感觉不好用. 后来通过其它途径找了几个版本的地图创建工具,感觉效果不错.有通过写程序自动生成的,也有直接的在线地图生成工具. 1.快速创建网站地图 下面先讲讲创建网站地图的几个步骤: A.创建网站地图: 英文操作界面:http://www.xml-sitemaps

如何快速创建MySQL相同结构的表

1. 快速创建相同结构的表,包括索引: mysql> SHOW CREATE TABLE a; CREATE TABLE `a` ( `name` varchar(50) default NULL, KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; mysql> CREATE TABLE b LIKE a; mysql> SHOW CREATE TABLE b; CREATE TABLE `b` ( `name` va

Windows XP利用TC快速创建文件列表

TC(Total Commander)是很多朋友都非常喜欢的一款超强资源管理工具,其实我们还可以利用TC快速创建文件列表并进行管理.例如,笔者希望获取"C:\Windows\SYSTEM32"文件夹下的所有可执行文件名,可以按照如下步骤进行: 第1步:设置显示类型 首先,请在主界面中打开C:\Windows\SYSTEM32文件夹,由于我们的目的是希望获取所有可执行文件名,因此需要在"显示→文件显示"菜单中选中"仅执行文件",这样将只列出EXE.

用WPS表格快速创建相同结构的工作表

在实际工作中,用户有时需要创建多个结构相同的工作表,本文主要对如何利用WPS表格快速创建相同工作表进行详细地介绍. 通常情况下,创建相同结构工作表有以下几种情况: 1.在源工作表未创建的情况下,用户同时建立多个工作表. 2.源工作表已经建立,用户需要以源工作表作为模板复制其他工作表. 源工作表未建立 如果用户首次创建源工作表,按照下面的步骤将一次性建立多个结构相同的工作表. 1) 打开WPS表格,根据需求插入多个空工作表. A.选择"插入|工作表"菜单项,打开"插入工作表&q

Word2007内置表格模板快速创建表格

在Word2007中内置有多种用途.多种样式的表格模板供用户快速创建表格.使用表格模板创建的表格只需编辑表格的文字内容,并对表格行列进行简单设置即可满足用户的需求.在Word2007中使用表格模板插入表格的步骤如下所述: 第1步,打开Word2007文档窗口,切换到"插入"功能区.在"表格"分组中单击"表格"按钮,如图所示. 第2步,在打开的表格菜单中指向"快速表格"选项,并在打开的表格列表中选择合适的表格模板即可,如图所示.

WinXP系统巧用第三方软件快速创建文件列表

  WinXP系统巧用第三方软件快速创建文件列表            TC(Total Commander)支持随意自定义的菜单.工具栏.快捷键,给您最大的自由,打造个性TC.一般的文件操作,如搜索.复制.移动.改名.删除等功能应有尽有. 例如:小编希望获取"C:WindowsSYSTEM32"文件夹下的所有可执行文件名,可以按照如下步骤进行: 第1步:设置显示类型 首先,请在主界面中打开C:WindowsSYSTEM32文件夹,由于我们的目的是希望获取所有可执行文件名,因此需要在&

PS动作快速创建超酷设计效果

  这次国外精品翻译教程主要介绍如何使用Photoshop动作功能,快速创建超酷设计效果的图片.本次PS教程的难度并不大,非常适合PS初学者学习练习.一起来看看: 一.让PS变得简单 首先看看这张图. 图00 如果觉得上面的效果图不满意,还可以添加水彩画效果.至于水彩效果怎么弄出来,深究下去可能还得找一遍水彩画教程,再学习一遍,对于PS初学者来说这样就可能陷入另外的困境了.有没有不用学习就可以弄出水彩效果的方法呢?Adobe Photoshop的动作功能就可以实现!从网络上下载好喜欢的水彩PS动