Processo desoftware

Preview:

Citation preview

Engenharia de Software © 2008 Jair C Leite

O que é um processo de software?

• Um conjunto de atividades realizadas por pessoascujo objetivo é desenvolvimento ou evolução desoftware e sua documentação.

• Atividades genéricas em todos os processos:– Especificação – o que o sistema deve fazer (funcionalidade)

e quais as restrições– Desenvolvimento – produção do software– Verificação – avaliar correção, validação e outros aspectos

de qualidade– Manutenção – mudanças no software

• Um modelo de processo de software é umarepresentação abstrata das atividades, papéis eartefatos.

Engenharia de Software © 2008 Jair C Leite

Processo Desenvolvimento deSoftware

• “Um processo é o conjunto total deatividades de engenharia necessáriaspara transformar requisitos do usuário emsoftware”

“Managing the Process”, Humphrey, 1989

Requisitos do

Usuário

Sistema novo

ou modificado

Processo deDesenvolvimento

de Software

Engenharia de Software © 2008 Jair C Leite

Visão geral de um processo

Equipe

Atividades (WBS)

Planejamento Alocação pessoa-atividade

Trabalhador(papel)

Atividade(tarefas)

WBS – Work Breakdown Structure

Ger

enci

amen

to

Diagrama de Gantt (prazos)

Artefatos

Engenharia de Software © 2008 Jair C Leite

Método x Processo

• Um método (ou modelo de processo) é algoteórico, um conjunto de possíveis ações –conteúdo do método.– Define o que, como e porque fazer

• O processo deve determinar ações práticasa serem realizadas pela equipe como prazosdefinidos e métricas para se avaliar comoelas estão sendo realizadas.– Define quem e quando fazer.

Método + Planejamento = Processo

Engenharia de Software © 2008 Jair C Leite

Método e Processo no SPEM 2.0

• SPEM = Software Process Engineering Meta-model• Qualquer processo pode ser representado utilizando

o SPEM• Diferença entre Conteúdo do Método e Processo

Engenharia de Software © 2008 Jair C Leite

Atividades, Artefatos e Papéis

• Um processo é organizado ematividades.

• Atividades são deresponsabilidade de um papel(membro da equipe outrabalhador).

• Um artefato (produto do trabalho)é um modelo, documento oucódigo produzido por umaatividade.

• Atividades devem gerar umartefato de saída, que possa serverificado, e podem requisitar umartefato de entrada.

Trabalhador(papel)

Atividade(tarefas)

Artefatos(produto do trabalho)

responsável Entrada/saída

Realizada por

Engenharia de Software © 2008 Jair C Leite

Papéis

• Na definição de um método, deve-se definir quaissão os papéis.

• Na elaboração de um processo, deve-se definir quaispessoas desempenham papéis.

• Os papéis podem variar de um processo para outro

Analista

Arquiteto

Desenvolvedor

Testador

GerenteEnvolvido

Qualquer

João

Maria

Pedro

Paulo

AnaClaudia

Método

Engenharia de Software © 2008 Jair C Leite

Atividades (disciplinas)

• Em um método, as atividades ou tarefas a seremrealizadas são as disciplinas.

• Em um processo, as atividades devem ser alocadasaos papéis...

• ... e deve ser determinados o fluxo de trabalho, arede de dependências e os marcos

RequisitosArquitetura

Desenvolvimento

TesteGerenciamento

Método Processo

Engenharia de Software © 2008 Jair C Leite

Exemplo de estrutura de processo (WBS)

• WBS – Work Breakdown Structure– termo tradicional da área de gerência de projetos para

determinar a estrutura de atividades, dependências, marcos

Engenharia de Software © 2008 Jair C Leite

Artefatos

• Artefatos podem ser documentos, modelos, códigos,incrementos, builds, releases, etc.

• Em um método, as disciplinas e papéis produzem econsomem artefatos

• Um processo define quem produz e consome osartefatos e quando eles serão produzidos (marcos)

Método Processo

ModelosDocumentos

ComponentesBuilds

Engenharia de Software © 2008 Jair C Leite

Incrementos, builds e releases

• Um incremento é um componente de softwarecompilado, utilizado na composição de builds.

• Um build é um artefato parciais de softwarecomposto por incrementos .

• Uma release é um build entregue ao cliente comexecutáveis (bin), bibliotecas (lib), manuais, etc.

Build1.2.0.1

Componente(incremento)

Relase1.2

Componente(incremento)

Código fonte

Código fonte

compilação build liberação

Engenharia de Software © 2008 Jair C Leite

Marcos (milestones)

• Um marco (milestone) é um ponto final de umaatividade de processo.

• Um processo deve estabelecer uma série de marcos.• Marcos principais delimitam fases• Marcos intermediários permitem avaliar o progresso

do processo de software

tempoMarcos principais

Marcos

build

Marcosintermediários

release

Engenharia de Software © 2008 Jair C Leite

Diagrama de Gantt

• Determina a linha de tempo na qual as atividadesserão executadas

• Deve refletir os marcos e as dependências

Recommended