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.uniminas.br/~marcio/ Pós-SI – 4ª Turma – 2008 Fatores críticos de sucesso Visão de Negócio (direção, gestão, administração) Qualidade Pessoas (CHA) Processos Gestão de Projetos Infraestrutura TI/comunicaçã o Clientes Márcio Moreira Clientes Unidade 2 – Processo de Desenvolvimento – Slide 2 Segurança em Aplicações Processos de desenvolvimento MSF – Microsoft Solutions Framework Fases: visão, planejamento, estabilização e instalação Disciplinas: projeto, riscos e competência Mais ágil e menos formal que o RUP RUP – Rational Unified Process Processos Desenvolvido pela Rational (hoje da IBM) Processo mais utilizado atualmente XP – Extreme Programming Atividades: planejamento, projeto, codificação e teste Gera sensação de produtividade constante Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 3 Segurança em Aplicações RUP – Rational Unified Process Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 4 Segurança em Aplicações Questionamentos 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 durará mais tempo? Uma feita com base na expertise de um mestre de obras especialista ou Uma feita com projeto estrutural considerando as necessidades atuais e futuras do prédio Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 5 Segurança em Aplicações Pilares 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 Unidade 2 – Processo de Desenvolvimento – Slide 6 Segurança em Aplicações Fases do RUP Concepção Escopo e viabilidade Elaboração Factibilidade e arquitetura básica (versão-alfa) Construção Desenvolvimento gerando versão-beta Transição Testes de aceitação e entrega do produto Implantação (fase não coberta pelo RUP) Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 7 Segurança em Aplicações Iterações do RUP São mini-projetos: Tem escopo, objetivos, etc. 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 pela evolução iterativa e incremental de seus componentes Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 8 Segurança em Aplicações Descrição da Estratégia Disciplinas: Modelagem de Negócios Visão de Negócio Objetivos e Metas Estratégicos Indicadores Estratégicos De Desempenho Engenharia de Processos Realidade Atual Processos (o quê, quando, porquê) ‘ Papéis e Márcio Moreira Métricas Táticas e Operacionais Responsabilidades Unidade 2 – Processo de Desenvolvimento – Slide 9 Informações Segurança em Aplicações (entrada e saída) Modelagem do negócio Avaliar a situação atual Descrever o negócio Identificar os processos Refinar os processos Desenhar as realizações Papéis e responsabilidades Explorar a automação de processos Desenvolver o Modelo de Domínio Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 10 Segurança em Aplicações Requisitos: questão de comunicação? Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 11 Segurança em Aplicações Requisitos do RUP Para que servem os requisitos? Acordo entre os desenvolvedores e o cliente sobre o que deve ser feito Definir as fronteiras do sistema Elucidar os riscos do projeto Subsidiar a estimativa de esforços Subsidiar o planejamento do projeto Subsidiar o estudo de retorno Tangibilizar os benefícios do sistema Facilitar a gestão do escopo do sistema Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 12 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 Unidade 2 – Processo de Desenvolvimento – Slide 13 Segurança em Aplicações Análise e Projeto do RUP Prova de conceito arquitetural Definir uma arquitetura candidata Refinar a arquitetura Analisar o comportamento Projetar componentes Projetar o banco de dados Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 14 Segurança em Aplicações Implementação Implementação do código-fonte Fazer Modelo de Implementação Planejar a integração Codificar os componentes Integrar subsistemas Integrar o sistema Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 15 Segurança em Aplicações Testes do RUP Conceito: É a execução controlada do software visando revelar falhas (bugs). Falha: Desvio de comportamento Erro: Origem da falha Testes não provam que o software está livre de falhas. Eles minimizam este risco e aumentam a confiança. Agregam valor ao produto. São partes integrantes da qualidade. Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 16 Segurança em Aplicações Níveis de testes Quanto às pessoas: Desenvolvedores Testes independentes Entidades verificadoras e certificadoras Profissionais chaves do cliente Quanto a granularidade: Testes de unidade (desenvolvedores) Testes de integração (ambos) Testes de sistema (ambos) Testes de aceitação (cliente) Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 17 Segurança em Aplicações Tipos de testes Quanto à visão do sistema: Caixa preta (por fora do sistema) Caixa branca (por dentro do sistema) Quanto às dimensões da qualidade: Dimensão Unidade Integração Sistema ● Funcionalidade ● Usabilidade ● Confiabilidade ● Performance ● Suportabilidade Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 18 Segurança em Aplicações Distribuição Planejar a distribuição Desenvolver manuais de suporte Gerenciar testes de aceite Produzir a unidade de distribuição Liberar versão-beta Empacotar o produto Providenciar site de download Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 19 Segurança em Aplicações Gestão de configuração e mudanças Planejar o controle de mudanças do projeto Gerenciar as requisições de mudança Criar o ambiente de configuração e mudança Monitorar e reportar a situação das mudanças Mudar e entregar itens de configuração Gerenciar baselines e releases Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 20 Segurança em Aplicações Gestão de Gestão de projetos (GP) Projetos PMI – Project Management Institute: Project Management Body of Knowledge (PMBOK) Metodologia mais utilizada atualmente Prince2 – Metodologia do governo inglês: Adotada em vários países europeus TenSetp Processo de uma multinacional americana que é representante do PMI Agile Resultante de um manifesto feito por 17 especialistas em Fevereiro de 2001 em Utah – USA ISO 10006: A International Standards Organization tomou o PMI como base e fez uma simplificação Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 21 Segurança em Aplicações Grupos de processos de GP do PMI Iniciação Planejamento Gerência Integrada do Projeto Execução Controle Encerramento Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 22 Segurança em Aplicações Disciplinas de GP do PMI Riscos Recursos Humanos Comunicação Aquisições Integração Escopo Qualidade Custo Tempo Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 23 Segurança em Aplicações Disciplinas de GP do PMI Aquisição: Escopo: Tempo: Custo: Qualidade: Recursos: Riscos: Comunicação: Integração: Márcio Moreira Compras para o projeto O que faz parte do projeto Gestão do prazo do projeto Gestão dos custos Gestão da qualidade Gestão dos talentos humanos Gestão dos riscos do projeto Interna e externa ao projeto Integração de todas as disciplinas Unidade 2 – Processo de Desenvolvimento – Slide 24 Segurança em Aplicações Ambiente Preparar o ambiente do projeto Preparar o ambiente da iteração Suportar o ambiente durante a iteração Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 25 Segurança em Aplicações Ambientes Desenvolvimento Estação de trabalho dos desenvolvedores Dev1 Dev2 DevN Testes Ambiente para testar a integração das unidades desenvolvidas Testes Homologação Ambiente similar ao de produção utilizado para realizar os testes de aceitação Homologação Produção Ambiente real de produção da aplicação Márcio Moreira Unidade 2 – Processo de Desenvolvimento – Slide 26 Produção Segurança em Aplicações