Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Teoria de Engenharia de Software Aula 4 RUP - Processo Unificado de Software Prof. Rafael Targino rtargino@unicarioca.edu.br 2 O conteúdo desta aula foi parcialmente baseado nos slides disponíveis do livro: Engenharia de Software Engenharia de Software – Conceitos e Práticas Raul Sidnei Wazlawick, Elsevier, 1a edição, 2013 2 3 Resumo da Última Aula • O que é um Processo? • Processo de Desenvolvimento de Software – Cascata – Modelo Evolucionário – Prototipação – Iterativo e Incremental – Espiral – RUP – Metodologias Ágeis Engenharia de Software 4 Conteúdo da Aula • O Processo Unificado – Caracterização do UP – Fases e Iterações • Disciplinas do RUP – Elementos do RUP – Disciplinas • Fluxos de Trabalhos (Workflows) do RUP – Principais Workflows – Marcos Engenharia de Software 3 5 Processo Unificado (UP) • Criado por Jacobson, Booch, & Rumbaugh, na década de 1990. – Usa uma abordagem de orientação a objetos em sua concepção e é projetado e documentado utilizando a notação UML • Resultado de mais de 30 anos de experiência acumulada em projetos, notações e processos. • Inicialmente desenvolvido e comercializado pela Rational, e desde 2003 pertence a IBM. – Usando o seu nome original RUP Engenharia de Software 6 Dimensões necessárias para Desenvolver Sistemas Engenharia de Software Processo Linguagem de Modelagem Ferramentas RUP / Processo Unificado UML Ferramentas CASE 4 7 Implementações UP • RUP (Rational Unified Process) • AUP (Agile Unified Process • OpenUP • EUP (Enterprise Unified Process) • OUM • RUP-SE Para simplificação neste curso, usaremos RUP e UP como sinônimos! Engenharia de Software 8 O RUP é um processo muito Prescritivo Métodos Prescritivos Métodos DescritivosX 5 9 • A parte estática do RUP, é descrita através dos conceitos de papéis, atividades, artefatos e fluxos de trabalho. PAPÉIS ATIVIDADES ARTEFATOS FLUXO DE TRABALHO define o comportamento e as responsabilidades assumidas por uma pessoa ou um conjunto de pessoas trabalhando em equipe. tarefa que um indivíduo executa quando está exercendo um determinado papel e produz um resultado importante para o contexto do projeto. sequencias de atividades que são executadas para a produção de um resultado valioso para o projeto. pedaço de informação que é produzido, modificado ou utilizado em um processo. Elementos do RUP Processo de Requisitos – RUP %$ 6 Analisar o ProblemaAtividade: Analisar o Problema Papel responsável em executar o conjunto de tarefas da Atividade Tarefas da Atividade Artefatos de Entrada Artefatos de Saída 12 Descritivo de uma Tarefa Engenharia de Software 7 13 Descritivo de uma Tarefa (continuação) Engenharia de Software 14 Outras Característica • É Dirigido por Casos de Uso – Para o UP o conjunto de casos de uso deve definir e esgotar toda a funcionalidade possível do sistema. • É Centrado na Arquitetura – As funcionalidades aprendidas com a elaboração dos diversos casos de uso devem ser integradas a esta arquitetura de forma incremental. Engenharia de Software 8 15 Principais Característica • É Iterativo e Incremental. – UP preconiza o desenvolvimento baseado em ciclos iterativos de duração fixa, onde a cada iteração a equipe incorpora à arquitetura as funcionalidades necessárias para realizar os casos de uso abordados no ciclo. • É Focado em Riscos. – Em função das priorizações dos casos de uso mais críticos nos primeiros ciclos iterativos, pode- se dizer que o UP é focado em riscos Engenharia de Software 16 Organização do RUP RUP é organizado: • Por tempo – Fases e Iterações • Por Conteúdo – Disciplinas 9 17 Organização do RUP por Tempo - Fases • Concepção (Iniciação): Definir o escopo do projeto e alcançar a cooperação entre todos os stakeholders. • Elaboração: Especificar os requisitos prioritários e estabelecer a arquitetura. • Construção: Finalizar a implementação do Produto. • Transição: Garantir que o produto esteja disponível para seus usuários finais. 18 4 Fases do RUP • Iniciação (Concepção) – Definição do escopo do projeto, identificação dos atores, casos de uso e descrição dos mais significativos – Também chamada de Concepção • Elaboração – Análise do sistema, definição da arquitetura do sistema • Construção – Desenvolvimento iterativo e incremental do produto • Transição – Atividades de “entrega” do software Engenharia de Software 10 19 Organização do RUP por Conteúdo - Disciplinas 20 Iterações • Dentro de cada fase podem existir uma ou mais iterações. • Software é desenvolvido em cada iteração, que pode incluir uma liberação de software (release) interna ou externa que torna-se um ponto de avaliação do progresso do projeto. Engenharia de Software 11 21 Fases X Disciplinas • Em cada Fase do RUP deve-se visitar todas as 9 Disciplinas • Algumas Disciplinas terão mais esforço que outras dentro de uma Fase • Algumas Disciplinas devem ser visitadas para no mínimo dizer que nada precisa ser feito. Engenharia de Software 22 Gráfico das Fases x Disciplinas Engenharia de Software Iteração 1 Foco nas disciplinas de Análise de Negócios e Requisitos 12 23 Gráfico das Fases x Disciplinas Engenharia de Software Iteração 2 O Foco é em validar a Arquitetura e o que possuir mais riscos 24 Gráfico das Fases x Disciplinas Engenharia de Software Iteração 3 O Foco é em validar a Arquitetura e o que possuir mais riscos 13 25 Gráfico das Fases x Disciplinas Engenharia de Software Iteração 4, 5, 6.... n O Foco é na construção do software e nos testes 26 Gráfico das Fases x Disciplinas Engenharia de Software Iteração 4, 5, 6.... n O Foco é na implantação do sistema em produção 14 27 Questão de Concurso • O RUP (Rational Unified Process) é uma metodologia de projeto de software criada pela Rational. O processo analítico do RUP divide o ciclo de vida de desenvolvimento de software em 4 fases. Assinale a alternativa que não indica uma fase do ciclo de vida de desenvolvimento de software, de acordo com o RUP. a) Transição. b) Concepção. c) Elaboração. d) Implantação. e) Construção. Engenharia de Software 28 Exercício • Cite, em poucas palavras, o que significa desenvolver software iterativamente? • Considerando o processo de “Ministrar um Curso Semestral” em um universidade, em que o professor possui as seguintes atividades: preparar material do curso, ministrar aula, aplicar a prova e corrigir a prova, diga: – Como seriam o encadeamento dessas atividades usando o processo em cascata e o processo RUP? Engenharia de Software 15 29 Conteúdo da Aula • O Processo Unificado – Caracterização do UP – Fases e Iterações • Disciplinas do RUP – Elementos do RUP – Disciplinas • Fluxos de Trabalhos (Workflows) do RUP – Principais Workflows – Marcos Engenharia de Software 30 Papéis e Atividade 16 31 Detalhamento das Disciplinas Engenharia de Software 32 Detalhamento das Disciplinas • Disciplinas técnicas (núcleo)1. Modelagem de negócio; 2. Requisitos; 3. Análise e desenho; 4. Implementação; 5. Teste; 6. Implantação; • Disciplinas de apoio: 7. Gerencia de configuração; 8. Gerenciamento de projetos; 9. Ambiente. 17 33 Observação sobre os Papéis e Artefatos de cada Disciplina • Em negrito, estão destacados os papéis e artefatos principais de cada disciplina que podem ser cobrados em prova • Em conjunto com o Objetivo de cada Disciplina 34 1. Modelagem de Negócio • Objetivos – Entender a estrutura e a dinâmica da organização na qual o sistema deve ser implantado. – Entender os problemas atuais e identificar melhorias potenciais. – Garantir um entendimento comum entre clientes, usuários e desenvolvedores. – Derivar os requisitos de sistemas necessários. 18 35 1. Modelagem de Negócio • Principais papéis: – Analista de Negócio – Desenhista de processo de negócio – Stakeholders – Revisores • Principais artefatos: – Documento de visão de negócios – Modelo de casos de uso de negócio – Modelo de objetos de negócio – Especificação suplementar de negócio – Glossário de negócio 36 2. Requisitos • Objetivos – Estabelecer e manter acordo entre stakeholders sobre o que o sistema deve fazer – Prover aos desenvolvedores um melhor entendimento dos requisitos do sistema – Definir as fronteiras do sistema – Prover a base para planejamento do conteúdo técnico das iterações – Prover a base para estimativas de duração e custo 19 37 2. Requisitos • Principais papéis : – Analista de Sistemas – Especificador de casos de uso – Desenhista de interfaces com usuário • Principais artefatos: – Glossário – Descrição dos casos de uso – Protótipos de interface com usuário 38 3. Análise e Projeto • Objetivos – Traduzir os requisitos em uma especificação que descreva como implementar o sistema – Selecionar a melhor estratégia de implementação – Estabelecer uma arquitetura robusta para a aplicação 20 39 3. Análise e Projeto • Principais papéis : – Arquiteto – Projetista – Projetista de banco de dados – Revisor • Principais artefatos: – Modelo de análise – Modelo de Projeto – Documento de Arquitetura de software 40 4. Implementação • Objetivos – Definir a organização do código em termos de subsistemas e camadas – Implementar classes, objetos e componentes – Testar unidades criadas – Integrar em um ambiente executável os resultados produzidos individualmente 21 41 4. Implementação • Principais papéis : – Implementador – Integrador de sistemas – Arquiteto – Revisor de código • Principais artefatos: – Implementação de subsistema – Componente – Plano de integração 42 5. Testes • Objetivos – Verificar a interação dos atores com cada componente. – Verificar a integração entre os componentes. – Verificar a implementação correta de todos os requisitos. – Identificar e garantir que todos os defeitos descobertos sejam tratados. 22 43 5. Testes • Principais papéis : – Desenhista de testes – Testador • Principais artefatos: – Plano de testes – Modelo de testes – Resultados dos testes – Modelo de carga – Defeitos gerados 44 • Objetivos – Testar o software no ambiente final (produção). – Empacotar o software para implantação. – Distribuir o software. – Instalar o software. – Treinar os usuários finais. – Migrar o software existente (se for o caso) e converter sua base de dados 6. Implantação 23 45 • Principais papéis: – Gerente de implantação – Gerente de projetos – Redator – Implementador • Principais artefatos: – Software executável. – Artefatos de instalação: scripts, ferramentas, arquivos, guias, etc. – Notas de release. – Material de apoio e treinamento. 6. Implantação 46 • Objetivos – Rastrear e manter a integridade do projeto. – Habilitar membros da equipe a identificar e localizar artefatos, selecionar a versão adequada e avaliar o histórico do artefato. – Acompanhar a evolução do projeto. 7. Gerenciamento de configuração e mudanças 24 47 • Principais papéis : – Gerente de configuração – Gerente de controle de mudanças – Implementador – Integrador – Arquiteto • Principais artefatos: – Plano de gerenciamento de configurações – Requisições de mudança – Modelo de implementação – Métricas e relatórios de status 7. Gerenciamento de configuração e mudanças 48 • Objetivos – Prover uma estrutura para gerenciar projetos de desenvolvimento. – Prover diretrizes práticas para planejar, executar, apoiar e monitorar projetos. – Prover uma estrutura para gerenciar riscos. 8. Gerenciamento de Projetos 25 49 • Principais papéis: – Gerente de projetos • Principais artefatos: – Plano de desenvolvimento de projeto – Plano de iterações – Modelo de negócio – Medidas do projeto 8. Gerenciamento de Projetos 50 • Objetivos – Seleção e aquisição de ferramentas – Configuração e personalização de ferramentas – Configuração de processos – Melhoria dos processos – Prover serviços de apoio: infraestrutura, administração de contas, backup, etc. 9. Ambiente 26 51 • Principais papéis: – Analista de processos de Negócio – Analista de sistemas – Desenhista de interfaces com usuário – Arquiteto – Redator – Administrador do sistema – Especialista em ferramentas • Principais artefatos: – Diretrizes gerais 9. Ambiente 52 Exercício • Utilizando o exercício anterior do processo de “Ministrar um Curso Semestral”, quais seriam as disciplinas envolvidas nas atividades: preparar material do curso, ministrar aula, aplicar a prova e corrigir a prova (considere um curso que possui apenas uma prova ao final) – Definir Ementa – Ensino – Tirar Dúvidas (conteúdo e questões de provas) – Administrar presença e notas Engenharia de Software 27 53 Conteúdo da Aula • O Processo Unificado – Caracterização do UP – Fases e Iterações • Disciplinas do RUP – Elementos do RUP – Disciplinas • Fluxos de Trabalhos (Workflows) do RUP – Principais Workflows – Marcos Engenharia de Software 54 Fluxos de Trabalho (Workflows) • O Fluxo de trabalho é um agrupamento de atividades que são realizadas em um sequencia típica de eventos e apresentadas com artefatos informados e resultantes. • Cada Disciplina do RUP possui um Fluxo de Trabalho bem definido • O Fluxo de Trabalho é dividido em várias Atividades e as Atividades podem ser detalhadas em tarefas (com seus respectivos artefatos de entrada e saída) • O Conjunto de Fluxo de Trabalho do RUP é o que especifica o processo de desenvolvimento de software que deve ser seguido Engenharia de Software 28 Exemplo de Fluxo de Trabalho – Gerência de Projetos Engenharia de Software Atividades 56 Exemplo de Atividade do Fluxo de Trabalho Gerência de Projetos Engenharia de Software Papéis Tarefas Artefatos 29 57 Customização dos Fluxos de Trabalho • O RUP e todos os seus Fluxos de Trabalho, com todas as suas atividades e artefatos não precisam ser adotados na íntegra. • O RUP pode ser adaptado (configurado) dependendo do tipo de software sendo desenvolvido, de características do ambiente de desenvolvimento (tamanho da equipe, técnicas usadas, etc.) e da própria organização Engenharia de Software 58 Navegação em Todos as Disciplinas e Fluxos de Trabalho do RUP • http://www.funpar.ufpr.br:8080/rup/process /workflow/ovu_core.htm • http://www.wthreex.com/rup/portugues/index.htm Engenharia de Software
Compartilhar