4,241 research outputs found

    An agile model-driven method for involving end-users in DSL development

    Full text link
    [EN] Domain-specific languages (DSLs) are considered to be a powerful tool for enhancing the efficiency of software developers and bring software development closer to end-users from complex domains. However, the successful development of a DSL for a complex domain is a challenge from the technical point of view and because end-user acceptance is key. Despite this fact, the relevant role of end-users during DSL development has traditionally been neglected. Normally, end-users participate at the beginning to communicate their preferences but they do not participate again until the DSL is completely implemented. As a consequence, if the language to develop reaches a complex domain, the chances that errors appear in the DSL are higher and solving them could involve large modifications that could have been avoided. As a solution, in this PhD thesis, we propose an agile, model-driven method to involve end-users in DSL development. This thesis researches if the combination of best practices from the model-driven development (MDD) discipline and best practices from agile methods is a suitable approach to involve end-users in the DSL development process. In order to validate the proposal, we have selected a highly complex domain such as the genetic analysis domain and we have collaborated with geneticists from three organizations. The proposed method has been used to involve these geneticists in the development of a DSL for the creation of genetic analysis pipelines. Simultaneously, we have carried out an empirical experiment to validate whether end-users and developers were satisfied with the proposal.[ES] Los lenguajes específicos de dominio (DSLs) son una herramienta muy potente para mejorar la eficiencia de los desarrolladores de software, así como para acercar el desarrollo software a usuarios sin conocimientos informáticos. Sin embargo, su principal problema es que desarrollar un DSL es complejo; no sólo desde el punto de vista técnico, sino especialmente porque la aceptación de dicho lenguaje por parte de los usuarios finales es clave. A pesar de este hecho, los métodos tradicionales de desarrollo de DSLs no enfatizan el importante rol de los usuarios finales durante el desarrollo. Normalmente, los usuarios participan al inicio para comunicar sus preferencias, pero no vuelven a participar hasta que el DSL está completamente desarrollado. Si el lenguaje a desarrollar aborda un dominio complejo, la posibilidad de que existan errores en el DSL es mayor, y su solución podría conllevar a modificaciones de gran calibre que podrían haberse evitado. Como solución, en esta tesis proponemos un método de desarrollo de DSLs, ágil, y dirigido por modelos que involucra a los usuarios finales. Esta tesis investiga si la combinación de buenas prácticas del desarrollo dirigido por modelos (MDD) y de buenas prácticas de métodos ágiles es adecuada para involucrar a los usuarios finales en el desarrollo de DSLs. Para validar la idoneidad de la propuesta, se ha seleccionado un dominio complejo como el de los análisis genéticos y se ha colaborado con un conjunto de genetistas procedentes de tres organizaciones. El método propuesto se ha utilizado para involucrar a dichos genetistas en el desarrollo de un DSL para la creación de pipelines para el análisis genético. Conjuntamente, se ha llevado a cabo un experimento empírico para validar si los usuarios finales y los desarrolladores están satisfechos con la propuesta de la presente tesis. En resumen, las contribuciones principales de esta tesis doctoral son el diseño e implementación de un método innovador, ágil y dirigido por modelos para involucrar a los usuarios finales en el desarrollo de DSLs, así como la validación de dicha propuesta en un entorno industrial en un desarrollo real de un DSL.[CA] Els llenguatges específics de domini (DSLs) son una ferramenta molt potent per a millorar l'eficiència dels desenvolupadors de programari, així com per a apropar el desenvolupament de programari a usuaris sense coneixements informàtics. El problema es que desenvolupar un DSL es complex, no sols des del punt de vista tècnic, sinó especialment perquè l'acceptació de dit llenguatge per part dels usuaris finals es clau. Malgrat aquest fet, els mètodes tradicionals de desenvolupament de DSLs no emfatitzen l'important rol dels usuaris finals durant el desenvolupament. Normalment, els usuaris participen a l'inici per a comunicar les seues preferències, però no tornen a participar fins que el DSL està completament desenvolupat. Si el llenguatge a desenvolupar aborda un domini complex, la possibilitat de que hi hagen errors en el DSL es major i solucionar-los podria implicar modificacions de gran calibre que podrien haver-se evitat. Com a solució, en aquesta tesis proposem un mètode de desenvolupament de DSLs, àgil i dirigit per models que involucra als usuaris finals. Aquesta tesis investiga si la combinació de bones pràctiques del desenvolupament dirigit per models (MDD) i de bones pràctiques de mètodes àgils es adequada per a involucrar els usuaris finals en el desenvolupament de DSLs. Per a validar la idoneïtat de la proposta, s'ha seleccionat un domini complex com el dels anàlisis genètics i s'ha col·laborat amb un conjunt de genetistes procedents de tres organitzacions. El mètode s'ha utilitzat per a involucrar a dits genetistes en el desenvolupament d'un DSL per a la creació de pipelines per al anàlisis genètic. Al mateix temps, s'ha dut a terme un experiment empíric per a validar si tant els usuaris finals com els desenvolupadors estan satisfets amb la proposta de la present tesis. En resum, les contribucions principals d'aquesta tesis doctoral son el disseny i implementació d'un mètode innovador, àgil i dirigit per models per a involucrar als usuaris finals en el desenvolupament de DSLs, així com la validació de la proposta en un entorn industrial amb un desenvolupament real d'un DSL.Villanueva Del Pozo, MJ. (2016). An agile model-driven method for involving end-users in DSL development [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/60156TESI

    Challenges in Developing Applications for Aging Populations

    Get PDF
    Elderly individuals can greatly benefit from the use of computer applications, which can assist in monitoring health conditions, staying in contact with friends and family, and even learning new things. However, developing accessible applications for an elderly user can be a daunting task for developers. Since the advent of the personal computer, the benefits and challenges of developing applications for older adults have been a hot topic of discussion. In this chapter, the authors discuss the various challenges developers who wish to create applications for the elderly computer user face, including age-related impairments, generational differences in computer use, and the hardware constraints mobile devices pose for application developers. Although these challenges are concerning, each can be overcome after being properly identified

    Grand Challenges of Traceability: The Next Ten Years

    Full text link
    In 2007, the software and systems traceability community met at the first Natural Bridge symposium on the Grand Challenges of Traceability to establish and address research goals for achieving effective, trustworthy, and ubiquitous traceability. Ten years later, in 2017, the community came together to evaluate a decade of progress towards achieving these goals. These proceedings document some of that progress. They include a series of short position papers, representing current work in the community organized across four process axes of traceability practice. The sessions covered topics from Trace Strategizing, Trace Link Creation and Evolution, Trace Link Usage, real-world applications of Traceability, and Traceability Datasets and benchmarks. Two breakout groups focused on the importance of creating and sharing traceability datasets within the research community, and discussed challenges related to the adoption of tracing techniques in industrial practice. Members of the research community are engaged in many active, ongoing, and impactful research projects. Our hope is that ten years from now we will be able to look back at a productive decade of research and claim that we have achieved the overarching Grand Challenge of Traceability, which seeks for traceability to be always present, built into the engineering process, and for it to have "effectively disappeared without a trace". We hope that others will see the potential that traceability has for empowering software and systems engineers to develop higher-quality products at increasing levels of complexity and scale, and that they will join the active community of Software and Systems traceability researchers as we move forward into the next decade of research

    Grand Challenges of Traceability: The Next Ten Years

    Full text link
    In 2007, the software and systems traceability community met at the first Natural Bridge symposium on the Grand Challenges of Traceability to establish and address research goals for achieving effective, trustworthy, and ubiquitous traceability. Ten years later, in 2017, the community came together to evaluate a decade of progress towards achieving these goals. These proceedings document some of that progress. They include a series of short position papers, representing current work in the community organized across four process axes of traceability practice. The sessions covered topics from Trace Strategizing, Trace Link Creation and Evolution, Trace Link Usage, real-world applications of Traceability, and Traceability Datasets and benchmarks. Two breakout groups focused on the importance of creating and sharing traceability datasets within the research community, and discussed challenges related to the adoption of tracing techniques in industrial practice. Members of the research community are engaged in many active, ongoing, and impactful research projects. Our hope is that ten years from now we will be able to look back at a productive decade of research and claim that we have achieved the overarching Grand Challenge of Traceability, which seeks for traceability to be always present, built into the engineering process, and for it to have "effectively disappeared without a trace". We hope that others will see the potential that traceability has for empowering software and systems engineers to develop higher-quality products at increasing levels of complexity and scale, and that they will join the active community of Software and Systems traceability researchers as we move forward into the next decade of research

    Process Mining Concepts for Discovering User Behavioral Patterns in Instrumented Software

    Get PDF
    Process Mining is a technique for discovering “in-use” processes from traces emitted to event logs. Researchers have recently explored applying this technique to documenting processes discovered in software applications. However, the requirements for emitting events to support Process Mining against software applications have not been well documented. Furthermore, the linking of end-user intentional behavior to software quality as demonstrated in the discovered processes has not been well articulated. After evaluating the literature, this thesis suggested focusing on user goals and actual, in-use processes as an input to an Agile software development life cycle in order to improve software quality. It also provided suggestions for instrumenting software applications to support Process Mining techniques

    A Requirements Specification Template for Temperature Calibration System

    Get PDF
    Calibration laboratories follow a set of standards and these standards change all the time. The ISO17025 standard concerns calibration laboratories and have recently got a new version. This new version mainly adds the requirement for traceability in the calibration process. The company in question is creating a new temperature calibration software, due to the adaptation of a new version of the ISO17025. This thesis concentrates on the creation of the software requirements specification for this new software system. Calibration theory and software requirements theory are topics that are researched in this thesis. The goal of this thesis is to create a new template for internal software products software requirements specification and utilize it in the project. In the first part of the thesis, we will learn about the different key elements in this project, information that the reader must know to understand the subject. We will learn about calibration theory and temperature calibration in particular. Then we will jump straight into the theory of software requirements, a part of good practices in software requirements specification that can be helpful in the different stages. The development process plays also a part in the creation and management of the requirements, so this aspect is also looked at. Then we will utilize the gathered information in the creation of a new internal software requirements specification and functional design specification. The new software requirements specification template for internal software systems is more suitable for this type of software system than the already existing template. Additionally, the functional design specification is included in the same document, which results in a smaller number of project-related documents. This results in a reduction of the amount of work required by the process. By reducing the number of documents into one larger document, makes requirement engineering tasks easier and allows for a deeper integration between requirements and implementation.The name of the company where this project took place has been censored on the behalf of the company's integrity

    Feature-based methodology for supporting architecture refactoring and maintenance of long-life software systems

    Get PDF
    Zusammenfassung Langlebige Software-Systeme durchlaufen viele bedeutende Veraenderungen im Laufe ihres Lebenszyklus, um der Weiterentwicklung der Problemdomaenen zu folgen. Normalerweise ist es schwierig eine Software-Systemarchitektur den schnellen Weiterentwicklungen einer Problemdomaene anzupassen und mit der Zeit wird der Unterschied zwischen der Problemdomaene und der Software-Systemarchitektur zu groß, um weitere Softwareentwicklung sinnvoll fortzufuehren. Fristgerechte Refactorings der Systemarchitektur sind notwendig, um dieses Problem zu vermeiden. Aufgrund des verhaeltnismaeßig hohen Gefahrenpotenzials und des zeitlich stark verzoegerten Nutzens von Refactorings, werden diese Maßnahmen normalerweise bis zum letztmoeglichen Zeitpunkt hinausgeschoben. In der Regel ist das Management abgeneigt Architektur-Refactorings zu akzeptieren, außer diese sind absolut notwendig. Die bevorzugte Vorgehensweise ist, neue Systemmerkmale ad hoc hinzuzufuegen und nach dem Motto ”Aendere nie etwas an einem funktionierenden System!” vorzugehen. Letztlich ist das Ergebnis ein Architekturzerfall (Architekturdrift). Die Notwendigkeit kleiner Refactoring-Schritte fuehrt zur Notwendigkeit des Architektur-Reengineerings. Im Gegensatz zum Refactoring, das eine normale Entwicklungstaetigkeit darstellt, ist Reengineering eine Form der Software- ”Revolution”. Reengineeringprojekte sind sehr riskant und kostspielig. Der Nutzen des Reengineerings ist normalerweise nicht so hoch wie erwartet. Wenn nach dem Reengineering schließlich die erforderlichen Architekturaenderungen statt.nden, kann dies zu spaet sein. Trotz der enormen in das Projekt gesteckten Bemuehungen erfuellen die Resultate des Reengineerings normalerweise nicht die Erwartungen. Es kann passieren, dass sehr bald ein neues, kostspieliges Reengineering erforderlich wird. In dieser Arbeit werden das Problem der Softwareevolution und der Zerfall von Softwarearchitekturen behandelt. Eine Methode wird vorgestellt, welche die Softwareentwicklung in ihrer entscheidenden Phase, dem Architekturrefactoring, unterstuetzt. Die Softwareentwicklung wird sowohl in technischer als auch organisatorischer Hinsicht unterstuetzt. Diese Arbeit hat neue Techniken entwickelt, welche die Reverse-Engineering-, Architecture-Recovery- und Architecture-Redesign-Taetigkeiten unterst uetzen. Sie schlaegt auch Aenderungen des Softwareentwicklungsprozesses vor, die fristgerechte Architekturrefactorings erzwingen koennen und damit die Notwendigkeit der Durchfuehrung eines Architektur- Reengineerings vermeiden. In dieser Arbeit wird die Merkmalmodellierung als Hauptinstrument verwendet. Merkmale werden genutzt, um die Abstraktionsluecke zwischen den Anforderungen der Problemdomaene und der Systemarchitektur zu fuellen. Merkmalmodelle werden auch als erster Grundriss fr die Wiederherstellung der verlorenen Systemarchitektur genutzt. Merkmalbasierte Analysen fuehren zu diversen, nuetzlichen Hinweisen fuer den erneuten Entwurf (das Re-Design) einer Architektur. Schließlich wird die Merkmalmodellierung als Kommunikationsmittel zwischen unterschiedlichen Projektbeteiligten (Stakeholdern) im Verlauf des Softwareengineering-Prozesses verwendet und auf dieser Grundlage wird ein neuer Anforderungsde.nitionsprozess vorgeschlagen, der die erforderlichen Architekturrefactorings erzwingt.The long-life software systems withstand many significant changes throughout their life-cycle in order to follow the evolution of the problem domains. Usually, the software system architecture can not follow the rapid evolution of a problem domain and with time, the diversion of the architecture in respect to the domain features becomes prohibiting for software evolution. For avoiding this problem, periodical refactorings of the system architecture are required. Usually, architecture refactorings are postponed until the very last moment, because of the relatively high risk involved and the lack of short-term profit. As a rule, the management is unwilling to accept architecture refactorings unless they become absolutely necessary. The preferred way of working is to add new system features in an ad-hoc manner and to keep the rule ”Never touch a running system!”. The final result is an architecture decay. The need of performing small refactoring activities turns into need for architecture reengineering. In contrast to refactoring, which is a normal evolutionary activity, reengineering is a kind of software ”revolution”. Reengineering projects are risky and expensive. The effectiveness of reengineering is also usually not as high as expected. When finally after reengineering the required architecture changes take place, it can be too late. Despite the enormous invested efforts, the results of the reengineering usually do not satisfy the expectations. It might happen that very soon a new expensive reengineering is required. This thesis deals with the problem of software evolution and the decay of software architectures. It presents a method, which assists software evolution in its crucial part, the architecture refactoring. The assistance is performed for both technical and organizational aspects of the software evolution. The thesis provides new techniques for supporting reverse engineering, architecture recovery and redesigning activities. It also proposes changes to the software engineering process, which can force timely architecture refactorings and thus avoid the need of performing architecture reengineering. For the work in this thesis feature modeling is utilized as a main asset. Features are used to fill the abstraction gap between domain requirements and system architecture. Feature models are also used as an outline for recovering of lost system architectures. Through feature-based analyses a number of useful hints and clues for architecture redesign are produced. Finally, feature modeling is used as a communication between different stakeholders of the software engineering process and on this basis a new requirements engineering process is proposed, which forces the needed architecture refactorings
    corecore