Visão Geral de Engenharia de Software - Seja Bem-Vindo...

Preview:

Citation preview

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.

Recommended