Context: Quality requirements (QRs) describe the desired quality of software, and they play an im... more Context: Quality requirements (QRs) describe the desired quality of software, and they play an important role in the success of software projects. In agile software development (ASD), QRs are often ill-defined and not well addressed due to the focus on quickly delivering functionality. Rapid software development (RSD) approaches (e.g., continuous delivery and continuous deployment), which shorten delivery times, are more prone to neglect QRs. Despite the significance of QRs in both ASD and RSD, there is limited synthesized knowledge on their management in those approaches. Objective: This study aims to synthesize state-of-the-art knowledge about QR management in ASD and RSD, focusing on three aspects: bibliometric, strategies, and challenges. Research method: Using a systematic mapping study with a snowballing search strategy, we identified and structured the literature on QR management in ASD and RSD. Results: We found 156 primary studies: 106 are empirical studies, 16 are experience reports, and 34 are theoretical studies. Security and performance were the most commonly reported QR types. We identified various QR management strategies: 74 practices, 43 methods, 13 models, 12 frameworks, 11 advices, 10 tools, and 7 guidelines. Additionally, we identified 18 categories and 4 non-recurring challenges of managing QRs. The limited ability of ASD to handle QRs, time constraints due to short iteration cycles, limitations regarding the testing of QRs and neglect of QRs were the top categories of challenges. Conclusion: Management of QRs is significant in ASD and is becoming important in RSD. This study identified research gaps, such as the need for more tools and guidelines, lightweight QR management strategies that fit short iteration cycles, investigations of the link between QRs challenges and technical debt, and extension of empirical validation of existing strategies to a wider context. It also synthesizes QR management strategies and challenges, which may be useful for practitioners.
Any software development process needs to consider non-functional requirements (NFR) in order to ... more Any software development process needs to consider non-functional requirements (NFR) in order to deliver a system that complies with its stakeholders' expectations. In a previous mapping study about model-driven development (MDD) for service-oriented architectures (SOA) we found a limited number of approaches managing NFR. The present work aims at analysing in detail the state of the art in the management of NFR in MDD processes which produce SOA. We have conducted a systematic literature review following a rigorous protocol. We have taken as initial point the mapping study mentioned above and have used the subset of the 31 papers from this study (clustered into 15 approaches) that referred to NFR. We have analysed them qualitatively in order to answer six research questions. We have built a Software Engineering theory to formalize this analysis. As result we highlight that most of approaches focus exclusively on security and reliability and we observe that NFR are expressed mainly as annotations of functional models represented in UML. From our perspective, existing research on the topic of this study is still scarce and without any evidence of transferability to industry. This situation suggests the need for further investigation efforts in order to produce validated MDD methods capable of generating SOA satisfying NFR stated by stakeholders.
RESUMEN Los cambios recientes en los planes de estudio de la UPC y la UOC tienen en cuenta el nue... more RESUMEN Los cambios recientes en los planes de estudio de la UPC y la UOC tienen en cuenta el nuevo espacio europeo de educación superior (EEES). Una de las consecuencias directas de estos cambios es la necesidad de acotar y optimizar el tiempo a dedicar a las actividades de aprendizaje que requieren la participación activa del estudiante y que se realizan de forma continuada durante el semestre. En el ámbito de la docencia informática de asignaturas de bases de datos el problema es especialmente complejo debido a que los enunciados de las pruebas no acostumbran a tener una solución única. Nosotros hemos desarrollado una herramienta, llamada LEARN-SQL, cuyo objetivo es corregir automáticamente cualquier tipo de sentencia SQL (consultas, actualizaciones, procedimientos almacenados, disparadores etc.) y discernir si la respuesta aportada por el estudiante es o no correcta con independencia de la solución concreta que este proponga. Además esta herramienta ayuda a los profesores a dise...
In recent years European universities have been adapting their curricula to the new European High... more In recent years European universities have been adapting their curricula to the new European Higher Education Area, which implies the use of active learning methodologies. In most database courses, project-based learning is the active methodology that is widely used, but the authors of this paper face context constraints against its use. This paper presents a quantitative and qualitative analysis of the results obtained from the use of collaborative learning in both cross-curricula competences and subject-specific ones in the ''Introduction to Databases'' course at the Barcelona School of Informatics. Relevantly, this analysis demonstrates the positive impact that this methodology had, allowing us to conclude that it is not only project-based learning that is suitable for these kinds of courses.
Resumen. El uso de modelos de calidad durante la selección de componentes COTS (Comercial Off-The... more Resumen. El uso de modelos de calidad durante la selección de componentes COTS (Comercial Off-The-Shelf) proporciona un entorno adecuado para la descrip- ción de los dominios a los que éstos pertenecen. En este artículo tratamos la cons- trucción de modelos de calidad para Sistemas Software basados en Componentes COTS (SSCC), que definiremos como sistemas compuestos por varios componentes COTS interconectados.
La entrada en el EEES y la adopción del nuevo sistema de créditos ECTS, que mide las horas de ded... more La entrada en el EEES y la adopción del nuevo sistema de créditos ECTS, que mide las horas de dedicación del estudiante y no las del profesor, hace que debamos plantearnos nuevos métodos docentes que incentiven, al mismo tiempo que acoten y controlen, la dedicación de los estudiantes fuera del aula. Es en este sentido que hemos experimentado el uso de los glosarios provistos por Moodle para fomentar que los estudiantes repasen en casa la teoría presentada en clase, de forma continuada a lo largo del curso (no únicamente en vísperas del examen final).
The success of any activity relies on its quality. There are many approaches to quality assessmen... more The success of any activity relies on its quality. There are many approaches to quality assessment and management related to software activities like specification, modelling and design of all kind of artifacts (from large systems to small Java applets, from custom -made applications to commercial software). Unfortunately, these approaches are difficult to compare, combine or select because of the lack
In the last years, UML has been tailored to be used as a domainspecific modelling notation in sev... more In the last years, UML has been tailored to be used as a domainspecific modelling notation in several contexts. Extending UML with this purpose entails several advantages: the integration of the domain in a standard framework; its potential usage by the software engineering community; and the existence of supporting tools. In previous work, we explored one particular issue of heavyweight extensions, namely, the definition of inducing metaassociations in metamodels as a way to induce the presence of specific relationships in their instances. Those relationships were intended by the metamodel specifier but not forced by the metamodel itself. However, our work was restricted to the case of induced associations. This paper proposes an extension to the general case in which inducing metaassociations may force the existence of arbitrary relationships at M1. To attain this goal, we provide a general definition of inducing metaassociation that covers all the possible cases. After revisiting induced associations, we show the inducement of the other relationship types defined in UML: association classes, generalization and dependencies.
A framework that combines imperative programs with algebraic specifications is presented. We focu... more A framework that combines imperative programs with algebraic specifications is presented. We focus on an execution mechanism that allows the arbitrary combination of programs and equations, which is based on the evaluation of expressions by means of the transformation of values from data structures to terms and vice versa, using the abstraction function of the implementation. The correctness of the execution procedure follows from a set of basic transformation rules. 1. Introduction Software development with abstract data types is usually done by first specifying the types and next implementing them. Specifications may be formal (equational) or not, and in the first case they may be executable or not. In this framework, two main questions arise: how can we prove the correctness of an implementation with respect to its specification? and, is there any help to transform a specification in an implementation? Roughly speaking, we may distinguish between formal verification and testing for the first question. Formal verification is better than testing because it assures the correctness of programs; however, it may be difficult to carry out, even with the help of appropriate tools, and this is why testing is still in use. Concerning the second question, specifications and implementations may be kept separated in different stages, interfering with software evolution, or else they may be joined together with a multiparadigm (wide-spectrum) language (which may be really a single language or else the combination of two or more existing languages into a single framework); in the second case, evolution may be performed with the help of some transformation rules or not. In this paper, we propose a multiparadigm language combining equational specifications and imperative programs into a single framework. Even more, we require specifications to be operational (executable), and thus we adopt a testing approach to implementation correctness. To provide programmers with a great flexibility, we build an execution procedure that permits execution of software that combines specifications and imperative programs in an arbitrary manner; as a result, we may adopt a prototyping software development model in which a program is obtained by applying a sequence of refinement steps starting from a formal, possibly incomplete specification of the problem, being able to prototype the product at every stage of development by combining a term-rewriting system and an interpreter.
In the process of extending the UML metamodel for a specific domain, the metamodel specifier intr... more In the process of extending the UML metamodel for a specific domain, the metamodel specifier introduces frequently some metaassociations at MOF level M2 with the aim that they induce some specific associations at MOF level M1. For instance, if a metamodel for software process modelling states that a “Role” is responsible for an “Artifact”, we can interpret that its specifier intended to model two aspects: (1) the implications of this metaassociation at level M1 (e.g., the specific instance of Role “TestEngineer” is responsible for the specific instance of Artifact “TestPlans”); and (2) the implications of this metaassociation at level M0 (e.g., “John Doe” is the responsible test engineer for elaborating the test plans for the package “Foo”). Unfortunately, the second aspect is often not enforced by the metamodel and, as a result, the models which are defined as its instances may not incorporate it. This problem, consequence of the so-called “shallow instantiation” in Atkinson and Kühne (Procs. UML’01, LNCS 2185, Springer, 2001), prevents these models from being accurate enough in the sense that they do not express all the information intended by the metamodel specifier and consequently do not distinguish metaassociations that induce associations at M1 from those that do not. In this article we introduce the concept of induced association that may come up when an extension of the UML metamodel is developed. The implications that this concept has both in the extended metamodel and in its instances are discussed. We also present a methodology to enforce that M1 models incorporate the associations induced by the metamodel which they are instances from. Next, as an example of application we present a quality metamodel for software artifacts which makes intensive use of induced associations. Finally, we introduce a software tool to assist the development of quality models as correct instantiations of the metamodel, assuring the proper application of the induced associations as required by the metamodel.
We present here an approach to component programming which defines languages and tools at both th... more We present here an approach to component programming which defines languages and tools at both the product and the process levels. At the product level, we allow the use of already existing languages to write functional specifications and implementations of components; also, we provide a notation to state their non-functional specifications, which involve operational attributes as efficiency. Functional specifications can be employed to perform prototyping in a mixed execution framework, which allows the combination of algebraic specifications and imperative code, while non-functional specifications are used to select automatically the best implementation of every component appearing in a software system. At the process level, we have introduced a set of basic program development tasks and we have defined a process language to formulate software process models as particular combinations of these tasks. A process assistant can be used to guide software development following any model defined with this language.
We present a proposal for selecting ERP products from a formal description of their relevant char... more We present a proposal for selecting ERP products from a formal description of their relevant characteristics. The work is based on a previous and successful collaboration with a midsize company in the field of software package selection. An ERP was selected following a systematic methodology called SHERPA. In this past experience, SHERPA relied on natural language descriptions of the application domain, user needs and candidate ERP solutions. In this paper, we show that a formal language may be used for modeling this application domain, translating user needs into requirements over the ERP products, and for reflecting how concrete ERP products adjust to them. Having selection criteria used during ERP acquisition formally modeled, as well as user needs and ERP product descriptions, we expect to obtain more reliable and understandable results in this process.
We present in this paper a framework embracing different aspects involved in COTS component selec... more We present in this paper a framework embracing different aspects involved in COTS component selection that influence the success of this activity. Playing a crucial role in this framework appears the concept of quality model, aimed at structuring the description of the quality of COTS components. We propose a methodology for building quality models based on the ISO/IEC 9126-1 standard which allows to create hierarchies of models appropriate for categories and domains of COTS components, and also for particular contexts of COTS selection activities. Such quality models facilitate the expression and refinement of quality requirements during COTS selection. We present also a formal notation for expressing these quality models, the quality requirements and the product descriptions themselves; the notation supports model analysis and makes feasible tool support during COTS selection. Last, we enumerate at the conclusions some issues matter of current and future research.
Context: Quality requirements (QRs) describe the desired quality of software, and they play an im... more Context: Quality requirements (QRs) describe the desired quality of software, and they play an important role in the success of software projects. In agile software development (ASD), QRs are often ill-defined and not well addressed due to the focus on quickly delivering functionality. Rapid software development (RSD) approaches (e.g., continuous delivery and continuous deployment), which shorten delivery times, are more prone to neglect QRs. Despite the significance of QRs in both ASD and RSD, there is limited synthesized knowledge on their management in those approaches. Objective: This study aims to synthesize state-of-the-art knowledge about QR management in ASD and RSD, focusing on three aspects: bibliometric, strategies, and challenges. Research method: Using a systematic mapping study with a snowballing search strategy, we identified and structured the literature on QR management in ASD and RSD. Results: We found 156 primary studies: 106 are empirical studies, 16 are experience reports, and 34 are theoretical studies. Security and performance were the most commonly reported QR types. We identified various QR management strategies: 74 practices, 43 methods, 13 models, 12 frameworks, 11 advices, 10 tools, and 7 guidelines. Additionally, we identified 18 categories and 4 non-recurring challenges of managing QRs. The limited ability of ASD to handle QRs, time constraints due to short iteration cycles, limitations regarding the testing of QRs and neglect of QRs were the top categories of challenges. Conclusion: Management of QRs is significant in ASD and is becoming important in RSD. This study identified research gaps, such as the need for more tools and guidelines, lightweight QR management strategies that fit short iteration cycles, investigations of the link between QRs challenges and technical debt, and extension of empirical validation of existing strategies to a wider context. It also synthesizes QR management strategies and challenges, which may be useful for practitioners.
Any software development process needs to consider non-functional requirements (NFR) in order to ... more Any software development process needs to consider non-functional requirements (NFR) in order to deliver a system that complies with its stakeholders' expectations. In a previous mapping study about model-driven development (MDD) for service-oriented architectures (SOA) we found a limited number of approaches managing NFR. The present work aims at analysing in detail the state of the art in the management of NFR in MDD processes which produce SOA. We have conducted a systematic literature review following a rigorous protocol. We have taken as initial point the mapping study mentioned above and have used the subset of the 31 papers from this study (clustered into 15 approaches) that referred to NFR. We have analysed them qualitatively in order to answer six research questions. We have built a Software Engineering theory to formalize this analysis. As result we highlight that most of approaches focus exclusively on security and reliability and we observe that NFR are expressed mainly as annotations of functional models represented in UML. From our perspective, existing research on the topic of this study is still scarce and without any evidence of transferability to industry. This situation suggests the need for further investigation efforts in order to produce validated MDD methods capable of generating SOA satisfying NFR stated by stakeholders.
RESUMEN Los cambios recientes en los planes de estudio de la UPC y la UOC tienen en cuenta el nue... more RESUMEN Los cambios recientes en los planes de estudio de la UPC y la UOC tienen en cuenta el nuevo espacio europeo de educación superior (EEES). Una de las consecuencias directas de estos cambios es la necesidad de acotar y optimizar el tiempo a dedicar a las actividades de aprendizaje que requieren la participación activa del estudiante y que se realizan de forma continuada durante el semestre. En el ámbito de la docencia informática de asignaturas de bases de datos el problema es especialmente complejo debido a que los enunciados de las pruebas no acostumbran a tener una solución única. Nosotros hemos desarrollado una herramienta, llamada LEARN-SQL, cuyo objetivo es corregir automáticamente cualquier tipo de sentencia SQL (consultas, actualizaciones, procedimientos almacenados, disparadores etc.) y discernir si la respuesta aportada por el estudiante es o no correcta con independencia de la solución concreta que este proponga. Además esta herramienta ayuda a los profesores a dise...
In recent years European universities have been adapting their curricula to the new European High... more In recent years European universities have been adapting their curricula to the new European Higher Education Area, which implies the use of active learning methodologies. In most database courses, project-based learning is the active methodology that is widely used, but the authors of this paper face context constraints against its use. This paper presents a quantitative and qualitative analysis of the results obtained from the use of collaborative learning in both cross-curricula competences and subject-specific ones in the ''Introduction to Databases'' course at the Barcelona School of Informatics. Relevantly, this analysis demonstrates the positive impact that this methodology had, allowing us to conclude that it is not only project-based learning that is suitable for these kinds of courses.
Resumen. El uso de modelos de calidad durante la selección de componentes COTS (Comercial Off-The... more Resumen. El uso de modelos de calidad durante la selección de componentes COTS (Comercial Off-The-Shelf) proporciona un entorno adecuado para la descrip- ción de los dominios a los que éstos pertenecen. En este artículo tratamos la cons- trucción de modelos de calidad para Sistemas Software basados en Componentes COTS (SSCC), que definiremos como sistemas compuestos por varios componentes COTS interconectados.
La entrada en el EEES y la adopción del nuevo sistema de créditos ECTS, que mide las horas de ded... more La entrada en el EEES y la adopción del nuevo sistema de créditos ECTS, que mide las horas de dedicación del estudiante y no las del profesor, hace que debamos plantearnos nuevos métodos docentes que incentiven, al mismo tiempo que acoten y controlen, la dedicación de los estudiantes fuera del aula. Es en este sentido que hemos experimentado el uso de los glosarios provistos por Moodle para fomentar que los estudiantes repasen en casa la teoría presentada en clase, de forma continuada a lo largo del curso (no únicamente en vísperas del examen final).
The success of any activity relies on its quality. There are many approaches to quality assessmen... more The success of any activity relies on its quality. There are many approaches to quality assessment and management related to software activities like specification, modelling and design of all kind of artifacts (from large systems to small Java applets, from custom -made applications to commercial software). Unfortunately, these approaches are difficult to compare, combine or select because of the lack
In the last years, UML has been tailored to be used as a domainspecific modelling notation in sev... more In the last years, UML has been tailored to be used as a domainspecific modelling notation in several contexts. Extending UML with this purpose entails several advantages: the integration of the domain in a standard framework; its potential usage by the software engineering community; and the existence of supporting tools. In previous work, we explored one particular issue of heavyweight extensions, namely, the definition of inducing metaassociations in metamodels as a way to induce the presence of specific relationships in their instances. Those relationships were intended by the metamodel specifier but not forced by the metamodel itself. However, our work was restricted to the case of induced associations. This paper proposes an extension to the general case in which inducing metaassociations may force the existence of arbitrary relationships at M1. To attain this goal, we provide a general definition of inducing metaassociation that covers all the possible cases. After revisiting induced associations, we show the inducement of the other relationship types defined in UML: association classes, generalization and dependencies.
A framework that combines imperative programs with algebraic specifications is presented. We focu... more A framework that combines imperative programs with algebraic specifications is presented. We focus on an execution mechanism that allows the arbitrary combination of programs and equations, which is based on the evaluation of expressions by means of the transformation of values from data structures to terms and vice versa, using the abstraction function of the implementation. The correctness of the execution procedure follows from a set of basic transformation rules. 1. Introduction Software development with abstract data types is usually done by first specifying the types and next implementing them. Specifications may be formal (equational) or not, and in the first case they may be executable or not. In this framework, two main questions arise: how can we prove the correctness of an implementation with respect to its specification? and, is there any help to transform a specification in an implementation? Roughly speaking, we may distinguish between formal verification and testing for the first question. Formal verification is better than testing because it assures the correctness of programs; however, it may be difficult to carry out, even with the help of appropriate tools, and this is why testing is still in use. Concerning the second question, specifications and implementations may be kept separated in different stages, interfering with software evolution, or else they may be joined together with a multiparadigm (wide-spectrum) language (which may be really a single language or else the combination of two or more existing languages into a single framework); in the second case, evolution may be performed with the help of some transformation rules or not. In this paper, we propose a multiparadigm language combining equational specifications and imperative programs into a single framework. Even more, we require specifications to be operational (executable), and thus we adopt a testing approach to implementation correctness. To provide programmers with a great flexibility, we build an execution procedure that permits execution of software that combines specifications and imperative programs in an arbitrary manner; as a result, we may adopt a prototyping software development model in which a program is obtained by applying a sequence of refinement steps starting from a formal, possibly incomplete specification of the problem, being able to prototype the product at every stage of development by combining a term-rewriting system and an interpreter.
In the process of extending the UML metamodel for a specific domain, the metamodel specifier intr... more In the process of extending the UML metamodel for a specific domain, the metamodel specifier introduces frequently some metaassociations at MOF level M2 with the aim that they induce some specific associations at MOF level M1. For instance, if a metamodel for software process modelling states that a “Role” is responsible for an “Artifact”, we can interpret that its specifier intended to model two aspects: (1) the implications of this metaassociation at level M1 (e.g., the specific instance of Role “TestEngineer” is responsible for the specific instance of Artifact “TestPlans”); and (2) the implications of this metaassociation at level M0 (e.g., “John Doe” is the responsible test engineer for elaborating the test plans for the package “Foo”). Unfortunately, the second aspect is often not enforced by the metamodel and, as a result, the models which are defined as its instances may not incorporate it. This problem, consequence of the so-called “shallow instantiation” in Atkinson and Kühne (Procs. UML’01, LNCS 2185, Springer, 2001), prevents these models from being accurate enough in the sense that they do not express all the information intended by the metamodel specifier and consequently do not distinguish metaassociations that induce associations at M1 from those that do not. In this article we introduce the concept of induced association that may come up when an extension of the UML metamodel is developed. The implications that this concept has both in the extended metamodel and in its instances are discussed. We also present a methodology to enforce that M1 models incorporate the associations induced by the metamodel which they are instances from. Next, as an example of application we present a quality metamodel for software artifacts which makes intensive use of induced associations. Finally, we introduce a software tool to assist the development of quality models as correct instantiations of the metamodel, assuring the proper application of the induced associations as required by the metamodel.
We present here an approach to component programming which defines languages and tools at both th... more We present here an approach to component programming which defines languages and tools at both the product and the process levels. At the product level, we allow the use of already existing languages to write functional specifications and implementations of components; also, we provide a notation to state their non-functional specifications, which involve operational attributes as efficiency. Functional specifications can be employed to perform prototyping in a mixed execution framework, which allows the combination of algebraic specifications and imperative code, while non-functional specifications are used to select automatically the best implementation of every component appearing in a software system. At the process level, we have introduced a set of basic program development tasks and we have defined a process language to formulate software process models as particular combinations of these tasks. A process assistant can be used to guide software development following any model defined with this language.
We present a proposal for selecting ERP products from a formal description of their relevant char... more We present a proposal for selecting ERP products from a formal description of their relevant characteristics. The work is based on a previous and successful collaboration with a midsize company in the field of software package selection. An ERP was selected following a systematic methodology called SHERPA. In this past experience, SHERPA relied on natural language descriptions of the application domain, user needs and candidate ERP solutions. In this paper, we show that a formal language may be used for modeling this application domain, translating user needs into requirements over the ERP products, and for reflecting how concrete ERP products adjust to them. Having selection criteria used during ERP acquisition formally modeled, as well as user needs and ERP product descriptions, we expect to obtain more reliable and understandable results in this process.
We present in this paper a framework embracing different aspects involved in COTS component selec... more We present in this paper a framework embracing different aspects involved in COTS component selection that influence the success of this activity. Playing a crucial role in this framework appears the concept of quality model, aimed at structuring the description of the quality of COTS components. We propose a methodology for building quality models based on the ISO/IEC 9126-1 standard which allows to create hierarchies of models appropriate for categories and domains of COTS components, and also for particular contexts of COTS selection activities. Such quality models facilitate the expression and refinement of quality requirements during COTS selection. We present also a formal notation for expressing these quality models, the quality requirements and the product descriptions themselves; the notation supports model analysis and makes feasible tool support during COTS selection. Last, we enumerate at the conclusions some issues matter of current and future research.
Uploads
Papers by X. Burgués