9 research outputs found
Stability for component integration assessment
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
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
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
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
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
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.