软件架构设计阅读笔记1

软件架构设计这本书最开始主要讲述了软件架构的概念,以及一些软件结构设计的方法。

软件架构的概念:

组成派:软件架构 = 组件 + 交互。

决策派:软件架构 = 重要决策集。

软件架构子系统和框架之间的关系:好的架构设计必须把变化点错落有致地封装到软件系统的不同部分。

软件架构在软件开发过程中有着非常重要的作用,软件架构承接着业务的目标,下接着技术的决策,先进行架构设计,后进行详细设计和编码实现,符合“基于问题深度分而治之”的理念。软件架构方案在小组中间扮演了“桥梁”和“合作契约”的作用。架构设计为增量交付提供了良好的基础,通过软件架构设计可以使软件产品支持批量定制,提高产品的质量,缩短开发产品的周期,因此软件架构设计是十分重要的。

软件产品线:指具有一组可管理的、公共特性的、软件密集性系统的集合,这些系统满足特定的市场需求或任务需求,并且按照预定义方式从一个公共的核心资产集开发得到。

软件产品线架构:针对一个公司或组织内的一系列产品而设计的通用架构。

架构视图:是一种设计架构、描述架构的核心手段。通过“架构视图”作为分而治之的手段,使架构师可以分别专注于架构的不同方面、相对独立地分析和设计不同“子问题”。架构视图分为2设计视图和5设计视图,2设计视图:逻辑视图 + 物理视图;5设计视图:逻辑视图 + 物理视图 + 运行视图 + 数据视图 + 开发视图。每个视图都是从特定角度规划系统的分割与交互,都是(架构的定义)“组件+交互”的一种体现。5视图方法错落有致地将众多技术关注点分成“群落”,“群落”内高聚合,“群落”间松耦合,有利于架构师设计思维的有序展开。

架构设计中的关键要素及解决策略:

是否遗漏了至关重要的非功能需求?  全面认识需求。

能否驯服数量巨大且频繁变化的需求?    关键需求决定架构。

能否从容地设计软件架构的不同方面?    多视图探寻架构。

是否及早验证架构方案并作出了调整?    及早验证架构。

软件架构的设计程度会根据项目和开发团队情况的不同而有所不同,避免出现高来高去式架构设计,比如缺失重要架构视图,不能够深入的去进行架构设计,各层之间的交互接口和交互机制设计严重不足。

我觉得在软件架构设计的过程中,最重要的还是去关注需求,只有深入的了解需求我们才能更好的去了解产品,了解需求的途径有多种,我们也不能仅仅依靠软件需求规格说明书,因为他往往不够精确,可能会丢失一些重要的需求,我们要从多种途径中去了解需求,了解关键需求是进行架构设计的关键,前期的准备十分重要,一个好的架构设计能够提高软件开发的效率,避免出现更多的错误。

原文地址:https://www.cnblogs.com/zhang12345/p/13092708.html