introdução ao rup

50
Professor: Rodrigo Gomes da Silva Assunto: Introdução ao Processo Iterativo com RUP Novembro / 2013

Upload: rodrigo-gomes-da-silva

Post on 06-Jun-2015

791 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Introdução ao RUP

Professor: Rodrigo Gomes da Silva

Assunto: Introdução ao Processo Iterativo com RUP

Novembro / 2013

Page 2: Introdução ao RUP

Apresentação

• Certificações– IBM Certified RMUC – Requirements Management with Use Cases Part 1– IBM Certified RMUC – Requirements Management with Use Cases Part 2

• Formação:– Especialista em Design Instrucional para EaD Virtual (UNIFEI)– Especialista em Docência do Ensino Superior (FINOM)– Bacharel em Sistemas de Informação (UEMG)– Técnico em Processamento de Dados (CETEV)

• Atualmente:– Analista de Requisitos na IBM do Brasil - SP– Professor Universitário – UNIS-MG

• Atuações Anteriores– Professor Universitário – FACECA– Professor Universitário – UNINCOR– Professor Universitário – FIPV– Analista de Sistemas – Sindicato Rural da Campanha– Gerente de TI – Santa Casa de Misericórdia da Campanha

Rodrigo Gomes da SilvaContatos:[email protected]@[email protected] Redes Sociais

http://www.linkedin.com/pub/rodrigo-gomes-da-silva/37/568/716https://twitter.com/rodrigogomes3https://www.facebook.com/rodrigo.gomesdasilva.92

Page 3: Introdução ao RUP

AgendaAgenda• Sintomas dos problemas de desenvolvimento de software• As 6 melhores práticas da Engenharia de Software• Princípios do Desenvolvimento Iterativo• Processo de Desenvolvimento RUP – Rational Unified Process• Fases do RUP• Disciplinas do RUP• Papéis, Atividades e Artefatos do RUP• Acessar uma Instância do RUP• Documento Visão

Page 4: Introdução ao RUP

Sintomas dos Problemas de Desenvolvimento Sintomas dos Problemas de Desenvolvimento de Softwarede Software• Necessidade dos usuários e do negócio não são totalmente

compreendidas• Módulos não integrados• Dificuldade de manutenção• Qualidade ruim na experiência do usuário final• Time descordenado

Page 5: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware• Desenvolvimento iterativo• Gestão de requisitos• Arquitetura baseada em componentes• Modelagem Visual (UML)• Verificação Contínua da Qualidade• Gestão de Mudanças

Page 6: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware• Desenvolvimento em Cascata

Planejamento

Análise Requisitos

Design

Codificação / Teste

Integração Sub-Sistemas

Teste de Sistemas

– Atraso na percepção e resolução de riscos críticos

– Impede a implantação antecipada

– Frequentemente resulta em grandes iterações planejadas

– A fase seguinte só inicia quando a fase anterior termina

– Dificuldade em realizar mudanças com o projeto em andamento

Page 7: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 1 - Desenvolvimento Iterativo– Resolve maiores riscos

antes de grandes investimentos

– Permite conhecer um feedback do usuário mais cedo

– Realiza testes e integrações contínuamente

– Define marcos do projeto a curto prazo

– Permite implantações parciais

Page 8: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 1 - Desenvolvimento Iterativo

Page 9: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Risco ( Cascata x Iterativo)

Page 10: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 2 - Gestão de Requisitos– Certifica-se de resolver o problema certo e construir o sistema

correto– Através de uma abordagem sistêmica para:

• Compreensão do problema.• Elicitar, organizar e documentar os requisitos.• Gerenciando as novas exigências de uma aplicação de software (Change

Request)

Page 11: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 3 - Arquitetura Baseada em Componentes– Reuso e customizção de componentes– Selecione a partir de componentes disponíveis

comercialmente– Evoluir software existente de forma incremental– Maior encapsulamento

Page 12: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 4 - Modelagem Visual - UML– Captura a estrutura e o comportamento– Mostra como os elementos do sistemas se

encaixam– Mantém uma conscistência entre concepção e

implementação– Esconde ou expõe detalhes quando necessário– Promove uma comunicação não ambígua

Page 13: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 5 - Verificação Contínua da Qualidade– Dimensões de Teste da Qualidade

• Funcionalidade• Usabilidade• Confiança• Suportabilidade• Performance

Page 14: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 5 - Verificação Contínua da Qualidade– Funcionalidade

• Testa o funcionamento preciso de cada cenário de uso da aplicação

– Usabilidade• Testa o aplicativa a partir da perspectiva de

conveniência para o usuário final

– Confiança• Testa se o aplicativo possui um comportamento

consistente e previsível

Page 15: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 5 - Verificação Contínua da Qualidade– Suportabilidade

• Testa a capacidade de manter e apoiar o aplicativo no momento em que está em produção

– Performance• Teste de carga com média e alto de pico

Page 16: Introdução ao RUP

As 6 Melhores Práticas da Engenharia de As 6 Melhores Práticas da Engenharia de SoftwareSoftware

• Melhor Prática 6 - Change Request Management (Gestão da Solicitação de Mudanca)

Requisito

Design

Codificação

Teste

Manutenção

Canal de Aprovação

Novas características

Novos requisitos

Bug

Change request

Clientes e usuários

Marketing

Codificadores e testadores

Outros stakeholders

As solicitações de mudança podem vir de várias fontes durante o ciclo de vida do produto.

Page 17: Introdução ao RUP
Page 18: Introdução ao RUP

RUP – Rational Unified ProcessRUP – Rational Unified Process

• O RUP é um processo de engenharia de software.

– Abordagem disciplinar de atribuir tarefas e responsabilidades em um processo de desenvolvimento de uma organização.

• O RUP é um Framework. – Pode ser instanciado

gerando diversos processos.• Dependentes da organização.• Dependentes da aplicação.

Nenhum processo é adequado para todos as

organizações/aplicações.

Page 19: Introdução ao RUP

Processo de Desenvolvimento RUPProcesso de Desenvolvimento RUP

• Um processo define quem está fazendo o quê, quando e como alcançar um determinado objetivo.

• Roteiro para um desenvolvimento eficiente e de qualidade.– Aborda as melhores práticas

• Visando reduzir o risco e o custo do projeto.

Processo de Engenharia de

Software

Novos requisitos

ou requisitos alterados

Sistema novo ou

melhorado

Page 20: Introdução ao RUP

Processo de Desenvolvimento RUPProcesso de Desenvolvimento RUP

•Um processo descreve quem está fazendo o que, como e quando.

– Papéis• Quem

– Atividades• Como

– Artefatos• O que

– Disciplinas• Quando

Page 21: Introdução ao RUP

Instância do RUP – Rational Unified ProcessInstância do RUP – Rational Unified Process

Download Rational Method Composerhttp://www.ibm.com/developerworks/br/downloads/r/rup/

Page 22: Introdução ao RUP

Instância do RUP – Rational Unified ProcessInstância do RUP – Rational Unified Process

Instância Online do RUPhttp://www.wthreex.com/rup/v711_ptbr/index.htm

Page 23: Introdução ao RUP

Fases do RUPFases do RUP

IniciaçãoElaboraçãoConstruçãoTransição

Page 24: Introdução ao RUP

Fases do RUPFases do RUPFase de Iniciação

Formular o escopo do projeto. Isso envolve capturar o contexto, bem como os requisitos e as restrições mais importantes, para que seja possível depreender critérios de aceitação para o produto final. Planejar e preparar um caso de negócios. Avaliar alternativas para o gerenciamento de riscos, as equipes de pessoal, o plano do projeto e as mudanças de custo/planejamento/lucratividade. Sintetizar uma sugestão de arquitetura, avaliando as mudanças no design e em fazer/comprar/reutilizar para que seja possível calcular custo, planejamento e recursos.

Preparar o ambiente para o projeto, avaliando o projeto e a organização, selecionando ferramentas e decidindo quais partes do processo aprimorar.

Page 25: Introdução ao RUP

Fases do RUPFases do RUPFase de Elaboração

Definir, validar e criar a baseline da arquitetura, com rapidez e praticidade. Refinar a Visão, com base nas informações novas obtidas durante a fase, estabelecendo uma compreensão sólida dos casos de uso mais críticos que conduzem as decisões de arquitetura e planejamento. Criar planos de iteração detalhados de baselines para a fase de construção.

Refinar o processo de desenvolvimento e posicionar o ambiente de desenvolvimento

Refinar a arquitetura e selecionar componentes. Os componentes potenciais são avaliados e as decisões de fazer/comprar/reutilizar são bem compreendidas para determinar o custo da fase de construção e programar com confiança.

Page 26: Introdução ao RUP

Fases do RUPFases do RUPFase de Construção

Gerenciamento de recursos, otimização de controle e processo Desenvolvimento completo do componente e teste dos critérios de avaliação definidos

Avaliação dos releases do produto de acordo com os critérios de aceitação para a visão

Page 27: Introdução ao RUP

Fases do RUPFases do RUPFase de Transição

Executar planos de implementação

Finalizar o material de suporte para o usuário final

Testar o produto liberado no local do desenvolvimento

Criar um release do produto

Obter feedback do usuário

Ajustar o produto com base em feedback

Tornar o produto disponível aos usuários

Page 28: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUP

• Modelagem de Negócios• Requisitos• Análise e Design• Implementação• Teste• Implantação• Gerenciamento de Configuração e Mudança• Gerenciamento de Projetos• Ambiente

Page 29: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPModelagem de Negócios

• Entender os problemas da organização identificando as possíveis melhorias

• Avaliar o impacto de mudanças na organização;

• Assegurar que os clientes, usuários, desenvolvedores e outros parceiros tenham uma compreensão comum da organização;

• Gerar conteúdo para a fase de requisitos do sistema que suportará a organização e seus processos;

•Entender como o software se ajustará à organização.

Page 30: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPRequisitos

• Estabelecer e manter concordância com os clientes e outros investidores sobre o que o sistema deve fazer.

• Oferecer aos desenvolvedores do sistema uma compreensão melhor dos requisitos do sistema.

• Definir os limites do sistema (ou delimitar o sistema).

• Fornecer uma base para planejar o conteúdo técnico das iterações.

• Fornecer uma base para estimar o custo e o tempo de desenvolvimento do sistema.

• Definir uma interface de usuário para o sistema, focando nas necessidades e metas dos usuários

Page 31: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPAnálise e Design

• Transformar os requisitos em um design do sistema a ser criado.

• Desenvolver uma arquitetura sofisticada para o sistema.

• Adaptar o design para que corresponda ao ambiente de implementação, projetando-o para fins de desempenho.

Page 32: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPImplementação

• Definir a organização do código em termos de subsistemas de implementação organizados em camadas

• Implementar os elementos de design em termos de elementos de implementação (arquivos de origem, executáveis e outros)

• Testar os componentes desenvolvidos como unidades

• Integrar os resultados produzidos por implementadores individuais (ou equipes) ao sistema executável

Page 33: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPTeste

• Localizar e documentar defeitos na qualidade do software.

• Sugestões sobre a qualidade do software.

• Validar e provar as suposições feitas nas especificações de projeto e requisitos através de demonstração concreta.

• Validar se o software funciona conforme o projeto.

• Validar se os requisitos são implementados adequadamente.

Page 34: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPImplantação

• Produzir com sucesso lançamentos de produtos e entregar o software para seus usuários finais.

• Produção de releases externos do software, a embalagem do software e aplicativos de negócios, distribuição do software, instalação do software e prestação de ajuda e assistência aos usuários.

Page 35: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPGerenciamento de Configuração e Mudanças

• Controlar os vários produtos do trabalho

• Gerenciar diversas variantes de sistemas de software em desenvolvimento

• Controlar as versões que são utilizadas em determinados builds do software

• Permitir atualização simultâneas

Page 36: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPGerenciamento de Projetos

• Fornecer uma estrutura para gerenciar projetos software intensivo. • Fornecer orientação prática para planejar, formar a equipe, executar e monitorar projetos • Fornecer uma estrutura para gerenciar riscos • Gerenciamento de pessoas: contratar, treinar, instruir • Gerenciamento de orçamento: definir, alocar e assim por diante • Gerenciamento de contratos, com fornecedores e clientes

• Planejamento de um projeto repetitivo, através do ciclo de vida e por uma iteração específica • Monitoramento do progresso de um projeto repetitivo

Page 37: Introdução ao RUP

Disciplinas do RUPDisciplinas do RUPAmbiente

• Fornecer a organização de desenvolvimento de software com o ambiente de desenvolvimento de software -- para processos e ferramentas -- que oferecerão suporte à equipe de desenvolvimento.

Page 38: Introdução ao RUP

Iteração no RUPIteração no RUPO que é uma Iteração?

• Envolve as atividades de desenvolvimento que levam ao release

• Uma passagem completa por pelo menos as disciplinas:• Requisitos• Análise e Design• Implementação• Teste

• É como um pequeno projeto cascata

Page 39: Introdução ao RUP

Iteração no RUPIteração no RUPPor que Iterar?

• Projetos organizados para percorrer cada disciplina em sequencia, abordagem “cascata”

Page 40: Introdução ao RUP

Iteração no RUPIteração no RUPPor que Iterar?

• A iteração permite percorrer várias vezes as diversas disciplinas de desenvolvimento:

• Melhor entendimento dos requisitos

• Planejamento de uma arquitetura robusta

• Organiza o desenvolvimento

• Libera uma série de implementações que são gradualmente mais complexas

Page 41: Introdução ao RUP

RUP – Análise eixos Horizontal - VerticalRUP – Análise eixos Horizontal - Vertical

Page 42: Introdução ao RUP

Papéis do RUPPapéis do RUP

•É uma definição abstrata para um conjunto de atividades realizadas e seus artefatos.

•Um papel pode ser realizado por:– um pessoa ou– uma equipe

•Um papel corresponde a:– Responsabilidades e – Comportamentos.

Exemplos

Page 43: Introdução ao RUP

Papéis do RUPPapéis do RUP

• Atribuições– Coleta de todos os conjuntos de funções publicados. Identificam

os principais papéis e atividades de cada papél do time.

Page 44: Introdução ao RUP

Papéis do RUPPapéis do RUP

• Analistas– Sistemas, Processos de negócios, Projeto de Negócios, Revisor do modelo de

Negócios, Revisor de requisitos, Requisitos, Projetista de interface.

• Desenvolvedores– Arquiteto, Designer, Database Designer, Programador, Integrador, Revisor da

arquitetura, Revisor de código

• Testadores– Testador– Projetista de testes

• Gerentes– Projeto, Processo, Configuração, Mudanças, Revisão de projeto

Page 45: Introdução ao RUP

Papéis do RUPPapéis do RUP

• Exemplo do Papél Analista de Sistemas

Page 46: Introdução ao RUP

Atividades do RUPAtividades do RUP•Atividade

– Uma atividade é uma unidade de trabalho atribuída a um papel.

– A atividade tem um propósito claro.

• Criação e atualização de artefatos.

– A atividade deve ser utilizada como elemento para planejamento e controle de progresso.

•Exemplo de atividades:– Planejar uma iteração.

• Papel: Gerente de Projeto.– Identificar atores e use cases.

• Papel: Analista de Sistemas.– Revisar o design.

• Papel: Revisor

•Atividades e Artefatos:– As atividades estão estritamente

ligadas a artefatos.– Os artefatos são as entradas ou

saídas de uma atividade.– Os artefatos servem como

mecanismo de comunicação entre as atividades.

Page 47: Introdução ao RUP

Artefatos do RUPArtefatos do RUP

•Artefato– Um artefato é um pedaço de

informação que é produzido, modificado ou utilizado pelo processo.

– Artefatos podem ser:• Modelos.• Elementos de Modelo.• Documentos.• Código Fontes.• Executáveis.

•Artefatos podem ser expresso:– Visualmente.– Textualmente.

: anActor

anActor

Page 48: Introdução ao RUP

Documento VisãoDocumento Visão• Esta tarefa descreve como desenvolver a visão geral para o sistema, incluindo o problema a ser resolvido, os investidores chave, o escopo/limite do sistema, os recursos-chave do sistema e quaisquer restrições. A finalidade dessa tarefa é:

• Estabelecer um acordo sobre quais problemas precisam ser resolvidos.• Identificar investidores do sistema. • Definir os limites do sistema. • Descrever os principais recursos do sistema.

Page 49: Introdução ao RUP

Certificação em RUPCertificação em RUP

IBM Certified Solution Designer - IBM Rational Unified Process V7.0

http://www-03.ibm.com/certify/certs/38008003.shtml

Page 50: Introdução ao RUP

Atividade PráticaAtividade Prática• Dividir a sala em 4 grupos

• Desenvolver o Documento Visão dos sistemas propostos:

• Controle acadêmico de notas

• Controle de recebimento de mensalidades

• Controle de contas à pagar

• Controle de empréstimos de livros de uma biblioteca

• Cada grupo deverá apresentar o Documento Visão Construído

Template Documento Visão