• Nenhum resultado encontrado

PDS1

N/A
N/A
Protected

Academic year: 2021

Share "PDS1"

Copied!
110
0
0

Texto

(1)

Processo de Desenvolvimento de

Software

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL

Curso de Sistemas de Informação

Dourados– MS - 03/02/15

1

(2)

Ementa

• Introdução

• Fases do desenvolvimento de software: • Análise • Projeto • Implementação • Testes • Implantação • Manutenção

• Modelos de Desenvolvimento de Software • Metodologias ágeis: SCRUM e XP

• Conceitos introdutórios de O.O. • Modelagem de Sistemas

• DFD

• UML: Diagramas de classe, objeto, atividades,

sequências, estados, casos de uso. Testes de Software

(3)

Bibliografia

- SOMMERVILLE, Engenharia de Software, 8. ed. São Paulo: Pearson, 2007.

- PRESSMAN, R. Engenharia de Software. São Paulo: Makron

Books, 1995.

- YOURDON, E. Análise Estruturada Moderna. Rio de Janeiro: Ed.

Campus, 1988

Bibliografia Complementar:

- BEZERRA, E. Princípios de Análise e Projetos de Sistemas com

UML. São Paulo: Campus, 2006.

- MOLINARI, L. Testes de Software. São Paulo: Editora Érica,

2003.

- RUMBAUGH, J. et al. Modelagem e Projetos Baseados em

(4)

Introdução

A Engenharia de Software é um ramo da engenharia cujo foco é

o desenvolvimento dentro de custos adequados de sistemas de

software de alta qualidade;

O conceito de Engenharia de Software foi inicialmente proposto

em 1968, em uma conferencia organizada para discutir o que foi então chamado “crise de software”. ;

(5)

Introdução – O que é um Software?

Muitas pessoas associam software aos programas de

computador;

• Na verdade, essa é uma visão muito restritiva;

Software não é apenas um programa, mas também todos os

dados de documentação e configuração associados, necessários para que o programa opere corretamente;

(6)

Introdução – O que é um Software?

Os Engenheiros de Software estão envolvidos como

desenvolvimento de produtos de software.

Existem 2 tipos fundamentais de produtos de software:

Produtos genéricos: sistemas do tipo stand-alone, produzidos por

uma organização de desenvolvimento e vendidos no mercado para qualquer cliente disposto a comprá-los;

Produtos sob encomenda (ou personalizados): sistemas

encomendados por um determinado cliente. O software é desenvolvido especialmente para aquele cliente.

(7)

Introdução – O que é Engenharia de

Software?

A Engenharia de Software é uma disciplina da engenharia

relacionada com todos os aspectos da produção de software.

• Nesta definição, há duas fases importantes:

Disciplina de Engenharia: os engenheiros fazem as coisas

funcionarem. Aplicam teorias, métodos e ferramentas onde for apropriado, mas eles os usam de forma seletiva e sempre procuram descobrir soluções para os problemas;

Todos os aspectos da produção de software: a engenharia de

software não está relacionada apenas com os processos técnicos de desenvolvimento de software, mas também com atividades como o gerenciamento de projeto e desenvolvimento de ferramentas,

(8)

Fases de Desenvolvimento de um

Software

(9)

Fases de Desenvolvimento de um Software

• Cada programa tem suas fases de desenvolvimento;

• Não importa quão grande ou pequeno o programa é, ou

quantas pessoas estão trabalhando no projeto - todos os programas de percorrer os mesmos passos:

• Análise; • Projeto; • Implementação; • Testes; • Implantação; • Manutenção. 9

(10)

Fases de Desenvolvimento de um Software

Análise;

Projeto;

Implementação;

Testes;

Implantação;

Manutenção.

(11)

Fases de Desenvolvimento - Análise

• Nesta fase, os conceitos iniciais para a construção de um

software será levantado.

• As principais fases desta etapa são:

• Criar relatório inicial de investigação;

• Levantar requisitos funcionais e não funcionais; • Construir glossário (ao longo da fase).

(12)
(13)

Fases de Desenvolvimento - Análise

Relatório Inicial:

• O relatório inicial de investigação conterá as informações

básicas sobre o solicitante do sistema;

• Também conterá uma visão geral do ambiente (domínio) onde

o sistema será futuramente implantado;

(14)

Fases de Desenvolvimento - Análise

Definição de Requisitos:

Um requisito descreve uma condição ou capacidade que

o sistema deve estar em conformidade [Unified

Process];

Pode ser derivado das necessidades dos usuários, ou

estabelecido em um contrato, padrão, especificação ou

outro documento imposto formalmente [IEEE];

(15)

Fases de Desenvolvimento - Análise

Detalhamento do Levantamento de Requisitos:

Entendimento do que o usuário deseja;

O resultado é uma promessa para o cliente;

(16)

Fases de Desenvolvimento - Análise

Levantamento de Requisitos:

• O principal objetivo desta fase é identificar, coletar e detalhar

os requisitos de software;

• Principais atividades:

• Identificar e aprovar o fornecedor de requisitos;

• Identificar e detalhar os Requisitos do Cliente – RC, Requisitos

Funcionais – RF e Não Funcionais – RNF;

Manter comunicação contínua com o cliente;

• Validar internamente e externamente (com o cliente) os requisitos.

• Saídas:

• Documento de requisitos ou Documento de Visão ou Documentos

(17)

Fases de Desenvolvimento - Análise

• Deve-se levantar os requisitos não funcionais que deve

abranger:

• Facilidade de uso necessária; • Quem utilizará o produto;

Hardware e software alvo para o produto; • Qualidade/robustez;

• Desempenho; • Segurança;

• Compatibilidade com outros produtos/versões e necessidades de

migração;

• Necessidades de internacionalização do produto; • Suporte;

• Preço da solução; • Aspectos legais;

• Integração com outros produtos; • etc.

(18)

Fases de Desenvolvimento - Análise

Algumas formas de levantamento de Requisitos:

● Entrevistas;

● Análise de Documentos; ● Questionários.

(19)

Fases de Desenvolvimento - Análise

Exemplo de Descrição de Requisitos:

(20)

Fases de Desenvolvimento - Análise

(21)

Fases de Desenvolvimento - Análise

Exemplo de Descrição de Requisitos:

(22)

Fases de Desenvolvimento - Análise

Exemplo de Descrição de Requisitos:

(23)

Fases de Desenvolvimento - Análise

Detalhamento do Levantamento de Requisitos:

• Os Requisitos Funcionais de Sistema indicam ações e por isso

devem ser identificados no infinitivo:

• Manter, cadastrar ou inserir, cancelar, alterar, remover, sacar, gerar

relatório de controle de caixa, etc.

(24)

Fases de Desenvolvimento - Análise

Documento de Requisitos:

• O documento de requisitos é a documentação oficial do que é

requerido dos desenvolvedores do sistema [SWEBOK];

• É refinado na medida que o desenvolvimento evolui:

● Inicialmente: deve definir O QUE o sistema deve fazer e não COMO; ● Posteriormente: pode trazer detalhes do COMO deve ser

implementado.

É usado em todo o processo de desenvolvimento de software para

(25)

Fases de Desenvolvimento – modelo de Glossário

(26)

Fases de Desenvolvimento – modelo de Glossário

(27)

Atividades do Processo

(28)

Atividades do Processo – Engenharia de Requisitos

É o processo para compreender e definir quais serviços

são necessários e identificar as restrições de operação e

de desenvolvimento do sistema;

É um estágio particularmente crítico do processo de

software, pois os erros nesse estágio conduzem

inevitavelmente a problemas posteriores no projeto e

na implementação do sistema.

(29)

Atividades do Processo – Engenharia de Requisitos

(30)

Atividades do Processo – Engenharia de Requisitos

• Esse processo leva à produção de um documento de requisitos , que é a especificação do sistema;

• Os requisitos são geralmente apresentados em dois níveis de detalhes neste documento;

• Os usuários finais precisam de uma declaração de requisitos de alto nível, e os projetistas de sistema precisam de uma especificação de sistema mais detalhada.

(31)

Fases de Desenvolvimento de um Software

Análise;

Projeto;

Implementação;

Testes;

Implantação;

Manutenção.

31

(32)

Fases de Desenvolvimento - Projeto

Nesta fase faz-se a tradução dos requisitos do software para

um conjunto de representações gráficas que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie;

Se concentra em 4 atributos do programa:

Estrutura de Dados;

Arquitetura de Software; Detalhes Procedimentais; Caracterização de Interfaces.

(33)

Fases de Desenvolvimento - Projeto

(34)
(35)

Fases de Desenvolvimento - Projeto

(36)

Fases de Desenvolvimento - Projeto

(37)

Fases de Desenvolvimento - Projeto

(38)

Fases de Desenvolvimento - Projeto

(39)

Fases de Desenvolvimento - Projeto

(40)

Fases de Desenvolvimento - Projeto

(41)

Fases de Desenvolvimento - Projeto

(42)

Fases de Desenvolvimento - Projeto

(43)

Fases de Desenvolvimento - Projeto

(44)

Fases de Desenvolvimento - Projeto

(45)

Fases de Desenvolvimento de um Software

Análise;

Projeto;

Implementação;

Testes;

Implantação;

Manutenção.

45

(46)

Fases de Desenvolvimento - Implementação

• Esta fase faz a tradução das representações gráficas do projeto

para uma linguagem “artificial” resultando em instruções executáveis pelo computador;

• Saídas:

• Código fonte, scripts de banco de dados, documentos de testes,

(47)

Fases de Desenvolvimento - Implementação

• No início desse fluxo, os desenvolvedores poderão buscar

componentes (funções) que foram utilizados em outro sistema;

• Ainda na fase de concepção, pode-se ter um protótipo de

funcionalidade como um produto final em primeira instância;

• No decorrer deste fluxo, procura-se ter um sistema executável, além

da implementação baseada nos artefatos criados no modelo de análise e projeto;

• O conceito de componentização deve ser sempre levado em

consideração, com o intuito de que estes segmentos de códigos possam ser aproveitados mais tarde por outros sistemas;

(48)

Fases de Desenvolvimento - Implementação

• Algumas questões importantes quanto à implementação de

software:

● Tratamento padronizado das mensagens geradas pelos

elementos da arquitetura;

● Mensagens armazenadas fora do código, em repositório de

mensagens;

● Problema de documentação (interface e códigos

desenvolvidos);

(49)

Fases de Desenvolvimento de um Software

Análise;

Projeto;

Implementação;

Testes;

Implantação;

Manutenção.

49

(50)

Fases de Desenvolvimento - Testes

• Diversas atividades de testes são executadas a fim de se validar

o produto de software, testando cada funcionalidade de cada módulo, buscando, levando em consideração a especificação feita na fase de projeto;

• O principal resultado é o relatório de testes, que contém as

informações relevantes sobre erros encontrados no sistema, e seu comportamento em vários aspectos;

• Ao final dessa atividade, os diversos módulos do sistema são

(51)

Fases de Desenvolvimento de um Software

Análise;

Projeto;

Implementação;

Testes;

Implantação;

Manutenção.

51

(52)

Fases de Desenvolvimento - Implantação

A implantação compreende a instalação do software no

ambiente do usuário;

• Inclui os manuais do sistema, importação dos dados para o

novo sistema e treinamento dos usuários para o uso correto e adequado do sistema;

Em alguns casos quando da existência de um software anterior,

também é realizada a migração de dados anteriores desse

(53)

Fases de Desenvolvimento - Implantação

• A implantação é o processo pelo qual o antigo sistema é desligado e o

novo é ativado. Pode incluir três abordagens de transição:

Direta: o novo sistema substitui imediatamente o sistema antigo;Conversão paralela: ambos os sistemas, o antigos e o novo são

operados por um ou dois meses até que seja evidente que não existam erros no sistema novo;

Conversão escalonada: o novo sistema é instalado em uma parte

da organização como um ensaio inicial e depois, gradualmente, instalado em outros.

• Um dos aspectos mais importantes de conversão é o

desenvolvimento de um plano de treinamento para ensinar os usuários utilizarem o novo sistema e ajudar a gerenciar as mudanças provocadas pelo novo sistema.

(54)

Fases de Desenvolvimento de um Software

Análise;

Projeto;

Implementação;

Testes;

Implantação;

Manutenção.

(55)

Fases de Desenvolvimento - Manutenção

Provavelmente o software deverá sofrer mudanças depois que

for entregue ao cliente

• Causas das mudanças:

Erros, adaptação do software para acomodar mudanças em seu

ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho.

Todo bom software evoluí.

(56)

Fases de Desenvolvimento - Manutenção

• A equipe de analistas estabelece um plano de suporte ao

sistema;

• Este plano geralmente inclui uma revisão formal ou informal de

pós-implementação;

• Inclui também uma maneira sistemática para identificar as

(57)

Fases de Desenvolvimento - Manutenção

(58)
(59)

Modelos de Desenvolvimento de Software

(60)

Modelos de Desenvolvimento de um Software

• Hoje em dia nos deparamos com várias metodologias para o

desenvolvimento de um projeto;

• Estas metodologias formam o que chamamos de “modelos de

desenvolvimento de software”;

• É necessário o conhecimento deles para sabermos qual modelo

e em que situação ele poderá ser utilizado;

• Dentre vários modelos, os principais são:

• Modelo em Cascata;

• Modelo Baseado em Componentes; • Entrega Incremental;

(61)

Modelos de Desenvolvimento de um Software

• Modelo em Cascata;

• Modelo Baseado em Componentes.

• Entrega Incremental;

• Modelo em Espiral.

(62)

Modelos de Desenvolvimento - Cascata

O modelo cascata (waterfall) tornou-se conhecido na década

de 70 e é referenciado na maioria dos livros de engenharia de

software ou manuais de padrões de software;

• Nele as atividades do processo de desenvolvimento são

estruturadas numa cascata onde a saída de uma é a entrada para a próxima (etapas bem definidas);

• As suas principais são:

• Análise e Definição de Requisitos; • Projeto de sistema de software; • Implementação;

• Teste;

(63)

Modelos de Desenvolvimento - Cascata

(64)
(65)

Modelos de Desenvolvimento - Cascata

Análise e definição dos requisitos :

• Nesta etapa, estabelecem-se os requisitos do produto que se

deseja desenvolver, o que consiste usualmente nos serviços que se devem fornecer, limitações e objetivos do software;

• Os requisitos devem ser definidos de uma maneira apropriada

para que sejam úteis na etapa seguinte;

• Esta etapa inclui também a documentação e o estudo da

facilidade e da viabilidade do projeto com o fim de determinar o processo de início de desenvolvimento do projeto do sistema.

(66)
(67)

Modelos de Desenvolvimento - Cascata

Projeto do sistema de software:

• O projeto do sistema é um processo de vários passos que se

centraliza em quatro atributos diferentes do sistema:

• estrutura de dados,

arquitetura do software, • detalhes procedurais e

• caracterização das interfaces.

• O processo de projeto representa os requisitos de uma forma

que permita a codificação do produto (é uma prévia etapa de codificação);

• Da mesma maneira que a análise dos requisitos, o projeto é

documentado e transforma-se em uma parte do software.

Dourados – MS - 01/09/14

(68)

Modelos de Desenvolvimento - Cascata

(69)

Modelos de Desenvolvimento - Cascata

Implementação:

• Esta é a etapa em que são criados os programas;

• Se o projeto possui um nível de detalhe elevado, a etapa de

codificação pode implementar-se automaticamente;

• A princípio, sugere-se incluir um teste unitário dos módulos

nesta etapa;

• As unidades de código produzidas são testadas individualmente

antes de passar a etapa de integração e teste global.

(70)
(71)

Modelos de Desenvolvimento - Cascata

Testes do Sistema (Verificação):

• Concluída a codificação, começa a fase de teste do sistema; • O processo de teste centraliza-se em dois pontos principais:

as lógicas internas do software e • as funcionalidades externas.

• Esta fase decide se foram solucionados erros de

“comportamento” do software

• Assegura que as entradas definidas produzam resultados reais

que coincidam com os requisitos especificados.

(72)
(73)

Modelos de Desenvolvimento - Cascata

Manutenção:

• Essa etapa consiste na correção de erros que não foram

previamente detectados, em melhorias funcionais e de preferência e outros tipos de suporte;

• Melhorias e correções podem ser consideradas como parte do

desenvolvimento.

(74)

Modelos de Desenvolvimento - Cascata

OBSERVAÇÕES:

• Em princípio, o resultado de cada fase consiste de um ou mais

documentos aprovados (“assinados”). A fase seguinte não deve começar antes que a fase anterior tenha terminado;

• Na prática, esses estágios se sobrepõem e trocam informações

entre si;

• Durante o projeto, são identificados problemas com requisitos;

durante a codificação problemas de projeto e assim por diante;

O processo de software não é um modelo linear simples,

envolve uma sequência de iterações das atividades de desenvolvimento.

(75)

Modelos de Desenvolvimento - Cascata

• As vantagens do modelo em cascata consistem na

documentação produzida em cada fase e sua aderência a outros modelos de processos de engenharia;

• Seu maior problema é a divisão inflexível do projeto em

estágios distintos;

• O modelo em cascata deve ser usado apenas quando os

requisitos forem bem compreendidos e houver pouca probabilidade de mudanças radicais durante o desenvolvimento do sistema.

(76)

Modelos de Desenvolvimento de um Software

• Modelo em Cascata;

• Modelo Baseado em Componentes;

• Entrega Incremental;

(77)

Modelos de Desenvolvimento – Baseado em Componentes

Na maioria dos projetos, existe algum reuso de software;

• Geralmente ocorre de forma informal, quando as pessoas que

trabalham no projeto, conhecem os projetos ou os códigos similares aos necessários;

• Esse reuso informal ocorre independentemente do processo de

desenvolvimento usado;

Com isso desenvolveu- se a Engenharia de Software baseada em

Componentes que tem se tornado cada vez mais utilizada.

(78)
(79)

Modelos de Desenvolvimento – Baseado em Componentes

• Componentes são considerados como “estando num nível

de abstração mais alto que do que objetos” e, como tal, não compartilham estado e comunicam-se por troca de mensagens contendo dados;

No caso dos componentes "comerciais de prateleira", o

engenheiro de software sabe pouco ou nada sobre o funcionamento interno de um componente;

Ao invés disso, ao engenheiro de software é dada apenas uma

interface externa bem-definida a partir da qual ele deve trabalhar;

• O nível de serviço é portanto crucial se quiser que a integração

(80)
(81)

Modelos de Desenvolvimento – Baseado em Componentes

Estágios da Engenharia de Software Baseada em Componentes: 

Especificação

dos Requisitos ComponentesAnálise dos dos RequisitosModificação

Projeto de sistema com

reuso

Desenvolvimen

to e Integração Validação de Sistema

(82)

Modelos de Desenvolvimento – Baseado em Componentes

Análise de componentes: Dada uma especificação de requisitos,

é feita uma busca pelos componentes para implementar essa especificação. Geralmente, não existe uma correspondência exata e os componentes que podem ser usados fornecem apenas parte da funcionalidade necessária.

Especificação

dos Requisitos ComponentesAnálise dos dos RequisitosModificação

Projeto de sistema com

reuso

(83)

Modelos de Desenvolvimento – Baseado em Componentes

Modificação de Requisitos: Durante este estágio, os requisitos

são analisados usando as informações sobre os componentes encontrados. Eles são modificados para refletir os componentes disponíveis. Quando as modificações são impossíveis, a atividade de análise de componentes pode ser novamente realizada para procurar soluções alternativas.

Especificação

dos Requisitos ComponentesAnálise dos dos RequisitosModificação

Projeto de sistema com

reuso

Desenvolvimen

to e Integração Validação de Sistema

(84)

Modelos de Desenvolvimento – Baseado em Componentes

Projeto de sistema com reuso: Durante este estágio, o

framework do sistema é projetado ou um framework existente é

reusado. Os projetistas levam em consideração os componentes reusados, organizando o framework para eles. Pode ser necessário projetar algum software novo caso os componentes reusáveis não estejam disponíveis.

Especificação

dos Requisitos ComponentesAnálise dos dos RequisitosModificação

Projeto de sistema com

reuso

(85)

Modelos de Desenvolvimento – Baseado em Componentes

Desenvolvimento e integração: O software que não pode ser

adquirido externamente é desenvolvido e os componentes e os sistemas COTS são integrados para criar um novo sistema. A integração de sistema, nesse modelo, pode ser parte do processo de desenvolvimento, em vez de ser uma atividade separada.

Especificação

dos Requisitos ComponentesAnálise dos dos RequisitosModificação

Projeto de sistema com

reuso

Desenvolviment

o e Integração Validação de Sistema

(86)

Modelos de Desenvolvimento – Baseado em Componentes

Este tipo de desenvolvimento de software tem a vantagem óbvia

de reduzir a quantidade de software a ser desenvolvido e, dessa maneira, reduzir os custos e riscos;

• Leva geralmente a uma entrega mais rápida;

• Os compromissos com os requisitos são inevitáveis;

• Deve-se fazer a análise de requisitos para ver se os componentes

(87)

Modelos de Desenvolvimento de um Software

• Modelo em Cascata;

• Modelo Baseado em Componentes;

• Entrega Incremental;

• Modelo em Espiral.

(88)

Modelos de Desenvolvimento – Entrega Incremental

A especificação, o projeto e a implementação do software são

divididos em uma série de incrementos desenvolvidos um de cada vez;

• A entrega incremental é uma abordagem que combina as

vantagens dos modelos cascata e evolucionário;

• Em um processo de desenvolvimento incremental, o cliente

identifica, em linhas gerais, os serviços a serem fornecidos pelo sistema;

(89)

Modelos de Desenvolvimento – Entrega Incremental

Definir os requisitos iniciais Atribuir requisitos aos incrementos Projetar arquitetura do sistema Desenvolver incremento de sistema Validar

incremento incrementoIntegrar Validar sistema

Sistema Final Sistema Incompleto

(90)

Modelos de Desenvolvimento – Entrega Incremental

• Neste modelo, é identificado quais serviços são mais

importantes;

• Assim, um número de incrementos de entrega é definido, com

cada incremento fornecendo um subconjunto das funcionalidades do sistema. Definir os requisitos iniciais Atribuir requisitos aos incrementos Projetar arquitetura do sistema Desenvolver incremento de sistema Validar

incremento incrementoIntegrar Validar sistema

Sistema

(91)

Modelos de Desenvolvimento – Entrega Incremental

• A alocação de serviços aos incrementos depende da prioridade

de serviço, com os serviços de prioridade mais alta sendo entregues primeiro. Definir os requisitos iniciais Atribuir requisitos aos incrementos Projetar arquitetura do sistema Desenvolver incremento de sistema Validar

incremento incrementoIntegrar Validar sistema

Sistema Final

(92)

Modelos de Desenvolvimento – Entrega Incremental

• Após a identificação dos incrementos do sistema, os requisitos

dos serviços a serem entregues no primeiro incremento são definidos detalhadamente e ele é desenvolvido;

• Durante o desenvolvimento, pode ser realizada a análise dos

próximos requisitos para os incrementos posteriores, mas não são aceitas mudanças de requisitos para o incremento atual.

Definir os requisitos iniciais Atribuir requisitos aos incrementos Projetar arquitetura do sistema Desenvolver incremento de sistema Validar

incremento incrementoIntegrar Validar sistema

Sistema Final

(93)

Modelos de Desenvolvimento – Entrega Incremental

• Os serviços comuns podem ser implementados no início do

processo ou podem ser implementados de forma incremental, conforme a funcionalidade for exigida por um incremento.

Definir os requisitos iniciais Atribuir requisitos aos incrementos Projetar arquitetura do sistema Desenvolver incremento de sistema Validar

incremento incrementoIntegrar Validar sistema

Sistema Final Sistema Incompleto

(94)

Modelos de Desenvolvimento – Entrega Incremental

Vantagens:

• Entregas parciais facilitam a identificação e correção de erros entre

os componentes do software;

• Necessidades não especificadas nas fases iniciais podem ser

desenvolvidas nos incrementos;

(95)

Modelos de Desenvolvimento – Entrega Incremental

Vantagens:

Os feedbacks de iterações anteriores podem ser usados nos próximos

incrementos;

• Os incrementos podem ser desenvolvidos por menos profissionais; • Entrega dos incrementos permite o cumprimento do prazo

especificado;

• Facilita a manutenção dos “módulos”.

(96)

Modelos de Desenvolvimento – Entrega Incremental

Desvantagens:

• Número de iterações não pode ser definido no início do processo; • O fim do processo não pode ser previamente definido;

• Gerenciamento e manutenção do sistema completo podem se tornar

complexos;

• Gerenciamento do custo é mais complexo devido ao número de

(97)

Modelos de Desenvolvimento de um Software

• Modelo em Cascata;

• Modelo Baseado em Componentes;

• Entrega Incremental;

• Modelo em Espiral.

(98)
(99)

Modelos de Desenvolvimento - Espiral

• O modelo em espiral foi proposto por Boehm em 1988 como

forma de integrar os diversos modelos existentes à época, eliminando suas dificuldades e explorando seus pontos fortes;

• Este modelo foi desenvolvido para abranger as melhores

características tanto do ciclo de vida clássico como da prototipação, acrescentando, ao mesmo tempo, um novo elemento - a análise de riscos - que falta a esses paradigmas ;

• O modelo em espiral assume que o processo de desenvolvimento

ocorre em ciclos, cada um contendo fases de avaliação e planeamento, onde a opção de abordagem para a próxima fase (ou ciclo) é determinada;

• Estas opções podem acomodar características de outros modelos.

(100)

Modelos de Desenvolvimento - Espiral

• O modelo original em espiral organiza o desenvolvimento como

um processo iterativo em que vários conjuntos de quatro fases se sucedem até se obter o sistema final;

• Este modelo possui 4 fases bem definidas:

Primeira fase: Um ciclo se inicia com a determinação de

objetivos, alternativas e restrições, onde ocorre o comprometimento dos envolvidos e o estabelecimento de uma estratégia para alcançar os objetivos.

(101)

Modelos de Desenvolvimento - Espiral

Segunda fase: avaliação de alternativas, identificação e solução

de riscos, executa-se uma análise de risco. Prototipação é uma boa ferramenta para tratar riscos. Se o risco for considerado inaceitável, pode parar o projeto;

Terceira fase: ocorre o desenvolvimento do produto. Neste

quadrante pode-se considerar o modelo cascata;

Quarta fase: o produto é avaliado e se prepara para iniciar um

novo ciclo.

(102)

Modelos de Desenvolvimento - Espiral

Primeira fase: Um ciclo se inicia com a determinação de objetivos,

alternativas e restrições, onde ocorre o comprometimento dos envolvidos e o estabelecimento de uma estratégia para alcançar os objetivos;

(103)

Modelos de Desenvolvimento - Espiral

Segunda fase: avaliação de alternativas, identificação e solução de

riscos, executa-se uma análise de risco. Prototipação é uma boa ferramenta para tratar riscos. Se o risco for considerado inaceitável, pode parar o projeto;

(104)

Modelos de Desenvolvimento - Espiral

Terceira fase: ocorre o desenvolvimento do produto. Neste quadrante

(105)

Modelos de Desenvolvimento - Espiral

Quarta fase: o produto é avaliado e se prepara para iniciar um novo

ciclo.

(106)

Modelos de Desenvolvimento - Espiral

• O modelo espiral pode ser considerado atualmente a

abordagem mais realística para desenvolvimento de software em grande escala, e usa uma abordagem que capacita a empresa que presta o serviço, e o cliente a entender e reagir aos riscos em cada etapa evolutiva;

• Este tipo de modelo exige considerável experiência na

determinação de riscos e depende dessa experiência para ter sucesso, pode ser difícil convencer os clientes que uma abordagem evolutiva é controlável.

(107)

Modelos de Desenvolvimento - Espiral

Vantagens:

• O modelo em espiral permite que ao longo de cada iteração se

obtenham versões do sistema cada vez mais completas, recorrendo à prototipagem para reduzir os riscos;

• Este tipo de modelo permite a abordagem do refinamento

seguido pelo modelo em cascata, mas que incorpora um enquadramento iterativo que reflete, de uma forma bastante realística, o processo de desenvolvimento.

(108)

Modelos de Desenvolvimento - Espiral

• Desvantagens:

• Pode ser difícil convencer grandes clientes (particularmente em

situações de contrato) de que a abordagem evolutiva é controlável;

• Exige considerável experiência na avaliação dos riscos e confia-se

nessa experiência para o sucesso. Se um grande risco não for descoberto, poderão ocorrer problemas;

• Podem existir diferenças entre o protótipo e o sistema final. O

protótipo pode não cumprir os requisitos de desempenho, pode ser incompleto, e pode refletir somente algumas partes do sistema a ser desenvolvido;

• O modelo pode levar ao desenvolvimento em paralelo de múltiplas

partes do projeto. Por isso é necessário o uso de técnicas específicas para estimar e sincronizar cronogramas, bem como para determinar os indicadores de custo e progresso mais adequados.

(109)

Bibliografia

- SOMMERVILLE, Engenharia de Software, 8. ed. São Paulo: Pearson, 2007.

- PRESSMAN, R. Engenharia de Software. São Paulo: Makron

Books, 1995.

- YOURDON, E. Análise Estruturada Moderna. Rio de Janeiro: Ed.

Campus, 1988

Bibliografia Complementar:

- BEZERRA, E. Princípios de Análise e Projetos de Sistemas com

UML. São Paulo: Campus, 2006.

- MOLINARI, L. Testes de Software. São Paulo: Editora Érica,

2003.

- RUMBAUGH, J. et al. Modelagem e Projetos Baseados em

(110)

Página

Referências

Documentos relacionados

A Revolugao Industrial, marco do seculo XIX, alem de transformar providencialmente a sociedade, ampliou os tipos e maneiras de causar dano ao outro, nascia, assim, a Teoria do

Dessa forma, o Artigo II intitulado “Validação da World Health Organization Disability Assessment Schedule (WHODAS 2.0) na Versão Brasileira para Uso em Pessoas com

Este medicamento deve ser administrado com precaução em doentes com doença renal, não devendo ser administrado em doentes com insuficiência renal grave (ver secção 4.4).. Modo

Este artigo tem como objetivo analisar a relação entre humor e política com base na websérie brasileira do grupo Porta dos fundos, analisando como os seus conteúdos representam

A estabilidade do corpo docente permanente permite atribuir o conceito muito bom, segundo os parâmetros da área, para o item 2.2 (pelo menos 75% dos docentes permanentes foram

São muitos os problemas ambientais causados pelo crescimento urbano, o poder público não acompanha esse crescimento com investimentos em obras de infraestrutura, são ocupados

[...] segundo o Censo da Educação Superior conduzido pelo Instituto Nacional de Estudos e Pesquisas Educacionais (Inep), em 2004 havia 4.163.733 alunos matriculados no

Mais de 45% das empresas abrangidas pela pesquisa não completaram sete anos de funcionamento, e 20% sequer conseguiram sobreviver por um ano. O maior número de fechamentos