Buscar

Processo de Desenvolvimento de Software

Prévia do material em texto

1
Processo de SoftwareProcesso de Software
Copyright Leandro Becker
Prof. Leandro Buss BeckerProf. Leandro Buss Becker
Email: lbecker@das.ufsc.brEmail: lbecker@das.ufsc.br
DefiniçãoDefinição:: conjunto conjunto de atividades de atividades + + 
ordenamento destas, ordenamento destas, com com finalidade finalidade de obter um de obter um 
produto de produto de softwaresoftware
ModeloModelo de Desenvolvimento (Ciclo de Vida)de Desenvolvimento (Ciclo de Vida)::
ProcessoProcesso de Softwarede Software
Copyright Leandro Becker
Modelo Modelo de Desenvolvimento (Ciclo de Vida)de Desenvolvimento (Ciclo de Vida): : 
representação abstrata do PS, que vai definir representação abstrata do PS, que vai definir 
como as etapas relativas ao desenvolvimento do como as etapas relativas ao desenvolvimento do 
software serão conduzidas e software serão conduzidas e relacionadasrelacionadas
ISO/IEC ISO/IEC 12207:2008 Systems and software engineering 12207:2008 Systems and software engineering ––
Software life cycle processesSoftware life cycle processes
Modelos de Ciclo de Vida do Modelos de Ciclo de Vida do 
SoftwareSoftware
Modelo em CascataModelo em Cascata
PrototipaçãoPrototipação
ModeloModelo IterativoIterativo
Copyright Leandro Becker
ModeloModelo emem EspiralEspiral
Métodos Métodos ÁgeisÁgeis
DesenvolvimentoDesenvolvimento DirigidoDirigido porpor ModelosModelos
Modelo em Cascata (Modelo em Cascata (WaterfallWaterfall))
Projeto
Análise de 
Requisitos
Copyright Leandro Becker
Implementação
Testes
Manutenção
Limitações Apresentadas pelo Limitações Apresentadas pelo 
Modelo em CascataModelo em Cascata
Impõe que todos os requisitos sejam completamente Impõe que todos os requisitos sejam completamente 
especificados antes do prosseguimento das prox. etapasespecificados antes do prosseguimento das prox. etapas
Assume que os requisitos são inalterados ao longo do Assume que os requisitos são inalterados ao longo do 
desenvolvimentodesenvolvimento
Copyright Leandro Becker
Projetos reais dificilmente são estritamente seqüenciaisProjetos reais dificilmente são estritamente seqüenciais
As primeiras versões operacionais do software são As primeiras versões operacionais do software são 
obtidas nas etapas mais tardias do processoobtidas nas etapas mais tardias do processo
PrototipaçãoPrototipação
Análise de
Requisitos
Projeto
Projeto Codificação Teste
Copyright Leandro Becker
Codificação
Teste
Projeto Codificação Teste
Análise de
Requisitos
2
PrototipaçãoPrototipação
Interessante para sistemas de grande porte, com Interessante para sistemas de grande porte, com 
alto grau de dificuldade para exprimir alto grau de dificuldade para exprimir 
rigorosamente os requisitos;rigorosamente os requisitos;
Através da construção de um protótipo éAtravés da construção de um protótipo é
Copyright Leandro Becker
Através da construção de um protótipo é Através da construção de um protótipo é 
possível demonstrar a possível demonstrar a factibilidadefactibilidade do mesmodo mesmo
Com um pequeno investimento inicial, é Com um pequeno investimento inicial, é 
possível obter uma versão, mesmo simplificada, possível obter uma versão, mesmo simplificada, 
do que será o sistemado que será o sistema
Processo de Desenvolvimento Processo de Desenvolvimento 
IterativoIterativo
Projeto
1
Projeto
0
Projeto
N
Copyright Leandro Becker
Implementação
Análise
Implementação
Análise
Implementação
Análise
Processo IterativoProcesso Iterativo
Por ser incremental, facilita a adição de novas Por ser incremental, facilita a adição de novas 
funcionalidadesfuncionalidades
FacilitaFacilita o o testeteste do do sistemasistema
F iliF ili ál lál l dd fi l dfi l d
Copyright Leandro Becker
FacilitaFacilita o o cálculocálculo do tempo do tempo parapara o final do o final do 
projetoprojeto
Modelo em EspiralModelo em Espiral
Análise
de Riscos
Análise
de Riscos
Análise
de Riscos
Protó
Protó-
tipo
Avalia alternativas,
identifica e resolve
riscos
Determina objetivos
alternativas e restrições
A áli
CUSTO ACUMULADO
AVANÇO
Copyright Leandro Becker
Protótipo 1
Conceito de
Operação
Plano de Requisitos
Plano de Ciclo
de Vida
Revisão
Protó-
tipo 2
Protó-
tipo 3
tipo
Simulações, modelos, ...
Requisitos
de Software
Requisitos
Validação dosDesenvolvimento
Plano de
Integração e Testes
Plano de
ficação do Pro-
Validação e Veri-
jeto
Projeto
do pro-
duto de
software
Opera-
cional
Projeto
Detalha-
do
Código
Teste
de
uni-
dadeInte-
gração
e testeTeste
de acei-
tação
Imple-
menta-
ção
Próximas etapas
do plano Desenvolve e verifica
Produto do Próximo
Nível
Análise
de Riscos
Modelo EspiralModelo Espiral
Continuidade do processo de desenvolvimento é Continuidade do processo de desenvolvimento é 
definida como função dos definida como função dos riscos remanescentesriscos remanescentes
AvaliaçãoAvaliação contínuacontínua dos dos resultadosresultados do do projetoprojeto
P i d lP i d l dd
Copyright Leandro Becker
Permite adequação a qualquer Permite adequação a qualquer processo de processo de 
softwaresoftware
Métodos ÁgeisMétodos Ágeis
Baseado modelo interativo, porém mais “leve” e Baseado modelo interativo, porém mais “leve” e 
centrado no ponto de vista das pessoascentrado no ponto de vista das pessoas envolvidasenvolvidas
CadaCada fasefase demorademora diasdias e e nãonão semanassemanas
EnvolvidosEnvolvidos ficamficam presentespresentes numanuma mesmamesma salasala
Copyright Leandro Becker
EnvolvidosEnvolvidos ficamficam presentespresentes numanuma mesmamesma salasala
Enfatizam Enfatizam trabalho no software como uma trabalho no software como uma 
medida primária de medida primária de progressoprogresso
UtilizaUtiliza feedback feedback aoao invésinvés de de planejamentoplanejamento comocomo
mecanismomecanismo primárioprimário de de controlecontrole
DisponibilizaçãoDisponibilização regular de regular de versõesversões do softwaredo software
3
Métodos Ágeis Métodos Ágeis -- ExemplosExemplos
Extreme Programming (XP)Extreme Programming (XP)
FasesFases pequenaspequenas e e rápidasrápidas ((algunsalguns diasdias))
Testes Testes sãosão automatizadosautomatizados: : metasmetas pp// desenvolvimentodesenvolvimento
Pr r m ãPr r m ã f itf it mm d pl sd pl s
Copyright Leandro Becker
ProgramaçãoProgramação feitafeita emem duplasduplas
ProjetoProjeto e e arquiteturaarquitetura surgemsurgem porpor refactoringrefactoring
SCRUMSCRUM
Usado no gerenciamento Usado no gerenciamento de projetos de de projetos de softwaresoftware
CiclosCiclos formadosformados porpor váriasvárias interaçõesinterações ((sprintsprint))
BrevesBreves reuniõesreuniões diáriasdiárias ((daily scrumdaily scrum))
Métodos Ágeis Métodos Ágeis -- Aplicabilidade Aplicabilidade 
Mais Mais adequados quando os requisitos estão adequados quando os requisitos estão 
emergindo e mudando emergindo e mudando rapidamenterapidamente
Mais Mais adequados para projetos com pequenos adequados para projetos com pequenos 
timestimes em torno deem torno de 2020 pessoaspessoas
Copyright Leandro Becker
times, times, em torno de em torno de 20 20 pessoaspessoas
NãoNão sãosão aplicáveisaplicáveis emem sistemassistemas críticoscríticos
DesenvDesenv. Dirigido por Modelos. Dirigido por Modelos
DefinirDefinir visõesvisões
abstratasabstratas parapara o o 
projetoprojeto atéaté chegarchegar no no 
códigocódigo
Copyright Leandro Becker
(Greenfield and Short 2003)
códigocódigo
ModelosModelos sãosão
refinadosrefinados atravésatravés de de 
transformaçõestransformações
sucessivassucessivas
Modelo Específico de Domínio
(modelos em XML)
MetaCASE DSLTools
DesenvDesenv. Dirigido por Modelos. Dirigido por Modelos
Copyright Leandro Becker
Plataforma
(WEB + Desktop + Celular)
Código WEB
JSP+Spring+Hibe
Código Desktop
Swing + Spring
Código Celular
MIDP + Burlap
Modelo WEB
JSP+Spring+Hibe
Modelo Desktop
Swing + Spring
Modelo Celular
MIDP + Burlap
DesenvDesenv. Dirigido por Modelos. Dirigido por Modelos
–– Rápido Rápido desenvolvimentode uma aplicação desenvolvimento de uma aplicação 
(AMDA) para múltiplas (AMDA) para múltiplas plataformasplataformas
–– Especificação automática/facilitada de modelos Especificação automática/facilitada de modelos 
(DSM(DSM))
Copyright Leandro Becker
(( ))
–– Transformação de modelos para características Transformação de modelos para características 
de arquiteturas e de plataformas (MDAde arquiteturas e de plataformas (MDA))
–– ReusoReuso de de modelosmodelos ((EngenhariaEngenharia de de DomínioDomínio))
Referências:Referências:
V. B. V. B. MazzolaMazzola e Je J--M. Farines, "M. Farines, "MetodologiasMetodologias de de 
ConcepcaoConcepcao de Software e de de Software e de SistemasSistemas", ", Cap. Cap. 11
Manifesto para Desenvolvimento Ágil de Manifesto para Desenvolvimento Ágil de 
S ftS ft h // il if /i / bh // il if /i / b //
Copyright Leandro Becker
Software: Software: http://www.agilemanifesto.org/iso/ptbrhttp://www.agilemanifesto.org/iso/ptbr//
SchmidtSchmidt, D.C. , D.C. "Model"Model--Driven Engineering". Driven Engineering". 
IEEE Computer 39 (2). IEEE Computer 39 (2). 20062006

Mais conteúdos dessa disciplina