为什么会出现架构?
从软件开发过程的角度上来看系统分析(需求分析)偏向业务,而系统设计又偏向技术,中间过程存在“鸿沟”,出现了架构。这里所说的架构虽然说是系统架构大多数指的是软件架构,又叫做软件体系结构(Software Architecture)简称SA。需要注意的是结构化分析也简称‘’SA",需要结合上下文来判定。架构设计及时需求分配,即将满足需求的职责分配到组件上。
一、.架构的定义
一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。
体系结构并非可运行软件。确切地说,它是一种表达,使软件工程师能够:
(1)分析设计在满足所规定的需求方面的有效性:
(2)在设计变更相对容易的阶段,考虑体系结构可能的选择方案;
(3)降低与软件构造相关联的风险。
上面的定义强调在任意体系结构的表述中“软件构件”的角色。软件构件简单到可以是程序模块或者面向对象的类,也可以扩充到包含数据库和能够完成客户与服务器网络配置的“中间件”。
软件体系结构的设计两个层次: 数据设计和体系结构设计。数据设计体现传统系统中体系结构的数据构件和面向对象系统中类的定义《封装了属性和操作),体系结构设计则主要关注软件构件的结构、属性和交互作用。
二、架构的本质
软件架构为软件系统提供一个结构、行为和属性的高级抽象。
软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束。
三、架构的作用
软件架构是项目干系人经行交流的手段。
软件架构是可传递和可重复的模型,通过研究软件架构可能预测软件的质量。
软件架构是推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。
软件架构可以使在分析设计满足所有规定需求方面的有效性。
软件架构在设计变更容易阶段,考虑架构的选择方案。
软件架构降低软件构造关联的风险。
四、架构与UML的“4+1”视图
架构4+1(逻辑视图、开发视图、进程视图、物理视图、场景)→(功能需求、软件管理、系统集成、系统工程、场景视图为核心)
五、架构与生命周期
1.需求分析阶段。需求分析和 SA 设计面临的是不同的对象:一个是问题空间;另一个是解空间。从软件需求模型向 SA 模型的转换主要关注两个问题: 如何根据需求模型构建 SA 模型。如何保证模型转换的可追踪性。
2.设计阶段。是 SA 研究关注的最早和最多的阶段,这一阶段的 SA 研究主要包括: SA 模型的描述、SA 模型的设计与分析方法,以及对 SA 设计经验的总结与复用等。有关 SA 模型描述的研究分为3个层次:SA 的基本概念(构件和连接子)、体系结构描述语言 ADL、SA 模型的多视图表示。
3.实现阶段。最初 SA 研究往往只关注较高层次的系统设计、描述和验证。为了有效实现 SA 设计向实现的转换,实现阶段的体系结构研究表现在以下几个方面。
(1)研究基于SA的开发过程支持,如项目组织结构、配置管理等。
(2)寻求从SA 向实现过渡的途径,如将程序设计语言元素引入 SA 阶段、模型映射、构件组装复用中间件平台等。
(3)研究基于SA的测试技术。
4.构件组装阶段。在 SA 设计模型的指导下,可复用构件的组装可以在较高层次上实现系统,并能够提高系统实现的效率。在构件组装的过程中,SA 设计模型起到了系统蓝图的作用。研究内容包括如下两个方面。
(1)如何支持可复用构件的互联,即对 SA 设计模型中规约的连接子的实现提供支持。
(2)在组装过程中,如何检测并消除体系结构失配问题。在构件组装阶段的失配问题主要包括: 由构件引起的失配、由连接子引起的失配、由于系统成分对全局体系结构的假设存在冲突引起的失配等。
5.部署阶段。SA 对软件部署作用如下。
(1) 提供高层的体系结构视图来描述部署阶段的软硬件模型。
(2)基于 SA 模型可以分析部署方案的质量属性,从而选择合理的部署方案。
6.后开发阶段。是指软件部署安装之后的阶段。这一阶段的 SA 研究主要围绕维护、演化、复用等方面来进行。典型的研究方向包括动态软件体系结构、体系结构恢复与重建等。
(1)动态软件体系结构。现实中的软件具有动态性,体系结构会在运行时发生改变运行时变化包括两类: 软件内部执行所导致的体系结构改变:软件系统外部的请求对软件进行的重配置。包括两个部分的研究:体系结构设计阶段的支持、运行时刻基础设施的支持。
(2)体系结构恢复与重建。对于现有系统在开发时候没有考虑 SA 的情况,从这些系统中恢复或重购体系结构。从已有的系统中获取体系结构的重建方法分为4 类:手工体系结构重建、工具支持的手工重建、通过查询语言来自动建立聚集、使用其他技术(如数据挖掘等)。
标签:架构设计,模型,系统,软件架构,构件,软件,SA,体系结构 From: https://www.cnblogs.com/hhxzby/p/17676412.html