4 research outputs found

    Compliance between Architecture and Design Models of Component-Based Systems

    Get PDF
    The design of software systems and the models describing it are usually constrained by the intended software architecture. The intended software architecture defines, for example, how components may be grouped or how they may interact. For the sake of maintenance, evolvability, and smooth operation of software systems, it is of great importance to check and guarantee the architectural compliance of the design and the implementation. Due to size and complexity of modern software systems such checks cannot be done manually but require adequate tool support. Unfortunately, current tool support is not flexible enough to cover easily different aspects of architectural compliance checking.This paper outlines an approach to architectural compliance checking in component-based systems based on logic formalisms. Furthermore, the paper describes a prototypical tool that realizes the approach, and its application in a case study

    Conformidad estructural de arquitecturas combinado con an谩lisis de impacto de cambios

    Get PDF
    La conformidad de arquitecturas de software es una pr谩ctica que permite mantener la estructura arquitect贸nica alineada y consistente con su implementaci贸n en c贸digo. Entre otros beneficios, este alineamiento permite a los arquitectos y desarrolladores realizar distintos an谩lisis de la soluci贸n desde etapas tempranas (por ej., de performance, o de modificabilidad, entre otros). Para esto, deben verificarse peri贸dicamente las relaciones entre los elementos arquitect贸nicos y sus contrapartes en el c贸digo fuente, a fin de detectar posibles violaciones de la arquitectura. Las t茅cnicas y herramientas existentes para conformidad arquitect贸nica proveen un buen soporte para verificar relaciones de tipo estructural. Sin embargo, ciertos an谩lisis que son 煤tiles a nivel arquitect贸nico, como es el caso del impacto de cambios (CIA, Change Impact Analysis), son dif铆ciles de verificar en relaci贸n al c贸digo fuente, lo cu谩l genera una brecha entre las suposiciones y conclusiones que se hacen a nivel arquitect贸nica y la implementacio贸n actual del sistema. Este trabajo presenta un enfoque que extiende las reglas b谩sicas de conformidad estructural con reglas que permiten contemplar suposiciones de CIA con el fin de validarlas en la implementaci贸n de la arquitectura. En particular, se propone una herramienta que integra un CIA en base a escenarios de modificabilidad con el modelo de reflexi贸n de Murphy & Notkin. Los resultados, si bien son preliminares, indican que este enfoque permite identificar distintos tipos de violaciones arquitect贸nicas.Sociedad Argentina de Inform谩tica e Investigaci贸n Operativa (SADIO

    Conformidad estructural de arquitecturas combinado con an谩lisis de impacto de cambios

    Get PDF
    La conformidad de arquitecturas de software es una pr谩ctica que permite mantener la estructura arquitect贸nica alineada y consistente con su implementaci贸n en c贸digo. Entre otros beneficios, este alineamiento permite a los arquitectos y desarrolladores realizar distintos an谩lisis de la soluci贸n desde etapas tempranas (por ej., de performance, o de modificabilidad, entre otros). Para esto, deben verificarse peri贸dicamente las relaciones entre los elementos arquitect贸nicos y sus contrapartes en el c贸digo fuente, a fin de detectar posibles violaciones de la arquitectura. Las t茅cnicas y herramientas existentes para conformidad arquitect贸nica proveen un buen soporte para verificar relaciones de tipo estructural. Sin embargo, ciertos an谩lisis que son 煤tiles a nivel arquitect贸nico, como es el caso del impacto de cambios (CIA, Change Impact Analysis), son dif铆ciles de verificar en relaci贸n al c贸digo fuente, lo cu谩l genera una brecha entre las suposiciones y conclusiones que se hacen a nivel arquitect贸nica y la implementacio贸n actual del sistema. Este trabajo presenta un enfoque que extiende las reglas b谩sicas de conformidad estructural con reglas que permiten contemplar suposiciones de CIA con el fin de validarlas en la implementaci贸n de la arquitectura. En particular, se propone una herramienta que integra un CIA en base a escenarios de modificabilidad con el modelo de reflexi贸n de Murphy & Notkin. Los resultados, si bien son preliminares, indican que este enfoque permite identificar distintos tipos de violaciones arquitect贸nicas.Sociedad Argentina de Inform谩tica e Investigaci贸n Operativa (SADIO

    Scalable Automated Incrementalization for Real-Time Static Analyses

    Get PDF
    This thesis proposes a framework for easy development of static analyses, whose results are incrementalized to provide instantaneous feedback in an integrated development environment (IDE). Today, IDEs feature many tools that have static analyses as their foundation to assess software quality and catch correctness problems. Yet, these tools often fail to provide instantaneous feedback and are thus restricted to nightly build processes. This precludes developers from fixing issues at their inception time, i.e., when the problem and the developed solution are both still fresh in mind. In order to provide instantaneous feedback, incrementalization is a well-known technique that utilizes the fact that developers make only small changes to the code and, hence, analysis results can be re-computed fast based on these changes. Yet, incrementalization requires carefully crafted static analyses. Thus, a manual approach to incrementalization is unattractive. Automated incrementalization can alleviate these problems and allows analyses writers to formulate their analyses as queries with the full data set in mind, without worrying over the semantics of incremental changes. Existing approaches to automated incrementalization utilize standard technologies, such as deductive databases, that provide declarative query languages, yet also require to materialize the full dataset in main-memory, i.e., the memory is permanently blocked by the data required for the analyses. Other standard technologies such as relational databases offer better scalability due to persistence, yet require large transaction times for data. Both technologies are not a perfect match for integrating static analyses into an IDE, since the underlying data, i.e., the code base, is already persisted and managed by the IDE. Hence, transitioning the data into a database is redundant work. In this thesis a novel approach is proposed that provides a declarative query language and automated incrementalization, yet retains in memory only a necessary minimum of data, i.e., only the data that is required for the incrementalization. The approach allows to declare static analyses as incrementally maintained views, where the underlying formalism for incrementalization is the relational algebra with extensions for object-orientation and recursion. The algebra allows to deduce which data is the necessary minimum for incremental maintenance and indeed shows that many views are self-maintainable, i.e., do not require to materialize memory at all. In addition an optimization for the algebra is proposed that allows to widen the range of self-maintainable views, based on domain knowledge of the underlying data. The optimization works similar to declaring primary keys for databases, i.e., the optimization is declared on the schema of the data, and defines which data is incrementally maintained in the same scope. The scope makes all analyses (views) that correlate only data within the boundaries of the scope self-maintainable. The approach is implemented as an embedded domain specific language in a general-purpose programming language. The implementation can be understood as a database-like engine with an SQL-style query language and the execution semantics of the relational algebra. As such the system is a general purpose database-like query engine and can be used to incrementalize other domains than static analyses. To evaluate the approach a large variety of static analyses were sampled from real-world tools and formulated as incrementally maintained views in the implemented engine
    corecore