没有合适的资源?快使用搜索试试~ 我知道了~
© 2013由Elsevier B.V.发布。由美国应用科学研究所负责选择和/或同行评审可在www.sciencedirect.com在线获取ScienceDirectAASRI Procedia 5(2013)133 - 1392013年AASRI并行和分布式计算与系统并发软件Paniti Netinanta,b *a泰国曼谷曼谷大学信息技术系b美国伊利诺伊州芝加哥市伊利诺伊理工学院并发编程研究组摘要开发可重用的、可适应的并发软件是一个非常困难的问题。并发软件的可重用性和适应性变得最小。这些协作不仅提高了外围可重用性,而且使修改侵入性改变以满足并发软件设计中的新需求。为了满足未来的需求,并行系统必须进行再工程。一种误解,并发面向对象编程通常支持可重用性和适应性,因为这些问题都不是强加的。软件开发人员必须特别考虑软件的可重用性和适应性。我们提出了一个并发方面框架,更好地支持可重用性和适应性。在该框架中,功能组件和系统资产相对分离。该技术使并行软件开发具有更好的可重用性和适应性。一个框架使可管理的可重用性和适应性建设的并发软件。我们的研究重点是在并行软件开发中的接触分解,我们的目标是展示一个更好的模型,并行软件设计。© 2013作者。由Elsevier B. V.在CC BY-NC-ND许可下开放获取。由美国应用科学研究所负责选择和/或同行评审关键词:面向方面;适应性;可重用性;框架;并发软件。* 通讯作者。联系电话:+66-8185-1116-;传真:+66-2965-0366。电子邮件地址:paniti. n@bu.ac.th。2212-6716 © 2013作者由Elsevier B. V.在CC BY-NC-ND许可下开放获取。美国应用科学研究所负责的选择和/或同行评审doi:10.1016/j.aasri.2013.10.069134Paniti Netinant / AASRI Procedia 5(2013)1331. 介绍并行软件设计的一个重要特征是能够处理不计后果的适应性和可重用性。当需要新的硬件或需求时,软件会不断变化。并发软件的适应性是必然的要求。在不对整个并发软件进行再工程的情况下,并发软件设计中的可重用性是并发软件开发的一个重要方面。现有软件中能够复用的构件越多,软件设计就越快、越好。软件中的大多数变化使其缺陷并产生错误[1]。当我们需要新功能或向系统添加新硬件时,修改软件是不可避免的。并发软件的修改不是一个轻松的过程。并发软件的变异是为满足需求而进行的侵入性演化和变更。可以对传统的功能分解和面向对象的分析和设计进行某些修改。但是,修改不能太复杂。并发软件开发人员本质上保持了并发软件开发的简单性。并发软件开发的易用性是一个好的软件开发值得注意的特点。并行软件设计中的经典基准测试是用来实现和验证并行软件开发的适应性和可重用性的,如读者-作者和生产者-消费者问题。并发软件的商业化,例如操作系统,已经在其设计中获得了更多的重要性。系统软件(如操作系统)不断扩展以进行改进,并支持新功能和硬件。在并发系统软件的设计过程中,某些决策,如可重用性和适应性是必不可少的[2]。关注分离原则中的必要性一次处理一个问题,最初由[3,4]处理。关注点分离原则是并行软件开发的核心。关注点分离带来很多好处。虽然可重用性和可适应性得到了认可,但目前还没有一种公认的方法来指导程序员和开发人员如何出色地实现可重用性和可适应性。开发人员和程序员必须仔细考虑如何分离关注点,以及系统中的一些方面如何处理[5],不仅在设计中,而且在系统软件的实现中。关注点分离越好,系统中功能组件和方面的可重用性和适应性就越好。并发系统软件由分布在系统的许多组件上的多个关注点组成。系统是声名狼借的,一个关注点分散在许多组件上。我们的意思是,这种情况不仅剥夺了可重用性,而且还剥夺了渐进的适应性。系统资产被定义为一个跨系统中多个组件的关注点。示例系统资产包括系统监视、错误处理、同步和调度。目前,大多数并行软件设计都采用传统的功能分解技术。采用功能分解技术可以实现关注点分离,但对可重用性和可适应性有很大的限制。并发的面向对象设计和编程提供了更高的抽象性。然而,可重用性和适应性必须手动实现。这取决于开发人员和程序员的能力。并发的面向对象设计和编程只提供了一个方面,开发人员可以将关注点分开。然而,如果开发人员没有意识到,系统中仍然存在缠结问题。并发面向对象设计和编程解决方案有助于局部化添加或更改数据的影响,但它也可能导致系统资产在多个对象中的缠结和分散[6]。混乱的系统资产导致并发软件缺乏更高层次的抽象,增加了功能组件之间的依赖性,称为紧耦合。紧密耦合使得重用和适应变得困难。因此,现有组件的适应或重用必须在并发系统中产生大量的变化。这影响了并发系统软件的适应性和可重用性。因此,重新设计整个系统以满足新的要求是不可避免的。Paniti Netinant / AASRI Procedia 5(2013)133135最近,一个面向方面的编程(AOP)提出了一个更好的关注点分离技术。它保留了面向对象程序设计的优点。它的目标是实现中心分解[7]。目前,有许多软件开发方法。有一种方法被开发人员用来生产高质量的软件,如面向方面的软件开发[10,11和12]。面向方面的方法旨在为模块化设计提供明确的定义,分解系统中功能组件的关注点。传播关注点在称为方面的独立组件中划分、包含和协作。方面组件和功能组件在预定义的连接点处被编织到整个系统中。面向构件的方法是一种通用的软件模型,其关注点的提取在构件中传播。面向对象的方法可以应用于软件开发生命周期的所有阶段。实际上,面向方面的方法鼓励在软件开发的早期阶段将分散的关注点分解为独立的组件。当前的面向方面方法将实体解释为组件和方面。最后,系统将自动组合已经定义了连接点的方面和功能组件来创建系统。一个系统资产是一个分散了多个功能组件的关注点。每个系统资产都可以独立于功能组件进行拆分。2. 框架体系结构用叉子画植物就像用勺子挖恐龙骨头一样是放错了地方。并发软件开发变得越来越复杂。高质量的并发软件开发变得越来越昂贵。并发软件永远不会完成。在未来,新的需求和不断变化的硬件需要修改和改进的软件。由于这些原因,寻找适当的方法来控制复杂性,或者通过更好地支持可重用性和适应性来进行侵入性修改,这是实际的。我们相信,面向方面的软件设计方法可以帮助开发人员和程序员在并发系统。它可以干净地支持将关注点从多个组件中分离出来,并只捕获到一个组件中,称为方面组件。面向抽象的方法可以提供一种技术,使更高的抽象成为可能。然后,织入器组件将功能组件和系统资产组合在一起[8]。框架视图与语言视图不同,因为框架架构通常比语言部分更灵活。该框架是一个处理方面的合作对象的集群的设计。该框架包括三个部分。首先,主持人取代了编织者。功能组件和方面组件之间的协作由jopinpoint在moderator组件中定义。其次,代理拦截对功能组件的访问。代理可以有多个,以提高拦截访问的速度。代理对象使用设计模式,如工厂或代理模式。第三,方面工厂组件创建资产组件。该框架如图1所示。136Paniti Netinant / AASRI Procedia 5(2013)133功能组件资产成分代理对象主持人joinpoint共享数据行为a行为b公司简介调度同步共享数据行为a图1.并发方面框架。使用moderator组合方面呈现方面工厂的组件。功能组件需要收集所需的方面组件。然后,功能组件决定织入策略。该框架提供了一个开放的体系结构,是非常适合的适应性和可重用性的功能组件和方面组件知道系统资产。该架构在概念上非常简单,因为它划分了方面和功能组件,以及对编织方面的控制。方面集中在方面工厂组件中。并发软件中的系统资产不应该被视为单一的整体组件。框架由组件、资产和层组成。功能组件是并发系统软件的基本功能。系统资产是从功能组件中提取的关注点。每个资产组件都是一个关注点,如容错、同步、调度、命名和日志记录。层是一些更易于管理的子问题,分解为功能组件和系统资产。每个功能组件将与系统资产隔离。每个功能组件的系统资产将被捕获到资产组件中。资产组件是定义的资产抽象和资产对象。这种设计可以更好地澄清交互,通过增加对每个组件中系统资产的理解来减少关注点的纠缠。它使得并发抽象层次更高级,更容易理解。设计模式在并发方面框架中扮演着重要的角色。我们使用抽象的工厂模式和桥模式来创建方面组件。工厂模式用于隔离资产抽象和资产对象。创建资产对象的义务和过程由工厂模式响应。资产对象在实例化的功能组件中只出现一次。当资产对象被修改时,框架会提高一致性。桥接模式有助于防止资产抽象和资产实现之间的永久绑定。使用桥接模式,资产抽象和资产实现可以自由地关联和扩展。资产对象或资产抽象的实现中的更改不会对功能组件产生任何影响。代理模式用于控制访问资产组件,并在检索资产组件时允许组织职责。3. 框架的适应性大多数开发人员认为面向对象模型自然支持可重用性和适应性。我们认为,这些关切并不是自然产生的。必须仔细指定并发系统软件,Paniti Netinant / AASRI Procedia 5(2013)133137设计的目的是使并发软件具有可重用性和适应性。许多重要的软件质量之一是软件设计中的适应性因素。最低程度的适应性可能导致整个系统的重新设计。软件质量的适应性已经明确地映射到并行软件研究所强调的并行软件设计中[2]。更改需求或添加新硬件而不进行侵入性修改是一种不断增加的适应程度。传统的面向对象软件设计支持最小程度的适应。适应性可以通过两种方式实现:纵向适应性或横向适应性。继承组件支持垂直适应性。组合、封装和消息传递支持水平适应性。并发面向对象软件设计对并发软件的适应性支持不足。系统资产不仅与功能组件纠缠在一起,而且还阻止了并发软件在以后进行调整或更改。并发方面框架不需要任何结构来表示和支持系统资产。在并行软件的设计和实现过程中,需要在并行软件中加入一些系统资产类。使用并发方面框架,以前的系统资产可以很容易地从系统中删除。主持人对象响应在运行期间动态地激活或停用系统资产(可以实现动态适应性)。系统资产和功能组件之间的协作语义可以通过连接点在仲裁器中清晰地定义。仲裁器中的连接点表示系统资产和功能组件之间的交互语义以及执行系统资产的顺序。连接点可以在运行时动态改变。自动编织器技术不支持动态适应性。并发方面框架独立设计功能组件和方面组件。在开发系统资产时,开发人员和设计人员不必关注功能组件。另一方面,资产组件的开发并不预先知道功能组件(在运行时之前)。资产组件只知道功能组件。一个资产组件已被创建并由仲裁人注册。 仲裁者的连接点负责编织功能和资产组件。添加或更改新的资产或功能组件不需要重新设计系统。资产和功能组件之间的新协作必须在仲裁者中定义连接点。只有主持人必须重新编译。不需要对功能组件或资产组件进行任何修改。这是一种侵略性的变化。并发方面框架似乎承诺了更好的程度在并发软件的设计中,适应性是一个重要的问题,具有自然适应性。4. 框架的可重用性并发方面框架不仅支持适应性,而且支持可重用性。功能组件和资产组件是独立思考和设计的。该框架可以实现功能组件和资产组件的垂直和水平可重用性。仲裁者使用将功能组件和系统资产编织在一起的设计模式。适应性可以通过使用设计模式来实现[2]。当一个新的系统资产被添加到系统中时,使用仲裁者的好处是。不需要对版主进行任何修改。可重用性可以通过两种方式实现:纵向适应性或横向可重用性。首先,可以实现垂直重用。高层的资产组件可以使用低层资产组件的抽象来实现。为了开发快速并发软件,这不仅促进了可重用性,而且还降低了成本和时间。上层的资产对象可以指定和重用下层的资产对象,下层的资产对象提供一般指定的资产。下层资产对象规格的变更将影响上层资产对象。这将使并发系统中的资产对象通过单独的相对设计而保持一致。第二,可以实现水平可重用性。为了在同一层中开发不同域中的各种资产对象,该层的资产接口可以138Paniti Netinant / AASRI Procedia 5(2013)133实现尽可能多的资产对象以满足指定的要求。例如,在较低层中定义在并发软件中进行日志记录的系统资产,以每2秒记录系统的活动。并发系统中的日志资产可以在上层重用和修改。较低层中的资产接口提供较低日志资产的抽象。并发方面框架在自然可重用的并发软件设计中具有更好的可重用性。5. 结论本文提出了我们的方法来改善并发软件系统使用面向方面的框架,同时保持更好的可重用性和适应性的优势。我们提出了一种设计并发软件系统,目前一个更高层次的抽象的设计师和程序员的替代技术。我们不要求设计者和程序员处理并发软件系统的复杂组件,而是允许设计者和程序员简单地修改和理解组件。使用该框架开发的并发软件系统称为可重用性和适应性模型。我们相信,面向方面的软件开发可以帮助开发人员和程序员设计出适应性强、可重用的并发软件。面向对象的方法也不限于任何语言。一种普遍的感觉,即并发面向对象设计和开发自然有助于可重用性和适应性,是一种误解。并发面向对象设计并不自然地强制可重用性和适应性。相对而言,并发软件的开发者必须仔细地描述和设计支持可重用性和适应性。相对分离的关注点的高层次抽象更好地考虑了可重用性和适应性。该框架保证了并发面向对象系统的分解。该框架可以实现并改进并发软件系统开发中的关注点分离。我们实现了提取功能组件和通过一个单一的组件,称为资产组件传播的关注。仲裁者组件可以通过连接点协调功能组件和方面组件的交互。系统资产可以重用和适应,而不会干扰任何功能组件。功能组件可以重用和适应,而不会干扰任何系统资产。并发方面框架不仅保证了可重用性和适应性,而且允许开发人员为系统找到任何合适的语言。该框架可以处理各种资产和功能组件。该技术可以减少开发并发软件的时间和成本。这种方法的一个缺点是类的数量越来越多。引用[1] M. E. Fayad和A.阿尔特曼软件稳定性介绍,ACM通信,第44卷,2001; 9:95-98。[2] 法医Fayad,M.克莱恩软件适应性方面。《美国计算机学会通讯》,第39卷,1996年; 10:58-59。[3] 迪杰斯特拉湾W. 程序设计的一门学科英格兰-伍德克利夫,新泽西州:普伦蒂斯-霍尔; 1976年。[4] 帕纳斯湾关于将系统分解成模块的准则。《ACM通讯》,第15卷,1972年:12:1053-1058。[5] 洛佩斯角V.和W. L.赫什关注的分离。东北大学计算机科学学院,波士顿; 1995年。[6] R.E. Filman et al.,面向对象的软件开发,Addison-Wesley,2004。[7] H. Ossher和P. Tarr.超空间中的多维关注点分离。工作坊方面-Paniti Netinant / AASRI Procedia 5(2013)133139面向对象编程国际欧洲会议; 1999年。[8] P. Netinant.组件+方面=一个可扩展和可适应的系统软件。软件工程研究与实践国际会议论文集(SERP 2005),美国,2005年。[9] Fernando Sanchez等人,《并发面向对象语言中同步策略的运行时适应性》。1998年欧洲面向对象程序设计会议录。面向方面编程研讨会,1998年.[10] V. Abdelzad和F. S.艾莉面向对象的软件开发与其他开发方法。理论与应用信息技术学报,第30卷,2011 ; 2:147- 152。[11] Johan Brichau等,A Model Curriculum for Aesthet-Oriented Software Development。IEEE软件,第23卷,2006; 6:53[12] A. Rashid,T.面向AOSD的软件开发实践:来自AOSD欧洲的故事。IEEE Computer,2010; 19-26.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功