Especialização em Segurança da Informação Segurança em Aplicações 2. Processo de Desenvolvimento Márcio Aurélio Ribeiro Moreira [email protected] http://si.lopesgazzani.br/docentes/marcio/ Introdução ao RUP Márcio Moreira 3. Processo de Desenvolvimento – slide 2 Segurança em Aplicações Estrutura do RUP RUP 7.5: Projetos: Grandes Pequenos Apresentar: Idiomas RUP 7.5 Links para download Márcio Moreira 3. Processo de Desenvolvimento – slide 3 Segurança em Aplicações Dúvidas da engenharia de software Qual a melhor forma de obter requisitos? Informal, Fluxos de Dados, DER ou Casos de Uso O que é mais importante para o cliente? Saber logo se o projeto é viável e factível ou Começar a ver telas do software funcionando O que é mais fácil gerenciar? 6 projetos de 30 dias ou 1 projeto de 6 meses Qual construção suportará mais mudanças? Uma feita com base na expertise de um mestre de obras especialista ou Uma feita pelo mesmo mestre de obras, mas com um projeto estrutural considerando as necessidades atuais e futuras do prédio Márcio Moreira 3. Processo de Desenvolvimento – slide 4 Segurança em Aplicações Pilares estratégicos do RUP Dirigido por Casos de Uso Centrado em Arquitetura Iterativo e Incremental Fases e Iterações Casos de Uso Dirige Guia Arquitetura Márcio Moreira 3. Processo de Desenvolvimento – slide 5 Segurança em Aplicações As fases do RUP e seus objetivos Iniciação (concepção): Definir o macro escopo Verificar a viabilidade econômica Elaboração: Verificar a viabilidade técnica Definir a arquitetura básica (versão α) Construção Desenvolver o software (versão β) Transição Fazer testes de aceitação e entregar o produto Márcio Moreira 3. Processo de Desenvolvimento – slide 6 Segurança em Aplicações As iterações do RUP São mini-projetos com objetivos de: Integração de middleware, versão-alfa, casos de uso ... versão-beta e produto Vantagens: Redução de riscos Percepção antecipada Quebra da complexidade Facilitação do gerenciamento Trabalho com parte dos requisitos Construção de builds executáveis Evolução incremental do sistema pelos componentes Márcio Moreira 3. Processo de Desenvolvimento – slide 7 Segurança em Aplicações Disciplinas do RUP Modelagem de Negócios: Compreensão da Engenharia do Negócio (por que) Requisitos: Explicitação e coleta de requisitos (escopo: o que) Análise e Design (Projeto): Transformação dos requisitos em especificação do software (como) Esforço x Disciplina x Tempo Implementação: Desenvolve, organiza, testa a unidade e integra os componentes do software Testes: Testa a qualidade do software Distribuição: Distribui (instala) o software aos usuários (entrega), não é um projeto de implantação completo Gestão de configuração e mudanças: Cuida do controle e sincronização dos componentes do software Gestão do projeto: Foca em planejamento, gestão de riscos e gestão do progresso do projeto Ambiente: Cria e mantém o ambiente (processos e ferramentas) de desenvolvimento interno do software Márcio Moreira 3. Processo de Desenvolvimento – slide 8 Segurança em Aplicações Adaptação livre de: JAC98, KER04, KRO03 e RUP08 Complexidade Técnica Alta Quando utilizar o RUP CMM RUP para pequenos projetos RUP para projetos de médio porte Criar x Documentar RUP para grande projetos CMMI Baixa XP, SCRUN e Adaptive Development Baixa Márcio Moreira Complexidade de Gestão 3. Processo de Desenvolvimento – slide 9 Alta Segurança em Aplicações Princípios chaves do RUP Adaptar o processo: Dimensione o processo para cada projeto Equilibrar prioridades dos investidores: Promova o alinhamento da TI aos negócios Trabalhar em conjunto com equipes: Motivação, auto-gestão, colaboração, etc. Demonstrar valor iterativamente: Mostrar o valor produto ao usuário a cada iteração Elevar nível de abstração: Arquitetar e reutilizar para simplificar e quebrar a complexidade Focalizar continuamente na qualidade: Para o produto ter qualidade o processo precisa de acompanhamento Márcio Moreira 3. Processo de Desenvolvimento – slide 10 Segurança em Aplicações Fluxos de trabalho do RUP Início do fluxo Atividade Atividade Término do fluxo Atividades em paralelo Márcio Moreira 3. Processo de Desenvolvimento – slide 11 Segurança em Aplicações Detalhamento de fluxos de trabalho Tarefa Seqüenciamento Função (papel) Tarefa Produto do trabalho (artefato) Márcio Moreira 3. Processo de Desenvolvimento – slide 12 Segurança em Aplicações Disciplinas do RUP Márcio Moreira 3. Processo de Desenvolvimento – slide 13 Segurança em Aplicações Objetivos da modelagem de negócio Entender os problemas atuais na organização de destino e identificar os potenciais de aprimoramento. Avaliar o impacto da alteração organizacional. Assegurar que os clientes, usuários, desenvolvedores e outros parceiros tenham uma compreensão comum da organização. Derivar os requisitos do sistema de software necessários para suportar a organização de destino. Entender como um sistema de software a ser implementado se ajusta à organização. Márcio Moreira 3. Processo de Desenvolvimento – slide 14 Segurança em Aplicações Atividades da modelagem de negócios Cenário 3: 1 Negócio e n Sistemas (revisão do negócio) Cenário 4: 1 Sistema e n Negócios (1 aplicativo para vários empresas) as-is to-be Cenário 6: Renovação (reengenharia do negócio) Cenário 1: Gráfico da Organização (sem mudança de negócio) Cenário 5: Novo Negócio (Projeto = ao 3/4, - esta atividade) Márcio Moreira 3. Processo de Desenvolvimento – slide 15 Segurança em Aplicações Objetivos das atividades de modelagem do negócio Avaliar o status do negócio (as-is): Essa atividade visa avaliar o status da organização e definir os objetivos da modelagem de negócio. Descrever o negócio atual (as-is): Essa atividade busca compreender como o negócio está e refinar os objetivos do esforço de modelagem de negócio. Definir o negócio (to-be): Essa atividade deve definir o negócio previsto. Explorar a automação do processo: Essa atividade explora as oportunidades de automação dos processos de negócios considerados. Desenvolver o modelo de domínio: Essa atividade visa desenvolver o Modelo de Domínio, que é um subconjunto do Modelo de Análise de Negócio. Márcio Moreira 3. Processo de Desenvolvimento – slide 16 Segurança em Aplicações Visão de Negócio Márcio Moreira Onde queremos ir? Metas de Negócio Avaliação da Organização Processo de Negócio Estratégia de Negócio Essência da modelagem de negócio Como chegaremos lá? Onde estamos? Modelo de Negócio Processo de Negócio M. de Casos de Uso ou Diagrama de Domínio Casos de Uso e Processo ou Operações de Negócio 3. Processo de Desenvolvimento – slide 17 Detalhes do Negócio Arquitetura de Negócio Regras de Negócio Glossário de Negócio Estrutura de: mercado, processos, pessoas, etc. Segurança em Aplicações Requisitos = f( comunicação ) Márcio Moreira 3. Processo de Desenvolvimento – slide 18 Segurança em Aplicações Objetivos da disciplina de requisitos 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. Márcio Moreira 3. Processo de Desenvolvimento – slide 19 Segurança em Aplicações Fluxo de trabalho de requisitos Márcio Moreira 3. Processo de Desenvolvimento – slide 20 Segurança em Aplicações Objetivos das atividades Problema Análise do problema: Essa atividade estabelece o acordo sobre o problema a ser resolvido e propõe uma solução de alto nível. Soluções Compreender as necessidades dos envolvidos (lista de funcionalidades): Funcionali dades Essa atividade busca entender o que os envolvidos desejam a partir da solução proposta e define os recursos principais para a solução. Definir o sistema: Essa atividade destaca os requisitos chave e busca aceitação no escopo do sistema. Requisitos Gerenciar o escopo do sistema: Essa atividade assegura que os requisitos do sistema estejam limpos e estabelece um conjunto gerenciável de trabalhos de requisitos para iteração. Refinar a definição do sistema: Essa atividade detalha os requisitos a serem desenvolvidos no ciclo atual de desenvolvimento. Detalhes Gerenciar requisitos variáveis: Essa atividade gerencia as alterações nos requisitos e avalia seus impactos. Márcio Moreira 3. Processo de Desenvolvimento – slide 21 Segurança em Aplicações Tipos de Requisitos – FURPS+ Funcionality: Usability: Reliability: Performance: Suportability: +: Funcionalidade Usabilidade Confiabilidade Desempenho Suportabilidade Restrições de projeto Requisitos de: implementação, físicos e interface Márcio Moreira 3. Processo de Desenvolvimento – slide 22 Segurança em Aplicações Modelo de Casos de Uso Plano Gestão de Requisitos Estruturar o Software Detalhar o Sistema Essência da coleta de requisitos Márcio Moreira Como vamos colher, analisar e manter os requisitos? Esboço Seqüencial Processo Pedido dos Envolvidos Lista de Features Casos de Uso Arquitetura do Software Estrutura de: mercado, processos, pessoas, etc. Requisitos do Software Regras de Negócio Glossário de Negócio e/ou Modelo de Domínio 3. Processo de Desenvolvimento – slide 23 Segurança em Aplicações Objetivos da disciplina de análise & design Transformar os requisitos em um design (projeto) do sistema a ser criado. Desenvolver uma arquitetura sofisticada para o sistema. Adaptar o design (projeto) para que corresponda ao ambiente de implementação, projetando-o para fins de desempenho. Márcio Moreira 3. Processo de Desenvolvimento – slide 24 Segurança em Aplicações Fluxo de trabalho de análise & design Márcio Moreira 3. Processo de Desenvolvimento – slide 25 Segurança em Aplicações Objetivos das atividades Realizar Síntese Arquitetural (utilizada na Iniciação): Construir e avaliar uma Prova de Conceito Arquitetural, para demonstrar que o sistema idealizado é factível. Definir uma Sugestão de Arquitetura: Criar um esboço inicial da arquitetura de software. Identificação de Serviço: Identificar e qualificar serviços candidatos. Analisar Comportamento: Transformar descrições comportamentais fornecidas pelos requisitos em um conjunto de elementos, no qual o design possa se basear. Refinar a Arquitetura: Concluir a arquitetura para uma iteração. Projetar Componentes: Refinar o design do sistema. Projetar o Banco de Dados: Identificar as classes de design a serem persistidas em um banco de dados e projetar as estruturas de banco de dados correspondentes. Especificação de Serviço: Especificar o comportamento de serviço e identificar os fornecedores de serviços e partições. Márcio Moreira 3. Processo de Desenvolvimento – slide 26 Segurança em Aplicações Arquitetura do Software Descrição Arquitetural e M. de Análise e de Serviços Modelo de Análise Casos de Uso Análise de realização dos Casos de Uso Pacotes de Análise Especificar o Software Estruturar o software Essência da análise & projeto Márcio Moreira Classes de análise Mapa de navegação Projeto Arquitetural Descrição Arquitetural e M. de Projeto e Implementação Projeto de Casos de Uso Projeto de Classes Modelo de Dados Classes de Projeto e Testes Componentes de Serviços Projeto de sub-sistemas 3. Processo de Desenvolvimento – slide 27 Projetos de realização dos Casos de Uso Projeto de sub-sistemas Projeto de interfaces Segurança em Aplicações Objetivos da implementaçã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 desenvolvedores individuais (ou equipes) ao sistema executável Márcio Moreira 3. Processo de Desenvolvimento – slide 28 Segurança em Aplicações Fluxo de trabalho da implementação 1 1 Iteração 1 Build 1 Subsistema 1 Comp1 Comp2 Build 2 Subsistema 2 Comp3 Márcio Moreira Comp4 Comp5 Subsistema 1 C1 C6 3. Processo de Desenvolvimento – slide 29 Segurança em Aplicações Objetivos das atividades Estruturar o modelo de implementação: Estruturar a implementação para assegurar uma implementação, integração e processo de build estável Planejar a integração: Planejar como será feita a integração do sistema para a iteração em andamento Realização de serviço: Composta pela atividade de Decisões de Realização Decidir como serão realizados os serviços da iteração Implementar componentes: Concluir uma parte da implementação, para que possa ser liberada para integração Integrar cada subsistema: Integrar as mudanças de vários desenvolvedores, para criar uma nova versão consistente de um Subsistema de Implementação Integrar o sistema: Integrar os subsistemas de implementação, para criar uma nova versão consistente do sistema total Márcio Moreira 3. Processo de Desenvolvimento – slide 30 Segurança em Aplicações Essência da implementação Planejamento • Modelo de Implementação • Plano de Integração de Builds Desenvolvimento e Teste Unitário: • Subsistemas e interfaces • Componentes (software, serviços e testes) desenvolvidos • Componentes (software, serviços e testes) testados Integração: • Builds • Subsistemas integrados • Sistema integrado Márcio Moreira 3. Processo de Desenvolvimento – slide 31 Segurança em Aplicações Conceitos de testes Teste: É a execução controlada do software visando revelar falhas Falha: Desvio de comportamento Erro: Origem da falha (bug) Teste de Regressão: Execução repetida dos Casos de Testes que falharam, bem como dos Casos de Testes impactados por eles, após a correção dos erros (bugs) que causaram as falhas Importância: Testes não provam que o software está livre de falhas. Eles minimizam este risco, aumentam a confiança e agregam valor ao produto São partes integrantes da qualidade Márcio Moreira 3. Processo de Desenvolvimento – slide 32 Segurança em Aplicações Elementos de testes De Planejamento: Estratégia de Teste: Plano de Testes: Idéias de Teste: Define como o esforço de teste será conduzido Define objetivos, metas, abordagem e recursos testes de cada iteração Lista de idéias a serem utilizadas nos testes De Desenvolvimento: Casos de Testes: Scripts de Testes: Dados de Teste: Cenários de Teste: Entradas, passos e saídas esperadas de cada teste Códigos executados durante (preparação, execução, passos e geração de resultados) os Casos de Teste Massa de dados usada para realização dos testes Variações que um mesmo Caso de Teste pode ter De Execução: Registro de Testes: Saída bruta da execução dos testes Resultados de Testes: Avaliação dos resultados dos registros de testes Márcio Moreira 3. Processo de Desenvolvimento – slide 33 Segurança em Aplicações Níveis de testes Quanto às pessoas: Desenvolvedores Testes independentes: Sistema A Subsistema A1 CmpA11 CmpA12 Sistema B Subsistema A2 CmpA21 CmpA22 CmpA23 Subsistema B1 CmpB11 CmpB12 Subsistema B2 CmpB21 CmpB22 Entidades verificadoras (certificadoras) ou Usuários chaves do cliente Quanto a granularidade: Testes de unidade Testes de integração Testes de sistema [Testes Integrados Testes de aceitação (desenvolvedores) (desenv.) (subsistemas) (ambos) (ambos) (outros sistemas) ausente no RUP] (cliente) (UAT: User Acceptance Test) Quanto à forma: Formal: Seguem os casos de testes Informal: Não seguem roteiro (exploratórios, ad hoc ou aleatórios) Márcio Moreira 3. Processo de Desenvolvimento – slide 34 Segurança em Aplicações Stubs Testes de Sistema Sistema D Testes Integrados e UAT Sistema D Stub Stub Sistema A Sistema B Sistema A Sistema B Stub Sistema C Márcio Moreira Sistema C 3. Processo de Desenvolvimento – slide 35 Segurança em Aplicações Visões de testes Quanto à visão do sistema: Caixa preta (fora do sistema, sem visão interna) Caixa branca (dentro do sistema) Uso de testes nas dimensões da qualidade: Dimensão Funcionalidade Unidade Integração Interna Sistema Integração Externa Aceitação Usabilidade Confiabilidade Desempenho Suportabilidade Márcio Moreira 3. Processo de Desenvolvimento – slide 36 Segurança em Aplicações Modelo V de testes Nível 1 Modelagem de Negócio Nível 2 Nível 3 Nível 4 Nível 5 Nível 6 Márcio Moreira Teste de Aceitação Teste Integrado Requisitos Teste de Sistema Arquitetura Teste de Integração Análise Teste Unitário Projeto Implementa ção 3. Processo de Desenvolvimento – slide 37 Segurança em Aplicações Tamanho Real Tipos de testes • Volume esperado Contenção • Volume extra Carga Estresse • Até onde vai? • Condições extremas Funcionalidade: Função: Segurança: Volume: A parte testável funciona como foi projetada? Somente usuários autorizados têm acesso à funcionalidade? A funcionalidade suporta o volume de dados especificado? Utilidade: Usabilidade: O software tem a usabilidade que é esperada dele? Confiabilidade: Integridade: Estrutura: Estresse: O software tem a robustez (resistência a defeitos) esperada? Os links, botões e opções de navegação funcionam corretamente? Como o software lidas com muitos dados, pouca memória, etc.? Desempenho: Tamanho real: Contenção: Carga: Perfil de desempenho: O software tem o desempenho esperado quando com volume real? Como o software lida com solicitação excessiva de um recurso? Aumentando o volume de transações, até onde o software suporta? O software possui gargalos ou processos ineficientes? Suportabilidade: Configuração: Instalação: Márcio Moreira Nosso software funciona em diferentes configurações (hw/sw)? O processo de instalação funciona em diferentes configurações? 3. Processo de Desenvolvimento – slide 38 Segurança em Aplicações Objetivos dos testes Localizar e documentar defeitos na qualidade do software Dar 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 estão implementados adequadamente Márcio Moreira 3. Processo de Desenvolvimento – slide 39 Segurança em Aplicações Fluxo de trabalho de testes Márcio Moreira 3. Processo de Desenvolvimento – slide 40 Segurança em Aplicações Objetivos das atividades Definir missão de avaliação: Identificar o foco apropriado do esforço de teste para a iteração e estabelecer consenso com os envolvidos sobre as metas que conduzirão o esforço de teste Validar abordagem do teste: Verificar por meio da demonstração que a abordagem de testes funcionará, produz resultados precisos e é apropriada para os recursos disponíveis Validar a estabilidade da construção: Validar que a construção esteja estável o suficiente, para que sejam iniciados o teste detalhado e o esforço de avaliação Testar e avaliar: Executar os testes e verificar se eles tem a amplitude e o detalhamento necessários para garantir que os testes atinjam seus propósitos Realizar a missão aceitável (atingimos a missão de aceitação?): Garantir a aceitação do produto através das avaliações dos testes Aprimorar vantagens dos testes: Manter e aprimorar os recursos de testes Márcio Moreira 3. Processo de Desenvolvimento – slide 41 Segurança em Aplicações Essência dos testes Planejamento: • Estratégia, Plano e Idéias de Testes • Arquitetura de Testes • Ambiente de Testes Desenvolvimento : • Casos de Testes • Scripts, Dados e Cenários de Testes • Projeto e Interfaces de Testes Execução: • Log de Testes • Mudanças (bugs ou ajustes a serem feitos) • Resultados e Avaliação dos Testes Márcio Moreira 3. Processo de Desenvolvimento – slide 42 Segurança em Aplicações Conceitos de distribuição Distribuição (implantação): Disciplina responsável por garantir que o software esteja disponível para os usuários Formas de distribuição previstas: Instalação personalizada Oferta de produto "comprados em loja" Acesso ao software por meio da Internet Quando distribuir? Após os testes feitos no ambiente fabril (Construção) e os beta testes (Transição) Unidade de Implantação: Software e materiais auxiliares para instalar em um nó de rede Produto: Conjunto de todas as unidades de implantação necessárias Márcio Moreira 3. Processo de Desenvolvimento – slide 43 Segurança em Aplicações Objetivos da distribuição Definir a Lista de Materiais do produto Fazer um Plano de Implantação Produzir o Produto Preparar o Material de Suporte ao Usuário Desenvolver o software de instalação Produzir as notas da versão (release) Preparar os materiais de treinamento Disponibilizar o software para os usuários Márcio Moreira 3. Processo de Desenvolvimento – slide 44 Segurança em Aplicações Fluxo de trabalho de distribuição Márcio Moreira 3. Processo de Desenvolvimento – slide 45 Segurança em Aplicações Objetivos das atividades Planejar a Implantação: Planejar quando e como o produto será distribuído Desenvolver Material de Suporte: Preparar os materiais necessários para suporte aos usuários Gerenciar Testes de Aceitação: Garantir a aceitação do software pelos clientes antes do lançamento geral Produzir a Unidade de Implantação: Empacotar o produto de forma que ele seja instalável Produto para Beta Teste: Liberar o software para usuários beta e tratar seus feedbacks Gerenciar Teste de Aceitação para Instalação Customizada: Especialização de Gerenciar Testes de Aceitação Empacotar Produto: Preparar um produto para que ele seja comprável em lojas Fornecer Acesso ao Site de Download: Disponibilizar o software para download na Internet Márcio Moreira 3. Processo de Desenvolvimento – slide 46 Segurança em Aplicações Essência da distribuição Preparação: • Plano de Implantação • Lista de Materiais, Ilustração e Artefatos de Instalação • Materiais de Treinamento e Suporte Testes: • Ambiente de testes • Controle de Mudanças • Resultados e Avaliação dos Testes Distribuição: • Notas de versão (release) • Unidade de Implantação • Produto Márcio Moreira 3. Processo de Desenvolvimento – slide 47 Segurança em Aplicações Conceitos de GCM Configuração: Conjunto de requisitos (funcionais ou não) atendidos por uma versão do software Mudanças: Qualquer alteração em artefatos (produtos do trabalho) já validados Linha Base: Conjunto formado pela configuração e artefatos que compõem uma versão do software É altamente recomendável a utilização de um software de controle de versões (SubVersion, SourceSafe, etc.) para gerir a linha base Benefícios da GCM: Controle de artefatos evitando problemas de: atualização simultânea, notificação limitada (alguns não ficam sabendo da alteração) e múltiplas versões Márcio Moreira 3. Processo de Desenvolvimento – slide 48 Segurança em Aplicações Objetivos da GCM Suportar métodos de desenvolvimento Manter a integridade do produto Assegurar a integralidade e correção do produto configurado Fornecer um ambiente estável dentro do qual se possa desenvolver o produto Restringir as alterações nos Produtos de Trabalho (artefatos) de acordo com as políticas do projeto Fornecer uma auditoria acompanhando o porque, quando e por quem foi feita alteração nos artefatos Márcio Moreira 3. Processo de Desenvolvimento – slide 49 Segurança em Aplicações Fluxo de trabalho da GCM Márcio Moreira 3. Processo de Desenvolvimento – slide 50 Segurança em Aplicações Objetivos das atividades Planejar o Controle de Mudança e Configuração do Projeto: Como serão tratadas as mudanças nos artefatos no desenvolvimento do software Criar Ambientes para CM (Gerenciamento de Configuração) do Projeto: Disponibilizar um ambiente onde o produto possa desenvolvido e disponibilizado Gerenciar Solicitações de Mudança: Garantir que as mudanças aprovadas sejam feitas de forma consistente no projeto Monitorar e Relatar o Status de Configuração: Dar visibilidade para as alterações de configuração do produto Alterar e Liberar Itens de Configuração: Gerenciar os artefatos do projeto entregues e disponibilizados pelo projeto Gerenciar Baselines e Releases: Garantir que uma release seja uma baseline consistente de artefatos Márcio Moreira 3. Processo de Desenvolvimento – slide 51 Segurança em Aplicações Essência da GCM Preparação: • Plano de Gestão de Configuração • Repositório de Projeto e Espaço de Trabalho • Controle de Mudanças Mudanças: • Plano de Desenvolvimento do Software • Plano de Iteração • Ordem de Trabalho Avaliações: • Métricas de Projeto • Registro de Auditoria de Configuração Márcio Moreira 3. Processo de Desenvolvimento – slide 52 Segurança em Aplicações Objetivos da gestão de projetos Inseridos no RUP: 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 Não tratados pelo RUP: Gerenciamento de pessoas: contratar, treinar, instruir Gerenciamento de orçamento: definir, alocar e assim por diante Gerenciamento de contratos, com fornecedores e clientes Para gestão de projetos completa: recomendação PMI Márcio Moreira 3. Processo de Desenvolvimento – slide 53 Segurança em Aplicações Fluxo de trabalho da gestão projetos Márcio Moreira 3. Processo de Desenvolvimento – slide 54 Segurança em Aplicações Objetivos das atividades 1 Conceber Novo Projeto: Levar o projeto da idéia à decisão de continuar ou abandonar o projeto Avaliar Risco e Escopo do Projeto: Reavaliar o escopo e o risco do projeto e atualizar o Caso de Negócios (Business Case) Planejar o Projeto: Desenvolver os componentes e seções do Plano de Desenvolvimento do Software Planejar o Restante da Iteração Inicial: Detalhar o Plano de Iteração para conduzir o restante da iteração inicial Gerenciar Iteração: Iniciar, finalizar e revisar uma iteração Reavaliar Escopo e Risco do Projeto: Reavaliar o escopo e o risco do projeto e atualizar o Caso de Negócios (Business Case) Márcio Moreira 3. Processo de Desenvolvimento – slide 55 Segurança em Aplicações Objetivos das atividades 2 Monitorar & Controlar Projeto: Lançar o trabalho diário, monitorar o status do projeto, relatar a situação para envolvidos e lidar com os problemas Planejar Próxima Iteração: Detalhar o Plano de Iteração para conduzir a próxima iteração Refinar o Plano de Desenvolvimento: Refinar, quando necessário, o Plano de Desenvolvimento do Software Fechamento de Fase: Fechar uma fase assegurando que os objetivos dela foram atingidos Fechamento do Projeto: Fechar o projeto assegurando que os objetivos dele foram atingidos Márcio Moreira 3. Processo de Desenvolvimento – slide 56 Segurança em Aplicações Essência da Gestão de Projetos Planejamento: • Caso de Negócio (Business Case) • Plano de Desenvolvimento do Software • Plano de Iteração Execução: • Lista de Riscos • Lista de Problemas • Ordem de Trabalho Monitoramento e Controle: • Registro de Revisão • Avaliação de Status • Avaliação de Iteração Márcio Moreira 3. Processo de Desenvolvimento – slide 57 Segurança em Aplicações Conceitos Ambiente: Tudo aquilo que o projeto necessita para desenvolver e implementar o software, tais como: processo, orientações, ferramentas, modelos e infraestrutura (hardware e software) Ambiente de desenvolvimento: Individual (Espaço de Trabalho) Desenvolvimento Integração (Repositório) Sistemas Infra-estrutura dos Ambientes Ambiente aplicado à implementação do software Testes Integrados Performance e Aceitação Produção Produção Ambiente de testes: Ambiente aplicado aos testes Márcio Moreira 3. Processo de Desenvolvimento – slide 58 Segurança em Aplicações Funções envolvidas Administrador de Sistemas: Responsável pela infra-estrutura do ambiente Especialista em Ferramentas: Seleciona, adquire, instala e suporta as ferramentas necessárias Engenheiro de Processos: Responsável pelo processo a ser aplicado ao desenvolvimento Márcio Moreira 3. Processo de Desenvolvimento – slide 59 Segurança em Aplicações Objetivos da disciplina de ambiente Fornecer a organização do desenvolvimento bem como o ambiente (processos e ferramentas) que suportarão a equipe de desenvolvimento do projeto Fornecer e manter todos os ambientes necessários ao desenvolvimento do projeto Em linha gerais, podemos dizer que a disciplina de ambiente suporta todas as outras Márcio Moreira 3. Processo de Desenvolvimento – slide 60 Segurança em Aplicações Fluxo de trabalho de ambiente Márcio Moreira 3. Processo de Desenvolvimento – slide 61 Segurança em Aplicações Objetivos das atividades Preparar ambiente do projeto: Utilizada na iniciação, com o propósito de preparar o ambiente de desenvolvimento do projeto Preparar o ambiente para uma iteração: Adequar o ambiente de desenvolvimento do projeto para uma iteração Suportar o ambiente durante uma iteração: Garantir que todas as demandas de processos e ferramentas sejam atendidas durante uma iteração do projeto Márcio Moreira 3. Processo de Desenvolvimento – slide 62 Segurança em Aplicações Essência da disciplina de ambiente Preparação do Projeto: • • • • Processo de Desenvolvimento Caso de Desenvolvimento Diretrizes e Templates Específicas do Projeto Ferramentas Preparação de Iteração: • • • • • Caso de Desenvolvimento Diretrizes e Templates Específicas do Projeto Requisições de Mudança Manual de Guia de Estilo Ferramentas Suporte de Iteração: • Infra-estrutura de Desenvolvimento Márcio Moreira 3. Processo de Desenvolvimento – slide 63 Segurança em Aplicações Referências Sigla Referência FER08 Fernando Dantas. Resumo do livro: The Rational Unified Process Made Easy. www.fernandodantas.com.br . 2008. JAC98 Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process. 1998. Addison Wesley Longman. KRO03 Per Kroll e Philippe Kruchten 2003. The Rational Unified Process Made Easy, A Practitioners Guide to the RUP. Addison Wesley Longman. KRU98 P. Kruchten; The Rational Unified Process: An Introduction, Object Technology Series, AddisonWesley, 1998. MAR05 Márcio Moreira. Resumo do livro Unified Process. Márcio. Uberlândia (MG). 2005. MAR06 Márcio Moreira. Engenharia de Software - RUP . Uniube - Universidade de Uberaba - Uberlândia (MG). 2006. PRE95 PRESSMAN, R. S. Engenharia de software. São Paulo: Makron Books. 1995. RUP08 IBM Rational. RUP – Rational Unified Process – 7.5 – For Large and Small Projects. 2008. IBM Rational. SUM07 Sommerville, Ian. Engenharia de Software. 8ª Ed. Pearson / Prentice Hall. 2007. Márcio Moreira 3. Processo de Desenvolvimento – slide 64 Segurança em Aplicações