rup tutorial

36
1 1 Processo Processo Gerenciamento de Projetos OO Gerenciamento de Projetos OO

Upload: renato-marques

Post on 04-Jul-2015

421 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: RUP Tutorial

11

ProcessoProcessoGerenciamento de Projetos OOGerenciamento de Projetos OO

Page 2: RUP Tutorial

22

ObjetivosObjetivos

w Examinar o ambiente de projetow Examinar o processo RUP (Rational Unified Process)w Ciclo de vida e o paradigma OOw Gerenciamento dirigido por análise de risco

Page 3: RUP Tutorial

33

Ambiente de Desenvolvimento de SoftwareAmbiente de Desenvolvimento de Software

w Todo projeto tem um ambiente de desenvolvimento• Consiste nas ferramentas ,• Códigos existentes,• Documentos ,• Modelos ,• Procedimentos ,• algum tipo de suporte interno.

w Apresenta algumas virtudes mas também deficiências• O ambiente pode ser um fator de sucesso ou de caos.

Page 4: RUP Tutorial

44

Características de um bom ambienteCaracterísticas de um bom ambiente

w Processo de desenvolvimento definidow Capacidade de configuração

do processo para um projeto específicow Integração entre processo e

ferramentasw Integração entre ferramentasw Gerenciamento de

configuraçãow Gerenciamento de mudançasw Gerenciamento de requisitos

w Desenvolvimento componentizadow Automação de testes

funcionais & desempenhow Gerenciamento de projetosw Automação de

documentaçãow Interface com o legadow Modelagem visualw Linguagem comum: UML

Page 5: RUP Tutorial

55

w Unified Modeling Language é a linguagem para:• Especificar• Visualizar• Construir• Documentar

os artefatos de software de um sistema

O Que é a UML?O Que é a UML?

Page 6: RUP Tutorial

66

Contribuições à UMLContribuições à UML

Fusion

Operation descriptions,Message numbering

Meyer

Before and after conditions

Harel

State charts

Wirfs-Brock

Responsibilities

Embley

Singleton classes, High-level view

Odell

Classification

Shlaer - Mellor

Object Lifecycles

Gamma, et.al

Frameworks, patterns,notes

BoochJacobsonRumbaugh

Page 7: RUP Tutorial

77

História da UMLHistória da UML

Page 8: RUP Tutorial

88

A UML Fornece Diagramas e ModelosA UML Fornece Diagramas e Modelos

DeploymentDiagrams

DeploymentDiagrams

Use CaseDiagramsUse CaseDiagramsUse Case

Diagrams

Use CaseDiagramsUse Case

DiagramsUse CaseDiagrams

ScenarioDiagramsScenarioDiagramsScenario

Diagrams

ScenarioDiagramsSequence

DiagramsSequenceDiagrams

StateDiagrams

StateDiagramsState

Diagrams

StateDiagramsState

DiagramsState

Diagrams

ComponentDiagrams

ComponentDiagramsComponent

Diagrams

ComponentDiagramsComponent

DiagramsComponentDiagrams

Modelos

StateDiagrams

StateDiagramsState

Diagrams

StateDiagramsObject

DiagramsObject

Diagrams

ScenarioDiagramsScenarioDiagramsScenario

DiagramsScenario

DiagramsCollaborationDiagrams

CollaborationDiagrams

Use CaseDiagrams

Use CaseDiagramsUse Case

DiagramsUse CaseDiagramsActivity

Diagrams

ActivityDiagrams

StateDiagrams

StateDiagramsState

DiagramsState

DiagramsClassDiagrams

ClassDiagrams

Page 9: RUP Tutorial

99

Exemplo de um Diagrama de ClassesExemplo de um Diagrama de Classes

Course

CourseOffering IndependentStudy

0..*

0..*

1

1..*

+ Pre-requisite

“One Course in the role of a pre-requisite is related to

zero to many Courses.”

“One Course is related to zero to many Courses

playing the role of a pre-requisite.”

Page 10: RUP Tutorial

1010

Linguagem deModelagem

ProcessoUnificado

Trabalho em Equipe

Modelos e Linguagem não são suficientes!Modelos e Linguagem não são suficientes!

Page 11: RUP Tutorial

1111

Requisitos novos

ou modificadosSistema novo

ou modificado

Processo de EngenhariaProcesso de Engenhariade Softwarede Software

O Que é um Processo?O Que é um Processo?

Um processo define Quem está fazendo O Que,Quando e Como para atingir um certo objetivo.Na Engenharia de Software o objetivo é construir ou melhorar um produto de software.

Page 12: RUP Tutorial

1212

Requisitos novos

ou alteradosSistema novo

ou alteradoProcessoProcesso

Características de um bom processoCaracterísticas de um bom processo

w Configurável para diferentes organizaçõesw Adaptável para diferentes tamanhos e tipos de projeto

§ Mantendo a mesma capacidade de coleta de métricas

w Bem definido, gerenciável e repetível§ Com nomenclatura universal, heuríscas e métricas para planejamento

e gerenciamento de projeto

w Integrado com ferramentas que o suportem

Page 13: RUP Tutorial

1313

Objectory Process 3.8

RationalApproach

Rational Objectory Process 4.0

Rational Objectory Process 4.1

SQAProcess

RequirementsCollege

UML 0.8

Rational Unified Process 5.1

Configuration& change Mgmt

1995

BusinessEngineering

Data Engineering

ObjectoryUI design

Performancetesting

UML 1.1

OMT,Booch

Rational Unified Process 5.5

SPC / PMIProject ManagementPMBOK

Contribuições ao Rational Unified ProcessContribuições ao Rational Unified Process

Page 14: RUP Tutorial

1414

w Orientações dee-development

w Orientações dee-business

w Capacidade depersonalizaçãoe pequenos projetos

w IBM e Microsoft

w Orientações dee-development

w Orientações dee-business

w Capacidade depersonalizaçãoe pequenos projetos

w IBM e Microsoft

História do RUPHistória do RUP

Versão 4.1

Versão 4.1

19971997w Processode

Teste SQAw Requirements

College

w ProcessodeTeste SQA

w RequirementsCollege

Versão 5.1

Versão 5.1

19981998w Modelagem

do Negóciow Gerenc. de

configuraçãoe mudanças

w Modelagemdo Negócio

w Gerenc. de configuraçãoe mudanças

Versão5.5

Versão5.5

19991999w Gerenc. de

Projetosw ROOM em

Tempo Real

w Gerenc. deProjetos

w ROOM emTempo Real

20002000

Versão 4.0

Versão 4.0

19961996w Abordagem

Rationalw Processo por

Objetivosw OMT

Booch

w AbordagemRational

w Processo porObjetivos

w OMT Booch

Versão 2000.03Versão 2000.03

Versão 2001A.04Versão

2001A.04

20012001w Opcionais de

processo:w J2EE w BEA

WebLogic Server

w Rational Unified Partner Program

w Opcionais deprocesso:w J2EE w BEA

WebLogic Server

w Rational Unified Partner Program

Page 15: RUP Tutorial

1515

Notação do processoNotação do processo

Role

Activity

Artifact

Describe a Use Case

Use-Case Package

Use Case

responsible for

Use-Case Specifier

Unidade de trabalho que o papel deve desempenhar

Informação produzida, documento ou modelo do processo

Papel que descreve a função que deve ser desempenhada por um ou mais indivíduos no processo de desenvolvimento

Page 16: RUP Tutorial

1616

Exemplo de uma atividade no processoExemplo de uma atividade no processo

Architect

Designer

ArchitecturalAnalysis

ArchitectureReviewer

Review theDesign

Review theArchitecture

Use-CaseAnalysis

ArchitecturalDesign

DescribeConcurrency

DescribeDistribution

DatabaseDesigner

ClassDesign

SubsystemDesign

Use-Case Design

DatabaseDesign

DesignReviewer

Activity:Class Design

“Collection of methods,

techniques, heuristics and

experience organized to

produce a design.”

Page 17: RUP Tutorial

1717

Disciplinas agrupam atividadesDisciplinas agrupam atividades

Analysis & Analysis & DesignDesign

RequirementsRequirements

ImplementationImplementation

TestTest

BusinessBusinessModelingModeling Modelagem dos processos de negócio

Especificação de requisitos de software

Modelagem da aplicação

Codificação da aplicação

Testes de qualidade e homologação

Page 18: RUP Tutorial

1818

Fluxos de trabalho nas Disciplinas criam modelosFluxos de trabalho nas Disciplinas criam modelos

Analysis & Analysis & DesignDesign

ImplementationModel

TestModel

Realizado por…

Implementado por…

Verificado por…

RequirementsRequirements

ImplementationImplementation

TestTest

Use-CaseModel

DesignModel

BusinessBusinessModelingModeling Business

Use-Case Model Automatizado por…Business

Object Model

Page 19: RUP Tutorial

1919

Exemplo de documentação do processoExemplo de documentação do processo

Purpose:

Analysis & Design Artifacts

Steps:

Input Artifacts: Resulting Artifacts:

Role:

Tool Mentor:

Activity: Class Design Quem, o que, quando e como...

Page 20: RUP Tutorial

2020

O Modelo de ciclo-de-vidaO Modelo de ciclo-de-vida

Code and unit test

Design

Subsystem integration

Requirements analysis

System test

Processo Waterfall Processo Iterativo

• Dirigido-por-requisitos eorientado somente ao cliente

• Resolve riscos tardiamente• Deseconomia de escala

• Dirigido-por-Arquitetura ebaseado em componentes

• Resolve riscos mais cedo• Economia de escala

Page 21: RUP Tutorial

2121

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Fases do ciclo-de-vidaFases do ciclo-de-vida

O RUP - Rational Unified Process tem 4 fases:§ Inception - Define escopo e planos iniciais§ Elaboration - Planeja o projeto, especifica

características, experimenta a arquitetura§Construction - Construção do produto§ Transition - Implanta o produto para a comunidade de

usuários finais

tempo

Page 22: RUP Tutorial

2222

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Fronteiras das fases são Marcos de ProjetoFronteiras das fases são Marcos de Projeto

LCO LCA IOC PR

tempo

O RUP tem 4 grandes marcos de projeto:§ Lifecycle objetive - Caracteriza uma concepção inicial§ Lifecycle architecture - Define a obtenção de uma arquitetura§ Initial operational capability - Caracteriza final de construção § Product release - liberação geral do produto

Page 23: RUP Tutorial

2323

Uma Fase pode ter várias IteraçõesUma Fase pode ter várias Iterações

Uma Uma iteração é uma sequência definida de atividades com é uma sequência definida de atividades com um plano e critérios estabelecidos, resultando em uma um plano e critérios estabelecidos, resultando em uma versão de executável (interno ou externo)versão de executável (interno ou externo)

IteraçãoIteraçãopreliminarpreliminar

IteraçãoIteraçãoArquit.Arquit.

IteraçãoIteraçãoArquit.Arquit.

IteraçãoIteraçãoDesen.Desen.

IteraçãoIteraçãoDesen.Desen.

IteraçãoIteraçãoDesen.Desen.

IteraçãoIteraçãoLiberaçãoLiberação

IteraçãoIteraçãoLiberaçãoLiberação

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Marcos menores: Releases

Page 24: RUP Tutorial

2424

Uma Iteração é um Ciclo de Geração de Release Uma Iteração é um Ciclo de Geração de Release

IteraçãoIteraçãopreliminarpreliminar

IteraçãoIteraçãoArquit.Arquit.

IteraçãoIteraçãoArquit.Arquit.

IteraçãoIteraçãoDesen.Desen.

IteraçãoIteraçãoDesen.Desen.

IteraçãoIteraçãoDesen.Desen.

IteraçãoIteraçãoLiberaçãoLiberação

IteraçãoIteraçãoLiberaçãoLiberação

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

A Iteração executa o ciclo completo de criação de uma parte do sistema, gerando o executável correspondente. Esta “parte do sistema” é definida pelos Casos-de-Uso escolhidos para essa iteração.

Codificação e testeDesign Integração de subsistema Teste de sistemaAnálise de requisitos Avaliação

Page 25: RUP Tutorial

2525

TEMPO

Teste de Subsistema

Teste deSistema

Codificação& Teste

Análise &Design

Análise deRequisitos

Desenvolvimento tradicional (Waterfall)Desenvolvimento tradicional (Waterfall)

Page 26: RUP Tutorial

2626

Teste deSistema

O Ciclo de vida iterativo é Espiral, não WaterfallO Ciclo de vida iterativo é Espiral, não Waterfall

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Teste de Subsistema

Codificação& Teste

Análise &Design

Análise deRequisitos

IC

DR

T IC

DR

TI

CDR

TI

CDR

TI

CDR

T

Page 27: RUP Tutorial

2727

Características do desenvolvimento waterfallCaracterísticas do desenvolvimento waterfallw Atrasa a confirmação de uma

possível solução dos riscos críticos

w Mede o progresso diagnosticando os produtos de trabalho, que são previsores muito pobres do tempo para completar o projeto (ou do estado do projeto)

w Atrasa e aglutina os testes com a integração

w Dificulta ou impede a liberação intermediária

w Resulta frequentemente em iterações não planejadas

Codificação e teste

Design

Integração de subsistema

Teste de sistema

Processo em Cascata

Análise derequisitos

Page 28: RUP Tutorial

2828

Resultados do desenvolvimento waterfallResultados do desenvolvimento waterfall

Início da IntegraçãoBum!

Ajuste tardio de DesignPerda de Controle

100%

Tempo de Projecto

Prog

ress

o do

des

envo

lvim

ento

em %

de c

odifi

caçã

o)

OriginalData de Entrega

Atividades sequenciais:Requisitos Design Codificação Integração Teste

Page 29: RUP Tutorial

2929

Características do desenvolvimento iterativoCaracterísticas do desenvolvimento iterativo

w Resolve os maiores riscos antes dos maiores investimentosw Capacita o feedback de usuário mais cedow Torna o teste e a integração contínuosw Focaliza objetivos de curto prazow Torna possível a entrega de implementações parciais

Tempo

Iteration 1 Iteration 2 Iteration 3

IC

DR

TI

CD

R

TI

CD

R

T

Page 30: RUP Tutorial

3030

RISCO

T E M P O

Teste deSubsistema

Teste de sistema

Codificação & Teste

Análise &Design

Análise de Requisitos

O waterfall atrasa a redução do riscoO waterfall atrasa a redução do risco

Page 31: RUP Tutorial

3131

“Waterfall”Iterativo-controlado

RISCO

T E M P O

Iteração Iteração Iteração Iteração Iteração Iteração Iteração

O iterativo-controlado acelera a redução de riscoO iterativo-controlado acelera a redução de risco

Page 32: RUP Tutorial

3232

Exp

osiç

ão d

e R

isco

s do

Pro

jeto

Ciclo de Vida do ProjetoBaixo

Alto

dos RiscosExploraçãoPeríodo de

Riscos ControladosPeríodo de

Convencional (Waterfall)

Perfil de risco doprojeto

Inception Elaboration Construction Transition

Iterativo-Controlado

Perfil de risco doprojeto

Perfil da redução de riscoPerfil da redução de risco

dos RiscosResoluçãoPeríodo de

Page 33: RUP Tutorial

3333

Iterações iniciais abordam os maiores riscosCada iteração produz uma versão executável, um incremento adicional ao sistemaCada iteração inclue integração e testes acumulativos

TC

DR

T E M P O

TC

DR

TC

DR

Aplicamos o waterfall iterativamente, em incrementosAplicamos o waterfall iterativamente, em incrementos

Elaboração

Iteração 1 Iteração 2 Iteração 3

Page 34: RUP Tutorial

3434

Um ciclo do processo iterativoUm ciclo do processo iterativo

Planejamento Inicial

Planejamento

Requisitos

Análise e Design

Implementação

Implantação

Teste

Avaliação

Ambiente de Gerenciamento

Sobre este ambiente a disciplina de Project Management irá atuar

Page 35: RUP Tutorial

3535

Project ManagementEnvironment

Business Modeling

Implementation

Test

Analysis & Design

Iteraçõespreliminares

Iter.#1

FasesDisciplinas de Processos

Iterações

Disciplinas de Suporte

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration & Change Mgmt

Requirements

Elaboration TransitionInception Construction

Gráfico Modelo de Iteração (“humpback whale chart”)Gráfico Modelo de Iteração (“humpback whale chart”)

Project Management

Page 36: RUP Tutorial

3636

O RUP é integrado com ferramentas RationalO RUP é integrado com ferramentas Rational

RoseRose• Mentores de

ferramentas• Scripts degeração de

relatórios• Íconesde estereótipos

• Mentores deferramentas

• Scripts degeração derelatórios

• Íconesde estereótipos

TestManagerTestManager• Mentores de

ferramentas• Modelos de teste

• Mentores deferramentas

• Modelos de teste

RobotRobot• Mentores de

ferramentas• Modelos de teste

• Mentores deferramentas

• Modelos de teste

ClearQuestClearQuest• Diretrizes de

Rastreamento de Defeitos• Mentores de ferramentas

• Diretrizes deRastreamento de Defeitos

• Mentores de ferramentas

ClearCaseClearCase• Mentores de

ferramentas• Diretrizes de

GM

• Mentores deferramentas

• Diretrizes de GM

RequisiteProRequisitePro• Mentores de

ferramentas • Modelos de

requisitos

• Mentores deferramentas

• Modelos derequisitos

SoDASoDA• Mentores de

ferramentas• Modelos de

documento

• Mentores deferramentas

• Modelos dedocumento

PurifyQuantify

PureCoverage

PurifyQuantify

PureCoverage• Mentores de

ferramentas• Mentores de

ferramentas