A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Visão Geral do RUP (Rational Unified Process)

Apresentações semelhantes


Apresentação em tema: "Visão Geral do RUP (Rational Unified Process)"— Transcrição da apresentação:

1 Visão Geral do RUP (Rational Unified Process)

2 Objetivos deste módulo
Apresentar as características do RUP Discutir os conceitos que existem no RUP: fases, fluxos de atividades (worklows), iterações, responsáveis, atividades e artefatos Apresentar os fluxos do RUP Desenvolvimento de software com UML

3 Desenvolvimento de software com UML
RUP e UML O que é o RUP? Processo Unificado de desenvolvimento de software Diz o quê, quando e por quem, mas não explica como Necessidade a partir do sucesso da UML como padrão de fato para especificação de software E UML? Unified Modeling Language Linguagem padrão para modelagem OO Usada para modelar e documentar os artefatos do desenvolvimento Foi proposta somente como uma linguagem, sem orientação de uso (i.e., sem um processo) Desenvolvimento de software com UML

4 Alguns diagramas de UML
Diagrama de casos de uso Diagrama de classes Diagrama de sequência Diagrama de colaboração Desenvolvimento de software com UML

5 Apenas a linguagem não basta
+ + + + Desenvolvimento de software com UML

6 Desenvolvimento de software com UML
O que é um Processo? Conjunto de atividades a serem realizadas para construir software ou evoluir um sistema já existente Define Quem faz O quê, Quando e Como Desenvolvimento de software com UML

7 Desenvolvimento de software com UML
Processos de Software Definição: “Todos os elementos do mundo real envolvidos no desenvolvimento e manutenção de um produto de software” Processos vem sendo propostos pela indústria, países e academia Análise Estruturada (Yourdon, Gane) Método de Jackson Objectory (Jacobson) V-Model (Alemanha) Catalysis Rational Unified Process - RUP XP - eXtreme Programming Desenvolvimento de software com UML

8 Características de um Processo Eficiente
Orienta o desenvolvimento, operação e manutenção de software Reduz risco e aumenta previsibilidade Utiliza boas práticas de desenvolvimento de software Permite controle sobre o desenvolvimento - dentro de custos, prazos e níveis de qualidade desejados Qualidade x produtividade Desenvolvimento de software com UML

9 Processo Unificado (RUP)
Bases históricas: Processo Espiral Iteratividade Gerência de riscos Processo Objectory Proposto por Jacobson et al Processo direcionado por Casos de Uso Desenvolvimento de software com UML

10 O que é Processo Unificado
Modelo de Processo Padrão Descrição de atividades que compõem um processo que adota UML Mais simples que a proposta da Rational Produto comercial Desenvolvido e mantido pela Rational Integrado a uma suíte de produtos Disponível em CD-ROM / Internet Conhecido como Rational Unified Process E-coach: treinamento a distância Para o treinamento online, clicar em “Trials & Betas” Desenvolvimento de software com UML

11 Características do RUP
Usa UML Baseado em componentes Framework para processos Orientado a casos de uso Iterativo e incremental Centrado na arquitetura Desenvolvimento de software com UML

12 Orientado a Casos de uso
O que é um caso de uso? Usados para capturar os requisitos funcionais do sistema “Falam” a “linguagem do usuário” Estão sempre associados a um ator Representação de uma funcionalidade do sistema, que fornece um resultado de valor para um usuário Desenvolvimento de software com UML

13 Orientado a Casos de uso
Por que o RUP é orientado a casos de uso? Casos de uso são usados para especificar requisitos Durante a análise, projeto e implementação os casos de uso são “realizados” Durante os testes, verifica-se se o sistema realiza o que está descrito no Modelo de Casos de Uso Casos de uso são usados no planejamento e acompanhamento das iterações O RUP é orientado a casos de uso porque estes direcionam todo o processo de desenvolvimento: os requisitos são especificados através de casos de uso; durante a análise, projeto e implementação os desenvolvedores ocupam-se de, partido do modelo de use cases, formar modelos cada vez mais concretos que mostram como os casos de uso serão “realizados”, isso é, como eles irão acontecer. Com a implementação chega-se ao nível mínimo de abstração que é o sistema executável que realiza concretamente a funcionalidade dos casos de uso; durante os testes, verifica-se se o sistema realmente está realizando tudo que o Modelo de casos de uso descreve; o RUP é um processo iterativo, e o gerente do projeto utiliza os casos de uso para determinar que partes do sistema devem ser trabalhadas em cada iteração. Assim, por exemplo, na iteração x espera-se que os casos de uso A, B e C sejam implementados. E no final da iteração a implementação ou não dos casos de uso escolhidos servirá como feedback para o acompanhamento do projeto. Desenvolvimento de software com UML

14 Iterativo e Incremental
Tempo R A/P I/T I Fonte: Rational Desenvolvimento de software com UML

15 Iterativo e Incremental
Dividir para conquistar! O desenvolvimento ocorre em várias iterações, cada uma delas resultando em extensão de funcionalidade e/ou maior conhecimento do sistema Os maiores riscos devem ser tratados nas primeiras iterações Em cada iteração: são identificados e especificados os casos de uso mais relevantes; é feita a análise e projeto dos casos de uso (das funcionalidades descritas pelos casos de uso), usando-se a arquitetura como guia; são implementados componentes que realizam o que foi projetado; verifica-se se os componentes satisfazem os casos de uso escolhidos; A escolha dos casos de uso é baseada em uma análise dos riscos envolvidos no projeto. A prioridade é sempre dos casos de uso que apresentam os maiores riscos. Estes devem ser realizados primeiro, para resolver os riscos o quanto antes! Desenvolvimento de software com UML

16 Centrado na Arquitetura
Estimula a definição de uma arquitetura robusta nas fases iniciais do desenvolvimento A arquitetura guia o projeto e implementação das diversas partes do sistema Sabemos o que a escolha de uma arquitetura inadequada pode fazer a um projeto… Principalmente se o erro for descoberto em etapas avançadas do desenvolvimento. O RUP prega que se considere aspectos importantes para a definição da arquitetura logo no início do desenvolvimento. Ele exige que a arquitetura do sistema seja definida e testada nas primeiras iterações do processo, antes que a produção de código em larga escala tenha iniciado. Vimos que o processo é orientado a casos de uso e centrado na arquitetura. O que isso quer dizer? Que estes dois aspectos guiam, em conjunto, o desenvolvimento. Os casos de uso determinam o que deve ser feito e a arquitetura descreve como os casos de uso devem ser realizados. Os casos de uso dizem o que deve ser feito e a arquitetura descreve como Desenvolvimento de software com UML

17 Visão 4+1 Casos de Uso VISÃO DE IMPLEMENTAÇÃO
Descreve a organização dos elementos estáticos do software (código, dados e outros artefatos que os acompanham) no ambiente de desenvolvimento em termos de empacotamento, divisão em camadas e gerenciamento de configuração (propriedade, estratégia de release e assim por diante). VISÃO LÓGICA Descreve as principais classes no projeto do sistema: classes relacionadas aos principais negócios e classes que definem os principais mecanismos estruturais e comportamentais (persistência, comunicações, tolerância a falhas, interface do usuário). Visão Lógica Visão de Implementação Casos de Uso VISÃO DE PROCESSO Descreve o aspecto simultâneo do sistema: tarefas (processos) e suas interações VISÃO DE IMPLANTAÇÃO Descreve uma ou várias configurações do sistema. É o mapeamento de componentes de software (tarefas, módulos) para os nós de computação nessas configurações. Visão de Processo Visão de Distribuição A definição da arquitetura consiste de um conjunto de visões do sistema, que são usadas mais ou menos como as diversas plantas arquitetônicas de uma construção. Para construir algo, o arquiteto fornece o desenho da fachada, a planta baixa, a planta que descreve as instalações elétrica e hidráulica, etc. As diversas plantas são usadas pelo mestre de obras, pedreiros, encanadores, eletricistas, de acordo com a atividade que deve ser realizada por cada um. Da mesma maneira, o arquiteto do projeto fornece as diversas visões da arquitetura do sistema (que são na verdade modelos do sistema descritos através de diagramas de UML), que serão usadas pelos desenvolvedores de acordo com suas atividades. Desenvolvimento de software com UML

18 Desenvolvimento de software com UML
“Espírito” do RUP O gerenciamento de Riscos deve ser feito continuamente A cada iteração (novos) riscos devem ser identificados e tratados; Isto “garante” que o desenvolvimento terá sucesso; Desenvolvimento de software com UML

19 Desenvolvimento de software com UML
“Espírito” do RUP Foco em Funcionalidades para o Cliente Especificação, organização e documentação dos requisitos é facilitada através dos diagramas de casos de uso; Casos de uso guiam todo o processo de desenvolvimento O que desenvolver, testar e validar em cada iteração; Casos de uso são funcionalidades para o cliente; Desenvolvimento de software com UML

20 Desenvolvimento de software com UML
“Espírito” do RUP Foco em Software Executável Artefatos são construídos para facilitar e documentar o processo de desenvolvimento; Mas, não é necessário construir todos os artefatos indicados pelo RUP; Desenvolvimento de software com UML

21 Desenvolvimento de software com UML
“Espírito” do RUP Aprenda a lidar com Mudanças Mudanças são inevitáveis no processo de desenvolvimento; Adote estratégias para gerenciar mudanças Tomada de decisão sobre uma mudança; Impacto desta mudança no sistema; Minimizar o custo desta mudança; Desenvolvimento de software com UML

22 Desenvolvimento de software com UML
“Espírito” do RUP Defina uma Arquitetura estável cedo Uma arquitetura do sistema é definida, implementada e testada no início do processo (Elaboração) para garantir que o sistema atenderá aos requisitos funcionais e não-funcionais; Com a arquitetura definida, o processo de construção é mais simples; Desenvolvimento de software com UML

23 Desenvolvimento de software com UML
“Espírito” do RUP Considere continuamente a Qualidade O controle de qualidade deve ser feito desde o início do processo de desenvolvimento Inspeção de software; Teste dos casos de uso implementados; Definição de casos de teste a partir dos casos de uso; Desenvolvimento de software com UML

24 Desenvolvimento de software com UML
“Espírito” do RUP Desenvolvimento Iterativo “Impossível” desenvolver o sistema em uma única iteração; A cada iteração mais detalhes são adicionados; Diversas vantagens: Redução da Complexidade; Facilidade para lidar com mudanças nos requisitos, cronograma, etc. Desenvolvimento de software com UML

25 Desenvolvimento de software com UML
Conceitos do RUP Fases e Iterações Fluxos de Atividades Atividades Artefatos Responsáveis Desenvolvimento de software com UML

26 Desenvolvimento de software com UML
Estrutura do RUP Processo Iterativo, baseado no modelo Espiral Iterativo: baseado em sucessivas versões Espiral Desenvolvimento de software com UML

27 Fases do RUP Concepção Elaboração Construção Transição
Estabelecer o escopo e viabilidade econômica do projeto Eliminar principais riscos e definir arquitetura estável Desenvolver o produto até que ele esteja pronto para beta testes Entrar no ambiente do usuário Desenvolvimento de software com UML

28 Desenvolvimento de software com UML
Fases e Iterações Cada fase pode comportar diversas iterações Concepção Elaboração Construção Transição Iteração preliminar 1 2 i i+2 i+3 ... j j+1 ... tempo grandes marcos Desenvolvimento de software com UML

29 Marcos Concepção Elaboração Construção Transição Marco dos objetivos do ciclo de vida Marco da arquitetura do ciclo de vida Marco da capacidade operacional inicial Marco de lançamento do produto tempo O projeto poderá ser anulado ou completamente repensado caso o marco não seja atingido. Desenvolvimento de software com UML

30 Fluxos de Atividades do RUP
Agrupam atividades correlacionadas Fluxos de atividades básicos: modelagem do negócio requisitos análise e projeto implementação testes distribuição Fluxos de atividades de suporte: gerência de configuração e mudanças gerência do projeto configuração do ambiente Além das fases, o RUP possui vários fluxos, que agrupam as atividades correlacionadas do processo. Fluxos básicos: modelagem de negócios requisitos análise e projeto implementação testes distribuição Fluxos de suporte: gerência de configuração e mudanças gerência do projeto ambiente No desenvolvimento em cascata, as atividades dos fluxos básicos ocorreriam em seqüência. No RUP elas ocorrem em ciclos, dentro de cada iteração. E a ênfase que é dada a cada fluxo, assim como o foco de suas atividades, depende da fase do processo em que se está. Desenvolvimento de software com UML

31 Fases, Iterações e Fluxos de Atividades
Fonte: Rational Desenvolvimento de software com UML

32 Responsáveis, Atividades e Artefatos
Os fluxos de atividades do RUP são descritos através de responsáveis, atividades e artefatos Fonte: Rational Desenvolvimento de software com UML

33 Desenvolvimento de software com UML
Conceitos-chave Desenvolvimento de software com UML

34 Desenvolver um modelo do negócio
Modelagem do Negócio Objetivos: descobrir “o problema por trás do problema” entender a estrutura e dinâmica da organização assegurar que os clientes, usuários e desenvolvedores têm a mesma visão do negócio descobrir os requisitos do sistema necessários para suportar o negócio Desenvolver um modelo do negócio Desenvolvimento de software com UML

35 Desenvolvimento de software com UML
Modelagem do Negócio Glossário Modelo de Casos de Uso do Negócio Modelo de Objetos do Negócio Desenvolvimento de software com UML Fonte: Rational

36 Desenvolvimento de software com UML
Requisitos Objetivos: descrever o quê o sistema deve fazer, em acordo com o cliente e usuários definição de como gerenciar escopo e mudanças de requisitos delimitar o escopo do sistema e prover uma base para o planejamento das iterações definir a interface com o usuário O principal objetivo do fluxo de requisitos é guiar os desenvolvedores de maneira a obter um sistema adequado às necessidades dos clientes e usuários. Para isso, é preciso levantar e descrever os requisitos do sistema, isto é, as funcionalidades e características que o sistema deve apresentar. Desenvolvimento de software com UML

37 Desenvolvimento de software com UML
Requisitos Glossário Documento de Visão Especificações Suplementares Modelo de Casos de Uso Protótipo da Interface com o Usuário Desenvolvimento de software com UML

38 Desenvolvimento de software com UML
Análise e Projeto Objetivos: transformar os requisitos em um modelo para implementação do sistema encontrar uma arquitetura robusta para o sistema Análise: assegura que os requisitos funcionais são tratados Projeto: adapta os resultados da análise aos requisitos não funcionais e ambiente de implementação Veremos o fluxo de análise e projeto em detalhes no decorrer deste curso. Desenvolvimento de software com UML

39 Desenvolvimento de software com UML
Análise e Projeto Desenvolvimento de software com UML Fonte: Rational

40 Desenvolvimento de software com UML
Análise e Projeto Fonte: Rational Desenvolvimento de software com UML

41 Desenvolvimento de software com UML
Implementação Objetivos: implementar os componentes necessários testar os componentes implementados como unidades integrar os componentes implementados em um sistema executável O fluxo de implementação define atividades e passos a serem seguidos com o objetivo de criar, testar e manter, da forma mais efetiva possível, os componentes que implementam os requisitos do sistema. Desenvolvimento de software com UML

42 Desenvolvimento de software com UML
Implementação Modelo de Implementação Componentes implementados Subsistemas implementados Fonte: Rational Desenvolvimento de software com UML

43 Desenvolvimento de software com UML
Testes Objetivos: verificar a interação e integração dos componentes verificar se todos os requisitos foram corretamente implementados identificar defeitos e assegurar as correções de acordo com as prioridades de entrega de cada componente As atividades do fluxo de testes representam a última oportunidade de detectar erros antes do software ser distribuído aos usuários. Uma série de testes bem executados, iniciados no começo do ciclo de vida do software, reduz significativamente o custo com manutenção de software. Os principais objetivos do fluxo de testes são: verificar a correta integração entre os componentes do software; verificar se todos os requisitos do sistema foram corretamente implementados; planejar os testes que devem ser executados em cada iteração, incluindo testes de integração e sistema; projetar e implementar os testes; executar vários testes e comparar o resultado dos mesmos com os resultados esperados a fim de produzir uma indicação da qualidade e da confiabilidade do software. Em muitas organizações, de 30 a 50% dos custos de um desenvolvimento de software são referentes aos testes. Desenvolvimento de software com UML

44 Desenvolvimento de software com UML
Testes Plano de Teste Modelo de Teste Casos de Teste Procedimentos de Teste Lista de defeitos Avaliação dos Testes Desenvolvimento de software com UML Fonte: Rational

45 Desenvolvimento de software com UML
Distribuição Objetivo: entregar o produto aos usuários finais Muito dependente do contexto do negócio e do projeto => precisa ser configurado O lançamento de um novo release do sistema requer a execução de uma série de atividades até que o produto esteja finalmente pronto para ser utilizado. Baseado neste enfoque, o fluxo de distribuição tem como principais objetivos gerar releases do produto e disponibilizá-los para os usuários finais. O fluxo de distribuição não pode ser descrito no mesmo nível de detalhe dos demais, devido à diversidade dos tipos de produtos de software existentes e à grande dependência deste fluxo com o domínio e o contexto do negócio. São descritas, então, algumas atividades que devem ser executadas ao longo do processo de desenvolvimento do produto, para que se tenha sucesso na distribuição do mesmo. Desenvolvimento de software com UML

46 Desenvolvimento de software com UML
Distribuição Possíveis atividades: produzir o (que falta do) software scripts de instalação, documentação para o usuário, programas para conversão de dados, etc. embalar e distribuir o software instalar o software realizar migração troca de sistema antigo pelo novo, conversão de dados treinamento do usuário aceitação formal pelo cliente planejamento e condução de beta testes Desenvolvimento de software com UML

47 Planejamento e monitoração das iterações!
Gerência de Projeto Objetivos: prover um framework para gerenciar projetos e riscos prover orientações para o planejamento de atividades, definição da equipe, execução e monitoração de projetos A gerência de projetos é a aplicação de conhecimento, competências, ferramentas e técnicas de planejamento e gerenciamento às diversas atividades do projeto visando alcançar ou exceder as necessidades e expectativas dos stakeholders do projeto. O fluxo de planejamento e gerenciamento define uma série de atividades, passos e artefatos a serem produzidos que servem de instrumento para que o desenvolvimento transcorra da forma mais efetiva possível, minimizando impactos de diversas naturezas e garantindo o sucesso do projeto. Inserido em um processo de desenvolvimento incremental e iterativo, este fluxo se beneficia de suas características no acompanhamento dos riscos, gerência de escopo, comprometimento do usuário, etc.; entretanto, algumas atividades como, por exemplo, gestão orçamentária não são consideradas pelo fluxo por não serem significativamente afetadas pelo processo iterativo. Planejamento e monitoração das iterações! Desenvolvimento de software com UML

48 Desenvolvimento de software com UML
Gerência de Projeto Plano de Negócios Plano do Desenv. do Software: plano de métricas lista de riscos plano do projeto plano da iteração Fonte: Rational Desenvolvimento de software com UML

49 Gerência de Configuração e Mudanças
Objetivos: identificar, definir e manipular itens de software controlar modificações e versões destes itens reportar e armazenar a situação dos itens e as solicitações de mudanças garantir a completude, consistência e corretude dos itens controlar o armazenamento, manipulação e entrega destes itens Durante o desenvolvimento do projeto, muitos artefatos são criados. Isto envolve um investimento significativo e, tendo em vista a importância destes componentes, eles devem ser protegidos e facilmente disponibilizados para reutilização. As atividades de gerência de configuração e mudanças objetivam a manutenção da integridade destes artefatos, diante da realização de alterações no projeto. Os métodos, processos e ferramentas utilizados para possibilitar a gerência de configuração em uma organização podem ser considerados como o sistema de gerência de configuração da organização. Este sistema de gerência de configuração evita conflitos nas seguintes situações: atualização simultânea (duas ou mais pessoas trabalhando no mesmo artefato); notificação restrita das alterações (nem sempre todos os envolvidos são informados sobre as mudanças realizadas); múltiplas versões do sistema (confusão no gerenciamento e atualização/correção de várias versões do mesmo sistema). A gerência de mudanças diz respeito a toda e qualquer solicitação de mudança no sistema que seja importante seu registro formal. Mudanças que causam muito impacto no sistema ou mudanças referentes a um projeto de grande porte enquadram-se nesta categoria. Desenvolvimento de software com UML

50 Gerência de Configuração e Mudanças
Plano de gerência de configuração Fonte: Rational Desenvolvimento de software com UML

51 Configuração do Ambiente
Objetivo: prover o processo e as ferramentas necessárias ao desenvolvimento Possíveis Atividades: configurar o RUP desenvolver guidelines selecionar e adquirir ferramentas adaptar ou desenvolver ferramentas suportar o ambiente de desenvolvimento (backups, administração de contas, etc.) treinamento implantação do RUP na organização Este fluxo visa preparar a infra-estrutura necessária para o desenvolvimento. Nele estão envolvidas atividades de preparação do ambiente - abertura de contas, instalação de software, etc. - assim como atividades de preparação do próprio processo de desenvolvimento. Desenvolvimento de software com UML

52 Configuração do Processo
Processo para um projeto x Processo para a organização Processo para um projeto considerar tamanho, reuso, tipo do ciclo (inicial x de evolução) Processo para a organização considerar cultura, pessoas, tecnologias e aplicações chave, ... O RUP foi feito para ser aplicado em qualquer projeto de software - como vimos no início deste módulo, ele é um framework para processos - e precisa ser configurado para ser aplicado. Além disso, o RUP apresenta pouquíssimas informações sobre como executar suas atividades, sobre técnicas e padrões necessários para o desenvolvimento. O fluxo de ambiente prevê atividades de adaptação e configuração do RUP para uma organização ou para um projeto específico. Desenvolvimento de software com UML

53 Desenvolvimento de software com UML
Análise Estruturada Proposta por uma diversidade de autores nas décadas de 1980 e 1990 Fundamentação: Programação Estruturada Estruturas de repetição, decisão e seqüência Projeto Estruturado Principal mecanismo de abstração: decomposição funcional Ciclo de Vida Cascata Processo Seqüencial Linear Desenvolvimento de software com UML

54 Marco dos Objetivos do Ciclo de Vida
Análise dos objetivos do ciclo de vida do projeto e tomada de decisão de prosseguir com o projeto ou cancelá-lo Critérios de Avaliação Consentimento dos envolvidos sobre a definição do escopo e as estimativas de custo/programação. Consenso de que o conjunto correto de requisitos foi capturado e de que existe uma compreensão compartilhada desses requisitos. Consenso de que as estimativas de custo/programação, as prioridades, os riscos e o processo de desenvolvimento são adequados. Todos os riscos foram identificados e existe uma estratégia atenuante para cada um. Desenvolvimento de software com UML

55 Marco da Arquitetura do Ciclo de Vida
Exame nos objetivos e o escopo do sistema, a opção de arquitetura e a resolução dos principais riscos. Critérios de Avaliação A Visão e os requisitos do produto são estáveis. A arquitetura é estável. As abordagens principais a serem usadas no teste e na avaliação foram comprovadas. O teste e a avaliação de protótipos executáveis demonstraram que os principais elementos de risco foram tratados e resolvidos com credibilidade. Os planos de iteração para a fase de construção têm detalhes e fidelidade suficientes para permitir o avanço do trabalho. Os planos de iteração para a fase de construção são garantidos por estimativas confiáveis. Todos os envolvidos concordam que a visão atual poderá ser atendida se o plano atual for executado para desenvolver o sistema completo, no contexto da arquitetura atual. A despesa real em oposição à despesa planejada com recursos é aceitável. Desenvolvimento de software com UML

56 Marco da capacidade operacional inicial
Produto pronto para ser passado para a Equipe de Transição. Toda a funcionalidade desenvolvida e os testes alfa (se houver algum) foram concluídos. Manual do usuário desenvolvido e uma descrição do release atual. Critérios de Avaliação Envolvem respostas para as questões: Este release do produto é estável e desenvolvido o suficiente para ser implantado na comunidade de usuários? Todos os envolvidos estão prontos para a transição para a comunidade de usuários? As despesas reais com recursos ainda são aceitáveis se comparadas com as planejadas? Desenvolvimento de software com UML

57 Marco do Release do Produto
Decisão se os objetivos foram atendidos e se outro ciclo de desenvolvimento deve ser iniciado. Pode coincidir com o fim da fase de iniciação do próximo ciclo. O Marco do Release do Produto é o resultado da conclusão com êxito dos Artefatos Desenvolvimento de software com UML


Carregar ppt "Visão Geral do RUP (Rational Unified Process)"

Apresentações semelhantes


Anúncios Google