15 research outputs found
System-Level Design and Virtual Prototyping of a Telecommunication Application on a NUMA Platform
International audienceThe use of model-driven approaches for embedded system design has become a common practice. Among these model-driven approaches, only a few of them include the generation of a full-system simulation comprising operating system, code generation for tasks and hardware simulation models. Even less common is the extension to massively parallel, NoC based designs, such as required for high performance streaming applications where dozens of tasks are replicated onto identical general purpose processor cores of a Multi-processor System-on-chip (MP-SoC). We present the extension of a system-level tool to handle clustered Network-on-Chip (NoC) with virtual prototyping platforms. On the one hand, the automatic generation of the virtual prototype becomes more complex as topcell, address mapping and linker script have to be adapted. On the other hand, the exploration of the design space is particularly important for this class of applications, as performance may strongly be impacted by Non Uniform Memory Access (NUMA)
Desenvolvimento de uma ferramenta de geração de código para um sistema de informação
A análise de requisitos de software e design de software são tradicionalmente inconsistentes,
nomeadamente na perspetiva de modelação de negócios, software e rastreabilidade de
implementação [1]. Este problema poderá fazer com que a fase de desenvolvimento dos
projetos seja um processo mais demorado que o esperado, e quando um dos modelos sofre uma
alteração também poderá fazer com que potencialmente não esteja garantida a rastreabilidade,
a partir de qualquer um dos modelos, até à implementação do código.
O problema maior das possíveis alterações dosrequisitos e de não ser mantida a atualização dos
modelos, é que por vezes a adaptação de um sistema, já implementado ou em vias de
implementação, não é simples, podendo fazer com que estas alterações tenham um custo
elevado, tal como um impacto negativo relativamente ao tempo de implementação, podendo
inclusivamente inviabilizar o projeto [2].
O objetivo deste projeto passa pelo desenvolvimento de uma ferramenta que permita gerar o
código que possa ser utilizado, por sua vez, no Hydra Code Generator para gerar o código para
a plataforma Hydra, de forma a estabelecer uma relação direta entre a modelação do negócio e
a implementação, e assim acelerar o processo de implementação do software, e tornar a fase
de desenvolvimento de software mais rápida e automatizada. O código deverá ser gerado tendo
em conta uma modelação de um processo de negócio. A modelação será assim baseada numa
abordagem aplicada a uma ferramenta de geração de código para a framework Hydra [3].
A principal contribuição deste projeto visa acelerar e automatizar o processo de
desenvolvimento de software utilizado na Universidade da Madeira, automatizando a
implementação com a geração de uma Domain Specific Language (DSL) para a framework Hydra,
através da implementação da relação entre o modelo de negócio, o Plataform Independent
Model (PIM), e o modelo de implementação, o Plataform Specific Model (PSM), de forma a
conseguir gerar a interface do utilizador, a lógica de negócio e a base de dados.
Posteriormente, foram realizados casos de estudo como forma de testar e verificar o
funcionamento da ferramenta implementada assim como verificar as suas limitações.Requirements analysis in software and software design are traditionally inconsistent, namely
from the perspective of business modeling, software and implementation traceability [1]. This
problem can make the development phase of the projects a process that takes longer than
expected, and when one of the models is changed, it can also make the traceability not
guaranteed, from any of the models to code implementation.
The biggest problem with possible changes in system requirements and not keeping the the
models updated is that sometimes the adaptation of a system, already implemented or in the
process of being implemented, is not simple, which can cause these changes to have a high cost,
as well as a negative impact in the implementation time, which may even make the project
unfeasible [2].
The objective of this project involves the development of a tool that allows the generation of
code that can be used, in the Hydra Code Generator to generate the code for the Hydra platform,
in order to establish a direct relationship between business modeling and implementation, and
speeding up the software implementation process, and making the software development
phase faster and more automated. The code should be generated taking into account a business
process modeling. The modeling will be based on an approach applied to a code generation tool
for the Hydra framework [3].
The main contribution of this project aims to accelerate and automate the software
development process used at the University of Madeira, automating the implementation with
the generation of a Domain Specific Language (DSL) for the Hydra framework, through the
implementation of the relationship between the business model, the Platform Independent
Model (PIM), and the implementation model, the Platform Specific Model (PSM), in order to
generate the user interface, the business logic and the database.
Later, case studies were carried out as a way of testing and checking the operation of the
implemented tool and to verify its limitations
Runtime translation of OCL-like statements on Simulink models : Expanding domains and optimising queries
Open-source model management frameworks such as OCL and ATL tend to focus on manipulating models built atop the Eclipse Modelling Framework (EMF), a de facto standard for domain specific modelling. MATLAB Simulink is a widely used proprietary modelling framework for dynamic systems that is built atop an entirely different technical stack to EMF. To leverage the facilities of open-source model management frameworks with Simulink models, these can be transformed into an EMF-compatible representation. Downsides of this approach include the synchronisation of the native Simulink model and its EMF representation as they evolve; the completeness of the EMF representation, and the transformation cost which can be crippling for large Simulink models. We propose an alternative approach to bridge Simulink models with open-source model management frameworks that uses an “on-the-fly” translation of model management constructs into MATLAB statements. Our approach does not require an EMF representation and can mitigate the cost of the upfront transformation on large models. To evaluate both approaches we measure the performance of a model validation process with Epsilon (a model management framework) on a sample of large Simulink models available on GitHub. Our previous results suggest that, with our approach, the total validation time can be reduced by up to 80%. In this paper, we expand our approach to support the management of Simulink requirements and dictionaries, and we improve the approach to perform queries on collections of model elements more efficiently. We demonstrate the use of the Simulink requirements and dictionaries with a case study and we evaluate the optimisations on collection queries with an experiment that compares the performance of a set of queries on models with different sizes. Our results suggest an improvement by up to 99% on some queries
Conservative and traceable executions of heterogeneous model management workflows
One challenge of developing large scale systems is knowing how artefacts are interrelated across tools and languages, especially when traceability is mandated e.g., by certifying authorities. Another challenge is the interoperability of all required tools to allow the software to be built, tested, and deployed efficiently as it evolves. Build systems have grown in popularity as they facilitate these activities. To cope with the complexities of the development process, engineers can adopt model-driven practices that allow them to raise the system abstraction level by modelling its domain, therefore, reducing the accidental complexity that comes from e.g., writing boilerplate code. However, model-driven practices come with challenges such as integrating heterogeneous model management tasks e.g., validation, and modelling technologies e.g., Simulink (a proprietary modelling environment for dynamic systems). While there are tools that support the execution of model-driven workflows, some support only specific modelling technologies, lack the generation of traceability information, or do not offer the cutting-edge features of build systems like conservative executions i.e., where only tasks affected by changes to resources are executed. In this work we propose ModelFlow, a workflow language and interpreter able to specify and execute model management workflows conservatively and produce traceability information as a side product. In addition, ModelFlow reduces the overhead of model loading and disposal operations by allowing model management tasks to share already loaded models during the workflow execution. Our evaluation shows that ModelFlow can perform conservative executions which can improve the performance times in some scenarios. ModelFlow is designed to support the execution of model management tasks targeting various modelling frameworks and can be used in conjunction with models from heterogeneous technologies. In addition to EMF models, ModelFlow can also handle Simulink models through a driver developed in the context of this thesis which was used to support one case study
Arquitectura dirigida por modelos aplicada al desarrollo de metodologías de aprendizaje de idiomas
Hoy en día, cada vez más gente está interesada en el aprendizaje de una segunda -e incluso de una tercera- lengua extranjera. Esto es debido al fenómeno de la globalización, y está siendo facilitado por el uso extensivo de Internet.
El proceso de aprendizaje de una lengua extranjera está definido por metodologías y -cada vez más- apoyado por la tecnología. El desarrollo de este tipo de aplicaciones es complejo (por la variedad de los entornos de ejecución, y por tener una gran cantidad de contenidos con frecuencia difíciles de validar), por lo que esta tesis propone un enfoque dirigido por modelos para desarrollo de software para dar soporte a la enseñanza de idiomas. El estudio y análisis de diferentes metodologías para el aprendizaje de idiomas ha permitido obtener, mediante un proceso de abstracción, los elementos comunes a todas ellas: En primer lugar (1) un conjunto/jerarquía de conceptos que se enseñan (contenidos), y (2) un conjunto de recursos (medios) para presentar los conceptos. Por otra parte, todas las metodologías definen (3) diversos tipos de ejercicios de aprendizaje (actividades) y (4) una secuencia o conjunto de secuencias que las relacionan (flujo de control/trabajo). Finalmente, definen una serie de (5) plantillas o disposiciones para la visualización de los contenidos y de las actividades (presentación).
Esta tesis presenta una solución Model-Driven Architecture (MDA) que permite el desarrollo de aplicaciones para el aprendizaje de idiomas a partir de modelos. Así pues, desde una capa Computational Independent Model (CIM) hasta la capa Implementation Specific Model (ISM), se presentan los meta-modelos y los editores gráficos para los distintos lenguajes específicos de dominio, que permiten modelar todo lo necesario para el desarrollo de casi cualquier metodología de aprendizaje de idiomas. Por otra parte, en esta tesis también se definen las transformaciones necesarias, y el proceso de transformación asociado, para la generación automática del código fuente (en HTML y JavaScript) de aplicaciones de aprendizaje de idiomas.
La propuesta ha sido validada a través del modelado y la generación del código fuente de los elementos de funcionalidad más importantes de la metodología Lexiway, así como de varios tipos de actividades de aprendizaje muy utilizados -y de forma muy parecida- en metodologías como Duolingo y Busuu
Combining SOA and BPM Technologies for Cross-System Process Automation
This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation