Você está na página 1de 33

Unidade I:Fundamentos de Engenharia

de Software & Modelos de


Processo de Software

FACOM – Faculdade de Computação


(Campus I - Marabá)
1
Agenda
2

 AULA 2:
  Modelos de Processo Prescritivo
  Modelos de Processo Especializado
  O processo Unificado
  Exercícios
Leitura Prévia
3

  SOMMERVILLE, Ian. Engenharia de Software. 8ª


ed. São Paulo, Pearson / Prentice Hall, 2007.
  Capítulo 4

  PRESSMAN,Roger S. Engenharia de Software –


Uma abordagem profissional. 7ª ed. São Paulo,
Bookman, 2011.
  Capítulo 2
O que é um Modelo de Processo de Software?

 É um conjunto de regras mais abstratas que


especificam a forma geral de processos.

 Um modelo de processo para as atividades de


projeto e desenvolvimento de software
também pode ser chamado de ciclo de vida.

 Assim, quando uma empresa decide adotar um


processo, deve buscar um modelo e adaptar a
filosofia e as práticas recomendadas para criar
seu próprio processo.
4
Mas o que significa um processo?
5

  Fornecer um serviço ou criar um produto requer um


conjunto de tarefas ordenadas. Exemplos:

  Viagem para apresentação de artigo


  Rebocar uma parede
  Assar um bolo
  Comprar um livro na internet
Mas o que significa um processo?
6

Um processo pode ser entendido como:

  Série de etapas que envolvem atividades, restrições e


recursos com a finalidade de produzir uma saída
desejada.
O Modelo Default

 Empresas que não usam modelo de processo algum


possivelmente utilizam o Modelo Codificar e Consertar.

não sim

Versão satisfatória?
Características principais de um processo
8

  Descreve todas as suas principais atividades


  Utiliza recursos, sujeita-se a restrições e gera
produtos
  As atividades são organizadas de modo que a
sequência de execução seja clara em relação a outra
atividade
  Restrições podem ser aplicadas a uma atividade,
recurso ou produto (Ex: orçamento x tempo para
teste)
Por que modelar um processo?
9

  Criar um modelo de processo ajuda a detectar


inconsistências, redundâncias e omissões
(possibilitam o aprimoramento do processo)
  Ao registrar a descrição de um processo, um grupo
registra seu entendimento sobre as atividades,
recursos e restrições sobre o desenvolvimento do
software
  É o processo que permite uma avaliação mais precisa
sobre o que deve ser desenvolvido, antes mesmo da
codificação do software
Modelos de Processo
Prescritivo

10
O Modelo Cascata

Comunicação
Início do projeto
Planejamento
Levantamento de Estimativas Modelagem
necessidades Análise
Cronograma Construção
acompanhamento Projeto codificação Emprego
Testes entrega
Suporte
feedback

 Modelo em cascata ou ciclo de vida clássico, sugere


uma abordagem sequencial e sistemática para o
desenvolvimento de software.

 Projetado para projetos em que os requisitos de um


problema são bem compreendidos.
Modelo V

Modelagem
Teste de
de requisitos
aceitação
Projeto da
Teste do
arquitetura
sistema

Projeto dos
Teste de
componentes
integração

Geração de Teste de
código unidades

Software
executável
Porque algumas vezes o modelo em
cascata falha?

 Projetos reais raramente seguem o


fluxo sequencial que o modelo propõe.

 F requentemente, é difícil para o


cliente estabelecer explicitamente
todas as necessidades.

 O cliente deve ter paciência.


Modelo Incremental / Desenvolvimento em
fases

 O modelo incremental combina elementos dos


fluxos de processos lineares e paralelos.

 Aplica sequências lineares, de forma escalonada, à


medida que o tempo vai avançando.
Modelo Incremental
Funcionalidade e Recursos do Software

Comunicação

Planejamento
Incremento nº N
Modelagem (análise, projeto)

Construção (codificação, testes)

Emprego (entrega, realimentação ou Entrega do


feedback) n-ésimo incremento
Incremento nº 2

Entrega do 2º
Incremento nº 1
incremento

Entrega do 1º
incremento

Cronograma do Projeto
Incremental e iterativo – Utilidade
16

  O treinamento pode iniciar nas versões iniciais do


software
  Versões frequentes permitem a resolução de
problemas imprevistos de maneira rápida
  A equipe de desenvolvimento foca em diferentes
áreas de especialização com diferentes visões (ora na
performance, ora na usabilidade, etc.)
Modelo Evolucionário - Prototipação

 Prototipação é um
modelo de processo Projeto!
utilizado quando Comunicação!
Rápido!

requisitos estão Modelagem !


obscuros. Projeto
Rápido!

 Auxilia os Emprego!
interessados a Entrega e !
Realimentação!
Construção
de!
compreender melhor um protótipo!
o que está para ser
construído.
Modelo Evolucionário - Prototipação

 Problemática

 Os interessados enxergam o que parece


ser uma versão operacional do software.

 O engenheiro de software, com


frequência, assume compromissos de
implementação para conseguir que o
protótipo entre em operação
rapidamente.
Modelo Evolucionário - Espiral

 O modelo espiral é um modelo de processo de


software evolucionário que acopla a natureza
iterativa da prototipação com os aspectos
sistemáticos e controlados do modelo cascata.

 Usando-se o modelo espiral, o software será


desenvolvido em uma série de versões
evolucionárias.
Modelo Evolucionário - Espiral
Projeto de Projeto de
Projeto de
aperfeiçoamento desenvolvimento
desenvolvimento
do produto de produto
de conceitos

Planejamento

Comunicação

Modelagem

Início

Emprego
Construção
Modelos Concorrentes

 O modelo de desenvolvimento concorrente, possibilita à


equipe de software representar elementos concorrentes e
iterativos de qualquer um dos modelos de processos
descritos

 Exemplo
  Atividade de modelagem do modelo espiral
  Ações: Prototipagem, análise e projeto

 Atividades de modelagem, comunicação ou construção,


existem concorrentemente, porém estão em diferentes
estados.
Modelos Concorrentes
Inativo

 A modelagem Atividade de modelagem


Representa o

concorrente define Em
desenvolvimento
estado de uma
tarefa ou atividade

uma série de
de engenharia de
software

eventos que irão Aguardando


modificações
disparar transições
de estado para Em exame

estado para cada Em revisão

uma das atividades, Ponto de


ações ou tarefas da partida

engenharia de
software. Concluído
Modelos de Processo
Especializado

23
Desenvolvimento baseado em
componentes
 O modelo de desenvolvimento baseado em
componentes desenvolve aplicações a partir de
componentes de software pré-empacotados.

 Os componentes podem ser


  módulo de software convencionais, como classes
orientadas a objeto ou pacotes de classes.

 Este modelo conduz ao reuso do software.

24
Desenvolvimento baseado em
componentes
Componentes disponíveis
são pesquisados e
avaliados

Itens de integração de
Testes
componentes são
completos
considerados.

Os componentes são
integrados na arquitetura Arquitetura de software é
projetada

25
O modelo de métodos formais

 O modelo de métodos formais engloba um


conjunto de atividades que conduzem à
especificação matemática formal do
software.

 Oferecem um mecanismo para eliminar


problemas, tais como, ambiguidade,
incompletude e inconsistência.

26
Porque não são amplamente utilizados?

  Consome muito tempo e dinheiro.

  Desenvolvedores de software sem


experiência.

  Difícil
usar como um meio de
comunicação com clientes.

27
Processo Unificado

28
Processo Unificado

 O processo unificado é uma tentativa de


aproveitar os melhores recursos e características
dos modelos tradicionais de processo de software
(iterativo e incremental).

 Mas caracterizando-os de modo a implementar


muitos dos melhores princípios do
desenvolvimento ágil de software (casos de uso e
arquitetura de software).
Processo Unificado
Elaboração

o
Concepçã

ej amento
plan lagem
mode

n ic ação
comu
onst rução
c

go
empre
Construção
Versão
Incremento de
Transição
software

Produção
Processo Unificado

Concepção Elaboração Construção Transição Produção


Fluxos de Trabalhos

Requisitos

Análise

Projeto

Implementação

Teste

Suporte

Iterações
Exercícios
32

 Justificando sua resposta com base no tipo de


sistema a ser desenvolvido, sugira o modelo de
processo de software mais apropriado que poderia
ser usado com base para gerenciar o
desenvolvimento dos seguintes sistemas:
  Um sistema para calcular a distância entre meteoros e o planeta em
tempo real;
  Um sistema para controlar a venda de veículos cujo o prazo de
entrega é curto.
  Um sistema de realidade virtual para apoiar a manutenção de
software;
  Um sistema de contabilidade de universidade que substitui um
sistema existente.
Exercícios
33

 Explique como o modelo em cascata de processo de


software e o modelo de prototipação podem ser
acomodados no modelo de processo espiral.

 Quais adaptações de processo seriam necessárias caso o


protótipo fosse se transformar em um sistema ou
produto a ser entregue?

 O modelo de processo concorrente define um conjunto de


“estados”. Descreva, com suas próprias palavras, o que
esses estados representam e, em seguida, indique como
entram em cena no modelo de processos concorrentes.

Você também pode gostar