软件架构设计-如何从框架设计到编码?
Posted 从零开始学架构
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件架构设计-如何从框架设计到编码?相关的知识,希望对你有一定的参考价值。
架构师的系统架构图和实际的编码间还有比较大的距离,如何在两者之间建立桥梁,常用的是4+1架构视图和使用UML来描述系统的组成和行为。
4+1视图
什么是4+1视图?4+1中的“4”指的是:逻辑视图,开发视图,运行视图,部署视图,“1”指的是场景视图。前面4种图用于描述系统,场景图用于解释和验证这4种视图是否有效。如下图所示:
逻辑视图:主要用于描述功能需求,系统为最终的用户会提供什么样的服务。
运行视图:描述系统中的运行实体,包括线程和它们之间的关系及交互。它往往体现系统的非功能性需求方面,例如性能和可靠性。
开发视图:描述软件模块在开发环境中的组织情况。
部署视图:描述系统中的各部分是如何部署在实际的系统节点的。
场景视图:用例的实例可以称为场景,场景描述了4种视图中的元素是如何无缝协同工作的,它也描述了系统中对象和交互过程的关系。
UML语言
在编写代码之前,需要描述系统的功能,设计和模块的分布,类似建筑师使用房屋结构图用于描述房屋的设计,架构师需要通用的语言来描述系统,用于和其它工程师沟通,最常用的便是UML(Unified Modeling Language)。UML有多种图表,其中用得比较多的是用例图,类图,活动图,状态图,组件图,是架构设计中做领域建模的重要工具。
这几个图的特点是:
用例图:描述人们如何与系统交互。用例是捕获系统功能需求的技能,描述系统用户和系统本身的典型交互,提供系统如何被使用的说明。实际上写出文本用例往往比画出用例图更加重要,通过用例能够描述系统中的行为和预期结果,异常情况。
类图:从概念视角画类图,描述系统中的对象及其关系,也是建造严密的领域词汇表的好方法。类图是从框架设计到实际落地编码的最重要的桥梁之一。工程师疑惑在面向对象编程中,如何从逻辑图,运行图,部署图,开发视图落地到编码,类图便是重要一环。好的设计能够直接从类图生成代码。
活动图:能够展示组织的工作流,展示软件如何与人类活动交互,活动图能够为用例展示其上下文,以及复杂用例的工作细节。
状态图:如果一个概念有生命周期,有各种状态和改变状态的事件,状态图很有用,例如TCP连接随着接收不同的事件,在不同的状态间切换。
序列图:使用序列图能够弄清楚软件中发生了什么,以及发生的顺序。序列图中的模块对象可以是子系统,也可以是组件和类。
以上是关于软件架构设计-如何从框架设计到编码?的主要内容,如果未能解决你的问题,请参考以下文章