993 resultados para Engenharia de software experimental
Resumo:
A Engenharia de Software tornou-se uma das principais áreas de concentração do mundo da Ciência da Computação, pois ela abrange métodos para construir sistemas, ferramentas que fornecem apoio a construção e os procedimentos a seguir para que os métodos estejam de acordo com as ferramentas usadas [PRE 95]. No desenvolvimento de sistemas cada vez mais complexos vê-se a necessidade da utilização de equipes de pessoas no projeto e implementação. Essas pessoas podem estar geograficamente dispersas e portanto possuem a necessidade de troca de informações para que os sistemas desenvolvidos sejam adequados com o objetivo inicial e de qualidade. Assim, os sistemas cooperativos, chamados de groupware, tornaram-se uma importante ferramenta utilizada por esse grupo de profissionais para que as tarefas desenvolvidas em grupo se tornem interativas e eficientes. A interação entre as pessoas que estão trabalhando cooperativamente deve ser a mais produtiva possível, sendo semelhante ao trabalho em grupo em um único local. Assim, a percepção das atividades que estão sendo realizadas devem estar disponíveis para cada profissional, através da Interface Homem-Computador do sistema groupware que estão utilizando. Este trabalho apresenta uma “biblioteca” de Componentes de Percepção que fornecem as informações necessárias para que as pessoas que estão participando da tarefa cooperativa tenham a percepção das atividades que estão sendo realizadas, como também quem e como as estão fazendo. Esses componentes são uma extensão do Ambiente PROSOFT Cooperativo, fornecendo assim uma especificação formal de forma a garantir completeza, corretude e ausência de ambigüidades que são muito difíceis de se conseguir com uma descrição informal.
Resumo:
Para o desenvolvimento de sistemas interativos que respeitem critérios de usabilidade em adição aos critérios de qualidade convencionais, é necessário que, desde suas primeiras etapas, as áreas de Engenharia de Software (ES) e de Interação Humano- Computador (IHC) sejam consideradas, simultaneamente e de maneira integrada. Essas duas áreas investigam modelos, conceitos, técnicas e práticas que refletem diferentes perspectivas sobre a atividade de desenvolvimento, uma orientada mais ao sistema (ES) e outra, mais ao usuário (IHC). Para conciliar estas perspectivas, é necessário o estabelecimento de um entendimento mútuo e a utilização conjunta e integrada de conceitos, técnicas e práticas de desenvolvimento de ambas as áreas. Este trabalho visa mostrar as possibilidades desta integração, através da combinação dos conceitos de Casos de Uso (Use Cases) e Cenários (Scenarios), importantes técnicas de modelagem amplamente utilizadas respectivamente nas áreas de ES e IHC, em diferentes contextos, com diferentes visões; mas apresentando similaridades valiosas para propiciarem o uso complementar de ambas as técnicas. Para sistematizar esta integração, é proposta uma abordagem teleológica – baseada em objetivos – de construção sistemática de casos de uso com quatro diferentes níveis de abstração, desde os mais abstratos casos de uso essenciais até os cenários, aqui utilizados como instâncias concretas de casos de uso. Com esta abordagem, pretende-se construir um modelo de casos de uso que permita especificar requisitos funcionais, conjuntamente com requisitos de interação, de maneira compreensível e praticável e que sirva como ponto de partida à continuidade do desenvolvimento orientado a objetos de software. Com o intuito de exemplificar a proposta, é descrita e discutida a aplicação passo a passo desta abordagem a um exemplo.
Resumo:
Em vista da maior complexidade da programação paralela e distribuída em relação à programação de ambientes centralizados, novas ferramentas vêm sendo construídas com o objetivo de auxiliar o programador desses ambientes a desempenhar sua tarefa de formas mais eficazes e produtivas. Uma das ferramentas que há algum tempo tem sido usada na programação centralizada e aos poucos está sendo empregada também na programação concorrente é a programação visual. A programação visual se vale da presença de elementos visuais na especificação dos programas como peças chaves do processo de desenvolvimento de software. No caso específico da programação concorrente, a programação visual é especialmente útil pela capacidade que os gráficos têm de representar de forma mais adequada estruturas bidimensionais. Um programa concorrente, por relacionar no espaço diversos elementos com seus próprios fluxos de execução, faz surgir duas dimensões de análise que são mais difíceis de serem observadas através de programas textuais. Atualmente existem ferramentas de programação visual paralela e distribuída, mas a ênfase é dada na programação paralela, sem muita atenção a aplicações de sistemas abertos ou cliente-servidor. Além disso, tais ferramentas sofrem da falta de apoio à engenharia do software. Considerando essas deficiências, este trabalho apresenta uma ferramenta de programação visual para o desenvolvimento de aplicações compostas por objetos distribuídos que ofereça também a possibilidade de aplicar os principais conceitos da engenharia de software, como reutilização e orientação a objeto. Nesta ferramenta, o programador especifica de maneira visual a estrutura do seu programa, insere o código textual para a lógica da aplicação e o ambiente se encarrega do tratamento da distribuição e da comunicação de mais baixo nível. A aplicação é representada como um grafo dirigido, onde os nodos representam os objetos distribuídos e os arcos indicam os relacionamentos existentes entre esses objetos. A especificação dos programas é modular, baseando-se na reunião de componentes reutilizáveis, o que torna o sistema altamente configurável e extensível. Tanto a implementação da ferramenta quanto o código das aplicações geradas usam a linguagem de programação Java. A linguagem de programação visual projetada não especifica detalhes a respeito de como irá funcionar a comunicação e distribuição dos objetos. Portanto, foram implementados componentes para comunicação e outros recursos de programação distribuída, como locks e dados globais para serem usados nas aplicações. Para validar os principais objetivos da ferramenta, foram implementados alguns exemplos de aplicações distribuídas, como um pequeno sistema de bate-papo.
Resumo:
Braços robóticos articulados são cada vez mais utilizados hoje em dia e consistem de dispositivos mecânicos programáveis, equipados com sensores e atuadores sob o controle de um sistema computacional. Existem atualmente no mercado inúmeros fabricantes e modelos destes braços, cada um adequado a uma determinada utilização ou faixa de mercado. Para que se saiba operar devidamente este robô é necessário um período de aprendizagem. Essa necessidade pode ser suprida pelo emprego dos simuladores de braços robóticos.Desenvolver um simulador é uma atividade complexa, mas alguns elementos de sua estrutura e de seu comportamento são comuns a vários tipos de simuladores e podem idealmente ser reusados. Permitir reuso de código e de projeto é exatamente um dos principais fatores que motivaram a construção de um framework. Este trabalho descreve a definição e a construção do fwWorkCell , um framework que permita agilizar a construção destes simuladores. Tal agilidade será obtida através da implementação de um ambiente de edição e de classes genéricas para controle, visualização e programação dos robôs. A proposta deste framework inclui definição de classes genéricas e de controle, a construção de todo um ambiente de suporte à manipulação e visualização das células de trabalho e suas simulações e visa dar suporte à construção de uma grande variedade de simuladores. O framework proposto foi utilizado em uma aplicação real: através dele foi feita a migração de um simulador já existente.
Resumo:
The work described in this thesis aims to support the distributed design of integrated systems and considers specifically the need for collaborative interaction among designers. Particular emphasis was given to issues which were only marginally considered in previous approaches, such as the abstraction of the distribution of design automation resources over the network, the possibility of both synchronous and asynchronous interaction among designers and the support for extensible design data models. Such issues demand a rather complex software infrastructure, as possible solutions must encompass a wide range of software modules: from user interfaces to middleware to databases. To build such structure, several engineering techniques were employed and some original solutions were devised. The core of the proposed solution is based in the joint application of two homonymic technologies: CAD Frameworks and object-oriented frameworks. The former concept was coined in the late 80's within the electronic design automation community and comprehends a layered software environment which aims to support CAD tool developers, CAD administrators/integrators and designers. The latter, developed during the last decade by the software engineering community, is a software architecture model to build extensible and reusable object-oriented software subsystems. In this work, we proposed to create an object-oriented framework which includes extensible sets of design data primitives and design tool building blocks. Such object-oriented framework is included within a CAD Framework, where it plays important roles on typical CAD Framework services such as design data representation and management, versioning, user interfaces, design management and tool integration. The implemented CAD Framework - named Cave2 - followed the classical layered architecture presented by Barnes, Harrison, Newton and Spickelmier, but the possibilities granted by the use of the object-oriented framework foundations allowed a series of improvements which were not available in previous approaches: - object-oriented frameworks are extensible by design, thus this should be also true regarding the implemented sets of design data primitives and design tool building blocks. This means that both the design representation model and the software modules dealing with it can be upgraded or adapted to a particular design methodology, and that such extensions and adaptations will still inherit the architectural and functional aspects implemented in the object-oriented framework foundation; - the design semantics and the design visualization are both part of the object-oriented framework, but in clearly separated models. This allows for different visualization strategies for a given design data set, which gives collaborating parties the flexibility to choose individual visualization settings; - the control of the consistency between semantics and visualization - a particularly important issue in a design environment with multiple views of a single design - is also included in the foundations of the object-oriented framework. Such mechanism is generic enough to be also used by further extensions of the design data model, as it is based on the inversion of control between view and semantics. The view receives the user input and propagates such event to the semantic model, which evaluates if a state change is possible. If positive, it triggers the change of state of both semantics and view. Our approach took advantage of such inversion of control and included an layer between semantics and view to take into account the possibility of multi-view consistency; - to optimize the consistency control mechanism between views and semantics, we propose an event-based approach that captures each discrete interaction of a designer with his/her respective design views. The information about each interaction is encapsulated inside an event object, which may be propagated to the design semantics - and thus to other possible views - according to the consistency policy which is being used. Furthermore, the use of event pools allows for a late synchronization between view and semantics in case of unavailability of a network connection between them; - the use of proxy objects raised significantly the abstraction of the integration of design automation resources, as either remote or local tools and services are accessed through method calls in a local object. The connection to remote tools and services using a look-up protocol also abstracted completely the network location of such resources, allowing for resource addition and removal during runtime; - the implemented CAD Framework is completely based on Java technology, so it relies on the Java Virtual Machine as the layer which grants the independence between the CAD Framework and the operating system. All such improvements contributed to a higher abstraction on the distribution of design automation resources and also introduced a new paradigm for the remote interaction between designers. The resulting CAD Framework is able to support fine-grained collaboration based on events, so every single design update performed by a designer can be propagated to the rest of the design team regardless of their location in the distributed environment. This can increase the group awareness and allow a richer transfer of experiences among them, improving significantly the collaboration potential when compared to previously proposed file-based or record-based approaches. Three different case studies were conducted to validate the proposed approach, each one focusing one a subset of the contributions of this thesis. The first one uses the proxy-based resource distribution architecture to implement a prototyping platform using reconfigurable hardware modules. The second one extends the foundations of the implemented object-oriented framework to support interface-based design. Such extensions - design representation primitives and tool blocks - are used to implement a design entry tool named IBlaDe, which allows the collaborative creation of functional and structural models of integrated systems. The third case study regards the possibility of integration of multimedia metadata to the design data model. Such possibility is explored in the frame of an online educational and training platform.
Resumo:
As exigências sociais atuais levam ao repensar das ações educacionais, evidenciando a Educação a Distância (EAD). Esta modalidade de educação, embasada por concepções pedagógicas consistentes e associada às tecnologias de informática e comunicação, é capaz de alavancar novos modelos rompendo com os já estabelecidos. As tecnologias de workflow se apresentam como uma alternativa à modelagem de cursos para EAD. Um workflow permite organizar e descrever todo o processo que está sendo modelado, a partir de suas atividades. Da mesma forma modelos de construção de cursos para EAD sugerem a separação do processo em etapas compostas por atividades. A autoria destes cursos acontece por meio de equipes multidisciplinares atuando em trabalho cooperativo. A cooperação na equipe de autoria é fundamentada pelos requerimentos de apoio à sua efetividade, de acordo com os comportamentos e funcionalidades cooperativas. No trabalho de Sizilio é sugerida a utilização de um workflow para guiar as atividades de autoria de um curso para EAD. Note-se que o workflow de autoria proposto por Sizilio considera apenas um autor para a construção do curso, não contemplando a autoria feita por uma equipe de autores desempenhando um trabalho cooperativo. O objetivo desta dissertação é especificar um workflow de autoria de cursos para EAD com suporte à cooperação, a partir do workflow de Sizilio. Este workflow constitui um modelo formal de construção cooperativa de cursos nesta modalidade educacional. O trabalho apresenta, além da proposta do workflow de autoria de cursos para EAD com suporte à cooperação, fundamentos e particularidades da EAD sob a ótica da autoria de cursos. Analisa, ainda, a cooperação vislumbrando as equipes de autoria em trabalho cooperativo e a tecnologia de modelagem de workflow aplicada a cursos de EAD. A análise de viabilidade do workflow proposto e do suporte oferecido ao desenvolvimento cooperativo de um curso foi feita através de estudo de caso real, sendo apresentados os comentários do grupo envolvido na autoria do curso.
Resumo:
A Educação a Distância (EAD) vem recebendo atenção dos pesquisadores de várias áreas, na busca de modelos e ferramentas que possam aumentar a eficiência desta modalidade de educação. Mas, ferramentas tecnologicamente avançadas não são suficientes para isso. A atuação do docente é fundamental para o sucesso de um curso a distância. O problema é que falta preparo a muitos professores que atuam em EAD, para planejar os cursos, estimar recursos e organizar o conteúdo. Além da dificuldade na criação dos cursos, os professores também enfrentam o problema de avaliar os cursos já oferecidos. Esta tese apresenta um modelo para gerência de cursos a distância. O modelo de “Processo de Curso”, nomenclatura proposta neste trabalho, engloba o projeto, criação, execução e avaliação de cursos a distância. O modelo proposto pretende ser uma alternativa de solução para a seguinte questão de pesquisa: Que elementos um modelo, embasado pela Engenharia de Software, precisa conter para representar as atividades envolvidas na gerência de cursos a distância? A definição desse modelo foi fundamentada em duas áreas distintas: A Ciência da Computação e a Informática na Educação, mais especificamente na Engenharia de Software e na Educação a Distância. Como a tese baseia-se na analogia de Processo de Software e Processo de Curso e, por isso, o estudo da área de Tecnologia de Processo de Software foi de fundamental importância. O modelo de Processo de Curso é constituído pelas atividades que compõem um curso a distância (projeto, execução, avaliação e outras), os agentes que realizam essas atividades, produtos gerados e recursos necessários para a realização da atividade. Um dos destaques dessa abordagem é a possibilidade de reutilização de cursos anteriores, utilizando conceitos herdados da Engenharia de Software. A comprovação da viabilidade de implementação do modelo foi realizada através da implementação, no ambiente PROSOFT-APSEE, de um protótipo para gerência de cursos a distância. Para avaliar o modelo e o protótipo, foram selecionados professores especialistas que modelaram cursos no PRO-EAD e responderam a um questionário de avaliação Acredita-se que as contribuições deste trabalho tragam avanços significativos na busca de métodos e ferramentas que venham a auxiliar os professores na criação de cursos a distância com mais qualidade.