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