响应式网站导航,wordpress小看板娘,网站建设发布ps科技感,wordpress错误代码403软件架构设计 概述关键步骤 生命周期需求分析阶段设计阶段实现阶段构件组装阶段部署阶段后开发阶段 概述
从需求分析到软件设计之间的过渡过程称为软件架构#xff08;Software Architecture, SA#xff09;。只要软件架构设计好了#xff0c;整个软件就不会出现坍塌性的错… 软件架构设计 概述关键步骤 生命周期需求分析阶段设计阶段实现阶段构件组装阶段部署阶段后开发阶段 概述
从需求分析到软件设计之间的过渡过程称为软件架构Software Architecture, SA。只要软件架构设计好了整个软件就不会出现坍塌性的错误即不会崩溃。 一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件构件的外部可见属性以及它们之间的相互关系。 体系结构并非可运行软件。确切地说它是一种表达使软件工程师能够 1分析设计在满足所规定的需求方面的有效性 2在设计变更相对容易的阶段考虑体系结构可能的选择方案 3降低与软件构造相关联的风险。
在体系结构设计的环境中软件构件简单到可以是程序模块或者面向对象的类也可以扩充到包含数据库和能够完成客户与服务器网络配置的“中间件”也可以是作为包含数据库和能够完成客户与服务器网络配置的“中间件”的扩充。 软件体系结构的设计通常考虑到设计金字塔中的两个层次——数据设计和体系结构设计。数据设计体现传统系统中体系结构的数据构件和面向对象系统中类的定义封装了属性和操作体系结构设计则主要关注软件构件的结构、属性和交互作用。
软件架构为软件系统提供了一个结构、行为和属性的高级抽象由构件的描述、构件的相互作用连接件指导构件集成的模式以及这些模式的约束组成。 在软件中架构决策包括如何组织代码、模块和组件如何处理数据流、用户界面和业务逻辑。好的软件架构能够确保软件具有良好的性能、可扩展性、可维护性和安全性。所以软件架构就是软件的总体设计方案它决定了软件如何组织和工作以满足用户需求和业务目标。好的架构是构建可靠软件的基础。
关键步骤
需求分析、软件架构设计和系统设计是软件开发过程中密切相关的三个关键步骤它们相互连接确保最终软件产品满足客户需求并具有良好的质量和性能。
需求分析明确定义问题确定客户的需求和期望。这包括与客户交流了解他们的需求并将其转化为详细的功能和规范。软件架构设计考虑如何将系统组织成各种模块、构件和服务以满足需求。这包括确定系统的总体结构和构件之间的关系。系统设计进一步详细设计每个组件和模块。这包括定义接口、数据结构、算法等。
生命周期
需求分析阶段
需求分析和SA设计面临的是不同的对象一个是问题空间另一个是解空间。从软件需求模型向SA模型的转换主要关注两个问题
如何根据需求模型构建SA模型。如何保证模型转换的可追踪性。
这两个问题的解决方案因所采用的需求模型的不同而异。在采用Use Case 图描述需求的方法中从Use Case 图向SA 模型包括类图等的转换一般经过词法分析和一些经验规则来完成而可追踪性则可通过表格或者 Use Case Map等来维护。
从软件复用的角度看 SA 影响需求工程也有其自然性和必然性已有系统的 SA 模型对新系统的需求工程能够起到很好的借鉴作用。在需求分析阶段研究 SA有助于将 SA 的概念贯穿于整个软件生命周期从而保证了软件开发过程的概念完整性有利于各阶段参与者的交流也易于维护各阶段的可追踪性。
设计阶段
设计阶段是SA研究关注的最早和最多的阶段。这一阶段的SA研究主要包括SA 模型的描述、SA 模型的设计与分析方法以及对 SA 设计经验的总结与复用等。 有关SA模型描述的研究分为3个层次SA的基本概念构件和连接件、体系结构描述语言ADL、SA 模型的多视图表示。 1SA 的基本概念即S A模型由哪些元素组成这些组成元素之间按照何种原则组织。 2体系结构描述语言 (Architecture Description LanguageADL)支持构件、连接子及其配置的描述语言就是如今所说的体系结构描述语言。 ADL 对连接子的重视成为区分 ADL和其他建模语言的重要特征之一。典型的 ADL 包括UniCon、Rapide、Darwin、Wright、C2 SADL、Acme、xADL、XYZ/ADL和 ABC/ADL等。 3SA 模型的多视图表示从不同的视角描述特定系统的体系结构从而得到多个视图并将这些视图组织起来以描述整体的 SA 模型。系统的每一个不同侧面的视图反映了一组系统相关人员所关注的系统的某一特定方面多视图体现了关注点分离的思想。
实现阶段
最初SA研究往往只关注较高层次的系统设计、描述和验证。为了有效实现SA设计向实现的转换实现阶段的体系结构研究表现在以下几个方面。 1研究基于 SA 的开发过程支持如项目组织结构、配置管理等。 2寻求从 SA 向实现过渡的途径如将程序设计语言元素引入S A阶段、模型映射、构件组装、复用中间件平台等。 3研究基于 SA 的测试技术。 对于大型软件系统而言由于参与实现的人员较多所以需要提供适当的配置管理手段。SA 引入能够有效扩充现有配置管理的能力通过在S A描述中引入版本、可选择项 (Options)等信息可以分析和记录不同版本构件和连接子之间的演化从而可用来组织配置管理的相关活动。典型的例子包括支持给构件指定多种实现的 UniCon、 支持给构件和连接子定义版本信息和可选信息的XADL等。 为了填补高层 SA 模型和底层实现之间的鸿沟可通过封装底层的实现细节、模型转换、精化等手段缩小概念之间的差距。典型的方法如下。 1在 SA 模型中引入实现阶段的概念如引入程序设计语言元素等。 2通过模型转换技术将高层的 SA 模型逐步精化成能够支持实现的模型。 3封装底层的实现细节使之成为较大粒度构件在 SA 指导下通过构件组装的方式实现系统这往往需要底层中间件平台的支持。
构件组装阶段
在 SA 设计模型的指导下可复用构件的组装可以在较高层次上实现系统并能够提高系统实现的效率。在构件组装的过程中 SA设计模型起到了系统蓝图的作用。研究内容包括如下两个方面。 1如何支持可复用构件的互联即对 SA 设计模型中规约的连接子的实现提供支持。 2在组装过程中如何检测并消除体系结构失配问题。 在构件组装阶段的失配问题主要包括三个方面
由构件引起的失配包括由于系统对构件基础设施、构件控制模型和构件数据模型的假设存在冲突引起的失配。由连接子引起的失配包括由于系统对构件交互协议、连接子数据模型的假设存在冲突引起的失配。由于系统成分对全局体系结构的假设存在冲突引起的失配等。要解决失配问题首先需要能够检测出失配问题并在此基础上通过适当的手段消除检测出的失配问题。
部署阶段
SA 对软件部署作用如下 1提供高层的体系结构视图来描述部署阶段的软硬件模型。 2基于 SA 模型可以分析部署方案的质量属性从而选择合理的部署方案。 现阶段基于 SA 的软件部署研究更多地集中在组织和展示部署阶段的 SA、 评估分析部署方案等方面部署方案的分析往往停留在定性的层面并需要部署人员的参与。
后开发阶段
后开发阶段是指软件部署安装之后的阶段。这一阶段的 S A 研究主要围绕维护、演化、复用等方面来进行。典型的研究方向包括动态软件体系结构、体系结构恢复与重建等。
动态软件体系结构。现实中的软件具有动态性体系结构会在运行时发生改变。现阶段动态软件体系结构研究可分为以下两个部分体系结构设计阶段的支持、运行时刻基础设施的支持。体系结构恢复与重建。对于现有系统在开发时候没有考虑 SA 的情况从这些系统中恢复或重购体系结构。从已有的系统中获取体系结构的重建方法分为4类手工体系结构重建、工具支持的手工重建、通过查询语言来自动建立聚集、使用其他技术如数据挖掘等。