大话软件工程:需求分析与软件设计(三)

第3章 组合原理

3.1 基本概念

3.1.1 定义与作用

        1.定义

  组合原理,给出了用要素、逻辑和模型三元素形成图形的原理和设计方法,利用组合三元素可以表达出任意的逻辑图。在分析与设计过程中,不论使用什么样的逻辑图形(分析用、架构用、管理用等),图形的构成都包括这三个元素,三元素既可以用来绘图,也可以用来检查图形是否正确。

        2.作用

        通常寻找具有普遍性的表达方法时,最常用的做法就是“穷尽”所有应用场景,然后通过抽提共性整合成为一套方法。

3.1.2 组合原理模型

        1.图形的基本构成

        由于研究对象的形态有万千种,所以表达分析、设计意图的图形也就有非常多的形式,如果要想找到一套通用的方法来替代,需要先研究一下各种图形的构成内容是什么、规律性有哪些等,从而找到一个通用的建模方法。

        (1)(b):表达的是图的“要素”。将a1~a4各图中都具有的共同内容3个方块A、B、C提出来,这3个方块是用来表达构成图形主体内容的“构件”,它们被称为图形的“要素”。

        (2)(c):表达的是要素间的“逻辑”。在去掉a1~a4各个图形中的构件要素后,剩下了“线条、位置、背景框”等内容,它们是用来表达各个构件要素之间的关系,它们被称为“逻辑”。

        (3)(d):表达的是图的“模型”。在去除了a1~a4各个图形中表达要素和逻辑的内容之后,只剩下了要素方块和逻辑的“投影”,这些投影表达的是要素与逻辑构成的不同“形状”,它们被称为“模型”。

        2.组合原理的

        三元素从前面利用4种与业务无关的图形中抽提出来的三种共同元素,可以得出这样的结论:只要是逻辑类图形都是由这三种元素构成的,这个结论就是图形的构成原理,称为“组合原理”,而这三个元素就称为“组合原理三元素”,它们是组合原理的核心。

3.1.3 思路与理解

        通过少量元素的组合,就可以表达出多种形式业务构成和业务逻辑是理想的建模方法,如何才能够找到这样的方法呢?基于某些业务场景建立起来的模型一般来说都有一定的局限性,因为选择的业务场景不具有普遍性

3.2 组合三元素1——要素

        “要素”是构成图形内容的主要部分。不仅是说明要素的属性,更重要的是它还是一种思考方式,特别是在用语言交流时,如果使用了要素属性进行描述,会明显地提升沟通效率和质量。

3.2.1 对象的概念

        对象,是指分析与设计的目标事物。对象是要素的来源,要素是从对象分解而来的。对象会以多种形态呈现,例如:

        ● 需要优化的事物:企业管理体系、生产流程、操作程序等。

        ● 需要分析的问题:产品质量问题、销售业绩下滑问题、成本超标原因等。

        ● 需要研究的课题:软件的需求规格书、事故调研报告等。所有需要进行分析并通过设计可以进行优化的目标事物,都可以称为对象。

        1.对象的分类

        根据研究课题的目的、研究对象包含的内容,以及其所处的环境背景,可以将需要研究的对象分为两种类型:优化类对象,非优化类对象。

        1)优化类对象优化类对象:已存在并正在运行着的业务体系。优化类对象的共同特点是:要研究的对象是一个客观上已经存在的真实业务体系,且该体系已经运行了一段时间,已经形成了一定的形式、规律、标准和规则等。所谓的优化就是采用新技术、标准对它们进行升级、改造、完善的工作。

        2)非优化类对象非优化类对象:尚未实现的业务(对尚未实现的事物是不存在优化的)。非优化类研究对象可以是:一个问题、一个现象、一对因果关系、一个尚没有实践过的课题、一个全新领域的业务等。简而言之,就是“没有做过的事,没有参照的对象”。

        2.对象分类概念的作用

        首先对比一下优化类对象与非优化类对象的异同,在进行以企业业务为目标的分析与设计研究中,这两类对象都是常见的,两者的差异。

        (1)相同之处:都需要经过分析,给出最佳的设计方案。

        (2)不同之处:前者可以直接参考既存对象(业务、系统);后者无可直接参考的对象。

        了解了对象分类的异同后,那么,在进行需求调研前首先就要判断该项目是属于哪一类对象,确定了对象的分类后,容易找到最佳的分析和设计理论、方法和路线,假定研究对象的规模是相同的。

        (1)优化类对象:因为已有实际的参照物(实际业务流程、既存系统、资料等),在调研、分析与设计的各个阶段中都可以与实际的现状进行对比验证,这是一个“创新+完善”的过程,因此,优化类对象信息系统的实现相对比较容易。

        (2)非优化类对象:由于没有参照物的存在,所以全部的工作需要从零开始,非优化类对象的信息化实现过程是一个“全面创新”的过程。因此,找对目标、方向,以及要素、逻辑、分析模型等非常重要。进行非优化类对象的研究始终要关注“整体”与“细节”之间的关系,避免出现方向性的错误。

3.2.2 要素的概念

        要素,是构成事物必不可少的因素,要素的集合体构成了对象。

        1.要素的内容要素,在表达不同对象的逻辑图中以不同的形式出现,例如:● 业务架构图:要素表现为系统、子系统、模块、功能。● 数据架构图:要素表现为数据表、数据。● 管理架构图:要素表现为标准、规则、判断。

        2.要素的描述要素是构成研究对象的核心内容,要素覆盖的内容包罗万象,在对要素进行表达时需要一套规范的描述方法,用以说明要素的数量、大小以及所处的状态等。要素的属性分为4组:①粒度与分层;②黑盒与白盒;③系统与模块;④解耦与内聚。

        3.要素的相对性要素与对象是相对的概念。例如,在研究“企业业务”这个对象时,其内部构成中的“财务”要素仅仅是作为对象“企业业务”中诸多要素之一而存在的,但是在聚焦于“财务”的研究时,“财务”就从原来的一个要素,转变为一个对象,再对财务中的“成本”进行进一步的研究时,则“成本”又成为对象,以此类推。

3.2.3 要素属性1——粒度与分层

        粒度与分层,是对要素大小的属性描述。

        1.粒度的概念

        将研究对象“企业业务”拆分后出现了要素,如果以其中的“财务要素”为对象再度进行拆分后,就会出现更下一层的要素,如此反复可以进行若干次,如何表达这个“对象-要素-对象”循环出现的现象呢?这就需要引入表达要素粗细的概念,将表达要素粗细的尺度称为“粒度”。粒度,是表达对象中不同要素的“粗细”程度的尺度。

        粒度原指球状体的直径大小,比较细小的要素就包含在同类较粗的要素之内。也可以将不同粒度的要素,按照从粗到细、从上到下地放置在不同的“层”上。可以看出,分层的表达方式不但能显示大小(粒度)还能显示顺序(上、下)。

        知道了粒度的概念,那么粒度概念在分析和设计时的作用是什么呢?粒度的概念在进行理解新事物、研究分析时起着非常重要的“划分大小”的作用,特别是在研究不熟悉的事物时尤为重要,它可以指导我们先从顶层、大方向、总目标、核心价值等描述基本构成中的大粒度要素入手。作为分析师、设计师,在观察繁杂的事物时,是先看整体、大的构成(粗粒度),还是先关注细节(细粒度),往往是关乎分析与设计成败的要因。在进行比较复杂的业务分析或设计时,一定要注意相关要素之间的粒度对比,也就是通常说的“不要胡子眉毛一把抓”,将不同粒度的要素放在一起进行研究,这样得出的结论可能是混乱的,因为不同粒度的要素之间的逻辑关系、表达方式可能是不一样的。不分粒度、不分层次画出的图形,无论表现得多么漂亮都可能是无价值的。粒度的概念,是软件分析、设计的常用概念。下面再用业务流程设计说明粒度的概念。

        使用粗粒度的要素形成的最上层的流程图,称为“一级流程”,以此类推,可以有二级流程、三级流程等,由最小粒度(活动)构成的流程图就是可以执行的流程了。

3.2.4 要素属性2——黑盒与白盒

        黑盒与白盒,是对要素所处状态的描述。

        1.黑/白盒的概念

        黑盒、白盒是对要素两个相反状态的描述。前面讲过,要素是可以再拆分的,当讨论的对象由复数的要素构成时,注意讨论要素的粒度要相同,将小粒度的要素暂时隐蔽起来,避免发生因要素的粒度不同而造成讨论结果难以收敛的情况。为了便于解释这个情况,就引入了黑盒/白盒的概念。

        1)黑盒的概念

        黑盒指将盒子盖起来,从外面看不到盒子里面的内容(要素)。

        2)白盒的概念

        白盒指打开盒子,让盒子里面的内容(要素)暴露出来时的状态。

        2.黑/白盒概念的作用

        黑盒与白盒概念的应用,在分析对象、要素时起着什么作用呢?试想一下,为什么当遇到复杂的问题时新手会感到束手无策,而经验丰富的老手则可以从容地找到解决问题的路径呢?下面尝试用黑/白盒的概念来解释一下。

        1)没有经验的新手在观察问题时缺乏经验,他们看到问题(对象、要素)的状态,既有呈黑盒状态的,又有呈白盒状态的,结果就是感到问题非常多,盘根错节,一团混乱,问题的原因就是因为新手的眼睛不会“一层一层地去看观察”,而是同时看到了所有不同粒度的问题。

        2)有丰富经验的老手先将拆分出来的要素归集到不同的分类中(黑盒),首先对大分类(粗粒度)的要素进行观察和讨论,摸清情况后,再根据需要将其中一个黑盒打开成为白盒状态,对白盒内的细节问题进行深入的研究,这就避免了同时出现不同分类且大小粒度不同的信息,极大地降低了研究的难度。

        要素的粒度越粗理解时需要的业务知识就越少,反之,要素的粒度越细需要的业务知识就越多。不同分类的黑盒同时打开,不但造成了大量的细节同时出现,且如果不同黑盒中的要素之间还存在着复杂关联,这就使得判断的工作量和难度达到了难以控制的程度。

3.2.5 要素属性3——系统与模块

        系统与模块,是要素归集的单位。

        1.系统的概念

        系统是由一群有相互作用关系的功能要素组成的集合体

        前面讲的要素粒度、黑/白盒的概念,本质上讲的都是对要素大小的属性描述,而系统不仅表述要素的大小,而且还可以表述它们之间的关联。

        2.模块与模块化设计

        1)模块的概念

        模块,是由一群可处理某个业务场景的功能要素组成的集合体。由于系统、模块和功能这三个词在不同的场合、面对不同的描述对象时定义都不同,这样就容易给读者带来困惑,因此在本书中做如下约定。(1)系统:是具有独立处理某个业务领域工作的完整功能集合体,系统是由模块组成的。(2)模块:是分担系统中的局部处理工作的,模块是由功能组成的。(3)功能:是系统中可以完成某个业务处理操作的最小独立单位。这三者都是由功能构成的,在粒度上的关系为:系统>子系统>模块>功能。

        2)模块化设计的概念

        模块化设计,就是将具有不同作用的功能进行多种组合,以实现用有限的功能支持多样的业务处理场景。

3.2.6 要素属性4——解耦与内聚

        解耦与内聚,是描述要素归集原则的重要概念。分层与粒度的概念,说明了要素的粗细;系统与模块的概念,说明了要素的归集单位。将不该放到一起的要素放到了同一个黑盒内,就会造成在讨论黑盒之间的关系时,由于不同黑盒内部的细节相互牵扯,可能无法将盖子盖上形成黑盒状态。那么什么样的要素可以放在一起,什么样的要素不能放在一起呢?解决这个问题需要引入解耦和内聚的概念。

        1.解耦的概念

        耦合,是指两个或两个以上的系统(要素的集合体)的输入与输出之间存在紧密配合与相互影响,某一方的变动会影响到另一方的变化。解耦,指的就是解开耦合的状态,去掉两者之间造成耦合的连接关系。耦合有两种状态:紧耦合,松耦合。

        1)紧耦合

        从系统1、系统2、系统3这三者之间的关系可以看出,不同系统内部的要素之间发生了密切关联,三个系统之间两两成对地形成了非常复杂的依赖关系,三个系统因“盖不上盖子”都不能形成黑盒,这种状态就是“紧耦合”状态。

        2)松耦合

        系统4与其他系统之间的关系是非常清晰、简单的,分别只有一个接口,可以看出系统4内部的要素并不直接与其他系统中的要素关联,而是由统一的接口进行关联,也就是说,系统4和其他系统之间虽然有关联,但不是复杂的依赖关系,这种由唯一或是少量关联形成的关系就是松耦合状态。解耦,简单地说,就是将上述的“紧耦合”状态解开,形成“松耦合”的状态。

        解耦,简单地说,就是将上述的“紧耦合”状态解开,形成“松耦合”的状态。解耦的概念说明,当分析对象内部的系统之间都是紧耦合关系时,那么各个系统就不能在“黑盒状态”下进行讨论了,因为各个系统都存在着系统内要素之间的依赖关系,也不可能在不考虑这些依赖关系的前提下,将各个系统看成是黑盒了。解耦概念对后续分析与设计有着非常实际的指导意义,例如,某个产品的生产过程在企业内部大都是由多部门协同完成的,业务流程大多要跨部门才能完成,最佳的流程设计是部门之间的交互最少,最大限度地减少不同部门内部工种之间发生的直接依赖。避免由于某个部门内部某个工种的作业内容发生了变化而引起其他部门的连锁反应。

        2.内聚的概念

        内聚,是说明同一个系统中各个要素之间的关联性。对象中的每个系统都可以独立地完成一个业务领域的工作,且各个系统内部要素之间的关系紧密。也就是说,每个系统内所有的要素都是为了完成同一个目标而存在的,例如,对于财务系统来说,既不要把财务系统的功能划分到其他系统中,也不将其他系统中的非财务功能拉入到财务系统中来。

        内聚的概念说明,各个系统内部的要素要按照“内聚”的标准放在一起,各个系统之间通过一定的接口进行相互调用,而各系统内的要素之间没有直接关联。这样在进行讨论时一个系统就可以用一个黑盒来表示。

        内聚的实际意义在于,在设计时让每个系统具有的功能都相对独立、单一,这样就容易进行拆分,并通过不同的组合灵活地满足各种需求。

        判断信息系统架构优劣的一个重要的原则就是:系统之间是否进行了松耦合的设计。它关系到系统运行后的维护成本,而且还极大地影响到系统的扩展性、对需求变化的响应能力,甚至是系统的生命周期。为什么要对从事需求分析、业务设计谈模块化设计、松耦合设计呢?“功能做到模块化、快速响应客户的需求变化”是软件行业一直追求的目标,但是很多从事软件开发的人并不清楚达成这个目标与业务人员的相关性,不清楚业务人员对系统的模块化设计和结果起着非常重要的作用。因为这些目标的达成都需要一个非常重要的前提,那就是对“业务的拆分”,首先要将研究对象拆分成为若干个小的可以独立的要素,才可能实现“将一个大的系统分解成多个小的、独立的功能/组件,然后通过它们的不同组合来处理复杂的、大型的、多变的问题”。也就是说,业务人员能否将研究对象进行有效的拆分并给出变化的规律是关键,如果业务人员做不到,那么在后续的技术设计和开发时就很难做系统的模块化,更别谈让系统具有强应变能力了。

        对于要素属性的描述使用了很多的概念(粒度/分层、黑/白盒、系统/模块、解耦/内聚),这些概念不但可以在架构中得到应用,而且在分析过程中也有着广泛的应用价值,这些概念运用可以在理解、分析和设计时有了层次感。

3.3 组合三元素2——逻辑

        “逻辑”是业务事理用图形的表达形式,是图形中的灵魂。

3.3.1 逻辑的概念

        逻辑,指的是思维的规律和规则,是对思维过程的抽象。在对业务分析与设计中逻辑表达方式的说明之前,先借鉴参考一下不同领域对逻辑的解释,它们可以帮助理解逻辑的概念,例如逻辑定义有:

        ● 逻辑是思维的规律和规则,是对思维过程的抽象;

        ● 在广义上逻辑泛指规律,包括思维规律和客观规律;

        ● 在狭义上逻辑即指思维的规律;

        ● 逻辑就是事情的因果规律;

        ● 逻辑表明了规律,事物完成的序列;

        ● 逻辑表现了事物流动的顺序规则;

        ● 逻辑是事物传递信息并得到解释的过程。

        结合逻辑的一般定义以及信息系统的设计方法,对逻辑的概念进行抽提、定义为三个核心内涵,即:规律、顺序、规则。

        (1)规律:要素之间内在的、稳定和反复出现的关系。

        (2)顺序:要素的位置关系,包括前后、上下、左右。

        (3)规则:保证按照规律、顺序运行的约束。

3.3.2 逻辑的作用

        有了逻辑的概念,那么逻辑在实际的业务架构中是如何起作用的呢?从事过管理咨询、业务梳理工作的人都知道业务架构是一门既非常重要又很难掌握的技能,长期以来究竟什么是业务架构、业务架构包含哪些内容和步骤,没有一个规范化的说法(在软件行业中还常常将业务架构与软件的技术架构混同在一起,甚至用技术架构方法来做业务的架构),久而久之,“业务架构”就成为一个似乎大家都知道但又说不太清楚的技术了。究竟是什么原因造成业务架构难以掌握与运用呢?这就是逻辑的影响,特别是业务逻辑的影响。

        1.场景1——利用逻辑梳理既存业务

        企业在进行信息系统开发时,需要聘请软件工程师来做业务梳理,一般来说,软件工程师是不懂业务的(至少不是很懂),但是他们却能在短时间内准确地将现实的业务搬到计算机系统中,并让系统正确地运行,他们是怎么做到的呢?一个重要的理由就是“逻辑”起的作用。

        (1)软件工程师虽非业务专家,但他们有“逻辑”的概念,他们是从业务“逻辑”的视角来理解业务的。

        (2)掌握了业务逻辑,也就掌握了业务对象的事理、关系、规律等内容,有了这些核心内容就可以建立支持管理信息化的软件设计模型。可以说,软件工程师虽然掌握的不是体系化的专业业务知识,但由于他们抓住了逻辑这个“主线”,所以可以在短时间内完成分析与架构的工作。

        2.场景2——利用逻辑理解新业务

        在两名经历不同的架构师面对同一个谁也不熟悉的全新研究对象时,通常旁观的人会预判说:经历丰富的架构师一定会因为他的“经验多”而做得更好,另一名年轻的架构师则会因为“经验不足”而做得差一些。但是在实践过程中,有5个项目经验的架构师与有20个项目经验的架构师相比,在面对双方都不熟悉的新研究对象时,如果前者掌握了利用逻辑分析问题的能力,其做出来的结果不一定就会比后者差。如果要求的时间短、精度高时,前者的成功概率可能高于后者。因此,从逻辑入手了解业务知识的人上手快,更可能在短时间内掌握业务的关键脉络。

        3.场景3——用逻辑实现业务处理信息化

        再仔细地观察和思考一下,利用软件是如何实现业务处理的呢?软件系统就是将业务处理的功能封装成一个个模块,然后利用业务逻辑将这些模块串联起来进行运行,就实现了业务的信息化处理。由于软件工程师抓住了业务功能模块之间的主线、步骤、顺序、流转规则等关键要素,所以才能做到短期内完成任务,这些关键就是业务逻辑。

3.3.3 逻辑的分类

        对逻辑的含义用三个内涵来定义,即:规律、顺序、规则。由于架构可以分为不同层(架构层、功能层、数据层、管理层等),且不同层的模型表达方式不同,所以它们的逻辑表达方式有相同也有不同。

3.3.4 逻辑的表达1——架构

        在架构模型中,逻辑表达的是要素之间的业务关联关系,也称为“业务逻辑”。业务逻辑的主要表达形式有三种:关联、位置和包含。

        1.逻辑形式之一——关联

在几种逻辑的表达方法中,毫无疑问,用线、箭头表达逻辑是最为普遍和直观的方式了。典型的代表就是流程图。在关联这些要素时,如果采用箭头进行关联,表明两者不仅有关联关系而且有特定的指向,这是最强的逻辑表达方式。

        2.逻辑形式之二——位置

        在图形表达时,为什么要用“位置”一词来替代逻辑原定义中的“顺序”呢?因为在用语言表达时,“顺序”一词通常含有“线形”的含义,这在一维图形中表达逻辑关系是没有问题的,但在二维、三维的架构图中,实际上要素之间会同时存在着“上下、左右、前后”的空间位置关系,因此,从广义的视角看,“顺序”也是“位置”的一种表达方式,而“位置”的表达具有更为广泛的意义,因此,将逻辑原定义的第二个指标“顺序”改为“位置”,以适合于一维~三维架构图的表达。

        3.逻辑形式之三——包含

        包含,也是图形逻辑的一个重要的表达方式,包含在一起的要素具有一定的共性。包含逻辑同时也具有从属的意思,表达包含的方式可以用线、背景框等。框架图是一个典型的用背景框表达包含逻辑的方式

3.3.5 逻辑的表达2——功能

        这里功能层面的逻辑表达,指的是进行界面/表单的设计时所考虑的逻辑依据,界面上的逻辑主要表现在“位置、包含”上。

3.3.6 逻辑的表达3——数据

        在数据模型中的要素是数据表、数据,因此逻辑表达的是数据表和数据之间的关联关系,也称为“数据逻辑”。由于图形的要素不同,因此数据逻辑表达方式与业务逻辑的表达方式是不同的。

3.3.7 逻辑的表达4——管理

        在管控模型中,此时要素是模型、规则、判断等,逻辑表达的主要是规则之间的作用关系,也称为“管理逻辑”。

3.4 组合三元素3——模型

        模型主要分为两大类型,即:分析模型、架构模型。

3.4.1 分析模型

        分析模型,是建立分析要素与推测结果之间的关联关系,多用于表达“非优化类对象”的分析结果。

        1.对模型的描述

        对分析模型的描述采用了4个指标:图例、目的、适用、特征,各自的含义如下。        

        (1)图例:是该模型的标准表现形式。

        (2)目的:该模型被选择的目的。

        (3)适用:该模型适用的场景。

        (4)特征:该模型具有的普遍特征,特别关注的3个特征如下。

        ● 是否有起点-终点;

        ● 模型是否具有结构化特征;

        ● 结果是否呈现收敛性。

3.4.2 架构模型

        架构模型,是表达符合业务逻辑关系的要素结构图,多用于表达“优化类对象”的设计结果。

        1.对模型的描述

        根据作者的实践经验以及使用频率,本书推荐下述5种架构模型,对模型的描述采用了5个指标:图例、目的、适用、维度、状态。

        (1)图例:是该模型的标准表现方式。

        (2)目的:该模型被选择的目的。

        (3)适用:该模型适用于什么场景。

        (4)维度:模型表达的维度数,有三种:一维、二维、三维。

        (5)状态:模型表达的是业务的什么状态,有两种:静态、动态。其中

        ● 静态:流程图以外的都是静态表达方式

        ● 动态:流程图。

3.4.3 两种模型的区别

        为什么要导入分析类和架构类两种模型,它们的区别是什么呢?首先,分析模型多用于非优化类对象在分析阶段的研究,构成这类对象的要素不一定有明确的、精准的逻辑关系,由于这个阶段要素之间的因果关系不清晰,此时如果使用精准的逻辑图形反而不易表达,也不易找出问题所在。分析类模型可以解决梳理、归集要素并给出分析结果的工作,但是分析模型不能直接用来做分析结果的解决方案,因为无法精准地表达逻辑关系,所以必须将分析得到的要素(业务、管理)融入到“业务架构(如业务流程)”中,才能够发挥出作用。

        ● 分析:是用“归集要素”的方法作图,归集后要素的承载结构是分析模型。

        ● 架构:是用“组合要素”的方法作图,组合后要素的承载结构是架构模型。

小结

        分离原理与组合原理,共同构成了业务分析和设计的理论支撑,两者的作用不同。分离原理是对研究对象进行分离、梳理和分析的基础,解决的是如何对原始对象进行合理的拆分以获得要素、逻辑。组合原理是对研究对象利用三元素,按照信息化环境下的要求进行重新的组合,解决的是如何合理地利用逻辑、模型来整合要素。组合原理给出了观察、思考和表达的方法。

        1.在分析和设计时的观察和思考方式

        通过对要素属性(粒度/分层、黑/白盒、系统/模块以及解耦/内聚)的理解和掌握,在进行分析和梳理时,就有了如何切入研究对象的方法,运用好这些观察和思考的方法,可以大幅度地提升工作效率,减少不必要的思考和沟通成本,对于分析师和设计师来说,要素属性带来的价值绝对不低于绘制(手)架构图带来的价值。只有有机地协同才能够做出好的分析与设计成果。

        2.对分析和设计结果的图形表达方法

        组合三元素给出了详细、严谨的表达和检验业务分析和设计成果的方法,利用组合原理中三元素的概念,可以高效地进行沟通、分析、架构和设计,并使得每个阶段的成果可以舒畅地进行传递、继承。从事需求分析、业务设计的工程师掌握了组合原理,并在分析和设计中融入组合原理的概念后,可以为系统最终实现模块化、具有快速响应客户需求变化的能力等方面做出重要的贡献,它也为后续进行信息系统模块化设计、产品和功能的设计等奠定了基础。组合原理提出的观察、思考和表达的方法,对不论从事软件工程上的哪个部分工作的工程师来说都是必须要掌握的基础知识。

        3.理解逻辑对表达含义的作用

        图形对表达和传递意图的作用是不言而喻的,图形之所以具有强大的表达能力,是因为图形将“逻辑”信息显示出来了,不需要读者努力去寻找就可以“看到逻辑”,对比表格、文字的形式,加深理解图形在逻辑表达上的作用。

        (1)图形:

        用“关系、位置、包含”将逻辑全面地、直接地标识出来,并且可以用多达三维的形式表达,所以,图形是最强的逻辑表达形式。

        (2)表格:

        表格用“位置”确定了要素的位置结构关系,这个关系是隐性的包含关系,同时可以用二维的形式表达,因此,表格是仅次于图形的逻辑表达形式。

        (3)文字:当采用条目式的表达形式时,即在段落前使用“①、②”或“·”做开头,这些“①、·”就是一维的逻辑提示符号,其中,“①、②”是表示强逻辑(必须按顺序理解),“·”是表示弱逻辑(不强调顺序),条目式文字表达是较弱的逻辑表达形式。

        使用专业用语,例如:

        (1)要素:对要素的描述属性(粒度、黑白盒、解耦内聚等)。

        (2)逻辑:对逻辑的表达形式(关联、位置、包含)。

        (3)模型:分析模型(鱼骨图、排比图等)、架构模型(框架图、流程图等)。

你可能感兴趣的:(大话软件工程:需求分析与软件设计(三))