apostila prototipacao
TRANSCRIPT
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 1/41Slide 1
UNIVERSIDADE ESTADUAL PAULISTAINSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATASDEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA
Prototipação de Software
Engenharia de Software
2o. Semestre de 2005
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 2/41Slide 2
Prototipação de Software● Desenvolvimento rápido de software para
validar os requisitos.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 3/41Slide 3
Objetivos● Compreender o papel da prototipação em
diferentes tipos de projetos de desenvolvimento.● Discutir a prototipação evolucionária e a
prototipação descartável.
● Introduzir três diferentes técnicas deprototipação.
● Explicar a técnica de prototipação nodesenvolvimento de interface com o usuário
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 4/41Slide 4
Tópicos abordados● Prototipação no processo de software
● Técnicas de prototipação rápida● Prototipação de interface com o usuário
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 5/41Slide 5
Prototipação de sistema● Prototipação é o desenvolvimento rápido de um
sistema.● No passado, protótipo tinha a finalidade
exclusiva de avaliar os requisitos, assim o
desenvolvimento tradicional era necessário.● Atualmente , os limites entre a prototipação e o
desenvolvimento normal do sistema, muitas
vezes, são indefinidos e muitos sistemas sãodesenvolvidos usando uma abordagemevolucionária.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 6/41Slide 6
Usos de protótipos de sistemas● O principal uso é ajudar os clientes e
desenvolvedores entender os requisitos para osistema.• Levantamento de requisitos. Usuários podem experimentar o
protótipo para ver como o sistema pode apoiar o seu trabalho• Validação de requisitos. O protótipo pode revelar erros eomissões nos requisitos.
●
A prototipação pode ser considerada como umaatividade de redução de riscos que reduz osriscos nos requisitos.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 7/41Slide 7
Benefícios da prototipação● Equívocos entre os usuários de software e
desenvolvedores são expostos.● Serviços esquecidos podem ser detectados e
serviços confusos podem ser identificados.● Um sistema funcionando está disponível nos
primeiros estágios no processo dedesenvolvimento.
● O protótipo pode servir como uma base paraderivar uma especificação do sistema comqualidade de produção.
● O protótipo pode ser usado para treinamento dousuário e teste de sistema.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 8/41Slide 8
Processo de desenvolvimento de
protótipo
Estabelecer objetivos do protótipo
Estabelecer objetivos do protótipo
Definir afuncionalidade
do protótipo
Definir afuncionalidade
do protótipo
Desenvolver o protótipo
Desenvolver o protótipo
Avaliar o protótipo
Avaliar o protótipo
Definição
geral
Definiçãogeral
Plano de
prototipação
Plano de prototipação
Protótipo
executável
Protótipoexecutável
Relatório
de avaliação
Relatóriode avaliação
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 9/41Slide 9
Benefícios da prototipação● Melhoria na facilidade de uso do sistema;
● Maior aproximação do sistema com asnecessidades dos usuários;
● Melhoria da qualidade do projeto;
● Melhoria na facilidade de manutenção, e
● Redução no esforço de desenvolvimento
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 10/41
Slide 10
Prototipação no processo de
software● Prototipação evolucionária
• Uma abordagem para o desenvolvimento do sistema onde umprotótipo inicial é produzido e refinado através de váriosestágios até atingir o sistema final.
● Prototipação descartável• Um protótipo o qual é usualmente uma implementação prática
do sistema é produzida para ajudar a levantar os problemascom os requisitos e depois descartado. O sistema é então
desenvolvido usando algum outro processo dedesenvolvimento.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 11/41
Slide 11
Objetivos da prototipação● O objetivo da prototipação evolucionária é
fornecer aos usuários finais um sistemafuncinando. O desenvolvimento começa comaqueles requisitos que são melhores
compreendidos.● O objetivo da prototipação descartável é validar
ou derivar os requisitos do sistema. O processode prototipação começa com aqueles requisitosque não são bem compreendidos.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 12/41
Slide 12
Abordagens de prototipação
Prototipaçãoevolucionária
Prototipaçãoevolucionária Sistema entregueSistema entregue
Esboçar requisitosEsboçar requisitos
Prototipaçãodescartável
Prototipaçãodescartável
Protótipo executável +especificação do sistema
Protótipo executável +especificação do sistema
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 13/41
Slide 13
Prototipação evolucionária● Deve ser usada para sistemas onde a
especificação não pode ser desenvolvida à priori,como por exemplo, os sistema de IA e ossistemas de interface com o usuário
● Baseada em técnicas que permitem interaçõesrápidas para o desenvolvimento de aplicações.
●
Verificação é impossível uma vez que não exiseespecificação. A validação significa demonstrar aadequação do sistema.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 14/41
Slide 14
Prototipação evolucionária
Desenvolver especificação abstrata
Desenvolver especificação abstrata
Construir sistema protótipo
Construir sistema protótipo
Utilizar sistema protótipo
Utilizar sistema protótipo
Entregar
sistema
Entregar
sistema
Sisema
adequado
NÃOSIM
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 15/41
Slide 15
Vantagens da prototipação
evolucionária● Rápido fornecimento do sistema
• Em alguns casos, o rápido fornecimento e a facilidade de usosão mais importantes do que os detalhes de funcionalidade oua facilidade de manutenção de software a longo prazo.
● Compromisso do usuário com o sistema• O envolvimento do usuário com o sistema significa maior
possibilidade de atender aos seus requisitos e um maior empenho para que o sistema funcione de acordo.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 16/41
Slide 16
Prototipação Evolucionária● O processo de especificação, projeto e
implementação são intercalados.● O sistema é desenvolvido em uma série de
estágios que são entregues ao cliente.
● Técnicas para o desenvolvimento rápido desistemas, tais como ferramentas CASE e
linguagens de 4a. Geração, são utilizadas.● As interfaces com o usuário do sistema são
usualmente desenvolvidas utilizando-se um
sistema de desenvolvimento interativo (Lote deferramentas GUI)
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 17/41
Slide 17
Problemas com prototipação
evolucionária● Problemas de gerenciamento
• Processos de gerenciamento existentes assumem o modelo de
desenvolvimento cascata.• Habilidades especialistas são necessárias e podem não estar disponível na equipe de desenvolvimento
●
Problemas de manutenção• A continuidade de mudanças tende a corromper a estrutura doprotótipo do sistema, assim a manutenção a longo prazo podeser cara.
● Problemas contratuais• Os contratos são, geralmente, estabelecidos baseados em uma
especificação completa do software.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 18/41
Slide 18
Protótipos como especificações● Algumas partes dos requisitos (por ex. funções
críticas com relação à segurança) são difíceis deaparecerem em protótipos, assim acabam nãoaparecendo na especificação.
● Uma implementação não tem valor legal decontrato.
●
Requisitos não funcionais não podem ser testados adequadamente em um protótipo dosistema.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 19/41
Slide 19
Desenvolvimento incremental● O sistema é desenvolvido e liberado em incrementos
após estabelecer uma arquitetura global.
● Requisitos e especificações para cada incrementopodem ser desenvolvidos.
●
Usuários podem avaliar os incrementos liberadosenquanto outros estão sendo desenvolvidos. Portanto,esse serve como uma forma de sistema protótipo.
● O desenvolvimento incremental combina as vantagensda prototipação evolucionária com um processo dedesenvolvimento mais fácil de ser gerenciado e umamelhor estruturação do sistema.
U d d l i t
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 20/41
Slide 20
Um processo de desenvolvimento
incrementalDefinir entregas
de sistema
Definir entregasde sistema
Projetar arquiteturade sistema
Projetar arquitetura
de sistema
SistemacompletoEntregar
sistema final
Entregar sistema final
Especificar aumento do sistema
Especificar
aumento do sistemaConstruir
aumento do sistema
Construir
aumento do sistemaValidar aumento
Validar
aumento
NÃO
Integrar aumento
Integrar aumento
Validar sistema
Validar sistema
SIM
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 21/41
Slide 21
Prototipação descartável● Usada para reduzir os riscos com os requisitos.
● O protótipo é desenvolvido de uma especificaçãoinicial, entregue para avaliação e entãodescartado.
● O protótipo descartável NÃO deve ser considerado como um sistema final.• Características importantes podem ter sido excluídas do
protótipo.• Não existe especificação para manutenção futura
• O sistema será mal estruturado e difícil de manter.
Processo de software com
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 22/41
Slide 22
Processo de software com
prototipação descartável
Esboçar requisitos
Esboçar requisitos
Desenvolver
software
Desenvolver
software
Desenvolver protótipo
Desenvolver protótipo Avaliar protótipo
Avaliar protótipo Especificar sistema
Especificar sistema
Validar
sistema
Validar
sistema
Sistema de
softwareentregue
Sistema de
softwareentregue
Componentes
reutilizáveis
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 23/41
Slide 23
Protótipos descartáveis liberáveis● Desenvolvedores podem ser pressionados a
entregar um protótipo descartável como umproduto final
● Isso não é recomendado• Pode ser impossível ajustar o protótipo para atender os
requisitos não funcionais.
• O protótipo é inevitavelmente não documentado e isso é ruimpara a manutenção a longo prazo.
• A s mudanças feitas durante o desenvolvimento do protótipoprovavelmente terão degradado a estrutura do sistema.
• Os padrões de qualidade organizacional são, normalmente,
deixados de lado no desenvolvimento do protótipo.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 24/41
Slide 24
Técnicas de prototipação rápida● Várias técnicas podem ser usadas para o
desenvolvimento de protótipos• Desenvolvimento com linguagem dinâmica de alto nível
• Programação de banco de dados
• Montagem de componentes e aplicações
● Essas técnicas não são exclusivas - são muitasvezes utilizadas em conjunto.
● Programação visual é uma parte inerente damaioria dos sistemas de desenvolvimento deprotótipos.
Linguagens dinâmicas de alto
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 25/41
Slide 25
Linguagens dinâmicas de alto-
nível● São linguagens que incluem poderosos recursos
de gerenciamento de dados em run-time.
● Necessitam de um grande sistema de suporte derun-time. Assim, não eram largamente usadaspara o desenvolvimento de grandes sistemas.
● Algumas linguagens oferecem excelentesfacilidades de desenvolvimento de interface com
o usuário● Algumas linguagens tem um ambiente de
suporte integrado cujas faciliades podem ser
usadas no protótipo.
Linguagens de alto nível para
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 26/41
Slide 26
Linguagens de alto nível para
prototipaçãoLinguagem Tipo Domínio de
aplicaçãoSmaltalk Orientada a
objetosSistemasinterativos
Java Orientada aobjetos
Sistemasinterativos
Prolog Lógica Processamentosimbólico
LISP Com base emlistas
Processamentosimbólico
Escolha da linguagem de
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 27/41
Slide 27
Escolha da linguagem de
prototipação● Qual é o domínio de aplicação do problema?
● Que tipo de interação com o usuário énecessário?
● Qual ambiente de suporte vem com alinguagem?
● Diferentes partes do sistema podem ser
programados em diferentes linguagens.Contudo, pode haver problemas com acomunicação entre as linguagens.
Linguagens de programação de
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 28/41
Slide 28
Linguagens de programação de
banco de dados● Linguagens específicas ao domínio de sistemas de
negócios que envolve a manipulação de dados a partir de um banco de dados.
● Normalmente inclui uma linguagem de consulta de bancode dados, um gerador de interface, um gerador derelatórios e uma planilha de cálculos.
● A linguagem + ambiente é conhecido como umalinguagem de quarta geração (4GL)
● São adequadas para sistemas de negócios de tamanhopequeno ou médio.
Componentes de linguagens de
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 29/41
Slide 29
Componentes de linguagens de
quarta geração
Gerador deinterface
Gerador de
interfacePlanilha de
cálculo
Planilha de
cálculo
Linguagem de programação de
BD
Linguagem de programação de
BD
Sistema de gerenciamento de dadosSistema de gerenciamento de dados
Gerador de
relatório
Gerador de
relatório
Linguagem de quarta geração
Montagem de componentes e
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 30/41
Slide 30
Montagem de componentes e
aplicações● Protótipos podem ser construídos rapidamente
através de um conjunto de componentes
reutilizáveis e um mecanismo para compor essescomponentes.
● O mecanismo de composição deve incluir facilidades de controle e um mecanismo paracomunicação de componentes.
● A prototipação com componentes reutilizáveisenvolve desenvolver uma especificação que levaem conta a disponibilidade e funcionalidade de
componentes existentes.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 31/41
Slide 31
Prototipação com reuso● Desenvolvimento a nível de aplicações
• Sistemas inteiros são integrados com o protótipo , de modo quesua funcionalidade pode ser compartilhada.
• Por exemplo, se a capacidade de edição de texto é necessária,um sistema padrão de edição de texto pode ser integrado.
● Desenvolvimento a nível de componentes• Componentes individuais são integrados dentro de um
framework -padrão a fim de implementar o sistema
• Framework pode ser uma linguagem de scripting (Visual Basicou Perl) ou um framework de integração (CORBA ouJavaBeans)
Composição de componentes
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 32/41
Slide 32
Composição de componentes
reutilizáveis
Componentesde softwarereutilizáveis
Componentesde softwarereutilizáveis
Framework decomposição decomponentes
Framework decomposição decomponentes
ProtótipoExecutável
ProtótipoExecutável
Código de controlee integração
Código de controle
e integração
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 33/41
Slide 33
Documentos compostos● Para algumas aplicações, um protótipo pode ser criado
por desenvolver um documento composto.
● Isso é um documento com elementos ativos (tal comouma planilha de cálculo) que permite funcionalidade aousuário.
● Cada elemento ativo está associado a um aplicativo, queé chamado quando aquele elemento é selecionado.
● O próprio documento é o integrador para diferentesaplicações.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 34/41
Slide 34
Vinculação 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 cálculoProcessador de texto Reprodutor de áudio
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 35/41
Slide 35
Programação Visual com Reuso● Linguagens de scripting como o visual basic
apoiam a programação visual, onde o protótipo édesenvolvido através da criação de interfacecom o usuário a partir de itens padrões (telas,
campos, botões e menus) e a associação decomponentes à esses itens.
● Uma grande biblioteca de componentes existe
para suportar esse tipo de desenvolvimento.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 36/41
Slide 36
Programação visual com reuso
File Edit Views Layout Options Help
GeneralIndex
Hypertextdisplay componentDate component
Range checkingscript
Tree displaycomponent
12th January 2000
3.876
Draw canvascomponent
User promptcomponent +
script
Problemas com o desenvolvimento
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 37/41
Slide 37
Problemas com o desenvolvimento
visual
● Dificuldade de coordenar desenvolvimento em
equipe.● Não existe uma arquitetura explícita do sistema.
● Dependências complexas entre partes do
programa podem causar problemas com amanutenção do sistema.
Prototipação de interface com o
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 38/41
Slide 38
p ç
usuário
● Os projetistas não devem opinar a respeito de umainterface com o usuário que seja aceitável. Aprototipação é essencial nesse caso.
● O desenvolvimento de IU consome uma partesubstancial dos custos de desenvolvimento de
aplicações.● Os geradores de interface podem ser utilizados para
projetar a interface e sua funcionalidade pode ser obtida
através de componentes associados com as entidadesda interface. (menus, campos, botões, etc.)
● Interfaces web podem ser prototipadas através do uso de
um editor de páginas web.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 39/41
Slide 39
Pontos-chave
● Um protótipo de sistema pode ser usado para dar aosusuários finais uma impressão concreta das capacidadesdesse sistema.
● A prototipação está se tornando cada vez mais comumpara o desenvolvimento de sistema onde o
desenvolvimento rápido é essencial.● Protótipos descartáveis são usados para a compreensão
dos requisitos do sistema.
● Na prototipação evolucionária, o sistema é desenvolvidopela evolução de uma versão inicial em uma versão finaldo sistema.
5/9/2018 apostila prototipacao - slidepdf.com
http://slidepdf.com/reader/full/apostila-prototipacao 40/41
Slide 40
Pontos-chave
● O desenvolvimento rápido é importante na prototipaçãode sistemas. Isso pode levar à exclusão de algumas
funcionalidades do sistema ou na diminuição dosrequisitos não funcionais.
● Entre as técnicas de prototipação estão o uso de
linguagens de nível muito elevado, a programação debando de dados e a construção de protótipos a partir decomponentes reutilizáveis.
● A prototipação é essencial para o desenvolvimento de
interfaces com o usuário, as quais são difíceis de seremespecificadas usando um modelo estático. Os usuáriosdeveriam estar envolvidos na avaliação e na evolução do
protótipo.