共查询到20条相似文献,搜索用时 15 毫秒
1.
In this paper we present an approach for supporting the semi-automated architectural abstraction of architectural models throughout the software life-cycle. It addresses the problem that the design and implementation of a software system often drift apart as software systems evolve, leading to architectural knowledge evaporation. Our approach provides concepts and tool support for the semi-automatic abstraction of architecture component and connector views from implemented systems and keeping the abstracted architecture models up-to-date during software evolution. In particular, we propose architecture abstraction concepts that are supported through a domain-specific language (DSL). Our main focus is on providing architectural abstraction specifications in the DSL that only need to be changed, if the architecture changes, but can tolerate non-architectural changes in the underlying source code. Once the software architect has defined an architectural abstraction in the DSL, we can automatically generate architectural component views from the source code using model-driven development (MDD) techniques and check whether architectural design constraints are fulfilled by these models. Our approach supports the automatic generation of traceability links between source code elements and architectural abstractions using MDD techniques to enable software architects to easily link between components and the source code elements that realize them. It enables software architects to compare different versions of the generated architectural component view with each other. We evaluate our research results by studying the evolution of architectural abstractions in different consecutive versions of five open source systems and by analyzing the performance of our approach in these cases. 相似文献
2.
3.
Software architecture analysis is a cost‐effective means of controlling risk and maintaining system quality throughout the processes of software design, development and maintenance. This paper presents a sequence of steps that maps architectural quality goals into scenarios that measure the goals, mechanisms that realize the scenarios and analytic models that measure the results. This mapping ensures that design decisions and their rationale are documented in such a fashion that they can be systematically explored, varied, and potentially traded off against each other. As systems evolve, the analytic models can be used to assess the impact of architectural changes, relative to the system's changing quality goals. Although scenarios have been extensively used in software design to understand the ways in which a system meets its operational requirements, there has been little systematic use of scenarios to support analysis, particularly analysis of a software architecture's quality attributes: modifiability, portability, extensibility, security, availability, and so forth. In this paper we present a unified approach to using scenarios to support both the design, analysis and maintenance of software architectures, and examples from large‐scale software development projects where we have applied the approach. We also present a tool, called Brie, that aids in: scenario capture, mapping scenarios to software architectures, and the association of analytic models with particular portions of architectures. The approach that we have devised, and that Brie supports, is a foundation for a discipline of architectural engineering. Architectural engineering is an iterative method of design, analysis and maintenance where design decisions are motivated by scenarios, and are supported by documented analyses. 相似文献
4.
Mathieu Jan Christophe Jouvray Fabrice Kordon Antonio Kung Jimmy Lalande Frédéric Loiret Juan Navas Laurent Pautet Jacques Pulou Ansgar Radermacher Lionel Seinturier 《Software》2012,42(12):1467-1494
The complexity of modern embedded systems increases as they incorporate new concerns such as distribution and mobility. These new features need to be considered as early as possible in the software development life cycle. Model driven engineering promotes an intensive use of models and is now widely seen as a solution to master the development of complex systems such as embedded ones. Component‐based software engineering is another major trend that gains acceptance in the embedded world because of its properties such as reuse, modularity, and flexibility. This article proposes the Flex‐eWare component model (FCM) for designing and implementing modern embedded systems. The FCM unifies model driven engineering and component‐based software engineering and has been evaluated in several application domains with different requirements: wireless sensor networks, distributed client/server applications, and control systems for electrical devices. This approach highlights a new concept: flexibility points that arise at several stages of the development process, that is, in the model (design phase), in the execution platform, and during the execution itself. This flexibility points are captured with model libraries that can extend the FCM. Copyright © 2011 John Wiley & Sons, Ltd. 相似文献
5.
Object analysis patterns for embedded systems 总被引:1,自引:0,他引:1
Konrad S. Cheng B.H.C. Campbell L.A. 《IEEE transactions on pattern analysis and machine intelligence》2004,30(12):970-992
Some of the most challenging tasks in building a software system are capturing, refining, and analyzing requirements. How well these tasks are performed significantly impacts the quality of the developed software system. The difficulty of these tasks is greatly exacerbated for the software of embedded systems as these systems are commonly used for critical applications, have to operate reliably for long periods of time, and usually have a high degree of complexity. Current embedded systems software development practice, however, often deals with the (requirements) analysis phase in a superficial manner, instead emphasizing design and implementation. This research investigates how an approach similar to the well-known design patterns, termed object analysis patterns, can be applied in the analysis phase of embedded systems development, prior to design and coding. Specifically, our research explores how object-oriented modeling notations, such as the Unified Modeling Language (UML), can be used to represent structural and behavioral information as part of commonly occurring object analysis patterns. This work also investigates how UML-based conceptual models of embedded systems, based on the diagram templates in the object analysis patterns, can be automatically analyzed using the Spin model checker for adherence to properties specified in linear-time temporal logic (LTL) using a previously developed UML formalization framework. We have applied these patterns to several embedded systems applications obtained from the automotive industry. This paper describes one of our case studies and illustrates how our approach facilitates the construction of UML-based conceptual models of embedded systems and the analysis of these models for adherence to functional requirements. 相似文献
6.
7.
8.
《Annals of Software Engineering》2000,9(1-4):5-33
Software architecture analysis is a cost‐effective means of controlling risk and maintaining system quality throughout the
processes of software design, development and maintenance. This paper presents a sequence of steps that maps architectural
quality goals into scenarios that measure the goals, mechanisms that realize the scenarios and analytic models that measure
the results. This mapping ensures that design decisions and their rationale are documented in such a fashion that they can
be systematically explored, varied, and potentially traded off against each other. As systems evolve, the analytic models
can be used to assess the impact of architectural changes, relative to the system's changing quality goals. Although scenarios
have been extensively used in software design to understand the ways in which a system meets its operational requirements,
there has been little systematic use of scenarios to support analysis, particularly analysis of a software architecture's
quality attributes: modifiability, portability, extensibility, security, availability, and so forth. In this paper we present
a unified approach to using scenarios to support both the design, analysis and maintenance of software architectures, and
examples from large‐scale software development projects where we have applied the approach. We also present a tool, called
Brie, that aids in: scenario capture, mapping scenarios to software architectures, and the association of analytic models
with particular portions of architectures. The approach that we have devised, and that Brie supports, is a foundation for
a discipline of architectural engineering. Architectural engineering is an iterative method of design, analysis and maintenance
where design decisions are motivated by scenarios, and are supported by documented analyses.
This revised version was published online in June 2006 with corrections to the Cover Date. 相似文献
9.
软件体系结构求精方法研究 总被引:19,自引:2,他引:19
1.引言软件设计在相当大的程度上可与建筑设计相类比,在古今中外建筑设计中,有诸多如欧洲的“歌特式”、“巴洛克式”、“维多利亚式”,中国的“园林式”、“宫廷式”等不同结构风格的建筑。同样在软件设计上,经过多年的理论探索和工程实践,也逐渐形成了一系列不同结构风格的软件体系结构。如UNIX操作系统中的管道一过滤器(pipe-filters)风格、分布式系统中典型的客户机/服务器(client/server)风格以及通信系统中的分层(layer)系统等等。 相似文献
10.
软件体系结构与组件技术 总被引:2,自引:0,他引:2
在理论上,软件体系结构和基于组件的开发是理想的匹配;另一方面,软件体系结构是可重用软件组件的一种自然补充。只有通过实现体系结构模型,才能体现组件互操作性模型的所有优点。首先给出了大规模复杂分布式应用程序设计和进化方法选择中的关键因素;然后讨论软件组件技术与软件体系结构方法相互之间的要求,并探论了将软件体系结构与软件组件结合起来的可能途径。 相似文献
11.
Jo?o Pimentel Márcia Lucena Jaelson Castro Carla Silva Emanuel Santos Fernanda Alencar 《Requirements Engineering》2012,17(4):259-281
Some quality attributes are known to have an impact on the overall architecture of a system, so that they are required to be properly handled from the early beginning of the software development. For example, adaptability is a key concern for autonomic and adaptive systems, which brings to them the capability to alter their behavior in response to changes on their surrounding environments. In this paper, we propose a Strategy for Transition between Requirements and Architectural Models for Adaptive systems (STREAM-A). In particular, we use goal models based on the i* (i-Star) framework to support the design and evolution of systems that require adaptability. To obtain software architectures for such systems, the STREAM-A approach uses model transformations from i* models to architectural models expressed in Acme. Both the requirements and the architectural model are refined to accomplish the adaptability requirement. 相似文献
12.
Building a software architecture that meets functional requirements is a quite consolidated activity, whereas keeping high quality attributes is still an open challenge. In this paper we introduce an optimization framework that supports the decision whether to buy software components or to build them in-house upon designing a software architecture. We devise a non-linear cost/quality optimization model based on decision variables indicating the set of architectural components to buy and to build in order to minimize the software cost while keeping satisfactory values of quality attributes. From this point of view, our tool can be ideally embedded into a Cost Benefit Analysis Method to provide decision support to software architects. The novelty of our approach consists in building costs and quality attributes on a common set of decision variables related to software development. We start from a special case of the framework where the quality constraints are related to the delivery time and the product reliability, and the model solution also devises the amount of unit testing to be performed on built components. We generalize the framework formulation to represent a broader class of architectural cost-minimization problems under quality constraints, and discuss advantages and limitations of such approach. 相似文献
13.
Embedded architecture description language 总被引:1,自引:0,他引:1
14.
在企业及电子政务应用中,由资源分布异构及需求动态变化而产生的问题越来越严重,如何让应用快速适应这些变化一直是人们关注的一个研究难题.首先给出了一个面向服务的支持业务端编程的适应性软件结构框架CAFISE(convergent approach for information system evolution)Framework,然后给出了基于该框架的面向服务的适应性软件开发方法.CAFISE Framework对异构资源的服务化、业务化及开放动态的面向服务软件体系结构提供了较好的支持.基于该结构框架的开发方法,从对影响软件的环境要素分析入手,通过质量属性驱动的体系结构分析,重点针对应用要适应的变化进行结构设计,最终通过以体系结构为基础的业务端编程,实现面向服务应用的即时开发与演化.在实际项目中的使用及实验证明:用该框架和方法开发的面向服务应用,能够较好地适应异构资源的动态变化及用户业务变更,能以较低的代价实现企业及电子政务面向服务应用的持续演化. 相似文献
15.
Architecting Fault Tolerance with Exception Handling: Verification and Validation 总被引:2,自引:0,他引:2 下载免费PDF全文
When building dependable systems by integrating untrusted software components that were not originally designed to interact
with each other, it is likely the occurrence of architectural mismatches related to assumptions in their failure behaviour.
These mismatches, if not prevented during system design, have to be tolerated during runtime. This paper presents an architectural
abstraction based on exception handling for structuring fault-tolerant software systems. This abstraction comprises several
components and connectors that promote an existing untrusted software element into an idealised fault-tolerant architectural
element. Moreover, it is considered in the context of a rigorous software development approach based on formal methods for
representing the structure and behaviour of the software architecture. The proposed approach relies on a formal specification
and verification for analysing exception propagation, and verifying important dependability properties, such as deadlock freedom,
and scenarios of architectural reconfiguration. The formal models are automatically generated using model transformation from
UML diagrams: component diagram representing the system structure, and sequence diagrams representing the system behaviour.
Finally, the formal models are also used for generating unit and integration test cases that are used for assessing the correctness
of the source code. The feasibility of the proposed architectural approach was evaluated on an embedded critical case study.
Patrick Brito is supported by Fapesp/Brazil under Grant No. 06/02116–2 and CAPES/Brazil under Grant No. 0722–07–3. Cecília
Rubira is partially supported by CNPq/Brazil under Grant Nos. 301446/2006–7 and 484138/2006–5. 相似文献
16.
17.
基于组件模型分析的组件容器产品线体系结构 总被引:3,自引:0,他引:3
组件容器为组件提供部署和运行环境,是基于组件分布式应用开发的核心.近年来分布式组件的多样化和快速演化对组件容器的开发方法提出了挑战.产品线工程是基于公共的核心资产开发特定领域内软件产品系列的软件工程方法,产品线体系结构是其中最重要的部分.进行组件容器产品线体系结构的研究能够提高组件容器的结构复用性,获得更高的生产效率和质量.由于组件模型是组件容器设计的基础,在领域分析阶段引入组件模型分析,提出了组件模型分析框架,通过组件模型元素到领域需求元素的映射,建立组件容器领域模型.提出了组件容器设计的基本原则,并根据变化性封装原则,提出了组件容器产品线体系结构PLACE,通过引入可选属性、模块层次结构和决策模型,实现组件容器的领域需求.PLACE产品线体系结构已在网驰平台的多个组件容器设计中得到应用. 相似文献
18.
Several development approaches have been proposed to cope with the increasing complexity of embedded system design. The most widely used approaches are those using models as the main artifacts to be constructed and maintained. The desired role of models is to ease, systematize and standardize the approach to the construction of software-based systems. To enforce reuse and interconnect the process of model specification and system development with models, we promote a model-based approach coupled with a model repository. In this paper, we propose a model-driven engineering methodological approach for the development of a model repository and an operational architecture for development tools. In addition, we provide evidence of the benefits and feasibility of our approach by reporting on a preliminary prototype that provides a model-based repository of security and dependability (S&D) pattern models. Finally, we apply the proposed approach in practice to a use case from the railway domain with strong S&D requirements. 相似文献
19.
Paris Avgeriou Nicolas Guelfi Gilles Perrouin 《Electronic Notes in Theoretical Computer Science》2005,127(3):165
One of the possible scenarios in a system evolution cycle, is to translate an emergent set of new requirements into software architecture design and subsequently to update the system implementation. In this paper, we argue that this form of forward engineering, even though addresses the new system requirements, tends to overlook the implementation constraints. An architect must also reverse-engineer the system, in order to make these constraints explicit. Thus, we propose an approach where we reconcile two architectural models, one that is forward-engineered from the requirements and another that is reverse-engineered from the implementation. The final reconciled model is optimally adapted to the emergent set of requirements and to the actual system implementation. The contribution of this paper is twofold: the application of architectural reconciliation in the context of software evolution and an approach to formalize both the specification and transformation of the architectural models. The architectural modeling is based upon the UML 2.0 standard, while the formalization approach is based on set theory and first-order logic. 相似文献
20.
In this paper, we describe a technique to design UML-based software models for MPSoC architecture, which focuses on the development of the platform specific model of embedded software. To develop the platform specific model, we define a process for the design of UML-based software model and suggest an algorithm with precise actions to map the model to MPSoC architecture. In order to support our design process, we implemented our approach in an integrated tool. Using the tool, we applied our design technique to a target system. We believe that our technique provides several benefits such as improving parallelism of tasks and fast-and-valid mapping of software models to hardware architecture. 相似文献