159 research outputs found
Evolution und Komposition von Softwaresystemen: Software-Produktlinien als Beitrag zu FlexibilitÀt und Langlebigkeit
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
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
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
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
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
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
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
- âŠ