2 research outputs found

    From Grown to Structured - Reducing unnecessary Variability of Technology Architectures in large-scale IT Landscapes

    Get PDF
    Die IT-Landschaft in einem Unternehmen entwickelt sich typischerweise über viele Jahre und Jahrzehnte. Um den steigenden Bedarf an Softwarelösungen zur Unterstützung unterschiedlichster Geschäftsfunktionen zu realisieren, werden so über die Zeit immer mehr Anwendungssysteme geschaffen und in die bestehende Landschaft integriert. In der Konsequenz können solche gewachsenen IT-Landschaften aus hunderten oder gar tausenden von Softwaresystemen bestehen, die ein breites Spektrum unterschiedlichster Technologien verwenden. So setzen zwar viele von ihnen gleiche Kerntechnologien (z.B. Java, .Net oder SAP) ein, unterscheiden sich jedoch häufig in den verwendeten technologischen Komponenten (z.B. verschiedene Betriebssysteme, Datenbanksysteme oder Applikationsserver). Diese technologischen Varianten sind aus Architektursicht nicht immer erforderlich und verursachen unnötige Variabilität in den Technologiearchitekturen der betrachteten Systeme, was zu einer höheren Komplexität, einer geringeren Anpassungsfähigkeit sowie zu steigenden Kosten und höherem Aufwand für die Wartung und Weiterentwicklung der gesamten IT-Landschaft führt. Um diesen Herausforderungen zu begegnen, ist es erforderlich, dass die Variabilität von technologisch verwandten Softwaresystemen reduziert wird. Da hiermit komplexe Tätigkeiten verbunden sind, die bisher manuell von Experten durchgeführt werden müssen, sind sie für gewachsene IT-Landschaften kaum durchführbar. Zur Lösung dieses Problems werden in dieser Dissertation drei wissenschaftlichen Beiträge vorgestellt: (1) Ein Mining-Verfahren zur Bestimmung von Variabilität in Technologiearchitekturen, welches eine beliebige Anzahl an verwandten IT-Systemen analysiert und alle Variabilitätsbeziehungen zwischen ihnen bestimmt. (2) Ein regelbasierter Ansatz zur Ableitung von Restrukturierungsempfehlungen, welcher unnötige Variabilität in den betrachteten Technologiearchitekturen identifiziert und geeignete Maßnahmen zur Reduzierung dieser Variabilität vorschlägt. (3) Ein Ansatz zur Simulation und Bewertung von abgeleiteten Restrukturierungsempfehlungen, welcher Experten bei der Entscheidungsfindung zur konkreten Restrukturierung von betrachteten Technologiearchitekturen unterstützt. Alle Beiträge wurden mit Experteninterviews und Fallstudien evaluiert. Für diese Evaluation standen uns verschiedene Experten eines Industriepartners sowie Daten von realen Technologiearchitekturen zur Verfügung.A company's IT landscape typically evolves over years and even decades. By satisfying the growing demand for software solutions, the number of software systems increases with a company’s requirements to support various business functions. As such an evolution is normally uncoordinated, the realization of new requirements often results in additional software systems. As a consequence, grown IT landscapes can consist of hundreds or thousands of different software systems with a large variety of technologies. Although such software systems typically utilize similar core technologies (e.g., Java, .Net, or SAP), they often differ in implemented technology components which are required to run the software system (e.g., different operating systems, database systems or application server). From an architectural point of view, such technical variants are not always necessary and might lead to unnecessary variability in the technology architectures of regarded software systems. This results in increasing costs, a reduced adaptability and higher effort for maintaining and evolving existing software solutions and the entire IT landscape. To cope with these challenges, the variability of technically related software systems has to be reduced. As this requires manual and complex analyzes, it is not feasible for a large number of software systems. Thus, experts continuously face the tedious challenge of making reasonable restructuring decisions for large-scale IT landscapes. To solve the described problems, this doctoral thesis comprises three different scientific contributions: (1) An automated mining approach for determining variability in technology architectures, which is capable of analyzing a large number of software systems and determining the inherent variability relations. (2) A rule-based approach for deriving restructuring recommendations, which identifies unnecessary variability in the considered technology architectures and suggests appropriate restructuring measures to reduce this variability. (3) An approach for evaluating and simulating derived restructuring recommendations, which supports experts in taking reasonable decisions for restructuring of analyzed technology architectures. All contributions were evaluated by means of expert interviews and several case studies. For this purpose, we had access to various experts as well as real-word data from our industry partner

    Maßgeschneiderte Produktlinienextraktion

    Get PDF
    Industry faces an increasing number of challenges regarding the functionality, efficiency and reliability of software. A common approach to reduce the linked development effort and respective costs are model-based languages, such as Matlab/Simulink and statecharts. While these languages help companies during development of single systems, the high demand for customized software is an increasing challenge. As a result, variants with high similarity and only slight differences have to be developed in an efficient way. As reimplementation of complex functionality for each variant is no option, copies of existing solutions are often modified for new customers. In the short-run, this so-called clone-and-own approach allows to save costs as existing solutions can easily be reused. However, this approach also involves risks as the relations between the copied systems are rarely documented and errors have to be fixed for each variant in isolation. Thus, with a growing number of potentially large system copies, the resulting maintenance effort can become a problem. To overcome these problems, this thesis contributes an approach to semi-automatically migrate existing model variants to software product lines. These product lines allow to generate all variants from the identified reusable artifacts. As industry uses a variety of different modeling languages, the focus of the approach lies on an easy adaptation for different languages. Furthermore, the approach can be custom-tailored to include domain knowledge or language-specific details in the variability identification. The first step of the approach performs a high-level analysis of variants to identify outliers (e.g., variants that diverged too much from the rest) and clusters of strongly related variants. The second step executes variability mining to identify corresponding low-level variability relations (i.e. the common and varying parts) for these clusters. The third step uses these detailed variability relations for an automatic migration of the compared variants to a delta-oriented software product line. The approach is evaluated using publicly available case studies with industrial background as well as model variants provided by an industry partner.Die Industrie steht einer steigenden Anzahl an Herausforderungen bezüglich der Funktionalität, Effizienz und Zuverlässigkeit von Software gegenüber. Um den damit verbundenen Entwicklungsaufwand und entsprechende Kosten zu reduzieren, werden häufig modellbasierte Sprachen wie Matlab/Simulink oder Zustandsautomaten eingesetzt. Obwohl diese Sprachen die Unternehmen während der Entwicklung von Einzelsystemen unterstützen, führt die große Nachfrage nach maßgeschneiderter Software zu neuen Herausforderungen. Entsprechend müssen Varianten mit hoher Ähnlichkeit und nur geringfügigen Unterschieden effizient entwickelt werden. Da eine Neuimplementierung komplexer Funktionalität für jede Variante keine Option darstellt, werden häufig Kopien existierender Lösungen für Kunden angepasst. Auf kurze Sicht ermöglicht dieser sogenannte clone-and-own-Ansatz Kosten zu sparen, da existierende Lösungen leicht wiederverwendet werden können. Jedoch birgt der Ansatz auch Risiken, da Beziehungen zwischen den Systemkopien selten dokumentiert werden und Fehler für jede der Variante einzeln behoben werden müssen. Somit kann mit einer wachsenden Anzahl an möglicherweise umfangreichen Systemkopien der Wartungsaufwand zu einem Problem werden. Um diese Probleme zu lösen, bietet diese Arbeit einen Ansatz zur semi-automatischen Überführung existierender Modellvarianten in Softwareproduktlinien. Diese ermöglichen eine anschließende Generierung der Varianten aus den identifizierten wiederverwendbaren Artefakten. Da in der Industrie eine große Menge von Modellierungssprachen eingesetzt wird, liegt der Fokus auf der einfachen Adaption für unterschiedliche Sprachen. Zusätzlich kann durch Einbeziehung von Expertenwissen oder sprachspezifische Details die Variabilitätsidentifikation beeinflusst werden. Der erste Schritt des Ansatzes analysiert die Varianten auf hohem Abstraktionslevel, um Außenseiter (z.B. Varianten die stark von den restlichen Variaten abweichen) und Cluster von stark verwandten Varianten zu identifizieren. Der zweite Schritt analysiert diese Cluster auf niedrigem Abstraktionslevel, um entsprechende Variabilitätsrelationen (d.h. gemeinsame und unterschiedliche Teile) zu identifizieren. Der dritte Schritt nutzt diese detaillierten Variabilitätsrelationen für eine automatische Migration der verglichenen Varianten in eine delta-orientierte Softwareproduktlinie. Der Ansatz ist an Fallstudien mit industriellem Kontext sowie Modellvarianten eines Industriepartners evaluiert worden
    corecore