Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Apresentação ASD - Engenharia de Software

No description
by

Sabrina Cabral

on 26 August 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Apresentação ASD - Engenharia de Software

DAS - Desenvolvimento Adaptativo de Software
Highsmith propõe alterar o ciclo de desenvolvimento básico, que é planejar, projetar e construir, trocando tais fases por especular, colaborar e aprender. Essas três fases não precisam ser sequenciais e podem ocorrer simultaneamente.
Por fim, devem ser feitas revisões da qualidade pela gerência, avaliando o que foi entregue pelos desenvolvedores, observando a qualidade sob a perspectiva do cliente, sob a perspectiva técnica, o funcionamento do time de desenvolvimento e as práticas empregadas e o status do projeto.
O foco é entregar aos poucos várias versões incrementais do sistema, visando a cada análise do cliente obter um feedback que auxilie os desenvolvedores na próxima etapa. Jim Highsmith defende que quando os riscos do projeto ficam expostos (por não haver uma sequência predeterminada de atividades), os processos e a organização do trabalho ficam mais flexíveis, fazendo com que haja um impacto menor quando ocorrerem alterações.
Vantagens
- Tem resultados rápidos;
- Pode ser aplicado em projetos que precisem de avaliações constantes do cliente;
- O planejamento pode ser alterado em qualquer fase do projeto, caso seja necessário alguma mudança.
Por TerraSkill do GUJ: O que muda de uma metodologia ágil para uma "predeterminada" é que, no caso de uma predeterminada, por exemplo, o software é todo planejado de ponta a ponta antes de ser digitada qualquer linha de código. Já numa metodologia ágil, os ciclos de desenvolvimento tendem a ser mais curtos e a entrega das funcionalidades do projeto é feita em partes.
Por LEVY SIQUEIRA:
Para que o desenvolvimento seja realmente adaptativo é necessário que esse novo ciclo tenha as seguintes características:
- Enfoque na missão: fazer com que a equipe tenha um objetivo definido, permitindo que sejam feitas decisões com maior embasamento;
- Baseado em características: o objetivo é entregar resultados mais palpáveis ao cliente, através de características implementadas no sistema – ao invés de outras formas de produtos (como, por exemplo, documentação);
- Iterativo: a construção deve focar na evolução do produto;
- Períodos fechados (time-boxes): a equipe deve ter um objetivo definido em um determinado período, priorizando e decidindo para que seja entregue o combinado no prazo adequado;
- Dirigido a riscos: é necessário analisar e avaliar os riscos do projeto continuamente, assim como em um desenvolvimento em espiral.
- Tolerante a mudanças: incorporar as mudanças que forem aparecendo durante o
projeto, para que o sistema tenha maior valor ao cliente.
A ênfase do DAS em equipes auto-organizadas, na colaboração interpessoal e no aprendizado produz equipes de desenvolvimento com maior probabilidade de sucesso.
O Desenvolvimento Adaptativo de Software (Adaptive Software Development -ASD) foi proposto por Jim Highsmith em 2000 como uma técnica para construção de softwares complexos.

A base filosófica do DAS concentra-se na colaboração e auto-organização da equipe de desenvolvimento.
Highsmith defende que o planejamento de um projeto é um paradoxo/incoerência no ambiente adaptativo, pois os softwares são geralmente imprevisíveis. Neste modelo, o processo de desenvolvimento é um sistema complexo composto de agentes (desenvolvedores e clientes), ambientes (organizacional, tecnológico e de processo) e saídas emergentes (produtos sendo desenvolvidos).
O DAS:
- Requer velocidade, adaptação a mudanças e comprometimento com o projeto;
- Enfatiza o relacionamento com o cliente durante o projeto;
- Defende ideia de sempre haver algo que possa ser melhorado.

Especulação: durante esta etapa, o projeto é iniciado. O foco nesta etapa seria explorar e experimentar, sem desconsiderar o planejamento por completo, mas assumindo sua provável falta de precisão.
Fase 1
O planejamento do ciclo adaptativo usa informações de iniciação do projeto para definir o conjunto de ciclos de versão que serão necessários para o projeto. Também é estimado o tamanho, escopo e períodos de implementação para todo o projeto. A maioria dessas atividades ocorrem junto ao cliente.
Colaboração: Nesta fase é feita a implementação do sistema em paralelo. A equipe (motivada) trabalha de modo que multiplique seus talentos e resultados criativos. A maioria dos métodos ágeis defende o trabalho colaborativo, mas a colaboração não é apenas comunicação; ela é, acima de tudo, uma questão de confiança, para que as pessoas de uma equipe possam criticar e ajudar sem ressentimento, trabalhar mais do que costumam, ter o conjunto de habilidades para contribuir com o trabalho, comunicar problemas ou preocupações de modo que conduza a uma solução.
Fase 2
Os desenvolvedores devem tentar promover ao máximo a comunicação e colaboração entre o time, por exemplo realizando discussões em lousas ou em conversas pessoais e até aplicar práticas como a programação em pares e execução do XP. Essa forma de trabalho é necessária devido à grande quantidade de informação que deve ser coletada e trabalhada para um sistema complexo devido à turbulência do ambiente. Nesta fase o gerente deve estimular a comunicação entre os participantes da equipe.
Aprendizado: Uma característica contínua e importante desta forma de desenvolvimento, o aprendizado da equipe que trabalha através do DAS ocorre da seguinte forma:
Fase 3
- Foco no grupo: o cliente fornece um feedback sobre a versão do software entregue, indicando se o produto está ou não satisfazendo as necessidades do negócio;
- Revisões técnicas formais: os membros da equipe DAS revisam o código do software que desenvolvido, aperfeiçoando a qualidade e aprendendo à medida que prosseguem;
- Pós-conclusão: a equipe DAS torna-se introspectiva, cuidando do seu próprio desempenho e processo (com a intenção de aprender e depois aperfeiçoar a sua abordagem).
Esta fase ajuda a aumentar o nível de conhecimento dos desenvolvedores de software. Em um ambiente adaptativo, a fase de aprendizado é desafiadora para os desenvolvedores e também para clientes, pois os leva a examinar suas premissas e a utilizar os resultados de cada ciclo de desenvolvimento para adaptar o ciclo seguinte.
Além dessas três fases iterativas, o modelo propõe uma fase inicial e uma final, que ocorrer uma única vez no projeto:
- Inicialização de projeto, que é a preparação para iniciar os ciclos. Deve ocorrer com um workshop com duração dependente do tamanho do projeto, sendo geralmente poucos dias, onde a equipe estabelece missões e objetivos do projeto. Também serão levantados os requisitos iniciais, restrições e estimativas de esforço.
- Garantia final de qualidade e disponibilização, que inclui os testes finais e a implementação do produto.

O DAS é baseado em ciclos iterativos de 4 a 8 semanas e é orientado a desenvolver primeiramente os elementos de maior risco. Esta metodologia assume que os planos e designs devem mudar à medida que o desenvolvimento avança. Por isso, com esse novo ciclo de desenvolvimento, para se adequar facilmente ao ambiente turbulento de desenvolvimento de software, seria necessário trocar a fase de “planejamento” por algo mais factível (realizável) ao ambiente de incerteza: o “especular”.

No planejamento tradicional, a adaptação é vista como um desvio, causado por um erro que deve ser corrigido. Já em um ambiente adaptativo, desvios nos guiam à solução correta. No DAS os desvios são necessários para a obtenção de um bom resultado. Nesta forma de desenvolvimento são necessárias pessoas dispostas a colaborar de forma rica e que saibam lidar com a incerteza, visto que o planejamento exato só funciona quando se trata de algo imutável e com poucas restrições/variáveis.
Quando um projeto tem várias incertezas e é suscetível a mudanças, o planejamento influenciará negativamente nos resultados e prazos previstos. O enfoque da gerência não está em direcionar os desenvolvedores a respeito do que fazer, mas sim em estimular a comunicação, auxiliando-os a criar soluções criativas por conta própria, o que indiretamente inicia a exterminação do problema da falta de conhecimento sobre o projeto quando algum desenvolvedor sai da empresa, problema este que ocorre em muitos projetos.

Em ambientes predeterministas, o aprendizado normalmente não é estimulado, o planejamento ocorre antes do início do projeto e depois é seguido o plano/design estipulado.

O DAS complementa um dos princípios do Manifesto Ágil, que visa responder a mudanças mais do que seguir um plano: “Mudanças nos requisitos são bem-vindas,  mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente.”

Ou seja, o objetivo desta metodologia de desenvolvimento é que o processo de desenvolvimento de software seja flexível, permitindo grandes alterações de escopo, de foco e de equipe, visto que a mudança é um processo natural e irreprimível, portanto todos os envolvidos devem estar preparados para mudanças.

Peguemos por exemplo um aplicativo de vendas: numa visão predeterminada, todo o software (incluindo cadastros, movimentos, relatórios, gráficos, e tudo mais) teria de ser planejado, projetado e codificado antes dos testes e da implantação. Num modelo ágil, o software pode ser entregue em partes (somente os cadastros no início, depois os movimentos e por fim os relatórios) e, a cada entrega, são avaliados os impactos e novas necessidades, que podem refletir em mudanças no projeto.
Uma metodologia ágil incorpora as etapas de desenvolvimento comuns (análise de requisitos, planejamento, projeto, codificação, teste, manutenção e entrega), mas seus ciclos de entrega são mais curtos e com parte das funcionalidades de uma versão final do software. O caso específico do ASD é que ele foca na adaptabilidade da equipe à mudança, seja ela qual for. 
A cada ciclo do projeto, o conhecimento obtido cresce e através desse conhecimento, os possíveis erros encontrados são corrigidos mais facilmente, aumentando a experiência da equipe, que no futuro não encontrará tantas dificuldades para a resolução de determinados problemas.
Desvantagens
- Desenvolvedores e clientes devem estar comprometidos com o andamento rápido do projeto. Se uma das partes não estiver acompanhando o ciclo, há grandes chances de falha;
- Quando os riscos de projeto são altos, o DAS não pode ser adaptado;
- Projetos grandes exigem grandes equipes (para que haja efetivamente o aprendizado e compartilhamento de informações).
Referências:

WAZLAWICK, Raul Sidnei. Engenharia de software :conceitos e práticas. Rio de Janeiro : Elsevier. Pgs. 71 a 74.

Desenvolvimento Adaptativo de Software (DAS). Disponível em: http://julianakolb.com/2012/07/18/desenvolvimento-adaptativo-de-software-das/. Por Juliana Jenny. Acesso em: 23/08/2013

Desenvolvimento Adaptativo (ASD) e Dinâmico de Sistemas (DSDM). Disponível em: http://www.inf.ufpr.br/lmperes/ciclos_vida/adaptativo_e_dinamico.pdf. Por Klismann Smoger Mottin. Acesso em: 23/08/2013

ASD(Desenvolvimento adaptátivo de software). Disponível em: http://www.guj.com.br/java/258216-asddesenvolvimento-adaptativo-de-software. Post de FabioEM, resposta de TerraSkilll. Acesso em: 23/08/2013.
Métodos ágeis. Disponível em: http://www.levysiqueira.com.br/artigos/metodos_ageis.pdf. Fábio Levy Siqueira. Acesso em: 23/08/2013
JAD (Joint Application Design/Development):
Guiados por um líder de reunião, usuários e analistas projetam o sistema juntos, em sessões de grupo estruturadas. JAD utiliza a criatividade e o trabalho em equipe de dinâmica de grupo para definir o ponto de vista dos usuários sobre o sistema, desde os objetivos e aplicações do sistema até a geração de telas e projetos de relatórios. A aplicação JAD permite a criação, em menos tempo, de sistemas mais eficazes.
Full transcript