apostila prototipacao

41
 Slide 1 UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Protot ipão de Soft ware Engenharia de Software 2o. Semestre de 2005

Upload: evertonpmp

Post on 08-Jul-2015

250 views

Category:

Documents


0 download

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.

5/9/2018 apostila prototipacao - slidepdf.com

http://slidepdf.com/reader/full/apostila-prototipacao 41/41

Slide 41