14
0RGHORVGH GHVHQYROYLPHQWRGH VRIWZDUH

Modelos de desenvolvimento de software (dino brasilis)

Embed Size (px)

Citation preview

Page 1: Modelos de desenvolvimento de software (dino brasilis)

0RGHORV�GHGHVHQYROYLPHQWR�GH

VRIWZDUH

Page 2: Modelos de desenvolvimento de software (dino brasilis)

3DUDGLJPDV�GH�HQJHQKDULD�GH�VRIWZDUHSão modelos de processo de desenvolvimento de sistemas que especificam quais atividadesdevem ser executadas e em qual ordem (oposta a uma “abordagem casual”)!

Ciclo de vidaclássico(cascata) Evolutivo (dep. Prototipação) Espiral

Dividido em etapas ...* Eng. sistemas * Análise de requisitos * Planejamento de Projeto * Codificação * Testes

*Manutenção•Método sequencial - oresultado de uma fase é aentrada da outra.•Indicado quando os requisitosestão bem claros.•Prima por um fluxo sequencialde atividades na tentativa demanter o processo previsível efácil de monitorar.•Rigidez: não prevê dinamismonos requisitos ou interaçõesentre as etapas, não acomodaincertezas típicas do começode muitos projetos.•Exige paciência do cliente, odesenvolvimento pode sermuito longo.

Um produto inicial édesenvolvido e implementadoe vai sendo refinado através demúltiplas versões até que osistema almejado tenha sidoobtido. Assim este modeloatende bem os requisitos docliente (gera produto:desenvolvimento exploratório) -é um bom mecanismo paraidentificar requisitos (não geraproduto, serve só paraesclarecer requisitos - protótipodescartável).O processo não évisível, não compensadocumentar cada versão daimplementação. Sistema épobremente estruturado dadasas mudanças constantes.Distância entre protótipo eproduto (“rapidez”) representaum risco que sacrifica aqualidade -Melhor para sist. pequenos !

Combina o ciclo de vidaclássico com o evolutivoadicionando Análise de Risco.

O desenvolvimento se organizacomo uma espiral que temmuitos ciclos - cada ciclo é umafase do processo dedesenvolvimento.

Parte do princípio de que aforma do desenvolvimento nãopode ser completamentedeterminada de antemão.

Desvantagem: custo.

Page 3: Modelos de desenvolvimento de software (dino brasilis)

&LFOR�GH�YLGD�FOiVVLFR�RX�PRGHOR�HP�FDVFDWDObservação importante: cada uma das atividades fornecem um feed-back para as fases anteriores, tal feed-backestimula a melhoria e a evolução do software.

Eng. Sistemas Análise derequisitos

Planejamento de Projeto Codificação Testes Manutenção

O softwaresemprefaz parte deum sistemamais amplo -deve fazerinterfacecom outroselementos taiscomohardware,pessoas ebancos dedados.

Identificaçãodas restrições edos serviços emetas a serematingidas(determinarquais e nãocomo..). Estafase gera umdocumento deespecificaçãode requisitospara (a) ocliente verificarse satisfaz suasexpectativas (b)ser usado pelosdesenvolvedores de software.

Processo demúltiplos passos:estrutura dedados,arquitetura desoftware,interface. Comoos requisitos, oprojeto édocumentado etorna-se parte daconfiguração dosoftware:documento deespecificação doprojeto.

Testes tanto nosaspectos lógicosinternos doprograma,quantos nosaspectosexternos(entradas esaídas).Testessão feitosprogressivamente, emconjuntos cadavez maiores, apartir depequenossubsistemas atéque o sistemainteiro sejaconstruído.

Fase em que oprojeto desoftware setransforma emum conjuntode programas.

O softwarepoderá sofrermudançasdepois deentregue:acomodarmudanças, errosencontrados,acréscimos etc.A manutençãoreaplica cadauma das etapasprecedentes.Pode vir a ser aetapa maislonga do ciclode vida.

O quê Como Operação

Page 4: Modelos de desenvolvimento de software (dino brasilis)

0RGHOR�(YROXWLYRInício

Fim

Especificações de requisitos ou

Produto

Page 5: Modelos de desenvolvimento de software (dino brasilis)

0RGHOR�(YROXWLYR• Prototipação é um método rápido de desenvolvimento.

• No passado desenvolver por protipação era considerado ummétodo inferior que exigiria grandes esforços adicionais..porém muitos sistemas hoje são desenvolvidos pelo métodoevolucionário, ao menos parcialmente.

• Prototipação como uma atividade de redução de riscos.

• O uso principal é ajudar clientes e desenvolvedores acompreender requisitos do sistema:

– Usuários podem experimentar com um protótipo paraverificar o comportamento do sistema.

– O protótipo pode revelar erros e omissões nos requisitos(validação).

Page 6: Modelos de desenvolvimento de software (dino brasilis)

9DQWDJHQV�GR�PRGHOR�(YROXWLYR• Diferenças entre percepções do cliente e dos desenvolvedores

são explicitadas.

• Um sistema funcional é apresentado antecipadamente.

• O protótipo pode servir de base para a especificação do sistema.

• O protótipo pode entrever necessidade de treinamento de pessoase esquema de testes.

• Aumento da usabil idade, manutenibilidade e até mesmo daqualidade do sistema, se tomado para amadurecer oentendimento dos requisitos.

• Prototipação é interessante para desenvolver partes dosistema de difícil especificação como interface do usuário.

• Cliente envolve-se na avaliação do protótipo.

Page 7: Modelos de desenvolvimento de software (dino brasilis)

'HVYDQWDJHQV�GR�PRGHOR�(YROXWLYR• Questões de gerencimento

– Esquema muito menos estruturado

– Specialist skil ls are required which may not beavailable in all development teams

• Problemas de manutenção

– Constantes mudanças tendem a corromper aestrutura do sistema o que pode repercutir nanecessidade de manutenção (ou retrabalho) maiscara.

• Problemas contratuais (entrega antes do prazo de umsistema mas com qualidade inferior).

Page 8: Modelos de desenvolvimento de software (dino brasilis)

'XDV�YDULDQWHV�GH�SURWRWLSDomR�• Prototipação evolucionária

– Um protótipo inicial é produzido e refinado até quese tenha um produto final para os usuários finais.

– Parte-se dos requisitos melhor compreendidos.

• Prototipação descartável– Um protótipo, usualmente uma implementação do

sistema, é produzido para ajudar a compreender osrequisitos do sistema e então é descartado. O sistemaé então desenvolvido usando-se outro processo dedesenvolvimento.

– Parte-se dos requisitos pobremente compreendidos.

Page 9: Modelos de desenvolvimento de software (dino brasilis)

0RGHORV�GH�SURWRWLSDomR�

Requisitos

PrototipaçãoEvolucionária

PrototipaçãoDescartável

Sistema

Protótipoexecutável

Page 10: Modelos de desenvolvimento de software (dino brasilis)

0RGHOR�(VSLUDO• Processo é representado por uma espiral em lugar de uma

sequência linear.

• Cada loop na espiral representa uma fase do processo: loopmais interno pode representar a viabil idade; o seguinte oplanejamento e assim por diante.

• Riscos são regularmente avaliados durante o processo.

• Um ciclo da espiral começa com a elaboração de objetivos,como desempenho, funcionalidade, etc. Meios alternativosde atingir esses objetivos e suas restrições são enumerados.Cada alternativa é examinada em relação a cada objetivo.Isso resulta na identificação das causas de riscos. A próximaetapa é avaliar esses riscos. Em seguida uma parte érealizada e parte-se para a próxima fase do projeto.

Page 11: Modelos de desenvolvimento de software (dino brasilis)

0RGHOR�(VSLUDO��%RHKP�(Versão Pressman/ Peters)

Determinar objetivos,r iscos e restr ições

Avaliar alternativas entre

protótipos,avaliar eresolver riscos

Desenvolver, verificar

produto de próximonível

Planejar próximasfases do ciclo, abor tá-lo

se necessár io

Page 12: Modelos de desenvolvimento de software (dino brasilis)

6HWRUHV�GR�PRGHOR�(VSLUDO• Determinação de objetivos

– São identificados objectivos específicos

• Análise e redução de riscos– Riscos são detectados e atividades são

acionadas para reduzir riscos

• Desenvolvimento e Validação– Um modelo de desenvolvimento é escolhido

• Planejamento– O projeto é revisado e a próxima fase da espiral

é planejada

Page 13: Modelos de desenvolvimento de software (dino brasilis)

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

ty pe 1

Prototype 2Prototype 3

Opera-ti onalprotoype

Concept o fOperati on

Simul ati ons, models, benchmarks

S/Wrequi rements

Requi rementvalidati on

Desi gnV& V

Productdesi gn Detail ed

desi gn

CodeUni t test

Integr ati ontestAcceptance

testServ ice Develop, v erif ynext -l evel product

Ev aluate alternativesidentify, resol ve risk s

Determine objectiv esalternatives and

constraints

Plan next phase

Integrati onand test p lan

Developmentpl an

Requi rements pl anLi fe-cycle pl an

REVIEW

(Versão Sommerville)

0RGHOR�(VSLUDO��%RHKP�

Page 14: Modelos de desenvolvimento de software (dino brasilis)

• Os pontos fortes de cada um dos paradigmas podem ser utilizadosem um mesmo projeto.

• O paradigma espiral já faz isso diretamente, combinandoprototipagem e elementos do ciclo de vida clássico em umaparadigma evolutivo. Qualquer um pode servir como alicerce noqual os outros paradigmas podem ser integrados. O processosempre começa com a determinação dos objetivos, alternativas erestrições (requisitos). Se os requisitos não estiverem muito claros,um protótipo pode ser usado para melhor defini-lo. Usando oprotótipo como guia, o desenvolvedor pode retornar aos passos dociclo de vida clássico. Alternativamente o protótipo pode evoluirpara um sistema.

• A natureza da aplicação é que vai determinar o paradigma a serutilizado e a combinação de paradigmas só tende a beneficiar oprocesso como um todo.

2EVHUYDo}HV