Maider AzanzaUniversity of the Basque Country | UPV/EHU · Computer Languages and Systems
Maider Azanza
Ph. D.
About
31
Publications
2,515
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
309
Citations
Introduction
Publications
Publications (31)
Resumen En este trabajo se presenta y analiza la experiencia de incorporación de la Agenda 2030 y los Objetivos de Desarrollo Sostenible (ODS) en dos asignaturas de Dirección de Proyectos del Grado en Ingeniería Infor-mática (GII) en dos universidades colaborando coor-dinadamente. Se integra el trabajo sobre la Agenda 2030 en el marco de la relació...
Software Product Lines (SPLs) aim at systematically reusing software assets, and deriving products (a.k.a., variants) out of those assets. However, it is not always possible to handle SPL evolution directly through these reusable assets. Time-to-market pressure, expedited bug fixes, or product specifics lead to the evolution to first happen at the...
With a volatile labour and technological market,
onboarding is becoming increasingly important. The process
of incorporating a new developer, a.k.a. the newcomer, into a
software development team is reckoned to be lengthy, frustrating
and expensive. Newcomers face personal, interpersonal, process
and technical barriers during their incorporation, w...
With a volatile labour and technological market, onboarding is becoming increasingly important. The process of incorporating a new developer, a.k.a. the newcomer, into a software development team is reckoned to be lengthy, frustrating and expensive. Newcomers face personal, interpersonal, process and technical barriers during their incorporation, w...
Migrating a set of product variants to a managed SPL is rarely a one-shot effort. Experiences from industry revealed that a complete migration to an SPL might take years, during which customers' requirements still need to be fulfilled by the company (customization effort). Analyzing the assets that have been customized by products (customization an...
Refactoring engines are standard tools in today's Integrated Development Environments (IDEs). They allow programmers to perform one refactoring at a time, but programmers need more. Most design patterns in the Gang-of-Four text can be written as a refactoring script -- a programmatic sequence of refactorings. In this paper, we present R3, a new Jav...
We reinterpret MDE from the viewpoint of relational databases to provide an alternative way to understand, demonstrate, and teach MDE using concepts and technologies that should be familiar to undergraduates. We use (1) relational database schemas to express metamodels, (2) relational databases to express models, (3) Prolog to express constraints a...
Wikis promote work to be reviewed after publication, not before. This vision might not always fit organizations where a common employee concern is that sharing work-in-progress may negatively affect the assessments they receive. This might lead users to edit in distress, thus affecting task performance, and may minimize their participation in wikis...
Model transformation development is a complex task. Therefore, having mechanisms for transformation testing and understanding becomes a matter of utmost importance. Understanding, among others, implies being able to trace back bugs to their causes. In model transformations, causes can be related with either the input model or the transformation cod...
Nowadays, embedded systems are gaining importance. At the same time, the development of their software is increasing its complexity, having to deal with quality, cost, and time-to-market issues among others. With stringent quality requirements such as performance, early verification and validation become critical in these systems. In this regard, a...
The organisation of corporate wikis tends to deteriorate as time goes by. Rearranging categories, structuring articles and even moving sections among articles are cumbersome tasks in current wiki engines. This discourages the layman. But, it is the layman who writes the articles, knows the wiki content and detects refactoring opportunities. Our goa...
Web augmentation is to the Web what augmented reality is to the physical world: layering relevant content/layout/navigation over the existing Web to customize the user experience. This is achieved through JavaScript (JS) using browser weavers (e.g., Greasemonkey). To date, over 43 million of downloads of Greasemonkey scripts ground the vitality of...
Model transformations are precious and effortful outcomes of Model-Driven Engineering. As any other artifact, transformations are also subject to evolution forces. Not only are they affected by changes to transformation requirements, but also by the changes to the associated metamodels. Manual co-evolution of transformations after these metamodel c...
Software Product Lines (SPLs) are not intended to create one application, but a number of them: a product family. In contrast to one-off development, SPLs are based on the idea that the distinct products of the family share a significant amount of assets. This forces a change in how software is developed. Likewise, software testing should mimic its...
Although they often go unnoticed, embedded systems are becoming essential in our everyday lives. From a software development perspective, embedded systems present interesting challenges, some of which can be addressed using advanced development paradigms such as Model Driven Engineering (MDE) and Software Product Line Engineering (SPLE). Neverthele...
Reuse is at the heart of major improvements in productivity and quality in Software Engineering. Both Model Driven Engineering (MDE) and Software Product Line Engineering (SPLE) are software development paradigms that promote reuse. Specifically, they promote systematic reuse and a departure from craftsmanship towards an industrialization of the so...
Software Factories pose a paradigm shift that promises to turn application assembly more cost effective through systematic reuse. These advances
in software industrialization have however reduced the cost of coding applications at the expense of increasing assembling
complexity, i.e., the process of coming up with the final end application. To alle...
We present a general approach to the incremental development of model-based applications using endogenous transformations,
i.e. transformations whose input and output models conform to the same metamodel. Our work describes these transformations
as model deltas that, when composed, deliver a complete model. We establish a relationship between a met...
The conception and design of software-intensive systems is an inherently complex endeavor. We experienced ourselves this complex-ity while engineering a wind turbine control system. Such complexity was faced by combining Software Product Line Engineering and Model-Driven Engineering. However, the application of both paradigms de-manded considerable...
Computational
Design (CD) is a paradigm where both program design and program synthesis are computations. CD merges Model Driven Engineering (MDE) which synthesizes programs by transforming models, with Software Product Lines (SPL) where programs are synthesized by composing transforma tions called features. In this paper, basic relationships betwe...
Recent advances in Software Engineering have reduced the cost of coding programs at the expense of increasing the complexity of program synthesis, i.e. metaprograms, which when executed, will synthesize a target program. The traditional cycle of configuring-linking-compiling, now needs to be supplemented with additional transformation steps that re...
Software architectures represent the design of a system for describing its main relevant parts. Recently, recording and documenting architectural design decisions has attracted the attention of the software architecture community. Design decisions are an important piece during the architecting process that must be explicitly documented, but there i...
Metaprogramming is the concept that program synthesis is a computation. Generative programming is about developing metapro-grams that synthesize other programs. Our intention goes one step be-yond: we aim to generate metaprograms, which when executed, will gen-erate a target program of a product line. This work describes the Gen-eRative metaprOgram...
A portal is a key component of an enterprise integration strategy. It provides integration at the user interface level, whereas other integration tech- nologies support business process, functional or data integration. To this end, portlet syndication is the next wave following the successful use of content syn- dication in current portals. A portl...