Você está na página 1de 101

O Produto e o Processo

O Produto
Dois papis do Software:
- produto
(quando libera o potencial embutido no hardware)

- veculo para liberar produto
(quando ele atua como uma base para o controle
do computador - sistema operacional; para
acomunicao de informao - redes; para a
criao e controle de outros programas)
Evoluo do Software
(1950 - 1965)
= O hardware sofreu contnuas mudanas
= O software era uma arte "secundria" para a
qual havia poucos mtodos sistemticos
= O hardware era de propsito geral
= O software era especfico para cada aplicao
= No havia documentao
Evoluo do Software
(1965 - 1975)
= Multiprogramao e sistemas multiusurios
= Tcnicas interativas
= Sistemas de tempo real
= 1
a
gerao de SGBDs
= Produto de software - software houses
= Bibliotecas de Software
= Cresce n
o
de sistemas baseado em computador
= Manuteno quase impossvel
..... CRISE DE SOFTWARE
Evoluo do Software
(1975 - hoje)
= Sistemas distribudos
= Redes locais e globais
= Uso generalizado de microprocessadores -
produtos inteligentes
= Hardware de baixo custo
= Impacto de consumo
Evoluo do Software
(Quarta era do software: atualidade)
; Tecnologias orientadas o objetos
; Sistemas especialistas e software de inteligncia
artificial usados na prtica
; Software de rede neural artificial
; Computao Paralela
; Internet
Problemas que Persistem e se
Intensificam
Apesar da evoluo do software...
; A habilidade em construir software deixa a desejar em relao ao
potencial do hardware
; A construo de software no rpida o suficiente para atender as
necessidades do mercado
; A sociedade depende cada vez mais de software confivel; quando ele
falha, podem ocorrer gastos enormes e desgaste de muitos
profissionais para arrum-lo
; O esforo para construir software confivel e de qualidade muito
grande
; O suporte aos programs existentes apoiado por projetos pobres e
recursos inadequados
Uma Perspectiva Industrial
Hoje, o software que custa mais do que o hardware.
J h algum tempo, gerentes e tcnicos se perguntam:
; Porque preciso tanto tempo para terminar os programas?
; Porque os custos so to altos?
; Porque no se consegue encontrar todos os erros antes que o
software seja liberado para os clientes?
; Porque existe uma dificuldade em medir o progresso medida que o
software est sendo construido?
A preocupao em resolver essas questes tem levado
adoo das prticas da Engenharia de Software
Uma Fbrica de Software
Envelhecida
os sistemas de informao escritos h 20 anos, depois de
incontveis alteraes esto hoje de uma forma que no
permite manuteno (peq. mudanas falha do sistema)
aplicaes de engenharia que geram dados de projeto
crticos, devido idade e reparos, no permitem que
algum entenda suas estruturas internas
sistemas embutidos que possuem comportamentos
inesperados, mas no podem se tornar inoperantes pois
no h nada para substitu-los
Competitividade do Software
hoje o software um negcio competitivo
os principais direcionadores que propiciaro
uma intensa competio na rea de software
so: custo, adequao de prazo e qualidade
intensifica-se, portanto, uma rpida
movimentao dos desenvolvedores para
adotar prticas modernas de Engenharia de
Software
Software
1- Instrues
quando executadas produzem a funo e o
desempenho desejados
2 - Estruturas de Dados
possibilitam que os programas manipulem
adequadamente a informao
3 - Documentos
descrevem a operao e o uso dos programas
Caractersticas do Software
1. desenvolvido ou projetado por engenharia, no
manufaturado no sentido clssico

2. no se desgasta mas se deteriora

3. a maioria feita sob medida em vez de ser
montada a partir de componentes existentes
Curva de falhas para o Hardware

tempo
desgaste
mortalidade
infantil

ndice
de
falhas
Curva de falhas do Software
ndice de
falhas
mudana
curva real
curva idealizada
tempo
Aplicaes do Software
B B S SI IC CO O
programas de apoio a outros programas
D DE E T TE EM MP PO O R RE EA AL L
monitora, analisa e controla eventos do
mundo real
C CO OM ME ER RC CI IA AL L
operaes comerciais e tomadas de
decises administrativas
C CI IE EN NT T F FI IC CO O E E D DE E
E EN NG GE EN NH HA AR RI IA A
algoritmos de processamento de nmeros
E EM MB BU UT TI ID DO O
controla produtos e sistemas de mercados
industriais e de consumo
D DE E C CO OM MP PU UT TA AD DO OR R
P PE ES SS SO OA AL L
processamento de textos, planilhas
eletrnicas, diverses, etc.
D DE E I IN NT TE EL LI IG G N NC CI IA A
A AR RT TI IF FI IC CI IA AL L
algoritmos no numricos para resolver
problemas que no sejam favorveis
computao ou anlise direta
Crise de Software
Refere-se a um conjunto de problemas
encontrados no desenvolvimento de software:
(1) As estimativas de prazo e de custo freqentemente
so imprecisas
No dedicamos tempo para coletar dados sobre o
processo de desenvolvimento de software
Sem nenhuma indicao slida de produtividade, no
podemos avaliar com preciso a eficcia de novas
ferramentas, mtodos ou padres
Crise de Software
(2) A produtividade das pessoas da rea de software
no tem acompanhado a demanda por seus
servios
Os projetos de desenvolvimento de software
normalmente so efetuados apenas com um vago
indcio das exigncias do cliente

Crise de Software
(3) A qualidade de software s vezes menos que
adequada
S recentemente comeam a surgir conceitos
quantitativos slidos de garantia de qualidade de
software
(4) O software existente muito difcil de manter
A tarefa de manuteno devora o oramento destinado
ao software
A facilidade de manuteno no foi enfatizada como
um critrio importante
Crise de Software
-estimativas de prazo e de custo
-produtividade das pessoas
-qualidade de software
-software difcil de manter
Causas dos problemas associados
Crise de Software
1. prprio carter do Software
O software um elemento de sistema lgico e
no fsico.
Conseqentemente, o sucesso medido pela
qualidade de uma nica entidade e no pela
qualidade de muitas entidades manufaturadas

O software no se desgasta, mas se
deteriora!!!
2. falhas das pessoas responsveis pelo
desenvolvimento de Software
Gerentes sem nenhum background em
software
Os profissionais da rea de software tm
recebido pouco treinamento formal em novas
tcnicas para o desenvolvimento de software
Resistncia a mudanas
Causas dos problemas associados
Crise de Software
3. mitos do Software

propagaram desinformao e confuso
administrativos
cliente
profissional

Causas dos problemas associados
Crise de Software
Mitos do Software (administrativos)
J temos um manual repleto de padres e
procedimentos para a construo de software. Isso
no oferecer ao meu pessoal tudo o que eles
precisam saber?

Realidade:
Ser que o manual usado?
Os profissionais sabem que ele existe?
Ele reflete a prtica moderna de desenvolvimento de software?
Ele completo?
Meu pessoal tem ferramentas de desenvolvimento de
software de ltima gerao; afinal lhes compramos
os mais novos computadores.
Mitos do Software (administrativos)
Realidade:
preciso muito mais do que os mais recentes
computadores para se fazer um desenvolvimento de
software de alta qualidade.
Se ns estamos atrasados nos prazos, podemos
adicionar mais programadores e tirar o atraso.
Mitos do Software (administrativos)
Realidade:
O desenvolvimento de software no um processo
mecnico igual manufatura.
Acrescentar pessoas em um projeto torna-o ainda mais
atrasado. Pessoas podem ser acrescentadas, mas
somente de uma forma planejada.
Uma declarao geral dos objetivos suficiente
para se comear a escrever programas -
podemos preencher os detalhes mais tarde.
Mitos do Software (cliente)
Realidade:
Uma definio inicial ruim a principal causa de fracassos dos
esforos de desenvolvimento de software.
fundamental uma descrio formal e detalhada do domnio da
informao, funo, desempenho, interfaces, restries de
projeto e critrios de validao.
Os requisitos de projeto modificam-se
continuamente, mas as mudanas podem ser
facilmente acomodadas, porque o software
flexvel.
Mitos do Software (cliente)
Realidade:
Uma mudana, quando solicitada tardiamente num projeto,
pode ser maior do que mais do que uma ordem de magnitude
mais dispendiosa do que a mesma mudana solicitada nas
fases iniciais.
FASES CUSTO DE MANUTENO
DEFINIO
1 x
DESENVOLVIMENTO
1.5 - 6x
MANUTENO
60 - 100x
magnitude das mudanas
Assim que escrevermos o programa e o colocarmos
em funcionamento nosso trabalho estar completo.
Mitos do Software (profissional)
Realidade:
Os dados da indstria indicam que entre 50 e 70% de todo
esforo gasto num programa sero despendidos depois que
ele for entregue pela primeira vez ao cliente.
Enquanto no tiver o programa "funcionando", eu
no terei realmente nenhuma maneira de avaliar
sua qualidade.
Mitos do Software (profissional)
Realidade:
Um programa funcionando somente uma parte de uma
Configurao de Software que inclui todos os itens de
informao produzidos durante a construo e manuteno do
software.
O Processo
O que Processo de Software?
um framework das tarefas requeridas para
construir software de alta qualidade

Processo = Engenharia de Software
Processo define a abordagem e
Engenharia de Software engloba tambm
as tecnologias, como mtodos e ferramentas
?
+
ou
-
Definio:
(1) aplicao de uma abordagem sistemtica, disciplinada e
quantificvel ao desenvolvimento, operao e
manuteno de software, ou seja, a aplicao da
engenharia ao software
(2) o estudo de abordagens do tipo declarado em (1)
[IEEE]
Uma Tecnologia em Camadas
Uma Tecnologia em Camadas
ferramentas
mtodos
processo
foco na qualidade
Uma Tecnologia em Camadas
ferramentas
mtodos
processo
foco na qualidade
o solo
Gerenciamento da Qualidade Total e filosofias similares
produzem uma mudana cultural que permite o
desenvolvimento crescente de abordagens mais maduras
para a Engenharia de Software
Uma Tecnologia em Camadas
ferramentas
mtodos
processo
foco na qualidade
a fundao
a cola que gruda as camadas de tecnologias e permite um
desenvolvimento de software racional e em tempo; define um
conjunto de reas chave do processo (KPA) que deve ser
estabelecido para um uso efetivo da Engenharia de Software
Uma Tecnologia em Camadas
ferramentas
mtodos
processo
foco na qualidade
o como fazer
Englobam um conjunto de tarefas que inclui anlise de
requisitos, projeto, construo de programas, teste e
manuteno
Uma Tecnologia em Camadas
ferramentas
mtodos
processo
foco na qualidade
o instrumento apropriado
Do suporte automatizado ou semi-automatizado ao processo
e aos mtodos; quando as ferramenta se integram tem-se um
sistema denominado CASE (Computer Aided Software
Engineering)
Uma Viso Genrica: 3 Fases
Definio - o que
Engenharia do Sistema
Planejamento do Projeto
Anlise de Requisitos
Desenvolvimento - como
Projeto
Gerao do Cdigo
Teste
Manuteno
Atividades Guarda-Chuva

Controle e Rastreamento do
Projeto
Revises Tcnicas Formais
Garantia de Qualidade
Gerenciamento de Configurao
Produo e Preparao de
Documentos
Gerenciamento de Reusabilidade
Medio
Gerenciamento de Risco
O Processo de Software
Atividades Guarda-Chuva
Framework Comum de Processo
Atividades do Framework
Conjuntos de Tarefas
Tarefas
Marcos, Docs. Liberveis
Aspectos de GQS
Framework Comum de
Processo:

estabelecido atravs da
definio de um pequeno
nmero de atividades que
so aplicveis a qualquer
projeto de software,
independentemente de seu
tamanho ou complexidade
O Processo de Software
Atividades Guarda-Chuva
Framework Comum de Processo
Atividades do Framework
Conjuntos de Tarefas
Tarefas
Marcos, Docs. Liberveis
Aspectos de GQS
Conjuntos de Tarefas:

cada um uma coleo de
tarefas da Eng. Software -
marcos de projeto,
produtos de software e
docs. liberveis e pontos
de garantia de qualidade -
que permite que o
framework de atividades
seja adaptado s
caractersticas do projeto e
equipe
O Processo de Software
Atividades Guarda-Chuva
Framework Comum de Processo
Atividades do Framework
Conjuntos de Tarefas
Tarefas
Marcos, Docs. Liberveis
Aspectos de GQS
Atividades Guarda-Chuva:

garantia de qualidade de
software, gerenciamento de
configurao, medio -
cobrem todo o processo e
so independentes do
framework de atividades
O Processo de Software
Atividades Guarda-Chuva
Framework Comum de Processo
Atividades do Framework
Conjuntos de Tarefas
Tarefas
Marcos, Docs. Liberveis
Aspectos de GQS
nfase Atual


Processo de
Maturidade

CMM (SEI)
processos
mtodos
ferramentas
fases genricas
Modelos de Processo de
Software
devem incorporar
uma estratgia de
desenvolvimento
Modelo de Processo
Paradigma de Engenharia de Software
Ciclo de Vida
Modelo de Processo de
Software
escolhido com base:

na natureza do projeto e da aplicao
nos mtodos e ferramentas a serem
utilizados
nos controles e produtos que precisam ser
entregues
Modelo de Processo de
Software
Todo desenvolvimento de software pode ser
caracterizado como um loop de soluo
definio do
problema
desenvolvimento
tcnico
integrao
da soluo
estado
atual
Modelo de Processo de
Software
O loop de soluo pode ser usado em diferentes
nveis de resoluo






estado
atual
Alguns Modelos de Processo:
+ Modelo Seqencial Linear
+ Modelo de Prototipao
+ Modelo RAD
+ Modelos Evolucionrios
+ Incremental
+ Espiral
+ Montagem de Componente
+ Desenvolvimento Concorrente
+ Modelo de Mtodos Formais
+ Tcnicas de 4
a
Gerao
Modelos de Processo de
Software
Modelo Seqencial Linear
Ciclo de Vida Clssico ou Modelo Cascata
modelo mais antigo e o mais amplamente
usado da engenharia de software
modelado em funo do ciclo da engenharia
convencional
requer uma abordagem sistemtica,
seqencial ao desenvolvimento de software
Engenharia de
Sistemas / Informao
Anlise

Projeto
Codificao
Testes
Modelo Seqencial Linear
muitas organizaes que usam esse modelo,
aplicam-no de forma estritamente linear
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Modelo Seqencial Linear
modelo original, proposto por Royce, prev feedback
Atividades do Modelo Seqencial Linear
ANLISE E ENGENHARIA DE
SISTEMAS
envolve a coleta de requisitos em
nvel do sistema, pequena
quantidade de projeto e anlise
de alto nvel
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
viso essencial quando
o software deve fazer
interface com outros
elementos (hardware,
pessoas e banco de dados)
Atividades do Modelo Seqencial Linear
ANLISE DE REQUISITOS DE
SOFTWARE
processo de coleta dos requisitos
intensificado e concentrado
especificamente no software
deve-se compreender o domnio
da informao, a funo,
desempenho e interfaces
exigidos
os requisitos (para o sistema e para
o software) so documentados e
revistos com o cliente
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Modelo Seqencial Linear
PROJETO
traduo dos requisitos do software para
um conjunto de representaes que podem
ser avaliadas quanto qualidade, antes
que a codificao se inicie
se concentra em 4 atributos do
programa:
Estrutura de Dados,
Arquitetura de Software,
Detalhes Procedimentais e
Caracterizao de Interfaces
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Modelo Seqencial Linear
CODIFICAO
traduo das representaes
do projeto para uma
linguagem artificial
resultando em instrues
executveis pelo computador
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Modelo Seqencial Linear
TESTES
Concentram-se:
nos aspectos lgicos internos
do software, garantindo que
todas as instrues tenham
sido testadas
nos aspectos funcionais
externos, para descobrir
erros e garantir que a
entrada definida produza
resultados que concordem
com os esperados.
Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
Atividades do Modelo Seqencial Linear
MANUTENO
o software dever sofrer mudanas
depois que for entregue ao cliente


Engenharia de
Sistemas
Anlise de
Requisitos
Projeto
Codificao
Testes
Manuteno
causas das mudanas:
erros, adaptao do
software para acomodar
mudanas em seu
ambiente externo e
exigncia do cliente para
acrscimos funcionais e de
desempenho
Problemas com o Modelo Seqencial Linear
e projetos reais raramente seguem o fluxo seqencial que o
modelo prope
e logo no incio difcil estabelecer explicitamente todos os
requisitos. No comeo dos projetos sempre existe uma incerteza
natural
e o cliente deve ter pacincia. Uma verso executvel do software
s fica disponvel numa etapa avanada do desenvolvimento
e muitas vezes os desenvolvedores ficam ociosos
desnecessariamente, devido a estados bloqueadores (quando
existem tarefas dependentes, membros da equipe devem
aguardar que outros terminem)
Embora o Modelo Seqencial Linear ou
Ciclo de Vida Clssico tenha
fragilidades, ele significativamente
melhor do que uma abordagem casual
ao desenvolvimento de software
Modelo Seqencial Linear (comentrios)
Prototipao
+ processo que possibilita que o desenvolvedor crie
um modelo do software que deve ser construdo.
+ idealmente, o modelo (prottipo) serve como um
mecanismo para identificar os requisitos de
software.
+ apropriado para quando o cliente definiu um
conjunto de objetivos gerais para o software, mas
no identificou requisitos de entrada,
processamento e sada com detalhes.
Prototipao
construa/revise
prottipo
teste do
prottipo
pelo cliente
oua o
cliente
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Prototipao
Atividades da Prototipao
Obteno dos Requisitos:
desenvolvedor e cliente definem os
objetivos gerais do software,
identificam quais requisitos so
conhecidos e as reas que
necessitam de definies adicionais

Projeto Rpido: representao dos
aspectos do software que so
visveis ao usurio (abordagens de
entrada e formatos de sada)
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Construo Prottipo:
implementao rpida do
projeto

Avaliao do Prottipo:
cliente e desenvolvedor avaliam
o prottipo
Atividades da Prototipao
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Refinamento dos Requisitos:
cliente e desenvolvedor refinam
os requisitos do software a ser
desenvolvido.
Ocorre neste ponto um processo
de iterao que pode conduzir
1a. atividade at que as
necessidades do cliente sejam
satisfeitas e o desenvolvedor
compreenda o que precisa ser
feito.
Atividades da Prototipao
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Construo Produto:
identificados os requisitos, o
prottipo deve ser descartado e a
verso de produo deve ser
construda considerando os
critrios de qualidade.
Atividades da Prototipao
fim
incio
construo
produto
refinamento
prottipo
avaliao
prottipo
construo
prottipo
projeto
rpido
obteno
dos
requisitos
Problemas com a Prototipao
ecliente no sabe que o software que ele v no
considerou, durante o desenvolvimento, a
qualidade global e a manutenibilidade a longo
prazo. No aceita bem a idia de que a verso
final do software vai ser construda e "fora" a
utilizao do prottipo como produto final.

Problemas com a Prototipao
edesenvolvedor freqentemente faz uma
implementao comprometida (utilizando o que
est disponvel) com o objetivo de produzir
rapidamente um prottipo. Depois de um tempo
ele se familiariza com essas escolhas, e esquece
que elas no so apropriadas para o produto final.
Ainda que possam ocorrer problemas, a prototipao
um ciclo de vida eficiente -
A chave definirem-se as regras do jogo logo no
comeo -
O cliente e o desenvolvedor devem ambos concordar
que o prottipo seja construdo para servir como
um mecanismo a fim de definir os requisitos -
Prototipao (comentrios)
o modelo seqencial linear mas que enfatiza um
desenvolvimento extremamente rpido
A alta velocidade conseguida atravs de uma
abordagem de construo baseada em
componentes
Usado quando os requisitos so bem definidos e o
escopo do sistema restrito
Modelo RAD
(Rapid Application Development)
Modelo RAD
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
equipe # 3
equipe # 2
equipe # 1
60-90 dias
Atividades do Modelo RAD
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
Modelagem do negcio:
o fluxo de informao entre as funes do
negcio so modeladas de maneira a
responder s questes:
que informao dirige o processo do negcio?
que informao gerada?
quem gera a informao?
para onde a informao vai?
quem a processa?
Atividades do Modelo RAD
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
Modelagem dos dados:
o fluxo de informao definido na fase
anterior refinado em um conjunto de
objetos de dados que so necessrios
para dar suporte ao negcio; so
identificadas as caractersticas de
cada objeto e so definidos seus
relacionamentos
Atividades do Modelo RAD
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
Modelagem do processo:
os objetos de dados definidos so
transformados para se obter o fluxo
de informao necessrio para
implementar uma funo do negcio;
so criadas as descries dos
processamentos necessrios para
manipular esses objetos de dados
Atividades do Modelo RAD
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
Gerao da aplicao:
o modelo RAD assume o uso de
tcnicas de 4a. gerao; ao invs de
criar software de forma convencional,
reusa componentes quando possvel
ou cria componentes reutilizveis;
ferramentas automatizadas so
utilizadas para gerar software
Atividades do Modelo RAD
modelagem
do negcio
modelagem
dos dados
modelagem
do processo
gerao da
aplicao
teste e
modificao
Teste e modificao:
por reutilizar componentes, muitas
vezes eles j foram testados, o que
reduz o tempo de teste; os novos
componentes devem ser testados
e as interfaces devem ser
exercitadas
Modelo RAD
Quando usar?

> as restries de tempo impostas pelo projeto
demandam um escopo de escala

> quando a aplicao pode ser modularizada de forma
que cada grande funo possa ser completada em
menos de 3 meses

> cada grande funo pode ser alocada para uma
equipe distinta e, depois so integradas para formar
o todo
Problemas com o Modelo RAD

> para projetos escalveis, mas grandes, o RAD requer
recursos humanos suficientes para criar um nmero
adequado de equipes

> RAD requer um comprometimento entre
desenvolvedores e clientes para que as atividades
possam ser realizadas rapidamente e o sistema
seja concludo em um tempo abreviado

> se o comprometimento for abandonado por qualquer
das partes, o projeto falhar

> no apropriado quando os riscos so grandes
Modelos de Processo Evolucionrios
usado quando o deadline no adequado
para o desenvolvimento do software; a data
de trmino no realstica
uma verso limitada pode ser introduzida
para atender competitividade e presses do
negcio
so liberados produtos core
os detalhes e extenses ainda devem ser
definidos
Ex: editor de texto
Modelos de Processo Evolucionrios
- Incremental
- Espiral
- Montagem de Componentes
- Desenvolvimento Concorrente
Modelo Incremental
combina elementos do Modelo Linear com a
filosofia da Prototipao
aplica seqncias lineares numa abordagem de
saltos medida que o tempo progride
Cada seqncia linear produz um incremento do
software (proc. de texto)
O processo se repete at que um produto
completo seja produzido
Difere da Prototipao pois a cada incremento
produz uma verso operacional do software
Modelo Incremental
Engenharia de Sistemas /
Informao
Anlise
Projeto
Codificao
Testes
Anlise
Projeto
Codificao
Testes
Anlise
Projeto
Codificao
Testes
Anlise
Projeto
Codificao
Testes
incremento 1
incremento 2
incremento 3
incremento 4
produto liberado
do incremento 1
produto liberado
do incremento 2
produto liberado
do incremento 3
produto
liberado
do
incremento 4
tempo
Modelo Espiral
C engloba a natureza iterativa da Prototipao com os
aspectos sistemticos e controlados do Modelo Linear
C fornece o potencial para o desenvolvimento rpido de
verses incrementais do software
C nas primeiras iteraes a verso incremental pode ser um
modelo em papel ou um prottipo
C nas iteraes mais andiantadas so produzidas verses
incrementais mais completas e melhoradas
Modelo Espiral
Planejamento
Anlise de Risco
Engenharia
Construo e Release
Avaliao do Cliente
Comunicao com
o Cliente
Atividades do Modelo Espiral
Planejamento Anlise de Risco
Engenharia
Construo e Release
Avaliao do Cliente
Comunicao com
o Cliente
Comunicao com o cliente:
tarefas requeridas para estabelecer uma efetiva
comunicao entre desenvolvedor e cliente
Planejamento:
tarefas requeridas para definir recursos, referenciais
de tempo e outras informaes de projeto
Anlise de Risco:
tarefas requeridas para fazer levantamento de riscos tcnicos e de
gerenciamento
Engenharia:
tarefas requeridas para construir uma ou mais representaes da aplicao
Construo e Release:
tarefas requeridas para construir, testar, instalar e dar suporte ao usurio (p.ex., documentao e
treinamento)
Avaliao do cliente:
tarefas requeridas para obter um feedback do cliente baseado na avaliao da representao do
software criado durante a fase de engenharia e implementado durante a fase de instalao
, atualmente, a abordagem mais realstica para o
desenvolvimento de software em grande escala
usa uma abordagem que capacita o desenvolvedor e o
cliente a entender e reagir aos riscos em cada etapa
evolutiva
pode ser difcil convencer os clientes que uma
abordagem "evolutiva" controlvel
exige considervel experincia na determinao de
riscos e depende dessa experincia para ter sucesso
Modelo Espiral (comentrios)
o modelo relativamente novo e no tem
sido amplamente usado
Demorar muitos anos at que a eficcia desse
modelo possa ser determinada com certeza
absoluta.
Modelo Espiral (comentrios)
Modelo de Montagem de Componentes
C incorpora caractersticas de tecnologias Orientadas a
Objetos no Modelo Espiral
C a atividade de Engenharia comea com a identificao
de classes candidatas
C se a classe existe, ela ser reutilizada
C se a classe no existe, ela ser desenvolvida nos
moldes do paradigma de Orientao a Objetos
Modelo de Montagem de Componentes
Planejamento Anlise de Risco
Engenharia
Construo e Release
Avaliao do Cliente
Comunicao com
o Cliente
identificao de
componentes
candidatos
verifique
componentes
na biblioteca
extrair
componen
te quando
disponvel
construir
componente
quando no
disponvel
colocar novo
componenete
na biblioteca
construir
n-sima
iterao do
sistema
Modelo de Desenvolvimento Concorrente
C representado como uma srie de grandes atividades
tcnicas, tarefas e seus estados associados
C ele define uma srie de eventos que podem disparar
transies de um estado para outro, para cada uma das
atividades da engenharia de software
C freqentemente usado como um paradigma para o
desenvolvimento de aplicaes Cliente/Servidor
C pode ser aplicado a todo tipo de desenvolvimento de
software e fornece uma viso exata de como est o estado
do projeto
Modelo de Desenvolvimento Concorrente
none
sob
inspeo
sob
reviso
averiguado
realizado
aguardando
mudanas
em
desenvolvimento
Atividade de Anlise
Modelo de Mtodos Formais
Compreende um conjunto de atividades que determinam
uma especificao matemtica para o software
Uma variante dessa abordagem denominada Engenharia
de Software Cleanroon
Utilizando mtodos formais eliminam-se muitos problemas
encontrados nos outros modelos, como p.ex., ambigidade,
incompletitude e inconsistncia, que podem ser corrigidas
mais facilmente de forma no ad hoc mas atravs de
anlise matemtica
Promete o desenvolvimento de software livre de defeitos
Modelo de Mtodos Formais (comentrios)
Atualmente esse modelo consome muito
tempo e muito caro
Como poucos desenvolvedores possuem o
background necessrio para utiliz-lo, so
requeridos muitos cursos e treinamentos
difcil usar tais modelos como meio de
comunicao com a maioria dos clientes
Tcnicas de 4
a
Gerao
Concentra-se na capacidade de se especificar o
software a uma mquina em um nvel que esteja
prximo linguagem natural.

Engloba um conjunto de ferramentas de software
que possibilitam que:
= o sistema seja especificado em uma
linguagem de alto nvel e
=o cdigo fonte seja gerado automaticamente a
partir dessas especificaes
Obteno dos
Requisitos
Estratgia do
Projeto
Implementao
usando 4GL
Testes
Tcnicas de 4
a
Gerao
Ferramentas do ambiente de
desenvolvimento de software de 4GL
O ambiente de desenvolvimento de software que sustenta o ciclo
de vida de 4
a
gerao inclui as ferramentas:
- linguagens no procedimentais para consulta de
banco de dados
- gerao de relatrios
- manipulao de dados
- interao e definio de telas
- gerao de cdigos
- capacidade grfica de alto nvel
- capacidade de planilhas eletrnicas
Atividades das Tcnicas de 4
a
Gerao
1. obteno dos Requisitos:
o cliente descreve os requisitos
os quais so traduzidos para um
prottipo operacional
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
Eo cliente pode estar inseguro quanto aos requisitos
Eo cliente pode ser incapaz de especificar as informaes de
um modo que uma ferramenta 4GL possa consumir
Eas 4GLs atuais no so sofisticadas suficientemente para
acomodar a verdadeira "linguagem natural"
2. estratgia de "Projeto":
para pequenas aplicaes
possvel mover-se do passo de
Obteno dos Requisitos para o
passo de Implementao usando
uma Linguagem de 4G
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
Atividades das Tcnicas de 4
a
Gerao
Epara grandes projetos necessrio desenvolver uma
estratgia de projeto. De outro modo ocorrero os mesmos
problemas encontrados quando se usa abordagem
convencional (baixa qualidade)
3. implementao usando
4GL: os resultados desejados
so representados de modo que
haja gerao automtica de
cdigo . Deve existir uma
estrutura de dados com
informaes relevantes e que
seja acessvel pela 4GL
Atividades das Tcnicas de 4
a
Gerao
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
Atividades das Tcnicas de 4
a
Gerao
Obteno dos
Requisitos
Estratgia do
Projeto
Implementa
o usando 4GL
Testes
4. teste: o desenvolvedor
deve efetuar testes e
desenvolver uma
documentao significativa.
O software desenvolvido
deve ser construdo de
maneira que a manuteno
possa ser efetuada
prontamente.
PROPONENTES: reduo dramtica no tempo de
desenvolvimento do software (aumento de
produtividade)
OPONENTES: as 4GL atuais no so mais fceis de
usar do que as linguagens de programao
e o cdigo fonte produzido ineficiente
e a manutenibilidade de sistemas usando tcnicas 4G
ainda questionvel
Tcnicas de 4
a
Gerao (comentrios)
Concluso
ENGENHARIA DE SOFTWARE
pode ser vista como uma abordagem de
desenvolvimento de software elaborada
com disciplina e mtodos bem definidos.


.....a construo por mltiplas pessoas de um
software de mltiplas verses [Parnas 1987]