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 o uso do XP? Por quê? Sim. O desenvolvimento do XP é iterativo, ou seja, e feito em diversas iterações. Além disto, o processo recomenda a presença constante do cliente, desta forma a descoberta de detalhes de um requisito é constante e como o software é feito em versões é possível inserir as mudanças sem muito prejuízo. Quais são os principais valores propostos pelo XP? Comunicação, simplicidade, feedback e coragem. Cite os principais princípios que norteiam o desenvolvimento de um software utilizando XP? FeedBack rápido: ou seja, os módulos tem que ser rapidamente projetados e implementados para serem apresentados ao cliente. Presumir simplicidade: o software tem que ser simples, ter apenas o que é necessário. Mudanças incrementais: as mudanças que se mostrarem necessárias devem ser inseridas em versões futuras do software. Abraçar Mudança: mudanças não são recusadas, tem que ser feitas, desta forma precisamos desenvolver de modo que facilite inserir tais mudanças. Trabalho de Qualidade: atender as necessidades do usuário e entregar um software com uma taxa adequada de erros lógicos. Boas práticas propostas: Programação em Pares (Pair Programming): Duas pessoas são responsáveis pelo papel de uma. Enquanto um programador esta desenvolvendo o outro analisa o problema e identifica possíveis falhas que possa surgir. Geralmente um é iniciante e outro experiente. Desenvolvimento Orientado a Testes (Test Driven Development): Recomenda pensar nos possíveis problemas e criar teste para os
mesmo, após isto a codificação é inicializada. Garante a qualidade do projeto, substitui em partes a Análise e projeto. Reuniões em pé (Stand-up Meeting): Reuniões rápidas, as pessoas se encontram abordam tarefas realizadas e definem próximas tarefas. Este processo todo é feito em pé, como se fosse um momento de descontração. Posse Coletiva (Collective Ownership): O código desenvolvido não tem dono, constantemente é trocado entre as equipes. O código desenvolvido por minha equipe esta semana poderá ser mantido e evoluído por outra equipe na próxima semana. Integração Contínua (Continuous Integration): Quando um novo modulo é finalizado a sua instalação e integração deve ser imediata. Pequenas Versões (Small Releases): A cada semana um conjunto restrito de funcionalidades é feita, pois desta forma o cliente, sempre terá contado com uma parte usável do sistema. Jogo de Planejamento (Planning Game): O desenvolvimento é feito em iterações semanais. No inicio da semana, Desenvolvedores e cliente reúnem-se para priorizar as funcionalidades. Metáfora (Metaphor): Criar um vocabulário próprio e adequado para a comunicação entre cliente e desenvolvedor. Um desenvolvedor não tem capacidade de conhecer todas as nomenclaturas de todas as áreas que ele desenvolver. Desta forma para facilitar a memorização utiliza-se metáforas. Projeto Simples (Simple Design): Desenvolver apenas o necessário no momento, caso a única informação necessária sobre o livro seja o seu nome em um primeiro momento considere apenas ela. Time Coeso (Whole Team): Criar afinidade e comprometimento entre os clientes e a equipe de desenvolvimento. Testes de Aceitação (Customer Tests): O cliente ajuda a projetar os testes do sistema, pois ele tem uma visão mais detalhada do sistema. Ritmo Sustentável (Sustainable Pace): Respeitar as limitações dos desenvolvedores, buscar um ritmo de trabalho saudável (40 horas/semana, 8 horas/dia), sem horas extras. Só devem ser permitidas quando forem essenciais para manter a produtividade da equipe. Padrões de Codificação (Coding Standards): Padrões bem definidos de codificação, todos programam do mesmo modo, sem vícios, no mesmo formato. Desta forma, o código irá aparentar ter sido desenvolvido pela mesma pessoa.
RUP: Foi uma adaptação de qual outro processo? Do processo unificado(up), o RUP foi criado pela Rational, adaptando as suas necessidades. A Rational foi comprada pela IBM, atualmente a IBM chama o processo como IRUP. O RUP recomenda a utilização de UML e Orientação a Objeto? uso do RUP. Sim, estas duas tecnologias são essenciais para o bom Ele é recomendado para grandes projetos? Sim, grandes projetos permitem uma estrutura na qual dá para utilizar todo o potencial do RUP. E para pequenos? Completamente não, ele pode ser adaptado as estas outras situações. O processo é caro, desta forma para ser viável é necessária esta adaptação. Quais boas práticas de desenvolvimento este modelo propões? Desenvolvimento iterativo Gerência de requisitos Arquitetura em componentes Modelagem visual do software Verificação da qualidade de software Controle de alterações de requisitos Expliquem a figura abaixo?
O RUP divide o processo de desenvolvimento em 4 fases básicas, cada uma destas fases podem ter várias subfases(iterações): Iniciação: Nesta fase o foco e definir com uma precisão o escopo do projeto, planejando todo o restante do projeto. Ocorre em apenas uma iteração Elaboração: Nesta fase é feito a análise e o projeto do software, detalhando as funcionalidades e eliminando possíveis problemas. Podem ocorrer várias iterações, mas geralmente duas é suficiente. Construção: Nesta fase o projeto é convertido em produto. Existem diversas iterações, onde em cada iteração novas funcionalidades são implementadas. Transição: Fase de implantação e configuração do software. Cada uma destas fases apresenta diversas disciplinas(tarefas), que terão +ou- importância dependendo da fase. - Modelagem do negocio, acontece em quase todas as fases, entretanto é essencial na concepção, pois permite definir como é o negocio onde o software estará inserido. - Requisito: Identificação das necessidades do sistema, definição de quais requisitos são essencial, definição de prioridades entre eles. Ocorre muito na fase de concepção e Elaboração - Análise e projeto: as necessidades são analisadas, detalhando como elas são e projetando soluções para elas. Ocorre principalmente na elaboração. - Implementação: Ocorre principalmente na construção, onde esta atividade transforma o projeto em código.
- Teste: valida todo o projeto(projeto e código), ocorre em todo o período, um pouco mais ao fim da construção. - Implantação: Ocorre nas ultimas iterações da construção e na Transição. Atividades de gerencia(projeto, configuração e ambiente) ocorrem em todas as fases. SCRUM O Scrum pode ser utilizado em qualquer engenharia? Sim, ele foi criado para a indústria automobilística. O Scrum pode ser utilizado em qualquer engenharia? Sim, ele foi criado para a indústria automobilística. O que são os conceitos sprint e backlog? São, respectivamente, as interações necessárias e os requisitos que devem ser atendidos. Existe o conceito de reuniões em Pé? Sim, é recomendadas reuniões rápidas e eficientes. Deve existir algum chefe para cada equipe? Não, elas devem ser auto-organizadas, entretanto aparece o papel de scrum máster, que seria um tipo de tutor para resolver problemas que surjam. Deve existir algum chefe para cada equipe? Não, elas devem ser auto-organizadas, entretanto aparece o papel de scrum máster, que seria um tipo de tutor para resolver problemas que surjam. Cite algumas características? Cliente sempre presente.
Entregas rápidas Não ignorar problemas e procurar soluções sem ficar culpando. Propõem desenvolver soluções viáveis em 4 semanas. Qual a principal diferença entre Xp e Scrum? Na verdade são complementares, onde o Scrum aprofunda nas atividades de gerencia de projeto e o XP define melhor o processo de desenvolvimento.