9 research outputs found

    Stability for component integration assessment

    Get PDF
    Component-Based Software Development is focused on assembling previously existing components (COTS and other non-developmental items) into larger systems, and migrating existing systems toward component approaches. Ideally, most of the application developer’s time is spent integrating components. We present an approach that can be used in the process of establishing component integration’s quality as an important field to resolving CBS quality problems – problems ranging from CBS quality definition, measurement, analysis, and improvement to tools, methods and processes. In this paper, we introduce an important property we called system’s stability as part of a cycle for assessing and improving component-based systems. This property is the basis for determining the impact of incorporating COTS components into a stable system.Eje: Ingeniería de SoftwareRed de Universidades con Carreras en Informática (RedUNCI

    Stability for component integration assessment

    Get PDF
    Component-Based Software Development is focused on assembling previously existing components (COTS and other non-developmental items) into larger systems, and migrating existing systems toward component approaches. Ideally, most of the application developer’s time is spent integrating components. We present an approach that can be used in the process of establishing component integration’s quality as an important field to resolving CBS quality problems – problems ranging from CBS quality definition, measurement, analysis, and improvement to tools, methods and processes. In this paper, we introduce an important property we called system’s stability as part of a cycle for assessing and improving component-based systems. This property is the basis for determining the impact of incorporating COTS components into a stable system.Eje: Ingeniería de SoftwareRed de Universidades con Carreras en Informática (RedUNCI

    Zielorientierte Erkennung und Behebung von Qualitätsdefiziten in Software-Systemen am Beispiel der Weiterentwicklungsfähigkeit

    Get PDF
    The evolvability of software systems is one of the key issues when considering their long term quality. Continuous changes and extensions of these systems are neccessary to adjust them to new or changing requirements. But the changes often cause quality deficiencies, which lead to an increase in complexity or an architectural decay. Especially quality deficiencies within the specification or the architecture of a software system can heavily impair a software system.To counteract this, a method is developed in this work to support the analysis of a quality goal in order to identify the quality deficiencies which hinder the achievement of the quality goal. Both the detection and the removal of quality deficiencies are accomplished in a systematic way. The method integrates detection of these quality deficiencies and their removal by reengineering activities based on rules. The detection of quality deficiencies is performed by means of measurable quality attributes which are derived from a quality goal, such as evolvability. In order to demonstrate the practicability of the method, the quality goal evolvability is taken as an example. This work shows how a software system can be evaluated with regard to evolvability based on structural dependencies and which reengineering activities will improve the system in the direction of this quality goal.To evaluate the method, it was applied within an industrial case study. By analyzing the given software system a large number of different quality deficiencies were detected. Afterwards the system's evolvability was improved substantially by reengineering activities proposed by the method.Für unternehmenskritische Software-Systeme, die langlebig und erweiterbar sein sollen, ist das Qualitätsziel Weiterentwicklungsfähigkeit essentiell. Kontinuierliche Änderungen und Erweiterungen sind unabdingbar, um solche Software-Systeme an neue oder veränderte Anforderungen anzupassen. Diese Maßnahmen verursachen aber auch oft Qualitätsdefizite, die zu einem Anstieg der Komplexität oder einem Verfall der Architektur führen können. Gerade Qualitätsdefizite in der Spezifikation oder Architektur können Software-Systeme stark beeinträchtigen.Um dem entgegenzuwirken, wird in dieser Arbeit eine Methode entwickelt, welche die Einhaltung von Qualitätszielen bewerten kann. Dadurch wird sowohl das Erkennen als auch das Beheben von Qualitätsdefiziten in der Software-Entwicklung ermöglicht. Qualitätsdefizite werden anhand einer am Qualitätsziel orientierten und regelbasierten Analyse erkannt und durch zugeordnete Reengineering-Aktivitäten behoben. Als Beispiel für ein Qualitätsziel wird die Weiterentwicklungsfähigkeit von Software-Systemen betrachtet. Es wird gezeigt, wie dieses Qualitätsziel anhand von strukturellen Abhängigkeiten in Software-Systemen bewertet und durch gezielte Reengineering-Aktivitäten verbessert werden kann.Um die Methode zu validieren, wurde eine industrielle Fallstudie durchgeführt. Durch den Einsatz der Methode konnten eine Vielzahl von Qualitätsdefiziten erkannt und behoben werden. Die Weiterentwicklungsfähigkeit des untersuchten Software-Systems wurde durch die vorgeschlagenen Reengineering-Aktivitäten entscheidend verbessert

    Quality Goal Oriented Architectural Design and Traceability for Evolvable Software Systems

    Get PDF
    Softwaresysteme werden heute z.B. aufgrund sich ändernder Geschäftsprozesse oder Technologien mit häufigen Veränderungen konfrontiert. Die Software und speziell ihre Architektur muss diese Änderungen zur dauerhaften Nutzbarkeit ermöglichen.Während der Software-Evolution können Änderungen zu einer Verschlechterung der Architektur führen, der Architekturerosion. Dies erschwert oder verhindert weitere Änderungen wegen Inkonsistenz oder fehlendem Programmverstehen. Zur Erosionsvermeidung müssen Qualitätsziele wie Weiterentwickelbarkeit, Performanz oder Usability sowie die Nachvollziehbarkeit von Architekturentwurfsentscheidungen berücksichtigt werden. Dies wird jedoch oft vernachlässigt.Existierende Entwurfsmethoden unterstützen den Übergang von Qualitätzielen zu geeigneten Architekturlösungen nur unzureichend aufgrund einer Lücke zwischen Methoden des Requirements Engineering und des Architekturentwurfs. Insbesondere gilt dies für Weiterentwickelbarkeit und die Nachvollziehbarkeit von Entwurfsentscheidungen durch explizite Modellabhängigkeiten.Diese Arbeit präsentiert ein neues Konzept, genannt Goal Solution Scheme, das Qualitätsziele über Architekturprinzipien auf Lösungsinstrumente durch explizite Abhängigkeiten abbildet. Es hilft somit, Architekturlösungen entsprechend ihrem Einfluss auf Qualitätsziele auszuwählen. Das Schema wird speziell hinsichtlich Weiterentwickelbarkeit diskutiert und ist in ein zielorientiertes Vorgehen eingebettet, das etablierte Methoden und Konzepte des Requirements Engineering und Architekturentwurfs verbessert und integriert. Dies wird ergänzt durch ein Traceability-Konzept, welches einen regelbasierten Ansatz mit Techniken des Information Retrieval verbindet. Dies ermöglicht eine (halb-) automatische Erstellung von Traceability Links mit spezifischen Linktypen und Attributen für eine reichhaltige Semantik sowie mit hoher Genauigkeit und Trefferquote.Die Realisierbarkeit des Ansatzes wird an einer Fallstudie einer Software für mobile Serviceroboter gezeigt. Das Werkzeug EMFTrace wurde als eine erweiterbare Plattform basierend auf Eclipse-Technologie implementiert, um die Anwendbarkeit der Konzepte zu zeigen. Es integriert Entwurfsmodelle von externen CASE-Tools mittels XML-Technologie in einem gemeinsamen Modell-Repository, wendet Regeln zur Linkerstellung an und bietet Validierungsfunktionen für Regeln und Links.Today software systems are frequently faced with demands for changes, for example, due to changing business processes or technologies. The software and especially its architecture has to cope with those frequent changes to permanently remain usable.During software evolution changes can lead to a deterioration of the structure of software architectures called architectural erosion, which hampers or even inhibits further changes because of inconsistencies or lacking program comprehension. To support changes and avoid erosion, especially quality goals, such as evolvability, performance, or usability, and the traceability of design decisions have to be considered during architectural design. This however often is neglected.Existing design methods do not sufficiently support the transition from the quality goals to appropriate architectural solutions because there is still a gap between requirements engineering and architectural design methods. Particularly support is lacking for the goal evolvability and for the traceability of design decisions by explicit model dependencies.This thesis presents a new concept called Goal Solution Scheme, which provides a mapping from goals via architectural principles to solution instruments by explicit dependencies. Thus it helps to select appropriate architectural solutions according to their influence on quality goals. The scheme is discussed especially regarding evolvability, and it is embedded in a goal-oriented architectural design method, which enhances and integrates established methods and concepts from requirements engineering as well as architectural design. This is supplemented by a traceability concept, which combines a rule-based approach with information retrieval techniques for a (semi-) automated establishment of links with specific link types and attributes for rich semantics and a high precision and recall.The feasibility of the design approach has been evaluated in a case study of a software platform for mobile robots. A prototype tool suite called EMFTrace was implemented as an extensible platform based on Eclipse technology to show the practicability of the thesis' concept. It integrates design models from external CASE tools in a joint model repository by means of XML technology, applies rules for link establishment, and provides validation capabilities for rules and links

    UnterstĂĽtzung von Integrationsdienstleistungen durch abstrakte Integrationsmuster

    Get PDF
    Integration ist eine fortwährende Aufgabe in betrieblichen Informationssystemen. Durch den Einsatz verschiedener personeller und maschineller Aufgabenträger kommt es zu wiederkehrenden Integrationsproblemen, die vorrangig durch externe Dienstleister gelöst werden. Das zentrale Problem dieser Arbeit ist, dass in der Wissenschaft diskutiertes Lösungswissen in Form von Mustern existiert, aber keinen Eingang in die Praxis findet. Um dieses Problem zu untersuchen, wurde eine qualitative empirische Untersuchung durchgeführt, welche erstmals im deutschsprachigen Raum Wirkungszusammenhänge und Entscheidungsmechanismen in Integrationsprojekten analysiert. Als Ergebnis der qualitativen Erhebung kann festgehalten werden, dass dem Dienstleistungscharakter der Integration bisher zu wenig Beachtung geschenkt wurde und dass Integrationsmuster nicht eingesetzt werden, weil der Abstraktionsgrad des so konservierten Lösungswissens nicht zum Abstraktionsgrad der Problemstellungen passt. Deshalb definiert die Arbeit zunächst ein Dienstleistungsmodell der Integration, welches sich auf die empirische Untersuchung stützt. Danach wird auf der Grundla-ge einer eigenschaftsbasierten Definition von Integrationsmustern eine Grundmenge an Mustern aus der Literatur extrahiert, die weiter abstrahiert werden. Als Abstraktionsprinzipien werden die Klassifikation und die Generalisierung eingesetzt. Abstrakte Integrationsmuster können als Ressourcen in ein Dienstleistungsmodell eingehen. Für die Klassifikation wurde ein erweiterbares und flexibles Klassifikationsverfahren – die Facettenklassifikation – gewählt. Diese ermöglicht jederzeit das Hinzufügen weiterer Facetten. Die Einordnung eines Musters muss nur innerhalb einer Facette disjunkt sein, es kann aber in andere Facetten eingeordnet werden. Die verwendeten Facetten entstammen sowohl dem Problem als auch dem Lösungsbereich. Jeder Facette liegt eine umfassende Analyse zugrunde. Die Klassifikation bildet den Ausgangspunkt der erneuten Generalisierung. Muster mit ähnlichen bzw. identischen Ausprägungen werden erfasst und auf ein gemeinsames Konzept untersucht. Diese Generalisierung wurde exemplarisch für zwei Mustergruppen durchgeführt. Dabei wurden die beiden abstrakten Integrationsmuster „zusätzlicher Zugriffspunkt“ sowie „Vermittler“ identifiziert. Die entwickelten Konzepte flossen in eine umfangreiche Evaluation ein, welche am Beispiel einer konkreten Dienstleistung im Bereich der E-Procurement-Integration durchgeführt wurde. Die Unabhängigkeit der Bewertung konnte dadurch sichergestellt werden, dass weder der Dienstleister noch der Kunde an der zuvor durchgeführten empirischen Untersuchung beteiligt waren. Der erarbeitete Lösungsvorschlag wurde in einer Laborumgebung implementiert. Das vollständige Integrationsszenario ist dabei auf der Basis einer Virtualisierungsumgebung realitätsnah nachgebildet worden. Neben Instanzen der Kundensysteme mit identischem Versions- und Patch-Stand kamen auch Datenbestände aus Produktivsystemen zum Einsatz. Die Integrationshilfsmittel wurden ebenfalls in der Laborumgebung eingerichtet. Durch abstrakte Integrationsmuster verbessert sich die Dienstleistungserbringung. Auf der Kundenseite bewirkt dies eine Verbesserungen der Integrations- und Unternehmensarchitektur sowie die Erschließung weiteren Verbesserungspotenzials. Für den Dienstleister ergibt sich neben einem veränderten Dienstleistungsmodell vor allem die Möglichkeit, einmalige Angebote in ein konfigurierbares Standarddienstleistungsangebot zu überführen. Zusätzlich kann eine verbesserte Ressourcennutzung (vor allem der Humanressourcen) anhand des veränderten Dienstleistungsmodells nachgewiesen werden. Im Rahmen der Arbeit konnte so ein Ansatz entwickelt werden, der die empirisch belegten Abstraktionsprobleme behebt und die Einsetzbarkeit von bestehendem Lösungswissen verbessert. Gleichzeitig werden die Wirkungsmechanismen und Entscheidungszusammenhänge durch das Dienstleistungsmodell besser erfass-, erklär- und vor allem planbar

    Identifying Evolvability for Integration

    No full text
    Abstract. The seamless integration of commercial-off-the-shelf (COTS) components offers many benefits associated with reuse. Even with successful composite applications, unexpected interoperability conflicts can arise when COTS products are upgraded, new components are needed, and the application requirements change. Recent approaches to integration follow pattern-based design principles to construct integration architecture for the composite application. This integration architecture provides a design perspective for addressing the problematic interactions among components within the application environment. However, little attention has been paid to the evolvability of these architectures and their embedded functionality. In this paper, we discuss the need for design traceability based on the history of interoperability conflicts and resolution decisions that comprise the integration architecture. Additionally, we advocate that certain functional aspects of a pattern can be pinpointed to resolve a conflict. Combining these two aspects of integration architecture design, we illustrate that often evolution is possible with minimal changes to the integration solution.

    Identifying Evolvability for Integration

    No full text
    corecore