Processos de Software - PowerPoint PPT Presentation

About This Presentation
Title:

Processos de Software

Description:

... (Computer-supported cooperative work) Como PSSE, natureza multidisciplinar: organizacional, ... IEEE Computer Society Press The OPEN Process Specification. I. – PowerPoint PPT presentation

Number of Views:120
Avg rating:3.0/5.0
Slides: 19
Provided by: FACEPE
Category:

less

Transcript and Presenter's Notes

Title: Processos de Software


1
Processos de Software
  • Prof. Alexandre Vasconcelos (amlv_at_cin.ufpe.br)
  • Adaptado a partir de slides produzidos por
    Augusto Sampaio

2
Processo
  • Ação regular e contínua (ou sucessão de ações)
    realizada de forma bem definida, levando a um
    resultado Oxford English Dictionary
  • 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

3
Processo de software
  • Um conjunto estruturado de atividades,
    procedimentos, artefatos e ferramentas
    necessários para o desenvolvimento de um sistema
    de software
  • Exemplo de Atividades Especificação, Projeto,
    Validação, Evolução
  • Processos tradicionais
  • RUP, OPEN, Catalysis
  • Processos ágeis (mais leves)
  • XP, Agile modeling, Crystal, FDD, Scrum, ...
  • Processo híbrido OPENUP

4
Processo de software pontos de consenso
  • Iteratividade
  • Participação de usuários
  • Flexibilidade de configuração para projetos
    específicos
  • Comunicação entre membros da equipe

5
Processo de software pontos de divergência
  • Nível de detalhamento de atividades a serem
    seguidas
  • Critério de conclusão da 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
  • Nível de Automação
  • Nível de (im)pessoalidade

6
Processo de software polêmica
  • Se a tendência é processos leves, afinal o
    desenvolvimento de software é
  • ArteSociologiaPsicologia...
  • ou
  • LógicaModelosEngenharia...???
  • E todo o esforço de consolidação da Engenharia de
    Software como uma ciência exata???
  • Compromisso
  • Balancing agility and discipline

7
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

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

9
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
  • A descrição deve ser apresentada em diferentes
    níveis de abstração
  • Idealmente a descrição deve ser formal e completa
    para permitir, por exemplo, automação

10
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 ex Fase, workflow,
    disciplina, atividade
  • Mas há esforço de padronização (SPEM e BPMN OMG)

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

12
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

13
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

14
Modelos genéricos de processo de software
  • Representação abstrata e simplificada do processo
    de desenvolvimento de software
  • Exemplos
  • Modelo cascata
  • Fases separadas e distintas de especificação e
    desenvolvimento.
  • Engenharia de software baseada em componentes
  • O sistema é montado a partir de componentes
    existentes.
  • Desenvolvimento iterativo
  • O sistema desenvolvido através de várias etapas
    (iterações)

15
Engenharia de 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

16
Ciclo de vida de processos
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
17
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

18
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

19
PSEE
Engenharia de software
Engenharia de processos
  • guia (ou enforcement)
  • automação
  • status, ...
  • ...
  • definição
  • simulação
  • métricas
  • melhorias, ...

S
P
E
E
Gerência de projetos
  • instanciação
  • monitoramento
  • mudanças (dinâmicas)
  • status, ...

20
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
21
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

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

23
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

24
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

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

26
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, ...)
  • ...

27
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. ICSE03. IEEE
    Press.
  • http//www.rational.com/products/rup/
  • http//www.catalysis.org/
  • http//www.extremeprogramming.org/
  • http//www.agilemodeling.com/
  • http//www.crystalmethodologies.org/
Write a Comment
User Comments (0)
About PowerShow.com