Você está na página 1de 27

Modelos de Processos de

Software

Profa. Fabiana Bigão Silva – fbigao@fumec.com.br / fbigao@gmail.com

Fabiana Bigão Silva


Bibliografia – Modelos de Processos
  PRESSMAN, R. Engenharia de Software. Rio de Janeiro: McGraw
-Hill, 2002.
  SOMMERVILLE, Ian. Engenharia de Software. São Paulo: Addison
Wesley, 2003.
  BEZERRA, Eduardo. Principios de analise e projeto de sistemas
com uml. 1. ed. Rio de Janeiro: Campus, 2003. 286 p. ISBN
85-352-1032-6

Fabiana Bigão Silva


O Processo de Software
  Para resolver problemas reais, o engenheiro de software precisa
adotar uma estratégia de desenvolvimento que englobe as
ferramentas, os métodos e os processos necessários
  Um processo de software é escolhido com base na natureza do
produto
  Os modelos de processos de software são representações de
atividades ou processos do mundo real, e tendem a ser referências
para a implantação dos processos reais, com adaptações
  Através da apresentação dos vários modelos de processos de
software podemos unir idéias ou propostas gerais que ajudarão a
resolver um problema real específico que deve ser desenvolvido

Fabiana Bigão Silva


Modelos de processos
  Um modelo de processo a ser seguido para o desenvolvimento de
software deve ser escolhido com base na natureza do projeto, nos
métodos e ferramentas a serem usados e nos controles e produtos
requeridos
  Existem vários modelos de processos em engenharia de software,
cada qual tenta ordenar as atividades do desenvolvimento de
software
  Modelo Seqüencial Linear

Análise Projeto Codificação Testes

Fabiana Bigão Silva


Modelos de processos
  Modelo Seqüencial Linear
  O modelo começa no nível de análise de sistemas, indo para desenho
(projeto), codificação, testes e manutenção
  Na análise são definidos requisitos focalizando especificamente o
software, seu comportamento, desempenho e interface. O documento
produto da análise pode ser revisado com o usuário e alterado
  No desenho (projeto), é focada a modelagem de dados, arquitetura do
software, representações da interface e detalhes procedimentais
(algorítmicos). O produto da análise é traduzido para uma representação
do software

Fabiana Bigão Silva


Modelos de processos
  Modelo Seqüencial Linear
  Na geração de código, o desenho é traduzido para a linguagem de
máquina. Se o desenho é detalhado, essa fase pode ser realizada
automaticamente
  Uma vez gerado o código, o teste é efetuado, focando a lógica interna e
aspectos funcionais (entradas gerando as saídas corretas)
  Após concluído, o software pode sofrer manutenções devido a falhas,
adaptações para se acomodar a mudanças no ambiente ou à melhoria de
performance

Fabiana Bigão Silva


Modelos de processos
  Modelo Seqüencial Linear
  É o modelo mais antigo e mais amplamente usado
  Algumas críticas ao modelo:
  Projetos de softwares reais raramente seguem este modelo porque ele não
especifica um ciclo de interação, o que pode causar confusão
  O modelo não lida com requisitos dos usuários, apenas do software
  A versão final do software ficará disponível apenas quando todo o projeto
terminar. Dessa forma, um erro grosseiro pode ser desastroso se não for
detectado antes do programa executável ser entregue

Fabiana Bigão Silva


Modelos de processos
  Modelo de Prototipagem

Ouvir o cliente Construir e


revisar protótipo

Cliente testa o
protótipo

Fabiana Bigão Silva


Modelos de processos
  Modelo de Prototipagem
  Muito usado quando o usuário não sabe ao certo os requisitos de
entrada, processamento e saída do sistema ou quando o desenvolvedor
não está seguro quanto a forma de interação homem-máquina que o
sistema deve adquirir
  Neste modelo, o desenvolvedor e o usuário definem os objetivos gerais do
software, e um desenho rápido é idealizado, concentrando apenas nos
aspectos que ficarão visíveis aos usuários
  O protótipo é avaliado pelo usuário e desenvolvedor em conjunto e
aspectos de requisitos são refinados
  Os protótipos são ajustados para satisfazer as necessidades dos usuários
e para ajudar o desenvolvedor a entender melhor os requisitos
  O que fazer com o protótipo depois de ter cumprido sua finalidade?
  Alguns autores sugerem o descarte total do protótipo e a construção de um
novo sistema partindo de um planejamento e modelagem mais bem feito,
visando à reutilização e eficiência futuros, mas essa pode ser uma visão
idealizada

Fabiana Bigão Silva


Modelos de processos
  Modelo de Prototipagem
  Algumas críticas ao modelo:
  O cliente enxerga o que parece ser uma versão executável do software,
mas o protótipo consegue funcionar apenas parcialmente. Dessa forma, o
protótipo pode dar uma falsa impressão de progresso
  Ao informar ao cliente que o protótipo deve ser descartado para se construir um
novo software com alto padrão de qualidade, o usuário reclama e solicita
apenas alguns ajustes no protótipo, em geral aceitos pela equipe de
desenvolvimento
  O modelo de Prototipagem é simples e exige forte participação do
usuário, facilitando o atendimento às suas expectativas
  O importante do modelo de Prototipagem é deixar as regras claras no
início do contrato de forma que o cliente esteja ciente desde cedo que o
protótipo será descartado para que o software real seja submetido à
engenharia com o objetivo de buscar qualidade e manutenibilidade

Fabiana Bigão Silva


Modelos de processos
  Modelo RAD

Modelagem de Modelagem de
negócios negócios

Modelagem de Modelagem de
dados dados

Modelagem do
......... Modelagem do
processo processo

Geração da Geração da
aplicação aplicação

Teste e entrega Teste e entrega

Módulo 1 / Equipe 1 do software Módulo n / Equipe n do software


Fabiana Bigão Silva
Modelos de processos
  Modelo RAD
  O modelo RAD (Rapid Application Development) enfatiza um ciclo de
desenvolvimento extremamente curto
  Consiste de uma adaptação do modelo Linear, onde o desenvolvimento
rápido é conseguido através da construção baseada em componentes
  Se um software puder ser modularizado de modo a permitir que cada
função principal possa ser completada em poucos meses, cada função
pode ser tratada por uma equipe RAD distinta e depois integrada para
formar um todo

Fabiana Bigão Silva


Modelos de processos
  Modelo RAD
  Fases do modelo RAD
  Modelagem do negócio: o fluxo de informação é modelado para determinar que
informação é gerada, quem gera, quem processa, para onde vai
  Modelagem de Dados: o fluxo de informação acima é usado para definir o
conjunto de dados e seus relacionamentos
  Modelagem do Processo: baseado no fluxo de informações e nos objetos de
dados, os processos usados para adicionar, modificar, descartar e recuperar
dados são desenhados
  Geração da aplicação: a aplicação é construída usando linguagens de quarta
geração, reusando componentes de programas existentes ou construindo
componentes reutilizáveis
  Teste e entrega: como o modelo enfatiza o reuso, as partes dos componentes já
estão testadas, simplificando os testes, que são focados na integração entre os
componentes e na interface

Fabiana Bigão Silva


Modelos de processos
  Modelo RAD
  Algumas críticas ao modelo:
  Para projetos grandes, o modelo exige um número grande de pessoas para
se criar várias equipes RAD
  Os desenvolvedores e clientes devem estar compromissados com as atividades
do modelo RAD, que são rápidas
  Nem todos os tipos de aplicação são apropriados ao modelo RAD. O
sistema deve ser adequadamente modularizado
  Quando riscos técnicos forem elevados, o RAD não é adequado. Por
exemplo, quando uma nova tecnologia for usada ou quando o novo software
exigir um alto grau de interoperabilidade com programas existentes

Fabiana Bigão Silva


Modelos de processos
  Modelo incremental

Incremento 1 Análise Projeto Codificação Testes

Incremento 2 Análise Projeto Codificação Testes

Incremento 3 Análise Projeto Codificação Testes

Incremento 4 Análise Projeto Codificação Testes

Fabiana Bigão Silva


Modelos de processos
  Modelo incremental
  Combina elementos do modelo linear com o de prototipagem
  O modelo incremental aplica os processos do modelo linear a para
parte ou incremento do software
  O primeiro incremento ou a primeira parte do software deve consistir do
núcleo do produto, que contém requisitos básicos
  Enquanto o núcleo é usado pelo cliente, um plano para o próximo
incremento é desenvolvido, como resultado do uso e avaliação da parte
anterior
  A idéia dos próximos incrementos é sempre acrescentar
funcionalidades adicionais ao incremento anterior. Isso é repetido até
que o software esteja completo

Fabiana Bigão Silva


Modelos de processos
  Modelo incremental
  Diferentemente do modelo de prototipagem, o modelo incremental objetiva
à elaboração de um produto operacional a cada incremento. Os
primeiros incrementos são versões simplificadas do produto final
  Este modelo é útil quando não existe mão-de-obra disponível para
implementar uma versão completa do software
  O engenheiro de software tem a função de compreender o escopo
completo do software e fazer sua divisão em partes coerentes, que
gerarão os incrementos a serem desenvolvidos de cada vez
  Vantagens desse modelo:
  O cliente recebe uma parte funcional do produto (e não apenas a casca de
um protótipo) num tempo menor, reduzindo sua ansiedade
  Sua complexidade é média, favorável a um bom gerenciamento
  Crítica ao modelo:
  Cuidados adicionais devem ser tomados para integrar os incrementos que
foram desenvolvidos separadamente

Fabiana Bigão Silva


Modelos de processos
  Modelo espiral

Avaliação pelo cliente

Construção e entrega
Comunicação com o cliente

Engenharia
Planejamento

Análise de Risco

Fabiana Bigão Silva


Modelos de processos
  Modelo espiral
  Combina a natureza interativa da prototipagem com aspectos do modelo
seqüencial linear
  Permite o desenvolvimento rápido de versões incrementais do
software. Dessa forma, o software é construído numa série de versões
incrementais, onde as primeiras versões podem ser modelos em papel e
as últimas constituem do sistema pronto
  O modelo é dividido em um conjunto de atividades ou regiões de tarefas.
As seis regiões mais típicas são:
  Comunicação com o cliente
  Planejamento: definição de recursos, prazos, etc
  Análise de risco: levantamento e análise de ameaças ao projeto
  Engenharia: construção de representações do software
  Construção e liberação: implementação, testes, instalação e apoio ao usuário
  Avaliação pelo cliente: realimentação feita pelo cliente, feedback

Fabiana Bigão Silva


Modelos de processos
  Modelo espiral
  Cada região é constituída por um conjunto de tarefas, que são adaptadas
às características do projeto a ser desenvolvido. Projetos pequenos
exigem menos formalidades do que projetos maiores e mais sujeitos a
riscos
  À medida que as versões são criadas, uma passada no modelo espiral
no sentido horário, a partir do centro, é feita
  Cada passagem pela região de planejamento resulta em ajustes no plano
do projeto com base no que foi desenvolvido e na avaliação do cliente
  Esse modelo pode não terminar quando o software é entregue, podendo
ser adaptado para os casos de manutenção

Fabiana Bigão Silva


Modelos de processos
  Modelo espiral
  O modelo espiral é uma abordagem realística para desenvolvimento de
sistemas de grande porte, pois como o software evolui à medida que o
processo avança, o desenvolvedor e usuários entendem melhor e reagem
aos riscos em cada nível de versão
  Neste modelo, o paradigma da prototipagem pode ser usado em qualquer
estágio de desenvolvimento do produto
  O modelo mantém a abordagem passo a passo, incorporando uma
estrutura interativa

Fabiana Bigão Silva


Modelos de processos
  Modelo espiral
  Vantagens do modelo:
  Muito adaptável à realidade do software
  Permite alternativas gerenciais, como divisão de tarefas, terceirização,
delegação, etc
  Permite a combinação com outros modelos
  Crítica ao modelo:
  O modelo exige a consideração direta dos riscos técnicos em todos os
estágios de desenvolvimento, exigindo que seu gerenciador seja competente
na avaliação dos riscos. Se um risco não for descoberto em uma versão e bem
gerenciado, fatalmente ocorrerão problemas e o projeto não terá sucesso
  Os ciclos podem sair do controle devido a problemas de gerenciamento sobre
qual ciclo está sendo trabalhado
  A capacidade gerencial para implementar este modelo é mais exigida

Fabiana Bigão Silva


Organização Geral de um Processo Incremental
e Interativo
  O ciclo de vida de um processo incremental e interativo pode ser visto
segundo duas dimensões

  Dimensão temporal
  O processo está estruturado em fases
  Em cada fase, há uma ou mais interações
  Cada interação tem uma duração preestabelecida (algumas semanas)
  Ao final de uma interação é produzido um incremento do sistema final,
que pode ser liberado para os usuários ou pode ser um incremento
interno

  Dimensão de atividades (ou disciplinas)


  Compreende as atividades realizadas durante a interação de uma fase:
levantamento e análise de requisitos, desenho, codificação, testes,
implantação

Fabiana Bigão Silva


Organização Geral de um Processo Incremental
e Interativo

Fabiana Bigão Silva


Organização Geral de um Processo Incremental
e Interativo
  Em cada fase, diferentes artefatos de software são produzidos ou
artefatos começados em uma fase anterior são estendidos com
novos detalhes
  Cada fase é concluída com um marco
  Marco é um ponto do desenvolvimento onde decisões importantes são
tomadas sobre a continuidade do projeto
  Nos marcos são estimados os gastos e o andamento do cronograma

  As fases que são delimitadas pelos marcos são genericamente


denominadas de: Concepção, Elaboração, Construção, Transição

  Concepção
  A idéia geral do escopo é desenvolvida
  Planejamento de alto nível é realizado
  Determinados os marcos das fases

Fabiana Bigão Silva


Organização Geral de um Processo Incremental
e Interativo
  Elaboração
  O domínio do negócio é analisado
  O planejamento do projeto de desenvolvimento é completado
  Os requisitos são ordenados considerando prioridades e riscos
  As interações da próxima fase são planejadas

  Construção
  Aumentam as atividades de análise e projeto
  Ocorrem mais interações incrementais

  Transição
  Usuários são treinados para usar o sistema
  Ocorre a instalação e configuração do sistema
  São avaliados os gastos e e realizada a aceitação do cliente

Fabiana Bigão Silva


Modelos de processos
  Comentários sobre os modelos
  Modelos não são receitas, são idéias para implementações reais, que
serão elaboradas a partir dessas idéias
  É função do engenheiro de software planejar, projetar e colocar em
funcionamento um processo de software adequado à realidade de cada
situação
  É importante lembrar que em cada situação deve-se ter um processo
definido, gerenciado e em condições de melhoria contínua, não
importando QUAL
  O processo não pode ser alterado a todo momento para não perder
credibilidade

Fabiana Bigão Silva

Você também pode gostar