260 likes | 369 Views
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 ]
E N D
Processosconceitos, 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]
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, ...
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 • 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)
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
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)
Modelo de Processo • Formalismos podem ser classificados de várias formas • Orientado a produto ou à atividade • Diagramáticos ou Orientados a linguagens • ...
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
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
Ciclo de vida Exemplo de ciclo de vida (meta-modelo) de processos Análise de requisitos Projeto (modelo) Instanciação Avaliação Execução Simulação Software processes are software too[Osterweil]
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 • 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
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 Engenharia de software Modelo do processo 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] (no contexto do projeto ProSoft) • Imppros [Sandro Oliveira e Alexandre Vasconcelos-UFPE]
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
Exemplos de processos • Processos tradicionais (pesados) • RUP, OPEN, Catalysis • Processos ágeis (leves) • XP, Agile modeling, Crystal, pragmatic programming, Internet Speed, Scrum, ...
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 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
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
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)
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, ...) • ...
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/