Processo desoftware
-
Upload
dann-volpato -
Category
Documents
-
view
26 -
download
0
Transcript of 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
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