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

简介: 章五 软件体系结构集成开发环境的设计与实现一、软件体系结构描述语言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、代码模板生成器
目录
相关文章
|
5天前
|
安全 定位技术 API
婚恋交友系统匹配功能 婚恋相亲软件实现定位 语音社交app红娘系统集成高德地图SDK
在婚恋交友系统中集成高德地图,可实现用户定位、导航及基于地理位置的匹配推荐等功能。具体步骤如下: 1. **注册账号**:访问高德开放平台,注册并创建应用。 2. **获取API Key**:记录API Key以备开发使用。 3. **集成SDK**:根据开发平台下载并集成高德地图SDK。 4. **配置功能**:实现定位、导航及基于位置的匹配推荐。 5. **注意事项**:保护用户隐私,确保API Key安全,定期更新地图数据,添加错误处理机制。 6. **测试优化**:完成集成后进行全面测试,并根据反馈优化功能。 通过以上步骤,提升用户体验,提供更便捷的服务。
|
5月前
|
机器学习/深度学习 IDE 开发工具
Python集成开发环境的选择
【7月更文挑战第6天】Python集成开发环境的选择
84 2
|
1月前
|
API 开发者 容器
DevEco Studio:熟练使用华为提供的集成开发环境DevEco Studio
【10月更文挑战第22天】随着HarmonyOS的普及,华为推出了官方集成开发环境DevEco Studio,以提高开发效率。本文通过开发一款天气应用的案例,详细介绍了如何使用DevEco Studio进行环境搭建、界面设计、数据绑定与交互、调试与运行等步骤,帮助开发者高效完成HarmonyOS应用开发。
270 6
|
5月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
146 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
4月前
|
开发者 持续交付 Android开发
Xamarin开发者的秘密武器:如何通过持续集成与持续部署(CI/CD)实现高效、高质量的软件交付
【8月更文挑战第31天】在当今追求高效、高质量软件交付的时代,Xamarin开发者需像大厨般迅速烹制数字化佳肴,而持续集成(CI)与持续部署(CD)则是关键工具。CI要求开发者频繁将代码集成到共享仓库,利用自动化工具如Azure Pipelines或Jenkins自动编译、测试代码,确保质量。CD在此基础上进一步实现自动化部署,简化从开发到生产的全过程。借助如Visual Studio App Center这样的工具,Xamarin项目得以快速构建、测试并部署至Android和iOS平台,显著提升开发效率和代码质量,助力团队乘风破浪,驶向成功的彼岸。
36 0
|
4月前
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
57 0
|
5月前
|
Linux
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
《FFmpeg开发实战》书中介绍了直播的RTSP和RTMP协议,以及新协议SRT和RIST。SRT是安全可靠传输协议,RIST是可靠的互联网流传输协议,两者于2017年发布。腾讯视频云采用SRT改善推流卡顿。以下是Linux环境下为FFmpeg集成libsrt和librist的步骤:下载安装源码,配置、编译和安装。要启用这些库,需重新配置FFmpeg,添加相关选项,然后编译和安装。成功后,通过`ffmpeg -version`检查版本信息以确认启用SRT和RIST支持。详细过程可参考书中相应章节。
121 1
FFmpeg开发笔记(三十四)Linux环境给FFmpeg集成libsrt和librist
|
5月前
|
编解码 数据挖掘 测试技术
对于大屏幕显示系统工程,这通常涉及到硬件(如显示器、投影仪、控制器等)和软件(如内容管理系统、控制软件等)的集成。
对于大屏幕显示系统工程,这通常涉及到硬件(如显示器、投影仪、控制器等)和软件(如内容管理系统、控制软件等)的集成。
|
5月前
|
机器学习/深度学习 IDE 开发工具
Python集成开发环境
【7月更文挑战第6天】Python集成开发环境
82 1
|
5月前
|
测试技术 数据库 Python
在系统工程中,软件测试是一个至关重要的环节,它确保软件的质量、可靠性和性能。软件测试通常包括多个阶段,如单元测试、集成测试、系统测试和验收测试等。
在系统工程中,软件测试是一个至关重要的环节,它确保软件的质量、可靠性和性能。软件测试通常包括多个阶段,如单元测试、集成测试、系统测试和验收测试等。

热门文章

最新文章