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

ADAPTATIVE SOFTWARE DEVELOPMENT

No description
by

Feliphe Baggio

on 3 November 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of ADAPTATIVE SOFTWARE DEVELOPMENT

A
DAPTATIVE
S
OFTWARE
D
EVELOPMENT

Visao Geral
O Desenvolvimento de Software Adaptativo:

Highsmith
defende que o desenvolvimento de um software é um processo complexo no ambiente adaptativo pois são imprevisíveis, fazendo parte deste sistema agentes (desenvolvedores e clientes) ambientes (organizacional, tecnológico e de processo) saídas ( produtos sendo desenvolvidos)
Ciclo de Desenvolvimento
Segundo Highsmith as fases do desenvovlvimento de um software não precisão ser sequenciais nem tao pouco ter um ciclo padrão. Ele propõem alterar o ciclo basico planejar, projetar e construir, por
especular, colaborar e aprender.
Gerentes e desenvolvedores de negócios trabalhando juntos diariamente.
Construção de projetos com profissionais motivados. (Conversa cara a cara).
Software funcionando significa progresso.
Manter um ritmo constante indefinidamente.
Excelência técnica e simplicidade
Equipes autodidatas.
Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e ajusta seu comportamento em conformidade com o projeto.

FELIPHE BAGGIO
GUILHERME AZAREDO GIBINSKI
MATEUS CANALLE HANEIKO
OSCAR EDUARDO DA SILVA BUENO


O Desenvolvimento Adaptativo de Software (ASD). Foi

introduzido por James A. Highsmith em 1997
, e sua

versão refinada e estendida foi implementada em 2000
. É um ciclo de vida dedicada à aprendizagem contínua e orientada para a mudança, reavaliação, olhando para um futuro incerto e intensa colaboração entre os desenvolvedores, gestão e clientes.
Evoluiu a partir de um processo de RAD(Radical Adaptative Development)
com base nos ensinamentos de teoria da complexidade.
O ASD foi o antecessor do Radical Software Development (RSD) introduzido por James A. Highsmith e Sam Bayer
. Representa um marco importante na história da Engenharia de Software e na evolução e maturação de metodologias de desenvolvimento.
Requer :
Rapidez, agilidade, adaptação e comprometimento com o desenvolvimento do software.
Ligação com o cliente durante o desenvolvimento do projeto.
Melhoramento constante do projeto.
Entrega antecipada e contínua do software.
Mudanças de requisitos
Rapidez na entrega do software funcionando .(desenvolvimento em curtos períodos).
Entre os processos de ASD podemos citar
JAD( Join Aplication Designer),
onde usuários e analistas projetam juntos em sessões de grupo estruturada. JAD requer criatividade e trabalho em equipe e dinâmica de grupo para definir o ponto de vista dos usuários sobre o sistema desde os objetivos e aplicações até a geração de layout e relatórios. Este modelo permite aplicações mais eficientes em menos tempo.
Fases
Fase 1
Especulação:
durante esta fase o projeto é iniciado. O foco nesta fase é experimentação, porém sem descuidar o planejamento por completo, procurando esclarecer o ponto de precisão.
O planejamento do ciclo adaptativo utiliza informações de iniciação do projeto para definir o conjunto de ciclos de versões necessários para o projeto. Em conjunto com equipe e cliente são calculados: tamanho, escopo e períodos de implementações durante o projeto.
Colaboração:
Fase de implementação onde equipe(motivada) participa ativamente dando ênfase a multiplicação de talentos e criatividade. Boa parte dos métodos ágeis defendem trabalho colaborativo, mas este parâmetro exige entrosamento da equipe para que opiniões e comunicação sejam ouvidos e transformados em produtividade como jamais houve, com objetivo de solucionar o problema.
Desenvolvedores e gerente devem participar e promover a comunicação e colaboração entre a equipe, através de questionários em lousas, discussões e dinâmicas. Programação em pares (XP) pode ser aplicado devido aos grandes níveis de informações que são coletados em sistemas grandes e complexos.
Fase 3
Aprendizado:

Foco no grupo: cliente opina sobre versão do software entregue indicando se o produto satisfaz o não suas expectativas.
Revisões técnicas formais: Fase onde são feitas revisões com a equipe melhorando o software implementando alguns detalhes a mais e aprendendo mais enquanto continuam.
Pos-Conclusão: A equipe ASD torna-se autodidata refletindo e corrigindo o processo, com objetivo de aprender e aperfeiçoar as técnicas.

Esta última fase possui destaques importantes para os desenvolvedores de software, pois aumenta o nível de conhecimento e experiencia durante a carreira.
Fase final
Na fase final devem ser feitas revisões de qualidade pela gerencia avaliando o que foi entregue pelos desenvolvedores, comparando sob perspectiva do cliente e perpectiva técnica o time de desenvolvimento e suas praticas utilizadas durante o projeto.
Além dessas três fases o modelo propõem uma fase inicial e uma fase final que deve ocorrer uma única vez no projeto.
-Inicialização do projeto: preparação para iniciar os ciclos, workshop com duração de poucos dias com equipe reunida a fim de estabelecer missões e objetivo do projeto, levantamento de requisitos iniciais, restrições e estimativas.
- Garantia final de qualidade e disponibilização, incluindo testes finais e implementação do projeto.

ASD baseia-se em ciclos de 4 a 8 semanas
, priorizando desenvolvimento de elementos de maior risco. Planos e designer devem mudar a medida que o projeto avança. por isso para se adaptar mais facilmente ao ambiente de desenvolvimento de incertezas, foi proposto por Highsmith trocar a fase de planejamento por algo mais adaptável e possível de fazer como o "especular".
No planejamento tradicional, a adaptação é vista como um desvio, causado por um erro que precisa ser corrigido. Já em ASD desvios indicam a solução correta para obtenção de bons resultados, nesta forma são necessárias pessoas que se adaptem à o cotidiano de mudanças constantes e incertezas.
Quando um projeto tem várias informações incertas é suscetível a mudanças, sendo o planejamento influenciado negativamente nos resultados e prazos previstos, neste caso o gerente da equipe não deve pensar no que fazer e sim estimular a equipe a comunicar-se para achar uma solução de forma criativa por conta própria, o que resolve o problema de falta de informações sobre o projeto quando algum desenvolvedor sai da empresa.
O ASD apresenta caraterísticas do "manifesto agil" relacionado mais à mudanças ao invéz de seguir um plano, "Mudanças nos requisitos são bem vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando competitividade para os cliente".
O ideal é fazer a entrega aos poucos para o cliente, permitindo assim que o cliente faça sua análise do produto, permitindo um feedback para os desenvolvedores dando início a próxima fase. Segundo Jim Highsmith quando há exposição dos riscos do projeto por não haver planejamento sequencial de atividade, o processo fica mais flexível deixando menos impactante as alterações.

"Em uma abordagem preditiva(Metodologia de Desenvolvimento Predeterminada), você levanta os requisitos do software, estima prazo e custo, monta um planejamento e o executa à risca. Em uma abordagem adaptativa (Metodologia de Desenvolvimento Adaptativa), você mapeia a cadeia de valor do seu cliente e busca entregar as estórias de maior valor, a fim de obter feedback rápido." ( rmendes08, fórum - http://www.guj.com.br/"
Metodologias ágeis estão mais relacionadas com etapas comuns de desenvolvimento (Analise de requisitos, planejamento, projeto, codificação, teste, manutenção e entrega) porem o tempo de entrega é curto e focado em fornecer ao cliente partes do software, entre tanto o principal foco de ASD é focar na adaptação da equipe à mudança.
Durante os ciclos do projeto a equipe vai adquirindo mais conhecimento e este conhecimento é aplicado em experiências futuras, possíveis erros são corrigidos e evitados, tornando projetos futuros mais fáceis de serem desenvolvidos.

Vantagens
Resultados rápidos.
Aplicações em projetos que exigem avaliações constantes dos clientes.
Projeto adaptável a mudanças caso necessário.
Desvantagens
Falta de comprometimento da equipe (desenvolvedores, clientes) com o projeto, podem levar a falhas, é preciso acompanhamento em todas as fases.
Quando o risco é muito alto o projeto não pode ser adaptado.
Necessário equipes para projetos grandes para que haja aprendizagem e comunicação entre os membros.

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 aparecerem durante o projeto, para que o sistema tenha maior valor ao cliente.(Métodos Ágeis Fábio Levy Siqueira Página 18).

A aplicação de ASD em conjunto com uma equipe auto organizada, treinada em comunicação e aprendizado conduz a maior probabilidade de sucesso do projeto.
Segundo James A. Highsmith
“Praticas ágeis por si só não são suficientes pois eles dependem de indivíduos ágeis, desta maneira todos os esforços de desenvolvimento são altamente voláteis”.

Referências
Aplicação do caso: Aplicando Adaptive Software Development (ASD) Modelagem Ágil em aplicações preditivas de mineração de dados: Metodologia ASD-DM. Disponível em http://www.academia.edu/190448/Applying_Adaptive_Software_Development_ASD_Agile_Modeling_on_Predictive_Data_Mining_Applications_ASD-DM_Methodology. Por Mouhib Alnoukar. Et al. Acesso em 21/10/2014.

Chapter 23. Adaptive Software Development. Disponível em: http://www.exa.unicen.edu.ar/catedras/agilem/cap23asd.pdf. Por Ken Orr (Cutter Consortium Summit 2001). Acesso em 22/10/2014.

Adaptive Software Development. Disponível em http://books.google.com.br/books?hl=pt-BR&lr=&id=CVcUAAAAQBAJ&oi=fnd&pg=PA1&dq=adaptive+software+development&ots=5rxD9tLCEF&sig=A6A57Tsl_n4YGusz_xwFAYGhvsQ#v=onepage&q&f=true. Por James A. Highsmith. Acesso em 22/10/2014.

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

Desenvolvimento Adaptativo de Software - ASD. Disponível em http://julianakolb.com/2012/07/18deenvolvimento-adaptativo-de-software-das/. Por Juliana Janny. Acesso em 23/10/2014.

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

ASD (Desenvolvimento adaptativo de software). Disponível em: http://www.guj.com.br/java/258216-asddesenvolvimento-adaptativo-de-software. Post de FabioEm, resposta de rmendes08. Acesso em: 23/10/2014. Métodos Ágeis. Disponível em: http://www.levysiqueira.com.br/artigos/metodos_ageis.pdf. Por Fabio Levy Siqueira. Acesso em 22/10/2014.

ASD - Engenharia de Software. Disponivel em: http://prezi.com/z1dhhjferbxq/apresentacao-asd-engenharia-de-software/. Por: Sabrina Cabral. Acesso em: 21/10/2014.

Desenvolvimento ágil de software. Disponivel em: http://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software. Por Wikipédia, a enciclopédia livre. Acesso em 21/10/2014.

BRAMER, M. Undergraduate Topics in Computer Science - Principles of
Data Mining. Springer , 2007.

ALNOUKARI, Mouhib; ALZOABI, Zaidoun ; HANNA, Saiid. Applying. Adaptive Software Development (ASD) Agile Modeling on Predictive Data Mining Applications: ASD-DM Methodology. Information. Technology, vol. 2. IEEE, 2008.

LAROSE, D. T. Discovering Knowledge in Data: An Introduction to Data
Mining. John Wiley and Sons, Inc, 2005.
Fase 2
Estudo de caso
Aplicando Metodologia Ágil ASD em Mineração de Dados Preditiva: Metodologia ASD-DM
ASD-DM

• Framework
• Baseado em ASD
• Baseado em metodologia CRISP-DM
• Pode se adaptar facilmente em aplicações em
mineração de dados preditiva
Mineração de dados

Exemplos:
• Os satélites de observação da NASA geram
cerca de um terabyte de dados por dia;
• O projeto Genoma armazena milhares de
bytes para cada uma das bilhões de bases
enéticas;
• Instituições mantêm repositórios com
milhares de transações dos seus clientes;

BRAMER, 2007
Mineração de dados

Definição:

• É a procura por relações e padrões distintos que
existem em um conjunto de dados mas estão
“escondidos”.
• Uma operação de mineração de dados envolve
determinar padrões uteis de dados coletados ou
determinar o modelo que melhor se encaixa nos
dados.
• Transformação de grandes quantidades de dados
em informação util.

ALNOUKARI, ALZOABI e HANNA 2008
Mineração de dados

Aplicação:

• Retenção de clientes: identificação de perfis para determinados produtos, venda cruzada;
• Bancos: identificar padrões para auxiliar no gerenciamento de
relacionamento com o cliente;
• Cartão de Crédito: identificar segmentos de mercado, identificar padrões
de rotatividade;
• Cobrança: detecção de fraudes;
• Telemarketing: acesso facilitado aos dados do cliente;
• Medicina: indicação de diagnósticos mais precisos;
• Segurança: na detecção de atividades terroristas e criminais ;
• Auxílio em pesquisas biométricas;
• RH: identificação de competências em currículos;
• Tomada de Decisão: filtrar as informações relevantes, fornecer
indicadores de probabilidade.

BRAMER, 2007
Mineração de dados Preditiva

Predição: A tarefa de predição visa descobrir o valor
futuro de um determinado atributo. Exemplos:
• Predizer o valor de uma ação três meses adiante;
• Predizer o percentual que será aumentado de
tráfego na rede se a velocidade aumentar;
• Predizer o vencedor do campeonato baseando
se na comparação das estatísticas dos times.

LAROSE, 2005
CRISP-DM

• Processo Padrão Inter-Indústrias para Mineração de Dados.

– Uma das primeiras tentativas de padronizar o modelo de processo de mineração de dados;
– Seis fases:
• Entendimento de negocio;
• Entendimento de dados;
• Preparação dos dados;
• Modelagem;
• Avaliação;
• Implantação;

LAROSE, 2005
CRISP-DM
ASD-DM

• Na premissa do ASD os resultados finais são imprevisíveis, então planejar é um paradoxo.
• É difícil planejar em um ambiente de negócios com movimentação rápida e imprevisível.
• Esse é o motivo para criar um framework para aplicações de Mineração de Dados preditiva baseado em ASD.

ALNOUKARI, ALZOABI e HANNA 2008
ASD-CRISP

• Especulação:

– Entendimento de negocio;
– Entendimento de dados;
– Preparação dos dados;
Fase mais importante, porque consome muito tempo e recursos. Esta fase termina com a criação da Data Warehouse da empresa.

ALNOUKARI, ALZOABI e HANNA 2008
ASD-CRISP
• Colaboração:

– Garante alta comunicação para a escolha dos melhores algoritmos para o processo de
Mineração de Dados preditiva.
(Arvores de decisão, aprendizagem por regras,
regressão linear, aprendizagem por associação, aprendizagem não-supervisionada, aprendizagem probabilística)

ALNOUKARI, ALZOABI e HANNA 2008
ASD-CRISP

• Aprendizado:

– Teste e avaliação do algoritmos escolhidos;
– Resultados discutidos entre a equipe do projeto;
– Se os resultados são aceitas, uma nova versão é
implantada em forma de relatório de pontuação
preditiva;
– Do contrario uma nova fase de Colaboração é
iniciada para a escolha de um algoritmo melhor.

ALNOUKARI, ALZOABI e HANNA 2008
Framework

• Para validação do framework foi realizado um
estudo de caso no domínio da fabricação
automotiva:
– São mercados onde o fabricante não interage
diretamente com o consumidor. Mas o
entendimento de mercado, tendências, o gosto e preferencia do consumidor são fundamentais para a competitividade.

ALNOUKARI, ALZOABI e HANNA 2008
Framework

• Informações coletadas para produzir uma
solução de mineração de dados automotiva:
– Processo da cadeia de suprimentos (vendas,
inventario, ordens, planos de produção)
– Informação de fabricação (descrição de carros e
suas varias opções de itens e componentes)
– Informação de Marketing (revendedores, centro
de negócios)
– Informação de tendência do consumo (atividades
em websites)

ALNOUKARI, ALZOABI e HANNA 2008
Framework

• Como resultado da fase de especulação a Data Warehouse foi construída para manter dados da web, inventários, demanda por carros e vendas, com objetivo de:
– Melhorar a analise e predição de vendas de carros
• Gerenciar o inventario de carros
• Planejamento de produção de carros.

ALNOUKARI, ALZOABI e HANNA 2008
Framework

• O conjunto de dados para treinamento foi
pego de abril de 2002 até junho de 2003;
• O conjunto de dados para teste foi pego de
julho até setembro de 2003;
• O conjunto de dados para avaliação foi pego
de outubro até novembro de 2003;


ALNOUKARI, ALZOABI e HANNA 2008
3º Método: ANFIS

• Adaptive Neuro-Fuzzy Inference System

– Este método é uma combinação da lógica fuzzy e redes neurais:
• Onde são agrupados os valores em conjuntos fuzzy
• As funções dos conjuntos de membros são estimadas durante o treinamento.
• Usa-se as redes neurais para estimar os pesos.

ALNOUKARI, ALZOABI e HANNA 2008
ASD-CRISP

• A natureza cíclica do framework pode
responder às mudanças dinâmicas de negócio;

Exemplo: Uma nova fonte de dados pode
ser adicionada a fase de preparação e o ciclo se
repete.


ALNOUKARI, ALZOABI e HANNA 2008
Full transcript