共查询到20条相似文献,搜索用时 0 毫秒
1.
Supporting runtime software architecture: A bidirectional-transformation-based approach 总被引:3,自引:0,他引:3
Runtime software architectures (RSA) are architecture-level, dynamic representations of running software systems, which help monitor and adapt the systems at a high abstraction level. The key issue to support RSA is to maintain the causal connection between the architecture and the system, ensuring that the architecture represents the current system, and the modifications on the architecture cause proper system changes. The main challenge here is the abstraction gap between the architecture and the system. In this paper, we investigate the synchronization mechanism between architecture configurations and system states for maintaining the causal connections. We identify four required properties for such synchronization, and provide a generic solution satisfying these properties. Specifically, we utilize bidirectional transformation to bridge the abstraction gap between architecture and system, and design an algorithm based on it, which addresses issues such as conflicts between architecture and system changes, and exceptions of system manipulations. We provide a generative tool-set that helps developers implement this approach on a wide class of systems. We have successfully applied our approach on JOnAS JEE system to support it with C2-styled runtime software architecture, as well as some other cases between practical systems and typical architecture models. 相似文献
2.
Marco Autili Author Vitae 《Journal of Systems and Software》2008,81(12):2210-2236
Building a distributed system from third-party components introduces a set of problems, mainly related to compatibility and communication. Our existing approach to solve such problems is to build a centralized adaptor which restricts the system’s behavior to exhibit only deadlock-free and desired interactions. However, in a distributed environment such an approach is not always suitable. In this paper, we show how to automatically generate a distributed adaptor for a set of black-box components. First, by taking into account a specification of the interaction behavior of each component, we synthesize a behavioral model for a centralized glue adaptor. Second, from the synthesized adaptor model and a specification of the desired behavior that must be enforced, we generate one local adaptor for each component. The local adaptors cooperatively behave as the centralized one restricted with respect to the specified desired interactions. 相似文献
3.
4.
An architectural approach to the correct and automatic assembly of evolving component-based systems 总被引:1,自引:0,他引:1
Patrizio Pelliccione Author Vitae Antonio Bucchiarone Author Vitae 《Journal of Systems and Software》2008,81(12):2237-2251
Software components are specified, designed and implemented with the intention to be reused, and they are assembled in various contexts in order to produce a multitude of software systems. However, in the practice of software development, this ideal scenario is often unrealistic. This is mainly due to the lack of an automatic and efficient support to predict properties of the assembly code by only assuming a limited knowledge of the properties of single components. Moreover, to make effective the component-based vision, the assembly code should evolve when things change, i.e., the properties guaranteed by the assembly, before a change occurs, must hold also after the change. Glue code synthesis approaches technically permit one to construct an assembly of components that guarantees specific properties but, practically, they may suffer from the state-space explosion phenomenon.In this paper, we propose a Software Architecture (SA) based approach in which the usage of the system SA and of SA verification techniques allows the system assembler to design architectural components whose interaction is verified with respect to the specified properties. By exploiting this validation, the system assembler can perform code synthesis by only focusing on each single architectural component, hence refining it as an assembly of actual components which respect the architectural component observable behaviour. In this way code synthesis is performed locally on each architectural component, instead of globally on the whole system interactions, hence reducing the state-space explosion phenomenon.The approach can be equally well applied to efficiently manage the whole reconfiguration of the system when one or more components need to be updated, still maintaining the required properties. The specified and verified system SA is used as starting point for the derivation of glue adaptors that are required to apply changes in the composed system. The approach is firstly illustrated over an explanatory example and is then applied and validated over a real-world industrial case study. 相似文献
5.
A software architecture and framework for Web-based distributed Decision Support Systems 总被引:5,自引:0,他引:5
This paper presents an integrated method to help design and implement a Web-based Decision Support Systems (DSS) in a distributed environment. First, a layered software architecture is presented to assist in the design of a Web-based DSS. The layered software architecture can provide a formal and hierarchical view of the Web-based DSS at the design stage. Next, a component-based framework is presented to implement the Web-based DSS in a distributed environment. Finally, an instance of the layered software architecture and 3CoFramework applied to the Web-based National Agricultural Decision Support System (NADSS) is presented. 相似文献
6.
Runtime software architecture based on reflective middleware 总被引:8,自引:0,他引:8
HUANG Gang MEI Hong & YANG Fuqing Institute of Software School of Electronics Engineering Computer Science Peking University Beijing China 《中国科学F辑(英文版)》2004,47(5):555-576
Copyright by Science in China Press 2004 Since its first literate identification and discussion[1], software architecture (SA) has become an important subfield of software engineering, receiving increasing attention from both academic and industrial communities. SA describes the gross structure of a software system with a collection of components, connectors and constraints[2]. In gen-eral, SA acts as a bridge between requirements and implementation and provides a blue-print for system cons… 相似文献
7.
ContextGiven the increased interest in using visualization techniques (VTs) to help communicate and understand software architecture (SA) of large scale complex systems, several VTs and tools have been reported to represent architectural elements (such as architecture design, architectural patterns, and architectural design decisions). However, there is no attempt to systematically review and classify the VTs and associated tools reported for SA, and how they have been assessed and applied.ObjectiveThis work aimed at systematically reviewing the literature on software architecture visualization to develop a classification of VTs in SA, analyze the level of reported evidence and the use of different VTs for representing SA in different application domains, and identify the gaps for future research in the area.MethodWe used systematic literature review (SLR) method of the evidence-based software engineering (EBSE) for reviewing the literature on VTs for SA. We used both manual and automatic search strategies for searching the relevant papers published between 1 February 1999 and 1 July 2011.ResultsWe selected 53 papers from the initially retrieved 23,056 articles for data extraction, analysis, and synthesis based on pre-defined inclusion and exclusion criteria. The results from the data analysis enabled us to classify the identified VTs into four types based on the usage popularity: graph-based, notation-based, matrix-based, and metaphor-based VTs. The VTs in SA are mostly used for architecture recovery and architectural evolution activities. We have also identified ten purposes of using VTs in SA. Our results also revealed that VTs in SA have been applied to a wide range of application domains, among which “graphics software” and “distributed system” have received the most attention.ConclusionSA visualization has gained significant importance in understanding and evolving software-intensive systems. However, only a few VTs have been employed in industrial practice. This review has enabled us to identify the following areas for further research and improvement: (i) it is necessary to perform more research on applying visualization techniques in architectural analysis, architectural synthesis, architectural implementation, and architecture reuse activities; (ii) it is essential to pay more attention to use more objective evaluation methods (e.g., controlled experiment) for providing more convincing evidence to support the promised benefits of using VTs in SA; (iii) it is important to conduct industrial surveys for investigating how software architecture practitioners actually employ VTs in architecting process and what are the issues that hinder and prevent them from adopting VTs in SA. 相似文献
8.
D. Bennouar Author Vitae T. Khammaci Author Vitae 《Journal of Systems and Software》2010,83(8):1430-1442
The component’s interaction points with the external world play a fundamental role in the specification of an application’s architecture. Current software architecture approaches consider an interaction point as an atomic element in the specification of interconnections, despite the complexity of its structure and the attached behavior. It is not possible in current component models to deal separately with an element of an interaction point when such an element is needed alone for specifying a specific logic. To support such logic and the specification of a wide range of early ideas in the process of elaborating a software system, the Integrated Approach to Software Architecture (IASA) uses an interaction point model which provides facilities to manipulate any structural or behavioral element defining an interaction point. In addition, such facilities represent the fundamental foundation of the native support by IASA of Aspect Oriented Software Architectures (AOSA) specifications. 相似文献
9.
Software modernization is critical for organizations that need cost-effective solutions to deal with the rapid obsolescence of software and the increasing demand for new functionality. This paper presents the XIRUP modernization methodology, which proposes a highly iterative process, structured into four phases: preliminary evaluation, understanding, building and migration. This modernization process is feature-driven, component-based, focused on the early elicitation of key information, and relies on a model-driven approach with extensive use of experience from the previous projects. XIRUP has been defined in the European IST project MOMOCS, which has also built a suite of support tools. This paper introduces the process using a case study that illustrates its activities, related tools and results. The discussion highlights the specific characteristics of modernization projects and how a customized methodology can take advantage of them. 相似文献
10.
Pengcheng Zhang Author Vitae Henry Muccini Author Vitae Bixin Li Author Vitae 《Journal of Systems and Software》2010,83(5):723-25
Software architecture specifications are used for many different purposes, such as documenting architectural decisions, predicting architectural qualities before the system is implemented, and guiding the design and coding process. In these contexts, assessing the architectural model as early as possible becomes a relevant challenge. Various analysis techniques have been proposed for testing, model checking, and evaluating performance based on architectural models. Among them, model checking is an exhaustive and automatic verification technique, used to verify whether an architectural specification conforms to expected properties. While model checking is being extensively applied to software architectures, little work has been done to comprehensively enumerate and classify these different techniques.The goal of this paper is to investigate the state-of-the-art in model checking software architectures. For this purpose, we first define the main activities in a model checking software architecture process. Then, we define a classification and comparison framework and compare model checking software architecture techniques according to it. 相似文献
11.
Ideally, a software project commences with requirements gathering and specification, reaches its major milestone with system implementation and delivery, and then continues, possibly indefinitely, into an operation and maintenance phase. The software system's architecture is in many ways the linchpin of this process: it is supposed to be an effective reification of the system's technical requirements
and to be faithfully reflected in the system's implementation. Furthermore, the architecture is meant to guide system evolution,
while also being updated in the process. However, in reality developers frequently deviate from the architecture, causing
architectural erosion, a phenomenon in which the initial, “as documented' architecture of an application is (arbitrarily) modified to the point
where its key properties no longer hold. Architectural recovery is a process frequently used to cope with architectural erosion whereby the current, “as implemented” architecture of a software
system is extracted from the system's implementation. In this paper we propose a light-weight approach to architectural recovery,
called Focus, which has three unique facets. First, Focus uses a system's evolution requirements to isolate and incrementally recover
only the fragment of the system's architecture affected by the evolution. In this manner, Focus allows engineers to direct
their primary attention to the part of the system that is immediately impacted by the desired change; subsequent changes will
incrementally uncover additional parts of the system's architecture. Secondly, in addition to software components, which are
the usual target of existing recovery approaches, Focus also recovers the key architectural notions of software connector
and architectural style. Finally, Focus does not only recover a system's architecture, but may in fact rearchitect the system.
We have applied and evaluated Focus in the context of several off-the-shelf applications and architectural styles to date.
We discuss its key strengths and point out several open issues that will frame our future work. 相似文献
12.
Lakshitha de SilvaAuthor Vitae Dharini Balasubramaniam Author Vitae 《Journal of Systems and Software》2012,85(1):132-151
Software architectures capture the most significant properties and design constraints of software systems. Thus, modifications to a system that violate its architectural principles can degrade system performance and shorten its useful lifetime. As the potential frequency and scale of software adaptations increase to meet rapidly changing requirements and business conditions, controlling such architecture erosion becomes an important concern for software architects and developers. This paper presents a survey of techniques and technologies that have been proposed over the years either to prevent architecture erosion or to detect and restore architectures that have been eroded. These approaches, which include tools, techniques and processes, are primarily classified into three generic categories that attempt to minimise, prevent and repair architecture erosion. Within these broad categories, each approach is further broken down reflecting the high-level strategies adopted to tackle erosion. These are: process-oriented architecture conformance, architecture evolution management, architecture design enforcement, architecture to implementation linkage, self-adaptation and architecture restoration techniques consisting of recovery, discovery and reconciliation. Some of these strategies contain sub-categories under which survey results are presented.We discuss the merits and weaknesses of each strategy and argue that no single strategy can address the problem of erosion. Further, we explore the possibility of combining strategies and present a case for further work in developing a holistic framework for controlling architecture erosion. 相似文献
13.
The decomposition of software architecture into modular units is usually driven by the required quality concerns. In this paper we focus on the impact of local recovery concern on the decomposition of the software system. For achieving local recovery, the system needs to be decomposed into separate units that can be recovered in isolation. However, it appears that this required decomposition for recovery is usually not aligned with the decomposition based on functional concerns. Moreover, introducing local recovery to a software system, while preserving the existing decomposition, is not trivial and requires substantial development and maintenance effort. To reduce this effort we propose a framework that supports the decomposition and implementation of software architecture for local recovery. The framework provides reusable abstractions for defining recoverable units and the necessary coordination and communication protocols for recovery. We discuss our experiences in the application and evaluation of the framework for introducing local recovery to the open‐source media player called MPlayer. Copyright © 2009 John Wiley & Sons, Ltd. 相似文献
14.
Anton Jansen Author Vitae Paris Avgeriou Author Vitae Author Vitae 《Journal of Systems and Software》2009,82(8):1232-1248
The effective documentation of Architectural Knowledge (AK) is one of the key factors in leveraging the paradigm shift toward sharing and reusing AK. However, current documentation approaches have severe shortcomings in capturing the knowledge of large and complex systems and subsequently facilitating its usage. In this paper, we propose to tackle this problem through the enrichment of traditional architectural documentation with formal AK. We have developed an approach consisting of a method and an accompanying tool suite to support this enrichment. We evaluate our approach through a quasi-controlled experiment with the architecture of a real, large, and complex system. We provide empirical evidence that our approach helps to partially solve the problem and indicate further directions in managing documented AK. 相似文献
15.
Survey of reliability and availability prediction methods from the viewpoint of software architecture 总被引:3,自引:0,他引:3
Many future software systems will be distributed across a network, extensively providing different kinds of services for their
users. These systems must be highly reliable and provide services when required. Reliability and availability must be engineered
into software from the onset of its development, and potential problems must be detected in the early stages, when it is easier
and less expensive to implement modifications. The software architecture design phase is the first stage of software development
in which it is possible to evaluate how well the quality requirements are being met. For this reason, a method is needed for
analyzing software architecture with respect to reliability and availability. In this paper, we define a framework for comparing
reliability and availability analysis methods from the viewpoint of software architecture. Our contribution is the comparison
of the existing analysis methods and techniques that can be used for reliability and availability prediction at the architectural
level. The objective is to discover which methods are suitable for the reliability and availability prediction of today’s
complex systems, what are the shortcomings of the methods, and which research activities need to be conducted in order to
overcome these identified shortcomings. The comparison reveals that none of the existing methods entirely fulfill the requirements
that are defined in the framework. The comparison framework also defines the characteristics required of new reliability and
availability analysis methods. Additionally, the framework is a valuable tool for selecting the best suitable method for architecture
analysis. Furthermore, the framework can be extended and used for other evaluation methods as well. 相似文献
16.
《Control Engineering Practice》2001,9(6):683-693
In this paper, the architecture of Port-Interface Component Architecture for Real-time system Design (PICARD) is briefly introduced. PICARD is a software architecture and environment for rapid development of application control systems using pre-compiled software components. When a control task has to run at a high frequency, its maximum blocking time should be minimized. Because components are developed and compiled separately, it is not easy to apply traditional methods to reduce blocking time. Two methods are proposed for PICARD to reduce the maximum blocking time. These methods are efficient and easy to implement. PICARD is successfully applied to build a CNC controller, and its real-time characteristics is analyzed. 相似文献
17.
To respond quickly to the rapidly changing manufacturing environment, it is imperative for the system to have such capabilities as flexibility, adaptability, and reusability. The fractal manufacturing system (FrMS) is a new manufacturing paradigm designed to meet these requirements. To facilitate a dynamic reconfiguration of system elements (i.e., fractals), agents as well as software modules should be self-reconfigurable. Embodiment of a self-reconfigurable manufacturing system can be achieved by using self-reconfigurable software architecture. In this paper, therefore, self-reconfigurable software architecture is designed by conducting the following studies: (1) analysis of functional requirements of a fractal and environmental constraints, (2) design of reconfigurable software architecture especially for a reconfigurable agent, (3) selection of proper techniques to implement software modules, and realization of software architecture equipped with self-reconfigurability. To validate this approach, the designed architecture is applied to the FrMS. 相似文献
18.
A systematic review of software architecture evolution research 总被引:1,自引:0,他引:1
Context
Software evolvability describes a software system’s ability to easily accommodate future changes. It is a fundamental characteristic for making strategic decisions, and increasing economic value of software. For long-lived systems, there is a need to address evolvability explicitly during the entire software lifecycle in order to prolong the productive lifetime of software systems. For this reason, many research studies have been proposed in this area both by researchers and industry practitioners. These studies comprise a spectrum of particular techniques and practices, covering various activities in software lifecycle. However, no systematic review has been conducted previously to provide an extensive overview of software architecture evolvability research.Objective
In this work, we present such a systematic review of architecting for software evolvability. The objective of this review is to obtain an overview of the existing approaches in analyzing and improving software evolvability at architectural level, and investigate impacts on research and practice.Method
The identification of the primary studies in this review was based on a pre-defined search strategy and a multi-step selection process.Results
Based on research topics in these studies, we have identified five main categories of themes: (i) techniques supporting quality consideration during software architecture design, (ii) architectural quality evaluation, (iii) economic valuation, (iv) architectural knowledge management, and (v) modeling techniques. A comprehensive overview of these categories and related studies is presented.Conclusion
The findings of this review also reveal suggestions for further research and practice, such as (i) it is necessary to establish a theoretical foundation for software evolution research due to the fact that the expertise in this area is still built on the basis of case studies instead of generalized knowledge; (ii) it is necessary to combine appropriate techniques to address the multifaceted perspectives of software evolvability due to the fact that each technique has its specific focus and context for which it is appropriate in the entire software lifecycle. 相似文献19.
本文讨论了构件的基本概念、特点和原理,阐述了电子政务的基本应用框架结构,通过结合CORBA开放性、跨平台的特性和EJB业务处理能力,提出了一种可伸缩、健壮的、基于构件的电子政务系统架构方式并进行了全面的研究。该系统架构易于开发、管理和复用,为建立高效电子政务提供了有益的理论指导和实践意义。 相似文献
20.
Developers apply object-oriented (OO) design principles to produce modular, reusable software. Therefore, service-specific groups of related software classes called modules arise in OO systems. Extracting the modules is critical for better software comprehension, efficient architecture recovery, determination of service candidates to migrate legacy software to a service-oriented architecture, and transportation of such services to cloud-based distributed systems. In this study, we propose a novel approach to automatic module extraction to identify services in OO software systems. In our approach, first we create a weighted and directed graph of the software system in which vertices and edges represent the classes and their relations, respectively. Then, we apply a clustering algorithm over the graph to extract the modules. We calculate the weight of an edge by considering its probability of being within a module or between modules. To estimate these positional probabilities, we propose a machine-learning-based classification system that we train with data gathered from a real-world OO reference system. We have implemented an automatic module extraction tool and evaluated the proposed approach on several open-source and industrial projects. The experimental results show that the proposed approach generates highly accurate decompositions that are close to authoritative module structures and outperforms existing methods. 相似文献