180 research outputs found

    Evolution und Komposition von Softwaresystemen: Software-Produktlinien als Beitrag zu Flexibilität und Langlebigkeit

    Get PDF
    Software systems are today bigger, more complex and of higher importance for products and services than a decade before. At the same time changes are required many more frequently and of a larger size. Furthermore, they have to be implemented faster. Additionally, the software must achieve a higher life span, particularly because of the cost of its development. In the past, Object-Oriented Programming and Reuse techniques did not provide the expected success. The introduction of software product lines respectively system families makes possible it to reach a degree of prefabrication similar to the one of serial production. At the same time they facilitate the delivery of product variants with a short time to market. In this work methods of the methods of domain analysis are integrated with Reuse approaches and techniques of Generative Programming, and a methodology for product line development is presented. Feature models are used as means expressing variability and product configurations, so that the prefabrication be planned and the production of customer-specific products can be controlled. By enforcing the formalization in terms of syntax and semantics, feature models are made accessible to tools and automation. Object-oriented design models and architecture are separated into fine-granular components in such a way that new products can easily be developed as combinations of those components. The implementation of such products is automated by the composition of source code components. The composition of object models separated similarly enables a uninterrupted automation for the product development, which is controlled by a customer by means of a feature selection. To facilitate such a composition, the Hyperspace approach is applied to UML to Hyper/UML, which makes possible a feature-driven separation and composition of object models. In this way slim products can be developed, containing only the actually needed functionality. For the evolution of product lines and for the integration of existing solutions and components into the evolution, Reverse Engineering and Refactoring techniques are integrated. Requirements, models and implementation are connected by Traceability links to perform changes consistently. As a consequence, the loss of architectural quality - so-called Architectural Decay - can be avoided during the iterative development process. Measures for the improvement of the project and quality management are regarded briefly, as far as they are of importance for the effectiveness of the developed methods. The applicability and suitability of the results of the work were examined in several industrial projects.Softwaresysteme sind heute umfangreicher, komplexer und von entscheidenderer Bedeutung für Produkte und Dienstleistungen als eine Dekade zuvor. Gleichzeitig sind Änderungen viel häufiger und in größerem Umfang erforderlich. Sie müssen auch schneller realisierbar sein. Zudem muss die Software eine höhere Lebensdauer erreichen, vor allem wegen des Aufwandes zu ihrer Entwicklung. Objektorientierte Programmierung und Wiederverwendungstechniken haben dabei nicht den erwarteten Erfolg gebracht. Die Einführung von Software-Produktlinien beziehungsweise Systemfamilien ermöglichen es, einen der Serienfertigung ähnlichen Vorfertigungsgrad zu erreichen und erlauben es gleichzeitig, kurzfristig Produktvarianten zu erstellen. In dieser Arbeit werden Methoden der Domänenanalyse mit Wiederverwendungsansätzen und Generativen Programmiertechniken verknüpft und eine Methodik zur Produktlinien-Entwicklung vorgestellt. Featuremodelle werden als Ausdrucksmittel für Variabilität und Produktkonfigurationen eingesetzt, damit die Vorfertigung geplant und die Erstellung von kundenspezifischen Produkten gesteuert werden kann. Durch Präzisierung ihrer Syntax und Erweiterung ihrer Semantik werden Featuremodelle einer Nutzung in Werkzeugen zugänglich gemacht. Objektorientierte Entwurfsmodelle und Architektur werden so in feingranulare Komponenten zerlegt, dass Varianten als neue Produkte mit geringem Aufwand erstellbar sind. Die Erstellung der Implementierung solcher Produkte wird durch die Komposition von Quelltext-Komponenten automatisiert. Die Komposition von ebenfalls zerlegten Objektmodellen ermöglicht eine durchgehende Automatisierung der Produkterstellung, die durch einen Kunden mittels der Feature-Auswahl gesteuert wird. Dafür wird mit Hyper/UML eine Umsetzung des Hyperspace-Ansatzes auf die Modellierungssprache UML entwickelt, die eine Feature-gesteuerte Zerlegung und Komposition von Objektmodellen ermöglicht. Damit lassen sich schlanke Produkte entwickeln, die nur die tatsächlich benötigte Funktionalität enthalten. Zur Evolution von Produktlinien und zur Einbindung existierender Lösungen und Komponenten in die Evolution werden Reverse-Engineering- und Refactoring-Techniken integriert. Anforderungen, Modelle und Implementierung werden durch Traceability-Links verbunden, damit Änderungen konsistent durchgeführt werden können. Diese Mittel tragen dazu bei, dass während einer iterativen Entwicklung der Verlust an Architektur-Qualität, das sogenannte Architectural Decay, vermieden werden kann. Maßnahmen zur Verbesserung des Projekt- und Qualitätsmanagements werden kurz betrachtet, soweit sie wichtige Randbedingungen für die Wirksamkeit der Methoden schaffen müssen. Die Anwendbarkeit und Eignung der Ergebnisse der Arbeiten wurde in mehreren industriellen Projekten überprüft.Ilmenau, Techn. Univ., Habil.-Schr., 200

    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

    Nachvollziehbare Entscheidungsprozesse in der industriellen Softwareentwicklung durch Rationale Management - Ansätze zur Umsetzung bei der SAP AG

    Get PDF
    Das Software Engineering ist heute geprägt von schnelllebigen Technologien und Trends, verteilten, arbeitsteiligen Projekten mit vielen Interessenvertretern (Stakeholdern) und einem umkämpften globalen Markt. In diesem Umfeld wird es zur Herausforderung, gewonnene Erkenntnisse festzuhalten und daraus als gesamte Organisation zu lernen, um Fehler nicht zu wiederholen oder gar ganz zu vermeiden. Information und Wissen sowie Kommunikation und Wissenstransfer zusammen mit wohl reflektierten Entscheidungen werden daher immer mehr zum kritischen Erfolgsfaktor einer Organisation. Rationale Management (RM) (engl. Begründungsmanagement) ist ein Ansatz, um diese Erfolgsfaktoren auf allen Ebenen einer Organisation einzubeziehen. Durch das Aufzeigen der Gestaltungsalternativen (design space analysis) sollen die Entscheidungsträger (gegebenenfalls in einem kollaborativen Prozess) anhand von adäquaten Kriterien zu konsistenten und argumentativ begründeten Entscheidungen gelangen. Über eine geeignete Erfassung, Aufbereitung und Nutzung des Rationale soll eine Verbesserung der Entscheidungskommunikation, des Wissenstransfers und der Informationsgewinnung über individuelle, organisatorische und funktionale Grenzen der Organisation hinweg erreicht werden. In der vorliegenden Arbeit werden die im Kontext des Software Engineering diskutierten Ansätze für Rationale Management zusammengetragen. Sie werden strukturiert nach verschiedenen Wissensbereichen des Software Engineering aufbereitet und gegenübergestellt. Basierend darauf und am Beispiel der SAP AG wird untersucht wie Rationale Management in unterschiedlichen Bereichen eines Vorgehensmodells gewinnbringend integriert werden könnte. Hierzu werden konkrete Vorschläge im Umfeld der Kommunikation von Projektlenkungsentscheidungen oder der Erfassung von Rationale im Kontext von Anforderungspriorisierungen erarbeitet. Die dabei gewonnenen Erkenntnisse bei der Integration von Rationale Management in die Prozesse – auch in Bezug auf die Projektpolitik – werden abschließend festgehalten

    Modellbasierte Methoden zur Modellierung des Zielsystems und des Funktions-Gestalt-Zusammenhangs zur Unterstützung der Serienentwicklung von Baukästen am Beispiel von Hybrid-Triebstrangsystemen = Model Based Methods for the Modeling of the System of Objectives and the Correlation between Form and Function to support the Series Development of Modular Systems Using the Example of Hybrid Powertrains

    Get PDF
    In der vorliegenden Arbeit werden Modellierungsmethoden für Baukasten-Zielsysteme (mit Entwicklungszielen, Anforderungen und Randbedingungen) und für Funktions-Gestalt-Zusammenhänge (für die Weitergabe von Lösungswissen) zur Unterstützung der Baukastenentwicklung vorgestellt und in der Serienentwicklung von Hybrid-Triebstrangbaukästen eingesetzt

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

    Get PDF
    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

    Modellierung von Zielsystemen in der interdisziplinären Produktentstehung = Modeling of System of Objectives in Interdisciplinary Product Engineering

    Get PDF
    In dieser Arbeit wird eine Methode zur Modellierung von Zielsystemen in der interdisziplinären Produktentstehung entwickelt. Die Methode folgt dabei der Prämisse, dass Zielsysteme vernetzt, nachvollziehbar und kontinuierlich im Produktentstehungsprozess modelliert werden müssen, um der Komplexität heutiger interdisziplinärer Produktentstehung Rechnung tragen zu können

    Handlungsfelder der gestaltungsorientierten Wirtschaftsinformatik im Kontext der Digitalen Fabrik

    Get PDF
    In Wissenschaft und Praxis beschäftigen sich unterschiedliche Disziplinen mit Methoden, Konzepten und Werkzeugen zur Verbesserung der Leistungsfähigkeit industrieller Unternehmen. Hierfür hat sich der Begriff der Digitalen Fabrik interdisziplinär etabliert, wobei festzustellen ist, dass ein einheitliches und disziplinübergreifendes Verständnis bisher nicht existiert. In diesem Beitrag werden daher die verschiedenen Definitionen für die Digitale Fabrik aufgezeigt sowie deren Bestandteile strukturiert dargestellt. Darauf aufbauend erfolgt die forschungstheoretisch begründete Zuordnung derjenigen Teilgebiete, die zu den Handlungsfeldern der gestaltungsorientierten Wirtschaftsinformatik gehören. Basierend auf der Erkenntnis, dass die Digitale Fabrik bisher ingenieurswissenschaftlich getrieben ist, werden für die identifizierten Felder Handlungsempfehlungen für die Wirtschaftsinformatik abgeleitet

    Optimierung der Rückverfolgbarkeit von Anforderungen im Software-Entwicklungsprozess : Entwicklung eines Lösungsansatzes zum Verknüpfen von Anforderungen mit Komponenten in der Benutzerschnittstelle

    Get PDF
    Die Rückverfolgbarkeit von Anforderungen ist Voraussetzung für wichtige Aufgaben im Projektmanagement. Sind Anforderungen im Entwicklungsprozess nachvollziehbar, können z. B. der Projektfortschritt effektiv überwacht, die Vollständigkeit der Umsetzung festgestellt oder fundierte Aufwandsschätzungen durchgeführt werden. Diese Arbeit beschäftigt sich mit der Optimierung der Rückverfolgbarkeit im Software-Entwicklungsprozess des Unternehmens intecsoft GmbH & Co. KG. Es wurde eine Software entwickelt, die Anforderungen an der Stelle ihrer Umsetzung in der Benutzeroberfläche des Softwareprodukts darstellt. Das Hauptaugenmerk lag dabei auf einer praktikablen Lösung für den Projektalltag. Es sollte kein weiterer personeller Aufwand zur Etablierung der Rückverfolgbarkeit entstehen. Anstelle einer Erfassungsmethode, die auf manuelles Markieren von Komponenten der Benutzerschnittstelle basiert, wurde auf Beziehungen zwischen Quellcode und Anforderungen zurückgegriffen, die bereits im Versionsverwaltungssystem des Softwareprojekts erfasst warenTraceability is a prerequisite for important tasks in project management. If requirements are traceable, than e.g. the progress of the project or the completeness of implementation can efficiently be monitored or profound cost estimations can be conducted. This thesis deals with the optimization of traceability in the software development process at intecsoft GmbH & Co. KG. A software tool was developed to display requirements at their place of implementation in the user interface of the application during runtime. The major interest was a practicable solution for the daily work in software projects. No extra personal costs should be necessary to establish the traceability solution. The obvious capture method would have been manual linking of components of the user interface with requirements. Instead, there were used traces between source code and requirements, which already existed in the code versioning system of the software project

    MBSE-gestützte Methoden zur Strukturierung und Anwendung von Baukästen in der Frühen Phase der PGE - Produktgenerationsentwicklung mechatronischer Steuergeräte im Einsatz in Kleinantrieben im Automobilbereich = MBSE-supported methods for Structuring and Application of Modular Kits in the Early Stages of PGE - Product Generation Engineering of Mechatronic Control Units in Small Drives in the Automotive Sector

    Get PDF
    Die Entwicklung des Automobils hin zu einem HiTech Multimediaprodukt ist nicht erst durch die neusten Erkenntnisse im Bereich des autonomen Fahrens abzusehen. Bereits seit dem Einzug der Mechatronik ins Fahrzeug ist eine stete Zunahme an Funktionalität zu beobachten. Im Zentrum des Geschehens stehen dabei die Steuergeräte, die als intelligente Schaltzentralen außerhalb oder innerhalb der elektrischen Komponenten des Fahrzeuges agieren. Der Bereich der elektrischen Kleinantriebe stellt bis heute einen der bedeutendsten Sektoren dieser Komponenten dar. Durch den zunehmenden globalen Wettbewerb sind auch in diesem Segment Individualität und Differenzierung zu unverzichtbaren Verkaufsargumenten geworden. Standardisierungsmethoden allen voran die Baukastenentwicklung bieten an dieser Stelle die Aussicht, sich langfristig am Markt zu behaupten. Anders als in der Automobilindustrie, deren Baukästen über Jahre bestehen bleiben, zeichnet sich die Steuergeräteentwicklung aufgrund der unterschiedlichen Entwicklungszyklen der beteiligten Domänen, durch eine sehr hohe Innovationsdynamik aus. Gepaart mit den Trends der Hochintegration und der zunehmenden Funktionsdichte führt dies zu einem drastischen Anstieg der Produktkomplexität. Gerade in der frühen Phase eines Produktentstehungsprozesses, die sich ohnehin durch eine hohe Unsicherheit auszeichnet, gilt es geeignete Wege zum Umgang mit der vorherrschenden Komplexität zu ermöglichen. Hieraus entsteht der Bedarf nach geeigneten Ansätzen die spezifischen Herausforderungen der Steuergeräteentwicklung im Einsatz elektrischer Kleinantriebe mittels Baukastenentwicklung adressieren zu können. Im Rahmen der vorliegenden Arbeit werden, an die Spezifika der frühen Phase der PGE – Produktgenerationsentwicklung mechatronischer Steuergeräte angepasste Methoden zur Baukastenstrukturierung und -anwendung entwickelt. Methodisches und modelltheoretisches Fundament des Forschungsvorhabens bilden dabei die Erkenntnisse der KaSPro – Karlsruher Schule für Produktentwicklung. Mittels der Strukturierungsmethode wird eine detaillierte Vorgehensweise beschrieben, die den Leser ausgehend von einem Produktportfolio mechatronischer Steuergeräte zur Erstellung eines MBSE-gestützten Baukastenmodells führt. Um die Anwendung des Baukastens in der industriellen Praxis zu ermöglichen, wird eine Toolkette entwickelt, die dazu in der Lage ist, basierend auf realen Kundenanforderungen Produktempfehlungen aus dem Baukastenmodell heraus zu generieren und gegeneinander abzuwägen. Die unter der Durchführung von Fallstudien und Experteninterviews generierten Evaluationsergebnisse bestätigen die Eignung der Methoden zum praktischen Einsatz. Die automatisierte Baukastenanwendung zeichnet sich zusätzlich durch einen signifikanten Beitrag hinsichtlich der Effizienzsteigerung in der Ableitung von Produktkonzepten in der frühen Entwicklungsphase aus

    Konzeption und prototypische Umsetzung eines modellbasierten Testverfahrens zur Durchführung von automatisierten Akzeptanztests in Scrum-Projekten

    Get PDF
    Akzeptanztests werden in Scrum-Projekten durchgeführt, um umgesetzte Anforderungen iterativ und inkrementell gegen die Erwartungen des Product Owners zu prüfen. Dazu müssen Testartefakte kontinuierlich spezifiziert, gewartet und ausgeführt werden. Im Projektverlauf werden die Durchführung und Wartung des Testprozesses zunehmend zu zeit- und ressourcenkritischen Aufgaben, die mit einer manuellen Testdurchführung nicht mehr zu bewerkstelligen sind. Es wird ein ausgereifter Testautomatisierungsansatz benötigt. In dieser Arbeit wurde ein Testverfahren entworfen, welches die Vorteile des Model-Based Testing (MBT) mit anderen Test-First-Ansätzen, wie dem Behavior-Driven Development und Acceptance Test-Driven Development kombiniert, um die automatisierte Durchführung von Akzeptanztests im Scrum-Vorgehen zu integrieren. Dafür wurde untersucht, wie Anforderungen in Form von User Storys für die Testmodellentwicklung formalisiert werden können, wie die Rückverfolgbarkeit vom Testfall zur Anforderung und zurück gewährleistet werden kann und wie abstrakte Testfälle für die automatische Testdurchführung konkretisiert werden können. Zudem wurden ein Automatisierungs- und Durchführungsansatz für die Nutzung von GraphWalker mit Selenium als Adapterschicht zur Graphical User Interface (GUI)-Testautomatisierung sowie Möglichkeiten der Nutzung von Zustandsmodellen zur Modellierung fachlich oder logisch unerwünschter Pfade dargelegt. Das Testverfahren wurde prototypisch bei einem Fallbeispiel implementiert, um konkrete Anwendungsfälle umzusetzen und Rückschlüsse aus der praktischen Anwendung ziehen zu können. Die Ergebnisse der Arbeit zeigen, dass sich das konzipierte Testverfahren für die Automatisierung von Akzeptanztests eignet und das Vorgehen sowohl von Forschenden als auch Praktizierenden zur Implementierung eines MBT-Verfahrens verwendet werden kann
    corecore