192 research outputs found

    Software Product Line

    Get PDF
    The Software Product Line (SPL) is an emerging methodology for developing software products. Currently, there are two hot issues in the SPL: modelling and the analysis of the SPL. Variability modelling techniques have been developed to assist engineers in dealing with the complications of variability management. The principal goal of modelling variability techniques is to configure a successful software product by managing variability in domain-engineering. In other words, a good method for modelling variability is a prerequisite for a successful SPL. On the other hand, analysis of the SPL aids the extraction of useful information from the SPL and provides a control and planning strategy mechanism for engineers or experts. In addition, the analysis of the SPL provides a clear view for users. Moreover, it ensures the accuracy of the SPL. This book presents new techniques for modelling and new methods for SPL analysis

    A meta-language for systems architecting

    Get PDF
    Thesis (Ph. D.)--Massachusetts Institute of Technology, Engineering Systems Division, 2005.This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.Includes bibliographical references (leaves 164-168).(cont.) To demonstrate its practical value in large-scale engineering systems, the research applied OPN to two space exploration programs and one aircraft design problem. In our experiments, OPN was able to significantly change the modeling and architectural reasoning process by automating a number of manual model construction, manipulation, and simulation tasks.The aim of this research is to design an executable meta-language that supports system architects' modeling process by automating certain model construction, manipulation and simulation tasks. This language specifically addresses the needs in systematically communicating architects' intent with a wide range of stakeholders and to organize knowledge from various domains. Our investigation into existing architecting approaches and technologies has pointed out the need to develop a simple and intuitive, yet formal language, that expresses multiple layers of abstractions, provides reflexive knowledge about the models, mechanizes data exchange and manipulation, while allowing integration with legacy infrastructures. A small set of linguistic primitives, stateful objects and processes that transform them were identified as both required and sufficient building blocks of the meta-language, specified as an Object-Process Network (OPN). To demonstrate the applicability of OPN, a software environment has been developed and applied to define meta-models of large-scale complex system architectures such as space transportation systems. OPN provides three supporting aspects of architectural modeling. As a declarative language, OPN provides a diagrammatic formal language to help architects specify the space of architectural options. As an imperative language, OPN automates the process of creating architectural option instances and computes associated performance metrics for those instances. As a simulation language, OPN uses a function-algebraic model to subsume and compose discrete, continuous, and probabilistic events within one unified execution engine.by Hsueh-Yung Benjamin Koo.Ph.D

    A Framework for Specifying Business Rules Based on Logic with a Syntax Close to Natural Language

    Get PDF
    The systematic interaction of software developers with the business domain experts that are usually no software developers is crucial to software system maintenance and creation and has surfaced as the big challenge of modern software engineering. Existing frameworks promoting the typical programming languages with artificial syntax are suitable to be processed by computers but do not cater to domain experts, who are used to documents written in natural language as a means of interaction.Other frameworks that claim to be fully automated, such as those using natural language processing, are too imprecise to handle the typical requirements documents written in heterogeneous natural language flavours. In this thesis, a framework is proposed that can support the specification of business rules that is, on the one hand, understandable for nonprogrammers and on the other hand semantically founded, which enables computer processability. This is achieved by the novel language Adaptive Business Process and Rule Integration Language (APRIL). Specifications in APRIL can be written in a style close to natural language and are thus suitable for humans, which was empirically evaluated with a representative group of test persons. A useful and uncommon feature of APRIL is the ability to define reusable abstract mixfix operators as sentence patterns, that can mimic natural language. The semantic underpinning of the mixfix operators is achieved by customizable atomic formulas, allowing to tailor APRIL to specific domains. Atomic formulas are underpinned by a denotational semantics, which is based on Tempura (executable subset of Interval Temporal Logic (ITL)) to describe behaviour and the Object Constraint Language (OCL) to describe invariants and pre- and postconditions. APRIL statements can be used as the basis for automatically generating test code for software systems. An additional aspect of enhancing the quality of specification documents comes with a novel formal method technique (ISEPI) applicable to behavioural business rules semantically based on Propositional Interval Temporal Logic (PITL) and complying with the newly discovered 2-to-1 property. This work discovers how the ISE subset of ISEPI can be used to express complex behavioural business rules in a more concise and understandable way. The evaluation of ISE is done by an example specification taken from the car industry describing system behaviour, using the tools MONA and PITL2MONA. Finally, a methodology is presented that helps to guide a continuous transformation starting from purely natural language business rule specification to the APRIL specification which can then be transformed to test code. The methodologies, language concepts, algorithms, tools and techniques devised in this work are part of the APRIL-framework

    Synthesizing safe state machines from Esterel

    Full text link

    Engineering Language-Parametric End-User Programming Environments for DSLs

    Get PDF
    Human-computer communication can be achieved through different interfaces such as Graphical User Interfaces (GUIs), Tangible User Interfaces (TUIs), command-line interfaces, and programming languages. In this thesis, we used some of these inter- faces; however, we focused on programming languages which are artificial languages consisting of instructions written by humans and executed by computers. In order to create these programs, humans use specialized tools called programming environments that offer a set of utilities that ease human-computer communication. When creating programs, users must learn the language’s syntax and get acquainted with the pro- gramming environment. Unfortunately, programming languages usually offer a single user interface or syntax, which is not ideal considering different types of users with varied backgrounds and expertise will use it. Given the increasing number of people performing any kind of programming activity, it is important to offer different inter- faces depending on the programming task and the background of the users. However, from the language engineering point of view, offering multiple user interfaces for the same language is expensive, and if we specifically consider Domain-Specific Languages (DSLs), it is even more expensive given their audience and development teams’ size. Therefore, we study how to engineer different user interfaces for DSLs in a practical way.This thesis presents different mechanisms to engineer different language-parametric programming environments for end-users. These mechanisms rely heavily on reusing existing language components for existing languages or helping language engineers define these interfaces for new languages. We mainly studied four technological spaces, namely, Grammarware, Computational Notebooks, Block-based environments, and Projec- tional editors. We present three different language-parametric interfaces for interacting with DSLs, namely computational notebooks, projectional editors, and block-based editors. These interfaces offer different user experiences and rely upon different technological spaces. Different notations are associated with different technological spaces; for in- stance, grammarware is associated with text files, while block-based environments are associated with Blockly and JavaScript files. Therefore, to provide different notations for their languages, we have to "space travel" so that language engineers can select the most appropriate technological space and interface for their target audience. To support this, we defined grammarware as a common starting point to allow traveling to different technological spaces (e.g., computational notebooks space, projectional editors space, or block-based space). Based on this idea, we developed three tools that allowed language engineers to generate different interfaces for their DSLs based on a grammar definition of the language. Our results show that it is possible to generate these different user interfaces and decrease the effort required to create these. However, additional research is required to improve the usability of the generated interfaces and make the generation of these interfaces more flexible so that users’ data can be used as part of the generated interfaces

    Language-Driven Engineering An Interdisciplinary Software Development Paradigm

    Full text link
    We illustrate how purpose-specific, graphical modeling enables application experts with different levels of expertise to collaboratively design and then produce complex applications using their individual, purpose-specific modeling language. Our illustration includes seven graphical Integrated Modeling Environments (IMEs) that support full code generation, as well as four browser-based applications that were modeled and then fully automatically generated and produced using DIME, our most complex graphical IME. While the seven IMEs were chosen to illustrate the types of languages we support with our Language-Driven Engineering (LDE) approach, the four DIME products were chosen to give an impression of the power of our LDE-generated IMEs. In fact, Equinocs, Springer Nature's future editorial system for proceedings, is also being fully automatically generated and then deployed at their Dordrecht site using a deployment pipeline generated with Rig, one of the IMEs presented. Our technology is open source and the products presented are currently in use.Comment: 43 pages, 30 figure

    Application of Model-driven engineering to multi-agent systems: a language to model behaviors of reactive agents

    Get PDF
    Many users of multi-agent systems (MAS) are very commonly disinclined to model and simulate using current MAS platforms. More specifically, modeling the dynamics of a system (in particular the agents' behaviors) is very often a challenge to MAS users. This issue is more often observed in the domain of socio-ecological systems (SES), because SES domain experts are rarely programmers. Indeed, the majority of MAS platforms were not conceived taking into consideration domain-experts who are non-programmers. Most current MAS tools are not dedicated to SES, or nor do they possess an easily understandable formalism to represent the behaviors of agents. Moreover, because it is platform-dependent, a model realized in a given MAS platform cannot be properly used on another platform due to incompatibility between MAS platforms. To overcome these limitations, we propose a domain-specific language (DSL) to describe the behaviors of reactive agents, regardless of the MAS platform used for simulation. To achieve this result, we used model-driven engineering (MDE), an approach that provides tools to develop DSLs from a meta-model (abstract syntax), textual editors with syntax highlighting (for the concrete syntax) and code generation capabilities (for source-code generation of a model). As a result, we implemented a language and a textual editor that allow SES domain experts to describe behaviors in three different ways that are close to their natural expression: as equations when they are familiar with these, as a sequence of activities close to natural language or as an activity diagram to represent decisions and a sequence of behaviors using a graphic formalism. To demonstrate interoperability, we also developed code generators targeting two different MAS platforms (Cormas and Netlogo). We tested the code generators by implementing two SES models with the developed DSL. The generated code was targeted to both MAS platforms (Cormas and Netlogo), and successfully simulated in one of them. We conclude that the MDE approach provides adequate tools to develop DSL and code generators to facilitate MAS modeling and simulation by non-programmers. Concerning the DSL developed, although the behavioral aspect of MAS simulation is part of the complexity of modeling in MAS, there are still other essential aspects of model and simulation of MAS that are yet to be explored, such as model initialization and points of view on the model simulated worl

    Generating Multiple User Interfaces for Multiple Application Domains

    Get PDF
    This Ph.D. dissertation presents a classification scheme for User Interface Development Environments (UIDEs) based on the multiplicity of user interfaces and application domains that can be supported. The SISD, SIMD and MISD [S= Single, I= user Interface(s), M= Multiple, D= application Domain(s)] generator classes encompass most of the UIDEs described in the literature. A major goal of this research is to allow any user to develop a personalized interface for any interactive application, that is, the development of an MIMD UIDE. Fundamental to the development of such a UIDE is the complete separation of the user interface component from the application component. This separation necessitates devising less tightly coupled models of the application and user interface than have been reported to date. The main features of the MIMD UIDE model are as follows. [1] Interactive applications are modeled as editors providing a set of functions that manipulate 2-dimensional graphical objects. [2] Interactive data structures are introduced for maintaining and manipulating both the internal and external representation(s) of application information as a single unit. These external representations form the basis for presenting internal information to the user. [3] Since interaction with the user must be the sole responsibility of the user interface component, function interaction is modeled as follows. Application functions are modeled as a set of services. Each service processes a (set of) parameter(s) independently. For each service in the application, a corresponding service Interface object is defined in the user interface component. The service interface object interacts with the user to specify the required (set of) parameter(s), calls the associated service within the application, and displays the result of the service to the user. Using the above model, the user interface component is modeled to allow personalized specifications at all levels; including the internal entities of the interactive system, the characteristics of the display of information, and the interaction tasks, techniques and devices used for parameter specification
    • …
    corecore