scholarly journals Defining DSL design principles for enhancing the requirements elicitation process

2012 ◽  
Vol 22 ◽  
pp. 126-133
Author(s):  
J. Guadalupe Ramos-Díaz ◽  
Isela Navarro ◽  
Josep Silva ◽  
Gustavo Arroyo

Requirements elicitation is concerned with learning and understanding the needs of users w.r.t. a new software development. Frequently the methods employed for requirements elicitation are adapted from areas like social sciences that do not include executable (prototype based on) feedback. As a consequence, it is relatively common to discover that the first release does not fit the requirements defined at the beginning of the project. Using domain-specific languages (DSLs) as an auxiliary tool for requirements elicitation is a commonly well accepted idea. Unfortunately, there are few works in the literature devoted to the definition of design principles for DSLs to be experienced in the frameworks for DSL developing such as ANTLR, Ruby, and Curry. We propose design principles for the DSL development (regardless of paradigm) which are sufficient to model the domain in a requirements phase. Further more we enunciate a new profile for the requirements analyst and a set of elicitation steps. The use of DSLs not only giveus an immediate feedback with the stake holders; it also allows us to produce part of the real code.

Author(s):  
Sebastian Günther

Internal DSLs are a special kind of DSLs that use an existing programming language as their host. To build them successfully, knowledge regarding how to modify the host language is essential. In this chapter, the author contributes six DSL design principles and 21 DSL design patterns. DSL Design principles provide guidelines that identify specific design goals to shape the syntax and semantic of a DSL. DSL design patterns express proven knowledge about recurring DSL design challenges, their solution, and their connection to each other – forming a rich vocabulary that developers can use to explain a DSL design and share their knowledge. The chapter presents design patterns grouped into foundation patterns (which provide the skeleton of the DSL consisting of objects and methods), notation patterns (which address syntactic variations of host language expressions), and abstraction patterns (which provide the domain-specific abstractions as extensions or even modifications of the host language semantics).


2014 ◽  
pp. 297-323
Author(s):  
Paolo Arcaini ◽  
Angelo Gargantini ◽  
Elvinia Riccobene ◽  
Patrizia Scandurra

Domain Specific Languages (DSLs) are often defined in terms of metamodels capturing the abstract syntax of the language. For a complete definition of a DSL, both syntactic and semantic aspects of the language have to be specified. Metamodeling environments support syntactic definition issues, but they do not provide any help in defining the semantics of metamodels, which is usually given in natural language. In this chapter, the authors present an approach to formally define the semantics of metamodel-based languages. It is based on a translational technique that hooks to the language metamodel its precise and executable semantics expressed in terms of the Abstract State Machine formal method. The chapter also shows how different techniques can be used for formal analysis of models (i.e., instance of the language metamodel). The authors exemplify the use of their approach on a language for Petri nets.


2014 ◽  
pp. 352-410
Author(s):  
Sebastian Günther

Internal DSLs are a special kind of DSLs that use an existing programming language as their host. To build them successfully, knowledge regarding how to modify the host language is essential. In this chapter, the author contributes six DSL design principles and 21 DSL design patterns. DSL Design principles provide guidelines that identify specific design goals to shape the syntax and semantic of a DSL. DSL design patterns express proven knowledge about recurring DSL design challenges, their solution, and their connection to each other – forming a rich vocabulary that developers can use to explain a DSL design and share their knowledge. The chapter presents design patterns grouped into foundation patterns (which provide the skeleton of the DSL consisting of objects and methods), notation patterns (which address syntactic variations of host language expressions), and abstraction patterns (which provide the domain-specific abstractions as extensions or even modifications of the host language semantics).


Author(s):  
Sabrina Ahmad ◽  
Noor Azilah Muda ◽  
Maslita Abd. Aziz ◽  
Emaliana Kasmuri

Requirements elicitation is accepted as one of the most crucial stages in software engineering, as it addresses the critical problem of designing the right software for the stakeholder. It is seldom technical difficulties that cause problems in the process of requirements elicitation but rather human factors, especially communication. This chapter presents the requirements elicitation experience with the industry and the lessons learnt throughout the process. It highlights the requirements elicitation best practices and alternative options during the process. It also discusses the issues concerning communication disparity between the stakeholders, which may affect the software development project as a whole. The outcome of the requirements elicitation process experience is reported and analysed for future improvement.


2018 ◽  
Vol 18 (4) ◽  
pp. 2507-2530 ◽  
Author(s):  
Markus Voelter ◽  
Bernd Kolb ◽  
Klaus Birken ◽  
Federico Tomassetti ◽  
Patrick Alff ◽  
...  

2008 ◽  
Vol 11 (1) ◽  
Author(s):  
Gabriela N Aranda ◽  
Aurora Vizcaíno ◽  
Alejandra Cechich ◽  
Mario Piattini

Many challenges arise in global software development projects, most of which are related to the lack of face-to-face communication and people’s need to feel comfortable with the technology that they use. In this paper we introduce a methodology to detect the problems which may occur during the global requirement elicitation process and propose solutions to reduce them.


Author(s):  
Kostas Kolomvatsos ◽  
George Valkanas ◽  
Petros Patelis ◽  
Stathes Hadjiefthymiades

An important challenge in software development is to have efficient tools for creating, debugging, and testing software components developed for specific business domains. This is more imperative if it is considered that a large number of users are not familiar with popular programming languages. Hence, Application Creation Environments (ACEs) based on specific Domain-Specific Languages (DSLs) can provide an efficient way for creating applications for a specific domain of interest. The provided ACEs should incorporate all the functionality needed by developers to build, debug, and test applications. In this chapter, the authors present their contribution in this domain based on the experience of the IPAC system. The IPAC system provides a middleware and an ACE for developing and using intelligent, context-aware services in mobile nodes. The chapter fully describes the ACE, which is a key part of the overall architecture. The ACE provides two editors (textual, visual), a wide functionality spectrum, as well as a debugger and an application emulator. The ACE is based on an Application Description Language (ADL) developed for IPAC. The ADL provides elements for the description of an application workflow for embedded systems. Through such functionality, developers are capable of efficiently creating and testing applications that will be deployed on mobile nodes.


Sign in / Sign up

Export Citation Format

Share Document