prof. sandro bezerra ([email protected]) adaptado a partir de ... · processos de software prof. sandro...

27
Processos de Software Prof. Sandro Bezerra ([email protected]) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre Vasconcelos 1/27

Upload: phamtruc

Post on 11-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

Processos de Software

Prof. Sandro Bezerra ([email protected])

Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre Vasconcelos

1/27

Page 2: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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]

2/27

Page 3: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

3/27

Page 4: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

4/45

Page 5: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

5/45

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

Page 6: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

6/45

Processo de software: 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 7: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

7/27

Page 8: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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)

8/27

Page 9: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

9/27

Page 10: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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)

10/27

Page 11: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

Modelo de Processo

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

11/27

Page 12: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

12/27

Page 13: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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 13/27

Page 14: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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)

14/27

Page 15: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

15/27

Page 16: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

Ciclo de vida de processos

16/27

Análise de requisitos

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 17: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

17/27

Page 18: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

18/27

Page 19: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

PSEE

19/27

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

P S

E E

Page 20: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

PSEE

20/27

Visão geral do fluxo de dados

Engenharia de processos

Gerência de projetos

Engenharia de software

Requisitos do processo Requisitos do projeto e do produto

Modelo do processo

Processo de desenvolvimento

software

Page 21: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

21/27

Page 22: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

PSEE

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

22/27

Page 23: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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]

23/27

Page 24: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

24/27

Page 25: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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)

25/27

Page 26: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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

26/27

Page 27: Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de ... · Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre

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/

27/27