13 research outputs found

    Polyglot software development

    Get PDF
    The languages we choose to design solutions influence the way we think about the problem, the words we use in discussing it with colleagues, the processes we adopt in developing the software which should solve that problem. Therefore we should strive to use the best language possible for depicting each facet of the system. To do that we have to solve two challenges: i) first of all to understand merits and issues brought by the languages we could adopt and their long reaching effects on the organizations, ii) combine them wisely, trying to reduce the overhead due to their assembling. In the first part of this dissertation we study the adoption of modeling and domain specific languages. On the basis of an industrial survey we individuate a list of benefits attainable through these languages, how frequently they can be reached and which techniques permit to improve the chances to obtain a particular benefit. In the same way we study also the common problems which either prevent or hinder the adoption of these languages. We then analyze the processes through which these languages are employed, studying the relative frequency of the usage of the different techniques and the factors influencing it. Finally we present two case-studies performed in a small and in a very large company, with the intent of presenting the peculiarities of the adoption in different contexts. As consequence of adopting specialized languages, many of them have to be employed to represent the complete solution. Therefore in the second part of the thesis we focus on the integration of these languages. Being this topic really new we performed preliminary studies to first understand the phenomenon, studying the different ways through which languages interact and their effects on defectivity. Later we present some prototypal solutions for i) the automatic spotting of cross-language relations, ii) the design of language integration tool support in language workbenches through the exploitation of common meta-metamodeling. This thesis wants to offer a contribution towards the productive adoption of multiple, specific languages in the same software development project, hence polyglot software development. From this approach we should be able to reduce the complexity due to misrepresentation of solutions, offer a better facilities to think about problems and, finally to be able to solve more difficult problems with our limited brain resources. Our results consists in a better understanding of MDD and DSLs adoption in companies. From that we can derive guidelines for practitioners, lesson learned for deploying in companies, depending on the size of the company, and implications for other actors involved in the process: company management and universities. Regarding cross-language relations our contribution is an initial definition of the problem, supported by some empirical evidence to sustain its importance. The solutions we propose are not yet mature but we believe that from them future work can stem

    Classification of Language Interactions

    Get PDF
    Context: the presence of several languages interacting each other within the same project is an almost universal feature in software development. Earlier work shows that this interaction might be source of problems. Goal: we aim at identifying and characterizing the cross-language interactions at semantic level.% among artifacts written in different languages. Method: we took the commits of an open source project and analyzed the cross-language pairs of files occurring in the same commit to identify possible semantic interactions. We both defined a taxonomy and applied it. Result: we identify 6 categories of semantic interactions. The most common category is the one based on shared ids, the next is when an artifact provides a description of another artifact. Conclusions: the deeper knowledge of cross-language interactions represents the basis for implementing a tool supporting the management of this kind of interactions and the detection of related problems at compile time

    Language Interaction and Quality Issues: An Exploratory Study

    Get PDF
    Most software systems are complex and often composed of a large number of artifacts. To realize each different artifacts specific techniques are used resorting on different abstractions, languages and tools. Successful composition of different elements requires coherence among them. Unfortunately constraints between artifacts written in different languages are usually not formally expressed neither checked by supporting tools; as consequence they can be a source of problems. In this paper we explore the role of the relations between artifacts written in different languages by means of a case study on the Hadoop open source project. We present the problem introducing the related terminology, we quantify the phenomenon and investigate the relation with defect pronenes

    A model-based approach to language integration

    Get PDF
    The interactions of several languages within a soft- ware system pose a number of problems. There is several anecdotal and empirical evidence supporting such concerns. This paper presents a solution to achieve proper language integration in the context of language workbenches and with limited effort. A simple example is presented to show how cross- language constraints can be addressed and the quality of the support attainable, which covers error-checking and refactoring. A research agenda is then presented, to support future work in the area of language integration, taking advantage of modern language workbenches features

    Preliminary findings from a survey on the MD state of the practice

    Get PDF
    In the context of an Italian research project, this paper reports on an on-line survey, performed with 155 software professionals, with the aim of investigating about their opinions and experiences in modeling during software development and Model-driven engineering usage. The survey focused also on used modeling languages, processes and tools. A preliminary analysis of the results confirmed that Model-driven engineering, and more in general software modeling, are very relevant phenomena. Approximately 68% of the sample use models during software development. Among then, 44% generate code starting from models and 16% execute them directly. The preferred language for modeling is UML but DSLs are used as wel

    Linked Data approach for selection process automation in Systematic Reviews

    Get PDF
    Background: a systematic review identifies, evaluates and synthesizes the available literature on a given topic using scientific and repeatable methodologies. The significant workload required and the subjectivity bias could affect results. Aim: semi-automate the selection process to reduce the amount of manual work needed and the consequent subjectivity bias. Method: extend and enrich the selection of primary studies using the existing technologies in the field of Linked Data and text mining. We define formally the selection process and we also develop a prototype that implements it. Finally, we conduct a case study that simulates the selection process of a systematic literature published in literature. Results: the process presented in this paper could reduce the work load of 20% with respect to the work load needed in the fully manually selection, with a recall of 100%. Conclusions: the extraction of knowledge from scientific studies through Linked Data and text mining techniques could be used in the selection phase of the systematic review process to reduce the work load and subjectivity bia

    MDD adoption in a small company: risk management and stakeholders' acceptance

    No full text
    This article presents the knowledge and experience acquired trough the process of establishing MDD practices within a small Italian company. Special attention has been devoted to project constraints, perceived risks, and relative mitigation strategies. Moreover the article evaluates how the introduction of the MDD approach was received by different stakeholders. In particular a structured questionnaire was the instrument used to reveal and collect the perceptions by different roles involved in the MDD adoption process. The case study considered development of applications conforming to a prescriptive architectural framework, which addresses a complex multi-tier architecture; the solution aims at describing component composition while avoiding both repeating tasks and writing awkward configurations

    Applying MDA to complex multi-tier enterprise architectures

    No full text
    This work presents a few considerations on a project aimed at addressing the complexity of multi-layer enterprise applications. The solution encompassed the design of a complete model-driven architecture (MDA) including all the tools needed to guarantee a productive process, with the additional constraint of reaching this goal with a low development-effort. During the project we collected useful knowledge to mitigate the main risks connected to the MDA approach in the peculiar context of a small compan

    Requirements as First-Class Citizens: Integrating Requirements closely with Implementation Artifacts

    No full text
    Abstract. Requirements often play second fiddle in software development projects. The tools for managing requirements are only loosely integrated with the tools used for implementing the system. Furthermore, while implementation tools are based on a rich syntax and well-understood semantics (the programing language itself), requirements tools are often only aware of weakly structured text. This leads to accidental complexity in integrating requirements with each other and with implementation artifacts. In this paper we describe an approach based on language engineering technologies that results in integrated development environments where both requirements and the code are treated as first class entities. Parts of requirements can be used directly as the implementation, and they are managed with the same tools that are used for the implementation. The approach is illustrated by an extension of the mbeddr system, a comprehensive IDE for embedded software development, with functionality for managing requirement
    corecore