Processo desoftware

7
Engenharia de Software © 2008 Jair C Leite O que é um processo de software? Um conjunto de atividades realizadas por pessoas cujo objetivo é desenvolvimento ou evolução de software 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 é uma representação abstrata das atividades, papéis e artefatos. Engenharia de Software © 2008 Jair C Leite Processo Desenvolvimento de Software “Um processo é o conjunto total de atividades de engenharia necessárias para transformar requisitos do usuário em software” “Managing the Process”, Humphrey, 1989 Requisitos do Usuário Sistema novo ou modificado Processo de Desenvolvimento de Software

Transcript of Processo desoftware

Page 1: Processo desoftware

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

Page 2: Processo desoftware

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

Page 3: Processo desoftware

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

Page 4: Processo desoftware

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

Page 5: Processo desoftware

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

Page 6: Processo desoftware

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

Page 7: Processo desoftware

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