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

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

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

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

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

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

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

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

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

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

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

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

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

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como: Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código

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

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

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

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

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

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

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

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

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

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

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

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

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 QUALIDADE DE SOFTWARE Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 Objetivos Apresentar o processo de gerenciamento de qualidade e as atividades centrais da garantia de

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

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

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web Resumo. Desenvolvimento de um software de gerenciamento de projetos para utilização na Web Autor: Danilo Humberto Dias Santos Orientador: Walteno Martins Parreira Júnior Bacharelado em Engenharia da Computação

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

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

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

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

MASTER IN PROJECT MANAGEMENT

MASTER IN PROJECT MANAGEMENT MASTER IN PROJECT MANAGEMENT PROJETOS E COMUNICAÇÃO PROF. RICARDO SCHWACH MBA, PMP, COBIT, ITIL Atividade 1 Que modelos em gestão de projetos estão sendo adotados como referência nas organizações? Como

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

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

Qualidade de Software

Qualidade de Software Qualidade de Software O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade:

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

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

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

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

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

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML Natanael E. N. Maia, Ana Paula B. Blois, Cláudia M. Werner COPPE/UFRJ Programa de Engenharia de Sistemas e Computação Caixa Postal 68.511

Leia mais

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR Jeferson J. S. Boesing 1 ; Manassés Ribeiro 2 1.Aluno do Curso

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com PMBoK Organização do Projeto Os projetos e o gerenciamento

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB 18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

3. Fase de Planejamento dos Ciclos de Construção do Software

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

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

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

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP Conceitos RUP RUP, abreviação de Rational Unified Process (ou Processo Unificado da Rational), é um processo de Engenharia de software criado pela Rational Software Corporation(a qual foi incorporada pela

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

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

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

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software. Teresa Maciel DEINFO/UFRPE Requisitos de Software Teresa Maciel DEINFO/UFRPE 1 Requisito de Software Características que o produto de software deverá apresentar para atender às necessidades e expectativas do cliente. 2 Requisito

Leia mais

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

Leia mais

Metodologia de Desenvolvimento de Sistemas

Metodologia de Desenvolvimento de Sistemas Metodologia de Desenvolvimento de Sistemas Processo de Desenvolvimento de Software Faculdade Mauricio de Nassau S.I 5 Período NA Alunos: Elthon Diego 021707 Vitor da Cruz 033420 Professora Suzana Sampaio

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

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furbbr Resumo. Este artigo apresenta a especificação

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

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Abordagem de Processo: conceitos e diretrizes para sua implementação

Abordagem de Processo: conceitos e diretrizes para sua implementação QP Informe Reservado Nº 70 Maio/2007 Abordagem de Processo: conceitos e diretrizes para sua implementação Tradução para o português especialmente preparada para os Associados ao QP. Este guindance paper

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

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

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0 O que é BABok? O BABok 2.0, Corpo de Conhecimento de Análise de Negócios, é considerado como um Guia Referência de Práticas de Análise de Negócio. Este guia é publicado e mantido pelo IIBA. O guia BABok

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

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de

Leia mais

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Análise de Sistemas Visão Geral: Orientação a Objetos Prof. José Honorato Ferreira Nunes Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Resumo: VISÃO GERAL: Modelagem de sistemas

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

PLANOS DE CONTINGÊNCIAS

PLANOS DE CONTINGÊNCIAS PLANOS DE CONTINGÊNCIAS ARAÚJO GOMES Capitão SC PMSC ARAÚJO GOMES defesacivilgomes@yahoo.com.br PLANO DE CONTINGÊNCIA O planejamento para emergências é complexo por suas características intrínsecas. Como

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

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br Processo de Desenvolvimento de Software nelmarpg@yahoo.com.br 1 Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)

Leia mais

MODELO CMM MATURIDADE DE SOFTWARE

MODELO CMM MATURIDADE DE SOFTWARE MODELO CMM MATURIDADE DE SOFTWARE O modelo CMM Capability Maturity Model foi produzido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon (CMU), em Pittsburgh, EUA, por um grupo

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares André Assis Lôbo de Oliveira Francisco Guerra Fernandes Júnior Faculdades Alves Faria, 74445190, Brasil andrelobin@hotmail.com,

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 14 Revisão http://www.ic.uff.br/~bianca/engsoft2/ Aula 14-07/05/2006 1 Processo de Software Qual é a diferença entre uma atividade de arcabouço e uma atividade guarda chuva?

Leia mais

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática Disciplina: INF5008 Prof.: (monalessa@inf.ufes.br) Conteúdo 3. Gerência de

Leia mais