821 resultados para Engenharia de software automatizada
Resumo:
Jogos educacionais constituem em uma importante ferramenta de ensino na área de Engenharia de Software, onde, muitas vezes, os alunos não passam por nenhum mecanismo de treinamento prático. Um jogo educacional de qualidade tem que ter objetivos educacionais bem definidos, motivar os alunos e efetivar a aprendizagem dos conteúdos. A aplicação de jogos no Ensino de Engenharia de Software deve ser realizada de forma sistemática e controlada com base em avaliação. A técnica Estatística de Experimentação permite a medição e a análise das variáveis envolvidas no processo de aplicação de jogos para que estes possam ser aplicados com qualidade. Para definir melhor os experimentos no uso de jogos para o ensino de Engenharia de Software, este trabalho propõe diretrizes para o planejamento de experimentos em jogos educacionais, de forma que permita verificar a influência e a significância da utilização desses jogos no ensino e aprendizado dos conceitos de Engenharia de Software. Um experimento com o SimulES-W foi realizado seguindo essas diretrizes, onde foi possível ser demonstrada sua aplicabilidade e simplicidade em sua definição. A experiência de uso do SimulES-W mostra que aprender com jogos de computador é divertido, interativo e que, apesar dos resultados obtidos não serem significativos estatisticamente, de certa forma contribui para o ensino da Engenharia de Software, não sendo necessariamente um conhecimento prévio do conteúdo.
Resumo:
Dissertação apresentada à Universidade Fernando Pessoa como partes dos requisitos para a obtenção do grau de Mestre em Engenharia Informática, ramo de Computação Móvel
Resumo:
A demanda por aplicações de workflow tem crescido rapidamente. Por um lado há uma evolução em ambientes com plataformas de sistemas maduras e disseminadas, por outro, processos de redesenho administrativo têm contribuído no aumento desta demanda. Apesar disto, profissionais de TI ainda encontram alguns problemas, e por isto, têm se aproximado de workflow com receio. Na administração pública de Porto Alegre, a otimização dos processos organizacionais de atendimento às demandas individuais dos cidadãos - que geram um registro em papel que constitui o que se denomina processo administrativo ou expediente, ou seja, um volume físico de papéis tramitando manualmente pelas estruturas que atuam no atendimento da demanda - redundou no emprego de ferramentas de automação para introduzir maior produtividade e eficiência na mudança dos métodos de trabalho. Mas alguns problemas se destacaram quando foi iniciado o desenvolvimento de aplicações de automação de processos. Uma face deles se mostrou em problemas conceituais que vão desde a confusão entre workflow e outras áreas, como BPR ou GED, à falta de domínio sobre as abstrações fundamentais na elicitação de workflow. Outra face se mostrou nos WMS, verdadeiros ambientes proprietários, fechados e pesados, de difícil utilização e pouco flexíveis para os desenvolvedores utilizarem em seu ambiente. Finalmente, outro problema foi a integração de aplicações de workflow com sistemas de informação, buscando informações e eventos em aplicações legadas, algumas existentes por décadas. Frente a isto, este trabalho aborda a produção de workflow sob a ótica dos desenvolvedores - analistas, projetistas e programadores - que necessitam criar aplicações corporativas em seus ambientes de Engenharia de Software. Neste cenário, a linha divisória entre a elaboração de uma aplicação de workflow e um sistema de informação se torna tênue, e compreender os aspectos envolvidos, dominá-los e utilizá-los neste ambiente é primordial para o sucesso e disseminação de aplicações de automação de processos. Este trabalho propõe uma extensão do Diagrama de Atividades da UML para modelar e elicitar o controle de atividades, a criação de um motor de workflow para executar a máquina de estados do Diagrama de Atividades, a ser utilizado como componente na arquitetura das aplicações. A utilização do motor de workflow e do Diagrama de Atividades estendido são apresentados num case de automação de um processo da Secretaria do Planejamento Municipal da Prefeitura Municipal de Porto Alegre que atende a solicitações diretas dos cidadãos.
Resumo:
Esta videoaula é uma apresentação do conteúdo que será trabalhado durante a disciplina de Engenharia de Software. O objetivo principal da disciplina é ensinar os alunos a projetar um sistema orientado a objetos usando a linguagem de modelagem UML. O objetivo secundário é ensiná-los a desenvolver um sistema de forma iterativa e incremental. Os diagramas abordados durante o curso são Casos de Uso, Diagramas Conceituais e de Classes, Diagrama de Seqüência, Diagrama de Colaboração e de Estado. Para exemplificar e transmitir tais ensinamentos será usado um sistema de reserva de uma rede de hotéis. Este material é voltado aos estudantes de graduação que estão cursando disciplinas de Engenharia de Software.
Resumo:
Through the adoption of the software product line (SPL) approach, several benefits are achieved when compared to the conventional development processes that are based on creating a single software system at a time. The process of developing a SPL differs from traditional software construction, since it has two essential phases: the domain engineering - when common and variables elements of the SPL are defined and implemented; and the application engineering - when one or more applications (specific products) are derived from the reuse of artifacts created in the domain engineering. The test activity is also fundamental and aims to detect defects in the artifacts produced in SPL development. However, the characteristics of an SPL bring new challenges to this activity that must be considered. Several approaches have been recently proposed for the testing process of product lines, but they have been shown limited and have only provided general guidelines. In addition, there is also a lack of tools to support the variability management and customization of automated case tests for SPLs. In this context, this dissertation has the goal of proposing a systematic approach to software product line testing. The approach offers: (i) automated SPL test strategies to be applied in the domain and application engineering, (ii) explicit guidelines to support the implementation and reuse of automated test cases at the unit, integration and system levels in domain and application engineering; and (iii) tooling support for automating the variability management and customization of test cases. The approach is evaluated through its application in a software product line for web systems. The results of this work have shown that the proposed approach can help the developers to deal with the challenges imposed by the characteristics of SPLs during the testing process
Resumo:
Software Products Lines (SPL) is a software engineering approach to developing software system families that share common features and differ in other features according to the requested software systems. The adoption of the SPL approach can promote several benefits such as cost reduction, product quality, productivity, and time to market. On the other hand, the SPL approach brings new challenges to the software evolution that must be considered. Recent research work has explored and proposed automated approaches based on code analysis and traceability techniques for change impact analysis in the context of SPL development. There are existing limitations concerning these approaches such as the customization of the analysis functionalities to address different strategies for change impact analysis, and the change impact analysis of fine-grained variability. This dissertation proposes a change impact analysis tool for SPL development, called Squid Impact Analyzer. The tool allows the implementation of change impact analysis based on information from variability modeling, mapping of variability to code assets, and existing dependency relationships between code assets. An assessment of the tool is conducted through an experiment that compare the change impact analysis results provided by the tool with real changes applied to several evolution releases from a SPL for media management in mobile devices
Resumo:
A colaboração na pesquisa é uma das tarefas centrais da área acadêmica. Atualmente, muitos pesquisadores estão utilizando meios modernos de troca de arquivos digitais através de ferramentas assíncronas e também com o uso de ferramentas mais sofisticadas, do tipo síncronas. Juntamente com o fato da crescente quantidade de artigos sendo gerados, mais complexos, diversificados e aumentando de forma desorganizada, o que trás ao pesquisador uma tarefa difícil para organizá-los de forma a se extrair o melhor conteúdo destes, isto ocorre porque uma subárea da Engenharia de Software (ES) ainda é bastante mal aproveitada, a Engenharia de Software Experimental (ESE). Utilizando-se de um dos tipos de experimentos que a ESE oferece, as revisões sistemáticas entram como uma solução bastante robusta, na qual o pesquisador pode identificar o conhecimento existente em uma área e planejar devidamente sua pesquisa, evitando a repetição de erros em pesquisas já efetivadas por outros pesquisadores no passado. Contudo, estas duas abordagens, a colaboração virtual de pesquisadores e a utilização de revisões sistemáticas, contem problemas: na primeira, sistemas colaborativos são geralmente difíceis de configurar e usar; na segunda, apesar da robustez da metodologia de revisões sistemáticas, ainda se torna necessário uma rigorosa revisão na literatura para se conseguir um resultado satisfatório. Assim, com o foco de unir estas duas abordagens, este trabalho propõe uma maneira de produzir revisões sistemáticas de forma organizada e com a possibilidade de interação entre usuários, com o desenvolvimento de um sistema interativo, no qual as revisões sistemáticas possam ser geradas por usuários em colaboração com outros e também ser avaliadas seguindo a orientação de um profissional da área, tornando o seu conteúdo mais consistente e de melhor qualidade. O sistema não possui níveis de acesso, ou seja, qualquer pessoa pode se cadastrar e usufruir de seus recursos, seja na área acadêmica ou mesmo na área profissional
Resumo:
Os hidrogeradores são peças chaves no circuito brasileiro de energia, sua indisponibilidade e mau funcionamento podem causar multas altíssimas a concessionárias aplicadas pela ANEEL por não atenderem a demandas e até por paradas impróprias para efetivar manutenções, além de agravar confiabilidade na garantia do fornecimento aos consumidores finais. Para garantir que isso não venha acontecer, a manutenção preditiva fornece técnicas que podem apontar as falhas analisando os “sinais vitais” originados pelo próprio equipamento. Desta forma as condições mecânicas e operacionais são periodicamente monitoradas e quando as tendências são detectadas insalubres, as peças incômodas na máquina são identificadas e programadas para manutenção. Para que essa tendência seja encontrada, utiliza-se da lógica fuzzy para modelar o comportamento dos hidrogeradores, sendo mais especifico: mancais, estator e anel coletor, inferindo conclusões prováveis de falhas. Neste trabalho, mostra o processo de construção do sistema que auxilia no diagnóstico da manutenção preditiva, desde sua metodologia de desenvolvimento por macro-atividades, definição arquitetural, conformidade dos requisitos e análise do conhecimento inserido a inteligência do sistema. O sistema foi desenvolvido em plataforma labview para servir como ferramenta de apoio. Todo o conhecimento inserido no sistema foi obtido com o corpo especialista de Eletronorte e outra parte na literatura, foi necessário aplicar o conceito de regras ao maquina de inferência fuzzy, para uma forma linguística de fácil compreensão, para que os próprios especialistas ampliem e evolua o software.
Resumo:
Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP)
Resumo:
Indicadores de desempenho são importantes recursos para a gestão da qualidade no desenvolvimento de software. O volume de dados produzido por esses indicadores tende a aumentar significativamente com o tempo de monitoração, dificultando análises e tomadas de decisão. As bases históricas tornam-se complexas, considerando a quantidade de dados monitorados e a diversidade de indicadores (diferentes tipos, granularidade e frequência). Este trabalho propõe o uso de técnicas de aprendizagem de máquina para análise dessas bases, utilizando redes neurais artificiais combinadas com técnicas de visualização de informação. É utilizado um modelo de indicadores, com base nos processos do modelo de referência MPS para Software (MPS-SW), agrupados segundo as perspectivas estratégicas do Balanced Scorecard (BSC).
Resumo:
Este trabalho identifica o Código de Ética e Prática Profissional da engenharia de software como o conjunto de práticas para consideração de fatores humanos na engenharia de software. A seguir, estende o Kernel da especificação Essence, e o utiliza para conduzir a aplicação desse conjunto de práticas. A prova de conceito indica que o conjunto de práticas identificadas não garante a consideração de fatores humanos na engenharia de software. Considerar a ética nas interações existentes na empreitada de engenharia de software não é um simples caso de utilização de checklists como forma de verificar o que deve ser feito para certificar que algo foi realizado. Considerar a ética é mais do que isso. É necessário que todas as pessoas tenham consciência da importância da ética, do respeito de um ao outro e à sociedade.
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:
The software systems development with domain-specific languages has become increasingly common. Domain-specific languages (DSLs) provide increased of the domain expressiveness, raising the abstraction level by facilitating the generation of models or low-level source code, thus increasing the productivity of systems development. Consequently, methods for the development of software product lines and software system families have also proposed the adoption of domain-specific languages. Recent studies have investigated the limitations of feature model expressiveness and proposing the use of DSLs as a complement or substitute for feature model. However, in complex projects, a single DSL is often insufficient to represent the different views and perspectives of development, being necessary to work with multiple DSLs. In order to address new challenges in this context, such as the management of consistency between DSLs, and the need to methods and tools that support the development with multiple DSLs, over the past years, several approaches have been proposed for the development of generative approaches. However, none of them considers matters relating to the composition of DSLs. Thus, with the aim to address this problem, the main objectives of this dissertation are: (i) to investigate the adoption of the integrated use of feature models and DSLs during the domain and application engineering of the development of generative approaches; (ii) to propose a method for the development of generative approaches with composition DSLs; and (iii) to investigate and evaluate the usage of modern technology based on models driven engineering to implement strategies of integration between feature models and composition of DSLs
Resumo:
This work shows a project method proposed to design and build software components from the software functional m del up to assembly code level in a rigorous fashion. This method is based on the B method, which was developed with support and interest of British Petroleum (BP). One goal of this methodology is to contribute to solve an important problem, known as The Verifying Compiler. Besides, this work describes a formal model of Z80 microcontroller and a real system of petroleum area. To achieve this goal, the formal model of Z80 was developed and documented, as it is one key component for the verification upto the assembly level. In order to improve the mentioned methodology, it was applied on a petroleum production test system, which is presented in this work. Part of this technique is performed manually. However, almost of these activities can be automated by a specific compiler. To build such compiler, the formal modelling of microcontroller and modelling of production test system should provide relevant knowledge and experiences to the design of a new compiler. In ummary, this work should improve the viability of one of the most stringent criteria for formal verification: speeding up the verification process, reducing design time and increasing the quality and reliability of the product of the final software. All these qualities are very important for systems that involve serious risks or in need of a high confidence, which is very common in the petroleum industry