835 resultados para Engenharia de software - Métodos experimentais
Resumo:
As pesquisas e as práticas em inteligência analítica na Engenharia de Software têm crescido nas últimas décadas. As informações contidas em um repositório de software podem auxiliar engenheiros de software em suas atividades durante todas as fases do desenvolvimento de software. O uso da inteligência analítica está ajudando os profissionais da Engenharia de Software a obterem informações relevantes do repositório de software, direcionando-os para melhores tomadas de decisões. Por se tratar de um bem intangível, pode ser difícil compreender as informações geradas pelo software. Este trabalho realizou um mapeamento sistemático da literatura sobre inteligência analítica na Engenharia de Software, o que propiciou a elaboração de um arcabouço conceitual para utilização da inteligência analítica capaz de auxiliar nas atividades da Engenharia de Software. Com a finalidade de validar este arcabouço conceitual, foi construído um protótipo de uma aplicação que analisou dados de um software livre. Tal protótipo foi validado e comentado por um grupo focal formado por desenvolvedores e gestores de projetos de software de uma grande empresa da área de Tecnologia da Informação. Concluiu-se que a inteligência analítica é fortemente utilizada durante a fase de manutenção e vem crescendo sua utilização na área de Gestão e na Prática Profissional. Constatou-se que os commits podem ser bons indicadores da evolução de software e que a ferramenta desenvolvida neste trabalho permite compreender o que está sendo alterado no sistema e por que a alteração ocorreu.
Resumo:
A especificação dos requisitos de software pressupõe que se conheçam os requisitos do sistema do que será parte. Os requisitos do sistema, por sua vez, pressupõem o conhecimento do negócio (business) onde o sistema será utilizado. Para que estes conhecimentos sejam obtidos é importante o envolvimento dos stakeholders tanto no nível de sistema quanto no nível de negócio. As literaturas sobre Engenharia de Requisitos, Engenharia de Software e Engenharia de Sistemas concordam que o envolvimento dos stakeholders é fundamental. O tratamento dispensado ao assunto, no entanto, é pequeno, dada a importância do tema. Esta dissertação, utilizando conceitos da Engenharia de Métodos Situacionais e de Design Science, apresenta o ZEP Framework, um artefato, produzido com o software EPF Composer, que permite a criação de métodos para envolver o stakeholder. Estes métodos, para serem criados, devem levar em consideração as peculiaridades da organização, dos recursos disponíveis e do projeto em si. São apresentados, ainda, alguns cenários, na área de Turismo, como exemplos da utilização do framework.
Resumo:
Os recentes desastres ocorridos no país, como o rompimento da adutora em Campo Grande e os desastres relacionados às enchentes urbanas, mostram a necessidade de desenvolvimento de pesquisas científicas que auxiliem na compreensão e no dimensionamento das estruturas projetadas para atender a demanda da população. Os métodos analíticos e experimentais mais utilizados possuem algumas limitações de ordem teórica ou prática. Por outro lado, os métodos numéricos, capazes de simular etapas construtivas e envolver materiais com diferentes modelos constitutivos numa mesma análise, buscam atender às necessidades práticas dos projetos de geotecnia e, ao mesmo tempo, complementam os modelos analíticos e experimentais. Nesse trabalho foram realizadas comparações entre resultados obtidos em ensaios experimentais e resultados extraídos do modelo computacional, buscando aumentar a compreensão sobre a interação solo-estrutura em relação à distribuição de tensões mobilizadas e aos deslocamentos e deformações provocados. A simulação numérica foi feita com a utilização do PLAXIS/3D, software de análise geotécnica baseado no método dos elementos finitos. Os ensaios foram confeccionados na Escola de Engenharia de São Carlos/USP por Costa (2005) e envolveram dutos enterrados submetidos à perda de apoio ou elevação localizada. O estudo experimental foi realizado através de modelos físicos compostos por um maciço de areia pura, contendo um tubo repousando sobre um alçapão no centro do vão. Os modelos físicos foram equipados com instrumental capaz de medir as deflexões e as deformações específicas ao longo do duto, além das tensões totais no maciço de solo circundante e na base do equipamento.
Resumo:
This thesis addresses the problem of word learning in computational agents. The motivation behind this work lies in the need to support language-based communication between service robots and their human users, as well as grounded reasoning using symbols relevant for the assigned tasks. The research focuses on the problem of grounding human vocabulary in robotic agent’s sensori-motor perception. Words have to be grounded in bodily experiences, which emphasizes the role of appropriate embodiments. On the other hand, language is a cultural product created and acquired through social interactions. This emphasizes the role of society as a source of linguistic input. Taking these aspects into account, an experimental scenario is set up where a human instructor teaches a robotic agent the names of the objects present in a visually shared environment. The agent grounds the names of these objects in visual perception. Word learning is an open-ended problem. Therefore, the learning architecture of the agent will have to be able to acquire words and categories in an openended manner. In this work, four learning architectures were designed that can be used by robotic agents for long-term and open-ended word and category acquisition. The learning methods used in these architectures are designed for incrementally scaling-up to larger sets of words and categories. A novel experimental evaluation methodology, that takes into account the openended nature of word learning, is proposed and applied. This methodology is based on the realization that a robot’s vocabulary will be limited by its discriminatory capacity which, in turn, depends on its sensors and perceptual capabilities. An extensive set of systematic experiments, in multiple experimental settings, was carried out to thoroughly evaluate the described learning approaches. The results indicate that all approaches were able to incrementally acquire new words and categories. Although some of the approaches could not scale-up to larger vocabularies, one approach was shown to learn up to 293 categories, with potential for learning many more.
Resumo:
O presente trabalho descreve a análise feita a um veículo de todo o terreno. O kartcross/buggy em estudo é usado em provas do tipo Baja, sendo estas provas longas e com traçados sinuosos. O veículo, já construído, foi testado através de softwares, a nível estrutural e ciclístico, pretendendo-se assim efetuar engenharia inversa sobre o mesmo. No decorrer da sua utilização normal o kartcross/buggy sofre vários tipos de solicitações, como sejam aceleração, travagem e força centrípta em curva. Portanto, o veículo deve ser capaz de suportar estes esforços e ter uma boa habilidade. Além dos testes em uso corrente foi analisada também a rigidez torsional do quadro do veículo e do veículo completo, podendo-se assim melhorar estes valores. A nível ciclístico foram analisados os parâmetros das suspensões como o camber, convergência/divergência, caster, entre outros. Da análise destes parâmetros e possível fazerem-se melhorias de forma a que o veículo tenha um melhor desempenho. Para validar os testes computacionais efetuados foi reproduzido experimentalmente o teste da rigidez torsional. No final, compararam-se os valores numéricos com os experimentais e aferir se o modelo se encontra bem representado.
Resumo:
Dentre as principais áreas que constituem a Ciência da Computação, uma das que mais influenciam o mundo atual é a Engenharia de Software, envolvida nos aspectos científicos e tecnológicos do desenvolvimento de software. No desenvolvimento de software, a fase de especificação dos requisitos é uma das mais importantes, visto que erros não detectados nesta são propagados para as fases posteriores. Quanto mais avançado estiver o desenvolvimento, mais caro custa reparar um erro introduzido nas fases iniciais, pois isto envolve reconsiderar vários estágios do desenvolvimento. A prototipação permite que os requisitos do software sejam validados logo no início do desenvolvimento, evitando assim a propagação de erros. Paralelamente, a utilização de métodos formais visa revelar inconsistências, ambigüidades e falhas na especificação do software, que podem caso contrário, não serem detectadas. Usar a prototipação de software juntamente com uma notação formal enfatiza a especificação do problema e expõe o usuário a um sistema “operante” o mais rápido possível, de modo que usuários e desenvolvedores possam executar e validar as especificações dos requisitos funcionais. O objetivo principal deste trabalho é instanciar uma técnica da área de Prototipação de Software que capacite o engenheiro de software gerar automaticamente protótipos executáveis a partir de especificações formais de tipos abstratos de dados, na notação PROSOFT-algébrico, visando a validação dos requisitos funcionais logo no início do desenvolvimento do software. Para tanto foi proposto um mapeamento da linguagem PROSOFT-algébrico para OBJ. Como OBJ possui um eficiente sistema de reescrita de termos implementado, a utilização deste propicia a prototipação de tipos abstratos de dados, especificados em PROSOFT-algébrico. Os componentes envolvidos na definição deste trabalho, assim como o mapeamento entre as linguagens, foram especificados algebricamente e implementados no ambiente de desenvolvimento de software PROSOFT. A implementação serviu para validar o mapeamento proposto através de dois estudos de caso. Por fim, são apresentadas as conclusões alcançadas e as atividades adicionais vislumbradas a partir do trabalho proposto.
Resumo:
Este trabalho de conclusão apresenta um método e uma ferramenta para avaliação da maturidade e da capacitação de ambientes de desenvolvimento de software baseado no uso da abordagem Goal/Question/Metric-GQM combinada aos métodos tradicionais de avaliação já existentes para o modelo Capability Maturity Model-CMM. A aplicação deste método através da ferramenta proposta permitirá a organização avaliada estabelecer o grau de conformidade preliminar dos seus processos em relação às exigências do modelo CMM. Esta avaliação poderá ser utilizada como ponto de partida para o estabelecimento de um processo de melhoria. O modelo CMM descreve uma série de estágios de maturidade que são atingidos através da satisfação de metas estabelecidas para áreas-chave do processo de desenvolvimento de software da organização. A evolução deste modelo, chamada de CMMI, Capability Maturity Model Integrated, possibilita que as organizações optem pela forma de implementação do modelo. Esta opção pode se dar através do uso do CMMI em estágios, vertical utilizando os níveis tradicionais do modelo, ou contínua; horizontal baseada nas áreas-chave de processo. Da mesma forma, a avaliação pode ser realizada sobre qualquer modelo escolhido. O modelo GQM descreve uma estrutura hierárquica baseada na existência de metas de melhoria preestabelecidas das quais são extraídas métricas e questões que as satisfazem. O nível de satisfação dessas metas é obtido através da análise das métricas relativas às questões aplicadas ao foco da avaliação Algumas ferramentas para avaliação dos processos relativos ao modelo CMM são apresentadas, tais como o questionário da maturidade e os modelos existentes para a criação de métodos de avaliação, CMM Apraisal Framework-CAF e Apraisal Requirements for CMMI-ARC. O diferencial apresentado é o estabelecimento de métricas objetivas e regras de interpretação dessas para a definição da satisfação de uma determinada área-chave de processo, ACP, do nível 2 do modelo CMMI. Além dessas contribuições vale destacar o estabelecimento de questões adicionais ao questionário da maturidade com o objetivo de capturar essas métricas e a criação de grafos GQM para cada ACP do nível 2 do CMMI. Esses grafos permitem a visualização do relacionamento existente entre cada ACP do nível 2 do CMMI com suas metas, questões e métricas. A aplicação do método e da ferramenta será demonstrada através da utilização de um estudo de caso aplicado na empresa DWA Informática Ltda.
Resumo:
Este relatório tem como objetivo apresentar e descrever alguns projetos realizados, metodologias utilizadas e toda a experiência que adquiri durante o meu estágio curricular para finalizar o curso de Mestrado em Engenharia Informática da Universidade da Madeira. O principal objetivo deste estágio foi experienciar um ambiente empresarial e ganhar alguma experiência profissional, algo que é bastante requisitado no mercado de trabalho nos dias de hoje. Neste relatório estão referenciadas algumas das responsabilidades que me foram atribuídas, como a liderança de uma equipa e a apresentação de algumas soluções para certos problemas técnicos, bem como a implementação das mesmas. Serão também caracterizadas e criticadas algumas decisões, procedimentos e metodologias utilizadas pela empresa que afetaram de certa forma o desenvolvimento de software de um ponto de vista geral e o próprio sucesso da empresa. Este relatório poderá servir de exemplo, não só para soluções para um problema técnico semelhante aos que aqui apresentei, mas também demonstrar o resultado de certos procedimentos e metodologias utilizadas na empresa no desenvolvimento de software.
Resumo:
Software Repository Mining (MSR) is a research area that analyses software repositories in order to derive relevant information for the research and practice of software engineering. The main goal of repository mining is to extract static information from repositories (e.g. code repository or change requisition system) into valuable information providing a way to support the decision making of software projects. On the other hand, another research area called Process Mining (PM) aims to find the characteristics of the underlying process of business organizations, supporting the process improvement and documentation. Recent works have been doing several analyses through MSR and PM techniques: (i) to investigate the evolution of software projects; (ii) to understand the real underlying process of a project; and (iii) create defect prediction models. However, few research works have been focusing on analyzing the contributions of software developers by means of MSR and PM techniques. In this context, this dissertation proposes the development of two empirical studies of assessment of the contribution of software developers to an open-source and a commercial project using those techniques. The contributions of developers are assessed through three different perspectives: (i) buggy commits; (ii) the size of commits; and (iii) the most important bugs. For the opensource project 12.827 commits and 8.410 bugs have been analyzed while 4.663 commits and 1.898 bugs have been analyzed for the commercial project. Our results indicate that, for the open source project, the developers classified as core developers have contributed with more buggy commits (although they have contributed with the majority of commits), more code to the project (commit size) and more important bugs solved while the results could not indicate differences with statistical significance between developer groups for the commercial project
Resumo:
Não é uma tarefa fácil definir requisitos para os sistemas de software que darão suporte a um negócio, dada a dinâmica de mudanças nos processos. O levantamento de requisitos tem sido feito de forma empírica, sem o apoio de métodos sistematizados que garantam o desenvolvimento baseado nos reais objetivos do negócio. A engenharia de software carece de métodos que tornem mais ordenadas e metódicas as etapas de modelagem de negócios e de levantamento de requisitos de um sistema. Neste artigo é apresentada uma metodologia de desenvolvimento de software resultante da incorporação de atividades propostas para modelagem de negócios e levantamento de requisitos, baseadas em uma arquitetura de modelagem de negócios. Essas atividades tornam o desenvolvimento de software mais sistemático e alinhado aos objetivos da organização, e podem ser incorporadas em qualquer metodologia de desenvolvimento baseada no UP (Unified Process - Processo Unificado).
Resumo:
Face às dimensões continentais do país, as organizações situadas em regiões carentes de fornecedores de desenvolvimento de sistemas de software especializado estão distribuindo suas operações de Information Technology Outsourcing (ITO), para outras regiões. Como consequência, a redução de custos e a melhoria da contratação de serviços em Tecnologia da Informação (TI) têm sido os dois grandes focos da atualidade, incentivando à noção de parceiros múltiplos em operações recíprocas e engajados tanto em relacionamentos formais quanto informais como a terceirização. Os serviços terceirizados são diversificados e entre eles está o desenvolvimento e manutenção de software através de contratos, realizados por organizações situadas em regiões onde existe demanda de software com características específicas. Sabe-se que a terceirização de Software e Serviços Correlatos (S&SC), que inclui as atividades de contratação e gestão do processo de aquisição é uma tarefa complexa e necessária para as organizações, principalmente no que diz respeito às condições envolvidas na contratação. Nesses casos, o exercício da governança tem sido um importante instrumento para, com a terceirização de TI, promover a gestão adequada do risco e o retorno do investimento. Sendo assim, o processo de compra ou venda de um produto de software nesse ambiente é uma atividade que envolve um grande número de conceitos subjetivos, referentes principalmente a características dos produtos. Torna-se maior o desafio quando se trata de software de prateleira modificável (Modified Off-The-Shelf - MOTS) que sofrem modificações e adições de requisitos a cada novo cliente. Neste contexto, buscando adequar as exigências do mercado com as necessidades de métodos e diretrizes para melhoria dos processos de aquisição e fornecimento de software, este trabalho procura explorar as principais características acerca do contrato, do controle de qualidade, e os resultados dos relacionamentos adotados na implementação de projetos de terceirização desenvolvidos á distância. São apresentados os resultados obtidos de um estudo de caso conduzido em uma empresa pública de Medicina Transfusional situada no norte do Brasil que adotou este processo. Por fim, este texto apresenta uma discussão sobre os diferenciais e limitações deste trabalho, e apresenta direcionamentos para investigações futuras neste campo de estudo.
Resumo:
A Modelagem de Sistemas vêm sendo cada vez mais aplicada nos meios de produção para as mais diversas finalidades, incluindo a área de Projeto de Sistemas, com o intuito de definir o número de pessoas na equipe, analisar o esforço, o tamanho do software e os custos totais do projeto. Este trabalho tem por finalidade desenvolver um modelo de apoio à análise baseado em Pontos de Caso de Uso (PCU). Para isso, utiliza-se de vários métodos de pesquisa entre elas a pesquisa exploratória e de laboratório para criar um modelo de apoio para a análise.
Resumo:
Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
Resumo:
Reporta resultados da aplicação de princípios da gestão do conhecimento na condução de um projeto de definição, modelagem e implementação de processo de desenvolvimento de software, no contexto de uma organização do setor público. O processo resultante, denominado SIGA-ME, se mostrou capaz de harmonizar práticas variadas, integrar processos técnicos de TI e formalizar papeis e responsabilidades dos participantes envolvidos. Estão relatadas neste trabalho as principais dificuldades encontradas e lições aprendidas registradas ao longo do trabalho, que adotou como estratégia o levantamento dos pontos de interesse das áreas envolvidas, a validação de práticas em projetos reais, o desenho do processo através da notação BPMN e a utilização do MediaWiki como ferramenta de comunicação, colaboração e compartilhamento de conhecimento.
Resumo:
O contexto da era da informação exige novas habilidades para competir com sucesso, tanto para empresas industriais como para as de serviços. Desde o seu surgimento, a Engenharia de Software tem enfrentado o desafio em estimar, controlar e gerenciar custos no processo de desenvolvimento de software. Os custos são parte de um projeto de software e nem sempre são claramente mensurados. Algumas desenvolvedoras de software são caracterizadas como prestadoras de serviços e as organizações que prestam serviços possuem as mesmas dificuldades em termos gerenciais que as indústrias, elas precisam de sistemas de gestão adequados para gerir seus custos, logo seus recursos. Nesse contexto é que os sistemas de informações contábeis estão inseridos, fornecendo respostas que os gestores necessitam para tomar decisões. Os custos são exemplos desse tipo de informação, pois o seu conhecimento é indispensável para uma boa gerência dos recursos organizacionais. O Custeio Baseado em Atividades (ABC) é uma ferramenta contábil útil para o gerenciamento estratégico dos custos uma vez que os sistemas de custeio tradicionais já não atendem essa necessidade das organizações. Diante desse cenário, o objetivo geral dessa dissertação é aplicar a metodologia de custeio baseado em atividades em um projeto de desenvolvimento de software com a finalidade de gestão de custos. Este pesquisa caracteriza-se como qualitativa descritiva e faz uso do método do estudo de caso. Através desse estudo foi possível comprovar a utilidade do ABC como instrumento de auxílio na gestão de custos nas organizações que prestam serviços em desenvolvimento de software, pois possibilita a visualização da maneira que os recursos são consumidos pelas atividades que agregam e não agregam valor ao negócio e ao cliente.