老周讲堂:软件系统·架构设计
Posted 天易数聚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老周讲堂:软件系统·架构设计相关的知识,希望对你有一定的参考价值。
生产汽车需要图纸、制造机械需要图纸......图纸无处不在!
同样,系统架构如图纸,复杂、大型软件系统没有架构设计就像盖写字楼没有设计图纸一样!如何做好一个复杂工程的架构设计,特别是一个陌生领域的架构设计,只需回答三个问题,即:
Who、What、How。
架构设计的终极目标是在复杂局面中绘制一组大家看得懂的图纸,厘清一条大家看的见主线,这里的大家涉及很多,主要包括以下几个方面:
(1)用户和客户。站在用户的视角,主要关心系统范围,最终是否能够满足功能要求,是否质量过关、稳定可靠,是否易用…,站在客户的视角,是否符合长期和短期目标,是否契合业务发展需要,与其他相关业务或者应用之间的关系和对接手段,是否满足资金、规则约束…,所有上述关键点,都是需要在架构设计明确。
(2)项目管理者。信息化工程越来越复杂,涉众多、业务广、历史遗留系统多样、数据质量和内容割裂,管理项目越来越难、过程风险越来越高、项目团队越来越不稳定,好的系统架构设计,为管理者明确一个清晰的边界、设计一张看得见的蓝图、明确一个有序的推进步骤、提出技术路线和规范要求,全面降低管理者的难度,将管理重点向更加关键、风险更加高的角度倾斜。
(3)项目建设者。作为架构,向上承接需求,向下面向开发,说清功能和技术路线,并不是所有需求都来自用户,架构设计也承担着与用户共同说清非功能性需求的作用,如运行质量,软件的可扩展性、可移植性和可扩展性等内容,同时,对于未来系统运维人员,架构可以作为未来制定运维范围、方案等的总纲。
面向上述读者,架构设计主要达到以下四个方面的目标:
(1)绘制蓝图。架构设计不仅要描述或者解决当前的业务需求,同时还需要面向未来,将符合未来需求的业务、技术、治理蓝图阐述清楚,能够成为后续建设的纲领性和指导性文件,也是投资预算的主要依据之一。
(2)厘清边界。任何信息化工程都是有边界的,架构设计的另一个目标就是说清边界,不仅说清楚哪些需求在本项目中,哪些不在本项目中,还要说清楚,本项目所处的生态环境,说清楚相关系统之间的对接方式。
(3)设计路径。需要架构设计的项目大多是复杂、大型甚至需要创新的工程,需要设计一个能够有序落地的路径,按照先容易后困难难、先紧急后轻松、先重要后次要等原则设计实施步骤,之后后续工程有序开展。
(4)明确权责。用户各部门、业务各层级、管理各角色…所有相关各方需要在架构设计接管明确在设计、建设、运行阶段分别承担什么样的职责,具有什么权益,这也是确保架构设计成果乃至项目顺利实现预期目标的基础。
架构的框架很多,如ToGAF、DoDAF、FEAF…每一种框架的交付物格式不尽相同,但总体来说,架构设计的交付物由一套能够说清楚架构成果的文档,包含Word(Wps)格式的说明文件,以及一组汇报说明用的PPT,主要内容如下图所示:
这部分主要是解读和抽炼,目标客户或用户的主营业务、商业模式和发展战略一般是明确的,业务战略的内容主要是解读,后期作为架构设计的输入,但挑战是需要进行行业研究和高端访谈才能形成的;业务战略决定了IT战略,如果目标客户没有明确的IT战略,在这里就是需要对IT战略进行明确的,这里的IT战略可以是集团层面的,也可以是某个单体项目的。
战略决定业务形态,业务过程是战略落地的途径,业务架构设计的唯一目标是说清业务,既要说清能够信息化的业务,也要说清不能信息化的业务,既要说清内部业务的构成,又要说清楚与外部的边界和衔接模式,既要说清楚业务的流程和约束条件,又要说清楚支撑业务的组织、机制,总之,一个合格的业务架构设计才是后续信息化的成功的前提。
随着技术的发展,虽然信息化系统越来越复杂,但信息化系统以数据输入开始,以数据输出为结束的本质没有改变,不管是企业级的数据架构还是某个单项应用的数据架构,数据标准都是不可或缺的,标准体系涵盖了指标、元数据、数据元、交换共享等标准约定,还需要设计逻辑、物理的数据模型,明确数据溯源手段和数据治理机制,按需选择是否构建数据资产目录,明确目录建设方案,总之,需要为数据全生命周期的管理和应用建立全套的标准规范和保障机制。
定义业务功能目标,可以按照复杂程度,设计多级应用域,重点关注层次划分、范围定义,建立用例矩阵,明确用例与数据之间的映射关系,按照统一建模语言(如UML)设计用例图、用例流程、数据流程,同时设计业务、应用架构关键要素的映射关系,说清应用的前提和基础是业务。
技术是实现应用架构的手段和工具,对于长期从事信息化的人来说,技术架构的设计既复杂又简单,说复杂因为涉及到很多的方面,如技术分层、技术路线、集成方式…说简单,主要因为这些能力都是很熟悉的,只是考虑好统一的原则,如何将个性化的需求有效落地即可。
架构实施主要包含项目设计、实施计划、建设规范和保障措施四个关键内容,根据应用架构的成果,结合已有基础,进行项目分解,可酌情拆解多个子项,结合业务需要、重要程度规划实施路线图,并制定建设规范,确保按照架构规范和预期目标将设计成果落实。
治理工作能够为架构设计效益最大化保驾护航,既包括对各项工作的评价机制和评价,也包括架构的持续迭代的改进。
架构设计的关键点和难点是如何将业务需求落实到应用、数据和技术上,如何保持实用性、先进性、可靠性、安全性、可扩展性等一些列信息化建设要求,可以参照如下十个步骤完成架构设计工作:
(1)发展战略解读。参照中长期规划、年度工作总结和计划等文件,分析提炼核心观点,并与决策者沟通,确定决策者诉求。
(2)行业现状分析。分析目标客户所处业务环境,包括行业发展趋势,本单位业务现状,未来面临的挑战,也就是信息化的动因。
(3)行业标杆分析。以行业标杆或者竞争对手为研究对象,分析其业务模式、发展态势,提炼值得借鉴的管理。
(4)业务现状分析。确定信息化涉及范围,调研主营业务、核心业务部门,梳理业务现状,输出“现状调查报告”。
(5)业务架构设计。根据调研结果划分业务域,根据业务复杂度,可设计多级业务域,梳理业务涉众,绘制跨域、域内业务流程,明确各个业务节点的关键输入、输出。
(6)应用架构设计。建立用户/用例矩阵,按照依赖性最小、冗余最少、相对独立的原则划分多级应用域,明确业务域与应用域之间的映射关系。
(7)数据架构设计。确定数据建模范围,明确数据对象,分别构建概念模型、逻辑模型和物理模型,同时,需要明确模型标准规范体系,以及后续数据采集、管理、应用的治理体系。
(8)技术架构设计。面向未来、满足需要、解决问题为出发点,选择技术路线,明确技术架构,同时,确定数据集成、应用集成、流程集成、界面集成的范围和方案。
(9)架构实施和持续治理,是最后两个环节,既是架构落地的环节,也是架构检验和优化的持续动作,明确的机制和组织是架构可否有效执行的基础。
架构设计源于业务,服务于业务,从事架构设计源于丰富的知识积累和业务理解,同样,架构设计过程也是一个不断取舍和优化的过程。
以上是关于老周讲堂:软件系统·架构设计的主要内容,如果未能解决你的问题,请参考以下文章
企业普法讲堂—股权架构设计动态研究,开讲啦!
立即报名 | 公益大讲堂第三期讲座:股权架构设计(动态股权)
天霜法律讲堂第十二期:初创企业股权架构设计实务
旅游大讲堂 ‖ 《股权架构设计过程中的风险管理》
刘勇智:一码通缺陷分析与架构设计方案丨声网开发者创业讲堂 Vol.02
豹哥嵌入式讲堂:ARM知识概要杂辑- 内核架构编年史