159 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

    AnsÀtze zur kollaborativen Softwareerstellung

    Full text link
    Die Erstellung von Software zur UnterstĂŒtzung betrieblicher AblĂ€ufe wird in zunehmendem Maße komplexer. Da der Erstellungsprozess in der Softwareindustrie traditionell einer Werkstatt- bzw. Einzelfertigung entspricht, erfordert die stetig steigende Nachfrage nach betrieblicher Software und die fortschreitende Globalisierung die rationellere Gestaltung der Softwareentwicklung. In der Literatur werden daher immer hĂ€ufiger die Industrialisierung der Softwareerstellung und neuartige Formen der Spezialisierung, Arbeitsteilung und Zusammenarbeit (engl. Collaboration) vorgestellt. Dabei kann im Wesentlichen unterschieden werden, ob die Zusammenarbeit einzelner Akteure und Arbeitsgruppen auf Projektebene oder die strategische Zusammenarbeit von Unternehmen innerhalb der Softwareindustrie behandelt wird. Über diese beiden grundlegenden Betrachtungsebenen hinweg lassen sich existierende AnsĂ€tze zur arbeitsteiligen Softwareerstellung entlang mehrerer Dimensionen, wie rĂ€umliche, zeitliche und organisatorische Verteilung der AktivitĂ€ten im Prozess sowie IntensitĂ€t und Richtung der Zusammenarbeitsbeziehungen klassifizieren. Ziel dieses Artikels ist es, einen umfassenden und systematischen Überblick ĂŒber bestehende AnsĂ€tze zur kollaborativen Softwareerstellung zu geben, indem diese in einen generischen Klassifikationsrahmen eingeordnet werden. Des Weiteren soll eine etymologische und pragmatische Herleitung des Kollaborationsbegriffs die Etablierung eines eigenstĂ€ndigen Forschungsparadigmas im Rahmen der Wirtschaftsinformatik ermöglichen

    Schaffung einer Basis fĂŒr die kontinuierliche QualitĂ€tsanalyse

    Get PDF
    Die QualitĂ€t der Software ist ein wesentlicher Faktor fĂŒr den wirtschaftlichen Erfolg von Softwaresystemen, die langlebig und erweiterbar sein sollen. Sie hat vor allem entscheidenden Einfluss auf die Effizienz der Wartung und Weiterentwicklung. ErfahrungsgemĂ€ĂŸ nimmt aber die QualitĂ€t der Software mit der Zeit ab. Die kontinuierlichen Änderungen und Erweiterungen des Quellcodes, sich stĂ€ndig Ă€ndernde Anforderungen und die Anpassungen der Software an unterschiedliche technische Umgebungen können zum schleichenden QualitĂ€tsverfall fĂŒhren. Um diesem Verfall der QualitĂ€t entgegenzuwirken, ist es notwendig gewisse Regeln zu definieren und durch eine kontinuierliche Analyse die Einhaltung dieser Regeln zu kontrollieren. Dabei soll nicht nur der Entwicklungsprozess, sondern auch das Produkt selbst analysiert und verbessert werden. Auf Grund der GrĂ¶ĂŸe heutiger Softwaresysteme ist es empfehlenswert solch eine QualitĂ€tsĂŒberprĂŒfung sowohl durch manuelle Inspektionen, als auch mittels dafĂŒr geeigneten Werkzeugen durchzufĂŒhren. Die Werkzeuge, die zur Operationalisierung der kontinuierlichen SoftwarequalitĂ€tsanalyse dienen, werden Software Quality Dashboards genannt. Diese Werkzeuge sammeln und liefern Daten ĂŒber den aktuellen QualitĂ€tszustand eines Softwaresystems in Form von Tabellen, Trends- und Übersichtsgrafiken. Mit Hilfe dieser Daten können spĂ€ter Aussagen ĂŒber die QualitĂ€t und die WeiterentwicklungsfĂ€higkeit des Softwaresystems gemacht werden

    Entwicklungsmethodiken zur kollaborativen Softwareerstellung – Stand der Technik

    Full text link
    Die weltweit wachsende Nachfrage nach Unternehmenssoftware erfordert immer neue Methoden und Formen der Zusammenarbeit (Kollaboration) bei der Softwareerstellung. Zu diesem Zweck untersucht und vergleicht dieses Arbeitspapier existierende Vorgehensmodelle und deren Evolution. ZusĂ€tzlich werde erste AnsĂ€tze zur kollaborativen Softwareerstellung vorgestellt und ihre Eignung fĂŒr ein kommerzielles Umfeld analysiert. Die Arbeit verwendet hierzu einen eigenen Vergleichsrahmen, der u.a. auch so genannte "Kollaborationspunkte“ in Betracht zieht, d.h. AktivitĂ€ten im Prozess an denen das Einbinden mehrerer Entwickler und/oder Anwender vorteilhaft ist. Die Erkenntnisse aus der vergleichenden Analyse des Stands der Technik werden schließlich dazu verwendet, Defizite existierender AnsĂ€tze aufzuzeigen und Anforderungen fĂŒr unterstĂŒtzende Werkzeuge abzuleiten

    Analyse der Barrieren und Treiber zwischenbetrieblicher Softwareerstellung und Konstruktion einer Kollaborationsplattform fĂŒr kleine und mittlere Unternehmen

    Full text link
    Die Erstellung von Unternehmenssoftware gliedert sich zunehmend in die Herstellung von Komponenten durch einzelne Zulieferer, die von Systemintegratoren zusammengefĂŒhrt und implementiert werden. Dadurch gewinnt die zwischenbetriebliche Zusammenarbeit in der Softwarebranche zunehmend an Bedeutung. Um den Wertschöpfungsprozess innerhalb dieser entstehenden, so genannten Softwarelieferketten zu stĂ€rken, werden mit dem vom Wirtschaftsministerium Baden-WĂŒrttemberg geförderten Projekt TASK die unternehmensĂŒbergreifende Entwicklung, Integration und Implementierung von Softwarekomponenten unterstĂŒtzt. Dieser Artikel stellt zum einen die Struktur und den bisherigen Verlauf des Projekts vor, zum anderen werden wissenschaftliche Erkenntnisse aus der empirischen Analyse der Barrieren und Treiber zwischenbetrieblicher Softwareerstellung sowie der Gestaltung einer Kollaborationsplattform fĂŒr die zwischenbetriebliche Softwareerstellung prĂ€sentiert. Den Abschluss bildet eine Diskussion aktueller und zukĂŒnftiger Probleme bei der Etablierung zwischenbetrieblicher Zusammenarbeit in der Softwareindustrie am Beispiel mittelstĂ€ndischer Unternehmen in Baden-WĂŒrttemberg

    Vergleich und Bewertung von Methoden und Tools fĂŒr den Entwurf und die Realisierung von REST APIs

    Get PDF
    REST-Schnittstellen haben sich die letzten Jahre in der Softwareindustrie etabliert. AbhĂ€ngig von der eingesetzten Technologie gibt es viele Möglichkeiten eine REST-Schnittstelle zu entwerfen und umzusetzen. FĂŒr die UnterstĂŒtzung des Entwurfs und der Realisierung von REST-Schnittstellen existiert ein modellgetriebener Ansatz mit akademischem Hintergrund. Neben diesem akademischen, modellgetriebenen Ansatz existieren weitere AnsĂ€tze basierend auf Beschreibungssprachen wie Swagger oder RAML, die bei Entwurf und Realisierung unterstĂŒtzen. Diese Arbeit vergleicht den eben beschriebenen akademischen Ansatz mit zwei AnsĂ€tzen, welche beide jeweils eine der eben genannten Beschreibungssprachen nutzen. Der auf Swagger-basierende Ansatz wird durch eine bestehende Softwareentwicklung eines Industriepartners reprĂ€sentiert. Der akademische modellgetriebene Ansatz und seine Werkzeuge werden mit den beiden anderen AnsĂ€tzen und deren Werkzeuge hinsichtlich ihrer Brauchbarkeit zum Entwurf und zur Umsetzung von REST-Schnittstellen in einem Industrieunternehmen untersucht. Dieser Vergleich der Entwurfs- und Realisierungsmethoden von REST-Schnittstellen wird exemplarisch an einem agil entwickelten Dienst zur Abfrage von Sonderzielen durchgefĂŒhrt. Der Vergleich betrachtet die verschiedenen Arbeitsweisen der vorgestellten AnsĂ€tze, die dabei entstehenden Artefakte und Modelle sowie den von ihnen erzeugten Quellcode. FĂŒr die DurchfĂŒhrung des Vergleichs der verschiedenen AnsĂ€tze wurden Nachbauten des Dienstes des Industriepartners fĂŒr den akademischen Ansatz und den Ansatz unter Verwendung von RAML erstellt. Diese Nachbauten dienen als Grundlage fĂŒr die Betrachtung des Entwicklungsprozesses, die Befragung der Entwickler sowie die DurchfĂŒhrung einer statischen Codeanalyse. Die Befragung zeigt, dass die befragten Entwickler des Industriepartners die ihnen neu vorgestellten AnsĂ€tze im Allgemeinen nicht als bereit und lohnenswert fĂŒr den Entwurf und die Umsetzung von REST-Schnittstellen in der Praxis erachteten. Die beteiligten Entwickler waren sich aber einig, dass modellgetriebenen AnsĂ€tze attraktive Möglichkeiten bieten

    Asynchrone Anwenderbeteiligung in Software-Projekten

    Get PDF
    In dieser Arbeit wurde die neue Methode OpenProposal zur asynchronen Anwenderbeteiligung in Software-Projekten entwickelt und im Rahmen von vergleichenden Fallstudien evaluiert. Kern der Methode stellt ein Annotationssystem zur asynchronen Erstellung und Bearbeitung von AnwenderbeitrĂ€gen dar. Mit der neuen Methode werden die Möglichkeiten zur asynchronen Kommunikation zwischen Anwender und Entwickler aufgezeigt und Vorteile gegenĂŒber einer synchronen Kommunikation nachgewiesen
    • 

    corecore