Introdução aos Processos de
Software
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 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]
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
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)
Modelo 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
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
(Fusion), workflow (RUP), disciplina (RUP),
atividade (conceito diferente no OPEN e no RUP)
há um esforço de padronização (SPEM –
OMG)
 Mas
Modelo de processo

Formalismos podem ser classificados de várias
formas
 Diagramáticos
 Orientados
 ...
a linguagens
Modelo de processo

Alguns exemplos de formalismos diagramáticos
 Diagramas
 Máquina
 Técnicas
de transição de estados
de estados finitos, statecharts
de análise e projeto estruturados
(SADT)
 UML profiles e conceitos de OO
– Software Process Engineering
Metamodel (padrão OMG)
 SPEM
 Petri
nets
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:
 Notações
extensões de Prolog
que usam conceitos de OO
 Exemplo:
uso de herança para relacionar um
modelo de processo com instâncias
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

PSEE

PSEEs suportam e relacionam três disciplinas
importantes

Engenharia de processos


Engenharia de software


definição e evolução de modelos de processos (em geral
independentes de projetos específicos)
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)
PSEE
Engenharia de software
Engenharia de processos
• guia (ou enforcement)
• automação
• status, ...
• definição
• simulação
• métricas
• melhorias, ...
S
P
E
E
• instanciação
• monitoramento
• mudanças (dinâmicas)
• status, ...
Gerência de projetos
PSEE
Visão geral do fluxo de dados
Requisitos do processo
Requisitos do projeto
e do produto
Engenharia de
processos
Gerência de
projetos
Modelo do
processo
Engenharia de
software
Processo de
desenvolvimento
software
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

PSEE

Alguns ambientes acadêmicos
 Prism
 Smart
 Articulator
 Dynamite
 Spade
 ...
PSEE

Esforço nacional
 ExPSEE
[Itana Gimenes-UEM]
 Estação TABA [Guilherme Travassos-COPPE]
 APSEE [Carla Reis-UFRGS]
Exemplos de processos

Processos tradicionais (pesados)
 RUP,

OPEN, Catalysis
Processos ágeis (leves)
 XP,
Agile modeling, Crystal
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
Exemplos 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

Exemplos de processos

A polêmica ...
 Se
a tendência é ter 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???
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)
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
http://www.rational.com/products/rup/
http://www.catalysis.org/
http://www.extremeprogramming.org/
http://www.agilemodeling.com/
http://www.crystalmethodologies.org/
E depois de tudo...
Momento RELAX

Mensagem Subliminar
 Quantidade
de informação dividida pelo
tempo/Espaço de Exposição.
Mensagem Subliminar
Mensagem Subliminar
Download

Processos modelos, representação, ambientes, exemplos