11 research outputs found

    User-centric product derivation in software product lines

    Get PDF
    Software Product Line (SPL) engineering aims at achieving efficient development of software products in a specific domain. New products are obtained via a process which entails creating a new configuration specifying the desired product’s features. This configuration must necessarily conform to a variability model, that describes the scope of the SPL, or else it is not viable. To ensure this, configuration tools are used that do not allow invalid configurations to be expressed. A different concern, however, is making sure that a product addresses the stakeholders’ needs as best as possible. The stakeholders may not be experts on the domain, so they may have unrealistic expectations. Also, the scope of the SPL is determined not only by the domain but also by limitations of the development platforms. It is therefore possible that the desired set of features goes beyond what is possible to currently create with the SPL. This means that configuration tools should provide support not only for creating valid products, but also for improving satisfaction of user concerns. We address this goal by providing a user-centric configuration process that offers suggestions during the configuration process, based on the use of soft constraints, and identifying and explaining potential conflicts that may arise. Suggestions help mitigating stakeholder uncertainty and poor domain knowledge, by helping them address well known and desirable domain-related concerns. On the other hand, automated conflict identification and explanation helps the stakeholders to understand the trade-offs required for realizing their vision, allowing informed resolution of conflicts. Additionally, we propose a prototype-based approach to configuration, that addresses the order-dependency issues by allowing the complete (or partial) specification of the features in a single step. A subsequent resolution process will then identify possible repairs, or trade-offs, that may be required for viabilization

    Derivation and consistency checking of models in early software product line engineering

    Get PDF
    Dissertação para obtenção do Grau de Doutor em Engenharia InformáticaSoftware Product Line Engineering (SPLE) should offer the ability to express the derivation of product-specific assets, while checking for their consistency. The derivation of product-specific assets is possible using general-purpose programming languages in combination with techniques such as conditional compilation and code generation. On the other hand, consistency checking can be achieved through consistency rules in the form of architectural and design guidelines, programming conventions and well-formedness rules. Current approaches present four shortcomings: (1) focus on code derivation only, (2) ignore consistency problems between the variability model and other complementary specification models used in early SPLE, (3) force developers to learn new, difficult to master, languages to encode the derivation of assets, and (4) offer no tool support. This dissertation presents solutions that contribute to tackle these four shortcomings. These solutions are integrated in the approach Derivation and Consistency Checking of models in early SPLE (DCC4SPL) and its corresponding tool support. The two main components of our approach are the Variability Modelling Language for Requirements(VML4RE), a domain-specific language and derivation infrastructure, and the Variability Consistency Checker (VCC), a verification technique and tool. We validate DCC4SPL demonstrating that it is appropriate to find inconsistencies in early SPL model-based specifications and to specify the derivation of product-specific models.European Project AMPLE, contract IST-33710; Fundação para a Ciência e Tecnologia - SFRH/BD/46194/2008

    Views and concerns and interrelationships : Lessons learned from developing the multi-View software engineering environment PIROL

    Get PDF
    Software-Entwicklungsumgebungen sind komplexe Systeme mit besonderen Anforderungen an Modularität und Anpaßbarkeit. Diese Arbeit beschreibt die Entwicklung der Umgebung PIROL. Die Beschreibung ist dabei in eine Abfolge der folgenden 12 Themen gegliedert. (1) Metamodellierung ist das Grundkonzept, nach dem PIROL seine Daten gemäß einem objektorientierten Datenmodell zerlegt, so daß beliebige Werkzeuge auch auf die Daten anderer Werkzeuge auf sinnvolle Art und Weise zuzugreifen können. (2) Das Metamodell wird zur persistenten Speicherung der Daten auf Konzepte des Repositories H-PCTE abgebildet. (3) Die Granularität eines Metamodells ist für die Effektivität und Effizienz des Gesamtsystems entscheidend. PIROL unterstützt hybride Modellierung als Kompromiß beider Extreme. (4) Durch Methoden des Metamodells wird Verhaltensmodellierung für verschiedenste Aufgaben unterstützt. (5) Ausnahmebehandlung wird systematisch unterstützt. (6) Verschiedene Mechanismen zur Wahrung der Datenintegrität sind enthalten. (7) Das System wurde nach einer Client-Server Architektur entwickelt, deren zentrale Komponente eine "Workbench" ist, die die Repository-Sprache Lua/P ausführt. (8) Steuerungsintegration erlaubt durch verteilte Steuerflüsse das enge Zusammenspiel lose gekoppelter Komponenten. (9) Die koordinierte Zusammenarbeit mehrerer Benutzer wird unterstützt. (10) Die logische Unabhängigkeit von Werkzeugen wird durch das neue Konzept der Dynamic View Connectors erreicht. (11) Allgemeine Dienste sind in der Umgebung einheitlich verfügbar. (12) Das System unterstützt die Weiterentwicklung. All diese Themengebiete sind sehr eng miteinander verzahnt und die Darstellung ist zu großem Teil der gegenseitigen Beeinflussung gewidmet. Es wird gezeigt, wie eine Großzahl der Entwurfsentscheidungen genau aus diesen Beeinflussungen motiviert sind. Die Beschreibung folgt damit dem Konzept der "Concern Interaction Matrix", das hier zur Bewältigung von Komplexität vorgeschlagen wird. Dabei werden Charakteristika einzelner Anliegen und einzelner Zusammenhänge herausgearbeitet. Die Beschreibung PIROLs wird durch die Liste der integrierten Werkzeuge, Ansätze von Laufzeit-Messungen und einige Betrachtungen zur Beurteilung abgerundet. Abschließend werden verschiedene Konzepte rund um den Begriff "Sichten" erörtert. Sichten sind ein zentrale Anliegen von PIROL. Außerdem generalisiert die Diskussion über die mehrdimensionale Darstellung des Hauptteiles. Es werden Begrifflichkeit, Konzepte und Techniken für Sichten in der Softwaretechnik vorgestellt und diskutiert. Dabei wird die Brücke geschlagen von Sichten in objektorientierten Datenbanken, über aspekt-orientierte Softwareentwicklung bis hin zum allgemeinen "Concern Modeling", zu dem die o.g. Methode einen Beitrag leisten soll. Sichten werden dabei als ein zentrales Konzept der Softwaretechnik neben Abstraktion und Zerlegung beurteilt. Dynamic View Connectors sind ein wesentlicher Beitrag von PIROL, durch den Datenbanksichten und aspektorientierte Programmierung zusammengeführt werden. Zwar ist der Sichten-Begriff längst nicht so scharf definiert, wie die Begriffe Abstraktion und Zerlegung, aber gerade die Überlappungen und Diskrepanzen, die durch Sichten abgebildet werden können, machen dies Konzept zu einem starken Strukturierungsprinzip, das zwar einigen Aufwand zur Behandlung von Inkonsistenzen erfordert, aber andererseits hilft, komplexe Systeme handhabbar und wartbar zu gestalten.Software engineering environments are complex systems with special requirements regarding modularity and adaptability. This thesis describes the development of the environment PIROL. The description is structured as a sequence of the following 12 concerns: (1) Meta modeling is the basic concept by which PIROL decomposes its data in accordance to an object-oriented data model. This allows arbitrary tools to access data of other tools in a meaningful way. (2) For persistent storage the model is mapped to the concepts of the repository H-PCTE. (3) The granularity of a meta model determines effectiveness and efficiency of the system. PIROL supports hybrid modeling as a compromise between extremes. (4) By methods of the meta model behavior modeling is supported for a wide range of tasks. (5) Exception handling is supported systematically. (6) Several mechanisms for preserving data integrity are integrated. (7) The system follows a client-server architecture. As its, central component the "workbench" executes the repository language LuaP. (8) Control integration allows for close cooperation of loosely coupled components by means of distributed control flows. (9) The coordinated cooperation of multiple users is supported. (10) Logical independence of tools is achieved by the novel concept of Dynamic View Connectors. (11) Common services are available throughout the environment in a uniform way. (12) The system is prepared for evolution. All these concerns are tightly interlocked. A considerable share of the presentation is dedicated to such mutual interactions. Is is shown, how a large number of design decisions is motivated exactly by these interactions. The description follows the concept of a "Concern Interaction Matrix" which is proposed for managing complexity. Characteristics of concerns and their interactions are elaborated. The description of PIROL is completed by a list of integrated tools, initial performance measurements and evaluation. Finally, several concepts relating to the notion of "views" are discussed. Views are a central concern of PIROL. Furthermore, the discussion generalizes over the multi-dimensional presentation in the body of this thesis. Notions, concepts and techniques for views in software engineering are presented and discussed. This discussion connects views in object-oriented databases, aspect-oriented software development and general "concern modeling", to which the method of "Concern Interaction Matrices" contributes. Views are regarded as a central concept of software engineering at the same level as abstraction and decomposition. Dynamic View Connectors are a significant contribution of PIROL that combines database views and aspect-oriented programming. The notion of "views" is defined with far less precision than abstraction and decomposition, but indeed by the overlap and mismatches, which can be captured by views, this concept is a strong principle for structuring software and information. Effort is needed for handling inconsistencies as they may arise, but after all, views are a suitable means for managing the complexity of systems and for designing these systems for evolution

    Architectural stability of self-adaptive software systems

    Get PDF
    This thesis studies the notion of stability in software engineering with the aim of understanding its dimensions, facets and aspects, as well as characterising it. The thesis further investigates the aspect of behavioural stability at the architectural level, as a property concerned with the architecture's capability in maintaining the achievement of expected quality of service and accommodating runtime changes, in order to delay the architecture drifting and phasing-out as a consequence of the continuous unsuccessful provision of quality requirements. The research aims to provide a systematic and methodological support for analysing, modelling, designing and evaluating architectural stability. The novelty of this research is the consideration of stability during runtime operation, by focusing on the stable provision of quality of service without violations. As the runtime dimension is associated with adaptations, the research investigates stability in the context of self-adaptive software architectures, where runtime stability is challenged by the quality of adaptation, which in turn affects the quality of service. The research evaluation focuses on the effectiveness, scale and accuracy in handling runtime dynamics, using the self-adaptive cloud architectures

    Resource-based Verification for Robust Composition of Aspects

    Get PDF
    Aspect Oriented Software Development has been proposed as a means to improve modularization of software in the presence of crosscutting concerns. Compared to object-oriented or procedural approaches, Aspect Oriented Programming (AOP) has not yet been applied in many industrial applications. In this thesis we investigate the application of AOP within an industrial context and propose a novel solution to the problem of behavioral conflicts between aspects. We report on our experience transferring an aspect-oriented solution to a company called Advanced Semi-conductor Material Lithography (ASML). We investigate the acceptance criteria for AOP in industry, based on two industrial cases studies. We present a process that includes quantification of the benefits of AOP and elicitation of key worries expressed by stakeholders. We conducted a controlled experiment to assess the advantages and disadvantages of an aspect-based approach using a tracing example. Twenty developers from ASML were requested to carry out five maintenance scenarios. This experiment has shown that, in case the tracing concern is implemented using an AOP implementation instead of a procedural language, the development effort is on average 6% reduced while the impact of errors is reduced by 77%, for maintaining code related to tracing. For a subset of the scenarios, the results were statistically significant on a confidence interval of 95%. The so-called aspect interference problem is one of the major concerns in introducing AOP. Aspects can be developed independently and behave correct in isolation. However, due to intended or unintended composition of aspects, undesired behavior can emerge. In this thesis we focus on behavioral conflicts between aspects at shared join points. These are illustrated by a realistic example based on crosscutting concerns from ASML. We present an approach for the detection of behavioral interference that is based on a novel abstraction of the behavior of aspects, using resources and operations. This abstraction enables the expression of behavior in a simple manner that is suitable for automated detection of interference among aspects. The approach employs a set of conflict detection rules that can be used to detect both generic conflicts as well as domain specific conflicts. Our approach is general for AOP languages, its application to one specific AOP language Composition Filters is also illustrated in this thesis. The application to Composition Filters demonstrates how the use of a declarative advice language can be exploited for automated conflict detection. We detail the analysis process and discuss what information is required from the aspect developer to be able perform the analysis. We also discuss when static analysis is insufficient for detecting behavioral conflicts. We present a run time extension aiming at detecting dynamic conflicts. We discuss optimizations for this run time approach, which exploits the static verification results. Finally, we propose three improvements to the Composition Filters model to support automated and manual reasoning even further. The first improvement separates what behavior is executed from when this behavior is executed. Secondly, we introduce atomic filters that can be used to build more complex filters. The semantics of these filters are well defined. Although this approach has clear benefits from an automated reasoning perspective, the introduction of atomic filters results in the definition of numerous filters for specifying more complex behavior. Therefore, we introduce a filter composition language that enables the declarative composition of (atomic) filters, such that composed filter behavior can be reused elsewhere

    First-class features

    Get PDF
    Magdeburg, Univ., Fak. für Informatik, Diss., 2011von Sagar Sunkl
    corecore