817 research outputs found

    <i>Trace++</i>: A Traceability Approach for Agile Software Engineering

    Get PDF
    Agile methodologies have been introduced as an alternative to traditional software engineering methodologies. However, despite the advantages of using agile methodologies, the transition between traditional and agile methodologies is not an easy task. There are several problems associated with the use of agile methodologies. Examples of these problems are related to (i) lack of metrics to measure the amount of rework that occurs per sprint, (ii) interruption of a project after several iterations, (iii) changes in the requirements, (iv) lack of documentation, and (v) lack of management control. In this paper we present Trace++, a traceability technique that extends traditional traceability relationships with extra information in order to support the transition between traditional and agile software development. The use of Trace++ has been evaluated in two real projects of different software development companies to measure the benefits of using Trace++ to support agile software development

    Systematic mapping of software engineering management with an agile approach

    Get PDF
    El enfoque ágil ha generado una amplia variedad de estrategias para administrar con éxito diversos proyectos de software en todo el mundo. Además, podemos asegurar que los proyectos de software se han beneficiado de los métodos ágiles ya conocidos. En este sentido, este artículo busca demostrar cómo se aplica el enfoque ágil en las áreas de la gestión en la ingeniería del Software. Para ello, este estudio realiza un mapeo sistemático para identificar las principales tendencias en la gestión de la ingeniería de software con un enfoque ágil. Se han identificado un total de 1137 artículos, de los cuales 165 son relevantes para los fines de este estudio, estos indican que la entrega temprana de valor, un principio clave de la agilidad, sigue siendo la principal tendencia para el uso de métodos ágiles. Sin embargo, también existen fuertes tendencias enfocadas en puntos clave de la gestión en ingeniería de software, como optimizar la gestión de calidad, optimizar la especificación de requisitos, optimizar la gestión de riesgos y mejorar la comunicación y coordinación del equipo, estos resultados permitirán generar nuevas líneas de investigación para cada punto clave de la gestión en la ingeniería del software impactado por el enfoque ágil.The agile approach has generated a wide variety of strategies to successfully manage various software projects worldwide. In addition, we can ensure that software projects have benefited from the already known agile methods. In this sense, this article seeks to demonstrate how the agile approach is applied in Software engineering management areas. To do this, this study performs a systematic mapping to identify the main trends in software engineering management with an agile approach. A total of 1137 articles have identified, of which 165 are relevant for the purposes of this study, these indicate that early value delivery, a key principle of agility, continues to be the main trend for the use of agile methods. However, there are also strong trends focused on key points of management in software engineering, such as optimize quality management, optimize requirements specification, optimize risk management, and improve team communication and coordination, these results will allow generating new lines of research for each key point of management in software engineering impacted by the agile approach

    Systematic mapping of software engineering management with an agile approach

    Get PDF
    El enfoque ágil ha generado una amplia variedad de estrategias para administrar con éxito diversos proyectos de software en todo el mundo. Además, podemos asegurar que los proyectos de software se han beneficiado de los métodos ágiles ya conocidos. En este sentido, este artículo busca demostrar cómo se aplica el enfoque ágil en las áreas de la gestión en la ingeniería del Software. Para ello, este estudio realiza un mapeo sistemático para identificar las principales tendencias en la gestión de la ingeniería de software con un enfoque ágil. Se han identificado un total de 1137 artículos, de los cuales 165 son relevantes para los fines de este estudio, estos indican que la entrega temprana de valor, un principio clave de la agilidad, sigue siendo la principal tendencia para el uso de métodos ágiles. Sin embargo, también existen fuertes tendencias enfocadas en puntos clave de la gestión en ingeniería de software, como optimizar la gestión de calidad, optimizar la especificación de requisitos, optimizar la gestión de riesgos y mejorar la comunicación y coordinación del equipo, estos resultados permitirán generar nuevas líneas de investigación para cada punto clave de la gestión en la ingeniería del software impactado por el enfoque ágil.The agile approach has generated a wide variety of strategies to successfully manage various software projects worldwide. In addition, we can ensure that software projects have benefited from the already known agile methods. In this sense, this article seeks to demonstrate how the agile approach is applied in Software engineering management areas. To do this, this study performs a systematic mapping to identify the main trends in software engineering management with an agile approach. A total of 1137 articles have identified, of which 165 are relevant for the purposes of this study, these indicate that early value delivery, a key principle of agility, continues to be the main trend for the use of agile methods. However, there are also strong trends focused on key points of management in software engineering, such as optimize quality management, optimize requirements specification, optimize risk management, and improve team communication and coordination, these results will allow generating new lines of research for each key point of management in software engineering impacted by the agile approach

    Systematic mapping of software engineering management with an agile approach

    Get PDF
    El enfoque ágil ha generado una amplia variedad de estrategias para administrar con éxito diversos proyectos de software en todo el mundo. Además, podemos asegurar que los proyectos de software se han beneficiado de los métodos ágiles ya conocidos. En este sentido, este artículo busca demostrar cómo se aplica el enfoque ágil en las áreas de la gestión en la ingeniería del Software. Para ello, este estudio realiza un mapeo sistemático para identificar las principales tendencias en la gestión de la ingeniería de software con un enfoque ágil. Se han identificado un total de 1137 artículos, de los cuales 165 son relevantes para los fines de este estudio, estos indican que la entrega temprana de valor, un principio clave de la agilidad, sigue siendo la principal tendencia para el uso de métodos ágiles. Sin embargo, también existen fuertes tendencias enfocadas en puntos clave de la gestión en ingeniería de software, como optimizar la gestión de calidad, optimizar la especificación de requisitos, optimizar la gestión de riesgos y mejorar la comunicación y coordinación del equipo, estos resultados permitirán generar nuevas líneas de investigación para cada punto clave de la gestión en la ingeniería del software impactado por el enfoque ágil.The agile approach has generated a wide variety of strategies to successfully manage various software projects worldwide. In addition, we can ensure that software projects have benefited from the already known agile methods. In this sense, this article seeks to demonstrate how the agile approach is applied in Software engineering management areas. To do this, this study performs a systematic mapping to identify the main trends in software engineering management with an agile approach. A total of 1137 articles have identified, of which 165 are relevant for the purposes of this study, these indicate that early value delivery, a key principle of agility, continues to be the main trend for the use of agile methods. However, there are also strong trends focused on key points of management in software engineering, such as optimize quality management, optimize requirements specification, optimize risk management, and improve team communication and coordination, these results will allow generating new lines of research for each key point of management in software engineering impacted by the agile approach

    Supporting multiple stakeholders in agile development

    Get PDF
    Agile software development practices require several stakeholders with different kinds of expertise to collaborate while specifying requirements, designing, and modelling software, and verifying whether developers have implemented requirements correctly. We studied 112 requirements engineering (RE) tools from academia and the features of 13 actively maintained behavior-driven development (BDD) tools, which support various stakeholders in specifying and verifying the application behavior. Overall, we found that there is a growing tool specialization targeted towards a specific type of stakeholders. Particularly with BDD tools, we found no adequate support for non-technical stakeholders-- they are required to use an integrated development environment (IDE)-- which is not adapted to suit their expertise. We argue that employing separate tools for requirements specification, modelling, implementation, and verification is counterproductive for agile development. Such an approach makes it difficult to manage associated artifacts and support rapid implementation and feedback loops. To avoid dispersion of requirements and other software-related artifacts among separate tools, establish traceability between requirements and the application source code, and streamline a collaborative software development workflow, we propose to adapt an IDE as an agile development platform. With our approach, we provide in-IDE graphical interfaces to support non-technical stakeholders in creating and maintaining requirements concurrently with the implementation. With such graphical interfaces, we also guide non-technical stakeholders through the object-oriented design process and support them in verifying the modelled behavior. This approach has two advantages: (i) compared with employing separate tools, creating, and maintaining requirements directly within a development platform eliminates the necessity to recover trace links, and (ii) various natively created artifacts can be composed into stakeholder-specific interactive live in-IDE documentation. These advantages have a direct impact on how various stakeholders collaborate with each other, and allow for rapid feedback, which is much desired in agile practices. We exemplify our approach using the Glamorous Toolkit IDE. Moreover, the discussed building blocks can be implemented in any IDE with a rich-enough graphical engine and reflective capabilities

    Supporting Multiple Stakeholders in Agile Development

    Get PDF
    Agile software development practices require several stakeholders with different kinds of expertise to collaborate while specifying requirements, designing and modeling software, and verifying whether developers have implemented requirements correctly. We studied 112 requirements engineering (RE) tools from academia and the features of 13 actively maintained behavior-driven development (BDD) tools, which support various stakeholders in specifying and verifying the application behavior. Overall, we found that there is a growing tool specialization targeted towards a specific type of stakeholders. Particularly with BDD tools, we found no adequate support for non-technical stakeholders —- they are required to use an integrated development environment (IDE) —- which is not adapted to suit their expertise. We argue that employing separate tools for requirements specification, modeling, implementation, and verification is counter-productive for agile development. Such an approach makes it difficult to manage associated artifacts and support rapid implementation and feedback loops. To avoid dispersion of requirements and other software-related artifacts among separate tools, establish traceability between requirements and the application source code, and streamline a collaborative software development workflow, we propose to adapt an IDE as an agile development platform. With our approach, we provide in-IDE graphical interfaces to support non-technical stakeholders in creating and maintaining requirements concurrently with the implementation. With such graphical interfaces, we also guide non-technical stakeholders through the object-oriented design process and support them in verifying the modeled behavior. This approach has two advantages: (i) compared with employing separate tools, creating and maintaining requirements directly within a development platform eliminates the necessity to recover trace links, and (ii) various natively created artifacts can be composed into stakeholder-specific interactive live in-IDE documentation. These advantages have a direct impact on how various stakeholders collaborate with each other, and allow for rapid feedback, which is much desired in agile practices. We exemplify our approach using the Glamorous Toolkit IDE. Moreover, the discussed building blocks can be implemented in any IDE with a rich-enough graphical engine and reflective capabilities

    A mapping study on documentation in Continuous Software Development

    Get PDF
    Context: With an increase in Agile, Lean, and DevOps software methodologies over the last years (collectively referred to as Continuous Software Development (CSD)), we have observed that documentation is often poor. Objective: This work aims at collecting studies on documentation challenges, documentation practices, and tools that can support documentation in CSD. Method: A systematic mapping study was conducted to identify and analyze research on documentation in CSD, covering publications between 2001 and 2019. Results: A total of 63 studies were selected. We found 40 studies related to documentation practices and challenges, and 23 studies related to tools used in CSD. The challenges include: informal documentation is hard to understand, documentation is considered as waste, productivity is measured by working software only, documentation is out-of-sync with the software and there is a short-term focus. The practices include: non-written and informal communication, the usage of development artifacts for documentation, and the use of architecture frameworks. We also made an inventory of numerous tools that can be used for documentation purposes in CSD. Overall, we recommend the usage of executable documentation, modern tools and technologies to retrieve information and transform it into documentation, and the practice of minimal documentation upfront combined with detailed design for knowledge transfer afterwards. Conclusion: It is of paramount importance to increase the quantity and quality of documentation in CSD. While this remains challenging, practitioners will benefit from applying the identified practices and tools in order to mitigate the stated challenges

    HybridMDSD: Multi-Domain Engineering with Model-Driven Software Development using Ontological Foundations

    Get PDF
    Software development is a complex task. Executable applications comprise a mutlitude of diverse components that are developed with various frameworks, libraries, or communication platforms. The technical complexity in development retains resources, hampers efficient problem solving, and thus increases the overall cost of software production. Another significant challenge in market-driven software engineering is the variety of customer needs. It necessitates a maximum of flexibility in software implementations to facilitate the deployment of different products that are based on one single core. To reduce technical complexity, the paradigm of Model-Driven Software Development (MDSD) facilitates the abstract specification of software based on modeling languages. Corresponding models are used to generate actual programming code without the need for creating manually written, error-prone assets. Modeling languages that are tailored towards a particular domain are called domain-specific languages (DSLs). Domain-specific modeling (DSM) approximates technical solutions with intentional problems and fosters the unfolding of specialized expertise. To cope with feature diversity in applications, the Software Product Line Engineering (SPLE) community provides means for the management of variability in software products, such as feature models and appropriate tools for mapping features to implementation assets. Model-driven development, domain-specific modeling, and the dedicated management of variability in SPLE are vital for the success of software enterprises. Yet, these paradigms exist in isolation and need to be integrated in order to exhaust the advantages of every single approach. In this thesis, we propose a way to do so. We introduce the paradigm of Multi-Domain Engineering (MDE) which means model-driven development with multiple domain-specific languages in variability-intensive scenarios. MDE strongly emphasize the advantages of MDSD with multiple DSLs as a neccessity for efficiency in software development and treats the paradigm of SPLE as indispensable means to achieve a maximum degree of reuse and flexibility. We present HybridMDSD as our solution approach to implement the MDE paradigm. The core idea of HybidMDSD is to capture the semantics of particular DSLs based on properly defined semantics for software models contained in a central upper ontology. Then, the resulting semantic foundation can be used to establish references between arbitrary domain-specific models (DSMs) and sophisticated instance level reasoning ensures integrity and allows to handle partiucular change adaptation scenarios. Moreover, we present an approach to automatically generate composition code that integrates generated assets from separate DSLs. All necessary development tasks are arranged in a comprehensive development process. Finally, we validate the introduced approach with a profound prototypical implementation and an industrial-scale case study.Softwareentwicklung ist komplex: ausführbare Anwendungen beinhalten und vereinen eine Vielzahl an Komponenten, die mit unterschiedlichen Frameworks, Bibliotheken oder Kommunikationsplattformen entwickelt werden. Die technische Komplexität in der Entwicklung bindet Ressourcen, verhindert effiziente Problemlösung und führt zu insgesamt hohen Kosten bei der Produktion von Software. Zusätzliche Herausforderungen entstehen durch die Vielfalt und Unterschiedlichkeit an Kundenwünschen, die der Entwicklung ein hohes Maß an Flexibilität in Software-Implementierungen abverlangen und die Auslieferung verschiedener Produkte auf Grundlage einer Basis-Implementierung nötig machen. Zur Reduktion der technischen Komplexität bietet sich das Paradigma der modellgetriebenen Softwareentwicklung (MDSD) an. Software-Spezifikationen in Form abstrakter Modelle werden hier verwendet um Programmcode zu generieren, was die fehleranfällige, manuelle Programmierung ähnlicher Komponenten überflüssig macht. Modellierungssprachen, die auf eine bestimmte Problemdomäne zugeschnitten sind, nennt man domänenspezifische Sprachen (DSLs). Domänenspezifische Modellierung (DSM) vereint technische Lösungen mit intentionalen Problemen und ermöglicht die Entfaltung spezialisierter Expertise. Um der Funktionsvielfalt in Software Herr zu werden, bietet der Forschungszweig der Softwareproduktlinienentwicklung (SPLE) verschiedene Mittel zur Verwaltung von Variabilität in Software-Produkten an. Hierzu zählen Feature-Modelle sowie passende Werkzeuge, um Features auf Implementierungsbestandteile abzubilden. Modellgetriebene Entwicklung, domänenspezifische Modellierung und eine spezielle Handhabung von Variabilität in Softwareproduktlinien sind von entscheidender Bedeutung für den Erfolg von Softwarefirmen. Zur Zeit bestehen diese Paradigmen losgelöst voneinander und müssen integriert werden, damit die Vorteile jedes einzelnen für die Gesamtheit der Softwareentwicklung entfaltet werden können. In dieser Arbeit wird ein Ansatz vorgestellt, der dies ermöglicht. Es wird das Multi-Domain Engineering Paradigma (MDE) eingeführt, welches die modellgetriebene Softwareentwicklung mit mehreren domänenspezifischen Sprachen in variabilitätszentrierten Szenarien beschreibt. MDE stellt die Vorteile modellgetriebener Entwicklung mit mehreren DSLs als eine Notwendigkeit für Effizienz in der Entwicklung heraus und betrachtet das SPLE-Paradigma als unabdingbares Mittel um ein Maximum an Wiederverwendbarkeit und Flexibilität zu erzielen. In der Arbeit wird ein Ansatz zur Implementierung des MDE-Paradigmas, mit dem Namen HybridMDSD, vorgestellt

    Software diversity: state of the art and perspectives

    Get PDF
    International audienceDiversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. Diversity has an impact on all phases of the software development process. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. This introductory article to the special section "Software Diversity--Modeling, Analysis and Evolution" provides an overview of the current state of the art in diverse systems development and discusses challenges and potential solutions. The article covers requirements analysis, design, implementation, verification and validation, maintenance and evolution as well as organizational aspects. It also provides an overview of the articles which are part of this special section and addresses particular issues of diverse systems development
    corecore