122 research outputs found
Lightweight and static verification of UML executable models
Executable models play a key role in many software development methods by facilitating the (semi)automatic implementation/execution of the software system under development. This is possible because executable models promote a complete and fine-grained specification of the system behaviour. In this context, where models are the basis of the whole development process, the quality of the models has a high impact on the final quality of software systems derived from them. Therefore, the existence of methods to verify the correctness of executable models is crucial. Otherwise, the quality of the executable models (and in turn the quality of the final system generated from them) will be compromised. In this paper a lightweight and static verification method to assess the correctness of executable models is proposed. This method allows us to check whether the operations defined as part of the behavioural model are able to be executed without breaking the integrity of the structural model and returns a meaningful feedback that helps repairing the detected inconsistencies.Peer ReviewedPostprint (author's final draft
A software service supporting software quality forecasting
Software repositories such as source control, defect tracking systems and project management tools, are used to support the progress of software projects. The exploitation of such data with techniques like forecasting is becoming an increasing need in several domains to support decision-making processes. However, although there exist several statistical tools
and languages supporting forecasting, there is a lack of friendly approaches that enable practitioners to exploit the advantages of creating and using such models in their dashboard tools. Therefore, we have developed a modular and flexible forecasting service allowing the interconnection with different kinds of databases/data repositories for creating and exploiting forecasting models based on methods like ARIMA or ETS. The service is open source software, has been developed in Java and R and exposes its functionalities through a REST API. Architecture details are provided, along with functionalities’ description and an example of its use for software quality forecasting.Peer ReviewedPostprint (author's final draft
On the meanings of subsetting, specialization and redefinition in UML
UML 2 has improved the expressiveness of the language with respect to associations in several manners. A significant one has been the introduction of the association redefinition concept. Association subsetting and association specialization have been included in UML since its earliest versions and share some relevant features with association redefinition. These similarities among the three constructs make it frequently difficult, especially to novice users, to: decide which one of these concepts is the best suited to model a particular situation; systematically justify their modelling choices.
In this report, we present a preliminary empirical investigation on these constructs using as a benchmark a catalogue of model examples produced by different authors which can be considered experts in the conceptual modelling field.Preprin
Evolving temporal conceptual schemas: the reification case
We study temporal conceptual schema evolutions related to reification, a typical and complex modeling construct. Various types of reification are considered. Using a previously defined framework, we specify only at conceptual level (and without descending to logical or application levels), the effects of any possible evolution related to reification, thus reducing the complexity of the management of those changes.Peer ReviewedPostprint (published version
A Look at the Nativization of Bangladeshi English through Corpus Data
This paper explores Bangladeshi English, a relative newcomer to the family of world Englishes. First, we chart the evolution of English in Bangladesh across several phases of development. These show that a number of political and ideological factors make the evolution of English in Bangladesh unique in that it wavers between the status of an exonormative foreign language (English in Bangladesh) and the development of a local variety (Bangladeshi English). From a linguistic perspective, recent studies agree that the current level of proficiency is very low, with a dearth of teachers and an absence of quality education. Second, we examine the degree of nativization of Present-day Bangladeshi English on the basis of (i) its postcolonial evolution and the more recent effects of globalization, following the most popular models of analysis (the Dynamic Model and the Extra- and Intra-Territorial Forces Model), and (ii) linguistic evidence obtained through the analysis of a selection of linguistic features associated with this variety, as represented in the GloWbE corpus
On the semantics of redefinition, specialization and subsetting of associations in UML (extended version)
The definition of the exact meaning of conceptual modeling concepts is considered a relevant issue since it enhances their effective and appropriate use by designers and facilitates the automatic processing of the models where they are included. Three related concepts that permit to improve the definition of an association in UML and which still lack of a formal semantic definition are: association redefinition, association specialization and association subsetting. This paper formalizes their semantics and points out the similarities and differences that exist among them. The formalization we propose is based on the meta-modelling approach and a semantic domain composed of a set of basic UML concepts and OCL expressions, which have a previous formal definition in the literature and which are well-understood.Preprin
Applying project-based learning to teach software analytics and best practices in data science
Due to recent industry needs, synergies between data science and software engineering are starting to be present in data science and engineering academic programs. Two synergies are: applying data science to manage the quality of the software (software analytics) and applying software engineering best practices in data science projects to ensure quality attributes such as maintainability and reproducibility. The lack of these synergies on academic programs have been argued to be an educational problem. Hence, it becomes necessary to explore how to teach software analytics and software engineering best practices in data science programs. In this context, we provide hands-on for conducting laboratories applying project-based learning in order to teach software analytics and software engineering best practices to data science students. We aim at improving the software engineering skills of data science students in order to produce software of higher quality by software analytics. We focus in two skills: following a process and software engineering best practices. We apply project-based learning as main teaching methodology to reach the intended outcomes. This teaching experience shows the introduction of project-based learning in a laboratory, where students applied data science and best software engineering practices to analyze and detect improvements in software quality. We carried out a case study in two academic semesters with 63 data science bachelor students. The students found the synergies of the project positive for their learning. In the project, they highlighted both utility of using a CRISP-DM data mining process and best software engineering practices like a software project structure convention applied to a data science project.This paper was partly funded by a teaching innovation project of ICE@UPC-BarcelonaTech (entitled ‘‘Audiovisual and digital material for data engineering, a teaching innovation project with open science’’), and the ‘‘Beatriz Galindo’’ Spanish Program BEA-GAL18/00064.Peer ReviewedPostprint (published version
Generating operation specifications from UML class diagrams: A model transformation approach
One of the more tedious and complex tasks during the specification of conceptual schemas (CSs) is modeling the operations that define the system behavior. This paper aims to simplify this task by providing a method that automatically generates a set of basic operations that complement the static aspects of the CS and suffice to perform all typical life-cycle create/update/delete changes on the population of the elements of the CS. Our method guarantees that the generated operations are executable, i.e. their executions produce a consistent state wrt the most typical structural constraints that can be defined in CSs (e.g. multiplicity constraints). In particular, our method takes as input a CS expressed as a Unified Modeling Language (UML) class diagram (optionally defined using a profile to enrich the specification of associations) and generates an extended version of the CS that includes all necessary operations to start operating the system. If desired, these basic operations can be later used as building blocks for creating more complex ones. We show the formalization and implementation of our method by means of model-to-model transformations. Our approach is particularly relevant in the context of Model Driven Development approaches. © 2011 Elsevier B.V. All rights reserved.The authors want to thank the anonymous referees of this journal for their interesting suggestions. This work has been partly supported by the MICINN under projects TIN2008-00444, Grupo Consolidado and TIN2010-18011, and by the Generalitat Valenciana under the project OKA PROMETEO/2009/015, and co-financed with the European Regional Development Fund.Albert Albiol, M.; Cabot Sagrera, J.; Gómez Seoane, C.; Pelechano Ferragud, V. (2011). Generating operation specifications from UML class diagrams: A model transformation approach. Data and Knowledge Engineering. 70(4):365-389. https://doi.org/10.1016/j.datak.2011.01.003S36538970
Alf-verifier: an Eclipse plugin for verifying Alf/UML executable models
In this demonstration we present an Eclipse plugin that implements a lightweight method for verifying fine-grained operations at design time. This tool suffices to check that the execution of the operations (specified in Alf Action Language) is consistent with the integrity constraints defined in the class diagram (specified in UML) and returns a meaningful feedback that helps correcting them otherwise.Postprint (author’s final draft
Definition of the on-time delivery indicator in rapid software development
Rapid software development (RSD) is an approach for developing software in rapid iterations. One of the critical success factors of an RSD project is to deliver the product releases on time and with the planned features. In this paper, we elaborate an exploratory definition of the On-Time Delivery strategic indicator in RSD based on the literature and interviews with four companies. This indicator supports decision-makers to detect development problems in order to avoid delays and to estimate the additional time needed when requirements, and specifically quality requirements, are considered.Peer ReviewedPostprint (author's final draft
- …