Apresentação e Introdução - Lopes & Gazzani Planejamento Ltda
Download
Report
Transcript Apresentação e Introdução - Lopes & Gazzani Planejamento Ltda
Processo de Desenvolvimento de
Software – RUP
Apresentação & Introdução
Márcio Aurélio Ribeiro Moreira
[email protected]
http://si.lopesgazzani.com.br/docentes/marcio/
Apresentação da Disciplina
Márcio Moreira
Apresentação & Introdução – slide 2
Processo de Desenvolvimento de Software - RUP
Apresentação da disciplina
Objetivos da disciplina:
Introduzir os conceitos relacionados ao RUP
Apresentar as Fases, Iterações e Disciplinas do
RUP
Apresentar práticas relacionadas ao RUP
Apresentar o material disponível do RUP
Relacionar os fatores críticos de sucesso da
Engenharia de Software
Discutir as habilidades e competências do
Engenheiro de Software
Márcio Moreira
Apresentação & Introdução – slide 3
Processo de Desenvolvimento de Software - RUP
Ementa da disciplina
Apresentação e Introdução
1. Modelagem de Negócios
2. Requisitos
3. Análise & Projeto
4. Implementação
5. Testes
6. Distribuição
7. Gestão de Configuração e Mudança
8. Gestão de Projetos
9. Ambiente
Márcio Moreira
Apresentação & Introdução – slide 4
Processo de Desenvolvimento de Software - RUP
Bibliografia
Fundamental:
IBM Rational. RUP – Rational Unified Process – 7.5 –
For Large and Small Projects. 2008. IBM Rational.
Suplementar:
Ivar Jacobson, Grady Booch, and James Rumbaugh.
The Unified Software Development Process. 1998.
Addison Wesley Longman.
Per Kroll e Philippe Kruchten 2003. The Rational Unified
Process Made Easy, A Practitioners Guide to the RUP.
Addison Wesley Longman.
Ian Sommerville. Engenharia de Software. 8ª Ed.
Pearson / Prentice Hall. 2007.
Márcio Moreira
Apresentação & Introdução – slide 5
Processo de Desenvolvimento de Software - RUP
Sistema de avaliação
50% Teórico:
Média de “n” simulados
50% Prático:
Média de “n” exercícios
Márcio Moreira
Apresentação & Introdução – slide 6
Processo de Desenvolvimento de Software - RUP
Plano de aulas
Data
Aulas
Simulados
1) 02/12/2014
Apresentação & Introdução
Simulado 1
2) 03/12/2014
1.Modelagem de Negócios
2. Requisitos
Simulado 2
Simulado 3
3) 04/12/2014
3. Análise & Projeto
Simulado 4
4) 09/12/2014
4. Implementação
5. Testes
Simulado 5
Simulado 6
Exercício 2
5) 10/12/2014
6. Distribuição
7. Gestão de Configuração e Mudança
Simulado 7
Simulado 8
Exercício 3
6) 11/12/2014
8. Gestão de Projetos
Simulado 9
Exercício 4
7) 16/12/2014
9. Ambiente
Certificação
Simulado 10
Exercício 5
Márcio Moreira
Apresentação & Introdução – slide 7
Exercícios
Exercício 1
Processo de Desenvolvimento de Software - RUP
Introdução à Engenharia de
Software
Márcio Moreira
Apresentação & Introdução – slide 8
Processo de Desenvolvimento de Software - RUP
Problemas clássicos da ESOF
1
2
3
4
5
6
7
8
9
• Desacoplamento das necessidades dos usuários e do negócio
• Mudanças de requisitos
• Os módulos não se integram
• Dificuldades de manutenção
• Descoberta tardia de falhas
• Baixa qualidade e experiência ruim do usuário
• Baixa performance para carga efetiva
• Dificuldades de gestão da equipe do projeto
• Construção e liberação de problemas
Fonte: KRO03
Márcio Moreira
Apresentação & Introdução – slide 9
Processo de Desenvolvimento de Software - RUP
Dúvidas da engenharia de software
Qual a melhor forma de obter requisitos?
Informal, Fluxos de Dados, DER ou Casos de Uso
O que é mais importante para o cliente?
Saber logo se o projeto é viável e factível ou
Começar a ver telas do software funcionando
O que é mais fácil gerenciar?
6 projetos de 30 dias ou
1 projeto de 6 meses
Qual construção suportará mais mudanças?
Uma feita com base na expertise de um mestre de obras
especialista ou
Uma feita pelo mesmo mestre de obras, mas com um projeto
estrutural considerando as necessidades atuais e futuras do prédio
Márcio Moreira
Apresentação & Introdução – slide 10
Processo de Desenvolvimento de Software - RUP
Evolução dos softwares
Até 1969
Ciclo Cascata
Década de 70
Incremental
Década de 80
Evolutivo e Espiral
Década de 90
Iterativo & Incremental
Atualmente
Engenharia
de Software
Fontes: BEI90, CAR98, DEM89, GIL88, JAC98, KRU98, MSP91, MYE79, PRE95, SUM07 e YOU92
Márcio Moreira
Apresentação & Introdução – slide 11
Processo de Desenvolvimento de Software - RUP
Fatores críticos de sucesso da
fabricação de software
Visão de Negócio (direção, gestão, administração)
Qualidade
Pessoas
Processos
Gestão de
Projetos
Clientes
Márcio Moreira
Infra-estrutura
TI/comunicação
Clientes
Apresentação & Introdução – slide 12
Fontes: JAC98, KRO03, PRE95 e SUM07
(CHA)
Processo de Desenvolvimento de Software - RUP
Gestão de pessoas
Pessoas
(CHA)
CHA:
Conhecimentos:
Habilidades:
Atitudes:
Expertise em TI
Trabalho em equipe, comunicação, foco, ...
Assertividade, pró-atividade, ...
Desenvolver pessoas desenvolver a organização:
Busca de propósitos comuns
Busca da felicidade:
Harmonia entre pensamentos, expressão e ações
Capacitação e certificações
Metas Tensão Criativa Superação
Motivação Resultados Motivação
Atração e retenção de talentos
Márcio Moreira
Apresentação & Introdução – slide 13
Processo de Desenvolvimento de Software - RUP
Processos de engenharia
de software
Processos
Cascata – Uma disciplina só após a outra
MSF – Microsoft Solutions Framework
Fases: visão, planejamento, estabilização e instalação
Disciplinas: projeto, riscos e competência
Mais ágil e menos formal que o RUP
RUP – Rational Unified Process
Desenvolvido pela Rational (hoje da IBM)
Processo mais utilizado atualmente
XP – Extreme Programming
Atividades: planejamento, projeto, codificação e teste
Gera sensação de produtividade constante
Márcio Moreira
Apresentação & Introdução – slide 14
Processo de Desenvolvimento de Software - RUP
Comparativo de disciplinas
Disciplinas x Metodologias
Cascata
MSF
Modelagem do Negócio
XP
Requisitos
Análise
Projeto
Implementação
Testes
Distribuição (Instalação )
Gestão de Configuração e Mudanças
Gestão de Projeto
Ambiente
Márcio Moreira
Apresentação & Introdução – slide 15
RUP
Processo de Desenvolvimento de Software - RUP
Maturidade e níveis de processos
Alta
Nível
Área Foco
(com problema)
Característica
5 – Otimizado
Processo de Melhoria
Grupos
de
processos
Automação
Processos
4 - Gerenciado
Maturidade de TI
3 – Definido
2 – Repetível
1 – Inicial
0 - Inexistente
Baixa
Márcio Moreira
Processo de Medição
Processos de métricas
e análise
Institucionalizado
Dependência de indivíduos
Caótico (Tentativa e Erro)
Não há procedimentos
Mudanças tecnológicas
Atividades
Padronização, treinamento
e teste
Planejamento e Gestão
de projetos
Desconhecimento
do domínio
Tarefas
Instruções
de Trabalho
Fonte: ITIL – Planning to Implement Service Management
Apresentação & Introdução – slide 16
Processo de Desenvolvimento de Software - RUP
O modelo cascata
Principais problemas:
Levantamento
Análise
O cliente participa do projeto somente no
início e no final
Os riscos são mitigados no final do projeto
Tem descoberta tardia de erros de projeto
Projeto
Implementação
Testes
Márcio Moreira
Apresentação & Introdução – slide 17
Processo de Desenvolvimento de Software - RUP
O modelo iterativo
Iteração 1
Levantamento
Análise
Levantamento
Análise
Projeto
Testes
Levantamento
Projeto
Implementação
Testes
Módulo 1
Iteração 3
Análise
Projeto
Implementação
Márcio Moreira
Iteração 2
Implementação
Testes
Módulo 2
Apresentação & Introdução – slide 18
Módulo 3
Processo de Desenvolvimento de Software - RUP
O modelo iterativo e incremental
Iteração 1
Levantamento
Análise
Levantamento
Análise
Projeto
Testes
Implementação
Testes
Módulo 1
Iteração 3
Levantamento
Análise
Projeto
Implementação
Márcio Moreira
Iteração 2
Módulo 1 Módulo 2
Apresentação & Introdução – slide 19
Projeto
Implementação
Testes
Módulo 1
Módulo 2
Processo de Desenvolvimento de Software - RUP
Nível de risco dos modelos
Risco
Redução de Riscos
Tempo
Fonte: KRO03
Márcio Moreira
Apresentação & Introdução – slide 20
Processo de Desenvolvimento de Software - RUP
Progresso do projeto dos modelos
% de Codificação Completo do Projeto
Protótipos Arquitetura Funcionalidades Produto
Fonte: KRO03
Márcio Moreira
Tempo
Apresentação & Introdução – slide 21
Processo de Desenvolvimento de Software - RUP
Custo das mudanças
Fonte: KRO03
Softwares atuais são complexos requisitos inexatos
mudanças são necessárias (e devem ser estimuladas)
As mudanças devem ser detectadas e tratadas o mais
cedo possível menor custo
Márcio Moreira
Apresentação & Introdução – slide 22
Processo de Desenvolvimento de Software - RUP
Gestão de projetos (GP)
Gestão de
Projetos
PMI – Project Management Institute:
Project Management Body of Knowledge (PMBOK)
Metodologia mais utilizada atualmente
Prince2 – Metodologia do governo inglês:
Adotada em vários países europeus
TenSetp
Processo de uma multinacional americana que é
representante do PMI
Agile
Resultante de um manifesto feito por 17 especialistas em
Fevereiro de 2001 em Utah – USA
ISO 10006:
A International Standards Organization tomou o PMI como
base e fez uma simplificação
Márcio Moreira
Apresentação & Introdução – slide 23
Processo de Desenvolvimento de Software - RUP
PMBOK do PMI – 47 Processos
Disciplinas
Grupos de Processos
4
3
6
7
4
4
2
24
6
6
4
3
8
11
2
Márcio Moreira
Apresentação & Introdução – slide 24
Processo de Desenvolvimento de Software - RUP
Verificação da qualidade
Qualidade
Projeto de Desenvolvimento
Requisitos
Márcio Moreira
Análise
Projeto
Apresentação & Introdução – slide 25
Testes
Processo de Desenvolvimento de Software - RUP
Qualidade
Fazer certo na primeira vez
A qualidade deve ser meta e resultado em
todas as etapas do processo, não somente
no final
É preciso garantir a qualidade do:
Produto (resultante do projeto)
Processo aplicado ao projeto
E consequentemente:
do Projeto e das Pessoas.
Márcio Moreira
Apresentação & Introdução – slide 26
Processo de Desenvolvimento de Software - RUP
Introdução ao RUP
Márcio Moreira
Apresentação & Introdução – slide 27
Processo de Desenvolvimento de Software - RUP
Resumo do Histórico
1999
Gestão de
Projetos
RUP 5.5 &
UML 1.3
Web D.
R.Time
1998
Modelagem
de Negócio
RUP 5.0 &
UML 1.2
GC&M
Booch
1997
Requisitos
ROP 4.1 &
UML 1.1
Testes
1996
Análise &
Projeto
ROP 4.0 &
UML 1.0
OOSE
(Jacobson)
1995
Rational
Approach
(Booch)
Jacobson
Rumbaugh
OMT:
Objetory
Process 3.8
(Rumbaugh)
Fonte: RAT98 e IBM03
Márcio Moreira
Apresentação & Introdução – slide 28
Processo de Desenvolvimento de Software - RUP
Histórico do RUP & do UML
1994
1995
1996
1997
1998
1999
2002
• Em outubro James Rumbaugh se juntou Grady Booch (cientista chefe da Rational), eles resolveram criar um Método Unificado de Análise
Orientada a Objetos unindo o método do Booch com o OMT (Object Modeling Technology) de Rumbaugh
• Em outubro a versão 0.8 do UP (Unified Process) foi lançada e Ivar Jacobson entrou na Rational
• A Rational comprou da Ericsson a Objectory AB (que havia sido Jacobson) com o OOSE (Object-Oriented Software Engineering)
• Em junho, “os três amigos” lançaram a versão 4.0 do ROP (Rational Objetory Process) e a 1.0 do UML (Unified Modeling Language)
• O ROP nasceu com as disciplinas de Análise & Projeto
• O UML 1.0 é aprovado como padrão pelo OMG (Object Management Group) e o UML 1.1 é lançado
• O ROP 4.1 é lançado com as disciplinas de Requisitos e Testes
• “Os três amigos” publicaram o livro “The Unified Software Development Process” e o UML 1.2
• O RUP 5.0 é lançado com as disciplinas de Modelagem de Negócios e Gestão de Configuração e Mudanças
• O RUP 5.5 preparado para desenvolvimento web e/ou tempo real é lançado com a disciplina de Gestão de Projetos
• O UML 1.3 é lançado
• Em 6/Dez a IBM anunciou a compra da Rational que foi concluída em 21/2/2003
Márcio Moreira
Apresentação & Introdução – slide 29
Processo de Desenvolvimento de Software - RUP
Estrutura do RUP
RUP 7.5:
Projetos:
Grandes
Pequenos
Apresentar:
Idiomas
RUP 7.5
Links para
download
Márcio Moreira
Apresentação & Introdução – slide 30
Processo de Desenvolvimento de Software - RUP
Pilares estratégicos do RUP
Dirigido por Casos de Uso
Centrado em Arquitetura
Iterativo e Incremental
Fases e Iterações
Casos de Uso
Dirige
Guia
Arquitetura
Márcio Moreira
Apresentação & Introdução – slide 31
Processo de Desenvolvimento de Software - RUP
As fases do RUP e seus objetivos
Iniciação (concepção):
Definir o macro escopo
Verificar a viabilidade econômica
Elaboração:
Verificar a viabilidade técnica
Definir a arquitetura básica (versão α)
Construção
Desenvolver o software (versão β)
Transição
Fazer testes de aceitação e entregar o produto
Márcio Moreira
Apresentação & Introdução – slide 32
Processo de Desenvolvimento de Software - RUP
As iterações do RUP
São mini-projetos com objetivos de:
Integração de middleware, versão-alfa, casos de uso ...
versão-beta e produto
Vantagens:
Redução de riscos
Percepção antecipada
Quebra da complexidade
Facilitação do gerenciamento
Trabalho com parte dos requisitos
Construção de builds executáveis
Evolução incremental do sistema pelos componentes
Márcio Moreira
Apresentação & Introdução – slide 33
Processo de Desenvolvimento de Software - RUP
Disciplinas do RUP
Modelagem de Negócios:
• Compreensão da Engenharia do Negócio (por que)
Requisitos:
• Explicitação e coleta de requisitos (escopo: o que)
Análise & Projeto:
• Transformação dos requisitos em especificação do software (como)
Esforço x Disciplina x Tempo
Implementação:
• Desenvolve, organiza, testa a unidade e integra os componentes do software
• Testa a qualidade do software
Testes:
• Distribui (instala) o software aos usuários (entrega), não é um projeto de
implantação completo
Distribuição:
Gestão de Configuração &
Mudanças:
• Cuida do controle e sincronização dos componentes do software
Gestão do Projeto:
• Foca em planejamento, gestão de riscos e gestão do progresso do projeto
Ambiente:
• Cria e mantém o ambiente (processos e ferramentas) de desenvolvimento
interno do software
Márcio Moreira
Apresentação & Introdução – slide 34
Processo de Desenvolvimento de Software - RUP
Do problema do cliente
à solução do usuário
Problema clássico
Mapeando o território
Problema
Espaço do
Problema
Necessidades
Espaço da
Solução
Funcionalidades
Produto
a ser
feito
Requisitos do
Software
Casos de Testes
Projeto
Docum.
Usuário
Fonte: KRO03
Márcio Moreira
Apresentação & Introdução – slide 35
Processo de Desenvolvimento de Software - RUP
Processo adaptável ao projeto
Versões pré-definidas
Grandes Projetos
Rational Method composer
Fases
Disciplinas
Pequenos Projetos
Atividades
Tarefas
Artefatos
Márcio Moreira
Apresentação & Introdução – slide 36
Processo de Desenvolvimento de Software - RUP
Elementos essenciais do RUP
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Visão:
Processo:
Plano:
Riscos:
Caso de Negócios:
Arquitetura:
Protótipo:
Avaliação:
Controle de Mudanças:
Suporte ao Usuário:
Márcio Moreira
Desenvolva uma visão
Adote um processo para o projeto
Crie e gerencie o plano
Mitigue riscos e rastreie problemas
Examine o caso de negócios
Projete arquitetura de componente
Construa e teste progressivamente
Avalie regularmente os resultados
Gerencie e controle as alterações
Implemente um produto utilizável
Apresentação & Introdução – slide 37
Processo de Desenvolvimento de Software - RUP
Outros princípios chaves do RUP
Priorização
Trabalho em equipe
• Decidir pelas prioridades de negócio
• Promove o alinhamento da TI aos
negócios
• Focar em motivação, autogestão,
colaboração, etc.
• Desenvolve o senso de propósito
Iteratividade
Elevar a abstração (arquitetura)
• Entregar valor a cada iteração
• Cliente e usuário “veem” o andamento
• Arquitetar e reutilizar para simplificar e
quebrar a complexidade
• Reuso adaptabilidade reduz o TCO
Qualidade
• Focar continuamente na qualidade do
processo e do produto
• Melhora a experiência do usuário
Márcio Moreira
Apresentação & Introdução – slide 38
Processo de Desenvolvimento de Software - RUP
Adaptação livre de: JAC98, KER04, KRO03 e RUP08
Complexidade Técnica
Alta
Quando utilizar o RUP
CMM
RUP para pequenos
projetos
RUP para projetos de
médio porte
Criar x Documentar
RUP para grande
projetos
CMMI
Baixa
XP, SCRUM e
Adaptive
Development
Baixa
Márcio Moreira
Complexidade de Gestão
Apresentação & Introdução – slide 39
Alta
Processo de Desenvolvimento de Software - RUP
Pesquisa: metodologia em Uberlândia
feita com 177 profissionais
PORTE EMPRESA
TI NA EMPRESA
PERFIL DAS PESSOAS
Fonte: MOR13
6%
17%
24%
50%
59%
De TI
Pequena
Márcio Moreira
Média
Grande
Usuária de TI
Apresentação & Introdução – slide 40
13%
67%
33%
17%
14%
TI Estratégica
Alto Executivo
Gerente
Coordenador
Analista
Processo de Desenvolvimento de Software - RUP
Relação da empresa com metodologia
USA METODOLOGIA
METODOLOGIA
FASES DO RUP
Fonte: MOR13
8%
1%
10%
TESTES
ACEITE
67%
TESTES
DESENV
69%
36%
10%
33%
11%
67%
24%
ARQUITETURA
Sim
Márcio Moreira
Não
SCRUM
RUP
Outros Ágeis
Cascata
Outros
XP
Crystal
Apresentação & Introdução – slide 41
VIABILIDADE $
46%
57%
0% 20% 40% 60% 80%
Processo de Desenvolvimento de Software - RUP
Disciplinas utilizadas nas empresas
59%
56%
59%
AMBIENTE
60%
ANÁLISE & PROJETOS
REQUISITOS
47%
M. DE NEGÓCIOS
Márcio Moreira
58%
DISTRIBUIÇÃO
70%
60%
50%
40%
30%
20%
10%
0%
GESTÃO DE PROJETOS
68%
TESTES
64%
GESTÃO C & MUDANÇA
Fonte: MOR13
Apresentação & Introdução – slide 42
Processo de Desenvolvimento de Software - RUP
Conclusões sobre o RUP
Ele resolveu os problemas clássicos do
desenvolvimento de software
Ele definiu o que é a Engenharia de Software
Ele serviu de base para as metodologias que estão
surgindo
Ele pode ser utilizado para projetos de todos os
portes
Márcio Moreira
Apresentação & Introdução – slide 43
Processo de Desenvolvimento de Software - RUP
Fluxos de trabalho do RUP
Início do fluxo
Atividade
Atividade
Término do fluxo
Atividades em paralelo
Márcio Moreira
Apresentação & Introdução – slide 44
Processo de Desenvolvimento de Software - RUP
Detalhamento de fluxos de trabalho
Tarefa
Seqüenciamento
Função (papel)
Tarefa
Produto do trabalho (artefato)
Márcio Moreira
Apresentação & Introdução – slide 45
Processo de Desenvolvimento de Software - RUP
Referências
Sigla
Referência
BEI90
BEIZER, Boris. Software testing techniques. Scottdale: Coriolis Group, 1990, 2 ed.
CAR98
CARZANIGAYZ, A., et. al. A Characterization Framework for Software Deployment Technologies. Technical Report CU-CS-857-98,
University of Colorado, April 1998.
DEM89 DeMARCO, Tom. Análise estruturada e especificação de sistemas. Rio de Janeiro: Campus, 1989.
GIL88
Tom Gilb. Principles of Software Engineering Management. 1988. Harlow, England: Addison Wesley Longman
JAC98
Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process. 1998. Addison Wesley Longman.
KER04
KERZNER, Harold PhD. Strategic Planning for Project Management Using a Project Management Maturity Model; John Wiley &
Sons, Inc., New York, 2001.
KRO03
Per Kroll e Philippe Kruchten 2003. The Rational Unified Process Made Easy, A Practitioners Guide to the RUP. Addison Wesley
Longman.
KRU98
P. Kruchten; The Rational Unified Process: An Introduction, Object Technology Series, Addison-Wesley, 1998.
IBM03
IBM. Rational Unified Process: A Best Practices Approach. IBM. 2003.
MSP91
MCMENAMIN, Stephen & PALMER, John. Análise essencial de sistemas. São Paulo : McGraw-Hill, 1991.
MOR13 MOREIRA, Márcio; OLIVEIRA, Rogério. Aplicabilidade do RUP para o desenvolvimento mobile. Pitágoras. 2013.
MYE79
MYERS, Glenford J. The art of software testing. New York: John Wiley & Sons, 1979.
PMB08 PMI. Um Guia do Conjunto de Conhecimentos em Gerenciamento de Projetos. 4ª Ed. Guia PMBOK©. USA. 2008. PMI.
PRE95
PRESSMAN, R. S. Engenharia de software. São Paulo: Makron Books. 1995.
RAT98
Rational. Rational Unified Process: Best Practices for Software Development Teams. Rational Software. 1998.
RUP08
IBM Rational. RUP – Rational Unified Process – 7.5 – For Large and Small Projects. 2008. IBM Rational.
SUM07 Sommerville, Ian. Engenharia de Software. 8ª Ed. Pearson / Prentice Hall. 2007.
YOU92
YOURDON, Edward. Análise estruturada moderna. Rio de Janeiro: Campus, 1992.
Márcio Moreira
Apresentação & Introdução – slide 46
Processo de Desenvolvimento de Software - RUP