前言:回顾1970年代的C语言,函数(Function)和数据结构(Data Structure)是计算机语言的基本模块(Basic Building Block);因此IT系统分析&设计人员就以函数和数据结构去发展建模方法和实现工具。到了1980-90年代,OOP成为业界主流,类(Class)成为C++和Java等OOP语言的基本模块。1995年Gamma推出了设计模式(Design Patterns),成功地成为系统分析和设计的基本模块。于2012年5月,高焕堂老师提出了单一的EIT造形,来扩大系统分析和设计的基本模块;并且能直接对映(Map)到代码。
EE EE
相關文件:
1. 软件代码造形的演进
1.1 回顾与前瞻
回顾1970年代的C语言,函数(Function)和数据结构(Data Structure)是计算机语言的基本模块(Basic Building Block);因此IT系统分析&设计人员就以函数和数据结构去发展建模方法和实现工具。例如当年的结构化(Structured)设计方法和数据库(Data Base)系统等。当时系统分析与设计的基本模块是:单一的函数造形;并且能直接对映(Map)到代码。到了1980-90年代,OOP成为业界主流,类(Class)成为C++和Java等OOP语言的基本模块。因而有了UML建模语言和OOAD(Object-Oriented Analysis and Design) 方法问世。于是,系统分析与设计的基本模块扩大为:单一的类造形;并且能直接对映(Map)到代码。
以此类推,1995年Gamma推出了设计模式(Design Patterns),成功地成为系统分析和设计的基本模块。但是,设计模式花样繁多,其幕后缺乏单一模式来组合出各种设计模式,无法直接对映到代码。因而,设计模式未能扩大系统分析和设计的基本模块。至今,类(Class)仍然是大多数系统架构师或分析师心中的基本设计模块。于2012年5月,高焕堂老师提出了单一的EIT造形,来扩大系统分析和设计的基本模块;并且能直接对映(Map)到代码。这EIT造形内含3种要素:<E>对映到代码的基类(Super-class)、<I>对映到基类的抽象函数(Abstract Function)、而<T>则对映到代码的子类(Subclass),如下图所示:
1.2 基于类造形的设计
例如,针对五子棋进行OOAD分析与设计:
(图片来源:互动百科)
依据下述步骤,设计师以类造形来思考设计(与分析)
以上是基于类造形的传统OOAD(Object-Oriented Analysis and Design)方法,进行<五子棋>软件的架构设计。接下来,我们将把类造形扩大到EIT造形。
2. EIT造形的定位
于2012年5月,高焕堂老师提出了单一的EIT造形,来扩大系统分析和设计的基本模块;并且能直接对映(Map)到代码。这EIT造形内含3种要素:<E>对映到代码的基类(Super-class)、<I>对映到基类的抽象函数(Abstract Function)、而<T>则对映到代码的子类(Subclass),如下图所示:
其中,接口就是一种抽象类,所以在本质上,EIT造形就是由3个类所构成的,能直接对映到代码(即3个类的代码)。EIT造形就像自然界的原子(Atom)造形或DNA螺旋造形一般,自然界的不同物质都具有一致的简单造形,但其内涵却都可以不相同。其中,”EIT”名称是来自汽车的<引擎(Engine)、接口(Interface)、轮胎(Tire)>三种角色,及其之间的关系。EIT造形介于类和设计模式之间。它是由3个类所构成的单一造形;它又能组合出各种设计模式。
3. 软件造形的特征
- 单一的造形,设计师以它叙述形形色色的设计,开发者直接将它落实为代码。就如同专块,建筑师叙述如何以砖块组合出形形色色的建筑物;施工者就烧出专块,并按步就班组合起来。
- 让生产者(设计师+开发者)从简单组合出复杂。亦即:造形很简单,内涵可复杂,重复地组合。
- 让用户获得从简单中叫出复杂的满足感。亦即:优质的用户体验。
4. “造形很简单”的意义
- 内部元素(或称要素)不超过3种。
- 内部元素之间的关系简单而清晰。
- 例如,原子造形有3种要素:质子、中子和电子。现代政府的三权分立造形有3种要素:行政、立法和司法。牛顿的力学F=ma公式(造形)有F、m和a共3个要素。爱因斯坦质能互换E=MC平方的公式有E、M和C共3个要素。
- 此外,造形内部元素之间的关系都能简单而清晰地加以描述。例如,牛顿和爱因斯坦的公式里,只是简单的乘法或平方运算而已。
- 反观,软件的类(Class)造形,内部有2种要素:函数(Function)和属性(Attribute)。其要素之间的关系也能很清晰。
- 因为类造形的要素少于3种,引起高焕堂老师好奇心去寻找神秘的第3种要素;却意外发现了神奇:不改变既有的类造形,只拿类来扮演3个不同角色,就成为EIT造形的3个要素。同时也扩大了系统分析和设计的基本模块。
5.“内涵可复杂(多变)”的意义
造形(Form)是将内涵(Content)从结构中抽离之后,所留下来的一种形式。这种形式已经没有内容了,反而像一只空的集装箱(Container),能容纳形形色色的内容;而且集装箱的形式大多与内涵无关。 [歡迎光臨 高煥堂 網頁: http://www.cnblogs.com/myEIT/ ]
5.1 内涵 + 类造形
例如,在软件系统里,各种不同内涵,可以透过类的形式来呈现出来。类造形就像集装箱,可以容纳各种内涵。
Ex-1.
Ex-2.
类造形是通用的,只有形没有内涵,所以能纳入各式各样的内涵。例如,{ 鹦鹉 + 类造形 } = 鹦鹉类。
5.2 内涵 + EIT造形
EIT造形跟类造形是一样的。在软件系统里,各种不同内涵,可以透过EIT造形来呈现出来。EIT造形也像集装箱,可以容纳各种内涵。
EIT造形有3项元素,如下图:
将内涵<E>放入基类里,并将内涵放入<T>类里;如下图:
Ex-1:
EX-2:
两种内涵的来源不同,时间点也不同;成为<强龙/地头蛇>双方分工模式的基础。 (Continued)
Go To Part-2 >>