5 research outputs found

    Change-Impact driven Agile Architecting.

    Full text link
    Software architecture is a key factor to scale up Agile Software Development ASD in large softwareintensive systems. Currently, software architectures are more often approached through mechanisms that enable to incrementally design and evolve software architectures aka. agile architecting. Agile architecting should be a light-weight decision-making process, which could be achieved by providing knowledge to assist agile architects in reasoning about changes. This paper presents the novel solution of using change-impact knowledge as the main driver for agile architecting. The solution consists of a Change Impact Analysis technique and a set of models to assist agile architects in the change -decision-making- process by retrieving the change-impact architectural knowledge resulting from adding or changing features iteration after iteration. To validate our approach, we have put our solution into practice by running a project of a metering management system in electric power networks in an i-smart software factory

    Approche probabiliste pour l’analyse de l’impact des changements dans les programmes orientĂ©s objet

    Full text link
    Nous proposons une approche probabiliste afin de dĂ©terminer l’impact des changements dans les programmes Ă  objets. Cette approche sert Ă  prĂ©dire, pour un changement donnĂ© dans une classe du systĂšme, l’ensemble des autres classes potentiellement affectĂ©es par ce changement. Cette prĂ©diction est donnĂ©e sous la forme d’une probabilitĂ© qui dĂ©pend d’une part, des interactions entre les classes exprimĂ©es en termes de nombre d’invocations et d’autre part, des relations extraites Ă  partir du code source. Ces relations sont extraites automatiquement par rĂ©tro-ingĂ©nierie. Pour la mise en oeuvre de notre approche, nous proposons une approche basĂ©e sur les rĂ©seaux bayĂ©siens. AprĂšs une phase d’apprentissage, ces rĂ©seaux prĂ©disent l’ensemble des classes affectĂ©es par un changement. L’approche probabiliste proposĂ©e est Ă©valuĂ©e avec deux scĂ©narios distincts mettant en oeuvre plusieurs types de changements effectuĂ©s sur diffĂ©rents systĂšmes. Pour les systĂšmes qui possĂšdent des donnĂ©es historiques, l’apprentissage a Ă©tĂ© rĂ©alisĂ© Ă  partir des anciennes versions. Pour les systĂšmes dont on ne possĂšde pas assez de donnĂ©es relatives aux changements de ses versions antĂ©cĂ©dentes, l’apprentissage a Ă©tĂ© rĂ©alisĂ© Ă  l’aide des donnĂ©es extraites d’autres systĂšmes.We study the possibility of predicting the impact of changes in object-oriented code using bayesian networks. For each change type, we produce a bayesian network that determines the probability that a class is impacted given that another class is changed. Each network takes as input a set of possible relationships between classes. We train our networks using historical data. The proposed impact-prediction approach is evaluated with two different scenarios, various types of changes, and five systems. In the first scenario, we use as training data, the changes performed in the previous versions of the same system. In the second scenario training data is borrowed from systems that are different from the changed one. Our evaluation showed that, in both cases, we obtain very good predictions, even though they are better in the first scenario

    A review of software change impact analysis

    Get PDF
    Change impact analysis is required for constantly evolving systems to support the comprehension, implementation, and evaluation of changes. A lot of research effort has been spent on this subject over the last twenty years, and many approaches were published likewise. However, there has not been an extensive attempt made to summarize and review published approaches as a base for further research in the area. Therefore, we present the results of a comprehensive investigation of software change impact analysis, which is based on a literature review and a taxonomy for impact analysis. The contribution of this review is threefold. First, approaches proposed for impact analysis are explained regarding their motivation and methodology. They are further classified according to the criteria of the taxonomy to enable the comparison and evaluation of approaches proposed in literature. We perform an evaluation of our taxonomy regarding the coverage of its classification criteria in studied literature, which is the second contribution. Last, we address and discuss yet unsolved problems, research areas, and challenges of impact analysis, which were discovered by our review to illustrate possible directions for further research

    Change impact analysis for evolving ontology-based content management

    Get PDF
    Ontologies have become ubiquitous tools to embed semantics into content and applications on the semantic web. They are used to define concepts in a domain and allow us to reach at a common understanding on subjects of interest. Ontologies cover wide range of topics enabling both humans and machines to understand meanings and to reason in different contexts. They cover topics such as semantic web, artificial intelligence, information retrieval, machine translation, software development, content management, etc. We use ontologies for semantic annotation of content to facilitate understandability of the content by humans and machines. However, building ontology and annotations is often a manual process which is error prone and time consuming. Ontologies and ontology-driven content management systems (OCMS) evolve due to a change in conceptualization, the representation or the specification of the domain knowledge. These changes are often immense and frequent. Implementing the changes and adapting the OCMS accordingly require a huge effort. This is due to complex impacts of the changes on the ontologies, the content and dependent applications. Thus, evolving the OCMS with minimum and predictable impacts is among the top priorities of evolution in OCMS. We approach the problem of evolution by proposing a framework which clearly represents the interactions of the components of an OCMS. We proposed a layered OCMS framework which contains an ontology layer, content layer and annotation layer. Further, we propose a novel approach for analysing impacts of change operations. Impacts of atomic change operations are assigned individually by analysing the target entity and all the other entities that are structurally or semantically dependent on it. Impacts of composite change operations are analysed following three stage process. We use impact cancellation, impact balancing and impact transformation to analyse the impacts when two or more atomic changes are executed as part of a composite or domain specific change operation. We build a model which estimates the impacts of a complete change operation enabling the ontology engineer to specify the weight associated with each optimization criteria. Finally, the model identifies the implementation strategy with minimum cost of evolution. We evaluate our system by building a prototype as a proof of concept and find out encouraging results

    Explicitly Integrated Architecture - An Approach for Integrating Software Architecture Model Information with Program Code

    Get PDF
    Software-Architekturspezifikationen und -Implementierungen sind zwei Sichtweisen auf Softwarearchitektur. Sie beschreiben gemeinsame Aspekte, wie z.B. die Existenz und Verbindung von Komponenten. Die Spezifikation fĂŒgt Informationen zum Design, zur Kommunikation und zur Analyse hinzu. Die Implementierung beschreibt stattdessen zusĂ€tzlich Details fĂŒr ein ausfĂŒhrbares System. Die Konsistenz zwischen diesen Darstellungen manuell zu verwalten, ist schwierig und fehleranfĂ€llig. Diese Arbeit stellt einen Ansatz vor, der Informationen der Architekturspezifikation vollstĂ€ndig in die Implementierung integriert, sodass die Spezifikation als eigenstĂ€ndiges Artefakt nicht mehr notwendig ist. Das Tool Codeling extrahiert die integrierte Architekturspezifikation in unterschiedlichen Sprachen aus dem Code und propagiert Änderungen in dieser Spezifikation automatisch an den Code zurĂŒck.Specifications and implementations are both viewpoints upon software architecture. Besides common aspects, the specification adds information for design, communication, or analysis, while the implementation adds details for an executable system instead. Managing the consistency between these representations manually is difficult and error-prone. This thesis presents an approach, that completely integrates architecture specifications with the implementation, so that separate specification artifacts are not necessary anymore. The tool Codeling extracts integrated architecture specifications in multiple languages from code, and automatically propagates changes in these specifications back to the code
    corecore