Top Banner
Processos de Software Prof. Alexandre Vasconcelos ([email protected]) Adaptado a partir de slides produzidos por Augusto Sampaio 1/27
18

Processos de Software Prof. Alexandre Vasconcelos ([email protected])[email protected] Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

Apr 19, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

Processos de Software

Prof. Alexandre Vasconcelos ([email protected])

Adaptado a partir de slides produzidos por Augusto Sampaio

1/27

Page 2: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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

Page 5: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

5/27

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

6/27

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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 12: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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 13: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

Ciclo de vida de processos

16/27

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 14: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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 15: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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 16: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

PSEE

20/27

Visã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 17: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

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 18: Processos de Software Prof. Alexandre Vasconcelos (amlv@cin.ufpe.br)amlv@cin.ufpe.br Adaptado a partir de slides produzidos por Augusto Sampaio 1/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. 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