第9章 概念架构设计

概念架构设计能够获得顶级的概念性组件模型,但没有想象的接口定义和细化的组件。

其中鲁棒图既能否进行组件发现,也能够组件的分层,以及展现组件之间的关系。

概念架构与领域建模的主要区别是:

  • 领域建模:关心的是系统展现出来的外部行为和期望,属于需求描述。
  • 概念架构:关心的是系统内部的功能模块划分,是属于设计描述。采用鲁棒图进行标准化模块建模:边界类+控制类+实体类。
  • 领域建模:是对用例图需求的深化,是对用例图需要的进一步展现,属于需求描述
  • 概念架构:是对用例图需求的设计,是对用例图需要的架构实现!,属于架构设计

9.1 概念架构是什么




概念架构举例 概念框架图模板_系统架构


概念架构举例 概念框架图模板_架构_02


概念架构举例 概念框架图模板_架构_03


概念架构举例 概念框架图模板_架构_04


9.1.1 概念架构是直指目标的设计思想、重大选择


概念架构举例 概念框架图模板_架构设计_05


概念架构举例 概念框架图模板_概念架构举例_06


9.1.2 案例1:汽车电子AUTOSAR——跨平台复用

NA

9.1.3 案例2:腾讯QQvideo架构——高性能

NA

9.1.4 案例3:微软MFC架构——简化开发

NA

9.2 概念架构设计概述

9.2.1 “关键需求”进,“概念架构”出


概念架构举例 概念框架图模板_架构设计_07


概念架构举例 概念框架图模板_架构设计_08


9.2.2 概念架构≠理想化架构


概念架构举例 概念框架图模板_架构_09


9.2.3 概念架构≠细化架构


概念架构举例 概念框架图模板_Powered by 金山文档_10


概念架构举例 概念框架图模板_概念架构举例_11


概念架构设计的三大组成:

  • 功能组件分层图:以分层的方式展现系统内部的主要功能组件,功能组件的切分分为横向切分和纵向切分。
  • 鲁棒图:采用标准化的方法,把以用例形式展现的需求转换成内部对象/功能实体的方法。
  • 目标—场景—决策表:以表格的形式,结构化的思考结构设计的宏观决策与选择!!!

9.3 左手功能——概念架构设计(上)


概念架构举例 概念框架图模板_概念架构举例_12


9.3.1 什么样的鸿沟,架什么样的桥


概念架构举例 概念框架图模板_概念架构举例_13


备注:

用例需求:是站在系统外部看系统所展现出的外部行为,或者说站在系统外,对系统提出的诉求和期望。此时系统是一个黑盒子。

概念架构设计:把系统这个黑盒子打开,站在系统内部,通过设计内部模块的组织架构,分配内部模块的职责和功能,从而使得系统满足客户对其的期望和诉求。

没有概念架构,只有用例需求,程序员只能根据自己的经验编写代码了。这就导致不同的程序员,编写出来的代码结构千差万别。而概念架构设计,就是把用户的需求,按照规范化的方法,映射成通用的架构,这样不同的程序员编写的代码,不至于千差万别,能够在架构上保持一致。这样编写出来的软件的一致性就比较好,不同的程序员的水平即使相差很大,同样的用户需求,最终实现的程序,相差不会太大。

这就是概念架构设计的重要意义!!!概念架构设计是架构师为程序员搭好了代码的基本框架!!!

同时,为避免了程序员由于缺乏业务领域的知识而对需求产生误解!!!

9.3.2 鲁棒图“是什么”

鲁棒图的作用是:用来解决以用例形式展现的用户需求,如何映射成内部的结构设计,特别是对象设计!!!是把用例需求转换成内部架构/对象设计的一种工具和方法,是把需求转换成需求的桥梁。

鲁棒图使用边界对象、控制对象和实体对象,以标准化方式,抽象和设计所有的用户用例!!!

  • 边界对象:系统在实现用例时,系统与外界的边界与接口
  • 控制对象:系统在实现用例时,内部的业务逻辑(行为、算法)
  • 实体对象:系统是实现用例时,内部的数据存储(数据结构)

鲁棒图与功能组件分层图、目标—场景—决策表一起构成了概念架构设计的三剑客。


概念架构举例 概念框架图模板_Powered by 金山文档_14


鲁棒图的输入是用例图,它能够把用例需求转换成软件内部的设计,因此,在架构设计时,他可以检查架构设计的完整性,检查设计的架构是否已经完成的表达了需求。而分层的功能架构是无法达到这样的效果的,分层的功能架构无法与用例需求完全一一对应,分层的功能,更多是架构师的经验,而不是结构化的方法。

在概念架构设计阶段,主要展现的事关键需求、核心需求。

在详细架构设计阶段,可以展现所有的用户用例需求。

因此,鲁棒图实际上是一种思维方式,思维过程,一种把需求转换成设计的方法!!!

9.3.3 鲁棒图“画什么”


概念架构举例 概念框架图模板_Powered by 金山文档_15


概念架构举例 概念框架图模板_Powered by 金山文档_16


概念架构举例 概念框架图模板_概念架构举例_17


  • 应用程序层由特定于此应用程序的那些元素组成。 所以这将包含UI和接口,UI的后端处理以及应用程序和业务逻辑层之间的任何绑定。 在完美的设计里,这个层不会包含任何业务领域的逻辑,纯粹的软件接口编程(UI和外界通信)。
  • 业务逻辑层(BLL)包含特定于业务领域的逻辑,与特定的业务领域强相关。 另外,如果要构建一个单独的BLL,该层应该包含其他应用程序可以使用的逻辑以及这个逻辑。 例如,一组Web服务暴露了一个定义良好的API。 这将BLL与您的应用程序UI分离开来,并使您可以灵活地在将来构build其他应用程序UI。业务逻辑的稳定的,应用程序UI是易变的。业务逻辑是“里子”,应用程序是“外表”!
  • 业务层负责业务决策和涉及客户协议的逻辑。
  • 应用程序层是与业务决策无关的原始进程。


概念架构举例 概念框架图模板_Powered by 金山文档_18


控制对象实现三部分功能:

  • 应用程序的后台
  • 纯粹的业务逻辑,与应用程序的前后台解耦
  • 数据访问逻辑

而实体对象:真正的数据,可以是数据库或数据结构!!!

9.3.4 鲁棒图“怎么画”


概念架构举例 概念框架图模板_系统架构_19


概念架构举例 概念框架图模板_架构_20


概念架构举例 概念框架图模板_概念架构举例_21


概念架构举例 概念框架图模板_Powered by 金山文档_22


概念架构举例 概念框架图模板_系统架构_23


概念架构举例 概念框架图模板_Powered by 金山文档_24


概念架构举例 概念框架图模板_架构_25


9.4 右手质量——概念架构设计(下)


概念架构举例 概念框架图模板_Powered by 金山文档_26


备注:

质量需求并不是以用例的形式展现的,而是以条文的形式展现的。因此,鲁棒图无法实现纯粹的质量需求到架构设计的转换!!!这就需要一种新的方法,把质量需求和约束条件的需求,转换成架构设计的决策和架构设计要考虑的因素!!!这种方法就是目标、场景、决策表格!!!

9.4.1 再谈什么样的鸿沟,架什么样的桥


概念架构举例 概念框架图模板_架构设计_27


备注:

质量需求和约束条件,不是以用例的形式存在的(当然,转换成用例的质量需求除外),如何把用文字表达的非功能需求转换成架构设计的需求和要求,就需要新的工具和方法。

9.4.2 场景思维

笼统需求 =》 场景描述 =》 概念设计


概念架构举例 概念框架图模板_Powered by 金山文档_28


在上图中:

指标目标:笼统性的质量需求

场景:明确性的路径

设计决策:根据明确的路径,明确设计决策,以满足笼统的质量要求。

备注:

场景思维的本质是把笼统的质量需求,转换“功能性、场景性、明确化、具体化“需求。

在特定的场景中,体现质量需求!!!

9.4.3 场景思维的工具


概念架构举例 概念框架图模板_系统架构_29


备注:

把质量需求转换成特定的场景,原本是需求分析师的责任。

但在现实中,很多需求分析师,只给出功能性需求,非功能性需求都是架构师去挖掘的,更谈不上需求分析师把非功能性需求转换成场景了。这个活,就落在了架构师的身上,如果架构师也没有进行转换,就只能靠程序之间的造化了。


概念架构举例 概念框架图模板_Powered by 金山文档_30


备注:

上述的箭头反应了反向的作用力的过程。

而概念设计时,正好是相反的,即:目标需求,如质量属性 =》分解成质量场景 =》设计决策,决定哪些场景是支持的,哪些场景是不支持的。


概念架构举例 概念框架图模板_架构设计_31


9.4.4 目标—场景—决策表应用举例


概念架构举例 概念框架图模板_Powered by 金山文档_32


概念架构举例 概念框架图模板_Powered by 金山文档_33


备注:

在某个场景下,可以有很多if....then.....子场景。


概念架构举例 概念框架图模板_系统架构_34


9.5 概念架构设计实践要领

9.5.1 要领1:功能需求与质量需求并重


概念架构举例 概念框架图模板_Powered by 金山文档_35


9.5.2 要领2:概念架构设计的1个决定、4个选择


概念架构举例 概念框架图模板_Powered by 金山文档_36


概念架构举例 概念框架图模板_架构设计_37


9.5.3 要领3:备选设计

在项目研发的初始阶段,提供多种可能的设计方案是常态,单一的方案是危险的行为。

特别是复杂的系统,对于技术难点大的部分,提供多种方案是非常有必要的!!!


概念架构举例 概念框架图模板_架构设计_38


9.6 实际应用(7)——PM Suite贯穿案例之概念架构设计

9.6.1 第1步:通过初步设计,探索架构风格和高层分割

9.6.2 第2步:选择架构风格,划分顶级子系统

9.6.3 第3步:开发技术、集成技术与二次开发技术的选型

9.6.4 第4步:评审3个备选架构,敲定概念架构方案