章六 软件体系结构的研究与展望

简介: 章六 软件体系结构的研究与展望 计算机的软件领域主要研究计算机使用的环境技术,包括系统软件、用户编程环境与工具、应用软件等。 计算机硬件能够快速发展的原因之一是工业化程度比较好,很多集成电路按照功能做成标准器件,因而好的功能块会保留下来并不断改进。

章六 软件体系结构的研究与展望


计算机的软件领域主要研究计算机使用的环境技术,包括系统软件、用户编程环境与工具、应用软件等。
计算机硬件能够快速发展的原因之一是工业化程度比较好,很多集成电路按照功能做成标准器件,因而好的功能块会保留下来并不断改进。
软件的友好性主要取决于用户界面的设计和人机交互流程的质量。
1、目前软件体系结构的研究方向
软件体系由构成系统的元素的描述、元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
一个特定的系统是用一些构件的集合和构件之间的交互来定义的。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件体系结构级的设计包括软件系统结构、全局控制结构、通讯协议、同步机制和数据存取、为设计元素分配功能、设计元素的组合、软件系统的物理分布、力度和性能以及多种方案的选择。
在体系结构级,相关的系统级典型问题包括:容量、吞吐量、一致性和构件兼容性等一系列问题。
目前,在软件体系结构领域主要致力于模块接口语言、特定领域的体系结构、软件重用、软件模式的规范化、软件体系结构描述语言、软件体系结构设计的形式化基础和设计环境的研究。
2、主要的研究方向分为4类:
(1)提供新的软件体系结构设计语言,使得系统开发者能够很好的描述他们设计的结构,以便与人交流,能够用提供的工具对许多实例进行分析。
(2)对软件体系结构的专门知识的整理。
(3)提供特定领域的体系结构框架。
(4)提供软件体系结构的形式化基础。
3、IEEE在软件体系结构方面的标准
2000年,计算机协会通过了IEEE1471标准,该标准为准确地体系化描述实践提供了统一的文件。促成IEEE1471批准的决定过程演示了该标准是如何来解决概念性问题的,并且强调了在标准形成过程中解决这些各种问题所涉及到的困难。
4、五个核心概念和相互关系为IEEE1471版本的通过提供了基本原则:
(1)每个系统具有一个体系结构,但一个体系结构不是一个系统;
(2)体系结构与体系结构描述不是一回事;
(3)体系结构标准、描述、及开发过程可以不同,并且可以单独地进行研究;
(4)体系结构描述本身是多见解的;
(5)把一个对象的总体概念从其详述中分离开是撰写体系结构标准的一个有效方法。
5、IEEE1471把重点放在软件密集型系统和更通用的系统上。
IEEE1471将“体系结构”定义为:体现在各组成部分、它们之间相互关系与环境的关系、和指导设计和演变的原理之中的一个系统的基本结构。
6、IEEE1471最重要的组成部分为:
(1)对关键术语的定义,如体系结构描述、结构性视图与体系结构性视点;
(2)对体系结构与体系结构描述在概念上的分离促进了描述体系结构标准和构筑系统标准的建立;
(3)用于描述一个系统体系结构的内容要求。
7、IEEE1471中,“视图”是一个能描绘整个系统的一个方面的模型的集合。
一个视图仅用于一个系统。
“视点”是起草可重复使用、特定域体系结构描述标准的工具。
一个体系结构描述必须为其所包括的每个视图定义视点。
8、IEEE1471的体系结构描述要求:
第一,一个体系结构描述必须规定系统的用户,确定他们体系结构的要点。
熟知的要点为:
(1)功能性:该系统需要去做什么?
(2)性能:在重度负载下系统将如何运转?
(3)安全性:系统有保护用户信息的足够能力吗?
(4)可行性:我们可以实现该系统吗?
第二,一个体系结构描述必须被编入一个或多个系统的体系结构视图中。
最后,一个体系结构描述必须为制定关键的结构性决策提供基本原则。
IEEE1471标准重点在说明,而非实施过程。
9、几种主要的软件体系结构的风格和比较
体系结构的风格是指在众多系统中所拥有的共同的结构和语义特性,指导如何将各个模块和子系统组织成一个完整的系统。
客户机Client、服务器Server、过滤器Filters、层Layers、数据库Database等都是构件;
过程调用、事件广播、数据库协议和管道都是连接器。
10、通用体系结构风格的分类:
(1)数据流风格:批处理序列、管道/过滤器;
(2)调用/返回风格、主程序/子程序、面向对象风格、层次结构;
(3)独立构件风格:进程通讯、事件系统;
(4)虚拟机风格:解释器、基于规则的系统;
(5)数据中心风格:数据库系统、超文本系统、黑板系统。
一个体现结构风格定义了有相同组织结构模式的一系列系统,并定义了构件和连接器类型的列表和一套构件连接的约束。
11、几种主要的体系结构风格和优缺点:
(1)管道/过滤器风格
每一个构件有一组输入和输出,构件读入数据流并产生数据的数据流。
优点:允许设计者将整个系统的输入、输出行为看成是多个过滤器行为的简单合成;支持软件重用;系统维护和增强系统性能简单;允许对一些入吞吐量、死锁等属性的分析;支持并行执行。
缺点:通常导致进程称为批处理的结构;不适合处理交互的应用;数据传输入通用标准,故每个过滤器都增加了解析和合成数据的各种,导致系统性能下降,并增加了编写过滤器的复杂性。
(2)数据抽象和面向对象风格
建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或者对象中。
此风格的两个重要方面:对象负责保持数据表示的完整性;对象的表示是对其它对象隐藏的。
优点:改变一个对象的表示,不影响其它的对象;数据存取操作的问题可分解成一些交互的代理程序的集合。
缺点:为使一个对象和另一个对象通过过程调用等进行交互,必须指导对象的标识。
(3)基于事件的隐式调用风格
其思想是不直接调用一个过程,而触发或者广播一个事件或者多个事件。
优点:为软件重用提供了强大的支持;为改进系统带来了方便。
缺点:构件放弃了对系统计算的控制;数据交换的问题;既然过程的语义必须依赖于被触发的事件的上下文约束,那么正确性的推理就存在问题。
(4)层次系统风格
层次系统组织成一个层次结构,每一层为上一层提供服务,并作为下一层的客户。
这样的系统中构件在一些层实现了虚拟机。
优点:支持基于可增加抽象的层的设计;支持系统改进;支持软件重用。
缺点:不是所有的系统都可以容易地被构建成层次系统;很难找到合适的抽象的层。
12、用软件体系结构的理论指导软件设计的优点:
(1)能识别础重要的通用规范,就能理解系统间的高级关系;
(2)是软件系统设计成功的要素是正确的体系结构;
(3)对软件体系结构细节的认识,可在各种设计方案中做出首要的选择;
(4)软件体系结构风格通常对分析和描述复杂系统的高级属性是必要的;
(5)熟练地使用描述体系结构范型的表示法,便于交流;
(6)便于软件重用。
13、领域特定的软件体系结构Domain-Specific Software Architecture,DSSA)
有原则的使用软件体系结构可以在五个方面对软件开发产生积极的影响,方面是:理解;重用;演化;分析;管理。
DSSA实质是一种软件构件的集合,它用标准的结构或者协议书写,专为某类特定任务,然后再推广出去,为整个类似的问题域而用。 

目录
相关文章
|
6月前
|
人工智能 测试技术 持续交付
现代软件测试方法探析及应用前景展望
随着信息技术的迅猛发展,软件在我们日常生活和工作中扮演着愈发重要的角色。而为了保证软件质量和稳定性,软件测试显得尤为重要。本文将探讨现代软件测试方法的演变和应用前景,并分析其在不断变化的技术环境下的发展趋势。
|
18天前
|
人工智能 自然语言处理 安全
调研219篇文献,全面了解GenAI在自适应系统中的现状与研究路线图
【10月更文挑战第22天】生成式人工智能(GenAI)在自适应系统(SASs)中展现出巨大潜力,尤其是在数据理解、逻辑推理和自主性增强方面。GenAI可以提升SASs的自主性和人机交互效率,但也面临技术多样性、数据需求、隐私问题及模型可解释性和鲁棒性的挑战。研究路线图包括解决关键挑战、模型评估优化、改善人机交互和探索实际应用。论文链接:https://dl.acm.org/doi/10.1145/3686803
32 7
|
21天前
|
监控 供应链 数据可视化
深入探索研究TOGAF
【10月更文挑战第15天】
35 0
|
1月前
|
安全 新制造
机械设计制造工艺学是研究机械制造过程中的科学理论与实践
机械设计制造工艺学是研究机械制造过程中的科学理论与实践
35 2
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
AI运作的基本理论
AI已从科幻走进现实,融入日常生活,如智能手机助手、智能家居、自动驾驶等。AI的发展是一部科学史诗,从简单逻辑推理进化到深度学习。机器学习作为核心,包含监督、无监督学习及深度学习等,如卷积神经网络处理图像、递归神经网络处理序列数据。AI在医疗、金融、教育等多个领域广泛应用,如辅助诊断、市场分析、个性化教学等,同时带来就业、隐私及伦理等社会议题。随着技术进步,AI正重塑世界,需谨慎管理其影响以惠及全人类。
52 2
|
3月前
|
机器学习/深度学习 数据可视化 算法
如何对某个研究方向的领域论文进行分析?如何快速了解某个研究方向的发展现状?如何利用VOSviewer分析研究领域的发展现状?
本文介绍了如何使用VOSviewer软件对特定研究方向的领域论文进行可视化分析,以ESN(Echo State Network)网络研究为例,展示了从安装软件、检索文献、导入数据到进行关键词分析、作者分析和引用量分析的完整流程,帮助用户快速了解并深入研究某个学术领域的发展趋势和现状。
83 0
如何对某个研究方向的领域论文进行分析?如何快速了解某个研究方向的发展现状?如何利用VOSviewer分析研究领域的发展现状?
|
6月前
|
敏捷开发 持续交付 项目管理
【软件工程】走近演化过程模型:软件开发的不断进化之路
【软件工程】走近演化过程模型:软件开发的不断进化之路
|
6月前
|
机器学习/深度学习 数据采集 人工智能
ICLR 2024:RLHF有了通用平台和基准,天大开源,专攻现实决策场景
【4月更文挑战第21天】天津大学在ICLR 2024发布RLHF新框架Uni-RLHF,以人类反馈引导强化学习,降低奖励函数设计需求,适应现实决策场景。该框架提供通用平台和基准,支持大规模众包注释,促进研究。尽管面临准确捕捉人类反馈、数据质量和多任务处理等挑战,但开源特性加速了学术进步。[链接](https://arxiv.org/abs/2402.02423)
98 0
|
6月前
|
存储 数据安全/隐私保护 C++
向他人分享你的模型设计成果
在模型设计或交付工作过程中,经常需要为你的团队成员或甲方客户分享你的模型设计成果。在分享过程中,文件大小和复杂性、版本控制问题、权限和访问控制、网络和存储限制、数据安全和隐私等因素,都会影响最终的效果。
97 0
向他人分享你的模型设计成果
|
11月前
|
算法 语音技术