Solution Design概述

Solution Design是IBM历史上一个知名的方法论,其设计的初衷始于售前的解决方案设计,因其对庞大复杂的UMF框架做了精选,相对简单又不失完整,在项目实施过程中也广受架构师欢迎。前几年,随着用户体验的崛起,客户越来越注重体验,IBM开始大力推行Design Thinking作为解决方案设计方法论。但是架构师、开发工程师和运维工程师难以使用Design Thinking方法论,所以Solution Design仍然在项目实施阶段被广泛使用。

如图所示,IBM Solution Design定义了整个解决方案设计流程中的活动,每一项活动都会产生或者更新一些工件,最终形成的解决方案是由一组互相关联的工件共同组成的:

注意,虽然工件构成的解决方案是最终的成果,不要错误的认为Solution Design方法论是由工件驱动的,应当是由活动驱动设计过程,按需创建并及时更新工件。下面,结合IBM杰出工程师Dr. Marcel Schlatter在苏黎世大学的讲义和IBM杰出工程师蒂拉克·米特拉的大作《实用软件架构:从系统环境到软件部署》,讲解一下方法论中的关键环节和工件。

0. 理解客户业务

要设计符合客户需要的解决方案,需要对客户当前的业务和IT做适度的了解。包括:了解客户的业务方向,组织架构,IT技术环境和标准。将这些资料形成规范的文档,有助于实施团队和未来的解决方案团队更好的了解客户,提供更优质的服务。

1. 定义客户需求阶段

1.1 定义项目

活动“定义项目”是回答这个项目要做什么、为什么做,并且得到项目发起人的签字认可。定义项目活动的主要产出工件是《项目定义》,其中包括了目标、背景、目标方案和整体方法、范围、计划框架和组织等。

1.2 识别和罗列需求

    在此活动中定义一组基本的用例以描述用户如何使用系统,理解额外的功能需求并以需求矩阵的形式记录。相较于用例,需求矩阵更适合于罗列大量的需求,同时建立好需求列表以后,也便于评估套装软件的适用性和开发工作量。

1.3 描述系统上下文

    “描述系统上下文”活动,通过绘制系统上下文,设定了所设计系统的边界,同时表现了新系统和已有系统之间地关系。如下系统上下文图,描述了要构建的电子商务系统需和客户端、外部实体以及遗留系统交互(即这些系统不属于电子商务系统),同时表现了系统间的调用方式和通信协议。

1.4 识别非功能需求

    非功能性需求也被称作系统的“质量指标”,常见的非功能性需求包括:性能、可扩展性、可用性、可维护性、可管理性、易用性、数据一致性等。

1.5 定义高阶数据源

    在此项活动中,架构师将识别组织所关注的主题(即主题域),然后建立主题域模型(Subject Area Model),下面的例子是一个航空公司的主题域模型:

1.6 记录架构决策

    在整个架构设计活动中,架构师和团队要做出很多的决策,Solution Design方法论强调要将决策规范的记录下来,一方面可以提高决策的质量,另一方面也可以作为未来需要调整时的参考依据。如下所示,架构决策主要包括问题、假设(或限制条件)、动机、选择(包括优缺点)、决定等内容。

需要注意的是,及时记录架构决策是一项贯穿整个解决方案设计的活动,并非限于某一时间进行,也不宜等方案设计完成后再补记。

1.7 进行可行性评估

在充分了解了客户和项目需求后,下一步可以对项目的可行性进行分析,分析项目对于干系人有价值。在分析可行性时,需对在前期工作中发现的风险、假设、问题和依赖做一梳理,并制定应对措施和可能的行动计划。

本文下半部分请看:揭秘IBM架构设计方法论 —— Solution Design II

参考资料

1.  CCRA 4.0 Overview_20140918_non_conf

2. [印]蒂拉克·米特拉. 实用软件架构:从系统环境到软件部署. 机械工业出版社, 2017

3. https://wenku.baidu.com/view/4c21d7b1ee06eff9aff80768.html

4. https://files.ifi.uzh.ch/rerg/amadeus/teaching/courses/it_architekturen_hs10/

5. https://wenku.baidu.com/view/d77dcd32cf84b9d528ea7adb.html

6. http://walderson.com/IBM/Practices/ScalingAgile

揭秘IBM架构设计方法论 —— Solution Design I相关推荐

  1. 架构师之路二-架构设计方法论

    概念解析 在文章开始之前需要先理解几个概念: 什么是方法论? 我们拿到一个输入,然后根据这个输入预期一个输出,把中间这个过程描述出来就是方法论.所以我们本篇讲的架构师方法论就是架构师先拿到经过需求分析 ...

  2. 系统架构设计方法论——Zachman框架模型

    驾驭复杂系统的整体设计 整个体系的架构设计和价值 事物背后的思考 Zachman proposes a logical structure for classifying and organizing ...

  3. 大数据中台架构之道:揭秘 PaaS + DaaS +DA 全域中台架构设计!

    你被大数据杀过熟吗?当今企业对数据的重视度越来越高,在大数据系统架构设计层面,大数据架构师需要完成技术决策.技术选型,还需要根据不同时期的业务场景,不断优化和演进软件架构,最终攻克技术难点.化解技术风 ...

  4. IBM架构解决方案设计

    IBM内部有一套自成体系的架构设计方法论,且是和TOGAF所互相承认效力的.相比较而言,IBM的架构设计理论,在实际上的可操作性会更强,也可以说是功利性更强些.当然,也会更容易落地使用. 该理论包括5 ...

  5. 大数据的架构设计与未来

    大数据的架构与设计 从IT时代到DT(Data technology)时代 在即将到来的智能时代--->需要需要变得更加智能--->依靠海量数据---->对海量数据进行采集.分析.挖 ...

  6. 架构设计复杂度的6个来源

    谈到架构设计,相信每个技术人员都耳熟能详.我总结了三个架构设计相关的特性: 架构设计的思维和程序设计的思维差异很大. 架构设计没有体系化的培训和训练机制. 程序员对架构设计的理解存在很多误区. 所以, ...

  7. 《程序员》2014年11月刊:电商峰值系统架构设计

    双11来临之际,<程序员>以"电商峰值系统架构设计"为主题,力邀京东.当当.小米.1号店.海尔商城.唯品会.蘑菇街.麦包包等电商企业,及商派.基调网络等服务公司,分享电 ...

  8. 企业业务架构设计方法论及实践(二)

    前言 前面提到了业务架构作为企业战略与技术实现的桥梁,那本文具体讲讲企业战略如何与技术实现进行互通. 一 业务架构决定技术架构 优秀的架构师需要具备体系化的架构设计思维能力,加以架构设计方法论的沉淀和 ...

  9. 阿里P9:做了6年架构设计,这次聊聊微服务与分布式事务细节

    微服务因其高内聚.低耦合.高扩展.敏捷开发为很多企业所用,当然,没有任何一项技术是完美的.系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现. 毫不夸张地说,分布式事务已 ...

最新文章

  1. 【Java】 leetCode 删除链表中等于给定值 val 的所有节点。
  2. Runtime类与Process类
  3. 整合axis2到web项目中
  4. 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0
  5. 淘宝开放API,很不错
  6. 在家办公怎么弄?华为云DevCloud宝典一看就懂——项目管理篇
  7. centos7下安装mysql5.6_CentOS7安装后MySQL5.6如何配置MySQL5.6呢?
  8. 又一款程序员摸鱼神器来了?上班也可以在VSCode看股票 基金实时数据
  9. 单元格值_Excel公式练习40: 从单元格区域的字符串中提取唯一值
  10. Isight2020安装步骤(step by step)
  11. 记事本编码html乱码,记事本乱码怎么办【解决方法】
  12. 各省简称 拼音 缩写_中国省会城市拼音名称及缩写
  13. VproC#混合编程,加载图片
  14. 1. C语言的第一个程序
  15. Arduino ESP8266利用AJAX局部动态更新网页内容
  16. 图片的增强之-裁剪、旋转、放缩
  17. OUTER JOIN的应用场景
  18. ULID和UUID|ULID的学习及使用
  19. python使用Tesseract,pytesseract图片处理识别(1)
  20. 解决matlab 关于警告(warning)、错误(error)、异常(exception)与断言(assert)问题总结

热门文章

  1. 将mybatis打印的Preparing与Parameters转化为可执行sql
  2. 全球海温数据NOAA Extended Reconstructed Sea Surface Temperature (SST) V5的时间解释
  3. 小米手机安装推特后频繁闪退
  4. python语音识别分析_python数据建模分析 - 语音识别
  5. 武汉工程大学信息与计算科学专业面向对象程序设计课程设计题
  6. hadoop2.8配置_Hadoop 2.8集群安装及配置记录
  7. 【border相关】【P3426】 [POI2005]SZA-Template
  8. Unity3D Behavior Designer 行为树1 认识
  9. Windows App开发之编辑文本与绘制图形
  10. 网易云信IM即时通讯PHP接口开发