UNIVERSIDADE FEDERAL DA BAHIA
|
|
- Agustina Pinho Monteiro
- 8 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Daniela Soares Feitosa Um estudo sobre o impacto do uso de Desenvolvimento Orientado por Testes na melhoria da qualidade de software Salvador 2007
2 Daniela Soares Feitosa Monografia apresentada ao Curso de graduação em Ciência da Computação, Departamento de Ciência da Computação, Instituto de Matemática, Universidade Federal da Bahia, como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação. Orientador: Antonio Soares de Azevedo Terceiro Salvador 2007
3 RESUMO O desenvolvimento de software orientado por testes (TDD - Test Driven Development) é uma das técnicas utilizadas no modelo de programação XP - extreme Programming, cujo uso tem aumentado bastante. Esta técnica tem como um de seus objetivos antecipar a identificação de defeitos durante o desenvolvimento do software e, para isso, os testes são feitos antes da implementação do código. Esse tipo de desenvolvimento ajuda os desenvolvedores a focar na funcionalidade das aplicações e a disponibilidade de testes antes do desenvolvimento permite um rápido feedback. Este trabalho é uma revisão sistemática que tem como objetivo analisar se a utilização desta técnica diminui a quantidade de defeitos numa aplicação, melhorando sua qualidade e confiança. Palavras-chave: engenharia de software, desenvolvimento orientado por testes, revisão sistemática.
4 ABSTRACT Test Driven Development is one of the techniques used in the practices of XP - extreme Programming, whose use has increased significantly. This technique has as one of its goals to previously identify defects during software development and, therefore, the tests are written prior to implementation of the code. This type of development help developers to focus on the functionality of applications and the availability of tests before the development allows a rapid feedback. This work is a systematic review that aims to examine whether the use of this technique reduces the amount of defects in an application, improving its quality and reliability. Keywords: software engineering, test-driven development, systematic review.
5 LISTA DE FIGURAS 2.1 Test Driven Development (BHAT; NAGAPPAN, 2006, p.357) Hierarquia dos estudos para Engenharia de Software (KITCHENHAM, 2004, p.13) Gráfico dos resultados obtidos a partir do estudo na Microsoft - (BHAT; NA- GAPPAN, 2006, p.361) Densidade dos defeitos encontrados no estudo na IBM - (VOUK, Nov. 2003, p.7)
6 LISTA DE ABREVIATURAS E SIGLAS CASE Computer-Aided Software Engineering, p. 10 TDD Test-Driven Development, p. 13 XP extreme Programming, p. 14
7 SUMÁRIO 1 Introdução 8 2 Conceitos Engenharia de Software Testes de Software Fases de teste Testes automatizados de software Test-Driven Development (TDD) Extreme Programming (XP) Metodologia Protocolo Descrição do problema Objetivo Questões da pesquisa Palavras-chave Método utilizado para pesquisa de fontes primárias Critério de seleção dos estudos Critério de qualidade dos estudos Método de avaliação dos estudos Método de extração dos dados Método de síntese dos dados
8 3.2 Execução da Revisão Sistemática Resultados Discussão dos resultados Conclusão Uso de revisão sistemática TDD X Quantidade de defeitos Contribuições do trabalho Apêndice A -- Formulário de condução da revisão 30 Apêndice B -- Formulário de seleção de estudos 32 Apêndice C -- Formulário de extração de dados 47 Referências Bibliográficas 50
9 8 1 INTRODUÇÃO O processo de desenvolvimento de um software é uma atividade complexa que envolve diferentes questões. Entre elas, destaca-se uma das mais difíceis de ser respondida, que é sobre como garantir a qualidade do software. Testes sistemáticos e tecnicamente completos são utilizados para garantir essa qualidade. Alguns dos fatores que afetam a qualidade de software podem ser medidos diretamente, como defeitos por quantidade de linhas de código e por unidade de tempo, enquanto outros podem ser medidos apenas indiretamente, como usabilidade e manutenibilidade. Estes fatores devem ser calculados e as medidas encontradas indicarão a qualidade do software (PRESSMAN, 2005). Segundo Ian Sommerville (SOMMERVILLE, 2003), a Engenharia de Software enfrenta três desafios principais neste século: Sistemas legados: A maioria dos grandes softwares utilizados atualmente foi desenvolvido há muitos anos. O desafio é manter e atualizar estes sistemas legados de uma forma economicamente viável e garantindo a entrega dos serviços prestados por estes sistemas; Heterogeneidade: O software desenvolvido deve ser confiável e flexível o bastante para ser bem-sucedido em diferentes combinações de hardware e software; Entrega: O aumento da complexidade do software e diminuição dos prazos de entrega comprometem a qualidade do software; A importância da qualidade do software se mostra ainda mais evidente ao tentar solucionar este último ponto. Se a complexidade do software aumenta e o prazo de entrega diminui, devese encontrar uma forma de garantir a qualidade do software apesar dos desafios. Test Driven Development (TDD) surgiu como uma possível solução para este problema. TDD já é usada informalmente por bons programadores a muito tempo, mas as primeiras tentativas de definí-la como uma prática de desenvolvimento começaram no final de 2002, com
10 9 as publicações de Kent Beck (BECK, 2003) e David Astels (ASTELS, 2003). Esta técnica consiste em implementar testes para cada nova funcionalidade do software antes mesmo de implementá-la. Os testes deverão ser executados regularmente para verificar se o código foi bem implementado. Essa forma de desenvolver ajuda os desenvolvedores a focar na funcionalidade das aplicações e, caso os testes passem, o desenvolvedor saberá que o código foi bem implementado, garantindo a qualidade da aplicação. TDD ajuda os desenvolvedores a focar na funcionalidade das aplicações e a disponibilidade de testes antes do desenvolvimento permite um rápido feedback. Entretanto, não é garantido que a quantidade de defeitos diminuirá. Neste trabalho, foi conduzida uma revisão sistemática com o objetivo de analisar se a utilização de TDD diminui a quantidade de defeitos no software, comparando com outras técnicas de desenvolvimento. Para isso, alguns estudos que obtiveram resultados experimentais foram identificados, analisados e avaliados como proposto em (KITCHENHAM, 2004). Em função do número reduzido de estudos específicos sobre o impacto de TDD na quantidade de defeitos no software, não é possível estatisticamente afirmar que há uma diminuição na quantidade de defeitos, apesar dessa ser uma tendência apontada por esses mesmos estudos. Este trabalho encontra-se dividido em 6 capítulos. O capítulo 2 fará uma introdução sobre os principais conceitos envolvendo TDD. O capítulo 3 descreve a metodologia utilizada, apresentando detalhadamente o protocolo e a condução da revisão. O capítulo 4 apresenta os resultados obtidos da revisão. O capítulo 5 apresenta as conclusões. E, finalmente, os formulários utilizados na condução da revisão são apresentados nos apêndices A, B e C.
11 10 2 CONCEITOS Neste capítulo serão apresentados os resumos dos conceitos necessários para o entendimento deste trabalho: Engenharia de Software, Testes de software e Test Driven Development. 2.1 ENGENHARIA DE SOFTWARE Uma primeira definição de engenharia de software foi proposta por Fritz Baur na primeira conferência dedicada ao assunto (NAUR; RANDELL, 1969 apud PRESSMAN, 2005): Engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais. A criação da engenharia de software surgiu numa tentativa de contornar a crise do software e dar um tratamento mais sistemático e controlado ao desenvolvimento de sistemas de software complexos. A engenharia de software é a área da computação que se preocupa com todos os aspectos da produção de software e procura garantir a qualidade do software desenvolvido. Segundo Pressman (PRESSMAN, 2005), ela é composta por um conjunto de três elementos fundamentais: métodos, ferramentas e processos, que possibilita o controle do processo de desenvolvimento do software. Os métodos provêm os detalhes de como fazer a implementação do software e incluem os modelos, a especificação do software, guia do processo e um conjunto de critérios para qualidade do software. As ferramentas tem como objetivo proporcionar apoio automatizado ou semi-automatizado para as atividades do processos. é um sistema de suporte ao desenvolvimento de software que abrange toda ferramenta baseada em computadores que auxiliam atividades de engenharia de software, desde análise de requisitos e modelagem até programação e testes. Os processos constituem a interação dos métodos, ferramentas e pessoas. Eles definem a sequência de práticas que será utilizada para o desenvolvimento, garantia de qualidade e entrega
12 11 dos produtos (documentos, relatórios, formulários etc). Estas práticas englobam as atividades de especificação, desenvolvimento, validação e evolução. 2.2 TESTES DE SOFTWARE Teste de software é o processo de executar um software de uma maneira controlada com o objetivo de avaliar se o mesmo se comporta conforme o especificado. Envolve ações que vão do levantamento de requisitos até a execução do teste propriamente dito. Segundo Sommerville (SOMMERVILLE, 2003), teste de software é uma técnica de verificação e validação. Verificação e validação são processos de checagem e análise de software. O objetivo da verificação é mostrar se um programa está de acordo com a especificação e a validação mostra se um programa faz o que o cliente/usuário deseja. Um erro de software é um erro de implementação no código e um defeito de software é a manifestação de um ou mais erros, fazendo com que o software não execute da forma esperada. Testes de software revelam a presença de defeitos. O teste é considerado bom se revela um ou mais defeitos. Teste de software não pode provar a ausência de defeitos, pode apenas mostrar a presença de defeitos, por isso seu objetivo é executar um programa com a intenção de revelar a presença de defeitos, e não a sua ausência. Após a realização de um teste, o resultado deve ser avaliado e comparado ao resultado esperado. Caso os resultados sejam diferentes, chega-se à conclusão que há defeitos e que deve ser feita a depuração. Todos os softwares possuem defeitos, então, para promover um ambiente mais estável para o usuário final, é importante que a maioria desses defeitos não sejam críticos. Os testes de software tentam garantir que a qualidade, o custo, a segurança e a confiabilidade do software não sejam prejudicados pela presença desses defeitos FASES DE TESTE Ian Sommerville (SOMMERVILLE, 2003) declara que os testes devem ser feitos em duas fases. Na primeira fase, são feitos os testes de componentes e na segunda fase, os testes de integração. Durante a fase de testes de componentes duas técnicas de testes são muito utilizadas: Teste da caixa-preta: Dados de entrada são fornecidos, o teste é executado e o resultado
13 12 obtido é comparado a um resultado esperado previamente conhecido. É chamado de caixa-preta porque o comportamento interno do componente não é considerado, apenas as entradas e saídas fornecidas pelo componente são conhecidas. Teste da caixa-branca: Também é chamado de teste estrutural, pois avalia a estrutura e implementação do software. Depois de testar todos os componentes do software individualmente e verificar que funcionam, eles devem ser integrados para criar o software completo. Para garantir que o software resultante da interação dos componentes não apresenta problemas são feitos os testes de integração. Estes testes são aplicados na construção da estrutura do programa, realizando testes para descobrir defeitos associados às interfaces entre os componentes, verificando se todos os componentes funcionarão corretamente quando estiverem integrados. A integração dos componentes podem ser feitas na forma não-incremental ou incremental. Na integração não-incremental, todos os módulos do software são combinados ao mesmo tempo e o software resultante é testado. Neste caso, muitos defeitos podem ser encontrados e a correção pode se tornar complicada, pois será mais difícil encontrar a origem do defeito. Na integração incremental, o software é construído e testado em pequenos segmentos, permitindo que os erros sejam mais fáceis de ser isolados e corrigidos e as interfaces têm maior probabilidade de serem testadas completamente. 2.3 TESTES AUTOMATIZADOS DE SOFTWARE Para facilitar a execução dos testes, foram criadas ferramentas que ajudam na criação de código para a automação de testes, como o JUnit. Com essas ferramentas, o desenvolvedor escreve um teste pensando na interface do código, ao invés de se preocupar em como será implementado, verificando se os métodos e classes funcionam da forma esperada. Utilizando estas ferramentas, executar testes passou a ser tão fácil quanto compilar um software (FOWLER, 2001). Por ser fácil de executar automaticamente, os desenvolvedores podem executar os testes automáticos várias vezes por dia, permitindo que os defeitos sejam encontrados mais rapidamente. Por exemplo, se após a execução de todos os testes, um bug for inserido no software, o desenvolvedor saberá que o defeito foi causado pelas linhas de código inseridas entre a última execução dos testes e a revelação do bug.
14 TEST-DRIVEN DEVELOPMENT (TDD) Desenvolvimento Orientado por Testes (TDD) é uma técnica que consiste de pequenas iterações onde novos casos de testes são escritos contemplando uma nova funcionalidade ou melhoria e, depois, o código necessário e suficiente para passar esses teste é implementado. Então, o software é refatorado para contemplar as mudanças de forma que os testes continuem passando. Segundo Kent Beck (BECK, 2003), os seguinte passos são necessários para a utilização dessa técnica: Adicionar um novo teste; Executar todos os testes; Implementar o código necessário para passar no teste; Executar todos os testes; Refatorar o código. Como todas as funcionalidades e melhorias do código começam com um teste, o desenvolvedor precisa conhecer os casos de uso e estórias que contemplem todos os requisitos e exceções do sistema. Essa técnica obriga o desenvolvedor a focar no requisito para escrever bons testes. Cada teste adicionado deve cobrir uma funcionalidade ou melhoria que ainda não foi implementada, então esse teste deverá falhar na sua primeira execução. Isso garante que o teste não passará sem a necessidade de alterar o código. Com a falha no teste, o desenvolvedor deve implementar o código necessário e suficiente para passar no novo teste, sem se preocupar com a elegância do código. Após implementado a nova funcionalidade/melhoria, os testes devem ser executados novamente e, se todos os testes passarem, o desenvolvedor tem a garantia que o código cumpre todos os requisitos testados. Se algum não passar, o código referente ao teste que falhou deverá ser corrigido. Antes de adicionar um novo teste no software, o desevolvedor deve refatorar o código, para evitar duplicação. Bhat e Nagappan (BHAT; NAGAPPAN, 2006), resumiram os passos na Figura 2.1.
15 14 Figura 2.1: Test Driven Development (BHAT; NAGAPPAN, 2006, p.357) EXTREME PROGRAMMING (XP) Extreme Programming (ou XP) é uma metodologia de programação ágil composta por um conjunto de valores, princípios e práticas que visa desenvolver softwares de alta qualidade de forma ágil, econômica e flexível (JEFFRIES, 2007). Os cinco valores que guiam o desenvolvimento XP são: Comunicação: A comunicação entre os desenvolvedores e clientes é importante para que os desenvolvedores entendam as necessidades do cliente e estes acompanhem o desenvolvimento do projeto de perto. Também é essencial que haja comunicação entre os desenvolvedores, para garantir que todos entendam o software da mesma forma. A comunicação verbal e presencial é priorizada para garantir que todas as partes envolvidas tenham a chance de se compreender da melhor maneira possível. Simplicidade: A equipe de desenvolvedores deve se concentrar em codificar primeiro tudo que é claramente importante para o software, evitando desenvolver o que ainda não é essencial. Este valor está relacionado com a comunicação, pois a simplicidade do código permite que ele seja entendido mais facilmenet por todos os desenvolvedores do projeto. Feedback: No desenvolvimento de software quanto mais cedo um defeito é encontrado, mais barata é sua correção. A metodologia XP propões ciclos de desenvolvimento curtos
16 15 (1 a 4 semanas). Em cada ciclo ocorrem todas as fases de desenvolvimento (planejamento, análise de requisitos, codificação, teste e documentação), que são entregues ao cliente. Este, então, analisa se tudo o que pediu está contido na versão entregue e informa aos desenvolvedores suas sugestões, críticas e dúvidas. Coragem: Os desenvolvedores que utilizam XP têm consciência que os clientes podem querer mudanças no software. Então, têm coragem de permitir que essas mudanças sejam feitas, pois confiam nas proteções que o software possui quando é desenvolvido utilizando as práticas do XP, como desenvolvimento orientado por testes, programação em par e integração contínua. Os princípios (BEEDLE et al., 2001) seguidos pelos desenvolvedores são: A maior prioridade é a satisfação do cliente através da entrega rápida e contínua de software útil As mudanças de requisito serão bem recebidas em qualquer momento, mesmo que o desenvolvimento já esteja adiantado. A entrega do software deverá ser frequente, em poucas semanas ou meses, dando preferência à menor escala. As pessoas que entendem de negócios e os desenvolvedores devem trabalhar juntos diariamente durante o projeto. Desenvolva projetos com pessoas motivadas. Dêem todo o ambiente e suporte que as pessoas precisarem e confie que elas produzirão. o método mais eficiente e eficaz de transmitir informações em uma equipe de desenvolvimento é a conversa frente-a-frente. Um software que funciona é a primeira medida de progresso. Processos ágeis promovem desenvolvimento sustentável. Os clientes, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. Atenção contínua à excelência técnica e um bom projeto aumentam a agilidade. Simplicidade a arte de maximizar a quantidade de trabalho a não ser feito é essencial. As melhores arquiteturas, requisitos e projetos emergem de grupos auto-organizáveis.
17 16 Em intervalos regulares, o grupo deve refletir sobre como se tornar mais eficaz, então devem ajustar seu comportamento de acordo com isso. A metodologia XP é baseada nas 12 melhores práticas de engenharia de software para aumentar a produtividade e qualidade, com ênfase em testes via TDD. Essas práticas foram descritas por Kent Beck (BECK, 2000) e estão listadas abaixo: O processo de planejamento: Esta prática permite que o cliente defina as funcionalidades que serão prioritárias no desenvolvimento, a partir dos custos estimados fornecidos pelos desenvolvedores. Pequenas versões: Consiste em colocar um sistema simples em produção rapidamente e atualizá-lo frequentemente, um ciclos curtos. Metáfora: Compartilhar um sistema de nomes e uma descrição do sistema para guiar o desenvolvimento e a comunicação. Design simples: O programa desenvolvido deve ser o programa mais simples possível que contemple os requisitos do momento. Nada que ainda não tenha sido descrito como uma funcionalidade deve ser implementado. Testes: A validação do software deve ser feita em todos os momentos. Os programadores devem escrever os testes primeiro e, depois, o código que contemple os requisitos refletidos nos testes (TDD). Refatoração: Esta prática é utilizada para reestruturar o sistema sem mudar seu comportamento. É utilizado para eliminar duplicações, melhorar a comunicação, simplicidade ou adicionar mais flexibilidade. Programação em pares: Todo o código é produzido em pares: dois desenvolvedores trabalhando juntos em uma máquina. Dessa forma, os desenvolvedores se ajudam. Enquanto um escreve o código, o outro pode analisar a necessidade de revisão do código e/ou refatoração. Propriedade coletiva: Todo o código produzido pertence à todos os desenvolvedores. Isto permite que um grupo produza mais rápido. Se algo precisa ser mudado, ele será mudado sem demora, pois qualquer desenvolvedor poderá modificar qualquer parte do código. Integração contínua: Os grupos de desenvolvedores integram e produzem software várias vezes por dia, permitindo que o progresso do desenvolvimento seja mais rápido.
18 17 40 horas por semana: Desenvolvedores cansados cometem mais erros. Então, nenhum desenvolvedor deve trabalhar mais de 40h por semana. Cliente sempre presente: Um cliente/usuário deve estar sempre presente no desenvolvimento, determinando requisitos, estabelecendo prioridade e respondendo às questões que os desenvolvedores fizerem. Padrões de codificação: Para um grupo trabalhar efetivamente em pares e compartilhar a propriedade do código, todos os desenvolvedores devem produzir código da mesma forma, com regras que garantem que auxiliem a comunicação através do código. Como o objetivo do XP é desenvolver em pequenos ciclos, TDD se torna essencial para ter a garantia que o código que foi produzido atende às necessidades do cliente. E, se o cliente sugerir alterações, os desenvolvedores se sentirão seguros em fazer as mudanças, já que os testes já produzidos possibilitarão indicar eventuais defeitos introduzidos pela alteração.
19 18 3 METODOLOGIA A metodologia utilizada neste trabalho é a Revisão Sistemática. A maior parte das pesquisas começa com uma revisão de literatura, no entanto, segundo Kitchenham (KITCHENHAM, 2004), para ter valor científico é necessário que essa revisão seja feita de forma abrangente, não tendenciosa, aberta e objetiva. Esse é a principal razão de uma revisão sistemática, que deve identificar, avaliar e interpretar todas as pesquisas disponíveis e relevantes sobre uma questão e, para isso, precisa ser executada seguindo um protocolo pré-definido e rigoroso. Obrigatoriamente, nesse protocolo deve conter todas as informações que permitam que a revisão seja repetida por outros pesquisadores interessados. A revisão sistemática deve reunir informações sobre uma determinada questão ou fenômeno, identificar lacunas na pesquisa atual e indicar um direcionamento para pesquisas futuras. Uma revisão sistemática envolve três fases: planejamento, execução e análise dos resultados. Na fase de planejamento, o protocolo que deverá orientar toda a revisão sistemática é construído. Nele deve conter as informações sobre o objetivo, a descrição do problema, as questões da pesquisa e os métodos e critérios utilizados para a busca, seleção, avaliação e extração de dados. Na fase de execução, os métodos descritos no protocolo são aplicados e documentados nos formulários de condução da revisão e de seleção dos estudos. O objetivo do formulário de condução da revisão é documentar o processo de busca. Possui campos para a armazenagem de informações sobre a fonte onde a busca foi realizada, o endereço virtual da fonte, a data de realização da busca, as combinações de palavras-chave que proporcionaram a busca dos artigos, a quantidade de artigos encontrados e a quantidade de arquivos pré-selecionados. O formulário de seleção de estudos documenta a busca e possui campos informando o nome do artigo, a lista de autores, data de sua publicação, veículo de publicação do artigo, fonte de onde foi obtido, situação do artigo (pendente, incluído e excluído) e informações sobre se os critérios foram atendidos.
20 19 Na fase de análise dos resultados os dados dos estudos são extraídos e sintetizados e os resultados são analisados. A extração é documentada no formulário de extração de dados, que possui campos informando o título, abstract, objetivo do estudo, descrição do estudo experimental, resultados do estudo, além de comentários adicionais do pesquisador que extraiu os dados. Na seção seguinte será apresentado o protocolo utilizado para esta revisão sistemática. 3.1 PROTOCOLO O protocolo da revisão especifica os métodos que serão utilizados para a revisão sistemática. Segundo Kitchenham, um protocolo pré-definido é necessário para reduzir a possibilidade de uma pesquisa tendenciosa, já que sem um protocolo, um pesquisador poderia selecionar estudos de acordo com suas expectativas DESCRIÇÃO DO PROBLEMA Na maioria dos projetos de desenvolvimento de software, quanto mais se distancia das fases iniciais do desenvolvimento mais custosa fica sua correção. Então, a utilização da técnica de desenvolvimento orientado por testes passa a ser uma boa opção, pois esta tem como um de seus objetivos antecipar a identificação de defeitos durante o desenvolvimento do software. Esta técnica faz parte do modelo de programação XP, cuja utilização tem aumentado bastante nos últimos anos. Para permitir que os defeitos sejam identificados previamente, os testes são feitos antes da implementação do código. Esse tipo de desenvolvimento ajuda os desenvolvedores a focar na funcionalidade das aplicações e a disponibilidade de testes antes do desenvolvimento permite um rápido feedback. Entretanto, não é garantido que a quantidade de defeitos diminuirá OBJETIVO O foco desta revisão sistemática é analisar se a utilização da técnica de desenvolvimento de software orientado por testes diminui a quantidade de defeitos numa aplicação. Caso seja verificado que a quantidade de defeitos é menor, esta revisão também verificará o impacto da utilização da técnica TDD na quantidade de defeitos do software.
21 QUESTÕES DA PESQUISA Essas questões deverão ser respondidas ao final da revisão sistemática. Questão Primária: O uso da metodologia TDD no desenvolvimento de software diminui a quantidade de defeitos no software? População: Projetos de desenvolvimento Intervenção: Test Driven Development Resultado: Diminuição da quantidade de defeitos Questão Secundária: Qual o impacto da utilização de TDD na quantidade de defeitos em um software? PALAVRAS-CHAVE Essas palavras serão utilizadas para fazer as buscas de estudos. População software development, software process, software project Intervenção: development test, test, tests, software test, tdd, test driven development Resultado: errors, error, error detection, error identification, failure, defect MÉTODO UTILIZADO PARA PESQUISA DE FONTES PRIMÁRIAS As fontes serão pesquisada pela web nas bases eletrônicas de dados e ACM Digital Library. As strings de busca utilizadas serão formada pela interseção das palavras que formam a população, a intervenção e o resultado listados na subseção A busca será documentada e apresentada no apêndice A CRITÉRIO DE SELEÇÃO DOS ESTUDOS Serão incluídos na revisão todos os artigos encontrados com a utilização do método descrito na subseção que satisfaçam todos os seguintes critérios:
22 21 Os artigos devem ter sido publicados entre 1990 e 2007 Os artigos devem estar escritos em inglês. A escolha do inglês como idioma padrão devese à sua universalidade. Os artigos devem estar disponíveis na web Os artigos devem contemplar a execução de estudos experimentais. Os artigos devem abordar o uso da metodologia TDD no desenvolvimento de softwares e a quantidade de defeitos ao final do desenvolvimento. A seleção dos estudos será documentada e apresentada no apêndice B CRITÉRIO DE QUALIDADE DOS ESTUDOS Os artigos que atenderem aos critérios descritos na subseção serão avaliados baseado nos critérios para avaliação de estudos experimentais em engenharia de software definidos por Barbara Kitchenham e ilustrados na figura 3.1 (KITCHENHAM, 2004). Apenas os estudos com nível 5 serão excluídos da revisão sistemática. Figura 3.1: Hierarquia dos estudos para Engenharia de Software (KITCHENHAM, 2004, p.13)
23 MÉTODO DE AVALIAÇÃO DOS ESTUDOS Cada artigo que atender aos critérios listados na subseção será lido e os estudos selecionados serão avaliados de acordo com os critérios de qualidade estabelecidos na subseção Os artigos que se enquadrarem nesses critérios serão utilizados para a finalidade deste estudo MÉTODO DE EXTRAÇÃO DOS DADOS Para cada artigo que atender aos critérios listados na subseção será preenchido uma cópia do formulário de extração de dados que será apresentado no apêndice C MÉTODO DE SÍNTESE DOS DADOS Os dados dos estudos selecionados serão comparados, com a finalidade de realçar as similaridades e diferenças entre os estudos de acordo com as questões da pesquisa (ver apêndice C). Foi considerada a idéia de realizar meta-análise sobre os dados quantitativos dos estudos, mas como a quantidade de artigos encontrados foi muito baixa, a idéia foi desconsiderada. 3.2 EXECUÇÃO DA REVISÃO SISTEMÁTICA O processo de busca foi executado utilizando as combinações de palavras-chave seguindo o método de pesquisa de fontes primárias do protocolo (subseção 3.1.5) e restringindo a busca aos anos entre 1990 e Foram listados 489 artigos somando o material encontrados nas duas bases eletrônicas de dados. Devido ao grande número de artigos encontrados, primeiro foi feita uma pré-seleção a partir da leitura do resumo dos estudos. Os artigos que claramente eram irrelevantes para a revisão foram descartados. Foram pré-selecionados 43 estudos, todos eles abordavam estudos experimentais, testes, metodologias ágeis ou XP. Os formulários de busca podem ser vistos no apêndice A. Todos os artigos pré-selecionados estavam descritos em inglês e estavam disponíveis na WEB, atendendo três dos critérios citados na subseção (recentes, em inglês e disponíveis na WEB). Os artigos pré selecionados, então, foram lidos e verificados através dos critérios ainda não atendidos de inclusão e exclusão estabelecidos. A seleção foi documentada no formulário de seleção de estudos, juntamente com os critérios e se estes foram atendidos ou não (apêndice B). Dos 43 artigos pré-selecionados, 2 estavam de acordo com os critérios previstos
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de Software Métodos ágeis (Sommerville) As empresas operam em um ambiente global, com mudanças rápidas. Softwares fazem parte de quase todas as operações de negócios. O desenvolvimento
Leia maisGARANTIA 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 maisTópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.
Métodos Ágeis Edes Garcia da Costa Filho edes_filho@dc.ufscar.br 1 Tópicos Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Extreme Programming (XP). Referências Bibliográficas. 2 Histórico
Leia maisENGENHARIA 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 maisEngenharia 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 maisEngenharia 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 maisCom metodologias de desenvolvimento
Sociedade demanda grande quantidade de sistemas/aplicações software complexo, sistemas distribuídos, heterogêneos requisitos mutantes (todo ano, todo mês, todo dia) Mas, infelizmente, não há gente suficiente
Leia maisPROCESSO 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 maisDISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga
DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 Extreme Programming (XP); DAS (Desenvolvimento Adaptativo de Software)
Leia maisO 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 maisEngenharia de Software II
Engenharia de Software II Aula 5 http://www.ic.uff.br/~bianca/engsoft2/ Aula 5-05/05/2006 1 Dúvidas da aula passada RUP (Rational Unified Process) é uma ferramenta ou um processo? Resposta: os dois. O
Leia mais5. Métodos ágeis de desenvolvimento de software
Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos
Leia maisCapítulo 1. Extreme Programming: visão geral
Capítulo 1 Extreme Programming: visão geral Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para: Projetos cujos requisitos são vagos e mudam com freqüência; Desenvolvimento
Leia maisMÓ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 maisPós-Graduação em Gerenciamento de Projetos práticas do PMI
Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL
Leia maisProjeto 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 maisMétodos de Avaliação para Sites de Entretenimento. Fabricio Aparecido Breve Prof. Orientador Daniel Weller
Métodos de Avaliação para Sites de Entretenimento Fabricio Aparecido Breve Prof. Orientador Daniel Weller 1 Introdução O objetivo deste trabalho é verificar a eficiência da Avaliação com o Usuário e da
Leia maisISO/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 maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO Santa Maria, 27 de Setembro de 2013. Revisão aula anterior Desenvolvimento Ágil de Software Desenvolvimento e entrega
Leia maisJonas de Souza H2W SYSTEMS
Jonas de Souza H2W SYSTEMS 1 Tecnólogo em Informática Fatec Jundiaí MBA em Gerenciamento de Projetos FGV Project Management Professional PMI Mestrando em Tecnologia UNICAMP Metodologia de apoio à aquisição
Leia maisSolitaire Interglobal
Solitaire Interglobal POWERLINUX OU WINDOWS PARA IMPLANTAÇÃO SAP Escolher entre as plataformas concorrentes de sistema operacional Linux e Windows para SAP pode ser uma tarefa confusa para as organizações.
Leia maisXP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br
XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br Introdução Criada por Kent Baeck em 1996 durante o projeto Daimler Chrysler. O sucesso
Leia maisFeature-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 maisMANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.
METODOLOGIAS ÁGEIS SURGIMENTO As metodologias ágeis surgiram em resposta ao problema dos atrasos no desenvolvimento de software e aos cancelamentos, devido ao fato dos sistemas demorarem muito tempo para
Leia maisENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE Síntese de tópicos importantes PRESSMAN, Roger S. Conteúdo Componentes e tipos de software Problemas com o software e suas causas Mitologia que envolve o software Configuração de
Leia maisDesenvolvimento 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 maisRoteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo
Leia maisTó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 maisAUTOR: 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 maisDesenvolvimento Ágil de Software em Larga Escala
Desenvolvimento Ágil de Software em Larga Escala Jutta Eckstein Encontro Ágil 2009 1 Agilidade é Quente Gerenciamento Ágil de Projetos Testes Ágeis Arquitetura Ágeis Offshore Ágil Investimento Ágil PLM
Leia mais1. Desenvolver o software iterativamente. Um pouco de reflexão: Acabou aí? 31/08/2010
Engenharia de Software Aula 5 (Versão 2010-02) Melhores práticas para desenvolvimento de software Desenvolver de forma iterativa e gerenciar requisitos Professor Gabriel Baptista ( gabriel.baptista@uninove.br
Leia maisEngenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana
Leia maisINTRODUÇÃO A PROJETOS
INTRODUÇÃO A PROJETOS Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br GESTÃO DE PROJETOS Gestão Ágil de projetos Gestão de projetos com PMBOK GESTÃO ÁGIL DE PROJETOS GESTÃO ÁGIL
Leia mais2 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 maisDesenvolvendo Software Livre com Programação extrema
Desenvolvendo Software Livre com Programação extrema Dairton Bassi FISL 7.0 abril/2006 Panorama sobre o Desenvolvimento de Software A sociedade demanda: Grande quantidade de sistemas/aplicações Sistemas
Leia maisProf. Me. Marcos Echevarria
Prof. Me. Marcos Echevarria Nas décadas de 80 e 90 a visão geral sobre a melhor maneira de desenvolver software era seguir um cuidadoso planejamento para garantir uma boa qualidade; Esse cenário era aplicável
Leia maisMODELO 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 maisRequisitos 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 maisFundamentos 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 maisCapítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho
20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam
Leia maisACOMPANHAMENTO GERENCIAL SANKHYA
MANUAL DE VISITA DE ACOMPANHAMENTO GERENCIAL SANKHYA Material exclusivo para uso interno. O QUE LEVA UMA EMPRESA OU GERENTE A INVESTIR EM UM ERP? Implantar um ERP exige tempo, dinheiro e envolve diversos
Leia maisFundamentos 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 maisSolução Integrada para Gestão e Operação Empresarial - ERP
Solução Integrada para Gestão e Operação Empresarial - ERP Mastermaq Softwares Há quase 20 anos no mercado, a Mastermaq está entre as maiores software houses do país e é especialista em soluções para Gestão
Leia mais3 Qualidade de Software
3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo
Leia maisMelhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson
QUALIDADE Simpósio Brasileiro de Qualidade de Software - SBQS Instituto Nokia de Tecnologia Unit Test Sucess Bug INdT Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua
Leia maisSCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com)
SCRUM: UM MÉTODO ÁGIL Cleviton Monteiro (cleviton@gmail.com) Roteiro Motivação Manifesto Ágil Princípios Ciclo Papeis, cerimônias, eventos, artefatos Comunicação Product Backlog Desperdício 64% das features
Leia maisIntrodução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura
Introdução ao TDD #guma10anos Abril de 2014 Dionatan Moura about.me/dionatanmoura Introdução ao TDD Extreme Programming TDD Refatoração xunit Baby Steps Clean Code Patterns para TDD Red Bar Test Green
Leia maisCapítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de
Leia maisManual SAGe Versão 1.2 (a partir da versão 12.08.01)
Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação
Leia maisPROFESSOR: 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 maisAVALIAÇÃO DE INTERFACES UTILIZANDO O MÉTODO DE AVALIAÇÃO HEURÍSTICA E SUA IMPORTÂNCIA PARA AUDITORIA DE SISTEMAS DE INFORMAÇÕES
AVALIAÇÃO DE INTERFACES UTILIZANDO O MÉTODO DE AVALIAÇÃO HEURÍSTICA E SUA IMPORTÂNCIA PARA AUDITORIA DE SISTEMAS DE INFORMAÇÕES Rafael Milani do Nascimento, Claudete Werner Universidade Paranaense (Unipar)
Leia maisProcessos 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 maisCHECK - LIST - ISO 9001:2000
REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da
Leia maisTipos 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 maisIntrodução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3
Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido
Leia maisModelo 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 maisProgramação Extrema. Luis Fernando Machado. Engenharia de Software
Programação Extrema Luis Fernando Machado Engenharia de Software Desenvolvimento Ágil Programação Extrema, ou Extreme Programming (XP) é um modelo de desenvolvimento ágil. Desenvolvimento ágil foi criado
Leia maisSistemas de Informação I
+ Sistemas de Informação I Processo de software I Ricardo de Sousa Britto rbritto@ufpi.edu.br + O que é Engenharia de Software n Definição dada pela IEEE [IEE93]: n Aplicação de uma abordagem sistemática,
Leia maisConteú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 maisMétodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software Livre Dionatan Moura Jamile Alves Porto Alegre, 09 de julho de 2015 Quem somos? Dionatan Moura Jamile Alves Ágil e Software Livre? Métodos Ágeis Manifesto
Leia maisA importância da comunicação em projetos de
A importância da comunicação em projetos de Tecnologia da Informação (TI) Autor: Ivan Luizio R. G. Magalhães Um perigo previsto está metade evitado. Thomas Fuller Introdução Há muitos anos atrás, um bom
Leia maisPrincípios de Design TRADUÇÃO DE TATIANE CRISTINE ARNOLD, DO ARTIGO IBM DESIGN: DESIGN PRINCIPLES CHECKLIST.
Princípios de Design TRADUÇÃO DE TATIANE CRISTINE ARNOLD, DO ARTIGO IBM DESIGN: DESIGN PRINCIPLES CHECKLIST. Um software deve ser projetado para simplificar tarefas e criar experiências positivas para
Leia maisTESTES AUTOMATIZADOS COM JUNITE MOCKITO
TESTES AUTOMATIZADOS COM JUNITE MOCKITO Jaime William Dias 12, Dener Barranco 1, Douglas Delapria 1 1 Universidade Paranaense (Unipar) 2 Universidade Estadual de Maringá (UEM) Paranavaí PR Brasil dener_barranco@hotmail.com,
Leia maisAutor(es) BARBARA STEFANI RANIERI. Orientador(es) LUIZ EDUARDO GALVÃO MARTINS, ANDERSON BELGAMO. Apoio Financeiro PIBIC/CNPQ. 1.
19 Congresso de Iniciação Científica ESPECIFICAÇÃO E IMPLEMENTAÇÃO DE UMA FERRAMENTA AUTOMATIZADA DE APOIO AO GERSE: GUIA DE ELICITAÇÃO DE REQUISITOS PARA SISTEMAS EMBARCADOS Autor(es) BARBARA STEFANI
Leia maisEngenharia de Software II
Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.
Leia maisMetodologia de Desenvolvimento de Sistemas
Metodologia de Desenvolvimento de Sistemas Aula 1 Ementa Fases do Ciclo de Vida do Desenvolvimento de Software, apresentando como os métodos, ferramentas e procedimentos da engenharia de software, podem
Leia maisSETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014.
A importância da comunicação no gerenciamento de projetos de softwares: reflexões teóricas Lucas Krüger lucas_kruger-@hotmail.com Resumo: Esse artigo objetiva estudar a comunicação entre cliente e desenvolvedor
Leia maisReferê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 maisDSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.
- DSI DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. Preocupação: Problema técnicos Mudança na natureza e conteúdo do trabalho
Leia maisEngenharia 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 maisMetodologias Ágeis. Gerenciando e Desenvolvendo Projetos de forma eficiente. Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697
Metodologias Ágeis Gerenciando e Desenvolvendo Projetos de forma eficiente Gabriel Verta 0767948 Rafael Reimberg 0767701 Vinicius Quaiato - 0767697 Introdução Ao longo dos anos a indústria de desenvolvimento
Leia maisProgramação Orientada a Testes Rodrigo Rebouças de Almeida
Programação Orientada a Testes Rodrigo Rebouças de Almeida http://rodrigor.com rodrigor@rodrigor.com Agenda Nossos objetivos hoje: Entender o que é programação orientada a testes Entender a sua função
Leia maisNa 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 maisProcessos 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 maisTRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente
Leia maisA Evolução de XP segundo Kent Beck Parte 2
A Evolução de XP segundo Kent Beck Parte 2 O que mudou nesses 5 anos? Danilo Toshiaki Sato dtsato@ime.usp.br Agenda PARTE 1 1. Introdução 2. O que é XP? 3. O que mudou em XP? Valores, Princípios e Práticas
Leia maisMetodologias 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 maisPlanejando o aplicativo
Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por
Leia maisagility made possible
RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility
Leia maisGerenciamento de projetos. cynaracarvalho@yahoo.com.br
Gerenciamento de projetos cynaracarvalho@yahoo.com.br Projeto 3URMHWR é um empreendimento não repetitivo, caracterizado por uma seqüência clara e lógica de eventos, com início, meio e fim, que se destina
Leia maisFábrica de Software 29/04/2015
Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se
Leia maisGerenciamento de Problemas
Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar
Leia maisIntroduçã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 maisINTRODUÇÃO AO MICROSOFT DYNAMICS AX 4.0 FINANCEIRO I
Introdução INTRODUÇÃO AO MICROSOFT DYNAMICS AX 4.0 FINANCEIRO I E-Learning O treinamento é um componente vital para a retenção do valor de investimento do seu Microsoft Dynamics. Um treinamento de qualidade,
Leia maisResumo artigo Agile Modeling- Overview
Universidade Federal de Santa Catarina Centro Tecnológico Disciplina: Projetos I Aluno: Diogo Ludvig 0313812-7 Resumo artigo Agile Modeling- Overview Este trabalho se refere ao resumo do artigo Agile Modeling,
Leia maisAPLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2
APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 Renan J. Borges 1, Késsia R. C. Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí, PR Brasil renanjborges@gmail.com, kessia@unipar.br
Leia maisextreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP
extreme Programming extreme Programming (XP) Metodologia ágil para equipes pequenas a médias desenvolvendo software com requesitos vagos ou que mudam freqüentemente. [Beck 2000] Em XP, codificação é principal
Leia maisAPOO Análise e Projeto Orientado a Objetos. Requisitos
+ APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas
Leia maishttp://www.microsoft.com/pt-br/case/details.aspx...
Casos de Sucesso A Cyrela está completamente focada no pós-venda e a utilização do Microsoft Dynamics 2011 só reflete mais um passo importante na busca pela qualidade do atendimento ao cliente Roberto
Leia maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:
Leia maisQUALIDADE 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 maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO Santa Maria, 24 de Setembro de 2013. Revisão aula anterior Processos de Software Engenharia de Requisitos, Projeto,
Leia maisCONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES
CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás
Leia maisAná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 maisProf. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br
Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,
Leia maisIdeal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?
Significado de XP? Extreme Programming (Programação Extrema). Ideal para que tipo de empresa (equipe): pequena, média, grande? Pequenas e Médias. Em software onde os requisitos não são conhecidos é recomendado
Leia maisModernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br
Modernização e Evolução do Acervo de Software Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Tópicos 1. Estudo Amplo sobre Modernização 2. Visão IBM Enterprise Modernization 3. Discussão - Aplicação
Leia mais