• Nenhum resultado encontrado

ES 08 - Prototipação de Software

N/A
N/A
Protected

Academic year: 2021

Share "ES 08 - Prototipação de Software"

Copied!
32
0
0

Texto

(1)

Prototipação de Software

Prototipação de Software

(2)

Prototipação de Software

Agenda

Introdução

Prototipação no processo de softwareTécnicas de prototipação rápida

Prototipação de interface com o sistemaBibliografia

(3)

Prototipação de Software

Introdução

Objetivos

 Explicar o papel da prototipação em diferentes tipos de projetos de

desenvolvimento

 Explicar a diferença entre a prototipação evolucionária e a prototipação

descartável

 Apresentar os três diferentes técnicas de prototipação, que são: o

desenvolvimento de linguagem de nível muito elevado, a programação de banco de dados e o reuso de componentes e aplicações

 Explicar por que a prototipação é a única técnica viável para o projeto e o

(4)

Prototipação de Software

Introdução

Prototipação de Software é o desenvolvimento rápido de software para validar os requisitos

Antigamente, o limite entre prototipação e o desenvolvimento normal do sistema era claramente identificado, mas, atualmente, muitos sistemas são desenvolvidos usando a técnica de desenvolvimento evolucionário  O principal uso é ajudar aos clientes e desenvolvedores a entenderem os

requisitos do sistema

 Levantamento de requisitos: Os usuários podem experimentar o

protótipo para ver como sistema apóia ao seu negócio

 Validação de requisitos: O protótipo pode revelar erros e omissões nos

requisitos

Prototipação pode ser considerada como uma atividade de redução de risco que reduz risco de requisitos

(5)

Prototipação de Software

Introdução

Benefícios da Prototipação

 Possíveis equívocos entre os desenvolvedores de software e usuários

podem ser identificados à medida que as funções do sistema são apresentadas

 A equipe de desenvolvimento de software pode encontrar requisitos

incompletos e/ou inconsistentes quando o protótipo é desenvolvimento

 Um sistema operante, embora limitado, se torna rapidamente disponível,

a fim de mostrar a viabilidade e a utilidade da aplicação para a gerência

 O protótipo pode ser utilizado como uma base para escrever a

especificação para um sistema com qualidade de produção

 Um protótipo pode dar suporte ao treinamento dos usuários e ao teste do

(6)

Prototipação de Software

Introdução

Processo de desenvolvimento de protótipo

Establish prototype objectives Define prototype functionality Develop prototype Evaluate prototype Prototyping plan Outline

definition Executableprototype Evaluationreport

Plano de prototipação Definição geral Protótipo executável Relatório de avaliação Estabelecer objetivos do protótipo Definir a funcionalidade do protótipo Desenvolver o protótipo Avaliar o protótipo

(7)

Prototipação de Software

Introdução

Benefícios da prototipagem no processo de software

 Melhoria na facilidade de uso do sistema

Maior aproximação do sistema com as necessidades dos usuários  Melhoria da qualidade do projeto

Melhoria na facilidade de manutençãoEsforço de desenvolvimento reduzido

(8)

Prototipação de Software

Prototipação no Processo de Software

Duas abordagens

 Prototipação evolucionária

Uma técnica para o desenvolvimento de sistemas onde um protótipo inicial é produzido e refinado através de um número de estágios até o sistema final

O objetivo é entregar um sistema operacional para os usuários finais. O desenvolvimento inicia-se com os requisitos que são mais bem

compreendidos

 Prototipação descartável

Um protótipo, que é uma implementação prática do sistema, é produzido para ajudar a descobrir problemas nos requisitos e então descartado. O sistema é então desenvolvido usando alguma outro processo de desenvolvimento

 O objetivo é validar ou descobrir requisitos do sistema. O processo de

prototipação inicia-se com os requisitos que NÂO são bem compreendidos. Os requisitos compreendidos podem nunca ser prototipados

(9)

Prototipação de Software

Prototipação no Processo de Software

Evolutionary

prototyping

Throw

-aw

ay

Prototyping

D

elivered

system

Executable Prototype +

System

Specification

O

utline

Requirem

requisitosEsboçar

ents

Sistema entregue Protótipo executável + especificação do sistema Prototipação descartável Prototipação evolucionária

(10)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Evolucionária

Deve ser usada quando a especificação não pode ser desenvolvida de uma única vez

Baseada nas técnicas que permitem as iterações rápidas do sistemaVerificação é impossível quando não existe especificação. Validação

significa demonstrar a adequação do sistema  Vantagens:

 Entrega rápida do sistema

A entrega e a implantação rápidas são as vezes mais importantes que as funcionalidades e manutenibilidade dos software

Compromisso do usuário com o sistema

Não é somente atender os requisitos dos usuários, mas obter o compromisso dos usuários em ajudar a alcançar os requisitos

(11)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Evolucionária

Build prototype

system

Develop abstract

specification

Use prototype

system

Deliver

system

System

adequate?

YES

N

Desenvolver

especificação abstrata sistema protótipoConstruir sistema protótipoUtilizar

Entregar sistema Adequado?Sistema

SIM

(12)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Evolucionária

Características comuns dos processos de rápidos de desenvolvimento:

 Especificação, projeto e implementação são intercalados. Não há

especificação detalhada

 O sistema é desenvolvido como uma série de incrementos que são

entregues ao consumidor

 Técnicas para o desenvolvimento rápido do sistemas são auxiliadas por

ferramentas CASE e linguagens de quarta geração (4GL).

 Interfaces com o usuários são geralmente desenvolvidas utilizando-se

(13)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Evolucionária

Problemas:

 Problemas de gerenciamento

Os processos de gerenciamento existentes assumem um modelo em cascata de desenvolvimento

 Problemas de manutenção

Mudanças contínuas tendem a corromper a estrutura do sistema

 Problemas contratuais

Os modelos de contratos existentes são baseado em especificação. Novos modelos de contratos são necessários

Problemas de se usar protótipos como especificação

Alguns partes dos requisitos podem ser impossíveis de prototipar e não apareceriam na especificação

Uma implementação não é considerada objeto legal em um contrato  Requisitos não funcionais não podem ser testados em um protótipo

(14)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Evolucionária

Desenvolvimento Incremental

 O sistema é desenvolvido e entregue em incrementos depois que se

estabelece uma visão geral da arquitetura

 Requisitos e especificações para cada incremento podem ser

desenvolvimentos

 Usuários podem experimentar incrementos entregues enquanto outros

estão sendo desenvolvidos, portanto estas versões servem como protótipos

 Pretende-se combinar algumas vantagens de prototipação, mas com um

(15)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Evolucionária

Desenvolvimento Incremental Validate increment Build system increment Specify system increment Design system architecture Define system deliverables System

complete? Validatesystem incrementIntegrate Deliver final system YES NO Definir entregas do sistema Projetar arquitetura de sistema Especificar aumento de sistema Construir

aumento de sistema Validar aumento

Integrar aumento Validar sistema Entregar sistema final SIM NÃO Sistema completo

(16)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Descartável

Usado para reduzir risco

O protótipo é desenvolvido a partir de uma especificação inicial, entregue para experimento e então descartado

O protótipo descartável não deveria ser considerado como um sistema final

 Algumas características do sistema podem não ser implementadas  Não existe especificação para manutenção a longo prazo

(17)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Descartável

Outline requirements Develop prototype Evaluate prototype Specify system Develop software Validate system Delivered software system Reusable components Esboçar requisitos Desenvolver protótipo Avaliar protótipo Especificar sistema Validar Sistema Desenvolver o software Sistema de software entregue Componentes Reusáveis

(18)

Prototipação de Software

Prototipação no Processo de Software – Prototipação Descartável

Problemas

 Desenvolvedores podem ser pressionados a entregar o protótipo

descartável como sistema final, isto não é recomendado pelos seguintes motivos:

Pode ser impossível ajustar o protótipo para atender os requisitos não funcionais

O protótipo é inevitavelmente não documentado

A estrutura do sistema será degrada através das mudanças feitas durante o desenvolvimento

(19)

Prototipação de Software

Técnicas de Prototipação Rápidas

Várias técnicas podem ser usadas para o desenvolvimento rápido

 Desenvolvimento com linguagens de alto nívelProgramação de banco de dados

 Montagem de componentes e aplicações

Estas técnicas são normalmente usadas em conjunto

Programação visual é uma parte inerente de muitas ferramentas de desenvolvimento de protótipos

(20)

Prototipação de Software

Técnicas de Prototipação Rápidas – Linguagens Dinâmicas de Alto Nível  Linguagens que incluem poderosas facilidades de gerenciamento de

dados

Necessitam de ferramentas que dêem forte suporte a execução de protótipos.

Algumas linguagens freqüentemente oferecem excelentes facilidades de desenvolvimento de interfaces com usuário

Algumas linguagens têm ambiente de suporte integrado, auxiliando no usado dos protótipos

Critérios para escolha das Linguagens Dinâmicas de Alto Nível

Qual é o domínio de negócio do problema?Que interação com usuário é necessária?

 Que ambiente de suporte vem com a linguagem?

(21)

Prototipação de Software

Técnicas de Prototipação Rápidas – Linguagens de Programação de

Banco de Dados

Normalmente possuem as facilidades de consulta de banco de dados, geração de telas, relatórios e planilhas

 Podem ser integradas com ferramentas CASE

 A linguagem e o ambiente são normalmente conhecidos com uma linguagem de 4 geração (4GL)

(22)

Prototipação de Software

Técnicas de Prototipação Rápidas – Linguagens de Programação de

Banco de Dados

DB programming language Interface generator Spreadsheet Report generator

Database management system

Fourth-generation language

Gerador

de interface de cálculoPlanilha

Gerador de relatório BD de

linguagem de programação

Sistema de gerenciamento de dados

(23)

Prototipação de Software

Técnicas de Prototipação Rápidas – Montagem de Componentes e

Aplicações

Protótipos podem ser criados rapidamente a partir de componentes reusáveis mais algum mecanismo para juntar estes componentes

O mecanismo de composição devem incluir facilidade de controle e um mecanismo para a comunicação de componentes

 A especificação do sistema deve considerar a disponibilidade e as funcionalidades dos componentes existentes

(24)

Prototipação de Software

Técnicas de Prototipação Rápidas – Montagem de Componentes e

Aplicações

2 Níveis de prototipação que empregam reuso

 Desenvolvimento em nível de Aplicação

Sistemas inteiros são integrados com os protótipos, de forma que suas funcionalidades podem ser compartilhadas

Por exemplo, se a preparação de um texto é necessária, um processador de texto padrão pode ser usado

 Desenvolvimento em nível de Componente

Componentes individuais são integrados dentro de um framework padrão para implementar sistemas

Framework pode ser uma linguagem de script ou uma framework de integração tal como CORBA

(25)

Prototipação de Software

Técnicas de Prototipação Rápidas – Montagem de Componentes e

Aplicações

Component

composition

framework

Executable

prototype

Reusable

software

components

Control and

integration code

Componentes de software reutilizáveis Framework de composição de componentes Protótipo executável Código de controle e integração

(26)

Prototipação de Software

Técnicas de Prototipação Rápidas – Montagem de Componentes e

Aplicações

Documentos Compostos

 Para algumas aplicações, um protótipo pode ser criado pelo desenvolvimento

de um documento composto

 Podem ser vistos como um contêiner de vários objetos diferentes: tabelas,

diagramas e formulários

 Cada elemento tem uma aplicação associada que é acionada quando o

elemento é selecionado

(27)

Prototipação de Software

Técnicas de Prototipação Rápidas – Montagem de Componentes e

Aplicações

Documentos Compostos – Vinculação de aplicativos

C

om

pound docum

ent

W

ord processor

Spreadsheet

A

udio player

T

ext 1

T

ext 2

T

ext 3

T

ext 4

T

ext 5

T

able 1

T

able 2

Sound 1

Sound 2

Texto 1 Texto 2 Texto 3

Texto 4 Texto 5 Tabela 1 Tabela 2 Som 1 Som 2 Processador de texto Planilha de cálculo Reprodutor de áudio Documento composto

(28)

Prototipação de Software

Técnicas de Prototipação Rápidas – Montagem de Componentes e

Aplicações

Programação Visual

 Linguagem de script tais como Visual Basic suportam a programação

visual,onde o protótipo pe desenvolvimento pela criação de uma interface de usuário a partir de itens padrões e de componentes associados aos itens

 Uma vasta biblioteca de componentes existe para suportar este tipo de

desenvolvimento e também pode ser customizada para atender requisitos de específicos da aplicação

 Problemas com a Programação Visual

Dificuldade de coordenar o desenvolvimento baseado em times

 Não há uma arquitetura de sistema explícita (Por exemplo: Oracle Forms)Dependências complexas entre as partes do programa podem causar

(29)

Prototipação de Software

Técnicas de Prototipação Rápidas – Montagem de Componentes e

Aplicações

Programação Visual com Reuso

File Edit Views Layout Options Help General Index Hypertext display component Date component Range checking script Tree display 12th January 2000 3.876 Draw canvas component User prompt component + script

(30)

Prototipação de Software

Prototipação de Interface com o Usuário

É impossível especificar o padrão visual de uma interface de usuário de modo efetivo

O desenvolvimento de uma interface com o usuário consome uma parte grande dos custos do desenvolvimento de software

Geradores de interface visual podem ser usados para desenhar a

interface e simular suas funcionalidades com componentes associados às entidades de interface

(31)

Prototipação de Software

Bibliografia

Sommerville, Ian. Engenharia de Software, 6a. edição. Addison Wesley, 2004

(32)

Prototipação de Software

Referências

Documentos relacionados

O objetivo geral deste trabalho consiste em desenvolver um dispositivo capaz de monitorar o fornecimento de energia elétrica, de forma remota, obtendo os valores de tensão

Os processos de recobrimento com menores valores de eficiência (Ensaio 1), tanto para pellets recobertos com Opadry ® quanto para pellets recobertos com Opadry ® II,

O primeiro realce escavado é o mais externo, entre as galerias 270 GM2 e 300 GM2, pelo fato de que, ao escavar a galeria mais interna (entre 270 GM e 300 GM) primeiro,

percebe-se que, mesmo se tratando de imagens completamente diferentes, como a cor de preenchimento de maior superfície é o vermelho (que representa a atributos

• Exibição prévia em tela de cópias, impressões e digitalizações KIP 7170 OPÇÕES DO SISTEMA Com economia de espaço Empilhamento de impressões e originais Empilhadeira

Gerenciador de Armazéns e Depósitos (WMS - Warehouse Management System). Disponível em: www.sasistemas.com.br. SOFTWARE ENGINEERING INSTITUTE. CMMI for Development version.

Este estudo teve como principais objetivos investigar a influência do tipo de perspetiva (primeira-pessoa vs terceira-pessoa) no fluxo, na identificação ao avatar e

O seguinte trecho de artigo de um jornal local relata uma corrida beneficente de bicicletas: “Alguns segundos após a largada, Ralf tomou a liderança, seguido de perto por David