Visão Geral de Engenharia de
Software
Ricardo de Almeida Falbo
Ontologias para Engenharia de Software Departamento de Informática
Universidade Federal do Espírito Santo
Agenda
• Engenharia de Software: Definição
• Processo de Software
• Normas e Modelos de Qualidade de Processo de Software
– CMMI
– ISO/IEC 12207
– ISO 29110
– MR-MPS-SW (MPS.BR)
– SWEBOK
– ISO/IEC 24744
Engenharia de Software
• O que é?
• Segundo o IEEE Standard Glossary for Software Engineering: “a aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software, i.e., a aplicação de engenharia a software.”
• Área da Ciência da Computação voltada à especificação, desenvolvimento e manutenção de sistemas de software, com aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, visando organização, produtividade e qualidade no processo de software.
Processo de Software
• Envolve as atividades, métodos e práticas que guiam os profissionais na produção de software.
4
Processo de Software
Processos
Atividades
Pré-atividades
Subatividades
Artefatos
Insumos
Produtos
Recursos
Recursos Humanos
Ferramentas de Software
Hardware
Procedimentos
Métodos
Técnicas
Roteiros
Processo de Software
5
Processo de Desenvolvimento de Software
Processo de Gerência de Projetos
Processos de Apoio
Produto
de
Software
Processo de Desenvolvimento
• Engloba as atividades que contribuem diretamente para o desenvolvimento do produto de software a ser entregue ao cliente, incluindo a sua documentação:
– Levantamento e Análise de Requisitos
– Projeto
– Implementação
– Testes
– Implantação e Entrega do Sistema
6
Processo de Engenharia de Requisitos e Processo de Software
7
Levantamento de Requisitos
Análise de Requisitos
Projeto
V&V de Requisitos
Gerência de Requisitos
Gerência de Configuração
Gerência da Qualidade
Processo de Desenvolvimento
...
Gerência de Projetos
Processo de Desenvolvimento
Planejamento
Determinação do Escopo do Software
Definição do Processo de Software do Projeto
Realização de Estimativas
Estimativa de Tamanho
Estimativa de Esforço
Estimativa e Alocação de Recursos
Estimativa de Tempo e Elaboração do Cronograma do Projeto
Estimativa de Custos e Elaboração do Orçamento do Projeto
Identificação de Riscos e Planejamento de Respostas aos Riscos
Iniciação Acompanhamento
Levantamento preliminar de requisitos marco
Encerramento
8
Processo de Gerência de Projetos
Processos de Apoio
• Documentação de Software
• Gerência de Configuração de Software
– Controle de Questões
– Controle de Alterações
– Controle de Versões
• Gerência da Qualidade
– Verificação & Validação
– Testes, Inspeções, Revisões
– Garantia da Qualidade
• Medição
• Reutilização
• Gestão do Conhecimento
CMMI
• Objetivo: fornecer direcionamentos para melhorar os processos de uma organização e sua capacidade de gerenciar o desenvolvimento, aquisição e manutenção de produtos e serviços.
• Provê abordagens comprovadas em uma estrutura que ajuda organizações a avaliar sua maturidade ou capacidade em determinada área de processo, estabelecer prioridades para melhoria, e implementar essas melhorias.
CMMI
• Trabalha com duas representações: em estágio e contínua.
• Ambas as representações contém áreas de processo comuns. Porém, na representação em estágio, as áreas de processo estão agrupadas em níveis de maturidade e na representação contínua, a mesma área de processo está dividida em categorias.
• A abordagem em estágio é passível de certificação.
CMMI
CMMI
CMMI
CMMI Nível Área de Processo
5 (mais alto) Gerência do Desempenho Organizacional
Análise de Causas e Resolução de Problemas
4 Desempenho do Processo Organizacional
Gerência Quantitativa de Projeto
3
Análise de Decisão e Resolução
Gerência de Riscos
Gerência Integrada de Projeto
Treinamento Organizacional
Definição do Processo Organizacional
Foco no Processo Organizacional
Validação
Verificação
Integração de Produto
Solução Técnica
Desenvolvimento de Requisitos
2
Medição e Análise
Gerência de Configuração
Garantia da Qualidade de Processo e Produto
Gerência de Acordo com Fornecedores
Monitoramento e Controle de Projeto
Planejamento de Projeto
Gerência de Requisitos
ISO 12207 - Processos de Ciclo de Vida
• Abrange tanto a Engenharia de Software quanto a Engenharia de Sistemas.
• Estabelece uma estrutura comum para os processos de ciclo de vida de software e de sistemas, com terminologia bem definida, que pode ser referenciada pela indústria de software.
• Estabelece uma estrutura comum para os processos de ciclo de vida de software.
• A estrutura contém processos, atividades e tarefas que devem ser aplicados na aquisição, fornecimento, desenvolvimento, operação e manutenção de produtos de software.
ISO 12207
• Esse conjunto de processos, atividades e tarefas foi projetado para ser adaptado de acordo com as características de cada projeto de software, o que pode envolver o detalhamento, a adição e a supressão de processos, atividades e tarefas não aplicáveis ao mesmo.
• Estrutura
– Processo
• Propósito
• Resultados
• Atividades
– Tarefas
ISO 12207 Processo
Propósito
Resultados
Atividade
Tarefa
ISO/IEC 12207 - Processos de Ciclo de Vida
ISO 29110 - Perfis de ciclo de vida para micro organizações • É uma série de normas de Engenharia de Software, voltada
para micro organizações de software (até 25 pessoas).
• Um grupo de perfis oferece uma abordagem progressiva para atender à maioria das micro organizações (MOs).
ISO 29110
Parte Certificadora
Guia de Avaliação
Guia de Implementação
ISO 29110
• Entrada: foca em MOs iniciantes e naquelas que estejam trabalhando em projetos pequenos (tamanho inferior a seis pessoas-mês)
• Básico: descreve as práticas de desenvolvimento de software de um único aplicativo por uma única e sem nenhum risco especial ou fatores situacionais.
• Intermediário: visa MOs que estejam desenvolvendo múltiplos projetos
• Avançado: se aplica às MOs que querem crescer como negócios de desenvolvimento de software independente
ISO 29110
• Cada perfil tem um conjunto de processos.
• Para implementar cada processo, devem ser executadas as suas atividades, atingidos seus objetivos e produzidos os produtos de trabalho obrigatórios.
• Estrutura:
– Processo • Propósito
• Objetivos
• Produtos de Entrada, Internos e de Saída
• Papéis Envolvidos
• Atividades (indica objetivos relacionados)
– Tarefas (para cada tarefa, são informados os papéis envolvidos e os produtos de entrada e saída).
ISO 29110
• Perfil Básico
ISO 29110
• Perfil Básico
ISO 29110
• Cada atividade da ISO/IEC 29110 é descrita utilizando uma tabela de quatro colunas: papéis envolvidos em uma atividade específica, tarefas, suas entradas e saídas.
• Exemplo de uma tarefa da atividade de Análise de Requisitos do Software
• Para ajudar as MOs, é descrito o conteúdo típico dos documentos produzidos durante a execução de um projeto.
MPS.BR
• O MPS.BR – Melhoria de Processo do Software Brasileiro (SOFTEX, 2011) tem como objetivo definir um modelo de melhoria e avaliação de processo de software, adequado, preferencialmente, às micro, pequenas e médias empresas brasileiras.
• O MPS.BR está dividido em três componentes:
– Modelo de Referência (MR-MPS)
– Método de Avaliação (MA-MPS)
– Modelo de Negócio (MN-MPS)
MR-MPS-SW
• Estrutura:
– Processo
• Propósito
• Resultados Esperados
MR.MPS
SWEBOK 3.0
ISO/IEC 24744
• Software Engineering — Metamodel for Development Methodologies
• Define um Metamodelo para Metodologias de Desenvolvimento, incluindo três aspectos principais:
– Processos
– Produtos de Trabalho a usar ou produzir
– Pessoas e Ferramentas envolvidas.