Metodologias Ágeis Extreme Programming e o Tratamento de Requisitos

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

Download "Metodologias Ágeis Extreme Programming e o Tratamento de Requisitos"

Transcrição

1 Categoria de Assunto INFORMÁTICA ENGENHARIA DE SOFTWARE Título Metodologias Ágeis Extreme Programming e o Tratamento de Requisitos Autores Carlos Renato Rocha Bueno, 26, é analista de sistemas com 8 anos de experiência em desenvolvimento de Softwares na GTCON, ATT/PS e Commitment Informática. Cursa o 4º semestre de Tecnologia em Informática no Centro Universitário Radial, onde é integrante do Programa de Iniciação Científica. Regina Sélia de Almeida Rodrigues Bueno, 27, é analista de sistemas com 7 anos de experiência em desenvolvimento de Softwares na IBM, Hospital Sírio Libanês e Network1. Cursa o 4º semestre de Tecnologia em Informática no Centro Universitário Radial, onde é integrante do Programa de Iniciação Científica. Paulo Sergio Borba, 39, é mestre em Engenharia da Computação com ênfase em Engenharia de Software pelo IPT da USP. Gerente de Projetos de Software na Alcoa Alumínio, Banco AGF e Banco Itaú. Professor da FIAP e do Centro Universitário Radial, onde coordena os cursos de graduação tecnológica de Informática e conduz dois projetos de iniciação científica. Este artigo foi gerado a partir do Programa de Iniciação Científica (PIC) da UniRadial, sob o título: Um Processo de Desenvolvimento de Software facilmente aplicável

2 Resumo Extreme Programming é uma metodologia ágil que veio para resolver os problemas de desenvolvimento de software existentes nas metodologias tradicionais, tais como a dificuldade no gerenciamento de mudanças e o tempo gasto com documentação extensa. A Extreme Programming possui uma forma particular de tratar com requisitos de software e possui um conjunto de práticas, muitas vezes contestadas, mas que se aplicadas em conjunto podem trazer grandes resultados. Palavras-chave: Extreme Programming, XP, Metodologia Ágil, Desenvolvimento de Software, Requisitos de software Abstract: Extreme Programming is a agile methodology emerged to solve existent software development problems with traditional methodologies, like problems in changing management and a lot of time expent with large documentation. The Extreme Programming holds a particular way to deal with software requirements and a whole of practices, sometimes controversy, but if applied a whole, can produce good results. Key-Words: Extreme Programming, XP, Agile Methodology, software development, software requirements

3 1. Introdução Uma das novas propostas para minimizar os atuais problemas com o desenvolvimento de software é o Extreme Programming, uma metodologia de desenvolvimento de software baseada em práticas que visam aumentar a eficiência da equipe dentro de um projeto. A Extreme Programming é a mais famosa entre as metodologias ágeis e busca produzir software com mais qualidade e com custo e prazos previsíveis. A Extreme Programming tem a proposta de focar mais em pessoas do que nos processos de desenvolvimento. Gasta menos tempo com documentação e mais com resolução de problemas. 2. Extreme Programming Processo de Desenvolvimento A Extreme Programming (XP) é uma metodologia ágil mais adequada para equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que se modificam rapidamente. Dentro dos ciclos de vida de desenvolvimento de software, a Extreme Programming é um processo ultra-iterativo incremental, conforme demonstrado na figura 1, onde o ciclo da XP está comparado ao tradicional processo Cascata e ao processo Espiral/Iterativo. Figura 1 - Comparação de Ciclo de Desenvolvimento Cascata x Iterativo x XP (baseado em Beck 1999)

4 Os processos iterativos, como o Processo Unificado, propõem várias entregas de software para o cliente durante o ciclo de desenvolvimento. A Extreme Programming potencializa isto, dividindo estas entregas em pacotes ainda menores para que o cliente faça sua avaliação e realimente a equipe de desenvolvimento com suas impressões. O primeiro projeto a usar Extreme Programming foi o C3, da Chrysler. Após anos de fracasso utilizando metodologias tradicionais, com o uso da Extreme Programming o projeto ficou pronto em pouco mais de um ano. A maioria das regras e práticas da Extreme Programming, à primeira vista, causa polêmica e muitas não fazem sentido se aplicadas isoladamente. É a sinergia de seu conjunto que sustenta o sucesso da Extreme Programming, encabeçando uma verdadeira revolução no desenvolvimento de software. A Extreme Programming enfatiza o desenvolvimento do projeto rápido e com qualidade, a fim de garantir a satisfação do cliente. A utilização da Extreme Programming favorece o cumprimento das estimativas de custo e prazo do projeto. As regras, práticas e valores da Extreme Programming proporcionam um agradável ambiente de desenvolvimento de software para os seus seguidores, que são conduzidos por quatro valores: comunicação, simplicidade, feedback e coragem. Estes valores estão resumidos na tabela 1. Valores da Extreme Programming Se a comunicação for intensa, podemos realmente dispensar muita documentação do projeto. Comunicação A finalidade é manter o melhor relacionamento possível entre clientes e desenvolvedores, preferindo conversas pessoais a outros meios de comunicação. A comunicação é um fator chave na Extreme Programming: é preferível comunicar-se pessoalmente o máximo possível, evitando-se o uso de telefone e o envio de mensagens por correio eletrônico (que não são proibidas, mas diminuem a proximidade e, por vezes, a união e o comprometimento dos interlocutores).

5 Simplicidade Manter as coisas simples faz com que não haja medo de mudar, uma vez que requisitos são mutáveis. A idéia é que o trabalho produzido seja simples, pois caso seja necessário ser descartado ou refeito, não se tenha perdido investimento, ou que a perda seja a menor possível. A programação, como tudo, deve ser simples. Quanto mais simples for o código, mais fácil será fazer manutenção neste código. Deve-se evitar a utilização de comandos rebuscados se não houver necessidade explícita disto. Outra idéia importante da simplicidade é procurar implementar apenas requisitos atuais, evitando-se adicionar funcionalidades que podem ser importantes no futuro mas não são no presente momento. Para todas as atividades desenvolvidas, é preciso saber se o caminho tomado está correto. A XP promove, como parte da comunicação, feedback constante entre os envolvidos no desenvolvimento (usuários diretos e indiretos e desenvolvedores). Feedback Os desenvolvedores entregam software constantemente para os usuários, dando-lhe feedback de suas solicitações. Por sua vez, o cliente avalia rapidamente o software recebido e realimenta os desenvolvedores com informações necessárias para manter ou alterar a forma de trabalho. Eventuais erros e não conformidades são rapidamente identificados e corrigidos nas próximas versões. Desta forma, a tendência é que o produto final esteja de acordo com as expectativas reais do cliente. Coragem É preciso ter coragem para remover coisas que não agregam valor. Coragem de jogar fora um pedaço de código que não ficou bom e recomeçá-lo novamente, com a mente limpa. Coragem de alterar algo, se necessário, mesmo que isso implique ter que mudar outras coisas. É necessário apontar um problema, mesmo que seja de si próprio, para evitar que ele afete o desenvolvimento futuramente. Tabela 1 Valores da Extreme Programming A Extreme Programming baseia-se em 12 práticas, que são sua grande diferença em relação às demais metodologias de desenvolvimento de software:

6 Práticas da Extreme Programming Planejamento: consiste em decidir o que é necessário ser feito e o que pode ser adiado no projeto. A Extreme Programming baseia-se em requisitos atuais para desenvolvimento de software, não em requisitos futuros. Além disso, a Extreme Programming procura evitar os problemas de relacionamento entre a área de negócios (clientes) e a área de desenvolvimento. As duas áreas devem cooperar para o sucesso do projeto e cada uma deve focar em partes específicas do projeto. Desta forma, enquanto a área de negócios deve decidir sobre o escopo, a composição das versões e as datas de entrega, os desenvolvedores devem decidir sobre as estimativas de prazo, o processo de desenvolvimento e o cronograma detalhado para que o software seja entregue nas datas especificadas. Entregas freqüentes: visa à construção de um software simples, e conforme os requisitos surgem, há a atualização do software. Cada versão entregue deve ter o menor tamanho possível, contendo os requisitos de maior valor para o negócio. Idealmente devem ser entregues versões a cada mês, ou no máximo a cada dois meses, aumentando a possibilidade de feedback rápido do cliente. Isto evita surpresas caso o software seja entregue após muito tempo e melhora as avaliações do cliente, aumentando a probabilidade do software final estar de acordo com os requisitos do cliente. Metáfora são as descrições de um software sem a utilização de termos técnicos, com o intuito de guiar o desenvolvimento do software. Projeto simples: o programa desenvolvido pelo método Extreme Programming deve ser o mais simples possível e satisfazer os requisitos atuais, sem a preocupação de requisitos futuros. Eventuais requisitos futuros devem ser adicionados assim que eles realmente existirem. Testes: a Extreme Programming focaliza a validação do projeto durante todo o processo de desenvolvimento. Os programadores desenvolvem o software criando primeiramente os testes. Programação em pares: a implementação do código é feita em dupla, ou seja, dois desenvolvedores trabalham em um único computador. O desenvolvedor que está com o controle do teclado e do mouse implementa o código, enquanto o outro observa continuamente o trabalho que está sendo feito, procurando identificar erros sintáticos e semânticos e pensando estrategicamente em como melhorar o código que está sendo implementado. Esses papéis podem e devem ser alterados continuamente. Uma grande vantagem da programação em dupla é a possibilidade dos desenvolvedores estarem continuamente aprendendo um com o outro. Refatoração: focaliza o aperfeiçoamento do projeto do software e está presente em todo o desenvolvimento. A refatoração deve ser feita apenas quando é necessário, ou seja, quando um desenvolvedor da dupla, ou os dois, percebe que é possível simplificar o módulo atual sem perder nenhuma funcionalidade. Propriedade coletiva: o código do projeto pertence a todos os membros da equipe.

7 Isto significa que qualquer pessoa que percebe que pode adicionar valor a um código, mesmo que ele próprio não o tenha desenvolvido, pode fazê-lo, desde que faça a bateria de testes necessária. Isto é possível porque na Extreme Programming todos são responsáveis pelo software inteiro. Uma grande vantagem desta prática é que, caso um membro da equipe deixe o projeto antes do fim, a equipe consegue continuar o projeto com poucas dificuldades, pois todos conhecem todas as partes do software, mesmo que não seja de forma detalhada. Integração contínua: é a prática de interagir e construir o sistema de software várias vezes por dia, mantendo os programadores em sintonia, além de possibilitar processos rápidos. Integrar apenas um conjunto de modificações de cada vez é uma prática que funciona bem porque fica óbvio quem deve fazer as correções quando os testes falham: a última equipe que integrou código novo ao software. Esta prática é facilitada com o uso de apenas uma máquina de integração, que deve ter livre acesso a todos os membros da equipe. 40 horas de trabalho semanal: a Extreme Programming assume que não se deve fazer horas extras constantemente. Caso seja necessário trabalhar mais de 40 horas pela segunda semana consecutiva, existe um problema sério no projeto que deve ser resolvido não com aumento de horas trabalhadas, mas com melhor planejamento, por exemplo. Esta prática procura ratificar o foco nas pessoas e não em processos e planejamentos. Caso seja necessário, os planos devem ser alterados, ao invés de sobrecarregar as pessoas. Cliente presente: é fundamental a participação do cliente durante todo o desenvolvimento do projeto. O cliente deve estar sempre disponível para sanar todas as dúvidas de requisitos, evitando atrasos e até mesmo construções erradas. Uma idéia interessante é manter o cliente como parte integrante da equipe de desenvolvimento. Código padrão: padronização na arquitetura do código, para que este possa ser compartilhado entre todos os programadores. 3. Análise de Requisitos no Extreme Programming Muito ao contrário do que ocorre no modelo Cascata, na Extreme Programming as mudanças são bem vindas. Mas quanto mais cedo vierem, melhor, dentro do período em que o software está sendo desenvolvido. E isto é possível se o software é entregue constantemente durante o projeto e o usuário dá feedback para os desenvolvedores sobre o produto recebido. Na Extreme Programming, os requisitos são capturados através de User Stories (Estórias de Usuários) que são cartões simples (pequenas fichas retangulares de papel) utilizados para anotar os requisitos. O usuário escreve uma frase curta que

8 descreva um requisito do sistema. Pode ser que seja necessário escrever varias frases para completar o requisito. Mas todas devem ser simples e fazer sentido individualmente. Por exemplo, em um sistema de PDV de um supermercado, o usuário escreve um cartão: Emitir cupom com descrição quantidade, descrição resumida do produto, preço unitário e total, além do total da compra Em outro cartão: Ao passar o produto no leitor de código de barras, devem ser exibidos a descrição do produto, seu preço unitário e sua foto. Um conjunto de cartões simples, com frases diretas e simples é uma ótima forma de se levantar os requisitos do sistema e de forçar a discussão sobre eles, melhorando o levantamento dos mesmos. Na Extreme Programming, pode-se resumir a Análise de Requisitos pela seqüência a seguir, incluindo controle de mudanças nos requisitos: a) Captura de requisitos b) Organização por Assunto c) Estimativa de Prazos d) Priorização de Funcionalidades e) Planejamento das iterações e das releases f) Planejando as próximas iterações e releases 3.1. Seqüência de mapeamento de requisitos: 1- Captura de Requisitos - Usuário escreve as User Stories (US). Cada US deve conter uma breve descrição do comportamento do sistema. A figura 2 ilustra um exemplo de User Storie de um sistema que controla o check-out (caixa) de um supermercado. Deve ser criada uma User Storie para cada funcionalidade do sistema. Cartões novos podem ser incluídos a qualquer momento. Os cartões existentes podem ser removidos e reescritos para refletir uma nova compreensão do sistema.

9 Figura 2 - Exemplo de User Story 2- Organização por Assunto - Os cartões com as User Stories são separados por assunto ou organizados por módulos a desenvolver, como mostra a figura 3. Isso mantém os objetivos separados e ajuda a começar o planejamento das iterações e das releases. Figura 3 - Cartões separados por assunto. 3- Estimativa de Prazos - Estima-se prazos para desenvolvimento das funcionalidades contidas em cada grupo de cartões. A equipe de desenvolvimento debate quais as soluções possíveis para as User Stories e definem as estimativas e prazos, anotando-os no canto superior de cada cartão, como demonstra a figura 4. Neste ponto já é possível ter uma noção do prazo e custo total do sistema.

10 Figura 4 - Módulos com prazos 4- Priorização de Funcionalidades - O usuário define a prioridade de cada grupo de cartões. Com base nas suas necessidades e no que agregar maior valor ao negócio naquele momento (afinal ele é o dono do dinheiro ). A figura 5 mostra a prioridade de cada grupo de cartões, destacando-as no círculo no canto esquerdo de cada grupo de cartões. Figura 5 - Módulos priorizados 5- Planejamento das iterações e das releases Toma-se como base o primeiro modulo priorizado. As demais funcionalidades ficam para as próximas iterações. O usuário não pode mudar os requisitos durante uma iteração, todas as mudanças são agendadas para o próximo planejamento.

11 6- Planejando as próximas iterações e releases Após a conclusão da primeira iteração, tem-se uma boa idéia se o planejamento foi cumprido a contento ou não e tem-se também o ritmo de desenvolvimento, ou seja, com que velocidade a equipe trabalha. Ao final de cada iteração o planejamento é revisto. É o momento oportuno para o usuário, caso queira, redefinir as prioridades dos módulos restantes, como exemplificado na figura 6. O usuário pode incluir novas funcionalidades, escrevendo mais User Stories. mas deve estar atento às limitações de orçamento e prazo planejadas para o projeto. Figura 6 - Prioridades redefinidas 4. Extreme Programming X Processos de Desenvolvimento Tradicionais A diferença entre a Extreme Programming e as metodologias anteriores a ela tradicionais é o foco da XP e seus valores. A idéia das metodologias ágeis, sobretudo a XP, é focar nas pessoas e não em processos ou algoritmos. Além disso, existe a preocupação de gastar menos tempo com documentação e mais com a implementação, que é o objetivo primeiro do trabalho. Uma característica das metodologias ágeis é que elas são adaptáveis ao invés de serem preditivas, ou seja, enfatizam as mudanças e suas conseqüentes adaptações; os problemas são encarados à medida que eles chegam. Com isso, elas se adaptam a novos fatores decorrentes do desenvolvimento do projeto, ao invés de procurar analisar previamente tudo o que pode acontecer no decorrer do desenvolvimento. Essa análise prévia é difícil e apresenta alto custo. E

12 mesmo assim, não prevendo tudo, pode-se ter alteração no planejamento caso haja alguma mudança significativa Custo das Alterações em Requisitos Dentre os fatores responsáveis por alterações nos requisitos estão a dinâmica das organizações, as alterações nas leis e as mudanças pedidas pelos stakeholders, que geralmente têm dificuldades em definir de forma completa o escopo do futuro software. Para ser realmente considerada ágil, a metodologia deve aceitar as mudanças ao invés de tentar prever o futuro. O problema não é a mudança em si, mesmo porque ela ocorrerá de qualquer forma, a questão é o momento em que chegam as mudanças em um projeto. Quanto mais tarde vier a mudança, a tendência é que seja mais caro efetuá-la. Segundo Leffingwell (2000), citando Jones (Capers Jones, 1994), a diferença do custo entre reparar um erro na etapa de requisitos e na etapa de manutenção, em média, é de 200 vezes. A figura 7 ilustra o incremento do custo, em média, para reparar defeitos, à medida que o desenvolvimento do software avança.,1 -,2 Requerimentos,5 Design 1 Codificação 2 Testes de unidade 5 Testes de Aceitação 20 Manutenção Figura 7 - Custo Relativo para reparar um defeito nas diferentes fases do Ciclo de Vida de um Projeto (Leffingwell 2000, citando Capers Jones, 1994) A Extreme Programming é ideal para ser usada em projetos em que os stakeholders não sabem exatamente o que desejam e podem mudar muito de opinião durante o projeto. Com feedback constante, é possível adaptar rapidamente eventuais mudanças nos requisitos. Estas alterações nos requisitos são muitas vezes críticas nas

13 metodologias tradicionais, que não apresentam meios de se adaptar rapidamente às mudanças. Na Extreme Programming o custo das mudanças mantém-se baixo devido à forma de trabalho e à simplicidade de construção. A figura 9 compara a evolução do custo da mudança para a Extreme Programming e para Processos Tradicionais. Figura 8 - Mudanças custam menos com XP 4.2. Vantagens de Extreme Programming As entregas constantes dão grande vantagem à Extreme Programming, pois o cliente pode, constantemente, avaliar uma porção operacional do software, não esperando até o final do projeto, como nas metodologias tradicionais. A integração e o teste contínuos também possibilitam a melhora na qualidade do software. Não é mais necessário existir uma fase de integração de módulos, uma vez que eles são continuamente integrados e eventuais problemas são resolvidos constantemente. 5. Quando aplicar Extreme Programming Na teoria, a Extreme Programming pode ser aplicada a qualquer desenvolvimento, mas ela é mais adequada a certas condições, conforme demonstra a tabela 2:

14 Extreme Programming Metodologias Tradicionais Projetos pouco críticos Projetos altamente críticos Equipe experiente Equipe iniciante Com mudanças constantes Com poucas mudanças Pequena equipe (<=10) Equipes maiores (>= 20) Cultura de adaptação Cultura de controle Tabela 2 Quando usar o que? 6. Conclusão A Extreme Programming, muito mais que um processo de desenvolvimento de software, é um conjunto de práticas. A aplicação de tais exige grande mudança cultural na organização. Não dá para manter a mesma mentalidade e aplicar a XP com sucesso. Por exemplo, o cliente deve fazer parte da equipe e quem patrocina o projeto sempre quer saber exatamente o que será feito e quando. Não há tempo para reuniões demoradas e documentação extensa. Muita documentação é feita com o propósito de comunicar. A comunicação intensa proposta pela Extreme Programming diminui a necessidade de documentação, uma vez que todos estão cientes das informações e estão envolvidos e comprometidos com o projeto. Charete, 2001, comparou métodos ágeis com as metodologias tradicionais, pesadas, e demonstrou que os projetos que usam os métodos ágeis obtiveram melhores resultados em termos de cumprimento de prazos, custos e padrões de qualidade. As metodologias ágeis ainda estão em sua infância, mas já apresentam resultados efetivos. É uma aposta que vale a pena, pois pode trazer vantagens significativas para a empresa. Porém, as pessoas envolvidas devem estar cientes das diferenças de forma de trabalho impostas pela Extreme Programming, devendo ser devidamente treinadas e aculturadas

15 7. Referências Bibliográficas BECK,.K. et al. Agile Manifesto. disponível em BECK, K. Programação Extrema Explicada. Bookman, BORBA, Paulo S. Proposta de um Processo Ágil de desenvolvimento de software utilizando Processo Unificado e Extreme Programming. São Paulo, Dissertação (Mestrado) Universidade de São Paulo Instituto de Pesquisas Tecnológicas Brooks, F. No Silver Bullet: Essence and Accidents of Software Engineering. Proc. IFIP, IEEE CS Press, pp ; reprinted in IEEE Computer, pp , Apr CHARETTE, R. Fair Fight? Agile Versus Heavy Methodologies, Cutter Consortium E-project Management Advisory Service, 2, 13, COCKBURN, A.; HIGHSMITH, J. Agile Software Development: The Business of Innovation. IEEE Computer, Sept., pp , GILB, T. Principles of Software Engineering Management. Addison-Wesley, HIGHSMITH, J.; ORR, K.; COCKBURN, A. Extreme Programming. E-Business Application Delivery, Feb., pp. 4-17, LEFFINGWELL, D.; WIDRIG, D. Managing Software Requirements a unified approach. Addison Wesley, PRESSMAN, R. Engenharia de Software. McGraw-Hill, SOMMERVILLE, I. Engenharia de Software. Editora Addison-Wesley. 592p, STANDISH GROUP CHAOS report, 586 Olde Kings Highway. Dennis, MA 02638, USA, 1995.

Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software

Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software MICHEL DOS SANTOS SOARES 1 Unipac - Universidade Presidente Antônio Carlos Faculdade de Tecnologia e Ciências de Conselheiro

Leia mais

ENGENHARIA DE SOFTWARE I

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

Leia mais

Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software

Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software Michel dos Santos Soares 1 1 Universidade Presidente Antônio Carlos, BR 482 Km 3, Gigante, Conselheiro Lafaiete, MG, Brasil

Leia mais

Engenharia da Computação. Tópicos Avançados em Engenharia de Software. Aula 3

Engenharia da Computação. Tópicos Avançados em Engenharia de Software. Aula 3 Engenharia da Computação Tópicos Avançados em Engenharia de Software Aula 3 (03/03) mario.godoy@univasf.edu.br http://www.univasf.edu.br/~mario.godoy/ Universidade Federal do Vale do São Francisco - UNIVASF

Leia mais

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Tó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 mais

05/05/2010. Década de 60: a chamada Crise do Software

05/05/2010. Década de 60: a chamada Crise do Software Pressman, Roger S. Software Engineering: A Practiotioner s Approach. Editora: McGraw- Hill. Ano: 2001. Edição: 5 Introdução Sommerville, Ian. SW Engineering. Editora: Addison Wesley. Ano: 2003. Edição:

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2015 Desenvolvimento Rápido de Software 2 1 Para quê o Desenvolvimento Rápido de Software? Os negócios

Leia mais

Capítulo 1. Extreme Programming: visão geral

Capí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 mais

Desenvolvimento Ágil de Software

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 mais

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com Processo de Desenvolvimento de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático desta aula Modelo Cascata (Waterfall) ou TOP DOWN. Modelo Iterativo. Metodologia Ágil.

Leia mais

DISCIPLINA 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 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 mais

Jonas de Souza H2W SYSTEMS

Jonas 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 mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 O Processo Unificado dos autores Ivar Jacobson, Grady Booch e James

Leia mais

Metodologias Ágeis de Desenvolvimento de Software

Metodologias Ágeis de Desenvolvimento de Software "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software de Desenvolvimento de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha

Leia mais

UNIVERSIDADE 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 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 mais

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP

extreme 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 mais

SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO

SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO RESUMO Eleandro Lopes de Lima 1 Nielsen Alves dos Santos 2 Rodrigo Vitorino Moravia 3 Maria Renata Furtado 4 Ao propor uma alternativa para o gerenciamento

Leia mais

Metodologias Á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 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 mais

Comparação entre Metodologias RUP e XP

Comparação entre Metodologias RUP e XP Comparação entre Metodologias RUP e XP Carlos G. Vasco, Marcelo Henrique Vithoft, Paulo Roberto C. Estante Programa de Pós Graduação em Informática Aplicada Pontifícia Universidade Católica do Paraná (PUCPR)

Leia mais

Metodologias Ágeis. Aécio Costa

Metodologias Ágeis. Aécio Costa Metodologias Ágeis Aécio Costa Metodologias Ágeis Problema: Processo de desenvolvimento de Software Imprevisível e complicado. Empírico: Aceita imprevisibilidade, porém tem mecanismos de ação corretiva.

Leia mais

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA-UFES Departamento de Computação

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA-UFES Departamento de Computação Centro de Ciências Agrárias Departamento de Computação Visão Geral do Processo de Desenvolvimento de Software Introdução à Ciência da Computação Introdução à Ciência da Computação COM06850-2015-II Prof.

Leia mais

Desenvolvimento ágil de software

Desenvolvimento ágil de software Desenvolvimento ágil de software Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil,

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Extreme Programming I Ricardo de Sousa Britto rbritto@ufpi.edu.br Você gostaria de trabalhar assim? Análise de Requisitos Longe de acordo Requerimentos Complexo Anarquia Perto

Leia mais

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

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

Leia mais

XP 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 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 mais

Engenharia da Computação. Tópicos Avançados em Engenharia de Software. Aula 2

Engenharia da Computação. Tópicos Avançados em Engenharia de Software. Aula 2 Engenharia da Computação Tópicos Avançados em Engenharia de Software Aula 2 (01/03) mario.godoy@univasf.edu.br http://www.univasf.edu.br/~mario.godoy/ Universidade Federal do Vale do São Francisco - UNIVASF

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

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

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

Leia mais

Guia Projectlab para Métodos Agéis

Guia Projectlab para Métodos Agéis Guia Projectlab para Métodos Agéis GUIA PROJECTLAB PARA MÉTODOS ÁGEIS 2 Índice Introdução O que são métodos ágeis Breve histórico sobre métodos ágeis 03 04 04 Tipos de projetos que se beneficiam com métodos

Leia mais

ENG1000 Introdução à Engenharia

ENG1000 Introdução à Engenharia ENG1000 Introdução à Engenharia Aula 01 Processo de Desenvolvimento de Software Edirlei Soares de Lima Processo de Software O processo de software consiste em um conjunto estruturado

Leia mais

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1 METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO Bruno Edgar Fuhr 1 Resumo: O atual mercado de sistemas informatizados exige das empresas de desenvolvimento, um produto que tenha ao mesmo

Leia mais

Engenharia de Software II

Engenharia 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 mais

Análise de Escopo e Planejamento no Desenvolvimento de Software, sob a Perspectiva Ágil

Análise de Escopo e Planejamento no Desenvolvimento de Software, sob a Perspectiva Ágil Análise de Escopo e Planejamento no Desenvolvimento de Software, sob a Perspectiva Ágil Roberto Costa Araujo Orientador: Cristiano T. Galina Sistemas de Informação Universidade do Vale do Rio dos Sinos

Leia mais

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES Marcelo Augusto Lima Painka¹, Késsia Rita da Costa Marchi¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil

Leia mais

[Agile] Scrum + XP. Wagner Roberto dos Santos. Agilidade extrema. Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com. Globalcode open4education

[Agile] Scrum + XP. Wagner Roberto dos Santos. Agilidade extrema. Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com. Globalcode open4education [Agile] Scrum + XP Agilidade extrema Wagner Roberto dos Santos Arquiteto Java EE / Scrum Master wrsconsulting@gmail.com 1 Apresentação Arquiteto Java EE / Scrum Master Lead Editor da Queue Arquitetura

Leia mais

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

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

Leia mais

A PROBLEMÁTICA DO DESENVOLVIMENTO DE SOFTWARE: CRISE OU CALAMIDADE CRÔNICA?

A PROBLEMÁTICA DO DESENVOLVIMENTO DE SOFTWARE: CRISE OU CALAMIDADE CRÔNICA? A PROBLEMÁTICA DO DESENVOLVIMENTO DE SOFTWARE: CRISE OU CALAMIDADE CRÔNICA? ADEMILSON ANGELO CABRAL Discente da AEMS Faculdades Integradas de Três Lagoas DIEGO BEZERRA DA SILVA Discente da AEMS Faculdades

Leia mais

WLADIMIR HENRIQUE MANGELADO BARBOSA

WLADIMIR HENRIQUE MANGELADO BARBOSA FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM FACULDADE DE CIÊNCIA DA COMPUTAÇÃO WLADIMIR HENRIQUE MANGELADO BARBOSA A METODOLOGIA EXTREME PROGRAMMING: UM

Leia mais

MÉTODO ÁGIL XP (EXTREME PROGRAMMING)

MÉTODO ÁGIL XP (EXTREME PROGRAMMING) MÉTODO ÁGIL XP (EXTREME PROGRAMMING) Luciano Malaquias de Souza* * RESUMO: Como o emprego dos métodos para desenvolvimento de software tem se tornado mais popular, existe uma grande demanda, pela industria,

Leia mais

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br SCRUM Fabrício Sousa fabbricio7@yahoo.com.br Introdução 2 2001 Encontro onde profissionais e acadêmicos da área de desenvolvimento de software de mostraram seu descontentamento com a maneira com que os

Leia mais

Gestão de Projetos de TI: Desenvolvimento Rápido Centrado no Usuário

Gestão de Projetos de TI: Desenvolvimento Rápido Centrado no Usuário Gestão de Projetos de TI: Desenvolvimento Rápido Centrado no Usuário Wannyemberg Klaybin da Silva Dantas 1, Adriano Araújo Santos 1 1 Departamento de Matemática, Estatística e Computação Universidade Estadual

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

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Programação Extrema Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Prof. Mauro Lopes Programação Extrema Prof. Mauro Lopes 1-31 45 Manifesto Ágil Formação da Aliança Ágil Manifesto Ágil: Propósito

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

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO:

RESUMO: APRESENTAÇÃO DOS RESULTADOS DO ESTUDO DE CASO: MÉTRICAS PARA ESTIMATIVA DE SOFTWARES EM QUE SE APLICAM METODOLOGIA ÁGIL Juliana Cotta Ferreira RESUMO: A engenharia de software discute-se muito sobre métricas, devido à sua importância para acompanhar

Leia mais

O Ciclo de Vida do Desenvolvimento de Sistemas i

O Ciclo de Vida do Desenvolvimento de Sistemas i O Ciclo de Vida do de Sistemas i O Ciclo de Vida do de Sistemas ( SDLC Systems Development Life Cycle), conhecido também com o ciclo de vida do software refere-se aos estágios de concepção, projeto, criação

Leia mais

1. Desenvolver o software iterativamente. Um pouco de reflexão: Acabou aí? 31/08/2010

1. 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 mais

Sistemas de Informação I

Sistemas 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 mais

PLANEJAMENTO DO ESCOPO

PLANEJAMENTO DO ESCOPO PLANEJAMENTO DO ESCOPO Dr. rer. nat. Christiane Gresse von Wangenheim, PMP Objetivo de aprendizagem desta aula Ao final desta aula, você deverá ser capaz de: Motivar a importância do planejamento de escopo.

Leia mais

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

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

Leia mais

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 Engenharia de Software Processos de software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Processo Um processo é uma série de etapas envolvendo actividades, restrições e

Leia mais

A Evolução de XP segundo Kent Beck Parte 2

A 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 mais

Comparativo entre Processos Ágeis. Daniel Ferreira dfs3@cin.ufpe.br

Comparativo entre Processos Ágeis. Daniel Ferreira dfs3@cin.ufpe.br Comparativo entre Processos Ágeis Daniel Ferreira dfs3@cin.ufpe.br O que discutiremos: Histórico Os Princípios Ágeis Comparação Do ponto de vista incremental Do ponto de vista funcional Vantagens e Desvantagens

Leia mais

O Processo Unificado

O Processo Unificado UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA O Processo Unificado 879SCC Projeto e Desenvolvimento de Sistemas

Leia mais

Especialização em Engenharia de Software e Banco de Dados

Especialização em Engenharia de Software e Banco de Dados Especialização em Engenharia de Software e Banco de Dados Disciplina: Engenharia de Software Tópico: Metodologias Ágeis Prof. Rodolfo Miranda de Barros rodolfo@uel.br O que é agilidade? Agilidade: Rapidez,

Leia mais

ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO LATU SENSU EM ENGENHARIA DE SISTEMAS JALERSON RAPOSO FERREIRA DE LIMA METODOLOGIAS ÁGEIS

ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO LATU SENSU EM ENGENHARIA DE SISTEMAS JALERSON RAPOSO FERREIRA DE LIMA METODOLOGIAS ÁGEIS ESCOLA SUPERIOR ABERTA DO BRASIL ESAB CURSO LATU SENSU EM ENGENHARIA DE SISTEMAS JALERSON RAPOSO FERREIRA DE LIMA METODOLOGIAS ÁGEIS NATAL RN 2010 JALERSON RAPOSO FERREIRA DE LIMA METODOLOGIAS ÁGEIS Monografia

Leia mais

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis Abstract. Resumo. 1. Introdução Vinicius A. C. de Abreu 1 Departamento de Ciência da Computação - DCC Universidade

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

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

O que é Domain-Driven Design

O que é Domain-Driven Design O que é Domain-Driven Design Desenvolvimento Software é mais freqüentemente aplicado a automatizar processos que existem no mundo real, ou fornecimento de soluções para problemas reais de negócios; Os

Leia mais

Ideal 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ê?

Ideal 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 mais

METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL

METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL METODOLOGIA LEAN DE DESENVOLVIMENTO DE SOFTWARE: UMA VISÃO GERAL Guilherme Vota Pereira guivotap@hotmail.com Prof. Pablo Schoeffel, Engenharia de Software Aplicada RESUMO: Este artigo irá efetuar uma abordagem

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

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

Arquitetura de Software

Arquitetura de Software Arquitetura de Software XP Lammers Equipe: Pedro Henrique Soares Andréa Negreiros Charles Mendes Custódio Neto Georgina Barreto Humberto Moura José Lindomar Luis Paulo Silva Tiago Bento Introdução A muito

Leia mais

Engenharia de Requisitos de Software. Visão Geral

Engenharia de Requisitos de Software. Visão Geral de Software Visão Geral João Sousa Apoio: Desenvolvimento de Sw - Como estamos? Segundo o Standish Group (CHAOS Report 2004): 34% dos projetos com sucesso. 15% dos projetos cancelados antes de completados.

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

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

ANÁLISE DA UTILIZAÇÃO DE PRÁTICAS DO EXTREME PROGRAMMING PARA A PREVENÇÃO DO DÉBITO TÉCNICO DE PROJETOS DE SOFTWARE

ANÁLISE DA UTILIZAÇÃO DE PRÁTICAS DO EXTREME PROGRAMMING PARA A PREVENÇÃO DO DÉBITO TÉCNICO DE PROJETOS DE SOFTWARE CENTRO UNIVERSITÁRIO UNA DIRETORIA DE EDUCAÇÃO CONTINUADA, PESQUISA E EXTENSÃO CURSO DE PÓS GRADUAÇAO EM ENGENHARAIA DE SOFTWARE CENTRADA EM MÉTODOS ÁGEIS ANÁLISE DA UTILIZAÇÃO DE PRÁTICAS DO EXTREME PROGRAMMING

Leia mais

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com)

SCRUM: 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 mais

Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF

Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF 1. Identificação de um problema a ser implementado 2. Análise

Leia mais

Introdução ao OpenUP (Open Unified Process)

Introdução ao OpenUP (Open Unified Process) Introdução ao OpenUP (Open Unified Process) Diferentes projetos têm diferentes necessidades de processos. Fatores típicos ditam as necessidades de um processo mais formal ou ágil, como o tamanho da equipe

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Processos de software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Processo Um processo é uma série de etapas envolvendo actividades, restrições e

Leia mais

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE Prof. Msc. Hélio Esperidião O QUE É UM ALGORITMO? É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada

Leia mais

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

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

Leia mais

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução.

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução. Introdução Métodos Ágeis em Engenharia de Software Thiago do Nascimento Ferreira Desenvolvimento de software é imprevisível e complicado; Empresas operam em ambiente global com mudanças rápidas; Reconhecer

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

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

Unidade II MODELAGEM DE PROCESSOS

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

Leia mais

Gerenciamento Ágil de Projetos de Desenvolvimento de Softwares na Secretaria de Estado da Casa Civil

Gerenciamento Ágil de Projetos de Desenvolvimento de Softwares na Secretaria de Estado da Casa Civil Gerenciamento Ágil de Projetos de Desenvolvimento de Softwares na Secretaria de Estado da Casa Civil Claryanne A. Guimarães 1, Daniel Dias S. Rosa 1 1 Departamento de Computação Universidade Federal de

Leia mais

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

MANIFESTO Á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 mais

Levantamento de requisitos no desenvolvimento ágil de software

Levantamento de requisitos no desenvolvimento ágil de software Levantamento de requisitos no desenvolvimento ágil de software Ricardo Augusto Ribeiro de Mendonça Coordenação de Pós-Graduação Lato Sensu Pontifícia Universidade Católica de Goiás (PUC Goiás) Goiânia

Leia mais

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr Engenharia de Software Apostila I >>> Introdução à ES - HEngholmJr Histórico de Revisões Data Versão Descrição Autor 12/08/2014 1.0 Criação da primeira versão HEngholmJr Agenda Introdução à Engenharia

Leia mais

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

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

Leia mais

5. Métodos ágeis de desenvolvimento de software

5. 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 mais

Ferramenta para Gerenciamento de Requisitos em Metodologias Ágeis

Ferramenta para Gerenciamento de Requisitos em Metodologias Ágeis Ferramenta para Gerenciamento de Requisitos em Metodologias Ágeis Eduardo dos Santos Gonçalves 1, Heitor Boeira dos Reis Filho 1 1 Universidade Luterana do Brasil (ULBRA) Av. Itacolomi, 3.600 Bairro São

Leia mais

Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum

Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum Patrícia Bastos Girardi, Sulimar Prado, Andreia Sampaio Resumo Este trabalho tem como objetivo prover uma

Leia mais

Scrum Guia Prático. Raphael Rayro Louback Saliba Certified Scrum Master. Os papéis, eventos, artefatos e as regras do Scrum. Solutions. www.domain.

Scrum Guia Prático. Raphael Rayro Louback Saliba Certified Scrum Master. Os papéis, eventos, artefatos e as regras do Scrum. Solutions. www.domain. Scrum Guia Prático Os papéis, eventos, artefatos e as regras do Scrum Solutions www.domain.com Raphael Rayro Louback Saliba Certified Scrum Master 1 Gráfico de Utilização de Funcionalidades Utilização

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

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

Leia mais

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

R AST R E A BI L ID A D E D E R E Q UISI T OS C O M USO D O E XTRE M E PROGRAMMING (XP)

R AST R E A BI L ID A D E D E R E Q UISI T OS C O M USO D O E XTRE M E PROGRAMMING (XP) UNI V E RSID A D E D O SU L D E SA N T A C A T A RIN A H U M B E R T O M A C H A D O F I L H O R AST R E A BI L ID A D E D E R E Q UISI T OS C O M USO D O E XTRE M E PROGRAMMING (XP) Palhoça 2010 H U M

Leia mais

FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas. OpenUp. Arquitetura de software

FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas. OpenUp. Arquitetura de software FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas OpenUp Arquitetura de software Fortaleza/2010 OpenUP Alguns anos atrás, vários funcionários da IBM começaram

Leia mais

Objetivos do Módulo 3

Objetivos do Módulo 3 Objetivos do Módulo 3 Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Conceitos do Scrum O que é um Sprint Decifrando um Product backlog Daily Scrum, Sprint Review, Retrospectiva

Leia mais

Orientações iniciais. FATTO Consultoria e Sistemas - www.fattocs.com

Orientações iniciais. FATTO Consultoria e Sistemas - www.fattocs.com 1 Orientações iniciais Dê preferência ao uso de uma conexão de banda larga O evento não fará uso do vídeo (webcam), somente slides e áudio Se necessário, ajuste o idioma da sala na barra de ferramentas

Leia mais

METODOLOGIA DE GERENCIAMENTO DE PROJETO DE SOFTWARE ORIENTADO A OBJETO COM PMBOK

METODOLOGIA DE GERENCIAMENTO DE PROJETO DE SOFTWARE ORIENTADO A OBJETO COM PMBOK V EPCC Encontro Internacional de Produção Científica Cesumar 23 a 26 de outubro de 2007 METODOLOGIA DE GERENCIAMENTO DE PROJETO DE SOFTWARE ORIENTADO A OBJETO COM PMBOK Cleber Lecheta Franchini 1 Resumo:

Leia mais

ENGENHARIA DE SOFTWARE: TESTES E QUALIDADE DE PRODUTO Prof. José Manuel de Sacadura Rocha

ENGENHARIA DE SOFTWARE: TESTES E QUALIDADE DE PRODUTO Prof. José Manuel de Sacadura Rocha ENGENHARIA DE SOFTWARE: TESTES E QUALIDADE DE PRODUTO Prof. José Manuel de Sacadura Rocha RESUMO Trata-se da qualidade no desenvolvimento do produto software principalmente com respeito à fase de testes

Leia mais

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto.

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto. SCRUM SCRUM É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto. Ken Schwaber e Jeff Sutherland Transparência A transparência garante que

Leia mais

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

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

Leia mais

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br Todos os direitos reservados e protegidos 2006 e 2010 Objetivo: Estudo de Caso Objetivo: Apresentar um Estudo de Caso para demonstrar como aplicar as práticas do SCRUM em projeto de desenvolvimento de

Leia mais