processos conceitos, modelos, ciclo de vida, ambientes (psee), exemplos augusto sampaio

26
Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Upload: adriano-rodrigues-amado

Post on 07-Apr-2016

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Processos conceitos, modelos, ciclo de vida,

ambientes (PSEE), exemplos

Augusto Sampaio

Page 2: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Processo

• Um processo – é 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 que, quando e como para atingir um certo objetivo [Jacobson, Booch, Rumbaugh]

Page 3: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Processo

• Em engenharia de software, o objetivo é o desenvolvimento de um produto de software

• Em engenharia de processos, o objetivo é desenvolvimento de um (modelo de) processo

• O termo ciclo de vida evoluiu para processo• Exemplos de ciclos de vida e processos:

cascata, espiral, incremental, RUP, Open, Catalysis, XP, ...

Page 4: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Processo 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 5: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Modelo de Processo

• Um modelo 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: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Modelo de Processo

• Um modelo é usado para entendimento e comunicação do processo, e como base para análise, execução (enactment), 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: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Modelo 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, workflow, domínio, disciplina, Atividade – Mas há esforço de padronização (SPEM e BPMN –

OMG)

Page 8: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Modelo de Processo

• Formalismos podem ser classificados de várias formas – Orientado a produto ou à atividade– Diagramáticos ou Orientados a linguagens– ...

Page 9: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Modelo 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)

– BPMN Business Process Modeling Notation (padrão OMG)

– Petri nets

Page 10: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Modelo 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: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Ciclo de vida

Análise derequisitos

Projeto(modelo)

Instanciação

Exemplo de ciclo de vida (meta-modelo) de processos

Avaliação Execução Simulação

Software processes are software too [Osterweil]

Page 12: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEE

• Um PSEE (Process-centred Software Engineering Environment) é um ambiente de desenvolvimento de software no qual os processos utilizados são definidos explicitamente pelo usuário e modelados no ambiente– apóia a atividade de definir, monitorar e avaliar um

processo para um projeto específico– Usualmente automatizam parte do processo e guiam o

desenvolvedor– Alguns (poucos) ambientes suportam modificações

dinâmicas no processo durante execução

Page 13: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEE

• PSEEs suportam e relacionam três disciplinas importantes – Engenharia de processos

• definição e evolução de modelos de processos (em geral independentes de projetos específicos)

– 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)

– Engenharia de software • desenvolvimento e evolução de produtos de software

Page 14: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEEEngenharia 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, ...

PS

EE

Page 15: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEEVisão geral do fluxo de dados

Engenharia deprocessos

Gerência deprojetos

Engenharia desoftware

Requisitos do processo Requisitos do projetoe do produto

Modelo doprocesso

Processo dedesenvolvimento

software

Page 16: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEE

• Alguns ambientes comerciais– Process WEAVER (Cap Gemini) – SynerVision for SoftBench (HP)

• Ambos fornecem – Um formalismo apropriado para modelar processos– Especificação de atividades e ferramentas para

execução automática– Mecanismo de agenda orientada a processos para os

agentes

Page 17: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEE

• Alguns ambientes acadêmicos– Prism – Smart– Articulator– Dynamite– Spade– ...

Page 18: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEE

• Esforço nacional– ExPSEE [Itana Gimenes-UEM]– Estação TABA [Guilherme Travassos-COPPE]– APSEE [Carla Reis-UFRGS] (no contexto do

projeto ProSoft)– Imppros [Sandro Oliveira e Alexandre

Vasconcelos-UFPE]

Page 19: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

PSEE • Pesquisa relacionada

– CSCW (Computer-supported cooperative work)• Como PSSE, natureza multidisciplinar: organizacional,

humano, construção de sistemas• Sistemas de CSCW podem prover parte da infra-estrutura de

um PSEE – Sistemas de gerenciamento de Workflow

• Suportam processos organizacionais • Semelhantes a PSSEs em vários aspectos

– Tecnologia de banco de dados• PSEE manipulam processos e relacionamentos que requerem

padrões de acesso elaborados

Page 20: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Exemplos de processos

• Processos tradicionais (pesados)– RUP, OPEN, Catalysis

• Processos ágeis (leves)– XP, Agile modeling, Crystal, pragmatic

programming, Internet Speed, Scrum, ...

Page 21: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Exemplos 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 22: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Exemplos de processos• Divergências em torno de

– Esforço para absorção e efetivo uso– Detalhamento de atividades a serem seguidas– Artefatos (documentação) gerados

• Exemplo:– Arquitetura robusta (RUP) – Arquitetura para o contexto da iteração atual (agile modeling)

– Ordem de execução das atividades– Rigor na atribuição de tarefas a responsáveis

• workers (RUP) • alocação sob demanda e interesse (XP)• People as non-linear components (crystal)

– Automação– (im)pessoalidade

Page 23: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Exemplos de processos

• A polêmica ... – Se a tendência é processos 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???

• Compromisso– Balancing agility and discipline

Page 24: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Alguns Desafios• Organizações oferecem forte resistência à

implantação (ou modificação) de processos• PSEEs exigem mudanças organizacionais ainda

mais significativas (principalmente quando exigem aderência ao processo)– Resistência também por receio de avaliação individual

como resultado dos dados coletados em PSEEs– Ainda não parece existir consenso sobre uma arquitetura

para PSEEs (exemplo, projeto do repositório); mas há modelos de referência (NIST-ECMA)

– Modelos de processos têm impacto direto em interface com usuário, granularidade e automação de atividades

• Modificações dinâmicas oferecem flexibilidade e podem ser uma solução (tópico atual de pesquisa)

Page 25: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Alguns temas de pesquisa• Uso ou análise comparativa de notações para

modelagem (representação) de processos• Modelagem de processos (exemplo, RUP) em PSEE • Projeto e implementação de PSEE• Integração de processos (como RUP, XP, ...) com

modelos de qualidade (como CMMI)• Análise comparativa entre processos ágeis e tradicionais• Integração entre processos ágeis e tradicionais• Adaptação de processos para novos paradigmas

(exemplo: aspectos, agentes, ...) • ...

Page 26: Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Algumas 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• New Directions on Agile Methods: A Comparative

Analysis. P. Abrahamsson, et al. ICSE´03. IEEE Press.• http://www.rational.com/products/rup/• http://www.catalysis.org/• http://www.extremeprogramming.org/• http://www.agilemodeling.com/• http://www.crystalmethodologies.org/