997 resultados para Desenvolvimento de Software Orientado a Aspectos


Relevância:

100.00% 100.00%

Publicador:

Resumo:

Dissertação para obtenção do Grau de Mestre em Engenharia Electrotécnica e de Computadores

Relevância:

100.00% 100.00%

Publicador:

Resumo:

No processo de desenvolvimento de software, um dos problemas recorrentes é garantir que as expectativas das partes interessadas (stakeholders) estão a ser satisfeitas. Expectativas essas que correspondem ao comportamento do sistema. A disciplina de Engenharia de Requisitos estuda a melhor forma de capturar, especificar, validar e gerir requisitos. No entanto, os modelos utilizados que expressam os comportamentos, muitas das vezes, não são entendidos por parte dos stakeholders. Com a introdução das metodologias ágeis, que se baseiam no princípio de uma colaboração ativa e contínua dos stakeholders durante o desenvolvimento de software, os pressupostos da disciplina de Engenharia de Requisitos foram questionados e fizeram nascer novas práticas. Uma prática que emergiu foi o Desenvolvimento Orientado ao Comportamento (BDD). Surgiu com a finalidade de dar a capacidade aos stakeholders de expressarem, sob a forma textual, o comportamento que desejam para o seu software, de forma simples e sucinta. No entanto, não existindo restrições nem validações automáticas na escrita dos stakeholders, é criada a possibilidade de introdução de ambiguidade e perda de informação quando a equipa de desenvolvimento utiliza os cenários descritos. Dado este problema, propomos uma abordagem em que os stakeholders consigam especificar cenários comportamentais, de forma cognitiva, com uma representação simples, clara e mais precisa. Criamos duas linguagens, o DomainMap e o BehaviorMap, que estão relacionadas entre si: uma para representar modelos de domínio e outra para representar cenários BDD, respetivamente. Foi executada uma experiência com 15 indivíduos para comparar o esforço cognitivo na compreensão entre cenários BehaviorMap e cenários textuais e os resultados mostraram que o BehaviorMap teve melhor desempenho.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Tese de Doutoramento em Tecnologias e Sistemas de Informação

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Dissertação de mestrado integrado em Engenharia e Gestão de Sistemas de Informação

Relevância:

100.00% 100.00%

Publicador:

Resumo:

O presente documento descreve o estágio realizado pela estagiária, que foi integrado num projecto de estudo e desenvolvimento de uma plataforma já existente e em produção. A implementação inicial deste sistema de informação partiu da experiência do orientador inicial Jorge Oliveira, ao desenvolver uma plataforma na ANET- Associação Nacional dos Engenheiros Técnicos. O sistema de informação actual da ANET é constituído por 9 módulos: Membros, Inscrição/Estágio, Secretaria, Declarações, Documentação, Meu INETSYS, Contabilidade, Administração e Manuais/FAQ. Apesar da plataforma se encontrar em funcionamento, apresenta algumas limitações, em particular diferenças de comportamento entre browsers e apresentação de redundância nos dados presentes na Base de Dados do sistema. Para contornar tais problemas a estagiária realizou um estudo sobre a plataforma existente, reestruturou e reaplicou a normalização para algumas tabelas da Base de Dados, remodelou e desenvolveu uma nova plataforma com recurso a novas tecnologias e efectuou estudos de performance, benchmarking, escalabilidade e segurança na aplicação desenvolvida. Dada a extensão dos módulos do sistema objecto de estudo e a limitação de tempo imposta pela duração do estágio, tendo como objectivo último o desenvolvimento de uma aplicação estruturada que respondesse positivamente a testes de performance e segurança, a estagiária ficou responsável pela implementação de alguns daqueles. O trabalho desenvolvido numa primeira fase, coincidente com o primeiro semestre, consistiu no levantamento de requisitos, na análise do desempenho da plataforma em produção na instituição, na análise das soluções tecnológicas e metodologias de desenvolvimento de software a adoptar para o desenvolvimento da nova aplicação. Na segunda fase, portanto segundo semestre, os trabalhos definidos e realizados pela estagiária centraram-se no estudo de performance (análise de front-end/back-end, recorrendo a ferramentas por forma a verificar o comportamento da aplicação), na implementação e reestruturação dos módulos para que se obtenha um bom desempenho ao nível da performance e da segurança, e na avaliação da aplicação mediante a realização de testes ao nível da escalabilidade, segurança, benchmarking e tunig.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

O desenvolvimento local integrado e sustentável está sendo considerado como uma estratégia inovadora, uma via possível para a melhoria da qualidade de vida das populações e para a conquista de modos de vida mais sustentáveis. A questão de desenvolvimento, vista nos mais diversos aspectos, constitui motivo de preocupação de todos, desde um simples cidadão ou munícipe aos governantes passando pelas associações, ONGs, entre outros. Hoje, em qualquer discurso, seja de carácter for, tem sempre em destaque a temática de desenvolvimento integrado e ou sustentado. A importância dada ao desenvolvimento é assim grande, uma vez que aborda todos aspectos e nos mais diferentes sectores da vida de uma sociedade, dando a conhecer o nível e a qualidade de vida das populações. É nesta perspectiva que o trabalho que ora se apresenta tem como tema “SUBSÍDIOS PARA UM PLANO DE DESENVOLVIMENTO INTEGRADO DA ILHA DO MAIO” e constitui para o autor uma tentativa de analisar e dar a conhecer de forma global a real situação da ilha do Maio.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

A capacidade de inovação é essencial à sobrevivência de empresas criativas de software. Assim, a criação e disseminação do conhecimento encontram cada vez mais espaço no planejamento e na estratégia de gestão dessas organizações. Este estudo, de natureza exploratória, efetuou entrevistas semi-estruturadas com profissionais gestores e técnicos da indústria criativa de software, tendo por objetivo analisar as técnicas e métodos presentes no processo de geração e disseminação do conhecimento, bem como as ferramentas de tecnologia da informação voltadas a essa finalidade. Os principais resultados mostram que há uma preocupação constante nessas organizações com a geração do conhecimento. As técnicas e métodos mais largamente empregados na criação e disseminação de conhecimento foram: brainstorming, reuniões presenciais, reuniões virtuais, treinamentos oficiais presenciais, treinamentos informais, cursos em universidades, compartilhamento de experiências, discussões e aplicativo de gestão de projetos de desenvolvimento de software. Já em relação às ferramentas utilizadas, somam-se: internet, intranet, aplicativos específicos, redes internas, repositórios de dados, diretórios específicos no banco de dados e sistemas de telefonia baseados na internet.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

A atividade de teste constitui uma fase de grande importância no processo de desenvolvimento de software, tendo como objetivo garantir um alto grau de confiabilidade nos produtos desenvolvidos. O paradigma da Orientação a Objetos (OO) surgiu com o objetivo de melhorar a qualidade bem como a produtividade no desenvolvimento de aplicações. Entretanto, apesar do aumento constante de aceitação do paradigma OO pela indústria de software, a presença de algumas de suas características torna a atividade de teste de programas neste paradigma mais complexa do que o teste de sistemas tradicionais. Entre estas características cita-se a herança, o encapsulamento, o polimorfismo e a ligação dinâmica [EIS 97] [PRE 95] [UNG 97]. Algumas técnicas estão sendo implementadas para auxiliarem a atividade de teste através do uso da tecnologia de reflexão computacional [HER 99]. Estas técnicas permitem a realização de análises de aspectos dinâmicos dos programas, sem a necessidade de instrumentar o código-fonte das aplicações que estão sendo monitoradas. Com o objetivo de auxiliar o processo de teste de programas orientados a objetos, este trabalho aborda o desenvolvimento de uma ferramenta, a qual automatiza parcialmente o teste de programas escritos em Java. A ferramenta evidencia o teste de estados fazendo uso da tecnologia de reflexão computacional. Através da especificação de asserções, feitas pelo usuário da ferramenta, na forma de invariantes de classe, pré e pós-condições de métodos, é possível verificar a integridade dos estados dos objetos durante a execução do programa em teste. A ferramenta possibilita também, armazenar a seqüência de métodos chamados pelos objetos da aplicação em teste, tornando possível ao testador, visualizar o histórico das interações entre os objetos criados no nível-base.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

A tecnologia de workflow vem apresentando um grande crescimento nos últimos anos. Os Workflow Management Systems (WfMS) ou Sistemas de Gerenciamento de Workflow oferecem uma abordagem sistemática para uniformizar, automatizar e gerenciar os processos de negócios. Esta tecnologia requer técnicas de engenharia de software que facilitem a construção desse tipo de sistema. Há muito vem se formando uma consciência em engenharia de software de que para a obtenção de produtos com alta qualidade e que sejam economicamente viáveis torna-se necessário um conjunto sistemático de processos, técnicas e ferramentas. A reutilização está entre as técnicas mais relevantes desse conjunto. Parte-se do princípio que, reutilizando partes bem especificadas, desenvolvidas e testadas, pode-se construir software em menor tempo e com maior confiabilidade. Muitas técnicas que favorecem a reutilização têm sido propostas ao longo dos últimos anos. Entre estas técnicas estão: engenharia de domínio, frameworks, padrões, arquitetura de software e desenvolvimento baseado em componentes. Porém, o que falta nesse contexto é uma maneira sistemática e previsível de realizar a reutilização. Assim, o enfoque de linha de produto de software surge como uma proposta sistemática de desenvolvimento de software, baseada em uma família de produtos que compartilham um conjunto gerenciado de características entre seus principais artefatos. Estes artefatos incluem uma arquitetura base e um conjunto de componentes comuns para preencher esta arquitetura. O projeto de uma arquitetura para uma família de produtos deve considerar as semelhanças e variabilidades entre os produtos desta família. Esta dissertação apresenta uma proposta de arquitetura de linha de produto para sistemas de gerenciamento de workflow. Esta arquitetura pode ser usada para facilitar o processo de produção de diferentes sistemas de gerenciamento de workflow que possuem características comuns, mas que também possuam aspectos diferentes de acordo com as necessidades da indústria. O desenvolvimento da arquitetura proposta tomou como base a arquitetura genérica e o modelo de referência da Workflow Management Coalition (WfMC) e o padrão de arquitetura Process Manager desenvolvido no contexto do projeto ExPSEE1. O processo de desenvolvimento da arquitetura seguiu o processo sugerido pelo Catalysis com algumas modificações para representar variabilidade. A arquitetura proposta foi descrita e simulada através da ADL (Architecture Description Language) Rapide. A principal contribuição deste trabalho é uma arquitetura de linha de produto para sistemas de gerenciamento de workflow. Pode-se destacar também contribuições para uma proposta de sistematização de um processo de desenvolvimento de arquitetura de linha de produto e também um melhor entendimento dos conceitos e abordagens relacionados à prática de linha de produto, uma vez que esta tecnologia é recente e vem sendo largamente aplicada nas empresas.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Para reutilização, manutenção e refatoração, projetistas de sistemas de software, freqüentemente, precisam examinar o código fonte da aplicação para entender os detalhes dos sistemas desenvolvidos. As aplicações orientadas a objetos em geral, tornam-se coleções nebulosas de classes e implementações de métodos. Sem dúvida a habilidade de entender sistemas de software é largamente aumentada visualizando-se esses produtos em níveis mais altos de abstração. Os padrões de projeto demonstram um alto índice de abstração e são considerados uma ferramenta efetiva para o entendimento de sistemas de software orientados a objetos. Aplicações orientadas a objetos visualizadas como um sistema de interação de padrões requerem a descoberta, identificação e classificação de grupos de classes relacionadas. Estas visualizações podem representar qualquer padrão conhecido ou agrupamentos que executam uma tarefa abstrata e necessariamente não são uma solução de padrão conhecida. Os padrões de projeto descrevem, portanto, microarquiteturas que resolvem problemas arquitetônicos em sistemas de software orientados a objetos. É importante identificar estas microarquiteturas durante a fase de manutenção de aplicações orientadas a objetos. Faz-se necessário salientar que estas microarquiteturas aparecem freqüentemente distorcidas na aplicação fonte. O objeto deste trabalho é demonstrar a viabilidade de construir uma ferramenta para descobrir a utilização de padrões de projeto em aplicações Java. Assim, esta tese examina as características de alguns padrões, determinando a natureza do que faz um padrão ser detectável por intermédio de meios automatizados, e propõe algumas regras pelas quais um conjunto de padrões possa ser identificado. As regras são baseadas nos relacionamentos entre classes e objetos mediante observação dos modelos estático e dinâmico. Este trabalho também documenta o desenvolvimento do protótipo da ferramenta de inspeção, que tem por objetivo aplicar os processos de engenharia reversa e reflexão computacional sobre código Java, utilizando as informações adquiridas para detectar padrões de projeto. Finalmente, esta tese demonstra a utilização dessa ferramenta em um exemplo pequeno de aplicação Java e forma a base para trabalhos adicionais que investiguem a existência de diferentes padrões de projeto em sistemas de software construídos em Java.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Construção de software com qualidade tem motivado diversas pesquisas na área de Engenharia de Software. Problemas como a grande complexidade requerida pelas aplicações atuais e a necessidade de gerenciamento de um número cada vez maior de pessoas envolvidas em projetos são obstáculos para serem transpostos. Trabalhos relacionados a tecnologia de processos de software aparecem como uma proposta para se obter maior controle das atividades realizadas com o intuito de se obter maior qualidade. A simulação de processos de software, através da representação dos passos definidos em um modelo, tem sido utilizada no auxílio a gerentes de projetos de sistemas para fornecer-lhes informações preciosas sobre o desenvolvimento de um sistema especificado. A representação de conhecimento a respeito das características relacionadas a um ambiente de desenvolvimento ajuda na obtenção de simulações mais realísticas. A partir do modelo, o simulador obtém uma descrição do ambiente em que deve atuar, baseado no conhecimento que se tem a respeito do ambiente. Esse trabalho apresenta um modelo de simulação de processos de software baseado em conhecimento para ser inserido em um ambiente de engenharia de processos de software. A função do modelo é simular um processo de software instanciado, procurando detectar inconsistências no mesmo que possam gerar problemas durante a sua execução, como aumento de custos e comprometimento da qualidade do(s) produto(s) obtido(s). Após a simulação o projetista pode constatar a necessidade de se refazer o modelo, ajustar parâmetros ou executar o processo de software. O objetivo da simulação, nesse trabalho, é auxiliar as pessoas responsáveis por um ambiente de desenvolvimento a obter modelos de processos validados. O modelo de simulação foi definido para ser utilizado no ambiente PROSOFT, que é um ambiente de desenvolvimento que permite a integração de novas ferramentas para desenvolvimento de software. O ambiente PROSOFT vem recebendo propostas de extensão que tem contribuído para o seu aprimoramento, fornecendo para seus usuários uma quantidade cada vez maior de ferramentas de auxílio a construção de artefatos de software. As propostas mais recentes foram um modelo para construção de sistemas especialistas, a definição de um ambiente cooperativo e um gerenciador de processos de software. ATOs algébricos (construções do PROSOFT) são utilizados para especificar formalmente o modelo de simulação definido neste trabalho. A validação é realizada através de um modelo em UML (Unified Method Language) que foi utilizado como base para a construção de um programa implementado usando a linguagem Java. Isso ocorre porque a ferramenta do PROSOFT (implementada em Java) que seria utilizada para validar as especificações algébricas ainda não está finalizada.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

O objetivo desta dissertação é a elaboração de uma técnica da aplicação do formalismo de Autômatos Finitos com Saída (Máquina de Mealy e Máquina de Moore) como um modelo estrutural para a organização de hiperdocumentos instrucionais, em destacar especial, Avaliação e Exercício. Esse objetivo é motivado pela organização e agilização do processo de avaliação proporcionado ao professor e ao aluno. Existem diferentes técnicas de ensino utilizadas na Internet, algumas dessas continuam sendo projetadas com o uso de metodologias tradicionais de desenvolvimento, outras têm a capacidade de modelar de forma integrada e consistente alguns aspectos necessários para uma aplicação WEB. Para alcançar o objetivo proposto, foram realizadas pesquisas nas várias áreas abrangidas pelo tema em evidência, tanto relativo ao processo tradicional (aplicação de prova utilizando metodologia tradicional), como o desenvolvimento de software mediado por computador e uso da Internet em si. A modelagem de desenvolvimento para Internet deve integrar características de técnicas de projeto de sistemas de hipermídia devido à natureza hipertextual da Internet. O uso de hiperdocumento como autômatos com saída está na forma básica de representação de hipertexto, em que cada fragmento de informação é associado a um nodo ou a um link (estado/transições) do grafo. Sendo assim, os arcos direcionados representam relacionamentos entre os nodos ou links, ou seja, uma passagem do nodo origem para o nodo destino. As n-uplas dos autômatos apresentam uma correspondência as estruturas de hiperdocumentos na WEB, seu estado/transição inicial corresponde a sua primeira página e suas transições definidas na função programa, funcionam como ligações lógicas, quando selecionadas durante a navegação do hipertexto. Entretanto, faz-se necessário um levantamento dos modelos de hipertextos e das ferramentas de implementação disponíveis para a Internet, a fim de que seja capaz de suportar as peculiaridades do ambiente. Tudo isso deve ser integrado preferencialmente em um paradigma de desenvolvimento amplamente aceito, para que os projetistas não tenham muitas dificuldades em assimilar os conceitos propostos. A proposta apresentada nesta dissertação, batizada de Hyper-Automaton (hipertexto e autômato), consiste na integração de um Curso na WEB, utilizando formalismo de Autômatos Finitos com Saída para a modelagem dos conceitos necessários e definição das fases adequadas para completar a especificação de Sistema Exercício e Avaliação, bem como a especificação da Geração Automática dos Exercícios e Avaliações baseadas em autômatos para a WEB. Os modelos criados abrangem conceitos de Máquina de Mealy, Máquina de Moore e Aplicações de Hiperdocumentos e Ferramentas de Programação para Internet, os mesmos já testados em caso real. Os parâmetros apurados, nos testes, serviram a uma seqüência de etapas importantes para modelar e complementar a especificação do sistema projetado. Com os parâmetros e etapas de modelagem, a metodologia Hyper-Automaton consegue integrar, de forma consistente, as vantagens de várias técnicas específicas de modelagem de documentos e sistemas de hipermídia. Essas vantagens, aliadas ao suporte às ferramentas de desenvolvimento para Internet, garantem que a metodologia fique adequada para a modelagem de Sistemas com aplicação de métodos de autômatos para exercícios e avaliação na WEB.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

As maiores dificuldades encontradas no teste de software estão relacionadas à definição dos dados de teste e a decisão de quando encerrar os testes. Uma das formas encontradas para minimizar tais dificuldades está centrada na utilização de critérios de cobertura. O principal objetivo dos critérios de cobertura é tornar o processo de testes mais rápido e preciso, fornecendo informações que determinem o que testar em um software para garantir sua qualidade. A modelagem é um dos elementos de maior importância nas atividades relacionadas ao desenvolvimento de software. Os modelos são construídos principalmente para melhor se entender o sistema, descrever a estrutura e comportamento desejados, visualizar a arquitetura e documentar as decisões tomadas durante o seu desenvolvimento. Atualmente, o sistema de notação mais utilizado para a modelagem de sistemas baseados nos conceitos de orientação a objetos é a Linguagem de Modelagem Unificada – UML [LAR 99]. Nesta notação, um sistema é descrito por um conjunto de diagramas que apresentam diferentes aspectos do sistema. As informações disponibilizadas por estes diagramas propiciam, já nas fases iniciais do desenvolvimento da aplicação (análise e projeto), o planejamento dos casos de teste e a definição de critérios de cobertura. Observa-se que nestas fases a maioria das informações necessárias para o teste já estão disponíveis, como por exemplo, a definição das classes com seus atributos, métodos e relacionamentos, a representação da interação existente entre objetos para a realização de um cenário e a descrição dos possíveis estados e transições de um objeto em resposta a eventos externos e internos. Este trabalho propõe um conjunto de diretrizes e critérios de cobertura de teste, tendo como base as especificações diagramáticas UML. As diretrizes estabelecem um conjunto de instruções para que o teste seja feito e os critérios de cobertura identificam os pontos principais e serem considerados durante o teste. Na definição das diretrizes e dos critérios foram avaliadas as informações disponibilizadas pelos diagramas de classes, seqüência, colaboração e estados.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

A tecnologia de processos de desenvolvimento de software ´e uma importante área de estudo e pesquisas na Engenharia de Software que envolve a construção de ferramentas e ambientes para modelagem, execução, simulação e evolução de processos de desenvolvimento de software, conhecidos como PSEEs (do inglês: Process-Centered Software Engineering Environments). Um modelo de processo de software é uma estrutura complexa que relaciona elementos gerenciáveis (i.e. artefatos, agentes, e atividades) que constituem o processo de software. Esta complexidade, geralmente, dificulta a percepção e entendimento do processo por parte dos profissionais envolvidos, principalmente quando estes profissionais têm acesso apenas a uma visão geral do modelo. Desta forma, há necessidade de mecanismos para visualização e acompanhamento dos processos, fornecendo informações adequadas aos diferentes estados, abstraindo as informações relevantes tanto as fases presentes no processo de desenvolvimento quanto ao agente envolvido, além de facilitar a interação e o entendimento humano sobre os elementos do processo. Estudos afirmam que a maneira como são apresentadas as informações do modelo de processo pode influenciar no sucesso ou não do desenvolvimento do software, assim como facilitar a adoção da tecnologia pela indústria de software. Este trabalho visa contribuir nas pesquisas que buscam mecanismos e cientes para a visualização de processos de software apresentando a abordagem APSEE-Monitor destinada ao apoio a visualização de processos de software durante a sua execução. O principal objetivo desta pesquisa é apresentar um modelo formal de apoio a visualização de processos capaz de extrair dados de processos e organizá-los em sub-domínios de informações de interesse do gerente de processos. Neste trabalho aplica-se o conceito de múltiplas perspectivas como uma estratégia viável para a abstração e organização das informações presentes no modelo de processos. A solução proposta destaca-se por estender a definção original de perspectivas e fornecer uma estratégia de extração dos dados através de uma especificação formal utilizando o paradigma PROSOFT-Algébrico. Além disso, o trabalho apresenta um conjunto de requisitos relativos a interação entre gerentes de processos e PSEEs, a definição formal das perspectivas, uma gramática que define a linguagem de consulta aos processos, e um protótipo da aplicação.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Estudo comissionado pelo Instituto Nacional de Tecnologia da Informação ao CTS/FGV Direito Rio, posteriormente convertido no livro "Direito do software livre e a Administraçõa Pública" (Rio de Janeiro: Lumen Juris, 2007). Aborda os seguintes temas: (a) a Constituição e o software livre; (b) aspectos do software livre sob o direito privado; e (c) software livre, Administração Pública e a comunhão do conhecimento informático.