Você está na página 1de 41

Slide 1

UNIVERSIDADE ESTADUAL PAULISTA


INSTITUTO DE BIOCINCIAS, LETRAS E CINCIAS EXATAS
DEPARTAMENTO DE CINCIAS DE COMPUTAO E ESTATSTICA
Prototipao de Software
Engenharia de Software
2o. Semestre de 2005
Slide 2
Prototipao de Software
Desenvolvimento rpido de software para
validar os requisitos.
Slide 3
Objetivos
Compreender o papel da prototipao em
diferentes tipos de projetos de desenvolvimento.
Discutir a prototipao evolucionria e a
prototipao descartvel.
Introduzir trs diferentes tcnicas de
prototipao.
Explicar a tcnica de prototipao no
desenvolvimento de interface com o usurio
Slide 4
Tpicos abordados
Prototipao no processo de software
Tcnicas de prototipao rpida
Prototipao de interface com o usurio
Slide 5
Prototipao de sistema
Prototipao o desenvolvimento rpido de um
sistema.
No passado, prottipo tinha a finalidade
exclusiva de avaliar os requisitos, assim o
desenvolvimento tradicional era necessrio.
Atualmente , os limites entre a prototipao e o
desenvolvimento normal do sistema, muitas
vezes, so indefinidos e muitos sistemas so
desenvolvidos usando uma abordagem
evolucionria.
Slide 6
Usos de prottipos de sistemas
O principal uso ajudar os clientes e
desenvolvedores entender os requisitos para o
sistema.
Levantamento de requisitos. Usurios podem experimentar o
prottipo para ver como o sistema pode apoiar o seu trabalho
Validao de requisitos. O prottipo pode revelar erros e
omisses nos requisitos.
A prototipao pode ser considerada como uma
atividade de reduo de riscos que reduz os
riscos nos requisitos.
Slide 7
Benefcios da prototipao
Equvocos entre os usurios de software e
desenvolvedores so expostos.
Servios esquecidos podem ser detectados e
servios confusos podem ser identificados.
Um sistema funcionando est disponvel nos
primeiros estgios no processo de
desenvolvimento.
O prottipo pode servir como uma base para
derivar uma especificao do sistema com
qualidade de produo.
O prottipo pode ser usado para treinamento do
usurio e teste de sistema.
Slide 8
Processo de desenvolvimento de
prottipo
Estabelecer
objetivos do
prottipo
Estabelecer
objetivos do
prottipo
Definir a
funcionalidade
do prottipo
Definir a
funcionalidade
do prottipo
Desenvolver
o prottipo
Desenvolver
o prottipo
Avaliar o
prottipo
Avaliar o
prottipo
Definio
geral
Definio
geral
Plano de
prototipao
Plano de
prototipao
Prottipo
executvel
Prottipo
executvel
Relatrio
de avaliao
Relatrio
de avaliao
Slide 9
Benefcios da prototipao
Melhoria na facilidade de uso do sistema;
Maior aproximao do sistema com as
necessidades dos usurios;
Melhoria da qualidade do projeto;
Melhoria na facilidade de manuteno, e
Reduo no esforo de desenvolvimento
Slide 10
Prototipao no processo de
software
Prototipao evolucionria
Uma abordagem para o desenvolvimento do sistema onde um
prottipo inicial produzido e refinado atravs de vrios
estgios at atingir o sistema final.
Prototipao descartvel
Um prottipo o qual usualmente uma implementao prtica
do sistema produzida para ajudar a levantar os problemas
com os requisitos e depois descartado. O sistema ento
desenvolvido usando algum outro processo de
desenvolvimento.
Slide 11
Objetivos da prototipao
O objetivo da prototipao evolucionria
fornecer aos usurios finais um sistema
funcinando. O desenvolvimento comea com
aqueles requisitos que so melhores
compreendidos.
O objetivo da prototipao descartvel validar
ou derivar os requisitos do sistema. O processo
de prototipao comea com aqueles requisitos
que no so bem compreendidos.
Slide 12
Abordagens de prototipao
Prototipao
evolucionria
Prototipao
evolucionria
Sistema entregue
Sistema entregue
Esboar
requisitos
Esboar
requisitos
Prototipao
descartvel
Prototipao
descartvel
Prottipo executvel +
especificao do sistema
Prottipo executvel +
especificao do sistema
Slide 13
Prototipao evolucionria
Deve ser usada para sistemas onde a
especificao no pode ser desenvolvida priori,
como por exemplo, os sistema de IA e os
sistemas de interface com o usurio
Baseada em tcnicas que permitem interaes
rpidas para o desenvolvimento de aplicaes.
Verificao impossvel uma vez que no exise
especificao. A validao significa demonstrar a
adequao do sistema.
Slide 14
Prototipao evolucionria
Desenvolver
especificao abstrata
Desenvolver
especificao abstrata
Construir sistema
prottipo
Construir sistema
prottipo
Utilizar
sistema prottipo
Utilizar
sistema prottipo
Entregar
sistema
Entregar
sistema
Sisema
adequado
NO
SIM
Slide 15
Vantagens da prototipao
evolucionria
Rpido fornecimento do sistema
Em alguns casos, o rpido fornecimento e a facilidade de uso
so mais importantes do que os detalhes de funcionalidade ou
a facilidade de manuteno de software a longo prazo.
Compromisso do usurio com o sistema
O envolvimento do usurio com o sistema significa maior
possibilidade de atender aos seus requisitos e um maior
empenho para que o sistema funcione de acordo.
Slide 16
Prototipao Evolucionria
O processo de especificao, projeto e
implementao so intercalados.
O sistema desenvolvido em uma srie de
estgios que so entregues ao cliente.
Tcnicas para o desenvolvimento rpido de
sistemas, tais como ferramentas CASE e
linguagens de 4a. Gerao, so utilizadas.
As interfaces com o usurio do sistema so
usualmente desenvolvidas utilizando-se um
sistema de desenvolvimento interativo (Lote de
ferramentas GUI)
Slide 17
Problemas com prototipao
evolucionria
Problemas de gerenciamento
Processos de gerenciamento existentes assumem o modelo de
desenvolvimento cascata.
Habilidades especialistas so necessrias e podem no estar
disponvel na equipe de desenvolvimento
Problemas de manuteno
A continuidade de mudanas tende a corromper a estrutura do
prottipo do sistema, assim a manuteno a longo prazo pode
ser cara.
Problemas contratuais
Os contratos so, geralmente, estabelecidos baseados em uma
especificao completa do software.
Slide 18
Prottipos como especificaes
Algumas partes dos requisitos (por ex. funes
crticas com relao segurana) so difceis de
aparecerem em prottipos, assim acabam no
aparecendo na especificao.
Uma implementao no tem valor legal de
contrato.
Requisitos no funcionais no podem ser
testados adequadamente em um prottipo do
sistema.
Slide 19
Desenvolvimento incremental
O sistema desenvolvido e liberado em incrementos
aps estabelecer uma arquitetura global.
Requisitos e especificaes para cada incremento
podem ser desenvolvidos.
Usurios podem avaliar os incrementos liberados
enquanto outros esto sendo desenvolvidos. Portanto,
esse serve como uma forma de sistema prottipo.
O desenvolvimento incremental combina as vantagens
da prototipao evolucionria com um processo de
desenvolvimento mais fcil de ser gerenciado e uma
melhor estruturao do sistema.
Slide 20
Um processo de desenvolvimento
incremental
Definir entregas
de sistema
Definir entregas
de sistema
Projetar arquitetura
de sistema
Projetar arquitetura
de sistema
Sistema
completo
Entregar
sistema final
Entregar
sistema final
Especificar
aumento do sistema
Especificar
aumento do sistema
Construir
aumento do sistema
Construir
aumento do sistema
Validar
aumento
Validar
aumento
NO
Integrar
aumento
Integrar
aumento
Validar
sistema
Validar
sistema
SIM
Slide 21
Prototipao descartvel
Usada para reduzir os riscos com os requisitos.
O prottipo desenvolvido de uma especificao
inicial, entregue para avaliao e ento
descartado.
O prottipo descartvel NO deve ser
considerado como um sistema final.
Caractersticas importantes podem ter sido excludas do
prottipo.
No existe especificao para manuteno futura
O sistema ser mal estruturado e difcil de manter.
Slide 22
Processo de software com
prototipao descartvel
Esboar
requisitos
Esboar
requisitos
Desenvolver
software
Desenvolver
software
Desenvolver
prottipo
Desenvolver
prottipo
Avaliar
prottipo
Avaliar
prottipo
Especificar
sistema
Especificar
sistema
Validar
sistema
Validar
sistema
Sistema de
software
entregue
Sistema de
software
entregue
Componentes
reutilizveis
Slide 23
Prottipos descartveis liberveis
Desenvolvedores podem ser pressionados a
entregar um prottipo descartvel como um
produto final
Isso no recomendado
Pode ser impossvel ajustar o prottipo para atender os
requisitos no funcionais.
O prottipo inevitavelmente no documentado e isso ruim
para a manuteno a longo prazo.
A s mudanas feitas durante o desenvolvimento do prottipo
provavelmente tero degradado a estrutura do sistema.
Os padres de qualidade organizacional so, normalmente,
deixados de lado no desenvolvimento do prottipo.
Slide 24
Tcnicas de prototipao rpida
Vrias tcnicas podem ser usadas para o
desenvolvimento de prottipos
Desenvolvimento com linguagem dinmica de alto nvel
Programao de banco de dados
Montagem de componentes e aplicaes
Essas tcnicas no so exclusivas - so muitas
vezes utilizadas em conjunto.
Programao visual uma parte inerente da
maioria dos sistemas de desenvolvimento de
prottipos.
Slide 25
Linguagens dinmicas de alto-
nvel
So linguagens que incluem poderosos recursos
de gerenciamento de dados em run-time.
Necessitam de um grande sistema de suporte de
run-time. Assim, no eram largamente usadas
para o desenvolvimento de grandes sistemas.
Algumas linguagens oferecem excelentes
facilidades de desenvolvimento de interface com
o usurio
Algumas linguagens tem um ambiente de
suporte integrado cujas faciliades podem ser
usadas no prottipo.
Slide 26
Linguagens de alto nvel para
prototipao
Linguagem Tipo Domnio de
aplicao
Smaltalk Orientada a
objetos
Sistemas
interativos
Java Orientada a
objetos
Sistemas
interativos
Prolog Lgica Processamento
simblico
LISP Com base em
listas
Processamento
simblico
Slide 27
Escolha da linguagem de
prototipao
Qual o domnio de aplicao do problema?
Que tipo de interao com o usurio
necessrio?
Qual ambiente de suporte vem com a
linguagem?
Diferentes partes do sistema podem ser
programados em diferentes linguagens.
Contudo, pode haver problemas com a
comunicao entre as linguagens.
Slide 28
Linguagens de programao de
banco de dados
Linguagens especficas ao domnio de sistemas de
negcios que envolve a manipulao de dados a partir
de um banco de dados.
Normalmente inclui uma linguagem de consulta de banco
de dados, um gerador de interface, um gerador de
relatrios e uma planilha de clculos.
A linguagem + ambiente conhecido como uma
linguagem de quarta gerao (4GL)
So adequadas para sistemas de negcios de tamanho
pequeno ou mdio.
Slide 29
Componentes de linguagens de
quarta gerao
Gerador de
interface
Gerador de
interface
Planilha de
clculo
Planilha de
clculo
Linguagem de
programao de
BD
Linguagem de
programao de
BD
Sistema de gerenciamento de dados
Sistema de gerenciamento de dados
Gerador de
relatrio
Gerador de
relatrio
Linguagem de quarta gerao
Slide 30
Montagem de componentes e
aplicaes
Prottipos podem ser construdos rapidamente
atravs de um conjunto de componentes
reutilizveis e um mecanismo para compor esses
componentes.
O mecanismo de composio deve incluir
facilidades de controle e um mecanismo para
comunicao de componentes.
A prototipao com componentes reutilizveis
envolve desenvolver uma especificao que leva
em conta a disponibilidade e funcionalidade de
componentes existentes.
Slide 31
Prototipao com reuso
Desenvolvimento a nvel de aplicaes
Sistemas inteiros so integrados com o prottipo , de modo que
sua funcionalidade pode ser compartilhada.
Por exemplo, se a capacidade de edio de texto necessria,
um sistema padro de edio de texto pode ser integrado.
Desenvolvimento a nvel de componentes
Componentes individuais so integrados dentro de um
framework-padro a fim de implementar o sistema
Framework pode ser uma linguagem de scripting (Visual Basic
ou Perl) ou um framework de integrao (CORBA ou
JavaBeans)
Slide 32
Composio de componentes
reutilizveis
Componentes
de software
reutilizveis
Componentes
de software
reutilizveis
Framework de
composio de
componentes
Framework de
composio de
componentes
Prottipo
Executvel
Prottipo
Executvel
Cdigo de controle
e integrao
Cdigo de controle
e integrao
Slide 33
Documentos compostos
Para algumas aplicaes, um prottipo pode ser criado
por desenvolver um documento composto.
Isso um documento com elementos ativos (tal como
uma planilha de clculo) que permite funcionalidade ao
usurio.
Cada elemento ativo est associado a um aplicativo, que
chamado quando aquele elemento selecionado.
O prprio documento o integrador para diferentes
aplicaes.
Slide 34
Vinculao de aplicativos.
Compound document
Word processor Spreadsheet
Audio player
Text 1 Text 2 Text 3
Text 4 Text 5
Table 1
Table 2
Sound 1
Sound 2
Planilha de clculo Processador de texto Reprodutor de udio
Slide 35
Programao Visual com Reuso
Linguagens de scripting como o visual basic
apoiam a programao visual, onde o prottipo
desenvolvido atravs da criao de interface
com o usurio a partir de itens padres (telas,
campos, botes e menus) e a associao de
componentes esses itens.
Uma grande biblioteca de componentes existe
para suportar esse tipo de desenvolvimento.
Slide 36
Programao visual com reuso
File Edit Views Layout Options Help
General
Index
Hypertext
display component
Date component
Range checking
script
Tree display
component
12th January 2000
3.876
Draw canvas
component
User prompt
component +
script
Slide 37
Problemas com o desenvolvimento
visual
Dificuldade de coordenar desenvolvimento em
equipe.
No existe uma arquitetura explcita do sistema.
Dependncias complexas entre partes do
programa podem causar problemas com a
manuteno do sistema.
Slide 38
Prototipao de interface com o
usurio
Os projetistas no devem opinar a respeito de uma
interface com o usurio que seja aceitvel. A
prototipao essencial nesse caso.
O desenvolvimento de IU consome uma parte
substancial dos custos de desenvolvimento de
aplicaes.
Os geradores de interface podem ser utilizados para
projetar a interface e sua funcionalidade pode ser obtida
atravs de componentes associados com as entidades
da interface. (menus, campos, botes, etc.)
Interfaces web podem ser prototipadas atravs do uso de
um editor de pginas web.
Slide 39
Pontos-chave
Um prottipo de sistema pode ser usado para dar aos
usurios finais uma impresso concreta das capacidades
desse sistema.
A prototipao est se tornando cada vez mais comum
para o desenvolvimento de sistema onde o
desenvolvimento rpido essencial.
Prottipos descartveis so usados para a compreenso
dos requisitos do sistema.
Na prototipao evolucionria, o sistema desenvolvido
pela evoluo de uma verso inicial em uma verso final
do sistema.
Slide 40
Pontos-chave
O desenvolvimento rpido importante na prototipao
de sistemas. Isso pode levar excluso de algumas
funcionalidades do sistema ou na diminuio dos
requisitos no funcionais.
Entre as tcnicas de prototipao esto o uso de
linguagens de nvel muito elevado, a programao de
bando de dados e a construo de prottipos a partir de
componentes reutilizveis.
A prototipao essencial para o desenvolvimento de
interfaces com o usurio, as quais so difceis de serem
especificadas usando um modelo esttico. Os usurios
deveriam estar envolvidos na avaliao e na evoluo do
prottipo.
Slide 41

Você também pode gostar