5 research outputs found
Requirements Modelling and Design Notations for Software Product Lines
Although feature modelling is a frequently used
approach to the task of modelling commonality and
variability within product lines, there is currently no
standard modelling notation or methodology. On the
assumption that the commonality/variability model will
be used as a basis for architecture design, our
modelling notation allows features to be augmented
with behavioural detail, captured using the UCM path
notation. This gives rise to models that capture
commonality and variability in behaviour as well as in
product features, and are thus more valuable for
downstream design activities. This paper outlines the
modelling notation and describes ongoing work on the
characterisation of variability points within models
based on this notation, and on the relationships between
model fragments and solution domain techniques such
as design patterns or variability realisation techniques.
It also describes preliminary work, aimed at evolving an
intelligent tool that can characterise feature and
behavioural model fragments and suggest design and
realisation methods
Integration of Generative Programming and Scripting Languages
Doktorska disertacija bavi se integracijom dviju danas aktualnih tehnologija na području programiranja, generativnog programiranja i jezika skripata na način da je izrađen koncept generativnog programiranja temeljen na jezicima skripata. Za razliku od sličnih projekata u svijetu, ovdje je naglasak stavljen na izradu grafičkog modela koji omogućuje modeliranje generatora aplikacija, te na generativnom razvoju, kao postupku paralelnog razvoja aplikacija i generatora. Time se postiže skraćenje razvojnog ciklusa aplikacija, optimizacija performansi, te pojednostavljenje održavanja. Razvijeni generatori mogu se upotrijebiti u okviru novih projekata.The doctoral dissertation examines the integration of two actual technologies in programming, generative programming and scripting languages in a way that the concept of generative programming based on scripting languages has been made. In a difference to the similar projects wide, the accent was put on building graphic model for application generators modelling, and also on generative development, as a process of parallel application and generator development. The benefits are shortening of application development circle, optimization of performances and simplifying of maintenance. The developed generators can be used in new projects
Integration of Generative Programming and Scripting Languages
Doktorska disertacija bavi se integracijom dviju danas aktualnih tehnologija na području programiranja, generativnog programiranja i jezika skripata na način da je izrađen koncept generativnog programiranja temeljen na jezicima skripata. Za razliku od sličnih projekata u svijetu, ovdje je naglasak stavljen na izradu grafičkog modela koji omogućuje modeliranje generatora aplikacija, te na generativnom razvoju, kao postupku paralelnog razvoja aplikacija i generatora. Time se postiže skraćenje razvojnog ciklusa aplikacija, optimizacija performansi, te pojednostavljenje održavanja. Razvijeni generatori mogu se upotrijebiti u okviru novih projekata.The doctoral dissertation examines the integration of two actual technologies in programming, generative programming and scripting languages in a way that the concept of generative programming based on scripting languages has been made. In a difference to the similar projects wide, the accent was put on building graphic model for application generators modelling, and also on generative development, as a process of parallel application and generator development. The benefits are shortening of application development circle, optimization of performances and simplifying of maintenance. The developed generators can be used in new projects
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