章五 软件体系结构集成开发环境的设计与实现

简介: 章五 软件体系结构集成开发环境的设计与实现一、软件体系结构描述语言1、目前出现了许多针对特定领域的软件体系结构描述语言,有:Aesop、ArTek、C2、Darwin、LILEANNA、MetaH、UniCon、Weaves、Wright等。
章五 软件体系结构集成开发环境的设计与实现
一、软件体系结构描述语言
1、目前出现了许多针对特定领域的软件体系结构描述语言,有:Aesop、ArTek、C2、Darwin、LILEANNA、MetaH、UniCon、Weaves、Wright等。
2、对软件体系结构的描述和表达语言经历了从低到高的4个发展阶段:
(1)用由矩形框和有向线段组合而成的图形表达工具
矩形框代表抽象构件,
有向线段代表辅助各构件进行通讯、控制或关联的连接件。
该方法简介易用,但术语和语义表达存在着不规范和不精确。
(2)采用将一种或多种传统程序设计语言的模块连接起来的模块内连接语言(MIL-Module Interconnection Language)
此方法具有严格的语义基础,但语言处理和描述的软件设计开发层次过于依赖程序设计语言,限制了它们处理和描述比程序设计语言元素更为抽象的高层次软件构架元素的能力。
(3)参照传统的程序设计语言的设计和开发经验,重新设计、开发和使用针对软件构架特点的专门的软件构架描述语言(SADL-Software Architectural Description Language)
SADL现今发展很快,但由于它们是设计者在某种特定应用或研究开发中设计和发展出来的,使得不同的SADL在适用范围和相互衔接等问题上存在一定的局限性和封闭。
(4)采用基于构件的系统描述语言。
基于构件的系统描述语言将软件系统描述成一种是由许多以特定形式相互作用的特殊软件实体构造、组成的组织或系统。
3、软件体系结构描述语言应满足如下要求:
(1)可抽象描述构件;
(2)可抽象描述系统内部的通讯方式和机制;
(3)满足通讯完整性;
(4)具有对体系结构动态特性建模的可能;
(5)支持分层复合构造;
(6)具有关联性,即能在不同体系结构视图间建立行为关联。
4、体系结构描述语言应具有如下功能:
(1)捕捉体系结构信息;
(2)反映实例的结构特征;
(3)支持多实例复合构造;
(4)帮助设计人员在设计与实现间做出抉择;
(5)验证体系结构规格说明与实现是否一致;
(6)系统分析;
(7)自动化。
5、一个体系结构描述语言由“4C”组成:构件(Components)、连接器(Connectors)、配置(Configurations)、限制(Constraints)。
6、尽管体系结构描述语言的功能要求随不同的领域而有所不同,通过分类比较、提取各种体系结构描述语言的共性,每个体系结构描述语言都提供工具描述了以下基本元素:
(1)构件
(2)连接器
(3)体系结构配置
7、构件建模
一个构件代表了一个可计算单元或一个数据存储体。
随软件细化的粒度不同,构件可大可小。
在对构件建模时要描述以下特性:
(1)接口:是一组构件与其环境进行交互的界面或端口。
接口提供了构件间交互的方法,每个接口代表了该构件与其环境进行交互作用的一个作用点。
接口分“提供”接口和“请求”接口两种。
(2)类型:定义了可重用块的功能特性,是对封装特定功能的可重用块的抽象描述。
(3)语义:描述了构件行为特征的高层模型。
(4)限制:既可以描述系统具有的属性,也可以用来申明系统可能发生的一些例外。
(5)非功能属性
构件的非功能属性(如:安全性、可移植性、性能等)通常都无法从构件的行为描述中推导出来。
在体系结构中尽早的定义这些特性,将系统中的构件实现镜像到不同的处理器,并实施结构上的限制来分析系统,即可帮助设计人员仿真系统的运行状态,分析系统,也可辅助开发人员进行项目管理。
8、连接器建模
连接器用来对构件间的交互动作和交互规则建模。
连接器是软件体系结构的基础块。
在实际系统中,连接器可以根据系统实现需要以不同方式实现。如:不同设备间相互交流的消息、共享变量、缓冲区、嵌入代码中的过程调用序列、初始化参数、C/S协议、管道、数据库与应用程序间的SQL连接等。
对连接器建模要考虑以下特性:
(1)接口:是一组连接器与构件、相连连接器的交互端口。
连接器的接口使构件间具有好的连通性,确保构件顺利交互,也利于推理、分析体系结构配置。
(2)类型:是对构件间的通讯机制、协同方法建模。
体系结构层的构件交互作用可能要通过复杂的协议来描述。
可通过两种方法实现连接器的重用:依据交互协议需要将连接器类型设为可扩展类型;根据特定实现机制需要将连接器类型设为枚举型。
(3)语义:描述了连接器行为特征的高层模型、
连接器的语义定义了与构件的计算单元无关的交互协议。
(4)限制:用于设定连接器的使用边界,建立构件间的依赖关系,并确保连接器交互协议正确。
(5)非功能属性:通常无法从连接器的语义的定义中推导出来。
非功能属性说明了正确实现连接器所需的附加要求。
9、体系结构配置建模
体系结构配置反映了体系结构描述中所含构件和连接器的拓扑结构。
通过体系结构配置信息可以判断构件连接是否正确,构件接口是否匹配,连接器能否保证通讯畅通,构件的语义描述是否符合构件的行为特征。
通过配置信息可以评估体系结构的并发和分布特性。
(1)描述的可理解性
(2)复合构造能力
复合构造能力:是一种在不同详细程度描述软件系统体系结构的机制。
(3)细化和可塑性
(4)异构性
(5)延展性
(6)动态机制
动态机制是指在系统处于运行状态时更改体系结构,并使更改在系统运行时生效的机制。
(7)限制
体系结构配置中的限制描述了系统中构件和连接器的依赖关系。
(8)非功能属性
对于软件系统中存在的一些无法用构件或连接器描述的属性,可在体系结构配置中采用非功能属性描述来建模。
体系结构配置中的非功能属性描述在系统性能分析、设定系统边界条件,以及将结构上的构件块镜像到不同处理器时非常有用。
二、软件体系结构集成环境
体系结构信息的采集、维护和确认是一个长期不断发现和解决问题的过程。
1、设计目标
软件体系结构集成开发环境的设计目标:
(1)描述各种风格的软件体系结构;
(2)支持自顶向下(或自下向上)的分层细化(或聚集)体系结构元素;
(3)确保接口一致;
(4)提供一个体系结构知识库存放与体系结构设计相关的设计模块、设计要素、设计需求(或脚本);
(5)具有一个提供数据和控制模型代码的模板生成器;
(6)提供体系结构的图形化描述工具,帮助系统设计人员画出系统体系结构图,并从不同的视角以图形化的方式反映体系结构。
2、集成环境原型
一个软件体系结构集成开发环境应该包括如下元素:
(1)体系结构描述语言(ADL)
(2)体系结构配置文档编辑器
确定了体系结构的语法,就能定义一套体系结构描述语言,规定系统中的关键字、终结符、正则表达式。
(3)体系结构配置图形编辑器
体系结构配置文档编辑器能帮助软件体系结构设计人员分析、设计系统的软件体系结构。
体系结构设计人员为每个图形符号赋予特定的语法描述,对构件、接口、连接器附加一定的限制条件,在体系结构集成开发环境将图形符号翻译成具体的体系结构配置描述时就可以对用户描述进行边界检查。
(4)软件体系结构视图
可视化、文档化一个软件系统,要求从多个视角观察系统。
体系结构视图通常可分为3类:
体系结构文本视图:显示用户体系结构配置文档的文档描述;
体系结构交互视图:描述体系结构中构件交互状态;
体系结构层次视图:描述体系结构中构件的层次结构。
3、UML分析视图
(1)用况视图(use case view):由专门描述可被最终用户、分析人员和测试人员看到的系统行为的用况组成。
(2)系统设计视图(design view):包含了类、接口和协作,它们形成了问题及其对问题解决方案的术语词汇。
(3)系统的实现视图(implementation view):包含了用于装配和发布物理系统的构件和文件。
(4)系统的实施视图(deployment view):包含了形成系统硬件拓扑结构的节点。
(5)系统的进程视图(process view):包含了形成系统并发与同步机制的线程和进程,该图主要针对性能、可延展性和系统的吞吐量。
4、软件体系结构语法分析器
5、代码模板生成器
目录
相关文章
|
3月前
|
监控 测试技术 持续交付
自动化测试和持续集成/交付:提升软件质量和效率的关键
在当今快节奏的软件开发环境中,自动化测试和持续集成/交付已经成为了必不可少的工具和流程。通过自动化测试,开发团队可以更快地检测和修复缺陷,同时提高测试覆盖率和质量。而持续集成/交付则可以让开发者将代码快速、自动地构建、测试和部署到生产环境中。这篇文章将探讨自动化测试和持续集成/交付的优势和实现方式,以及如何在实践中有效地使用它们来提升软件质量和效率。
|
2月前
|
Linux 数据安全/隐私保护 Docker
在云服务器上搭建集成开发环境
在云服务器上搭建集成开发环境
|
2月前
|
监控 测试技术 API
自动化测试工具与电脑桌面监控软件的集成:Selenium与Python的无缝整合
在当今数字化时代,软件质量保证是每个软件开发团队都必须面对的重要挑战之一。自动化测试工具和电脑桌面监控软件的结合,为开发团队提供了一种有效的方式来确保软件的稳定性和性能。本文将介绍如何利用Python编程语言中的Selenium库,与桌面监控软件进行无缝整合,以实现对应用程序的自动化测试和桌面监控。
184 5
|
2月前
|
监控 Java 持续交付
内部网络监控软件的Groovy应用:持续集成与部署的自动化监控
在当今高度数字化的环境中,对于内部网络的监控变得至关重要。为了保证系统的稳定性和安全性,监控软件的自动化变得越来越必要。本文将介绍如何利用Groovy编程语言实现持续集成与部署的自动化内部网络监控软件,并通过代码示例展示其实现方式。
252 3
|
2月前
|
测试技术 API 数据格式
5、软件产品集成过程——所有表集合
5、软件产品集成过程——所有表集合
20 0
|
7月前
|
jenkins 持续交付 开发工具
如何基于Docker搭建jenkins集成开发环境?建议收藏
如何基于Docker搭建jenkins集成开发环境?建议收藏
|
3月前
|
IDE 前端开发 JavaScript
【C#】C# 开发环境配置(Rider 一个.NET 跨平台集成开发环境)
【1月更文挑战第26天】【C#】C# 开发环境配置(Rider 一个.NET 跨平台集成开发环境)
|
5月前
|
监控 测试技术 持续交付
持续集成与持续交付(CI/CD):探讨在云计算中实现快速软件交付的最佳实践
蓝绿部署和灰度发布: 使用蓝绿部署和灰度发布等策略,逐步将新版本应用程序引入生产环境,降低风险。
|
5月前
|
存储 机器学习/深度学习 数据挖掘
时序数据库 TDengine 与高级分析软件 Seeq 集成,来看看操作手册
通过 TDengine Java connector,Seeq 可以轻松支持查询 TDengine 提供的时序数据,并提供数据展现、分析、预测等功能。本文将对此进行介绍。
268 2
|
7月前
|
测试技术 Linux C语言
分享一个自己量产项目上的集成测试软件MTTEST
分享一个自己量产项目上的集成测试软件MTTEST
63 1

热门文章

最新文章