02 - modelos de processo de sw.ppt

56
Monica de Souza Massa março / 2009 slide 1 Modelo de Processo de Software MODELOS DE PROCESSO DE SOFTWARE

Upload: flavio-junior

Post on 20-Dec-2015

17 views

Category:

Documents


0 download

TRANSCRIPT

Monica de Souza Massa março / 2009 slide 1

Modelo de Processo de Software

MODELOS DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 2

Modelo de Processo de Software

PROCESSO

Definição

Uma sequencia de etapas que envolvem atividades, restrições e recursos para alcançar o objetivo desejado.

Esta sequencia é, geralmente, realizada sempre na mesma ordem todas as vezes.

Um processo é mais do que um procedimento:

Procedimento = receita. Combinação de ferramentas e técnicas para produzir algo.

Processo = conjunto de procedimentos organizados de modo a permitir a construção de produtos que satisfaçam uma série de objetivos e padrões.

Monica de Souza Massa março / 2009 slide 3

Modelo de Processo de Software

PROCESSO

O QUE É?

Exemplo:

Processo: fazer um bolo de chocolate

- procedimento: receita

- atividade: bater a massa

- restrições: temperatura do forno

- recursos: açucar

- ferramentas: batedeira

Monica de Souza Massa março / 2009 slide 4

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Definição

conjunto estruturado de atividades necessárias para o desenvolvimento ou a evolução do software.

conjunto coerente de atividades para especificar, projetar, implementar e testar um sistema de software.

Um processo define quem faz o quê, quando e como o objetivo será atingido

Jacobson, Booch e Rumbaugh

Monica de Souza Massa março / 2009 slide 5

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Um processo de software inclui…Todas as principais atividades

Recursos

Produtos intermediários e finais

Subprocessos, com hierarquia ou organizados de algum modo

Critérios de entrada e saída para cada atividade

Seqüência de atividades, de modo que a ordem de execução de uma para outra seja clara

Conjunto de diretrizes que explicam os objetivos de cada atividade

Restrições e controles para cada atividade, recurso ou produto

Monica de Souza Massa março / 2009 slide 6

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Diferentes processos de SW organizam as atividades de maneiras diversas.

Diferentes organizações podem utilizar processos diferentes para produzir o mesmo tipo de produto.

Alguns processos são mais adequados do que outros => depende do tipo de aplicação.

Monica de Souza Massa março / 2009 slide 7

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Framework genérico para um processo de SW

especificação +

desenvolvimento +

validação +

evoluçãoUtilizado como base para os modelos de processo de SW e ap[licado na grande maioria dos projetos de SW

Monica de Souza Massa março / 2009 slide 8

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Especificação

Estabelece quais as funções que são requeridas pelo sistema e as restrições sobre sua operação e desenvolvimento.

Engenharia de requisitos

Composto de quatro estágios principais:

Estudo de viabilidade

Levantamento e análise de requisitos

Especificação dos requisitos

Validação dos requisitos

Monica de Souza Massa março / 2009 slide 9

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Desenvolvimento (projeto e implementação do SW)

É o processo de conversão de uma especificação de sistema em um sistema executável.

Projeto de SW = descrição da estrutura do SW a ser implementado, dos dados, das interfaces e dos algoritmos.

Atividades principais:

Projeto de arquitetura

Especificação das funções do SW

Projeto de Interface

Projeto de Componentes

Projeto das Estruturas de Dados

Projetos de Algoritmos

Monica de Souza Massa março / 2009 slide 10

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Desenvolvimento (projeto e implementação do SW)

Métodos de projeto – são notações padronizadas e incorporações das boas práticas.

Melhor método ???? – adequação ao domínio da aplicação

Aumento da probabilidade de resultar em um “bom” projeto

Criatividade ainda requerida pelo projetista

Monica de Souza Massa março / 2009 slide 11

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Desenvolvimento (projeto e implementação do SW)

“Em muitos projetos de desenvolvimento, o projeto de SW ainda é um processo

utilizado à medida que for necessário. Partindo de um conjunto de requisitos,

geralmente em linguagem natural, é preparado um projeto informal. A codificação se

inicia, e o projeto é modificado à medida que o sistema é implementado. Existe pouco

ou nenhum controle dessas modificações ou do gerenciamento do projeto. Quando o

estágio de implementação se completa, o projeto normalmente foi tão modificado ,

depois da sua especificação inicial, que o documento original de projeto é uma

descrição incoerente e incompleta do sistema”.

Sommerville (2007)

Monica de Souza Massa março / 2009 slide 12

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Validação de SW

Tem por objetivo mostrar que um sistema está de acordo com suas especificações e que ele atende à expectativa do cliente.

Validação processual – desde requisitos até SW pronto

pós implementação

iterativo

Integração – planos de teste – teste “beta”

Monica de Souza Massa março / 2009 slide 13

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Validação de SW

UNIDADE

MÓDULO

SUBSISTEMA

SISTEMA

ACEITAÇÃO

Teste de componentes

Programadores Teste de integração

Equipe de teste Teste de usuário

Equipe de teste

Monica de Souza Massa março / 2009 slide 14

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Evolução do SW

Evolução ou manutenção (distinção entre os termos).

À medida que os requisitos mudam (em função das mudanças de negócio no domínio da aplicação), o SW que suporta esse negócio precisará ser modificado.

Embora exista uma marcação formal entre desenvolvimento e manutenção, o SW já evolui (sofre mudança) antes mesmo de concluir o seu desenvolvimento formal.

Desenvolvimento = melhor parte ????

Onde termina Desenvolvimento e começa Manutenção?

Monica de Souza Massa março / 2009 slide 15

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWARE

Um processo de desenvolvimento de software é, portanto, uma abordagem que descreve um conjunto de ações cuja meta é o desenvolvimento ou evolução de um sistema.

É composto de fases e atividades que descrevem a “receita do bolo”- o passo a passo do processo de desenvolvimento.

De forma a organizar o desenvolvimento de sistemas de software foram criadas ao longo do tempo vários critérios de divisão do processo em etapas – Modelos de Processo de Desenvolvimento ou Ciclos de Vida.

Contextualizando…

Monica de Souza Massa março / 2009 slide 16

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWARE

Todos os modelos de processo podem ser percebidos dentro da estrutura genérica (framework) descrita anteriormente, com algumas adaptações a depender da natureza do projeto de SW.

As diferenças entre os modelos de processo de SW residem: Na organziação do fluxo de atividades e tarefas dentro de

cada fase;

Na interdependência entre tarefas;

No nível de detalhamento de cada tarefa;

No nível de detalhamento de cada produto, resultado de uma tarefa;

Na forma como a qualidade é assegurada;

No grau de envolvimento entre os diversos atores do processo; etc.

Contextualizando…

Monica de Souza Massa março / 2009 slide 17

Modelo de Processo de Software

Alguns modelos de processo de SW:

Code-and-Fix

Modelo em cascata

Prototipação

Modelos iterativos (incremental e espiral)

Desenvolvimento orientado a reuso

Processo Unificado

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 18

Modelo de Processo de Software

Modelo Code-and-fix.

Esse modelo começa com uma idéia geral informal do produto.

O SW é desenvolvido – CODIFICADO – até que o produto esteja “pronto”.

Não existe planejamento e a ordem de execução das atividades é randômica.

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 19

Modelo de Processo de Software

Modelo Code-and-fix.

Vantagens:

Não existe um overhead administrativo (não se “perde” tempo planejando).

Os resultados – código – são rapidamente verificáveis.

Não precisa de conhecer técnicas de desenvolvimento de SW.

Útil para pequenos projetos de prova de conceito (modelo prático que possa provar um conceito teórico), para eliminação de riscos de projeto.

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 20

Modelo de Processo de Software

Modelo Code-and-fix.

Desvantagens:

Perigoso!

Não existe controle.

Não existe planejamento de recursos.

Não existe estimativas de prazo ou custo.

Erros são difíceis apra descobrir e corrigir.

Modelo impossível de adequação a projetos de grande porte e alta complexidade.

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 21

Modelo de Processo de Software

Modelo Clássico - Cascata.

Surgiu na década de 50 e se popularizou em 70.

Cascata de etapas.

Ciclo de vida mais antigo e mais utilizado.

Resultado de uma etapa é usado na etapa seguinte.

Baseado no modelo clássico da engenharia.

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 22

Modelo de Processo de Software

Modelo Clássico - Cascata.

MODELO DE PROCESSO DE SOFTWARE

Requirementsdefinition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Ian Sommerville

Monica de Souza Massa março / 2009 slide 23

Modelo de Processo de Software

Vantagens:

Fácil de entender e implementar.

Amplamente utilizado. (50’s)

Acompanha o modelo proposto pela Engenharia.

Reforça “bons hábitos”.

Orientado a documentos (mais um “bom hábito”!)

MODELO DE PROCESSO DE SOFTWARE Modelo Clássico - Cascata.

Monica de Souza Massa março / 2009 slide 24

Modelo de Processo de Software

O grande obstáculo deste modelo é a dificuldade em acomodar mudanças ao longo do processo de desenvolvimento.

Desvantagens:

Projetos reais raramente seguem o fluxo sequencial que o modelo propõe

Difícil para o cliente estabelecer todos os requisitos inicialmente.

MODELO DE PROCESSO DE SOFTWARE Modelo Clássico - Cascata.

Monica de Souza Massa março / 2009 slide 25

Modelo de Processo de Software

Mais desvantagens:

Dificuldade na adaptação à incerteza natural que existe no início dos projetos.

O cliente precisa ter paciência! Tempo necessário para disponibilizar o software.

Dificuldade em rasterar os requisitos do modelo para o código.

Particionamento inflexível do projeto em estágios, o que torna complicado atender äs mudanças de requisitos ao longo do projeto.

MODELO DE PROCESSO DE SOFTWARE Modelo Clássico - Cascata.

Monica de Souza Massa março / 2009 slide 26

Modelo de Processo de Software

Prototipação. Processo onde o desenvolvedor cria um modelo do software que será implementado.

O protótipo serve como um mecanismo para a identificação dos requisitos do software.

Tipos de Prototipação:

EVOLUTIVA – o objetivo é trabalhar com o cliente e evoluir uma especificação inicial para o SW pronto.

DESCARTÁVEL – objeticvo é entender os requisitos do SW.

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 27

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWARE Prototipação.

Monica de Souza Massa março / 2009 slide 28

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWARE

Concurrentactivities

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

Prototipação.

Monica de Souza Massa março / 2009 slide 29

Modelo de Processo de Software

Fluxo de Trabalho

Reunião dos requisitos

Definição dos objetivos em conjunto (cliente e desenvolvedor) identificando áreas de risco.

Projeto rápido focando o que é visível ao usuário (entradas e saídas).

Refinamento dos requisitos e avaliação do protótipo.

Processo iterativo até cliente e desenvolvedor estarem satisfeitos.

MODELO DE PROCESSO DE SOFTWARE Prototipação.

Monica de Souza Massa março / 2009 slide 30

Modelo de Processo de Software

Vantagens:

Redução de risco em função de requiistos de usuário incorretos.

Alternativa quando existe grande frequencia de mudança nos requisitos sem um comprometimento do cliente.

Progresso facilmente visto auxilia o gerenciamento.

Viabiliza o marketing antecipado do produto.

MODELO DE PROCESSO DE SOFTWARE Prototipação.

Monica de Souza Massa março / 2009 slide 31

Modelo de Processo de Software

Desvantagens:

Falta de visibilidade do processo.

Idealização do protótipo como “resolvedor” dos problemas.

Conscientização do cliente, que ignora a função do protótipo.

SWs são frequentemente estruturados probremente (Concessões na escolha da arquitetura e infra-estrutura do SW para ateder äs expectativas do cliente).

Necessidade de conhecimento sobre ferramentas de prototipação.

MODELO DE PROCESSO DE SOFTWARE Prototipação.

Monica de Souza Massa março / 2009 slide 32

Modelo de Processo de Software

Aplicação:

SWs de pequeno porte e alto grau de interação.

Parte de SWs de grande porte (p. ex. Interfaces gráficas)

SWs de curta duração.

MODELO DE PROCESSO DE SOFTWARE Prototipação.

Monica de Souza Massa março / 2009 slide 33

Modelo de Processo de Software

Processos Iterativos

MODELO DE PROCESSO DE SOFTWARE Requisitos de sistema sempre evoluem durante o

desenvolvimento de um projeto de SW.

Desta forma, o retorno a estágios anteriores para alteração do projeto é sempre parte do processo de desenvolvimento, principalmente em SW de grande porte ou grande complexidade.

A inclusão da iteração como parte do processo de desenvolvimento de SW pode ser aplicada em qualquer modelo de processo..

Modelos iterativos: Modelo Incremental

Modelo Espiral

Monica de Souza Massa março / 2009 slide 34

Modelo de Processo de Software

Modelo Incremental

O desenvolvimento e entrega do SW é dividido em incrementos.

Cada incremento é uma parte das funcionalidades requeridas eplo cliente.

Os requisitos do usuário são priorizados e aqueles com prioridade mais alta são incluídos nos primeiros incrementos.

Aplica sequencias lineares de forma racional à medida que o tempo passa.

Cada sequência produz um “incremento” factível do software.

Primeiro incremento – núcleo do produto

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 35

Modelo de Processo de Software

“Em um processo de desenvolvimento incremental, os clientes identificam, em um esboço, as funções a serem fornecidas pelo sistema, Eles identificam quais as funções são mais importantes e quais as menos importantes para eles. Em seguida é definida uma série de estágios de entrega, com cada estágio fornecendo um subconjunto das funcionalidades do sistema. A alocação de funções aos estágios depende da prioridade da função. As funções prioritárias são entregues primeiro ao cliente”. Sommerville (2007)

MODELO DE PROCESSO DE SOFTWAREModelo Incremental

Monica de Souza Massa março / 2009 slide 36

Modelo de Processo de Software

Definir esboço dos requisitos

Atribuir requisitos aos incrementos

Projetar arquitetura do sistema

Desenvolver incremento do sistema Validar

incremento Integrar incremento

Validar sistema

MODELO DE PROCESSO DE SOFTWAREModelo Incremental

Monica de Souza Massa março / 2009 slide 37

Modelo de Processo de Software

Vantagens:

Os clientes não precisam esperar até o todo o sistema seja entregue.

Os clientes podem utilizar os primeiros incrementos como um protótipo para obter experiência sobre o sistema.

Existe um risco menor de fracasso completo do sistema.

Os serviços mais prioritários do SW tendem a receber a maior carga de teste..

MODELO DE PROCESSO DE SOFTWAREModelo Incremental

Monica de Souza Massa março / 2009 slide 38

Modelo de Processo de Software

Desvantagens:

Os incrementos devem ser relativamente pequenos.

Pode ser difícil mapear os requisistos dos clientes dentro de incrementos de tamanho “correto”.

A amioria dos sistemas exige um conjunto de funcionalidades básicas que são usadas por diferentes partes do sistema.

MODELO DE PROCESSO DE SOFTWAREModelo Incremental

Monica de Souza Massa março / 2009 slide 39

Modelo de Processo de Software

O processo de desenvolvimento do SW é representado com uma Espiral.

Considera o fato REAL de que a maioria dos SWs evoluem antes da entrega do produto.

Cada volta na Espiral representa uma nova fase no processo.

Em cada iteração, planos, custos, riscos e cronogramas sao atualizados e o gerente de projeto obtém maioroes informações sobre o SW e sobre a necessidade de mais iterações.

Meta modelo - qualquer ciclo pode ser usado na fase de desenvolvimento.

A análise de risco é explicitamente considerada.

MODELO DE PROCESSO DE SOFTWAREModelo Espiral

Monica de Souza Massa março / 2009 slide 40

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWAREModelo Espiral

Monica de Souza Massa março / 2009 slide 41

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWAREModelo Espiral - fases

Comunicação com o cliente – tarefas específicas para estabelecer a comunicação efetiva entre desenvovledor e cliente

Planejamento – definição de recursos, prazos e outras informações para o gerenciamento do projeto.

Análise de risco – consideração dos riscos gerenciais e técnicos. Engenharia – construção dos modelos da aplicação (um ou mais

modelos). Construção e entrega - implementação, teste, instalação e suporte ao

usuário (documentação e treinamento). Avaliação – obtenção de feedback do cliente sobre o SW.

Monica de Souza Massa março / 2009 slide 42

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWAREModelo Espiral

Vantagens:

Realismo – o modelo reflete a natureza iterativa do desenvolvimento do SW.

Flexibilidade – combina vantagens do modleo cascata com o modelo evolutivo.

Análise efetiva dos riscos.

Monica de Souza Massa março / 2009 slide 43

Modelo de Processo de Software

MODELO DE PROCESSO DE SOFTWAREModelo Espiral

Desvantagens:

Necessita de pessoas experientes em análise e gerenciamento de risco para que o modelo funcione bem.

O modelo não é facilemtne entendido pelos gerentes da área usuária.

O modelo é complexo e necessita de gerenciamento especializado, o que causa um overhead administrativo.

Monica de Souza Massa março / 2009 slide 44

Modelo de Processo de Software

Baseado na reutilização sistemática de componeentes de SW.

Conta com um abase de componenetes de SW reutilizáveis , que podem ser acessados, e com uma infra-estrutura de integração para esses componentes.

Composto dos seguintes estágios:

Especificação de requisitos

Análise de Componentes

Modificação de requisitos

Projeto de sistema com reuso

Desenvolvimento e integração

Validação do software

MODELO DE PROCESSO DE SOFTWARE Desenvolvimento orientado ao reuso

Monica de Souza Massa março / 2009 slide 45

Modelo de Processo de Software

Especificação de requisitos

Análise de Componentes

Modificação de requisitos

Projeto de sistema com reuso

Desenvolvimento e integração Validação do

sistema

MODELO DE PROCESSO DE SOFTWARE Desenvolvimento orientado ao reuso

Monica de Souza Massa março / 2009 slide 46

Modelo de Processo de Software

Vantagens: Redução da quantidade de software produzida

Redução de custos e riscos

Entrega mais rápida do software

Desvantagens: Necessária adequações nos requisitos

Não atendimento às reais necessidades dos usuários

Alguma perda de controle sobre o sistema (componentes reutilizáveis fora do alcance).

MODELO DE PROCESSO DE SOFTWARE Desenvolvimento orientado ao reuso

Monica de Souza Massa março / 2009 slide 47

Modelo de Processo de Software

UP – unified process

MODELO DE PROCESSO DE SOFTWARE

Um dos modelos de processo de desenvolvimento mais utilizado atualmente é o Processo Unificado (UP – unified process).

O UP foi construído pelos mesmos criadores da UML e, desta forma, é fortemente baseado na modelagem visual e utiliza largamente os artefatos produzidos por esta liguagem como documentos resultantes das etapas (fases) do processo de desenvolvimento.

Monica de Souza Massa março / 2009 slide 48

Modelo de Processo de Software

Características: Processo iterativo e incremental

UP – unified process

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 49

Modelo de Processo de Software

O agrupamento de atividades em fases no Processo Unificado (UP) acontece sob duas dimensões:

A dimensão horizontal representa o tempo e mostra aspectos do ciclo de vida do processo. São os aspectos dinâmicos do processo expresso em termos de ciclos, fases, iterações e marcos.

A dimensão vertical representa a organização do processo em termos de atividades e fluxo de trabalho. Representa os aspectos estáticos do processo.

UP – unified process - DIMENSÕES

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 50

Modelo de Processo de Software

UP – unified process - DIMENSÕES

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 51

Modelo de Processo de Software

UP – unified process – FASES: dimensão tempo (horizontal)

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 52

Modelo de Processo de Software

Requisitos

Ambiente

Análise e Projeto

Implementação

Gerenciamento de projetos

Testes

Implantação

Gerenciamento de mudanças

Modelagem de negócio

workflow

UP – unified process – DISCIPLINAS: dimensão fluxo de trabalho (vertical)

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 53

Modelo de Processo de Software

UP – unified process – DISCIPLINAS: dimensão fluxo de trabalho (vertical)

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 54

Modelo de Processo de Software

Iteração e disciplinas do processo unificado

P r e lim in a ry

I te ra t io n (s )ite r.

# 1

ite r.

# 2

ite r.

# n

ite r.

# n + 1

ite r.

# n + 2

ite r.

# m

ite r.

# m + 1

Inception Elaboration Construction Transition

PhasesCore Workflows

An ite ration in theelaboration phase

Requirements

Design

Implementation

Test

Analysis

Monica de Souza Massa março / 2009 slide 55

Modelo de Processo de Software

Combinação de Paradigmas.

Extrair peculiaridades de cada paradigma em um único projeto.

A natureza da aplicação e o ambiente organziacional são os fatores que devem indicar o modelo (ou modelos) de processo a ser aplicado no desenvolvimento do SW.

O todo É maior do que a soma das partes

MODELO DE PROCESSO DE SOFTWARE

Monica de Souza Massa março / 2009 slide 56

Modelo de Processo de Software

Exemplos:

Combinação de paradigmas:

evolutivo com cascata – prototipação de interfaces.

Exemplos de análise de ambiente:

ambiente estável e software científico – modelo cascata

ambiente turbulento e software comercial – modelo evolutivo (prototipação).

MODELO DE PROCESSO DE SOFTWARE