Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 09289 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Especificação e Análise de Requisitos 4. Projeto de Sistema 5. Implementação e Testes 6. Entrega e Manutenção 7. Gerência da Qualidade 8. Gerência de Projetos de Software 9. Tópicos Avançados em 1
9. Tópicos Avançados em Estudos mostram que a qualidade do produto de software depende diretamente da qualidade dos processos adotados no seu desenvolvimento (FUGGETTA, 2000). Cada vez mais, as organizações têm despendido esforços significativos na melhoria contínua de seus processos de software. Algumas iniciativas: ü Normas e modelos de qualidade de processo ü Processos de software padrão ü Desenvolvimento por meio de processos ágeis ü Apoio automatizado ao processo de software. 9. Tópicos Avançados em A) Normas e Modelos de Apoio à Definição de Processos Auxiliam a rechear o arcabouço fornecido pelo modelo de ciclo de vida. Algumas normas e modelos podem ajudar a definição de processos. 2
9. Tópicos Avançados em Normas e Modelos de Apoio à Definição de Processos A Série ISO 9000 Desenvolvida para apoiar organizações, de todos os tipos e tamanhos, na implementação e operação de sistemas eficazes de gestão da qualidade. NBR ISO 9000: 2015 - Sistemas de Gestão da Qualidade - Conceitos e Terminologia: descreve os fundamentos de sistemas de gestão da qualidade e estabelece a terminologia para esses sistemas; NBR ISO 9001:2015 - Sistemas de Gestão da Qualidade Requisitos: especifica os requisitos para um sistema de gestão da qualidade com enfoque na satisfação do cliente. Para uma organização ser certificada ISO 9001, ela precisa demonstrar sua capacidade para fornecer produtos que atendam aos requisitos do cliente (explícitos e implícitos) e os requisitos regulamentares aplicáveis; NBR ISO 9004:2009 - Gestão para o sucesso sustentado de uma organização Uma Abordagem da Gestão da Qualidade: fornece diretrizes que ampliam os requisitos estabelecidos pela ISO 9001, buscando melhoria contínua de desempenho e sucesso sustentável. NBR ISO 19011:2011 - Diretrizes para Auditoria de SGQ e/ou Ambiental: fornece diretrizes para a condução das auditorias e determinação da competência dos auditores. 9. Tópicos Avançados em ISO 9001 - Processo de Certificação 1. A empresa estabelece o seu sistema da qualidade. 2. A empresa faz uma solicitação formal a um órgão certificador. 3. O órgão certificador faz uma primeira visita à empresa para colher mais dados e explicar o processo de certificação. 4. O órgão certificador verifica se a documentação do sistema da qualidade está de acordo com a ISO. 5. O órgão certificador envia uma equipe à empresa com fins de auditoria. Podem ocorrer três situações: l l l Qualificada sem discrepâncias Qualificada com pequenas discrepâncias, que devem ser corrigidas em um prazo pré-estabelecido antes da certificação Não qualificada 6. O órgão certificador realiza visitas periódicas à empresa para assegurar que o sistema continua sendo efetivo. 3
9. Tópicos Avançados em Certificados ISO 9001 (exemplos) 9. Tópicos Avançados em ISO/IEC/IEEE 12207: 2017 Tecnologia de Informação - Processos de Ciclo de Vida de Software 30 processos + um processo de adaptação. 4 grupos: - Processos relacionados a Acordos (Contratos) - Processos relacionados à Habilitação Organizacional para Projetos - Processos de Gerenciamento Técnico - Processos Técnicos 4
9. Tópicos Avançados em 9. Tópicos Avançados em CMMI - Capability Maturity Model Integration Definido pelo Software Engineering Institute (SEI) - Carnegie Mellon University, com o intuito de quantificar a capacidade de uma organização produzir produtos de software de alta qualidade, de forma previsível e consistente. Descreve princípios e práticas dos quais depende a maturidade do processo de software. Define 5 níveis de maturidade para o processo de desenvolvimento que são caracterizados por PA s (Process Areas). Tem como objetivo auxiliar as organizações a aumentarem a maturidade de seus processos por um caminho evolutivo. Pode ser usado por empresas contratantes para identificar as características do processo utilizado por seus fornecedores. Oferece duas abordagens para melhoria de processos: contínua ou por estágios. 5
9. Tópicos Avançados em CMMI - Capability Maturity Model Integration 5 4 3 Foco na melhoria contínua do processo Desempenho do processo controlado estatisticamente Processo caracterizado para a organização e próativo Definido Em Otimização (CAR) Análise de Causas e Resolução (OPM) Gerência do Desempenho Organizacional Gerenciado Quantitativamente (QPM) Gerência Quantitativa do Projeto (OPP) Desempenho do Processo Organizacional (IPM) Gerência Integrada de Projetos (OPD) Definição do Processo Organizacional (OPF) Foco no Processo Organizacional (OT) Treinamento Organizacional (RD) Desenvolvimento de Requisitos (TS) Solução Técnica, ((PI) Integração do Produto (VER) Verificação (VAL) Validação (RSKM) Gerência de Riscos (DAR) Análise de Decisão e Resolução 2 1 Processo caracterizado para projetos e muitas vezes reativo Processo imprevisível, fracamente controlado e reativo Gerenciado (REQM) Gerência de Requisitos (PP) Planejamento de Projeto (PMC) Monitoração e Controle de Projeto Inicial (PPQA) Garantia da Qualidade do Processo e do Produto (SAM) Gerência de Acordo com Fornecedores (CM) Gerência de Configuração (MA) Medição e Análise 9. Tópicos Avançados em MR MPS.BR - Modelo de Referência para Melhoria de Processo de Software Brasileiro ISO/IEC 12207 CMMI-DEV ISO/IEC 15504 CMMI-SVC ISO/IEC 20000 Modelo MPS.BR Modelo de Referência MPS para Software (MR-MPS-SW) Modelo de Referência MPS para Serviços (MR-MPS-SV) Método de Avaliação (MA-MPS) Modelo de Negócio (MN-MPS) Guia Geral MPS de Software Guias de Implementação Guia de Aquisição Guia Geral MPS de Serviços Guia de Avaliação Documento do Programa 6
9. Tópicos Avançados em MR-MPS-SW 9. Tópicos Avançados em B) Definição de Processos de Software em Níveis Embora diferentes projetos requeiram processos com características específicas para atender às suas particularidades, é possível estabelecer um conjunto de ativos de processo* a ser utilizado na definição de processos de software de uma organização. As normas e modelos preconizam a definição e institucionalização de processos padrão nas organizações. Normas e Modelos de Qualidade Processo Padrão Cultura Organizacional, Política Organizacional, Características da Organização etc * Subprocessos, atividades, subatividades, artefatos, recursos e procedimentos, dentre outros. 7
9. Tópicos Avançados em Normas e Modelos de Qualidade, Cultura Organizacional, Características da Organização Definição Processo Padrão Tipo de Software, Domínio do Problema, Paradigma e Tecnologia de Desenvolvimento Especialização Processo Especializado 1 Processo Especializado n Particularidades do Projeto, Modelo de Ciclo de Vida Instanciação Processo de Projeto 1 Processo de Projeto m 9. Tópicos Avançados em C) Processos Ágeis O Manifesto Ágil Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar: Indivíduos e interação entre eles mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda. (http://manifestoagil.com.br/) 8
9. Tópicos Avançados em XP extreme Programming Abordagem para desenvolvimento de software que busca assegurar que o cliente receba o máximo de valor a cada dia de trabalho da equipe de desenvolvimento. Parte da premissa de que o cliente aprende sobre suas necessidades na medida em que é capaz de manipular o sistema sendo produzido. Com base no uso do sistema, o cliente reavalia suas necessidades e prioridades, gerando mudanças que devem ser incorporadas ao software pela equipe de desenvolvimento. XP é voltado para: ü Projetos cujos requisitos são vagos e podem mudar com frequência ü Desenvolvimento de sistemas orientados a objetos ü Equipes pequenas (até 12 desenvolvedores) ü Desenvolvimento iterativo/incremental (o sistema começa a ser implementado logo no início e vai ganhando novas funcionalidades ao longo do tempo). 9. Tópicos Avançados em XP é organizado em torno de um conjunto de valores e práticas que devem atuar de maneira coesa e harmônica. Valores do XP: ü Feedback: quando o cliente aprende com o sistema que utiliza, ele reavalia as suas necessidades e dá feedback para a equipe de desenvolvimento. ü Comunicação: a comunicação entre o cliente e a equipe permite que todos os detalhes do projeto sejam tratados com a atenção e agilidade que merecem. ü Simplicidade: a simplicidade advoga que só deve ser implementado aquilo que é suficiente para atender as necessidades do cliente. ü Coragem: a equipe precisa ter coragem e acreditar que, usando as práticas e valores do XP, será capaz de fazer o software evoluir com segurança e agilidade. 9
9. Tópicos Avançados em O XP não possui uma figura padrão que represente a metodologia como um processo (sequência de passos). A figura clássica do XP é conhecida como 3 loops e apresenta suas 13 práticas. 9. Tópicos Avançados em SCRUM Método ágil para gerenciamento de projetos, cuja aplicação não está limitada a projetos de software. O nome foi inspirado em um trabalho publicado na Harward Business Review em 1986, intitulado The New New Product Development Game, de Hirotaka Takeuchi e Ikujiro Nonaka, que propunha uma abordagem e a comparava com a formação Scrum no rugby. Foi formalmente criado no artigo Scrum and the Perfect Storm (www.controlcaos.com/my-articles) escrito por Ken Schwaber na década de 90, baseado no desenvolvimento iterativo e incremental e novas estratégias de criação de produtos. O nome foi inspirado em uma jogada de Rugby. Após uma reunião (agrupamento em torno da bola), o objetivo é retirar os obstáculos à frente do jogador que correrá com a bola, para que possa avançar o máximo possível no campo e marcar pontos. 10
9. Tópicos Avançados em Ciclo do SCRUM 9. Tópicos Avançados em Como funciona: 1. Os projetos são divididos em ciclos (tipicamente mensais) chamados de Sprints. A Sprint representa uma janela de tempo dentro da qual um conjunto de atividades deve ser executado. Normalmente uma sprint dura de 2 a 4 semanas. 2. As funcionalidades a serem implementadas em um projeto são mantidas em uma lista chamada Product Backlog. 3. No início de cada Sprint, faz-se uma reunião de planejamento inicial (Sprint Planning Meeting) na qual Product Owner prioriza os itens do Product Backlog e a equipe seleciona as atividades que ela será capaz de implementar durante a Sprint que se inicia. 4. As atividades alocadas em uma Sprint são transferidas do Product Backlog para o Sprint Backlog. 5. A cada dia de uma Sprint, a equipe faz uma breve reunião (normalmente de manhã), chamada Daily Scrum (também é conhecida como Stand up Meeting) para disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia. 6. Ao final de uma Sprint, a equipe apresenta as funcionalidades implementadas em uma Sprint Review Meeting. 7. Finalmente, faz-se uma Sprint Retrospective e a equipe parte para o planejamento da próxima Sprint. 11
9. Tópicos Avançados em D) Automatização de Processo de Software Com o aumento da complexidade dos processos de software, tornou-se imprescindível utilizar ferramentas e ambientes de apoio à realização de suas atividades, visando, sobretudo, a atingir níveis mais altos de qualidade e produtividade. Ferramentas CASE (Computer Aided Software Engineering) apoiam a realização de atividades específicas, tais como planejamento e análise e especificação de requisitos. Atualmente, o elevado número e a variedade de ferramentas CASE levou os engenheiros de software a pensarem em trabalhar com diversas ferramentas que interajam entre si e forneçam suporte a todo ciclo de vida do desenvolvimento, dando origem aos Ambientes de Desenvolvimento de Software (ADSs). Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 09289 Prof.: (monalessa@inf.ufes.br) 12