Baixe o app para aproveitar ainda mais
Prévia do material em texto
PREPARATÓRIO PARA Quadro Técnico 2020 Aula 05: Engenharia de Software fabiobond81@gmail.com Professor: Fábio Bonner O que é?? Combina filosofia com um conjunto de princípios de desenvolvimento. A filosofia defende a satisfação do cliente e a entrega de incremental prévio; equipes de projeto pequenas e altamente motivadas; métodos informais; artefato de engenharia de software mínimos e simplicidade no desenvolvimento geral É um conjunto de metodologias para desenvolvimento de um software, que visam minimizar os riscos em iterações (fases) de um projeto de software Desenvolvimento Ágil Manifesto Ágil Um manifesto é associado a um movimento político emergente: atacando a velha guarda e sugerindo uma mudança revolucionária Desenvolvimento Ágil Sobre o documento conhecido como “manifesto ágil”, é CORRETO dizer que A) Prega uma extensa lista de documentos, processos, atores, métodos e diagramas visando fornecer alta agilidade. B) Lista e cataloga a maioria dos métodos vigentes à época de sua criação, classificando cada um como “ágil” ou “burocrático”. C) Foi criado como base para descrever as principais ideias e práticas que eram comuns a muitos dos métodos considerados ágeis e que já existiam na época. D) Foi criado com base na ideia de que se tudo for muito bem controlado e documentado, os processos serão naturalmente ágeis. E) A partir dele, foram definidos o XP, o scrum, o cascata, o CMM e o RUP, cada um com suas características particulares. Exercícios Sobre o documento conhecido como “manifesto ágil”, é CORRETO dizer que A) Prega uma extensa lista de documentos, processos, atores, métodos e diagramas visando fornecer alta agilidade. B) Lista e cataloga a maioria dos métodos vigentes à época de sua criação, classificando cada um como “ágil” ou “burocrático”. C) Foi criado como base para descrever as principais ideias e práticas que eram comuns a muitos dos métodos considerados ágeis e que já existiam na época. D) Foi criado com base na ideia de que se tudo for muito bem controlado e documentado, os processos serão naturalmente ágeis. E) A partir dele, foram definidos o XP, o scrum, o cascata, o CMM e o RUP, cada um com suas características particulares. Exercícios Resposta C Modelagem ágil (light / enxuto) Se desenvolveram em um esforço para sanar fraquezas reais e perceptíveis da engenharia de software convencional. Não é indicado para todos os projetos, produtos, pessoas e situações Habilidade de reduzir os custos da mudança ao longo de todo o processo de software Agilidade Uma equipe ágil é aquela rápida e capaz de responder apropriadamente a mudanças. A agilidade não lhe dará licença para abreviar soluções. Desenvolvimento Ágil Considerando a caracterização de agilidade e processo de desenvolvimento ágil, segundo Pressman, analise as afirmativas a seguir. I. Um processo ágil de software deve ser incrementalmente adaptável. II. Um processo ágil de software permite que as pessoas e a equipe se moldem a ele com facilidade. III. Os conceitos ágeis são efetivos, pois diminuem a imprevisibilidade sistêmica ao enfatizar entregas em prazos curtos. Assinale: A) se somente a afirmativa I estiver correta. B) se somente a afirmativa II estiver correta. C) se somente a afirmativa III estiver correta. D) se somente as afirmativas I e II estiverem corretas. E) se todas as afirmativas estiverem corretas. Exercícios Considerando a caracterização de agilidade e processo de desenvolvimento ágil, segundo Pressman, analise as afirmativas a seguir. I. Um processo ágil de software deve ser incrementalmente adaptável. II. Um processo ágil de software permite que as pessoas e a equipe se moldem a ele com facilidade. III. Os conceitos ágeis são efetivos, pois diminuem a imprevisibilidade sistêmica ao enfatizar entregas em prazos curtos. Assinale: A) se somente a afirmativa I estiver correta. B) se somente a afirmativa II estiver correta. C) se somente a afirmativa III estiver correta. D) se somente as afirmativas I e II estiverem corretas. E) se todas as afirmativas estiverem corretas. Exercícios Resposta A Modelagem ágil Agilidade incentiva: Comunicação mais fácil Enfatiza a entrega rápida do software operacional Diminui a importância dos artefatos intermediários Assume o cliente como parte da equipe Reconhece planejamento de projeto flexível Pode ser aplicado a qualquer processo de software Desenvolvimento Ágil Modelagem ágil Um processo ágil reduz o custo das alterações porque o software é entregue de forma incremental e as alterações podem ser mais bem controladas dentro de incrementais Desenvolvimento Ágil Custo de mudança atenuado quando se associa entrega incremental com: Testes de unidade Programação aos pares Modelagem ágil Um processo ágil deve ser adaptável Um processo ágil de software deve se adaptar incrementalmente Os incrementos de software devem ser entregues em curtos períodos (2 a 3 semanas) de tempo, de modo que as adaptações acompanhem o mesmo ritmo das mudanças (imprevisibilidade). Desenvolvimento Ágil feedback do cliente Princípios da agilidade Satisfazer o cliente por meio de entrega adiantada e contínua Acolha bem os pedidos de alterações Entregue software em funcionamento frequentemente O pessoal comercial e os desenvolvedores devem trabalhar em conjunto Construa projetos em torno de indivíduos motivados Transmitir informações por meio de conversa aberta e de forma presencial Desenvolvimento Ágil QT - 2016 Exercícios QT - 2016 Exercícios Resposta B Princípios da agilidade Software em funcionamento é a principal medida de progresso. Desenvolvimento sustentável (ritmo constante) Atenção contínua para com a excelência técnica Simplicidade Equipes auto-organizáveis Autoavaliação da equipe para ver como tornar-se mais eficiente Agilidade X Engenharia de SW => Engenharia de SW ágil Desenvolvimento Ágil Desenvolvimento Ágil Fatores humanos Habilidade em problemas confusos Habilidade na Tomada de decisão Colaboração Foco Comum Competência Confiança mútua e respeito Auto Organização Talento inato em habilidades específicas Entregar SW no custo e no prazo Colaboração entre membros da equipe Autoridade e autonomia Lidar com ambiguidade e mudanças Todo maior que a soma das partes o Organiza para o trabalho a ser feito o Organiza o processo o Organiza o cronograma Processos se amolda às necessidades das pessoas e equipe QT - 2013 Exercícios QT - 2013 Exercícios Resposta A Desenvolvimento Ágil XP – Extreme programming É uma metodologia com foco em agilidade de equipes e qualidade de projetos, apoiada em valores como: Comunicação Simplicidade Feedback Respeito Coragem. Desenvolvimento Ágil XP – Extreme programming Desenvolvimento Ágil Comunicação Simplicidade Feedback Coragem Respeito Feedback contínuo Metáforas eficazes para comunicar conceitos importantes Comunicação cliente/desenvolvedor (informal) Projetar as necessidades imediatas Refabricado posteriormente Do SW Do Cliente Do Membro da equipe Adoção de certas práticas XP Ética nas relações com a equipe Equipes XP (eXtreme Programming) planejam utilizando histórias escritas em pequenos cartões. Essas histórias devem ter como objetivo: A) a modelagem de dados B) as métricas de software C) os requisitos não-funcionais D) os requisitos funcionais E) tanto os requisitos funcionais como os requisitos não-funcionais Exercícios Equipes XP (eXtreme Programming) planejam utilizandohistórias escritas em pequenos cartões. Essas histórias devem ter como objetivo: A) a modelagem de dados B) as métricas de software C) os requisitos não-funcionais D) os requisitos funcionais E) tanto os requisitos funcionais como os requisitos não-funcionais Exercícios Resposta D Em um desenvolvimento ágil de sistemas utilizando o XP, foram adotadas as seguintes ações: foi dita a verdade ao cliente acerca do progresso do projeto e acerca de suas estimativas, além de haverem sido realizadas adaptações quando mudanças importantes aconteceram no projeto. Essas ações estão coerentes com o valor do XP denominado: A) sinceridade. B) comunicação. C) coragem. D) feedback. E) respeito. Exercícios Em um desenvolvimento ágil de sistemas utilizando o XP, foram adotadas as seguintes ações: foi dita a verdade ao cliente acerca do progresso do projeto e acerca de suas estimativas, além de haverem sido realizadas adaptações quando mudanças importantes aconteceram no projeto. Essas ações estão coerentes com o valor do XP denominado: A) sinceridade. B) comunicação. C) coragem. D) feedback. E) respeito. Exercícios Resposta C XP – Extreme programming Programação aos pares Semana de 40 horas Reuniões em pé Equipes pequenas (até 10 integrantes) Processo XP (Emprega oo) 4 atividades: Planejamento Projeto Codificação Teste Desenvolvimento Ágil Processo XP Planejamento (Jogo de planejamento) Inicia com Ouvir Criação de histórias (Metáforas) Atribuição de custo ás histórias (semanas de desenvolvimento) A equipe XP ordena as histórias: Todas implementadas Maior valor Maior custo O XP prioriza as histórias para implementação, escolhendo aquelas que podem ser usadas imediatamente para oferecer apoio aos negócios. (Sommerville) Desenvolvimento Ágil Processo XP Planejamento A equipe pode fazer algum protótipo ou desenvolvimento-teste para entender o problema e a solução (SPIKE - Sommerville). Incremento sem nenhum tipo de programação Cálculo da velocidade do projeto para o 1º incremento Desenvolvimento Ágil Processo XP Planejamento A velocidade: Medida de produtividade da equipe Ajuda a estimar as entregas e cronograma Determinar se foi assumido compromisso exagerado Medida sutil de produtividade da equipe Desenvolvimento Ágil Processo XP Projeto Preserve a simplicidade Faça o definido Encoraja o uso de cartões CRC Continuamente modificado Desenvolvimento Ágil Processo XP Projeto Oferece um guia de implementação para uma história à medida que é escrita Problema difícil -> criação de protótipo (reduzir o risco) A elaboração do projeto ocorre tanto antes como depois de se ter iniciado a codificação Codificação Testes de unidades antes de iniciar a primeira linha de código Programação em dupla Integração dos códigos (integração contínua) Desenvolvimento Ágil Processo XP Testes Testes de unidades antes da codificação Capacidade de automatizar os testes de unidades Testes de regressão sempre que houver modificação Teste de regressão Após uma modificação implementada o teste checa se as mudanças não causaram algum problema no programa, gerando instabilidade ou erros. Desenvolvimento Ágil Processo XP Testes Testes de integração e validação diariamente Testes de aceitação mantém o foco na funcionalidade (a partir das histórias) Conceito de test-lag (Sommerville) Isso pode acontecer quando o desenvolvedor do sistema trabalha em um ritmo mais rápido que o testador (Tendência a ignorar os testes) Desenvolvimento Ágil O modelo de processo ágil Extreme Programming (XP) envolve um conjunto de regras e práticas que constam no contexto de diversas atividades metodológicas. A atividade metodológica na qual se estabelece um guia de implementação para uma história de usuário à medida que é escrita, em que se encoraja o uso de cartões CRC como um mecanismo eficaz para pensar sobre o software em um contexto orientado a objetos é conhecida como A) Análise. B) Projeto. C) Planejamento. D) Codificação. E) Teste. Exercícios O modelo de processo ágil Extreme Programming (XP) envolve um conjunto de regras e práticas que constam no contexto de diversas atividades metodológicas. A atividade metodológica na qual se estabelece um guia de implementação para uma história de usuário à medida que é escrita, em que se encoraja o uso de cartões CRC como um mecanismo eficaz para pensar sobre o software em um contexto orientado a objetos é conhecida como A) Análise. B) Projeto. C) Planejamento. D) Codificação. E) Teste. Exercícios Resposta B Desenvolvimento Ágil Industrial XP A IXP refina a XP e visa o processo ágil especificamente para uso em grandes organizações. 6 novas práticas: Avaliação imediata Comunidade de projeto Mapeamento de projeto Ger. Orientado a testes Retrospectivas Aprendizagem contínua Desenvolvimento Ágil Outros modelos ágeis: Desenvolvimento de software adaptativo (Adaptive Software Development, ASD) Scrum Método de desenvolvimento de sistemas dinâmicos (Dynamic Systems Development Method, DSDM) Crystal Desenvolvimento dirigido a Funcionalidades (Feature Drive Development, FDD) Desenvolvimento de software enxuto (Lean Software Development, LSD) Modelagem ágil (Agile Modeling, AM) Processo unificado ágil (Agile Unifed Process, AUP) Desenvolvimento Ágil Desenvolvimento Ágil Desenvolvimento de SW adaptativo Desenvolvimento de SW adaptativo As bases filosóficas do DAS se concentram na colaboração humana e na auto-organização das equipes (aprendizado) Ciclo de vida de 3 fases Especulação Colaboração Aprendizagem Baseando-se nas informações obtidas ao se completar o primeiro ciclo, o plano é revisto e ajustado de modo que o trabalho planejado melhor se ajuste à realidade na qual a equipe ASD está trabalhando Desenvolvimento Ágil Desenvolvimento de SW adaptativo Especulação O projeto é iniciado e conduzido o planejamento de ciclos adaptáveis (Missão do cliente, restrições de projeto, requisitos iniciais, etc.) Sofrerá mudanças Colaboração As pessoas motivadas usam a colaboração de uma forma que multiplique seus talentos e produções criativas Envolve comunicação e trabalho em equipe, mas também enfatiza o individualismo Desenvolvimento Ágil Desenvolvimento de SW adaptativo Ciclo de vida de 3 fases Aprendizado - desenvolver os componentes que fazem parte de um ciclo adaptável Ênfase no aprendizado Tipos de aprendizagem Grupos focados Revisões técnicas Autópsia de projetos Desenvolvimento Ágil Desenvolvimento de SW adaptativo A ênfase global está na dinâmica das equipes auto-organizadas, na colaboração interpessoal e na aprendizagem individual e da equipe que levam as equipes de projeto de software a uma probabilidade muito maior de sucesso. Desenvolvimento Ágil Desenvolvimento Ágil Scrum Orienta as atividades de desenvolvimento dentro de um processo Atividades: Requisitos, Análise, Projeto, Evolução, Entrega Sprint – Uma passagem pelas fases do scrum. Iteração de desenvolvimento do produto com duração fixa Provou ser eficaz para projetos com prazos de entrega apertados, requisitos mutáveis e críticos de negócio O trabalho realizado dentro de um sprint é adaptado ao problema em questão e definido, e muitas vezes modificado em tempo real, pela equipe Scrum Desenvolvimento Ágil Scrum Ações de desenvolvimento: Registro pendente de trabalho (backlog) uma lista com prioridades dos requisitos ou funcionalidades do projeto que fornecem valor comercial ao cliente Urgências (sprints) Unidades de trabalho solicitadas para atingir um requisito estabelecido no registro detrabalho (backlog) Precisa ser ajustado dentro de um prazo já fechado (tipicamente 30 dias). Alterações não são introduzidas durante a execução da Sprint Desenvolvimento Ágil Sobre o modelo de desenvolvimento de software Scrum, analise as afirmativas. I - As funcionalidades a serem implementadas em um projeto de desenvolvimento de software são registradas e organizadas em uma lista denominada Sprint Backlog. II - Os papéis previstos no Scrum são: Time de Desenvolvimento, Product Owner e o Scrum Master. III - Sprint é o nome dado às reuniões que ocorrem diariamente durante o desenvolvimento do software. Está correto o que se afirma em A) I, apenas. B) II e III, apenas. C) II, apenas. D) I e III, apenas. Exercícios Sobre o modelo de desenvolvimento de software Scrum, analise as afirmativas. I - As funcionalidades a serem implementadas em um projeto de desenvolvimento de software são registradas e organizadas em uma lista denominada Sprint Backlog. II - Os papéis previstos no Scrum são: Time de Desenvolvimento, Product Owner e o Scrum Master. III - Sprint é o nome dado às reuniões que ocorrem diariamente durante o desenvolvimento do software. Está correto o que se afirma em A) I, apenas. B) II e III, apenas. C) II, apenas. D) I e III, apenas. Exercícios Resposta C Scrum Papéis: Product owner Responsável pelo valor agregado do processo Scrum Master Implementa o método Time scrum Grupo de desenvolvedores Desenvolvimento Ágil Scrum Desenvolvimento Ágil QT - 2012 Exercícios QT - 2012 Exercícios Resposta D Scrum Artefatos: Burndown charts – mostram graficamente a quantidade de trabalho ao longo do tempo Desenvolvimento Ágil No desenvolvimento ágil de sistemas utilizando o Scrum, um integrante da equipe é encarregado de comunicar a visão, os objetivos e os itens do product backlog para o time de desenvolvimento, além de encontrar técnicas para o gerenciamento efetivo do product backlog. Esse é o: A) Product Owner, sob orientação do Scrum Master. B) Próprio time de desenvolvimento, que realiza essas definições de forma auto-organizada. C) Scrum Master. D) Team Leader. E) Product Owner, diretamente. Exercícios No desenvolvimento ágil de sistemas utilizando o Scrum, um integrante da equipe é encarregado de comunicar a visão, os objetivos e os itens do product backlog para o time de desenvolvimento, além de encontrar técnicas para o gerenciamento efetivo do product backlog. Esse é o: A) Product Owner, sob orientação do Scrum Master. B) Próprio time de desenvolvimento, que realiza essas definições de forma auto-organizada. C) Scrum Master. D) Team Leader. E) Product Owner, diretamente. Exercícios Resposta C Scrum Reuniões Scrum - 15 min Reuniões diárias (em pé) Reunião de revisão da sprint – 4 horas Reunião de retrospectiva da sprint – 3 horas Toda a equipe pode tomar decisões Desenvolvimento Ágil Desenvolvimento Ágil Método de desenvolvimento de Sistemas dinâmicos (DSDM) Oferece uma metodologia para construir e manter sistemas que atendem restrições de prazo apertado através do uso da prototipagem incremental em um ambiente de projeto controlado 80% de uma aplicação pode ser entregue em 20% do tempo Somente o trabalho suficiente é requisitado para cada incremento Ciclo de vida: Estudo de viabilidade Estudo de negócio Iteração dos modelos funcionais Iteração de projeto e desenvolvimento Implementação Desenvolvimento Ágil No método de desenvolvimento de sistemas ágil denominado Método de Desenvolvimento de Sistemas Dinâmicos, ou DSDM, o ciclo interativo de Iteração de Modelos Funcionais é aquele no qual se: A) Alteram as linhas de comunicação cliente-equipe, com a confecção de uma lista dos aspectos que não estejam bem definidos. B) Constrói uma lista de funcionalidades principais e em cada uma faz-se um projeto independente, que será juntado ao final. C) Passa por um processo de engenharia para capacitar os módulos desenvolvidos, a fim de obter-se um valor operacional. D) Realizam diversas alterações incrementais nos módulos para produção da última versão do sistema. E) Produzem protótipos incrementais que servem para demonstrar as funcionalidades do sistema. Exercícios No método de desenvolvimento de sistemas ágil denominado Método de Desenvolvimento de Sistemas Dinâmicos, ou DSDM, o ciclo interativo de Iteração de Modelos Funcionais é aquele no qual se: A) Alteram as linhas de comunicação cliente-equipe, com a confecção de uma lista dos aspectos que não estejam bem definidos. B) Constrói uma lista de funcionalidades principais e em cada uma faz-se um projeto independente, que será juntado ao final. C) Passa por um processo de engenharia para capacitar os módulos desenvolvidos, a fim de obter-se um valor operacional. D) Realizam diversas alterações incrementais nos módulos para produção da última versão do sistema. E) Produzem protótipos incrementais que servem para demonstrar as funcionalidades do sistema. Exercícios Resposta E Método de desenvolvimento de Sistemas dinâmicos (DSDM) Pode ser combinado com o XP e o DAS Desenvolvimento Ágil Atividades adicionais Ciclo Iterativo Em metodologias de desenvolvimento de sistemas ágeis, existe uma em especial que tem seus esforços focados na conclusão parcial da solução completa do sistema, mesmo que isso pareça contraditório para uma metodologia que pretende resolver o problema de desenvolvimento de sistemas. O texto refere-se a: A) SCRUM. B) FDD C) MER (Modelo Entidade Relacionamento). D) Engenharia de Requisitos. E) DSDM (Dynamic Systems Development Methodology). Exercícios Em metodologias de desenvolvimento de sistemas ágeis, existe uma em especial que tem seus esforços focados na conclusão parcial da solução completa do sistema, mesmo que isso pareça contraditório para uma metodologia que pretende resolver o problema de desenvolvimento de sistemas. O texto refere-se a: A) SCRUM. B) FDD C) MER (Modelo Entidade Relacionamento). D) Engenharia de Requisitos. E) DSDM (Dynamic Systems Development Methodology). Exercícios Resposta E Desenvolvimento Ágil Crystal Representa uma família de métodos ágeis Prioriza a adaptabilidade Conjunto de exemplos de processos ágeis que provaram ser efetivos para diferentes tipos de projetos Desenvolvimento Ágil Desenvolvimento Ágil Desenvolvimento dirigido a Funcionalidades (FDD) Funcionalidade “é uma função valorizada pelo cliente passível de ser implementada em duas semanas ou menos” Modelado para Orientação a Objetos Projetos moderados ou maiores Enfatiza colaboração entre equipes Decompõe o problema em funcionalidades seguido de integração dos incrementos de SW Desenvolvimento Ágil Pelas características apresentadas na figura, este processo de software A) é uma metodologia ágil para grandes equipes que desenvolvem software baseado em requisitos precisos, que pouco se modificam, e na qual o cliente não atua diretamente. B) é adequado para projetos nos quais as versões devem ser entregues a cada mês, ou no máximo a cada seis meses, aumentando a possibilidade de feedback rápido do cliente. C) mantém as funcionalidades a serem implementadas em uma lista denominada Product Backlog ou Pacote de Trabalho. Na reunião de planejamento o Product Owner prioriza os itens dos Pacotes de Trabalho. D) possui 2 fases: a fase de concepção e planejamento é executada uma vez para todo o projeto e a fase de construção é realizada para cada feature. E) é conhecido como TDD − Test Driven Development e sua principal característica é que o código é comunitário, não pertencendo a um único desenvolvedor. Exercícios Pelas características apresentadas na figura, este processode software A) é uma metodologia ágil para grandes equipes que desenvolvem software baseado em requisitos precisos, que pouco se modificam, e na qual o cliente não atua diretamente. B) é adequado para projetos nos quais as versões devem ser entregues a cada mês, ou no máximo a cada seis meses, aumentando a possibilidade de feedback rápido do cliente. C) mantém as funcionalidades a serem implementadas em uma lista denominada Product Backlog ou Pacote de Trabalho. Na reunião de planejamento o Product Owner prioriza os itens dos Pacotes de Trabalho. D) possui 2 fases: a fase de concepção e planejamento é executada uma vez para todo o projeto e a fase de construção é realizada para cada feature. E) é conhecido como TDD − Test Driven Development e sua principal característica é que o código é comunitário, não pertencendo a um único desenvolvedor. Exercícios Resposta D Desenvolvimento dirigido a Funcionalidades (FDD) Comunicação de detalhes técnicos usando métodos verbais, texto e gráficos Enfatiza a garantia de qualidade de software Oferece maior ênfase às diretrizes e técnicas de gerenciamento de projeto do que muitos outros métodos ágeis Desenvolvimento Ágil Define 5 atividades metodológicas Desenvolvimento dirigido a Funcionalidades (FDD) Define seis marcos durante o projeto e a implementação de uma funcionalidade: Desenrolar (walkthroughs) do projeto Projeto Inspeção de projeto Codificação Inspeção de código Progressão para construção/desenvolvimento Desenvolvimento Ágil As características listadas referem-se, preferencialmente, a qual modelo de desenvolvimento? • Resultados úteis a cada duas semanas ou menos. • Blocos pequenos de funcionalidade valorizada pelo cliente, chamados "Features". • Planejamento detalhado e guia para medição. • Rastreabilidade e relatórios com maior precisão. • Monitoramento detalhado, com resumos para clientes e gerentes, em termos de negócio. • Fornece uma forma de saber, dentro dos primeiros 10% de um projeto, se o plano e a estimativa são sólidos. A) SCRUM. B) XP. C) FDD. D) DAS. E) DSDM. Exercícios As características listadas referem-se, preferencialmente, a qual modelo de desenvolvimento? • Resultados úteis a cada duas semanas ou menos. • Blocos pequenos de funcionalidade valorizada pelo cliente, chamados "Features". • Planejamento detalhado e guia para medição. • Rastreabilidade e relatórios com maior precisão. • Monitoramento detalhado, com resumos para clientes e gerentes, em termos de negócio. • Fornece uma forma de saber, dentro dos primeiros 10% de um projeto, se o plano e a estimativa são sólidos. A) SCRUM. B) XP. C) FDD. D) DAS. E) DSDM. Exercícios Resposta C Desenvolvimento de SW enxuto (LSD) Adaptou os princípios da fabricação enxuta para o mundo da engenharia de software. Princípios enxutos: Eliminar desperdício Incorporar qualidade Criar conhecimento Adiar compromissos Entregar rápido Respeitar as pessoas Otimizar o todo. Desenvolvimento Ágil Modelagem ágil Possui as mesmas características dos modelos citadas Alguns princípios essenciais e suplementares: Modele com objetivo – tenha objetivos antes de criar seus modelos Use modelos múltiplos - use a quantidade de modelos necessária para demonstrar a correta informação Viajar leve – remova modelos excedentes Conteúdo é mais importante do que a representação – o modelo deve transmitir a informação para sua audiência pretendida Tenha conhecimento do modelo e domínio de ferramentas que for utilizar – conheça os pontos fortes e fracos de cada ferramenta Adapte localmente – adaptada ás necessidades ágil Desenvolvimento Ágil Desenvolvimento Ágil Processo unificado ágil (AUP) Filosofia de “Serial para o que é amplo” e “iterativa para o que é particular” Fases: Iniciação Elaboração Construção Transição Desenvolvimento Ágil SERIAL ITERATIVO Processo unificado ágil (AUP) Dentro de cada atividade, a equipe itera ou se repete para alcançar a agilidade e para entregar incrementos de software tão rapidamente quanto possível. Atividades (disciplinas do RUP resumidas): Modelagem Implementação Aplicação Configuração e gere. De projeto Gerenciamento do ambiente Desenvolvimento Ágil Desenvolvimento Ágil RUP Procedimento disciplinado a respeito de como atribuir tarefas e responsabilidades em uma empresa de software Processo iterativo e incremental Centrado na arquitetura Orientado a casos de uso Processo configurável Controle de qualidade e o gerenciamento de riscos, contínuos Desenvolvimento Ágil RUP Desenvolvimento Ágil RUP Desenvolvimento Ágil RUP Desenvolvimento Ágil RUP Uma iteração é um ciclo completo de desenvolvimento, resultando em uma versão (interna ou externa) de um produto executável Desenvolvimento Ágil RUP Desenvolvimento Ágil RUP Concepção (iniciação) Estabelece a visão para o sistema e delimita o escopo do projeto. Marco - Estabelecer os objetivos do ciclo de vida Elaboração Descrição da maioria dos requisitos Executar casos de uso significativos Marco – arquitetura consolidada Desenvolvimento Ágil RUP Construção Execução da implementação e teste Marco – capacidade operacional Transição Iniciada com a versão beta do sistema Operação em paralelo Determina se deverá iniciar outro ciclo de desenvolvimento Marco – software funcionando Desenvolvimento Ágil RUP Ciclo de desenvolvimento A passagem pelas quatro principais fases e resulta na geração de um software O RUP é composto por nove disciplinas. Modelagem de negócio - Descreve a estrutura e a dinâmica da empresa. Requisitos - Descreve os requisitos usando várias abordagens. Análise e projeto - Descreve as Várias visões da arquitetura. Implementação - Leva em consideração o desenvolvimento do software, o teste da unidade e a integração. Desenvolvimento Ágil RUP O RUP é composto por nove disciplinas: Teste - Descreve casos de teste, procedimentos e medidas para acompanhamento de erros Implantação - Abrange listas, notas de versão, treinamento e outros aspectos da entrega de um aplicativo Gerenciamento da configuração - Controla as modificações e mantém a integridade dos artefatos do projeto e das atividades de gerenciamento Gerenciamento de projeto - Descreve várias estratégias para o trabalho com um processo iterativo. Ambiente - Abrange a infra-estrutura necessária para o desenvolvimento do sistema. Desenvolvimento Ágil RUP Artefatos Cada atividade do RUP tem artefatos associados, ou exigidos como uma entrada ou gerados como uma saída Desenvolvimento Ágil RUP Disciplina Fluxo de trabalho Work flow Desenvolvimento Ágil QUADRO TÉCNICO EXERCÍCIOS DE FIXAÇÃO QT - 2004 Exercícios QT - 2004 Exercícios Resposta C QT - 2009 Exercícios QT - 2009 Exercícios Resposta B QT - 2010 Exercícios QT - 2010 Exercícios Resposta E Em relação às metodologias ágeis, analise as afirmativas a seguir: I. No Scrum, se um ou mais aspectos de um processo desviou para fora dos limites aceitáveis, e é percebido que o produto resultado será inaceitável, o processo ou o material sendo produzido deve ser registrado para ser ajustado na próxima iteração. II. Desenvolvimento Guiado por Funcionalidades (FDD) é uma metodologia ágil que se destaca pelo fato de entregar, mensalmente, blocos bem pequenos de funcionalidades valorizadas pelo cliente. No entanto, o monitoramento dentro do projeto não é detalhado. III. O desenvolvimento orientado a testes é uma prática recomendada pela metodologia de desenvolvimento de softwareXP. Escrever os testes antes de construir o sistema torna mais fácil entender como o código deve ser programado. Está correto o que se afirma em: A) somente I; B) somente II; C) somente III; D) somente I e III; E) I, II e III. Exercícios Em relação às metodologias ágeis, analise as afirmativas a seguir: I. No Scrum, se um ou mais aspectos de um processo desviou para fora dos limites aceitáveis, e é percebido que o produto resultado será inaceitável, o processo ou o material sendo produzido deve ser registrado para ser ajustado na próxima iteração. II. Desenvolvimento Guiado por Funcionalidades (FDD) é uma metodologia ágil que se destaca pelo fato de entregar, mensalmente, blocos bem pequenos de funcionalidades valorizadas pelo cliente. No entanto, o monitoramento dentro do projeto não é detalhado. III. O desenvolvimento orientado a testes é uma prática recomendada pela metodologia de desenvolvimento de software XP. Escrever os testes antes de construir o sistema torna mais fácil entender como o código deve ser programado. Está correto o que se afirma em: A) somente I; B) somente II; C) somente III; D) somente I e III; E) I, II e III. Exercícios Resposta D Final de Desenvolvimento Ágil
Compartilhar