Baixe o app para aproveitar ainda mais
Prévia do material em texto
RUP - O Processo Unificado Profº Lucas Campos de M Nunes RUP – O Processo Unificado RUP – O Processo Unificado RUP – O Processo Unificado RUP – O Processo Unificado • O RUP, abreviação de Rational Unified Process (ou Processo Unificado da Rational), é um processo proprietário de Engenharia de software criado pela Rational Software Corporation, adquirida pela IBM, ganhando um novo nome IRUP que agora é uma abreviação de IBM Rational Unified Process e tornando-se uma brand na área de Software, fornecendo técnicas a serem seguidas pelos membros da equipe de desenvolvimento de software com o objetivo de aumentar a sua produtividade no processo de desenvolvimento; RUP – O Processo Unificado • O RUP usa a abordagem da orientação a objetos em sua concepção e é projetado e documentado utilizando a notação UML (Unified Modeling Language) para ilustrar os processos em ação. Utiliza técnicas e práticas aprovadas comercialmente; • É um processo considerado pesado e preferencialmente aplicável a grandes equipes de desenvolvimento e a grandes projetos, porém o fato de ser amplamente customizável torna possível que seja adaptado para projetos de qualquer escala. RUP – O Processo Unificado • Para a gerência do projeto, o RUP provê uma solução disciplinada de como assinalar tarefas e responsabilidades dentro de uma organização de desenvolvimento de software; • O RUP é, por si só, um produto de software; • É modular e automatizado, e toda a sua metodologia é apoiada por diversas ferramentas de desenvolvimento integradas e vendidas pela IBM através de seus "Rational Suites". https://www.ibm.com/support/home/product/J864555V05176X47/rational/rational_suite RUP – O Processo Unificado •O desenvolvimento de sistemas seguindo a metodologia é: •Iterativo e incremental; •Guiado por casos de uso (use cases); •Baseado na arquitetura do sistema; •Orientado a objetos; RUP – O Processo Unificado – As Fases RUP – O Processo Unificado – As Fases •Iterativo e incremental RUP – O Processo Unificado – As Fases •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, 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; •Os casos de uso que apresentam os maiores riscos devem ser realizados primeiro, para resolver os riscos o quanto antes; RUP – O Processo Unificado – As Fases •Guiado por 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; RUP – O Processo Unificado – As Fases •Guiado por Casos de Uso: RUP – O Processo Unificado – As Fases •Análise e Projeto em UML •UML é uma linguagem usada para especificar, modelar e documentar os artefatos de um sistema •É um padrão da OMG (Object Management Group) e têm se tornado o padrão empresarial para modelagem O.O.; •Implementação em Java ou alguma outra linguagem de programação O.O.; RUP – Fases e Disciplinas • O RUP tem duas dimensões: • o eixo horizontal representa o tempo e mostra os aspectos do ciclo de vida do processo à medida que se desenvolve: • representa o aspecto dinâmico do processo quando ele é aprovado e é expressa em termos de fases, iterações e marcos; • o eixo vertical representa as disciplinas, que agrupam as atividades de maneira lógica, por natureza: • representa o aspecto estático do processo, como ele é descrito em termos de componentes, disciplinas, atividades, fluxos de trabalho, artefatos e papéis do processo (consulte Conceitos-chave); RUP – Fases e Disciplinas RUP – Fases e Disciplinas Fonte: Aula sobre Modelos de Processos da Engenharia de Software - YouTube https://www.youtube.com/watch?v=qX00H-COqmw RUP – Fases e Disciplinas • O RUP é composto por fases e cada uma dá ênfase a um aspecto na construção do software (em um dado instante); • Para representar a dimensão do tempo, no decorrer do desenvolvimento de um projeto de software, o RUP é dividido em 4 fases: 1. Iniciação ou Concepção: ênfase no escopo do sistema; 2. Elaboração: ênfase na arquitetura; 3. Construção: ênfase no desenvolvimento; 4. Transição: ênfase na implantação; RUP – Fases – Iniciação/Concepção RUP – Fases – Iniciação/Concepção • A fase de iniciação ou concepção contém os workflows necessários à concordância dos stakeholders (as partes interessadas) com os objetivos, a arquitetura e o planejamento do projeto; • Se essas partes interessadas tiverem bons conhecimentos, pouca análise será requerida; • Caso contrário, será exigida uma análise mais elaborada; • Nesta fase, os requisitos essenciais do sistema são transformados em casos de uso; • O objetivo não é fechá-los em sua totalidade, mas apenas aqueles necessários à formação de opinião; • A etapa é geralmente curta e serve para definir se é viável continuar com o projeto e definir os riscos e o custo deste último; • Um protótipo pode ser feito para que o cliente possa aprovar; • Como cita o RUP, o ideal é que sejam feitas iterações, mas estas devem ser bem definidas quanto à sua quantidade e aos objetivos; RUP – Fases – Iniciação/Concepção RUP – Fases – Iniciação/Concepção RUP – Fases - Elaboração RUP – Fases – Elaboração • A fase de elaboração será apenas para o projeto do sistema, buscando complementar o levantamento/documentação dos casos de uso, voltado para a arquitetura do sistema, revisa a modelagem do negócio para os projetos e inicia a versão do manual do usuário; • Deve-se aceitar: • Visão geral do produto (incremento + integração) está estável?; • Custos são admissíveis? • O plano do projeto é confiável? – Veja um Exemplo - Local; http://processosdesoftware.sede.embrapa.br/#diagram/ebc2a47e-be4d-468f-b229-8c8b0044b1f2 file:///D:/OneDrive/Estácio/Sistemas de Informação/ARA0097 - ENGENHARIA DE SOFTWARE/03 - Aulas/Aula 08/Exemplo_Plano_Projeto_Embrapa.pdf RUP – Fases – Elaboração RUP – Fases – Construção RUP – Fases – Construção • Na fase de construção, começa o desenvolvimento físico do software, produção de códigos, testes alfa; • Utilização de IDEs (Visual Studio .NET, Android Studio, Eclipse, etc); • Ferramentas de controle de versão: SVN, Tortoise, MS Source Safe, etc; • Ferramenta de gerenciamento de projetos (MS Project, dotProject, etc); • Os testes beta são realizados no início da fase de Transição; • Deve-se aceitar testes, e processos de testes estáveis, e se os códigos do sistema constituem "baseline"; RUP – Fases – Construção RUP – Fases – Transição RUP – Fases – Transição • Nesta fase ocorre a entrega ("deployment") do software, é realizado o plano de implantação e entrega, acompanhamento e qualidade do software; • Produtos (releases, versões) devem ser entregues, e ocorrer a satisfação do cliente; • Nesta fase também é realizada a capacitação dos usuários; RUP – Fases – Transição RUP – Fases - Resumo RUP – Fases - Resumo Disciplinas - RUP • As disciplinas cujas atividades são distribuídas através das fases iterativas; • As disciplinas do RUP são separadas em: • Seis disciplinas de Engenharia: Mod. de Negócios, Requisitos, Análise e Projeto, Implementação, Testes e Implantação; • Três disciplinas de Apoio e Suporte: Ambiente, Config./Mudança, Gerência de Projeto; • Vejamos cada uma delas; Etapas e Disciplinas - RUP Disciplinas – RUP – Modelagem de Negócios • O objetivo de modelagem de negócios é, primeiramente, estabelecer uma melhor compreensão e canal de comunicação entre engenharia de negócios e engenharia de software; • Compreender o negócio significa que os engenheiros de software devemcompreender a estrutura e a dinâmica da empresa alvo (o cliente), os atuais problemas na organização e possíveis melhorias; Disciplinas – RUP – Modelagem de Negócios • Eles também devem garantir um entendimento comum da organização-alvo entre os clientes, usuários finais e desenvolvedores; • Modelagem de negócios, explica como descrever uma visão da organização na qual o sistema será implantado e como usar esta visão como uma base para descrever o processo, papéis e responsabilidades; • Veja mais sobre Modelagem de Negócios; https://www.google.com.br/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=modelagem%20de%20neg%C3%B3cios Etapas e Disciplinas - RUP Disciplinas – RUP – Requisitos • Esta disciplina explica como levantar pedidos das partes interessadas ("stakeholders") e transformá-los em um conjunto de requisitos que os produtos funcionam no âmbito do sistema a ser construído e fornecem requisitos detalhados para o que deve fazer o sistema; • Todo o conceito de requisitos funcionais, não funcionais, suas respectivas técnicas e conceitos se encaixam nesta disciplina; Etapas e Disciplinas - RUP Disciplinas – RUP – Análise e Projeto • O objetivo da análise e projeto é mostrar como o sistema vai ser realizado; • O objetivo é construir um sistema que: • Execute, em um ambiente de execução específico, as tarefas e funções especificadas nas descrições de casos de uso; • Cumpra todas as suas necessidades; • Seja fácil de manter quando ocorrerem mudanças de requisitos funcionais; Disciplinas – RUP – Análise e Projeto • Resultados de projeto em um modelo de análise e projeto tem, opcionalmente, um modelo de análise; • O modelo de design serve como uma abstração do código-fonte, isto é, o projeto atua como um modelo de "gabarito" de como o código-fonte é estruturado e escrito; • O modelo de projeto consiste em classes de design estruturado em pacotes e subsistemas com interfaces bem definidas, representando o que irá se tornar componentes da aplicação; • Ele também contém descrições de como os objetos dessas classes colaboram para desempenhar casos de uso do projeto; Etapas e Disciplinas - RUP Disciplinas – RUP – Implementação • Os efeitos da implementação são: • Para definir a organização do código, em termos de subsistemas de implementação organizadas em camadas; • Para implementar classes e objetos em termos de componentes (arquivos-fonte, binários, executáveis e outros); • Para testar os componentes desenvolvidos como unidades; • Integrar os resultados produzidos por implementadores individuais (ou equipes), em um sistema executável; Etapas e Disciplinas - RUP Disciplinas – RUP – Testes • As finalidades da disciplina de teste são: • Verificar a interação entre objetos; • Verificar a integração adequada de todos os componentes do software; • Verificar se todos os requisitos foram corretamente implementados; • Identificar e garantir que os defeitos são abordados antes da implantação do software; • Garantir que todos os defeitos são corrigidos, reanalisados e fechados; Disciplinas – RUP – Testes • O RUP propõe uma abordagem iterativa, o que significa que deve-se testar todo o projeto; • Isto permite encontrar defeitos tão cedo quanto possível, o que reduz radicalmente o custo de reparar o defeito; • Os testes são realizados ao longo de quatro dimensões da qualidade: confiabilidade, funcionalidade, desempenho da aplicação, e o desempenho do sistema; • Para cada uma destas dimensões da qualidade, o processo descreve como passar pelo teste do ciclo de planejamento, projeto, implementação, execução e avaliação. Etapas e Disciplinas - RUP Disciplinas – RUP – Implantação • O objetivo da implantação é o de produzir com sucesso lançamentos de produtos e entregar o software para seus usuários finais; • Ele cobre uma vasta gama de atividades, incluindo a 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; • Embora as atividades de implantação estejam principalmente centradas em torno da fase de transição, muitas das atividades devem ser incluídas nas fases anteriores para se preparar para a implantação, no final da fase de construção. Os processos ("workflows") de "Implantação e Ambiente" do RUP contêm menos detalhes do que outros workflows; Etapas e Disciplinas - RUP Disciplinas – RUP – Ambiente • Ele descreve as atividades necessárias para desenvolver as diretrizes de apoio a um projeto; • A proposta das atividades de ambiente é prover à organização de desenvolvimento de software os processos e as ferramentas que darão suporte à equipe de desenvolvimento; • Se os usuários do RUP não entendem que o RUP é um framework de processo, eles podem percebê-lo como um processo pesado e caro; • No entanto, um conceito-chave dentro do RUP foi que o processo RUP pode e, muitas vezes, deve ser refinado; • Historicamente, como o RUP, muitas vezes é personalizado para cada projeto por um perito do processo RUP, o sucesso total do projeto pode ser um pouco dependente da capacidade desta pessoa; Etapas e Disciplinas - RUP Disciplinas – RUP – Config./Mudança • A disciplina de Gestão de Mudança em negócios com RUP abrange três gerenciamentos específicos: de configuração, de solicitações de mudança, e de status e medição; • Gerenciamento de configuração: • A gestão de configuração é responsável pela estruturação sistemática dos produtos; • Artefatos, como documentos e modelos, precisam estar sob controle de versão e essas alterações devem ser visíveis; • Ele também mantém o controle de dependências entre artefatos para que todos os artigos relacionados sejam atualizados quando são feitas alterações; Disciplinas – RUP – Config./Mudança • Gerenciamento de solicitações de mudança: • Durante o processo de desenvolvimento de sistemas com muitos artefatos existem diversas versões; • O CRM mantém o controle das propostas de mudança; • Gerenciamento de status e medição: • Os pedidos de mudança têm os estados: novo, conectado, aprovado, cedido e completo; • A solicitação de mudança também tem atributos como a causa raiz, ou a natureza (como o defeito e valorização), prioridade, etc; • Esses estados e atributos são armazenados no banco de dados para produzir relatórios úteis sobre o andamento do projeto. Etapas e Disciplinas - RUP Disciplinas – RUP – Gerência de Projeto • Esta disciplina concentra-se principalmente sobre os aspectos importantes de um processo de desenvolvimento iterativo: Gestão de riscos, planejamento de um projeto iterativo através do ciclo de vida e para uma iteração particular e o processo de acompanhamento de um projeto iterativo, métricas; • No entanto, esta disciplina do RUP não tenta cobrir todos os aspectos do gerenciamento de projetos; • Por exemplo, não abrange questões como: Gestão de Pessoas (contratação, treinamento, etc), Orçamento Geral (definição, alocação, etc), Gestão de Contratos (com fornecedores, clientes, etc); Etapas e Disciplinas - RUP Disciplinas – RUP – Ambiente • Ele descreve as atividades necessárias para desenvolver as diretrizes de apoio a um projeto; • A proposta das atividades de ambiente é prover à organização de desenvolvimento de software os processos e as ferramentas que darão suporte à equipe de desenvolvimento; • Se os usuários do RUP não entendem que o RUP é um framework de processo, eles podem percebê-lo como um processo pesado e caro; • No entanto, um conceito-chave dentro do RUP foi que o processo RUP pode e, muitas vezes, deve ser refinado; • Historicamente, como o RUP, muitas vezes é personalizado para cada projeto por um perito do processo RUP, o sucesso total do projeto pode ser um pouco dependente da capacidade desta pessoa; Técnicas e modelos aplicados • O RUP é baseado em um conjunto de princípios de desenvolvimento de software e melhorespráticas, por exemplo: 1. Desenvolvimento de software iterativo 2. Gerenciamento de requisitos 3. Uso de arquitetura baseada em componente 4. Modelagem visual de software 5. Verificação da qualidade do software 6. Controle de alteração no software Técnicas e modelos aplicados • Para cada uma das fases do RUP, pode-se aplicar modelos e técnicas para que se obtenha o resultado desejado daquela fase; • Isso é importante pois irá gerar evidências do desenvolvimento daquela fase, juntamente com a respectiva disciplina; • Vejamos alguns exemplos: Técnicas e modelos aplicados • Fase de Concepção (iniciação): • Algumas atividades básicas: Formular o escopo do projeto, Avaliar alternativas para o gerenciamento de riscos, a organização da equipe, o plano do projeto e as mudanças de custo/programação/lucros; Sintetizar uma possível arquitetura, avaliando as mudanças no design e em fazer/comprar/reutilizar, para que seja possível estimar custo, programação e recursos; • Artefatos (modelos) básicos: Caso de Negócio, Lista de Riscos, Plano de Desenvolvimento de Software, Plano de Iteração, Caso de Desenvolvimento, Ferramentas, Glossário, Modelo de Casos de Uso, Repositório do Projeto, solicitação de Mudança; Técnicas e modelos aplicados • Fase de Elaboração: • Algumas atividades básicas: Definir, validar e criar a baseline da arquitetura com rapidez e eficiência; Refinar o Documento de Visão; Criar planos de iteração detalhados e baselines para a fase de construção; Refinar o caso de desenvolvimento e posicionar o ambiente de desenvolvimento, incluindo o processo, as ferramentas e o suporte de automatização necessários para dar assistência à equipe de construção; • Artefatos (modelos) básicos: Protótipos, Lista de Riscos Atualizada e analisada, Caso de Desenvolvimento Refinado com base na experiência inicial do projeto, Ferramentas, Documento de Arquitetura de Software, Modelo de Design (e todos os artefatos constituintes), Modelo de Dados Definido e com baseline, Modelo de Implementação, Visão, Plano de Desenvolvimento de Software Atualizado e expandido para cobrir as fases de Construção e Transição, modelo de casos de uso (80%); Técnicas e modelos aplicados • Fase de Construção: • Algumas atividades básicas: 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; • Artefatos (modelos) básicos: Diagramas de Casos de Uso refinado, Sistema pronto para começar o teste "beta"; Plano de Implantação (pode ser embutido no Plano de Desenvolvimento de Software); Modelo de Implementação (expandido a partir daquele criado durante a fase de elaboração); Conjunto de Testes; Materiais de Treinamento Manuais do Usuário e outros materiais de treinamento; Caso de Desenvolvimento; Ferramentas; Modelo de Dados atualizado com todos os elementos necessários para suportar a implementação persistente (por exemplo, tabelas, índices, etc.); Técnicas e modelos aplicados • Fase de Transição: • Algumas atividades básicas: executar planos de implantaçã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, disponibilizar o produto para os usuários finais; • Artefatos (modelos) básicos: Build do Produto Concluído de acordo com os requisitos do produto; Notas de Release Concluídas; Artefatos de Instalação Concluídos; Material de Treinamento Concluído para assegurar que o cliente possa ser autossuficiente na utilização e manutenção do produto; Material de Suporte para o Usuário Final Concluído para assegurar que o cliente possa ser autossuficiente na utilização e manutenção do produto; Definição das iterações • Uma iteração envolve as atividades de desenvolvimento que levam ao release de um produto - uma versão estável e executável do produto, junto com qualquer outro elemento periférico necessário para utilizar esse release; • Portanto, uma iteração de desenvolvimento é, de alguma forma, uma passagem completa por pelo menos todas as fases e as respectivas disciplinas; • O release (entrega) terá planejado a capacidade que é demonstrável; Definição das iterações • A duração de uma iteração variará de acordo com o tamanho e a natureza do projeto, mas é provável que várias construções sejam feitas em cada iteração, conforme especificado no Plano de Construção de Integração para a iteração; • Essa é uma consequência da abordagem de integração contínua recomendada no RUP (Rational Unified Process): conforme os componentes testados da unidade ficam disponíveis, eles são integrados, em seguida, uma construção é produzida e sujeita ao teste de integração. Modelo de Processo de Software – Evolucionário •ATIVIDADE VERIFICADORA Atividade Autônoma AURA 1) O Processo Unificado de software é uma tentativa de aproveitar os melhores recursos e características dos modelos tradicionais de processo de software. Sobre o Processo Unificado de software, assinale a afirmativa correta. a) O software é dirigido a casos de uso, centrado na arquitetura, sequencial e incremental. b) O software é entregue aos usuários finais na fase de transição. c) Os modelos de caso de uso, análise, projeto e implementação são desenvolvidos na fase de concepção. d) O planejamento é realizado na fase de elaboração. e) Os requisitos não funcionais são descritos em um conjunto de casos de uso preliminares. Atividade Autônoma AURA 1) O Processo Unificado de software é uma tentativa de aproveitar os melhores recursos e características dos modelos tradicionais de processo de software. Sobre o Processo Unificado de software, assinale a afirmativa correta. a) O software é dirigido a casos de uso, centrado na arquitetura, sequencial e incremental. b) O software é entregue aos usuários finais na fase de transição. c) Os modelos de caso de uso, análise, projeto e implementação são desenvolvidos na fase de concepção. d) O planejamento é realizado na fase de elaboração. e) Os requisitos não funcionais são descritos em um conjunto de casos de uso preliminares. 2) Quais são as quatro fases do RUP (Rational Unified Process)? a) Analise de requisitos, Testes, Transição e Documentação b) Iniciação, Elaboração, Construção e Transição c) Iniciação, desenvolvimento, adaptação e testes d) Implementação, desenvolvimento, atualização, testes e) Projeto, Arquitetura, Testes e Ambiente Atividade Autônoma AURA 2) Quais são as quatro fases do RUP (Rational Unified Process)? a) Analise de requisitos, Testes, Transição e Documentação b) Iniciação, Elaboração, Construção e Transição c) Iniciação, desenvolvimento, adaptação e testes d) Implementação, desenvolvimento, atualização, testes e) Projeto, Arquitetura, Testes e Ambiente Atividade Autônoma AURA Leitura específica • Vídeo "Ciclo de vida dos Software". Disponível em: https://www.youtube.com/watch?v=6_fVcpC0cxE • PRESSMAN, Roger; MAXIM, Bruce. Engenharia de Software. Porto Alegre: AGMH, 2016. Páginas 56 até 58. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788580555349/ • Craig Larman, Utilizando UML e Padrões, editora: Artmed, edição: 3, ano:2007. • Capítulo: 2 - Iterativo, Evolutivo e Ágil; • http://www.cin.ufpe.br/~if717/slides/3-visao-geral-do-rup.pdf, acessado em 10/05/2021; • https://pt.wikipedia.org/wiki/IBM_Rational_Unified_Process, acessado em 10/05/2021; • http://www.cin.ufpe.br/~gta/rup-vc/core.base_concepts/guidances/concepts/iteration_441A13D7.html, acessado em 10/05/2021; • http://www.cin.ufpe.br/~gta/rup-vc/core.base_concepts/guidances/concepts/iteration_441A13D7.html, acessado em 10/05/2021; • http://www-01.ibm.com/software/br/rational/, acessado em 10/05/2021; • ftp://public.dhe.ibm.com//software/pdf/br/RUP_DS.pdf, acessado em 10/05/2021https://www.youtube.com/watch?v=6_fVcpC0cxE https://integrada.minhabiblioteca.com.br/#/books/9788580555349/ http://www.cin.ufpe.br/~if717/slides/3-visao-geral-do-rup.pdf https://pt.wikipedia.org/wiki/IBM_Rational_Unified_Process http://www.cin.ufpe.br/~gta/rup-vc/core.base_concepts/guidances/concepts/iteration_441A13D7.html http://www.cin.ufpe.br/~gta/rup-vc/core.base_concepts/guidances/concepts/iteration_441A13D7.html http://www-01.ibm.com/software/br/rational/ ftp://public.dhe.ibm.com/software/pdf/br/RUP_DS.pdf Aprenda + • - RUP - Rational Unified Process. Disponível em: https://www.devmedia.com.br/ruprational-unified- process/4574 • - RUP - Primeiros Passos. Disponível em: https://www.tiespecialistas.com.br/rupprimeiros-passos/ https://www.devmedia.com.br/ruprational-unified-process/4574 https://www.tiespecialistas.com.br/rupprimeiros-passos/
Compartilhar