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

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

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

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

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

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

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

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

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

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

Transformação de modelos em processos de desenvolvimento de software

Transformação de modelos em processos de desenvolvimento de software 1068 X Salão de Iniciação Científica PUCRS Transformação de modelos em processos de desenvolvimento de software Vinycio de Correa Lunelli 1, Profa. Dra. Ana Paula Terra Bacelo 1 1 Faculdade de Informática,

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

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

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

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código Igor Steinmacher 1, Éderson Fernando Amorim 1, Flávio Luiz Schiavoni 1, Elisa Hatsue Moriya Huzita 1 1 Departamento de Informática

Leia mais

Table 1. Dados do trabalho

Table 1. Dados do trabalho Título: Desenvolvimento de geradores de aplicação configuráveis por linguagens de padrões Aluno: Edison Kicho Shimabukuro Junior Orientador: Prof. Dr. Paulo Cesar Masiero Co-Orientadora: Prof a. Dr. Rosana

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

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

Modelos de processos de desenvolvimento de software

Modelos de processos de desenvolvimento de software Definição Um modelo de processo de software é uma representação abstrata de um processo. Os modelos de processo podem ser desenvolvidos a partir de várias perspectivas e podem mostrar as atividades envolvidas

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Requisitos de Software Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Requisito O que é um REQUISITO? Em software: É a CARACTERIZAÇÃO do que o

Leia mais

SIGECO07 Sistema Integrado de Gestão de Contas Universidade Federal de Lavras PLANO DE PROJETO 23/09/2007 SIGECO07/GERENCIA/PROJETOS/

SIGECO07 Sistema Integrado de Gestão de Contas Universidade Federal de Lavras PLANO DE PROJETO 23/09/2007 SIGECO07/GERENCIA/PROJETOS/ SIGECO07 Sistema Integrado de Gestão de Contas Universidade Federal de Lavras PLANO DE PROJETO 23/09/2007 SIGECO07/GERENCIA/PROJETOS/ ModeloPlanoProjeto_2007_04_24 SIGECO07_PlanoProjeto_2007_09_23 Página

Leia mais

Implantando um Programa de Melhoria de Processo: Uma Experiência Prática

Implantando um Programa de Melhoria de Processo: Uma Experiência Prática Implantando um Programa de Melhoria de Processo: Uma Experiência Prática Evandro Polese Alves Ricardo de Almeida Falbo Departamento de Informática - UFES Av. Fernando Ferrari, s/n, Vitória - ES - Brasil

Leia mais

Essencial ao Desenvolvimento de Software

Essencial ao Desenvolvimento de Software Documento de Requisitos Essencial ao Desenvolvimento de Software De que se trata o artigo? Apresenta o documento de requisitos de software, destacando-o como um dos principais documentos pertinentes ao

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

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

A história de UML e seus diagramas

A história de UML e seus diagramas A história de UML e seus diagramas Thânia Clair de Souza Vargas Departamento de Informática e Estatística Universidade Federal de Santa Catarina (UFSC) Florianópolis, SC Brazil thania@inf.ufsc.br Abstract.

Leia mais

guia prático 2a Edição Gilleanes T.A. Guedes Novatec

guia prático 2a Edição Gilleanes T.A. Guedes Novatec guia prático 2a Edição Gilleanes T.A. Guedes Novatec Copyright 2007, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta

Leia mais

Transformando Modelos da MDA com o apoio de Componentes de Software

Transformando Modelos da MDA com o apoio de Componentes de Software Transformando Modelos da MDA com o apoio de Componentes de Software Fapesp-PIPE Autores: Marco Antonio Pereira Antonio Francisco do Prado Mauro Biajiz Valdirene Fontanette Daniel Lucrédio Campinas-SP,

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

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

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

Especificação de um Sistema Gerenciador de Workflow de Acordo com a Abordagem de Desenvolvimento Baseado em Componentes

Especificação de um Sistema Gerenciador de Workflow de Acordo com a Abordagem de Desenvolvimento Baseado em Componentes Especificação de um Sistema Gerenciador de Workflow de Acordo com a Abordagem de Desenvolvimento Baseado em Componentes Edson Alves de Oliveira Junior 1, Itana Maria de Souza Gimenes 1 1 Departamento de

Leia mais

PRD Tecnologia de Gestão Ltda. Julho/2008

PRD Tecnologia de Gestão Ltda. Julho/2008 O Processo de Desenvolvimento Telescope Julho/2008 Página 1 Sumário Introdução...3 O desenvolvimento de software tradicional...3 O problema da produtividade...3 O problema da portabilidade...6 O problema

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO Contribuições do MDA para o desenvolvimento de software Anna Carla Mohr Verner Helder Eugenio dos Santos Puia Florianópolis,

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

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

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

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

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

Testware: ferramenta de planejamento e execução de casos de teste

Testware: ferramenta de planejamento e execução de casos de teste Testware: ferramenta de planejamento e execução de casos de teste Fabiane Barreto Vavassori Benitti 1, 2, Ana Paula Zimmermann 1 1 Centro de Ciências Tecnológico da Terra e do Mar Universidade do Vale

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

Arquitetura de Software: Uma Central para Gestão da execução de serviços

Arquitetura de Software: Uma Central para Gestão da execução de serviços Arquitetura de Software: Uma Central para Gestão da execução de serviços ADILSON FERREIRA DA SILVA Centro Paula Souza São Paulo Brasil afs.software@gmail.com Prof.a. Dr.a. MARILIA MACORIN DE AZEVEDO Centro

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS AVANÇADO DE ARACATI PROJETO DE PESQUISA IMPLEMENTAÇÃO DE SOLUÇÃO PARA AUTOMATIZAR O DESENVOLVIMENTO DE SOFTWARE UTILIZANDO A LINGUAGEM C#.NET

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

Documentação de um Produto de Software

Documentação de um Produto de Software Documentação de um Produto de Software Versão 3.0 Autora: Profª Ana Paula Gonçalves Serra Revisor: Prof. Fernando Giorno 2005 ÍNDICE DETALHADO PREFÁCIO... 4 1. INTRODUÇÃO AO DOCUMENTO... 6 1.1. TEMA...

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

Leia mais

Com relação às áreas de conhecimento de projetos conforme o. PMBoK, julgue os itens subseqüentes.

Com relação às áreas de conhecimento de projetos conforme o. PMBoK, julgue os itens subseqüentes. De acordo com o comando a que cada um dos itens de 1 a 70 se refira, marque, na folha de respostas, para cada item: o campo designado com o código C, caso julgue o item CERTO; ou o campo designado com

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

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

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

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

Arquitetura Orientado por Modelos aplicada a Linha de Produto de Software. Eduardo Barbosa da Costa

Arquitetura Orientado por Modelos aplicada a Linha de Produto de Software. Eduardo Barbosa da Costa Arquitetura Orientado por Modelos aplicada a Linha de Produto de Software Eduardo Barbosa da Costa Juiz de Fora, MG Julho de 2008 Arquitetura Orientado por Modelos aplicada a Linha de Produto de Software

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

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

Uma Integração entre Ferramentas de Gerência de Projetos Utilizando XML

Uma Integração entre Ferramentas de Gerência de Projetos Utilizando XML Uma Integração entre Ferramentas de Gerência de Projetos Utilizando XML Edson Leandro de Araújo Silva 2, Adailton Magalhães Lima 1,2, Ernani de Oliveira Sales 1, Anderson Jorge Serra da Costa 2 1 Laboratório

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

FERRAMENTA DE WORKFLOW DE DOCUMENTOS PARA O AMBIENTE COLABORATIVO ARCASE

FERRAMENTA DE WORKFLOW DE DOCUMENTOS PARA O AMBIENTE COLABORATIVO ARCASE FERRAMENTA DE WORKFLOW DE DOCUMENTOS PARA O AMBIENTE COLABORATIVO ARCASE Marcello Thiry thiry@univali.br Ana Frida da Cunha Silva anafrida@univali.br Universidade do Vale do Itajaí UNIVALI Campus São José

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

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

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web Modelagem de Sistemas Web Aula 4 Ferramentas e metodologias para projeto de sistemas web Ferramentas e metodologias para projeto de sistemas web Ferramentas CASE Fontes: Sarajane e Marques Peres Introdução

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

UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO

UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO UMA ABORDAGEM SOBRE TESTES AUTOMATIZADO DE SOFTWARES EM AMBIENTES DE DESENVOLVIMENTO Robson L. Nascimento 1, Késsia R. C. Marchi¹ 1 Universidade Paranaense (UNIPAR) Paranavaí-PR-Brasil robsonluisn@yahoo.com.br,

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

Levantamento de Requisitos.

Levantamento de Requisitos. FACULDADES INTEGRADAS MATO-GROSSENSES DE CIÊNCIAS SOCIAIS E HUMANAS RESUMO Levantamento de Requisitos. Leandro Cícero da Silva Mello. Prof. Jeanine Ferrazza Meyer Metodologia e Técnica de Pesquisa- Levantamento

Leia mais

Introdução Engenharia de Software

Introdução Engenharia de Software Introdução Engenharia de Software Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 EMENTA Parte 1 Conceitos de Engenharia de Software. Processo de desenvolvimento

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

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

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert UNIOESTE Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Sistema Gerenciador de Hotel Adriano Douglas Girardello

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 Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - MÓDULO 3 - MODELAGEM DE SISTEMAS ORIENTADA A OBJETOS COM UML 1. INTRODUÇÃO A partir de 1980, diversos métodos de desenvolvimento de sistemas surgiram para apoiar o paradigma orientado a objetos com uma

Leia mais

Palavras-chave: Desenvolvimento Baseado em Componentes (DBC), Transformação de Software, framework e ObjectPascal.

Palavras-chave: Desenvolvimento Baseado em Componentes (DBC), Transformação de Software, framework e ObjectPascal. Construção e Reutilização de de Software do Domínio de Cardiologia João L C Moraes, Daniel Lucrédio, Adriano A Bossonaro, Dr Rubens Tofano, Prof Dr Antonio F Prado DC/UFSCar - Departamento de Computação

Leia mais

Sistemas Dinâmicos Baseados em Metamodelos

Sistemas Dinâmicos Baseados em Metamodelos Sistemas Dinâmicos Baseados em Metamodelos Diego Moreira 1, Marcelo Mrack 1 1 Setor de Informática Universidade de Santa Cruz do Sul (UNISC) Av. Independência, 2293 Bairro Universitário 96.815-900 Santa

Leia mais

Uma proposta de um processo prático para apoiar o reuso de software

Uma proposta de um processo prático para apoiar o reuso de software Uma proposta de um processo prático para apoiar o reuso de software Rosangela Kronig (UNIP) rkronig.mes.engprod@unip.br Ivanir Costa (UNIP) icosta@unip.br Mauro Spínola (UNIP) mspinola@unip.br Resumo A

Leia mais

FACULDADE LOURENÇO FILHO ENADE 2011 Prof. Jackson Santiago Engenharia de Software DATA: 29/10/2011

FACULDADE LOURENÇO FILHO ENADE 2011 Prof. Jackson Santiago Engenharia de Software DATA: 29/10/2011 Assunto : Ciclo de vida de software 1. O modelo de ciclo de vida em cascata: a) enfatiza a realização sequencial das atividades do desenvolvimento de um produto de software. b) enfatiza a comunicação estreita

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

TÍTULO: UM ESTUDO CONCEITUAL SOBRE CERTIFICAÇÃO DE SOFTWARE EMBARCADO AERONÁUTICO

TÍTULO: UM ESTUDO CONCEITUAL SOBRE CERTIFICAÇÃO DE SOFTWARE EMBARCADO AERONÁUTICO TÍTULO: UM ESTUDO CONCEITUAL SOBRE CERTIFICAÇÃO DE SOFTWARE EMBARCADO AERONÁUTICO CATEGORIA: EM ANDAMENTO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: COMPUTAÇÃO E INFORMÁTICA INSTITUIÇÃO: FACULDADE ANHANGUERA

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

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

! 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

Tércio Oliveira de Almeida. TCC - Nexus - RAS

Tércio Oliveira de Almeida. TCC - Nexus - RAS Tércio Oliveira de Almeida TCC - Nexus - RAS Porto Alegre 12 de novembro de 2009 Tércio Oliveira de Almeida TCC - Nexus - RAS Trabalho de Graduação Orientador: Prof. Dr. Marcelo Soares Pimenta UNIVERSIDADE

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

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

Desenvolvimento de Software requer Processo e Gestão

Desenvolvimento de Software requer Processo e Gestão Desenvolvimento de Software requer Processo e Gestão Antonio Mendes da Silva Filho * If Edison had a needle to find in a haystack, he would proceed at once with the diligence of the bee to examine straw

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

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

A Linguagem de Modelagem Unificada (UML)

A Linguagem de Modelagem Unificada (UML) Aécio Costa A Linguagem de Modelagem Unificada (UML) Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Surge a UML (Unified Modeling Language)

Leia mais

Transforms: Um Ambiente de Apoio a Modelagem e Execução de Processos de Software Dirigido por Modelos

Transforms: Um Ambiente de Apoio a Modelagem e Execução de Processos de Software Dirigido por Modelos Transforms: Um Ambiente de Apoio a Modelagem e Execução de Processos de Software Dirigido por Modelos Bruno C. da Silva 1,2, Ana Patrícia F. Magalhães 2, Rita Suzana P. Maciel 3, Narciso Martins 2, Leandro

Leia mais

Resumo. 1. Introdução. Abstract. 2. Motivação

Resumo. 1. Introdução. Abstract. 2. Motivação Um Estudo para a Definição de Processos das Gerências da Qualidade e da Configuração em um Ambiente Integrado para Apoio ao Desenvolvimento e Gestão de Projetos de Software Abdala, Martha A. D.; Lahoz,

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

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

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

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE VI: Como desenvolver Sistemas de Informação e Gerenciar Projetos. Novos sistemas de informação são construídos como soluções para os problemas

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

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

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

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

Unioeste Universidade Estadual do Oeste do Paraná

Unioeste Universidade Estadual do Oeste do Paraná Unioeste Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Especificação de Requisitos e Modelagem Orientada

Leia mais

Padrões de Contagem de Pontos de Função

Padrões de Contagem de Pontos de Função Padrões de Contagem de Pontos de Função Contexto Versão: 1.0.0 Objetivo O propósito deste documento é apresentar os padrões estabelecidos para utilização da técnica de Análise de Pontos de Função no ambiente

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

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