22
1/22 Introdução aos Introdução aos Processos de Processos de Software Software © Alexandre Vasconcelos amlv @ cin . ufpe . br alexandre @ qualiti .com. br Centro de Informática da UFPE/ Qualiti Software Processes

1/22 Introdução aos Processos de Software © Alexandre Vasconcelos [email protected] [email protected] Centro de Informática da UFPE/ Qualiti Software

Embed Size (px)

Citation preview

Page 1: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

1/22

Introdução aos Processos de Introdução aos Processos de SoftwareSoftware

© Alexandre [email protected]@qualiti.com.br

Centro de Informática da UFPE/Qualiti Software Processes

Page 2: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

2/22

ProcessoProcesso

Uma ação regular e contínua (ou sucessão de ações) realizada de forma bem definida, levando a um resultado [Oxford English Dictionary]

Um conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivo [Feiler & Humphrey]

Define quem está fazendo o quê, quando e como para atingir um certo objetivo [Jacobson, Booch, Rumbaugh]

O termo ciclo de vida evoluiu para processo Software processes are software too [Osterweil]

Page 3: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

3/22

Processo versus metodologiaProcesso versus metodologia

Alguns autores consideram que processos incluem uma metodologia pessoas tecnologia (suporte de ferramentas)

Outros consideram que uma metodologia é a especialização de um processo com um conjunto de métodos

Page 4: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

4/22

Padronização de processosPadronização de processos

Ajuda a reduzir problemas de treinamento, revisões e ferramentas de apoio.

Com métodos padrões, cada experiência de projeto pode contribuir com a melhoria do processo como um todo.

Processos padronizados fornecem a base para medições de qualidade entre os projetos.

Page 5: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

5/22

Modelo de processoModelo de processo

Uma representação de um processo, usualmente envolvendo atividades a serem realizadas agentes que realizam as atividades artefatos (produtos) gerados recursos necessários (consumidos)

Page 6: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

6/22

Modelo de processoModelo de processo

Um modelo é usado para entendimento e comunicação do processo, e como base para análise, execução, gerência e melhoria do processo

Idealmente a descrição deve ser formal e completa para permitir, por exemplo, automação

A descrição deve ser apresentada em diferentes níveis de abstração

Page 7: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

7/22

Modelo de processoModelo de processo

O formalismo utilizado para representar o processo é o ingrediente mais importante da modelagem

Não parece haver consenso sobre um formalismo ideal Terminologias distintas

Fase (Fusion), workflow (RUP), disciplina (RUP), atividade (conceito diferente no OPEN e no RUP)

Mas há um esforço de padronização (SPEM – OMG)

Page 8: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

8/22

Modelo de processoModelo de processo

Formalismos podem ser classificados de várias formas Diagramáticos Orientados a linguagens ...

Page 9: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

9/22

Modelo de processoModelo de processo

Alguns exemplos de formalismos diagramáticos Diagramas de transição de estados

Máquina de estados finitos, statecharts Técnicas de análise e projeto estruturados

(SADT) UML profiles e conceitos de OO

SPEM – Software Process Engineering Metamodel (padrão OMG)

Petri nets

Page 10: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

10/22

Modelo de processoModelo de processo

Alguns exemplos de formalismos orientados a linguagens Linguagens de programação de processos

Estendem uma linguagem de programação usual APPL/A é um exemplo (extensão de Ada)

Notações baseadas em regras e fatos Exemplo: extensões de Prolog

Notações que usam conceitos de OO Exemplo: uso de herança para relacionar um

modelo de processo com instâncias

Page 11: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

11/22

Engenharia de Processos x Engenharia Engenharia de Processos x Engenharia de Software x Gerência de Projetosde Software x Gerência de Projetos

Engenharia de processos definição e evolução de modelos de processos (em geral

independentes de projetos específicos) Engenharia de software

desenvolvimento e evolução de produtos de software Gerência de projetos

criação de processos específicos para um projeto, coordenação e monitoramento das atividades de desenvolvimento (assegura que o processo é seguido)

Page 12: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

12/22

Engenharia de Processos x Engenharia Engenharia de Processos x Engenharia de Software x Gerência de Projetosde Software x Gerência de Projetos

Engenharia de software

Gerência de projetos

Engenharia de processos

• guia (ou enforcement)• automação• status, ...

• instanciação• monitoramento• mudanças (dinâmicas)• status, ...

• definição• simulação• métricas• melhorias, ...

Page 13: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

13/22

Engenharia de Processos x Engenharia Engenharia de Processos x Engenharia de Software x Gerência de Projetosde Software x Gerência de Projetos

Engenharia deprocessos

Gerência deprojetos

Engenharia desoftware

Requisitos do processo Requisitos do projetoe do produto

Modelo doprocesso

Processo dedesenvolvimento

software

Page 14: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

14/22

Exemplos de processosExemplos de processos

Processos tradicionais (pesados) RUP, OPEN, Catalysis

Processos ágeis (leves) XP, Agile modeling, Crystal

Page 15: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

15/22

Exemplos de processosExemplos de processos

Consenso em torno de Iteratividade Participação de usuários Flexibilidade de configuração para projetos

específicos Comunicação entre membros da equipe

Page 16: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

16/22

Exemplos de processosExemplos de processos

Divergências Detalhamento de atividades a serem seguidas Ordem de execução das atividades

Arquitetura robusta (RUP) Arquitetura para o contexto da iteração atual (agile

modeling) Rigor na atribuição de tarefas a responsáveis

workers (RUP) alocação sob demanda e interesse (XP)

Artefatos (documentação) gerados Grau de automação (im)pessoalidade

Page 17: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

17/22

Exemplos de processosExemplos de processos

A polêmica ... Se a tendência é ter processos mais leves,

afinal o desenvolvimento de software é Arte+Sociologia+Psicologia+...

ou Lógica+Modelos+Engenharia+...??? E todo o esforço de consolidação da Engenharia

de Software como uma ciência exata???

Page 18: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

18/22

Institucionalização de processos: Institucionalização de processos: pontos críticospontos críticos Comprometimento da alta administração O processo precisa ajudar e não burocratizar

procedimentos adequados ferramentas para facilitarem o trabalho.

Envolvimento de todos Treinamento e orientação de pessoas envolvidas nos

padrões e técnicas Disponibilização da infra-estrutura necessária Disciplina e motivação Revisão e melhoria contínua

Page 19: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

19/22

Institucionalização de processos: Institucionalização de processos: planejamento, estruturação e planejamento, estruturação e implantaçãoimplantação Alocar um líder exclusivo para o projeto de

institucionalização Treinar o líder do projeto Efetuar diagnóstico da situação atual Selecionar o processo a ser adotado Definir recursos necessários Definir cronograma de atividades / tempo Constituir uma equipe de implantação Treinar a equipe no processo selecionado

Page 20: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

20/22

Institucionalização de processos: Institucionalização de processos: planejamento, estruturação e planejamento, estruturação e implantaçãoimplantação Estabelecer um sistema de controle de documentos Definir/adequar procedimentos/atividades Avaliar ferramentas que possam automatizar os

procedimentos Treinar nos procedimentos Implantar os procedimentos Formar auditores/avaliadores internos Realizar auditorias/avaliações internas Promover ações corretivas Avaliar e melhorar continuamente

Page 21: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

21/22

Algumas referênciasAlgumas referências

Process-Centered Software Engineering Environments. P. K. Garg & M. Jazayeri. IEEE Computer Society Press

The OPEN Process Specification. I. Graham, B. Henderson-Sellers & H. Younessi

The Unified Software Development Process. I, Jacobson, G. Booch & J. Rumbaugh

http://www.rational.com/products/rup/ http://www.catalysis.org/ http://www.extremeprogramming.org/ http://www.agilemodeling.com/ http://www.crystalmethodologies.org/

Page 22: 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software

22/22

Introdução aos Processos de Introdução aos Processos de SoftwareSoftware

© Alexandre [email protected]@qualiti.com.br

Centro de Informática da UFPE/Qualiti Software Processes