947 resultados para Factory of software
Resumo:
The Software Engineering (SE) community has historically focused on working with models to represent functionality and persistence, pushing interaction modelling into the background, which has been covered by the Human Computer Interaction (HCI) community. Recently, adequately modelling interaction, and specifically usability, is being considered as a key factor for success in user acceptance, making the integration of the SE and HCI communities more necessary. If we focus on the Model-Driven Development (MDD) paradigm, we notice that there is a lack of proposals to deal with usability features from the very first steps of software development process. In general, usability features are manually implemented once the code has been generated from models. This contradicts the MDD paradigm, which claims that all the analysts? effort must be focused on building models, and the code generation is relegated to model to code transformations. Moreover, usability features related to functionality may involve important changes in the system architecture if they are not considered from the early steps. We state that these usability features related to functionality can be represented abstractly in a conceptual model, and their implementation can be carried out automatically.
Resumo:
Although the aim of empirical software engineering is to provide evidence for selecting the appropriate technology, it appears that there is a lack of recognition of this work in industry. Results from empirical research only rarely seem to find their way to company decision makers. If information relevant for software managers is provided in reports on experiments, such reports can be considered as a source of information for them when they are faced with making decisions about the selection of software engineering technologies. To bridge this communication gap between researchers and professionals, we propose characterizing the information needs of software managers in order to show empirical software engineering researchers which information is relevant for decision-making and thus enable them to make this information available. We empirically investigated decision makers? information needs to identify which information they need to judge the appropriateness and impact of a software technology. We empirically developed a model that characterizes these needs. To ensure that researchers provide relevant information when reporting results from experiments, we extended existing reporting guidelines accordingly.We performed an experiment to evaluate our model with regard to its effectiveness. Software managers who read an experiment report according to the proposed model judged the technology?s appropriateness significantly better than those reading a report about the same experiment that did not explicitly address their information needs. Our research shows that information regarding a technology, the context in which it is supposed to work, and most importantly, the impact of this technology on development costs and schedule as well as on product quality is crucial for decision makers.
Resumo:
The Safety Certification of Software-Intensive Systems with Reusable Components project, in short SafeCer (www.safecer.eu),is targeting increased efficiency and reduced time-to-market by composable safety certification of safety- relevant embedded systems. The industrial domains targeted are within automotive and construction equipment, avionics, and rail. Some of the companies involved are: Volvo Tech- nology, Thales, TTTech, and Intecs among others. SafeCer includes more than 30 partners in six different countries and has a budget of e25.7 millions. A primary objective is to provide support for system safety arguments based on arguments and properties of system components as well as to provide support for generation of corresponding evidence in a similar compositional way. By providing support for efficient reuse of certification and stronger links between certification and development, compo- nent reuse will be facilitated, and by providing support for reuse across domains the amount of components available for reuse will increase dramatically. The resulting efficiency and reduced time to market will, together with increased quality and reduced risk, increase competitiveness and pave the way for a cross-domain market for software components qualified for certification.
Resumo:
La rápida evolución experimentada en los últimos años por las tecnologías de Internet ha estimulado la proliferación de recursos software en varias disciplinas científicas, especialmente en bioinformática. En la mayoría de los casos, la tendencia actual es publicar dichos recursos como servicios accesibles libremente a través de Internet, utilizando tecnologías y patrones de diseño definidos para la implementación de Arquitecturas Orientadas a Servicios (SOA). La combinación simultánea de múltiples servicios dentro de un mismo flujo de trabajo abre la posibilidad de crear aplicaciones potencialmente más útiles y complejas. La integración de dichos servicios plantea grandes desafíos, tanto desde un punto de vista teórico como práctico, como por ejemplo, la localización y acceso a los recursos disponibles o la coordinación entre ellos. En esta tesis doctoral se aborda el problema de la identificación, localización, clasificación y acceso a los recursos informáticos disponibles en Internet. Con este fin, se ha definido un modelo genérico para la construcción de índices de recursos software con información extraída automáticamente de artículos de la literatura científica especializada en un área. Este modelo consta de seis fases que abarcan desde la selección de las fuentes de datos hasta el acceso a los índices creados, pasando por la identificación, extracción, clasificación y “curación” de la información relativa a los recursos. Para verificar la viabilidad, idoneidad y eficiencia del modelo propuesto, éste ha sido evaluado en dos dominios científicos diferentes—la BioInformática y la Informática Médica—dando lugar a dos índices de recursos denominados BioInformatics Resource Inventory (BIRI) y electronic-Medical Informatics Repository of Resources(e-MIR2) respectivamente. Los resultados obtenidos de estas aplicaciones son presentados a lo largo de la presente tesis doctoral y han dado lugar a varias publicaciones científicas en diferentes revistas JCR y congresos internacionales. El impacto potencial y la utilidad de esta tesis doctoral podrían resultar muy importantes teniendo en cuenta que, gracias a la generalidad del modelo propuesto, éste podría ser aplicado en cualquier disciplina científica. Algunas de las líneas de investigación futuras más relevantes derivadas de este trabajo son esbozadas al final en el último capítulo de este libro. ABSTRACT The rapid evolution experimented in the last years by the Internet technologies has stimulated the proliferation of heterogeneous software resources in most scientific disciplines, especially in the bioinformatics area. In most cases, current trends aim to publish those resources as services freely available over the Internet, using technologies and design patterns defined for the implementation of Service-Oriented Architectures (SOA). Simultaneous combination of various services into the same workflow opens the opportunity of creating more complex and useful applications. Integration of services raises great challenges, both from a theoretical to a practical point of view such as, for instance, the location and access to the available resources or the orchestration among them. This PhD thesis deals with the problem of identification, location, classification and access to informatics resources available over the Internet. On this regard, a general model has been defined for building indexes of software resources, with information extracted automatically from scientific articles from the literature specialized in the area. Such model consists of six phases ranging from the selection of data sources to the access to the indexes created, covering the identification, extraction, classification and curation of the information related to the software resources. To verify the viability, feasibility and efficiency of the proposed model, it has been evaluated in two different scientific domains—Bioinformatics and Medical Informatics—producing two resources indexes named BioInformatics Resources Inventory (BIRI) and electronic-Medical Informatics Repository of Resources (e-MIR2) respectively. The results and evaluation of those systems are presented along this PhD thesis, and they have produced different scientific publications in several JCR journals and international conferences. The potential impact and utility of this PhD thesis could be of great relevance considering that, thanks to the generality of the proposed model, it could be successfully extended to any scientific discipline. Some of the most relevant future research lines derived from this work are outlined at the end of this book.
Resumo:
El trabajo ha sido realizado dentro del marco de los proyectos EURECA (Enabling information re-Use by linking clinical REsearch and Care) e INTEGRATE (Integrative Cancer Research Through Innovative Biomedical Infrastructures), en los que colabora el Grupo de Informática Biomédica de la UPM junto a otras universidades e instituciones sanitarias europeas. En ambos proyectos se desarrollan servicios e infraestructuras con el objetivo principal de almacenar información clínica, procedente de fuentes diversas (como por ejemplo de historiales clínicos electrónicos de hospitales, de ensayos clínicos o artículos de investigación biomédica), de una forma común y fácilmente accesible y consultable para facilitar al máximo la investigación de estos ámbitos, de manera colaborativa entre instituciones. Esta es la idea principal de la interoperabilidad semántica en la que se concentran ambos proyectos, siendo clave para el correcto funcionamiento del software del que se componen. El intercambio de datos con un modelo de representación compartido, común y sin ambigüedades, en el que cada concepto, término o dato clínico tendrá una única forma de representación. Lo cual permite la inferencia de conocimiento, y encaja perfectamente en el contexto de la investigación médica. En concreto, la herramienta a desarrollar en este trabajo también está orientada a la idea de maximizar la interoperabilidad semántica, pues se ocupa de la carga de información clínica con un formato estandarizado en un modelo común de almacenamiento de datos, implementado en bases de datos relacionales. El trabajo ha sido desarrollado en el periodo comprendido entre el 3 de Febrero y el 6 de Junio de 2014. Se ha seguido un ciclo de vida en cascada para la organización del trabajo realizado en las tareas de las que se compone el proyecto, de modo que una fase no puede iniciarse sin que se haya terminado, revisado y aceptado la fase anterior. Exceptuando la tarea de documentación del trabajo (para la elaboración de esta memoria), que se ha desarrollado paralelamente a todas las demás. ----ABSTRACT--- The project has been developed during the second semester of the 2013/2014 academic year. This Project has been done inside EURECA and INTEGRATE European biomedical research projects, where the GIB (Biomedical Informatics Group) of the UPM works as a partner. Both projects aim is to develop platforms and services with the main goal of storing clinical information (e.g. information from hospital electronic health records (EHRs), clinical trials or research articles) in a common way and easy to access and query, in order to support medical research. The whole software environment of these projects is based on the idea of semantic interoperability, which means the ability of computer systems to exchange data with unambiguous and shared meaning. This idea allows knowledge inference, which fits perfectly in medical research context. The tool to develop in this project is also "semantic operability-oriented". Its purpose is to store standardized clinical information in a common data model, implemented in relational databases. The project has been performed during the period between February 3rd and June 6th, of 2014. It has followed a "Waterfall model" of software development, in which progress is seen as flowing steadily downwards through its phases. Each phase starts when its previous phase has been completed and reviewed. The task of documenting the project‟s work is an exception; it has been performed in a parallel way to the rest of the tasks.
Resumo:
In this dissertation, after testing that neither the definition of Agile methodologies, nor the current tools that support them, such as Scrum or XP, gave guidance for stages of software development prior to the definition of the first interaction of development; we proceeded to study the state of the art of Inception techniques, that is, techniques to deal with this early phase of the project, that would help guide its development. From the analysis of these Inception techniques, we defined what we considered as the essential properties of an Inception framework. With that list at hand, it was found that no current Inception framework supported all the features, also, we found that it did not exist, either, any software application on the market that did it. Finally, after checking the above gaps, we defined the Inception framework "Agile Incepti-ON", with all the practices necessary to meet the requirements specified above. In addition to this, a software application was developed to support the practices defined in the Inception framework, called "Agile Dojo".
Resumo:
Mode switches are used to partition the system’s behavior into different modes to reduce the complexity of large embedded systems. Such systems operate in multiple modes in which each one corresponds to a specific application scenario; these are called Multi-Mode Systems (MMS). A different piece of software is normally executed for each mode. At any given time, the system can be in one of the predefined modes and then be switched to another as a result of a certain condition. A mode switch mechanism (or mode change protocol) is used to shift the system from one mode to another at run-time. In this thesis we have used a hierarchical scheduling framework to implement a multi-mode system called Multi-Mode Hierarchical Scheduling Framework (MMHSF). A two-level Hierarchical Scheduling Framework (HSF) has already been implemented in an open source real-time operating system, FreeRTOS, to support temporal isolation among real-time components. The main contribution of this thesis is the extension of the HSF featuring a multimode feature with an emphasis on making minimal changes in the underlying operating system (FreeRTOS) and its HSF implementation. Our implementation uses fixed-priority preemptive scheduling at both local and global scheduling levels and idling periodic servers. It also now supports different modes of the system which can be switched at run-time. Each subsystem and task exhibit different timing attributes according to mode, and upon a Mode Change Request (MCR) the task-set and timing interfaces of the entire system (including subsystems and tasks) undergo a change. A Mode Change Protocol specifies precisely how the system-mode will be changed. However, an application may not only need to change a mode but also a different mode change protocol semantic. For example, the mode change from normal to shutdown can allow all the tasks to be completed before the mode itself is changed, while changing a mode from normal to emergency may require aborting all tasks instantly. In our work, both the system mode and the mode change protocol can be changed at run-time. We have implemented three different mode change protocols to switch from one mode to another: the Suspend/resume protocol, the Abort protocol, and the Complete protocol. These protocols increase the flexibility of the system, allowing users to select the way they want to switch to a new mode. The implementation of MMHSF is tested and evaluated on an AVR-based 32 bit board EVK1100 with an AVR32UC3A0512 micro-controller. We have tested the behavior of each system mode and for each mode change protocol. We also provide the results for the performance measures of all mode change protocols in the thesis. RESUMEN Los conmutadores de modo son usados para particionar el comportamiento del sistema en diferentes modos, reduciendo así la complejidad de grandes sistemas empotrados. Estos sistemas tienen multiples modos de operación, cada uno de ellos correspondiente a distintos escenarios y para distintas aplicaciones; son llamados Sistemas Multimodales (o en inglés “Multi-Mode Systems” o MMS). Normalmente cada modo ejecuta una parte de código distinto. En un momento dado el sistema, que está en un modo concreto, puede ser cambiado a otro modo distinto como resultado de alguna condicion impuesta previamente. Los mecanismos de cambio de modo (o protocolos de cambio de modo) son usados para mover el sistema de un modo a otro durante el tiempo de ejecución. En este trabajo se ha usado un modelo de sistema operativo para implementar un sistema multimodo llamado MMHSF, siglas en inglés correspondientes a (Multi-Mode Hierarchical Scheduling Framework). Este sistema está basado en el HSF (Hierarchical Scheduling Framework), un modelo de sistema operativo con jerarquía de dos niveles, implementado en un sistema operativo en tiempo real de libre distribución llamado FreeRTOS, capaz de permitir el aislamiento temporal entre componentes. La principal contribución de este trabajo es la ampliación del HSF convirtiendolo en un sistema multimodo realizando los cambios mínimos necesarios sobre el sistema operativo FreeRTOS y la implementación ya existente del HSF. Esta implementación usa un sistema de planificación de prioridad fija para ambos niveles de jerarquía, ocupando el tiempo entre tareas con un “modo reposo”. Además el sistema es capaz de cambiar de un modo a otro en tiempo de ejecución. Cada subsistema y tarea son capaces de tener distintos atributos de tiempo (prioridad, periodo y tiempo de ejecución) en función del modo. Bajo una demanda de cambio de modo (Mode Change Request MCR) se puede variar el set de tareas en ejecución, así como los atributos de los servidores y las tareas. Un protocolo de cambio de modo espeficica precisamente cómo será cambiado el sistema de un modo a otro. Sin embargo una aplicación puede requerir no solo un cambio de modo, sino que lo haga de una forma especifica. Por ejemplo, el cambio de modo de “normal” a “apagado” puede permitir a las tareas en ejecución ser finalizadas antes de que se complete la transición, pero sin embargo el cambio de “normal” a “emergencia” puede requerir abortar todas las tareas instantaneamente. En este trabajo ambas características, tanto el modo como el protocolo de cambio, pueden ser cambiadas en tiempo de ejecución, pero deben ser previamente definidas por el desarrollador. Han sido definidos tres protocolos de cambios: el protocolo “suspender/continuar”, protocolo “abortar” y el protocolo “completar”. Estos protocolos incrementan la flexibilidad del sistema, permitiendo al usuario seleccionar de que forma quieren cambiar hacia el nuevo modo. La implementación del MMHSF ha sido testada y evaluada en una placa AVR EVK1100, con un micro-controlador AVR32UC3A0. Se ha comprobado el comportamiento de los distintos modos para los distintos protocolos, definidos previamente. Como resultado se proporcionan las medidades de rendimiento de los distintos protocolos de cambio de modo.
Resumo:
El presente texto se ha desarrollado como Proyecto Fin de Grado en la Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación de la Universidad Politécnica de Madrid en colaboración con la Consultora Tecnológica everis. El mismo tiene como objetivo realizar un estudio de los requisitos necesarios para poder desplegar un servicio que permita ofrecer a las Operadoras Móviles Virtuales (OMV) soporte técnico a sus clientes a través de las redes sociales. Este módulo establecerá una nueva vía de comunicación entre el consumidor y el cliente de la OMV con la propia OMV, el cual se caracterizará por una alta accesibilidad y una gran rapidez en el servicio permitiendo de este modo, una mayor satisfacción del cliente con su operador móvil y por tanto de una nueva vía para conseguir la fidelización del mismo y la captación de nuevos clientes. Para ello, este proyecto se lleva a cabo sobre el sistema de información 4mobile el cual es comercializado por la mencionada Consultora Tecnológica. Este sistema consiste en una plataforma web la cual permite cubrir todos los procesos de negocio comunes que un OMV necesita gestionar. Es por ello, que el mencionado estudio se centra en la evaluación de los aspectos necesarios para la integración de un módulo de estas características dentro de la plataforma de 4mobile. Este módulo, estará basado en una herramienta software que permitirá gestionar el ciclo de vida completo del comentario realizado por el cliente a través de una red social, desde que es publicado por el cliente, hasta que se haya respondido al mismo y su solución sea considerada como satisfactoria por el cliente. Por ello, y de cara a definir correctamente esta herramienta, será necesario un detallado análisis el cual recoja diversos aspectos y que a lo largo del texto, será denominado como Plan de Marketing de Medios Sociales (PMMS). Estos aspectos versarán tanto de las necesidades tecnológicas para su mencionada integración, como de la serie de características funcionales que una solución basada en servicio técnico a través de las redes sociales deberá poseer con el objetivo de ofrecer un servicio técnico de calidad. Finalmente, estas funcionalidades y necesidades tecnológicas se expondrán en forma de propuesta a everis para su integración en la plataforma 4mobile junto con un análisis de diseño a alto nivel software de la solución a desarrollar. ABSTRACT. This text has been developed as Final Degree Project in the Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación de la Universidad Politécnica de Madrid in collaboration with the Technology Consultant everis, aims to conduct a study of how to provide technical support through social networks and the evaluation of the integration of a social support module within the system platform 4mobile, which cover all business processes that need to manage a Mobile Virtual Network Operator (MVNO), which is marketed by above-mentioned consultant . This module will establish a new communication channel between the consumer and the client with the OMV and itself, which is characterized by high accessibility and great fast service. Thus will allow a higher customer satisfaction with him service and thus a new way to get the same loyalty and attract new customers To this end, this project is performed on the information system 4mobile which is marketed by the consulting part thereof everis. This system is a platform to cover all business processes that need to manage an MVNO. Therefore, the mentioned study focuses on the evaluation of the elements necessary for integrating module these features within the platform 4mobile. This module will be based on a software tool for managing the entire lifecycle of the comment made by the customer via social networking, from the moment it is published, until it has been respond and their solution is considered satisfactory for the customer. So, in order to properly define this tool, a detailed analysis which will be necessary to collect various aspects and throughout the text, it will be referred to as Plan of Social Media Marketing (PMMS). These aspects will be address both: the technological needs for the mentioned integration, and the number of functional characteristics-based service through social networking solution, as this must in order to provide a quality service Finally, these goals and requirements will be discussed as everis offer for integration into the platform 4mobile analysis along with a high level of software design to develop the solution.
Resumo:
En este Trabajo fin de Grado se ha creado la parte funcional de una aplicación móvil dejando la parte de la interfaz libre para su futura implementación. La aplicación es un magnificador y está destinada a aquellas personas con baja visión, permitiéndoles hacer aumento de imágenes y textos capturados por la cámara del dispositivo, con la posibilidad de que puedan cambiar algunos parámetros de la magnificación para poderlo ver mejor. La parte funcional de la aplicación fue nombrada como librería magnificador, ya que se compone de métodos implementados en Java que permiten hacer diferentes modificaciones de la imagen o del video visualizado. Se cubrieron todas las fases de desarrollo más significativas de un sistema software: análisis, diseño, implementación y pruebas. La aplicación se desarrolló para Android. Se trabajó en Eclipse con Android SDK. Para el procesamiento de las imágenes se aprovechó una librería externa, OpenCV, para evitar “inventar la rueda”, es decir, no escribir algoritmos de transformación de las imágenes que seguramente no podrían ser tan eficientes como los implementados en dicha librería creada por Intel. ---ABSTRACT---In this Final Project, the functional part of mobile phone application was created, leaving the interface parte for future implementation. The application is a magnifier and is oriented to people with very low vision allowing them to enlarge images of printed documents captured by the camera of the mobile phone device, with the possibility that they can change some parameters of magnification so that it can see better. The functional part of this application was named magnifier library because it composes of methods, implemented in Java, that allows changing between different modes of the preview of the image or video. All of the most significant phases of software development were satisfied: analysis, design, implementation and tests. The application was created for Android. The work was done in Eclipse with Android SDK plugin. For the image processing, an external library, OpenCv, was used, to avoid the unreachable intent of creation of effective algorithms that would never be so potent like the implemented in this library created by Intel.
Resumo:
La usabilidad es un atributo de la calidad del software que se encuentra en la mayoría de las clasificaciones. En este contexto, se entiende por usabilidad la medida en que un producto satisface las necesidades de los stakeholders para alcanzar determinados objetivos de eficacia, eficiencia y satisfacción sin efectos adversos en un contexto específico de uso. En este contexto, no es de extrañar que la usabilidad sea cada vez más reconocida como uno de los factores críticos para la aceptación de un sistema software. En la literatura se encuentran recomendaciones para mejorar la usabilidad de los sistemas software. Sin embargo, no existen datos empíricos que demuestren cómo estas recomendaciones contribuyen positiva o negativamente a cada atributo de usabilidad. En este contexto, el objetivo de la tesis doctoral es la obtención de evidencias empíricas sobre el impacto de la inclusión de mecanismos de usabilidad en un sistema software, más concretamente en los atributos de eficacia, eficiencia y satisfacción-- En esta tesis doctoral se trabaja con mecanismos de usabilidad con gran impacto en la arquitectura software, ya que los mismos deben ser especialmente considerados durante el proceso de desarrollo software. Para obtener evidencias empíricas sobre la inclusión de dichos mecanismos, se ha realizado un experimento piloto y 4 experimentos definitivos utilizando aplicaciones software especialmente desarrolladas para tal fin. Una vez realizada la contrastación empírica de la influencia de estos mecanismos para diferentes sistemas software se pueden realizar las siguientes recomendaciones generales: -La inclusión de cada uno de los mecanismos considerados aumenta considerablemente la satisfacción del usuario en su interacción con las aplicaciones software. -La inclusión de aquellos mecanismos que introducen cuadros de interacción adicionales, disminuye la eficiencia de los usuarios, ya que aumenta el tiempo de duración de las tareas. -Existen una serie de mecanismos que como consecuencia de su ausencia en las aplicaciones resulta imposible la realización de las tareas asociadas a los mismos. Dentro de éste grupo de mecanismos se encuentran aquellos que permiten cancelar o deshacer acciones previamente tomadas y aquellos que provean ayuda en la introducción de información en formularios. Esto implica que su presencia permite la realización exitosa de las tareas y como consecuencia la interacción es mucho más eficaz. En definitiva, se ha encontrado que los distintos mecanismos de usabilidad tienen un impacto diferente en cada atributo, dependiendo su inclusión del/los atributos a potenciar en cada proyecto. Usability is an aspect of software quality that´s found in most classifications. In this context usability is understood as the measure in which a product satisfies the needs of the stakeholders in order to reach certain effectiveness, efficiency and satisfaction goals without adverse sideeffects in a specific context of use. It´s no wonder usability is increasingly being recognized as one of the critical factors for the acceptance of a software system. Recommendations are found in literature to improve the usability of software systems. Nevertheless, there is no empirical data that shows how these recommendations contribute positively or negatively to each usability aspect. In this context, the objective of this doctoral thesis is to obtain empirical evidence on the impact of the inclusion of usability mechanisms in a software system, specifically in the attributes of effectiveness, efficiency and satisfaction. This doctoral thesis deals with usability mechanisms of great impact in software architecture, since they have to be considered during the software development process. In order to get empirical evidence on the inclusion of such mechanisms, a pilot experiment and four definitive experiments have been performed through software applications especially developed for this end. Once the empirical assessment of the influence of these mechanisms on different software systems has been performed, the following general recommendations can be made: -The inclusion of each of the considered mechanisms considerably increases the user´s satisfaction in his interaction with software applications. -The inclusion of those mechanisms that introduce additional interaction frames diminishes the efficiency of the users, since it increases task duration time. -As a consequence of being absent in applications, there is a series of mechanisms whose associated tasks are impossible to perform. Within this group we find those mechanisms that allow cancelling or undoing previous actions, and those that provide help with the introduction of information in forms. This implies that their presence allows the successful completion of tasks, and as a consequence, the interaction is much more effective. In summary, it has been found that the diverse usability mechanisms has a different impact on each attribute, and their inclusion depends on the attribute or attributes to enhance in each project.
Resumo:
La usabilidad es un atributo de calidad de un sistema software que llega a ser crítico en sistemas altamente interactivos. Desde el campo de la Interacción Persona-Ordenador se proponen recomendaciones que permiten alcanzar un nivel adecuado de usabilidad en un sistema. En la disciplina de la Ingeniería de Software se ha establecido que algunas de estas recomendaciones afectan a la funcionalidad principal de los sistemas y no solo a la interfaz de usuario. Este tipo de recomendaciones de usabilidad se deben tener en cuenta desde las primeras actividades y durante todo el proceso de desarrollo, así como se hace con atributos tales como la seguridad, la facilidad de mantenimiento o el rendimiento. Desde la Ingeniería de Software se han hecho estudios y propuestas para abordar la usabilidad en las primeras actividades del desarrollo. En particular en la educción de requisitos y diseño de la arquitectura. Estas propuestas son de un alto nivel de abstracción. En esta investigación se aborda la usabilidad en actividades avanzadas del proceso de desarrollo: el diseño detallado y la programación. El objetivo de este trabajo es obtener, formalizar y validar soluciones reutilizables para la usabilidad en estas actividades. En este estudio se seleccionan tres funcionalidades de usabilidad identificadas como de alto impacto en el diseño: Abortar Operación, Retroalimentación de Progreso y Preferencias. Para la obtención de elementos reutilizables se utiliza un método inductivo. Se parte de la construcción de aplicaciones web particulares y se induce una solución general. Durante la construcción de las aplicaciones se mantiene la trazabilidad de los elementos relacionados con cada funcionalidad de usabilidad. Al finalizar se realiza un análisis de elementos comunes, y los hallazgos se formalizan como patrones de diseño orientados a la implementación y patrones de programación en cada uno de los lenguajes utilizados: PHP, VB .NET y Java. Las soluciones formalizadas como patrones se validan usando la metodología de estudio de casos. Desarrolladores independientes utilizan los patrones para la inclusión de las tres funcionalidades de usabilidad en dos nuevas aplicaciones web. Como resultado, los desarrolladores pueden usar con éxito las soluciones propuestas para dos de las funcionalidades: Abortar Operación y Preferencias. La funcionalidad Retroalimentación de Progreso no puede ser implementada completamente. Se concluye que es posible obtener elementos reutilizables para la implementación de cada funcionalidad de usabilidad. Estos elementos incluyen: escenarios de aplicación, que son la combinación de casuísticas que generan las funcionalidades de usabilidad, responsabilidades comunes necesarias para cubrir los escenarios, componentes comunes para cumplir con las responsabilidades, elementos de diseño asociados a los componentes y el código que implementa el diseño. Formalizar las soluciones como patrones resulta útil para comunicar los hallazgos a otros desarrolladores y los patrones se mejoran a través de su utilización en nuevos desarrollos. La implementación de funcionalidades de usabilidad presenta características que condicionan su reutilización, en particular, el nivel de acoplamiento de la funcionalidad de usabilidad con las funcionalidades de la aplicación, y la complejidad interna de la solución. ABSTRACT Usability is a critical quality attribute of highly interactive software systems. The humancomputer interaction field proposes recommendations for achieving an acceptable system usability level. The discipline of software engineering has established that some of these recommendations affect not only the user interface but also the core system functionality. This type of usability recommendations must be taken into account as of the early activities and throughout the software development process as in the case of attributes like security, ease of maintenance or performance. Software engineering has conducted studies and put forward proposals for tackling usability in the early development activities, particularly requirements elicitation and architecture design. These proposals have a high level of abstraction. This research addresses usability in later activities of the development process: detailed design and programming. The goal of this research is to discover, specify and validate reusable usability solutions for detailed design and programming. Abort Operation, Feedback and Preferences, three usability functionalities identified as having a high impact on design, are selected for the study. An inductive method, whereby a general solution is induced from particular web applications built for the purpose, is used to discover reusable elements. During the construction of the applications, the traceability of the elements related to each usability functionality is maintained. At the end of the process, the common and possibly reusable elements are analysed. The findings are specified as implementation-oriented design patterns and programming patterns for each of the languages used: PHP, VB .NET and Java. The solutions specified as patterns are validated using the case study methodology. Independent developers use the patterns in order to build the three usability functionalities into two new web applications. As a result, the developers successfully use the proposed solutions for two of the functionalities: Abort Operation and Preferences. The Progress Feedback functionality cannot be fully implemented. We conclude that it is possible to discover reusable elements for implementing each usability functionality. These elements include: application scenarios, which are combinations of cases that generate usability functionalities, common responsibilities to cover the scenarios, common components to fulfil the responsibilities, design elements associated with the components and code implementing the design. It is useful to specify solutions as patterns in order to communicate findings to other developers, and patterns improve through further use in other development projects. Reusability depends on the features of usability functionality implementation, particularly the level of coupling of the usability functionality with the application functionalities and the internal complexity of the solution.
Resumo:
Actualmente las redes sociales son muy utilizadas en todo el mundo, existen diferentes tipos de redes sociales con las que podemos conectar con amigos, ampliar nuestra red de contactos profesionales, aprender cosas nuevas, etc. Su elevado uso las ha convertido en uno de los negocios más rentables en internet generando fortunas para sus creadores, principalmente, a través de la publicidad. Muchas redes sociales son creadas por empresas que cuentan con un equipo experto, pero otras muchas han sido creadas por personas comunes, con bajos conocimientos informáticos, muchos motivados en sus aficiones o carreras profesionales, que al no encontrar nada en la red que les resulte útil, han decidido desarrollar ellos mismos sus propias redes sociales con la ayuda de herramientas informáticas. Una de esas herramientas son los sistemas de gestión de contenidos (CMS), con los cuales ahorraremos mucho tiempo de desarrollo y no necesitaremos invertir grandes cantidades de dinero. Este proyecto trata, principalmente, de cómo crear redes sociales haciendo uso de estas herramientas y tiene el objetivo de ser lo suficientemente claro para que cualquier persona, sin importar su nivel de conocimientos técnicos, sea capaz de desarrollar sus ideas. En la primera parte del proyecto se habla sobre las redes sociales en general y el impacto de éstas en la sociedad actual, donde se ve que, actualmente, debido a la cantidad de redes sociales y a la accesibilidad móvil, el uso de las redes sociales es una cotidianidad. También se explican algunos métodos para obtener beneficios económicos de una red social y las ventajas que presentan las redes sociales específicas frente a las generalistas, concluyendo que las redes sociales específicas van ganando mayor protagonismo con el paso del tiempo. Además, se habla sobre la crítica de las redes sociales desde el punto de vista del usuario de la red, donde se resalta el tema de la administración de la publicidad y la privatización que han supuesto las redes sociales. Posteriormente se presenta una base teórica sobre las herramientas antes mencionadas, los CMS. Se explica su funcionamiento, clasificación y las ventajas que obtenemos con el uso de este software en nuestros proyectos, de los cuales destacan el corto tiempo de desarrollo y el bajo coste. Al final se eligen los CMS de estudio en este proyecto principalmente en base a tres criterios: licencia, cuota de uso y características de red social. En la segunda parte del proyecto se habla acerca de los CMS elegidos: WordPress con su plugin BuddyPress, Elgg, y Joomla con su plugin JomSocial. Se explican las características de cada uno de ellos y se muestran ejemplos de redes sociales reales hechas con estos CMS. En esta parte del proyecto se hace un uso práctico de estos CMS y se detalla paso a paso todo el proceso de creación de una red social (instalación, configuración y personalización de la red social) para cada CMS. El resultado son tres redes sociales hechas con distintos CMS, de los cuales se hace una valoración en base a la experiencia obtenida con el uso de los mismos, concluyéndose que JomSocial es una buena opción para redes sociales de uso generalista, pero para redes específicas son mejores tanto Elgg como BuddyPress, presentando este último una ligera ventaja por tener una gran comunidad en español. ABSTRACT. Nowadays social networks are widely used throughout the world, there are different types of social networks where you can connect with friends, expand your network of professional contacts, learn new things, etc. Its high usage has turned them into one of the most profitable businesses on Internet generating fortunes to its developers, mainly through advertising. Many social networks are developed by companies that count on an expert team, but many others have been created by ordinary people, with low computer skills, many of them motivated in their hobbies or careers, that did not find anything useful on Internet and decide to develop their own social networks with the help of software tools. One of those tools is a content management system (CMS), which will help us to save a lot of development time and we will not need to invest large amounts of money. This project is, mainly, about how to create social networks using these tools and aims to be clear enough to help anyone, regardless of their computer skills, to develop their ideas. The first part of the project is about social networks in general and the impact on today's society, where we can see that, due to the number of social networks and mobile accessibility, the use of social networks is daily. Also it explains some ways to obtain economic benefits from a social network and the advantages of specific social networks against generalist social networks, concluding that specific social networks are gaining more prominence with the passage of time. In addition, it refers on social networks critique from the point of view of social network users, where it highlights the issue of the advertising administration and privatization which have brought social networks. Subsequently, it presents a theoretical base of the above mentioned tools, CMS. Explains their operation, classification and the advantages we get with the use of this software in our projects, where the short development time and lower cost are highlighted. At the end the CMS studied in this project are chosen mainly based on three criteria: license, community size and social network features. The second part of the project is about the chosen CMS: WordPress with its plugin BuddyPress, Elgg, and Joomla with its plugin JomSocial. It explains features of all of them and shows examples of real social networks developed with these CMS. This part of the project is a practical use of these CMS and detailed step by step throughout the process of creating a social network (installation, configuration and customization of the social network) for each CMS. The result are three social networks made with different CMS, from which is made an assessment on the basis of the experience gained with the use of these software, concluding that JomSocial is a good choice to develop generalist social networks, but for specific social networks are better Elgg and BuddyPress, presenting the latter a slight advantage by having a large community in Spanish.
Resumo:
El software es, cada vez más, una parte muy importante de cualquier circuito electrónico moderno, por ejemplo, un circuito realizado con algún tipo de microprocesador debe incorporar un programa de control por pequeño que sea. Al utilizarse programas informáticos en los circuitos electrónicos modernos, es muy aconsejable, por no decir imprescindible, realizar una serie de pruebas de calidad del diseño realizado. Estas pruebas son cada vez más complicadas de realizar debido al gran tamaño del software empleado en los sistemas actuales, por este motivo, es necesario estructurar una serie de pruebas con el fin de realizar un sistema de calidad, y en algunos casos, un sistema que no presente ningún peligro para el ser humano o el medio ambiente. Esta propuesta consta de la explicación de las técnicas de diseño de pruebas que existen actualmente (por lo menos las más básicas ya que es un tema muy extenso) para realizar el control de calidad del software que puede contener un sistema embebido. Además, muchos circuitos electrónicos, debido a su control o exigencia hardware, es imprescindible que sean manipulados por algún programa que requiera más que un simple microprocesador, me refiero a que se deban controlar por medio de un pequeño programa manipulado por un sistema operativo, ya sea Linux, AIX, Unix, Windows, etc., en este caso el control de calidad se debería llevar a cabo con otras técnicas de diseño. También se puede dar el caso que el circuito electrónico a controlar se deba hacer por medio de una página web. El objetivo es realizar un estudio de las actuales técnicas de diseño de pruebas que están orientadas al desarrollo de sistemas embebidos. ABSTRACT. Software is increasingly a very important part of any modern electronic circuit, for example, a circuit made with some type of microprocessor must incorporate a control program no matter the small it is. When computer programs are used in modern electronic circuits, it is quite advisable if not indispensable to perform a series of quality tests of the design. These tests are becoming more and more difficult to be performed due to the large size of the software used in current systems, which is why it is necessary to structure a series of tests in order to perform a quality system, and in some cases, a system with no danger to humans or to the environment. This proposal consists of an explanation of the techniques used in the tests (at least the most basic ones since it is a very large topic) for quality control of software which may contain an embedded system. In addition, a lot of electronic circuits, due to its control or required hardware, it is essential to be manipulated by a program that requires more than a simple microprocessor, I mean that they must be controlled by means of a small program handled by an operating system, being Linux, AIX, Unix, Windows, etc., in this case the quality control should be carried out with other design techniques. The objective is to study the current test design techniques that are geared to the development of embedded systems. It can also occur that the electronic circuit should be controlled by means of a web page.
Resumo:
El principal problema que impide actualmente una mayor utilización de las máquinas paralelas es la falta de herramientas de programación que permitan generar programas transportables a máquinas con diferentes prestaciones. En este trabajo se ha estudiado si los lenguajes con paralelismo explícito cumplen este requisito y son, por lo tanto, adecuados para programar este tipo de máquinas. El exceso de paralelismo, esto es, el uso de mayor paralelismo en el programa que el proporcionado por la máquina para esconder la latencia en la comunicación, se presenta en este trabajo como una solución a los problemas de eficiencia de los programas con paralelismo explícito cuando se ejecutan en máquinas que no tienen una granularidad adecuada. Con esta técnica, por lo tanto, los programas escritos con estos lenguajes pueden transportarse con eficiencia a diferentes máquinas. Para llevar a cabo el estudio de los lenguajes con paralelismo explícito, se ha desarrollado un modelo abstracto de paralelismo, en el cual un sistema está formado por una jerarquía de máquinas virtuales paralelas. Este modelo permite realizar un análisis genérico de la implementación de este tipo de lenguajes, ya sea sobre una máquina con sistema operativo o directamente sobre la máquina física. Este análisis genérico se ha aplicado a un lenguaje de este tipo, el lenguaje Ada. Se han estudiado las características específicas de Ada que pueden influir en la implementación eficiente del lenguaje, analizando también la propuesta de modificación del lenguaje correspondiente al proceso de revisión Ada 9X. Dentro del marco del modelo de paralelismo, se analiza también la problemática específica de las implementaciones del lenguaje sobre el sistema operativo. En este tipo de implementaciones, las interacciones de un programa con el entorno externo pueden causar ciertos problemas, como el bloqueo del proceso correspondiente del sistema operativo, que disminuyen el rendimiento del programa. Se analizan estos problemas y se proponen soluciones a los mismos. Se desarrolla en profundidad un ejemplo de este tipo de problemas: El acceso al estándar gráfico GKS desde Ada.---ABSTRACT---The major obstacle to the widespread utilization of the parallel machines is the lack of programming tools allowing the development of software portable between machines with different performance. This dissertation analyzes whether languages with explicit parallelism fulfil this requirement. The approach of using programs with more parallelism than available on the machine (parallel slackness) is presented. This technique can solve the efficiency problems appearing in the execution of programs with explicit parallelism over machines with a too coarse granularity. Therefore, with this approach programs can run efficiently on different machines. A new abstract model of parallelism allowing the generic study of the implementation of languages with explicit parallelism is developed. In this model, a parallel system is described by a hierarchy of parallel virtual machines. This generic analysis is applied to Ada language. Ada specific features with problematic implementation are identified and analyzed. The change proposals to Ada language in the frame of Ada 9X revisión process are also analyzed. The specific problematic of the language implementation on top of the operating system is studied under the scope of the parallelism model. With this kind of implementation, program interactions with extemal environments can lead to problems, like the blocking of the corresponding operating system process, decreasing the program execution performance. A practical example of this kind of problems, the access to GKS (Graphic Kernel System) from Ada programs, is analyzed and the implemented solution is described.
Resumo:
This research presents an innovative and formal educational initiative that is aimed at enhancing the development of engineering students’ specific competencies when studying Engineering Project Management subject. The framework of the experience combines theoretical concepts, the development of a real-case project carried out by multidisciplinary groups of three different universities, the use of software web 2.0 tools, and group and individual assignments of students that play different roles (project managers and team members). Under this scenario, this paper focuses on monitoring the communication competence in the ever growing Project Management virtual environment. Factors such as corporal language, technical means, stage, and management specific vocabulary among others have been considered in order to assess the students’ performance on this issue. As a main contribution, the paper introduces an ad-hoc rubric that, based on previous investigations, has been adapted and tested to this specific context. Additionally, the research conducted has provided some interesting findings that suggest further actions to improve and better define future rubrics, oriented to communication or even other competencies. As specific Project Management subject concerns, it has been detected that students playing the role of Project Managers strengthen their competencies more than those ones that play the role of Team Members. It has also been detected that students have more difficulty assimilating concepts related to risk and quality management. However those concepts related with areas of knowledge like scope, time or cost have been better assimilated by the students.