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
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
Gerenciamento
Diagrama de Gantt (prazos)
Artefatos
Engenharia de Software © 2008 Jair C Leite
Método x Processo
• Um método (ou modelo de processo) é algo
teó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áticas
a serem realizadas pela equipe como prazos
definidos e métricas para se avaliar como
elas 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 em
atividades.
• Atividades são de
responsabilidade de um papel
(membro da equipe ou
trabalhador).
• Um artefato (produto do trabalho)
é um modelo, documento ou
código produzido por uma
atividade.
• Atividades devem gerar um
artefato de saída, que possa ser
verificado, e podem requisitar um
artefato 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 quais
são os papéis.
• Na elaboração de um processo, deve-se definir quais
pessoas desempenham papéis.
• Os papéis podem variar de um processo para outro
Analista
Arquiteto
Desenvolvedor
Testador
Gerente
Envolvido
Qualquer
João
Maria
Pedro
Paulo
Ana
Claudia
Método
Engenharia de Software © 2008 Jair C Leite
Atividades (disciplinas)
• Em um método, as atividades ou tarefas a serem
realizadas são as disciplinas.
• Em um processo, as atividades devem ser alocadas
aos papéis...
• ... e deve ser determinados o fluxo de trabalho, a
rede de dependências e os marcos
Requisitos
Arquitetura
Desenvolvimento
Teste
Gerenciamento
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 e
consomem artefatos
• Um processo define quem produz e consome os
artefatos e quando eles serão produzidos (marcos)
Método Processo
Modelos
Documentos
Componentes
Builds
Engenharia de Software © 2008 Jair C Leite
Incrementos, builds e releases
• Um incremento é um componente de software
compilado, utilizado na composição de builds.
• Um build é um artefato parciais de software
composto por incrementos .
• Uma release é um build entregue ao cliente com
executá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 uma
atividade 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
Marcos
intermediários
release
Engenharia de Software © 2008 Jair C Leite
Diagrama de Gantt
• Determina a linha de tempo na qual as atividades
serão executadas
• Deve refletir os marcos e as dependências

Processo desoftware

  • 1.
    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
  • 2.
    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 Gerenciamento Diagrama de Gantt (prazos) Artefatos Engenharia de Software © 2008 Jair C Leite Método x Processo • Um método (ou modelo de processo) é algo teó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áticas a serem realizadas pela equipe como prazos definidos e métricas para se avaliar como elas estão sendo realizadas. – Define quem e quando fazer. Método + Planejamento = Processo
  • 3.
    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 em atividades. • Atividades são de responsabilidade de um papel (membro da equipe ou trabalhador). • Um artefato (produto do trabalho) é um modelo, documento ou código produzido por uma atividade. • Atividades devem gerar um artefato de saída, que possa ser verificado, e podem requisitar um artefato de entrada. Trabalhador (papel) Atividade (tarefas) Artefatos (produto do trabalho) responsável Entrada/saída Realizada por
  • 4.
    Engenharia de Software© 2008 Jair C Leite Papéis • Na definição de um método, deve-se definir quais são os papéis. • Na elaboração de um processo, deve-se definir quais pessoas desempenham papéis. • Os papéis podem variar de um processo para outro Analista Arquiteto Desenvolvedor Testador Gerente Envolvido Qualquer João Maria Pedro Paulo Ana Claudia Método Engenharia de Software © 2008 Jair C Leite Atividades (disciplinas) • Em um método, as atividades ou tarefas a serem realizadas são as disciplinas. • Em um processo, as atividades devem ser alocadas aos papéis... • ... e deve ser determinados o fluxo de trabalho, a rede de dependências e os marcos Requisitos Arquitetura Desenvolvimento Teste Gerenciamento Método Processo
  • 5.
    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 e consomem artefatos • Um processo define quem produz e consome os artefatos e quando eles serão produzidos (marcos) Método Processo Modelos Documentos Componentes Builds
  • 6.
    Engenharia de Software© 2008 Jair C Leite Incrementos, builds e releases • Um incremento é um componente de software compilado, utilizado na composição de builds. • Um build é um artefato parciais de software composto por incrementos . • Uma release é um build entregue ao cliente com executá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 uma atividade 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 Marcos intermediários release
  • 7.
    Engenharia de Software© 2008 Jair C Leite Diagrama de Gantt • Determina a linha de tempo na qual as atividades serão executadas • Deve refletir os marcos e as dependências