反思,而后进步-再论系统件开发模式

“系统件开发模式不该该是一个产品或者一个工具,而应该是人们的工做模式和在此工做模式下使用的多种工具” 数据库

目录 编程

1 系统件
(1) 定义
(2) 特征
A 一个系统件多是一组代码,一组应用程序或一组文本模板
B 一个系统件封装了一类框架(FrameWork),一类解决方案或一类设计思想
2 系统件开发模式
(1) 什么是系统件开发模式
(2) 系统件开发模式应该是一种工做模式
(3) 有许多基于这种模式发展起来的工具可供使用,在这些工具中,这种模式 的具体实现方法也有许多种 设计模式

正文 框架

1 系统件
(1) 定义
是一类已经作好的成熟的特殊的系统,说它特殊,是由于这类系统模版并不 具备任何具体的数据特性,不具备任何个性化的信息,但具备固定的系统结 构和布局。当咱们使用这些系统模版来做系统实现的时候,咱们只须要予它 具体的属性值,好比说具体的数据库信息,具体的显示信息等。更直观一点 ,其实一个系统模版就和一个类,一个组件,控件差很少,只是它是系统级 别的,已经上升到了系统的高度
(2) 特征
A 一个系统件多是一组代码,一组应用程序或一组文本模板
B 一个系统件封装了一类框架(FrameWork),一类解决方案或一类设计思想
2 系统件开发模式
(1) 什么是系统件开发模式
系统件开发模式指的是围绕系统件这一核心,根据软件工程的思想而提出的 一种软件开发过程 分布式

其大体思路为:从需求分析结果开始进入系统设计,设计围绕系统件来进行 ,即选择什么样的系统件,选择什么样的数据库,该怎样来设计数据库以正 确配置系统件等。根据系统设计的结果,选择合适的基于系统件开发模式的 集成工具来完成系统的实现以获得最后的系统的过程! 工具

和通常的软件开发过程相比,最主要的不一样就在于在在设计的时候是以系统件做为主要的考虑因素,实现则是以于系统件开发模式的集成工具来完成!根据所选择的系统件开发模式类别,可能涉及代码,也可能彻底不涉及代码! 布局

(2) 系统件开发模式应该是一种工做模式
就象如今的许多软件工程师用三层结构模式或分布式体系结构模式,组件开发模式思惟来建构产品同样,系统件开发模式应该发展成一种软件工程师在开发产品时,去考虑,选择的一种产品构建方法,过程! 开发工具

(3) 有许多基于这种模式发展起来的工具可供使用,在这些工具中,这种模式 的具体实现方法也有许多种 网站

正如如今的PB,VC++/VB,DELPHI/C++BUILDER/KYLIX,J2EE/EJB等工具都不约而同的荣融入了组件/控件/构件开发模式的思想,也会有许多融入了系统件开发模式思想的工具。而正如这些工具对组件/控件/构件开发模式的实现方法也不相同同样,这些融入了系统件开发模式思想的工具的系统件开发模式的具体实现方法也不一而足。但大致上来讲,能够有如下两大类:代码重用,二进制/文本模板重用(系统级重用)。
如今你们的思惟大多都是集中在代码重用这一层面,这就我我的观点而言,可能和如下缘由有关系:
1) 如今迅猛发展的面向对象方法
因为如今面向对象方法的迅猛发展,使得重用性问题获得了人们充分的认识-由于面向对象的核心思想之一就是复用.也由于复用的好处是如此的明显,所以也反过来促进了面向对象方法在人们心目中的极度扩张.而面向对象方法如今用的最多的又主要是在OOP(真正用了OOA,OOD来作出合格产品的CASE还比较鲜见)上,,所以提到复用问题的时候,都不约而同的想到了代码复用!
2) 如今的软件开发还处于语言级的水平
综观软件开发的发展历程,研究一下机器语言,汇编,中级语言,高级语言,商业语言,非语言这一发展线路,咱们所处的时代正是中高级语言大行其道,汇编,商业语言用的相对较少,机器语言,非语言几乎不用的时代,既中间大,两头小.机器语言,汇编几乎不用,那是由于思惟,水平的发展都已经超越了这个层次.而商业语言用的较少,是由于思惟虽然达到了这个层次,但水平还没广泛达到这个层次;非语言几乎不用,则是由于人们的思惟不多有人达到这个层次,固然,更不用说水平了.
所以,当人们谈到软件开发的时候,通常都首先想到的是语言,代码!
这里解释一下,曾经有人提到第几六代语言的问题,我想这重提法就和我在这里所说的非语言差很少!照N-G(第N代)的划分方法,商业语言该属于第5代,而如今则正处于第3,4代语言的时期.就我所理解的非语言,应该是是一种系统级的设计语言,诸如业务流程设计,建模等! 其实和具体的语言,代码已经挂不上边了!
由于上面的缘由,你们在谈到重用的时候,几乎都朝代码层次上来想了! .net

固然,从通常的思惟模式来讲,这是极其正常而天然的事情,而且做为系统件开发模式的一类实现方法,这也是可行的.
因此,在之前基于系统件开发模式的诸多讨论中,不乏极其有建设性的想法.典型的如第六代语言等.也有许多从如今的成熟产品或思想来着手思考的,如通用程序设计方法(GP),STL,泛型编程,设计模式,MFC,并深刻到了基于这些思想或产品的体系结构如三层(外观,逻辑,数据),分布式等深层次的东西!
我能够确定的说,基于以上这些深入的技术而思考着努力着的人们,若方法得当,路线正确,确定都能作出漂亮的基于系统件开发模式的工具,相信不久的未来,这样的工具必将现在日之基于面向对象方法的的开发工具般广泛!虽然如今有这样那样的时间,效率,质量等的诸多质疑,但那只是成功路上的一些小插曲,在充分重视到的同时,不该是不可逾越的障碍.
固然,就象痛往康庄大道的路不止一条同样,在如何使系统件开发模式成为一种能为人们提升效益的看的见摸的着的工具的一部分上,还有不一样的实现方法,那就是我所说的二进制重用.
二进制重用这个称谓,更确切一点来讲,应该叫系统级重用.二进制重用的说法只是为了从狭义上和代码重用相区别,但就更科学的说法来说,叫系统件重用更贴切些.由于这类重用不但不限于二进制的重用,更重要的,它也不限于程序上的重用.
系统级重用说它不限于二进制的重用,是由于除了而进制应用程序的重用外,还能够是文本上的重用.好比,一个典型的WINDOWS应用程序能够设计成系统件而后供重用,然而,一个典型的网页模板(只是文本而已)也能够设计成系统件供重用.
系统级重用更重要的一点,应该是设计思想,解决方案,经验层次上的重用.只有在这些层次上,才能说咱们的重用是在系统级的,具备了系统件开发模式的典型特征!
固然,说到这里,你确定立刻会想到代码重用也大量的存在这些思想啊,如设计模式!
这个疑惑正好体现了代码重用和系统级重用的最显著的差异:代码重用后,你必须得再依赖于编译器或解释器生成最终的应用系统,而系统级重用则不依赖于任何编译器或解释器,直接能够获得最终系统!
因此叫它系统级重用更合适一些!
说到以系统级重用来实现系统件开发模式,可能和你们所熟悉的代码重用相比起来,感受会有些陌生.这正如我前面提到的那样,如今正处于面向对象迅猛发展的阶段,而且如今的软件开发水平处于语言期,所以当提到重用的时候,都会从代码的层面来思考.
其实,代码重用实在只是重用的很小很小的一个实例.在任何行业,任何地方,任什么时候候,重用都在发生着.典型的,制造业中的流水线生产工艺就是一个极好的重用的例子-产品的生产工艺被重用来生成不一样规格的产品.
我不得不说的是,由于软件产业的特殊性,重用在软件的生产过程当中体现得最为突出-甚至使得其余行业中的重用看起来都不象重用了!
可是,对于软件开发来讲,当这么一个很是好的优点被仅仅利用在代码层面时,那就显得有些惋惜了.为何咱们不能扩展到其余地方呢,不能让它更上一层楼呢?
答案是:能够!
所以便有了设计模式这样经典的重用.它不止在代码层面上重用了,还在设计思想上也重用了!
那为何不能够扩展到系统级重用呢?
答案是:能够!
所以,基于系统级重用的系统件开发模式也是能够的!
说到这里,我又想起了非语言的-第六代语言的问题.当定义系统件开发模式的规时,若是要从代码重用中吸收精华的话,能够借鉴面向对象中的定义-固然,这属于具体实现的问题了!
说了这么多,其实就是想把系统件开发模式中的一些问题描述清楚,最后在总结一下吧,仍是这句话:
“系统件开发模式不该该是一个产品或者一个工具,而应该是人们的工做模式和在此工做模式下使用的多种工具”

相关链接:
系统件开发模式专业网站:http://systemer.51.net
本文来源:http://systemer.51.net/SystemerPattern.htm
发表评论:http://systemer.51.net/cgi-bin/forums.cgi?forum=2