UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO FERRAMENTA CASE PARA AUTOMATIZAR A CRIAÇÃO DE TESTES DE UNIDADE Área de Engenharia de Software por Antonio Carlos Silva Fabiane Barreto Vavassori Benitti, Dra Orientadora Itajaí (SC), novembro de 2007

2 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO FERRAMENTA CASE PARA AUTOMATIZAR A CRIAÇÃO DE TESTES DE UNIDADE Área de Engenharia de Software por Antonio Carlos Silva Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientadora: Fabiane Barreto Vavassori Benitti, Dra. Itajaí (SC), novembro de 2007

3 DEDICATÓRIA Dedico todos os meus esforços a meus pais, Orlando Geroncio Silva e Telma Regina Silva, aos meus irmãos, Camila Cristina Silva e Orlando Geroncio Silva Junior e a minha namorada Roberta Aracy Melo. ii

4 AGRADECIMENTOS Agradeço aos meus pais pelo apoio não apenas durante a graduação, mas por toda minha vida. Aos meus irmãos que souberam me compreender mesmo em momentos de maior tensão. Agradeço a minha namorada, por toda paciência, força e atenção e por compreender a minha ausência durante o desenvolvimento deste projeto. Agradeço a todos os professores do curso de Ciência da Computação que contribuíram de forma direta ou indireta para alcançar este objetivo. Agradeço em especial a minha orientadora a professora Fabiane Barreto Vavassori Benitti e a professores como André Luis Alice Raabe, Cesar Albenes Zeferino entre outros, que marcaram de forma especial minha vida acadêmica nesta instituição. Agradeço aos colegas de graduação, pelos momentos de descontração e ajuda nos estudos. Agradeço ainda em especial ao colega Elieser Ademir de Jesus, por suas contribuições e desafios propostos, alguns dos quais enfrentados em conjunto. A todos estes, deixo meu agradecimento por terem ajudado a concluir mais esta etapa em minha vida. iii

5 SUMÁRIO LISTA DE ABREVIATURAS... vi LISTA DE FIGURAS... vii RESUMO... ix ABSTRACT...x 1 INTRODUÇÃO PROBLEMATIZAÇÃO Formulação do Problema Solução Proposta OBJETIVOS Objetivo Geral Objetivos Específicos METODOLOGIA ESTRUTURA DO TRABALHO FUNDAMENTAÇÃO TEÓRICA TESTE DE SOFTWARE O processo de teste de software Teste de Unidade FERRAMENTAS CASE Automatização de testes Integração entre ferramentas CASE utilizando XMI GERAÇÃO DE CÓDIGO Ferramenta Velocity FERRAMENTAS PARA TESTE DE SOFTWARE JUnit Objecteering UML CodePro AnalytiX PROJETO REQUISITOS Requisitos funcionais Requisitos não funcionais Regras de negócio CASOS DE USO DIAGRAMA DE CLASSES XML SCHEMA PADRÕES DE PROJETO UTILIZADOS DESENVOLVIMENTO TÉCNICA DE DESENVOLVIMENTO TDD iv

6 4.2 IMPLEMENTAÇÃO DA FERRAMENTA Implementação do analisador de arquivos no padrão XMI Implementação da definição dos casos de teste Implementação da validação dos casos de teste Implementação do gerador de código fonte para os casos de teste FERRAMENTA UNITCASE Funcionamento da ferramenta Demonstração da ferramenta CONCLUSÕES TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS...81 APÊNDICE A DETALHAMENTO DOS CASOS DE USO...85 A.1 UC01 CRIAR PROJETO A.2 UC02 ABRIR PROJETO A.3 UC03 SALVAR PROJETO A.4 UC04 FECHAR PROJETO A.5 UC05 CRIAR CASO DE TESTE A.6 UC06 DEFINIR O SETUP A.7 UC07 CRIAR STUB A.8 UC08 VALIDAR CASO DE TESTE A.9 UC09 GERAR CÓDIGO FONTE APÊNDICE B DETALHAMENTO DAS CLASSES DO MODELO DE DOMÍNIO...96 B.1 CLASSES DO PACOTE MODELO B.2 CLASSES DO PACOTE CASODETESTE APÊNDICE C XML SCHEMA PARA A FERRAMENTA...98 APÊNDICE D XMI UTILIZADO NA DEMONSTRAÇÃO DA FERRAMENTA v

7 LISTA DE ABREVIATURAS CASE DTD DVSL GEF GUI IDE JFC MDA MOF MVC OMG RF RN RNF SGML TCC TDD UC UML UNIVALI VTL W3C XMI XML XP XSLT Computer Aided Software Engineering Document Type Definition Declarative Velocity Style Language Graphical Editing Framework Graphical User Interface Integrated Development Environment Java Foundation Classes Model Driven Architecture Meta Object Facility Model View Control Object Management Group Requisito Funcional Regra de Negocio Requisito Não Funcional Standardized Generalized Markup Language Trabalho de Conclusão de Curso Test Driven Development Use Case Unified Modeling Language Universidade do Vale do Itajaí Velocity Template Language World Wide Web Consortium XML Metadata Interchange Extensible Markup Language Extreme Programming Extensible Stylesheet Language Transformation vi

8 LISTA DE FIGURAS Figura 1. Processo de teste para detecção de defeitos... 9 Figura 2. Etapas de teste Figura 3. Visão de teste de caixa branca Figura 4. Visão de teste de caixa preta Figura 5. Elementos básicos para uma instância de um documento XMI Figura 6. XML Schema com a definição para o elemento XMI Figura 7. Documento instância XMI contendo informações sobre uma classe Figura 8. Diagrama de Classes exemplo Figura 9. Documento instância XMI exemplificando a tradução das associações entre classes Figura 10. Geração de código baseada em templates Figura 11. Arquitetura da ferramenta Velocity Figura 12. Exemplo de uso da ferramenta Velocity Figura 13. Arquivo de templates HelloWorld.vm Figura 14. Arquivo de exemplo VelocityTest.java Figura 15. Saída gerada para o template HelloWorld.vm Figura 16. Pacote de Classes do framework JUnit Figura 17. Classe com o caso de teste para execução com o framework JUnit Figura 18. Execução do caso de um caso de teste utilizando a ferramenta Eclipse Figura 19. Classe execução com o framework JUnit utilizando o 38 Figura 20. Ferramenta Objecteering UML Figura 21. Caso de teste utilizando a ferramenta Objecteering UML Figura 22. Interface padrão do módulo JUnit Test Generation da ferramenta CodePro AnalytiX Figura 23. Casos de uso para a ferramenta proposta Figura 24. Diagrama de classes para o pacote modelo da ferramenta proposta Figura 25. Diagrama de classe para o pacote casodeteste para a ferramenta proposta Figura 26. Estrutura do elemento raiz unitcase Figura 27. Estrutura do elemento Projeto Figura 28. Estrutura do elemento Classe Figura 29. Estrutura do elemento Gerenciador Figura 30. Estrutura do elemento Stub Figura 31. Estrutura do elemento Método Figura 32. Estrutura do elemento SetUp Figura 33. Modelo para exemplificar o uso do padrão Composite Figura 34. Modelo para demonstrar o padrão visitor Figura 35. Classe Projeto que exemplifica o uso do padrão Singleton Figura 36. Método para geração de código da classe Gerador Figura 37. Template em linguagem VTL para geração de código fonte em Java Figura 38. Diagrama de atividades para a ferramenta proposta Figura 39. Diagrama de seqüência utilizado para definição dos casos de teste na ferramenta Figura 40. Diagrama de classes para construção do estudo de caso Figura 41. Código fonte para a classe Produto Figura 42. Código fonte para a classe CarrinhoDeCompras Figura 43. Interface para definir as informações do projeto Figura 44. Interface para definição dos objetos do SetUp Figura 45. Opção para criar um novo caso de teste Figura 46. Interface para criação de um novo caso de teste vii

9 Figura 47. Interface para definição e visualização do caso de teste Figura 48. Interface para criação de um novo Stub Figura 49. Barra de ferramentas utilizada na definição do diagrama de seqüência Figura 50. Interface para adicionar um Stub ao caso de teste Figura 51. Interface para definição da mensagem Figura 52. Interface para adicionar um Objeto ao caso de teste Figura 53. Caso de teste testadicionaproduto Figura 54. Interface para validação dos casos de teste Figura 55. Interface para geração de código fonte Figura 56. Código gerado pela ferramenta para o caso de teste Figura 57. Execução do caso de teste utilizando o framework JUnit Figura 58. XML Schema para a ferramenta proposta Figura 59. XMI utilizado na demonstração da ferramenta viii

10 RESUMO SILVA, Antonio Carlos. Ferramenta CASE para automatizar a criação de testes de unidade. Itajaí, f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, A engenharia de software tem por objetivo fornecer ao engenheiro de software a base necessária para a construção de sistemas de alta qualidade e de modo produtivo. O teste de software compreendido pela engenharia de software tem como foco garantir esta qualidade dos sistemas, fornecendo métodos e técnicas a fim de detectar erros comumente presentes nos softwares. O processo de desenvolvimento de software deve abranger uma etapa para aplicação dos testes, um dos testes iniciais aplicados ao sistema é o teste de unidade, que acontece antes mesmo da total codificação do sistema. O teste de unidade muitas vezes é desenvolvido e aplicado pelo programador, o que acaba por aumentar ainda mais a carga de trabalho deste profissional. Para auxiliar nesta fase dos testes, inúmeras ferramentas visam automatizar uma série de processos, como por exemplo, o framework JUnit que fornece além de uma biblioteca para criação de casos de teste um ambiente para execução dos testes de unidade de forma automatizada. Mesmo utilizando o framework JUnit a criação dos casos de teste é feita através de implementação em código fonte, o que acaba por justificar a necessidade do próprio desenvolvedor criar os casos de teste para os testes de unidade. Assim, a proposta para este trabalho de conclusão é o desenvolvimento de uma ferramenta CASE (Computer Aided Software Engineering, Engenharia de Software Auxiliada por Computador) para auxiliar na fase de teste de unidade, permitindo a criação de casos de teste sem que o usuário tenha de implementá-los em código fonte, mais sim de forma visual por meio de mensagens entre os objetos do seu modelo de classes no padrão XMI. Palavras-chave: Engenharia de Software. Teste de Software. Teste de Unidade. ix

11 ABSTRACT The software engineering has as objective to provide to the software engineer the necessary base for the construction of systems of high quality and productive way. The test of software understood by the software engineering has as focus to guarantee this quality of the systems, supplying methods and techniques in order to detect errors usually present in software. The process of software development must include a stage for application of the tests, one of the applied initial tests to the system is the unit test, that happens before exactly of the total codification of the system. A lot of times the unit test is developed and applied by the developer, that finishes increasing still more the load of work of this professional. For aiding in this phase of the tests, innumerable tools aim at automatizing a series of processes, such as, JUnit framework that supplies besides a library for creation of test cases, an environment for the execution of the unit tests of automatized form. Although using JUnit framework the creation of the test cases is made through implementation in source code, that finishes justifying the necessity of proper developer creates the test cases for the unit tests. Thus, the proposal for this conclusion work is the development of a CASE tool (Computer Aided Software Engineering, Software Engineering aided by computer) to aid in the phase of unit test, allowing the creation of test cases without the user has to implement them in source code, but of a visual form by messages among the objects of its model of classes in XMI standard. Keywords: Software Engineering. Test of Software. Unit Test. x

12 1 INTRODUÇÃO O software está presente em praticamente todas as áreas, cumprindo com seu papel em tornar a vida mais confortável, eficiente e efetiva, em muitos momentos, explicitamente ou sem se fazer notar (PFLEEGER, 2004). A engenharia de software é um dos campos da ciência da computação que tem como foco a construção de sistemas computacionais tão grandes e/ou tão complexos que são construídos por uma equipe de desenvolvedores e uma equipe de engenheiros (GHEZZI e JAZAYERI, 1991). A engenharia de software, segundo Inthurn (2001), fornece ao engenheiro as bases para construção de sistemas computacionais de alta qualidade e de modo produtivo, definindo ainda a engenharia de software como uma disciplina para o desenvolvimento de sistemas, englobando três elementos: métodos, ferramentas e procedimentos. Assim um processo de desenvolvimento totalmente efetivo deve considerar as relações entre estes elementos, abrangendo ainda todo o ciclo de vida de um software, sendo este ciclo de vida divido em: estudo inicial, análise, projeto, implementação, teste, documentação, instalação (implantação) e manutenção. Dentre todas as etapas do ciclo de vida de um software, a etapa de teste está focada em garantir a qualidade do software em desenvolvimento, sendo definido por Hetzel (1987) como: o processo de executar um programa ou sistema com a finalidade de encontrar erros. Teste é a medida de qualidade do software. A etapa de teste visa encontrar defeitos comumente presentes num projeto de software e são muitos os fatores que levam a existência desses defeitos, um grande número de requisitos, a complexidade dos algoritmos e soluções propostas, o tamanho do projeto de software, bem como o número de pessoas envolvidas no seu desenvolvimento. Estas falhas podem ser identificadas e corrigidas em diversos momentos durante o projeto de desenvolvimento de um software (PFLEEGER, 2004). Assim a etapa de testes interage diretamente com outras etapas dentro do projeto de desenvolvimento de um software, para cada uma destas interações são definidos diferentes requisitos para a execução, para compreender estes requisitos os testes estão divididos em: teste de unidade, teste de integração, teste funcional, teste de desempenho, teste de aceitação e teste de instalação (PFLEEGER, 2004).

13 O teste de unidade, conhecido também por teste de componente ou teste de módulo, é definido por Thomas et al. (2004), como um teste projetado para verificar uma única unidade de software de forma isolada das demais unidades. Em projetos orientados a objetos, uma unidade de implementação é uma classe ou um método de uma classe. Para os testes de unidade existem duas abordagens mais comuns, a abordagem tradicional citada por Macgregor e Sykes (2001), Paula Filho (2003) e Pfleeger (2004), onde a criação e execução dos testes de unidades são de responsabilidade do programador, fazendo parte do fluxo de implementação. A segunda abordagem para o teste de unidade conhecida por TDD (Test Driven Development), proposta por Beck (2002), tem como foco o planejamento dos testes de unidade, onde estes são modelados e mesmo gerados durante a fase de análise, apenas a execução dos testes ocorre durante implementação. Existem diversas ferramentas CASE (Computer-Aided Software Engineering, Engenharia de Software auxiliada por computador) que suportam o TDD ou a abordagem tradicional. Estas abordagens diferem principalmente no uso de ferramentas para geração de casos de teste, como o CodePro AnalytiX (INSTATION, 2007), por exemplo, que auxilia principalmente na técnica mais tradicional, fazendo a leitura do código fonte do software para automatizar a geração dos casos de teste. Já para a técnica proposta por Beck (2002), existem ferramentas como o Objecteering (OBJECTEERING, 2007), em que os casos de testes são gerados com base em diagramas durante a fase de análise, sem a necessidade de código implementado. A execução dos testes em geral ocorre utilizando um software em comum para as duas abordagens, como por exemplo, o JUnit (JUNIT, 2007), responsável por automatizar execução dos testes de unidade escritos na linguagem Java. Assim, diversas ferramentas para criação dos testes de unidade se baseiam apenas em uma das técnicas, considerando que uma das principais diferenças entre as ferramentas está na entrada dos dados, pois a criação dos testes ocorre de forma semelhante, através de uma interface gráfica onde o usuário da ferramenta tem pouco ou quase nenhum contato com a linguagem em que o código final será gerado. Dados estes fatores, este trabalho tem como proposta o desenvolvimento de uma ferramenta CASE para geração dos testes de unidade, a fim de apoiar ambas as abordagens. O principal objetivo da ferramenta é possibilitar a criação dos testes de unidade tendo como base 2

14 um diagrama de classes no formato XMI 1. Desta forma, o usuário poderá, após a criação dos testes, auxiliado pela ferramenta, gerar o código dos casos de testes para que este seja então executado por uma ferramenta externa, como o JUnit (JUNIT, 2007), por exemplo. O principal objetivo da ferramenta proposta é possibilitar além de um ganho de produtividade para as equipes que realizam os testes de unidade, a possibilidade de arquivar estes testes junto ao projeto de forma que possa ser utilizado ou verificado posteriormente. 1.1 PROBLEMATIZAÇÃO Formulação do Problema Obter uma melhor qualidade em um produto de software não é apenas um aspecto desejado e sim essencial, tendo em vista o custo ao qual uma falha em um software pode causar ao cliente e a empresa responsável pelo seu desenvolvimento. Dado este fator, não são poucos os esforços em manter um processo de desenvolvimento que possa minimizar estas falhas, identificando-as o quanto antes para que possam ser verificadas e eliminadas. Para colaborar com este objetivo, o teste de software deve estar presente em todo o processo de desenvolvimento, pois este é um dos responsáveis por garantir a qualidade do software em desenvolvimento, baseando-se principalmente na simulação de inúmeras tarefas as quais o software deverá apoiar baseado em suas funcionalidades. Este processo, mesmo que bem formalizado e parametrizado, acaba por tornar-se custoso, dada as inúmeras possibilidades que um software pode apresentar. O teste de unidade, considerado como uma das etapas iniciais do teste de software, em alguns processos de software iniciando antes mesmo da fase de desenvolvimento, este é apontado em muitos processos, como uma responsabilidade do programador. Por conseqüência, pode acabar por sobrecarregar as atividades já desempenhadas por este, levando-o ainda a omitir-se na criação de casos de teste mais complexos, aumentando assim a chance de uma falha não ser detectada antes que o produto chegue ao cliente (BECK, 2002). 1 XMI (XML Metadata Interchange) é o padrão estabelecido pela OMG (Object Management Group) para troca de metadados utilizando XML (Extensible Markup Language). O padrão XMI permite a troca de metadados entre as ferramentas de modelagem que o implementam (OMG, 2007). 3

15 1.1.2 Solução Proposta Este projeto tem como proposta o desenvolvimento de uma ferramenta CASE que permita auxiliar na criação dos casos de teste para os testes de unidade, possibilitando ainda que estes possam ser gerados sem a necessidade de contato direto com a linguagem fonte ao qual o software foi originalmente desenvolvido. Com o auxílio da ferramenta proposta, os casos de teste passam a ser concebidos de forma visual, utilizando para isto o diagrama de seqüência definido pela UML, assim a tarefa aproxima-se em muito do papel já desempenhado pelo analista que utiliza outras ferramentas baseadas em modelos UML. A ferramenta tem por objetivo, permitir a criação de um projeto de casos de teste para um determinado modelo, para isso o usuário deve seguir os seguintes passos: 1. Importação do modelo: este passo se dá informando o local onde está contido o arquivo contendo os dados do modelo no padrão XMI; 2. Definição dos casos de teste: nesta etapa por meio de diagramas de seqüência o usuário define os casos de uso para o modelo importado; 3. Geração do código fonte: por fim o usuário tem a opção de gerar o código fonte para os casos de teste do modelo, possibilitando sua execução pelo framework JUnit. 1.2 OBJETIVOS Objetivo Geral O objetivo geral deste projeto é desenvolver uma ferramenta CASE para automatizar o planejamento e geração dos testes de unidade Objetivos Específicos Pesquisar conceitos relativos a teste de software com ênfase em teste de unidade; Pesquisar e analisar soluções similares para planejamento e geração dos testes de unidade; Especificar os requisitos do sistema; 4

16 Realizar a modelagem e especificação do sistema; Implementar o sistema: o Implementar um reconhecedor para o padrão XMI; o Permitir a configuração e planejamento dos testes de unidade; o Permitir a geração de código Java para os testes de unidade; Testar o sistema; e Documentar o desenvolvimento do sistema. 1.3 Metodologia A metodologia utilizada para o desenvolvimento deste projeto teve como base as etapas: 1. Estudo: esta etapa teve como objetivo, além do estudo dos conceitos envolvidos no processo de teste de software, a ampliação dos conhecimentos nas tecnologias necessárias para o desenvolvimento do projeto e a pesquisa de soluções similares já existentes; 2. Especificação: nesta etapa foram realizadas as atividades com o objetivo especificar e projetar a ferramenta a desenvolvida e para atingir este objetivo foram utilizados alguns dos diagramas da UML que serviram como base para a implementação; 3. Desenvolvimento: as atividades de implementação da ferramenta proposta neste trabalho foram divididas em: o Implementação do analisador de arquivos no padrão XMI; o Implementação da criação dos casos testes; e o Implementação da geração de código fonte. 4. Avaliação: para avaliação da ferramenta foi desenvolvido um projeto contendo seu respectivo diagrama de classes e código fonte Java, o qual foi utilizado como base para as atividades de avaliação da ferramenta; e 5. Documentação: esta etapa teve como objetivo a documentação do projeto desenvolvido, tendo como base o material produzido durante a implementação e avaliação do projeto. 5

17 1.4 Estrutura do trabalho Este trabalho é apresentado em quatro capítulos: introdução, fundamentação teórica, projeto e considerações finais. No primeiro capítulo é apresentada uma introdução aos conceitos envolvidos a este trabalho, onde é identificada a necessidade de uma ferramenta ao qual propõe-se desenvolver, inclusive citando brevemente algumas das soluções similares já existentes, e em seguida são apresentados os objetivos aos quais a solução proposta deve compreender. O capítulo 2 tem por objetivo apresentar os conceitos envolvidos de forma mais abrangente, tratando especificamente dos temas: Teste de software; Ferramentas CASE; Geração de código; e Ferramentas para teste de software. Neste capítulo são citados inúmeros autores e materiais disponíveis para permitir um maior embasamento para a concepção da ferramenta proposta. No capítulo seguinte, a fundamentação teórica apresenta o desenvolvimento do projeto, onde são elencados os requisitos funcionais, requisitos não funcionais e regras de negócio, identificados a partir do estudo realizado. Em seguida, são apresentados os casos de uso e os protótipos da interface do sistema, seguido de um exemplo de criação de um projeto de teste de unidade da forma como deseja-se que a ferramenta permita ao usuário esta criação. Neste capítulo consta ainda o diagrama de classes, onde contém os principais atributos e relacionamentos das classes de negócio, e ao fim deste, é apresentado o XML Schema que define o modelo de persistência, o qual será em XML. O capítulo quatro descreve o desenvolvimento da ferramenta, destacando as etapas envolvidas em sua implementação. Neste capítulo é apresentada ainda uma demonstração do uso da ferramenta implementada, seguindo um passo a passo orientado a descrever as suas principais funcionalidades. O último capítulo apresenta as conclusões deste projeto, em que são abordados os objetivos deste trabalho, as dificuldades encontradas em seu desenvolvimento e as soluções encontradas. Ainda neste capítulo são abordadas as possíveis melhorias e expansões para a ferramenta desenvolvida, com intuito de direcionar os esforços na possível continuidade deste projeto. 6

18 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo são apresentados os principais conceitos necessários a implementação da solução proposta, que englobam: teste de software, ferramentas CASE, geração de código e ferramentas para teste de software. Na seção 2.1 é descrito o processo de teste de software, a organização dos testes e os tipos de testes com ênfase no teste de unidade. A seção seguinte, 2.2, apresenta os conceitos referentes a ferramentas CASE com ênfase em ferramentas para automatização de testes e a integração entre ferramentas utilizando o padrão XMI. A geração de código é abordada na seção 2.3, incluindo a descrição dos principais recursos da ferramenta Velocity, à qual será utilizada no desenvolvimento da solução proposta para implementação do gerador de código Java. Já a seção final deste capítulo apresenta três ferramentas que fornecem suporte para o processo de teste de software, onde inicialmente é apresentado o framework JUnit, o qual será responsável pela execução dos casos de teste gerados pela ferramenta proposta, e por fim outras duas ferramentas já presentes no mercado e analisadas como soluções similares a proposta. 2.1 TESTE DE SOFTWARE O teste de software é uma das etapas no ciclo de desenvolvimento de software que tem como principal objetivo encontrar os erros presentes em um software. Esta etapa é compreendida por sistemáticas aplicações de testes ao longo de todo o processo de desenvolvimento (MCGREGOR e SYKES, 2001). A etapa de testes é definida por Hetzel (1987) como: o processo de executar um programa ou sistema com a finalidade de encontrar erros. Teste é a medida de qualidade do software, uma definição que estabelece uma meta importante, encontrar erros, assim um teste bem sucedido é aquele que revela um erro ainda não descoberto (INTHURN, 2001). Apesar da intensa busca por um software isento de defeitos, as técnicas aplicadas para garantia da qualidade em sua grande maioria podem apenas melhorar a confiança no produto. Assim, mesmo após a correção de todos os defeitos que provocaram as falhas encontradas durante os testes, novos casos de teste poderiam apontar novos erros, ainda não identificados. Dado este fato, a execução dos testes de forma planejada e ordenada tem por objetivo cobrir o maior número de situações possíveis para evitar defeitos comuns ou mesmo defeitos em processos mais críticos (INTHURN, 2001).

19 A definição dos casos de teste é de responsabilidade da equipe de teste, e segundo Pfleeger (2004), a equipe de testes deve ser capaz de escolher dados de teste representativos, para mostrar que todas as combinações possíveis são tratadas apropriadamente O processo de teste de software O processo de teste proposto por Hetzel (1987), e também referenciado por Macgregor e Sykes (2001), aponta apenas três atividades, identificadas como: Análise: o produto a ser testado é analisado com o intuito de identificar características especiais que devem receber uma maior atenção na construção dos casos de teste; Construção: além da definição dos casos de teste, todos os artefatos necessários para a execução dos casos de teste são preparados e implementados, caso seja necessário; e Execução e Avaliação: os casos de teste definidos anteriormente são executados e seus resultados são avaliados, a fim de determinar se o resultado obtido foi exatamente o esperado, identificando as possíveis falhas do software. Outro modelo para o processo de testes é proposto por Sommerville (2003), também proposto por Maldonado e Fabbri (2001), que diferentemente do processo apresentado anteriormente este é composto por quatro atividades e não três, sendo estas: projeto de casos de teste, preparação dos dados de teste, execução dos casos de teste e comparação do resultado esperado com o resultado obtido durante a execução dos casos de teste. Estas atividades ocorrem ainda de forma seqüencial, dada a dependência de uma atividade com a outra, conforme apresentado na Figura 1. 8

20 Figura 1. Processo de teste para detecção de defeitos Fonte: Sommerville (2003). Inicialmente, para execução deste processo, projetam-se os casos de teste, os quais deverão gerar artefatos contendo todos os recursos necessários para a preparação e execução dos testes, incluindo ainda os resultados esperados para cada teste a ser executado. Para Macgregor e Sykes (2001), um dos maiores desafios envolvidos no teste de software refere-se à definição e organização dos casos de teste, pois desta partirão todas as definições para as próximas atividades, inclusive quanto à análise final. Seguindo então o processo proposto, com base nos casos de testes levantados, a atividade de preparação dos dados de testes, tem como objetivo preparar todo o ambiente onde os testes serão executados e é nesta fase que são estruturados os dados que servirão de entrada para a execução dos testes. A execução dos casos de testes se dá por três passos fundamentais, definidos por Inthurn (2001), sendo respectivamente: as entradas, processos e saídas. Onde as entradas já foram definidas na etapa anterior de preparação e os processos a serem executados já foram definidos no projeto dos casos de teste. Ao fim do processo obtêm-se então um comparativo entre os resultados gerados após a execução dos testes com os testes esperados, já levantados na fase inicial, com base neste comparativo é possível identificar se o produto em desenvolvimento esta atendendo aos critérios estabelecidos de forma adequada. 9

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes Alexandro Deschamps (Ápice) alexandro@apicesoft.com Everaldo Artur Grahl (FURB/DSC) egrahl@furb.br Resumo. Uma das grandes

Leia mais

Proposta de Utilização do Diagrama de Seqüência para Definição de Casos de Teste de Unidade

Proposta de Utilização do Diagrama de Seqüência para Definição de Casos de Teste de Unidade Proposta de Utilização do Diagrama de Seqüência para Definição de Casos de Teste de Unidade Antonio Carlos Silva1 Fabiane Barreto Vavassori Benitti1 Resumo: A etapa de teste de software tem se mostrado

Leia mais

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE RESUMO Fazer um bom levantamento e especificação de requisitos é algo primordial para quem trabalha com desenvolvimento de sistemas. Esse levantamento

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Luiz Cláudio Hogrefe Orientador: Prof. Roberto Heinzle, Doutor Roteiro Introdução Fundamentação teórica

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Teste de software. Definição

Teste de software. Definição Definição O teste é destinado a mostrar que um programa faz o que é proposto a fazer e para descobrir os defeitos do programa antes do uso. Quando se testa o software, o programa é executado usando dados

Leia mais

Notas de Aula 02: Processos de Desenvolvimento de Software

Notas de Aula 02: Processos de Desenvolvimento de Software Notas de Aula 02: Processos de Desenvolvimento de Software Objetivos da aula: Introduzir os conceitos de um processo de desenvolvimento de software Definir os processos básicos Apresentar as vantagens

Leia mais

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

! Introdução.  Motivação para Processos de Software. ! Processo Unificado (USDP)  Definições  RUP x USDP  Características do Processo Unificado Agenda! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados! Conclusões 2 Processo

Leia mais

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Carlos Henrique Pereira WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Florianópolis - SC 2007 / 2 Resumo O objetivo deste trabalho é especificar

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Verificação é um processo para se determinar se os produtos, (executáveis ou

Verificação é um processo para se determinar se os produtos, (executáveis ou ATIVIDADES VV&T E A NORMA IEEE 1012 A qualidade do software está diretamente relacionada à satisfação do cliente, sendo assim, as empresas estão percebendo a importância em produzir software com qualidade.

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil Elicitação de Requisitos a partir de Modelos de Processos de Negócio e Modelos Organizacionais: Uma pesquisa para definição de técnicas baseadas em heurísticas Marcos A. B. de Oliveira 1, Sérgio R. C.

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 3 Teste Estático SUMÁRIO INTRODUÇÃO... 3 1. Definição... 3 2. Custo Versus Benefício...

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS RESUMO Este artigo apresenta a especificação de um sistema gerenciador de workflow, o ExPSEE, de acordo com a abordagem de desenvolvimento baseado

Leia mais

Unidade II MODELAGEM DE PROCESSOS

Unidade II MODELAGEM DE PROCESSOS Unidade II 3 MODELAGEM DE SISTEMAS 1 20 A fase de desenvolvimento de um novo sistema de informação (Quadro 2) é um momento complexo que exige um significativo esforço no sentido de agregar recursos que

Leia mais

Spider-PM: Uma Ferramenta de Apoio à Modelagem de Processos de Software

Spider-PM: Uma Ferramenta de Apoio à Modelagem de Processos de Software Spider-PM: Uma Ferramenta de Apoio à Modelagem de Processos de Software Renan Sales Barros 1, Sandro Ronaldo Bezerra Oliveira 1 1 Faculdade de Computação Instituto de Ciências Exatas e Naturais (ICEN)

Leia mais

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software. Processos de Software Objetivos Apresentar os modelos de processo de software Conjunto coerente de atividades para especificar, projetar, implementar e testar s de software Descrever os diferentes modelos

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML Guia do usuário Grady Booch James Rumbaugh Ivair Jacobson Editora: Campus

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

Planejamento da disciplina: Modelagem de processos de negócio

Planejamento da disciplina: Modelagem de processos de negócio UNIVERSIDADE FEDERAL DE MINAS GERAIS / INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Planejamento da disciplina: Modelagem de processos de negócio Professor: Clarindo Isaías Pereira

Leia mais

Ambiente de workflow para controle de métricas no processo de desenvolvimento de software

Ambiente de workflow para controle de métricas no processo de desenvolvimento de software Ambiente de workflow para controle de métricas no processo de desenvolvimento de software Gustavo Zanini Kantorski, Marcelo Lopes Kroth Universidade Federal de Santa Maria (UFSM) 97100-000 Santa Maria

Leia mais

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com REVISÃO ENGENHARIA DO SOFTWARE Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Software Sequencia de Instruções a serem seguidas ou executadas Dados e rotinas desenvolvidos por computadores Programas

Leia mais

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES Aluno: André Luis Becker Orientador: Prof. Everaldo Artur Grahl. Mestre Orientador, FURB Roteiro da Apresentação Introdução;

Leia mais

Ferramenta de Testes de Programas para Auxílio na Aprendizagem de Programação

Ferramenta de Testes de Programas para Auxílio na Aprendizagem de Programação Ferramenta de Testes de Programas para Auxílio na Aprendizagem de Programação Denise Santiago (FURB) denise@senior.com.br Maurício Capobianco Lopes (FURB) mclopes@furb.br Resumo. Este artigo apresenta

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

CMMI Conceitos básicos. CMMI Representações contínua e por estágios. Professor Gledson Pompeu (gledson.pompeu@gmail.com)

CMMI Conceitos básicos. CMMI Representações contínua e por estágios. Professor Gledson Pompeu (gledson.pompeu@gmail.com) CMMI Conceitos básicos 113 CMMI integra as disciplinas de engenharia de sistemas e de engenharia de software em um único framework de melhoria de processos. 114 No tocante às disciplinas de engenharia

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

2. Sistemas Multi-Agentes (Multi-Agent System - MAS)

2. Sistemas Multi-Agentes (Multi-Agent System - MAS) AORML uma linguagem para modelagem de uma aplicação Multiagentes: Uma Aplicação no Sistema Expertcop. Hebert de Aquino Nery, Daniel Gonçalves de Oliveira e Vasco Furtado. Universidade de Fortaleza UNIFOR

Leia mais

Prof. Dr. Ivanir Costa. Unidade III QUALIDADE DE SOFTWARE

Prof. Dr. Ivanir Costa. Unidade III QUALIDADE DE SOFTWARE Prof. Dr. Ivanir Costa Unidade III QUALIDADE DE SOFTWARE Normas de qualidade de software - introdução Encontra-se no site da ABNT (Associação Brasileira de Normas Técnicas) as seguintes definições: Normalização

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS Lilian R. M. Paiva, Luciene C. Oliveira, Mariana D. Justino, Mateus S. Silva, Mylene L. Rodrigues Engenharia de Computação - Universidade de Uberaba (UNIUBE)

Leia mais

Palavras-Chaves: engenharia de requisitos, modelagem, UML.

Palavras-Chaves: engenharia de requisitos, modelagem, UML. APLICAÇÃO DA ENGENHARIA DE REQUISITOS PARA COMPREENSÃO DE DOMÍNIO DO PROBLEMA PARA SISTEMA DE CONTROLE COMERCIAL LEONARDO DE PAULA SANCHES Discente da AEMS Faculdades Integradas de Três Lagoas RENAN HENRIQUE

Leia mais

Autor(es) BARBARA STEFANI RANIERI. Orientador(es) LUIZ EDUARDO GALVÃO MARTINS, ANDERSON BELGAMO. Apoio Financeiro PIBIC/CNPQ. 1.

Autor(es) BARBARA STEFANI RANIERI. Orientador(es) LUIZ EDUARDO GALVÃO MARTINS, ANDERSON BELGAMO. Apoio Financeiro PIBIC/CNPQ. 1. 19 Congresso de Iniciação Científica ESPECIFICAÇÃO E IMPLEMENTAÇÃO DE UMA FERRAMENTA AUTOMATIZADA DE APOIO AO GERSE: GUIA DE ELICITAÇÃO DE REQUISITOS PARA SISTEMAS EMBARCADOS Autor(es) BARBARA STEFANI

Leia mais

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes 6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes A ferramenta MAS-ML Tool surgiu com o objetivo de viabilizar o processo de desenvolvimento proposto na Seção anterior, implementando

Leia mais

Processo de Desenvolvimento Unificado

Processo de Desenvolvimento Unificado Processo de Desenvolvimento Unificado Processo de Desenvolvimento de Software? Conjunto de atividades bem definidas; com responsáveis; com artefatos de entrada e saída; com dependências entre as mesmas

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza

Modelagem OO com UML. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Modelagem OO com UML Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Modelos Maneira

Leia mais

Controle de métricas no processo de desenvolvimento de software através de uma ferramenta de workflow

Controle de métricas no processo de desenvolvimento de software através de uma ferramenta de workflow Controle de métricas no processo de desenvolvimento de software através de uma ferramenta de workflow Gustavo Zanini Kantorski, Marcelo Lopes Kroth Centro de Processamento de Dados Universidade Federal

Leia mais

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu. "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software Introdução à Engenharia de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha

Leia mais

Tipos de teste de software

Tipos de teste de software Tipos de teste de software Volnys Borges Bernal volnys@lsi.usp.br Adilson Hira ayhira@lsi.usp.br Laboratório de Sistemas Integráveis Departamento de Sistemas Eletrônicos Escola Politécnica da USP Sumário

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO Santa Maria, 27 de Setembro de 2013. Revisão aula anterior Desenvolvimento Ágil de Software Desenvolvimento e entrega

Leia mais

Suporte à Engenharia Reversa para o ambiente SEA

Suporte à Engenharia Reversa para o ambiente SEA Otavio Pereira Suporte à Engenharia Reversa para o ambiente SEA Orientador: Ricardo Pereira e Silva Universidade Federal de Santa Catarina - UFSC Departamento de Informática e Estatística - INE Florianópolis

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl

Processo de garantia da qualidade baseado no modelo MPS.BR. Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Processo de garantia da qualidade baseado no modelo MPS.BR Acadêmico: Anildo Loos Orientador: Everaldo Artur Grahl Roteiro introdução objetivos do trabalho fundamentação teórica desenvolvimento da ferramenta

Leia mais

PROFESSOR: CRISTIANO MARIOTTI

PROFESSOR: CRISTIANO MARIOTTI PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade

Leia mais

PROJETO DE FÁBRICA DE SOFTWARE

PROJETO DE FÁBRICA DE SOFTWARE FACULDADE SETE DE SETEMBRO FASETE Departamento de Sistemas de Informação PROJETO DE FÁBRICA DE SOFTWARE Denise Xavier Fortes Paulo Afonso BA Agosto/2015 Sumário 1. INTRODUÇÃO... 3 2. PERFIS FUNCIONAIS...

Leia mais

Se observarmos nos diferentes livros. Planejamento de Testes a partir de Casos de Uso

Se observarmos nos diferentes livros. Planejamento de Testes a partir de Casos de Uso Planejamento de Testes a partir de Casos de Uso Arilo Cláudio Dias Neto ariloclaudio@gmail.com É Bacharel em Ciência da Computação formado na Universidade Federal do Amazonas, Mestre em Engenharia de Sistemas

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2 ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 Definição de uma tecnologia de implementação e do repositório de dados para a criação da ferramenta

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. - DSI DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. Preocupação: Problema técnicos Mudança na natureza e conteúdo do trabalho

Leia mais

Engenharia de Software Questionário sobre Engenharia de Requisitos Resolvido Prof. MSc Wagner Siqueira Cavalcante

Engenharia de Software Questionário sobre Engenharia de Requisitos Resolvido Prof. MSc Wagner Siqueira Cavalcante 1 - Q193183 ( Prova: FCC - 2011 - TRT - 19ª Região (AL) - Analista Judiciário - Tecnologia da Informação / Engenharia de Software / Análise de Requisitos; Engenharia de Requisitos; ) De acordo com Sommerville,

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Requisitos Cap. 06 e 07 Sommerville 8 ed. REQUISITOS DE SOFTWARE» Requisitos são descrições de serviços fornecidos pelo sistema e suas restrições operacionais. REQUISITOS DE USUÁRIOS: São

Leia mais

UTILIZAÇÃO DA CRONOGRAMAÇÃO NA GERÊNCIA DE PROJETO E PROTOTIPAGEM NA VALIDAÇÃO DE REQUISITOS

UTILIZAÇÃO DA CRONOGRAMAÇÃO NA GERÊNCIA DE PROJETO E PROTOTIPAGEM NA VALIDAÇÃO DE REQUISITOS UTILIZAÇÃO DA CRONOGRAMAÇÃO NA GERÊNCIA DE PROJETO E PROTOTIPAGEM NA VALIDAÇÃO DE REQUISITOS Ademilson Ângelo Cabral Discente do curso Tecnologia em Análise e Desenvolvimento de Sistemas Faculdades Integradas

Leia mais

VISUAL STUDIO TEAM SYSTEM IMPLANTAÇÃO DA SUITE DE FERRAMENTAS

VISUAL STUDIO TEAM SYSTEM IMPLANTAÇÃO DA SUITE DE FERRAMENTAS UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA VISUAL STUDIO TEAM SYSTEM IMPLANTAÇÃO DA SUITE DE FERRAMENTAS PARA APOIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Fundamentos em Teste de Software. Vinicius V. Pessoni viniciuspessoni@gmail.com

Fundamentos em Teste de Software. Vinicius V. Pessoni viniciuspessoni@gmail.com Fundamentos em Teste de Software Vinicius V. Pessoni viniciuspessoni@gmail.com Objetivos do treinamento 1. Expor os fundamentos de Teste de Software; 2. Conceituar os Níveis de Teste; 3. Detalhar sobre

Leia mais

Qualidade de Processo de Software Normas ISO 12207 e 15504

Qualidade de Processo de Software Normas ISO 12207 e 15504 Especialização em Gerência de Projetos de Software Qualidade de Processo de Software Normas ISO 12207 e 15504 Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br Qualidade de Software 2009 Instituto

Leia mais

DOMAIN-DRIVEN DESIGN E TEST-DRIVEN DEVELOPMENT

DOMAIN-DRIVEN DESIGN E TEST-DRIVEN DEVELOPMENT DOMAIN-DRIVEN DESIGN E TEST-DRIVEN DEVELOPMENT Jaqueline Rissá Franco email: jaquerifr@gmail.com Karla Marturelli Mattos Luciano Mathias Doll João Almeida Resumo: Este artigo mostra novas abordagens na

Leia mais

I. Dados Identificadores Tecnologia em Análise e Desenvolvimento de Sistemas

I. Dados Identificadores Tecnologia em Análise e Desenvolvimento de Sistemas I. Dados Identificadores Curso Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina Engenharia de Software Professor Eduardo Jesus Coppola Período Noturno Módulo Técnicas de Desenvolvimento de

Leia mais

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 Rational Quality Manager Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 1 Informações Gerais Informações Gerais sobre o RQM http://www-01.ibm.com/software/awdtools/rqm/ Link para o RQM https://rqmtreina.mvrec.local:9443/jazz/web/console

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

Palavras-Chaves: estoque, modelagem, requisitos, UML, vendas.

Palavras-Chaves: estoque, modelagem, requisitos, UML, vendas. UTILIZAÇÃO DA UML NO DESENVOLVIMENTO DE SISTEMA DE CONTROLE DE VENDAS E ESTOQUE GILBERTO FRANCISCO PACHECO DOS SANTOS Discente da AEMS Faculdades Integradas de Três Lagoas JACKSON LUIZ ARROSTI Discente

Leia mais

Capítulo 1 - Introdução 14

Capítulo 1 - Introdução 14 1 Introdução Em seu livro Pressman [22] define processo de software como um arcabouço para as tarefas que são necessárias para construir software de alta qualidade. Assim, é-se levado a inferir que o sucesso

Leia mais

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC CURSO: Bacharelado em Ciência da Computação DISCIPLINA: ANPS Análise e Projeto de Sistemas AULA NÚMERO: 3 DATA: PROFESSOR: Murakami Sumário 1 APRESENTAÇÃO...1 2 DESENVOLVIMENTO...1 2.1 Revisão...1 2.1.1

Leia mais

VANT-EC-SAME. Software de Suporte do VANT V-SUP Caso de Desenvolvimento Versão 1.0

VANT-EC-SAME. Software de Suporte do VANT V-SUP Caso de Desenvolvimento Versão 1.0 VANT-EC-SAME Software de Suporte do VANT V-SUP Caso de Desenvolvimento Versão 1.0 Histórico da Revisão Data Versão Descrição Autor 17/0/07 1.0 Versão Inicial Douglas Moura Confidencial VANT-EC-SAME, 2007

Leia mais

Requisitos. Sistemas de Informações

Requisitos. Sistemas de Informações Requisitos Sistemas de Informações Definindo o Sucesso do Software Clientes satisfeitos Eles estão satisfeitos quando você: Atende às expectativas Entrega no prazo Entrega no orçamento O Sucesso começa

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE CMP1280/CMP1250 Prof. Me. Fábio Assunção Introdução à Engenharia de Software SOFTWARE Programa de computador acompanhado dos dados de documentação e configuração

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

LINGUAGEM DE ESPECIFICAÇÃO E DESCRIÇÃO (SDL) APLICADA AO PROCESSO DE VERIFICAÇÃO E VALIDAÇÃO DE SISTEMAS REATIVOS

LINGUAGEM DE ESPECIFICAÇÃO E DESCRIÇÃO (SDL) APLICADA AO PROCESSO DE VERIFICAÇÃO E VALIDAÇÃO DE SISTEMAS REATIVOS LINGUAGEM DE ESPECIFICAÇÃO E DESCRIÇÃO (SDL) APLICADA AO PROCESSO DE VERIFICAÇÃO E VALIDAÇÃO DE SISTEMAS REATIVOS Fabiana Fraga Ferreira Bacharelanda em Sistemas de Informação Bolsista de Iniciação Científica

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA

Leia mais

GESTÃO DO CONHECIMENTO EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

GESTÃO DO CONHECIMENTO EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE GESTÃO DO CONHECIMENTO EM UM PROCESSO DE DESENVOLVIMENTO DE SOFTWARE RESUMO Carlos Eduardo Spolavori Martins 1 Anderson Yanzer Cabral 2 Este artigo tem o objetivo de apresentar o andamento de uma pesquisa

Leia mais

Model Checking of Statecharts using Automatic White Box Test Generation

Model Checking of Statecharts using Automatic White Box Test Generation Model Checking of Statecharts using Automatic White Box Test Generation Um artigo de: Doron Drusinsky (Cupertino, CA) Apresentado por: Charles-Edouard Winandy Disciplina: CSE310-4 Engenharia de Software

Leia mais

UNIVERSIDADE DO ESTADO DE SANTA CATARINA UDESC CENTRO DE EDUCAÇÃO SUPERIOR DO ALTO VALE DO ITAJAÍ CEAVI DIREÇÃO DE ENSINO DEN PLANO DE ENSINO

UNIVERSIDADE DO ESTADO DE SANTA CATARINA UDESC CENTRO DE EDUCAÇÃO SUPERIOR DO ALTO VALE DO ITAJAÍ CEAVI DIREÇÃO DE ENSINO DEN PLANO DE ENSINO Departamento: Disciplina: Pré-Requisitos: I D E N T I F I C A Ç Ã O Sistemas de Informação Engenharia de Software Aplicada (ESA) Engenharia de Software (ES) CH: 7 Curso: Bacharelado em Sistemas de Informação

Leia mais

definido por um documento de padronização. A Fig. 1 representa a organização dos Grupos de Processos juntamente com os documentos exigidos.

definido por um documento de padronização. A Fig. 1 representa a organização dos Grupos de Processos juntamente com os documentos exigidos. A GESTÃO DE PROJETOS EXISTENTE NA NORMA DO-178B Matheus da Silva Souza, matheusdasilvasouza@gmail.com Prof. Dr. Luiz Alberto Vieira Dias, vdias@ita.br Instituto Tecnológico de Aeronáutica Praça Marechal

Leia mais