Prototipação de Software



Documentos relacionados
Abordagem baseada numa visão evolutiva do desenvolvimento de software, afetando o processo como um todo Protótipo de software é um sistema que...

Concepção e Elaboração

Professor: Curso: Disciplina:

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Projeto de Arquitetura

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

GARANTIA DA QUALIDADE DE SOFTWARE

Introdução à Computação

Plano de Gerenciamento do Projeto

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Projeto de Arquitetura

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

ENG1000 Introdução à Engenharia

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

Fábrica de Software 29/04/2015

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Engenharia de Software II

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Pós Graduação Engenharia de Software

Projeto de Sistemas I

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Interação Homem-Computador: As Interfaces

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Módulo 4: Gerenciamento de Dados

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Disciplina de Banco de Dados Introdução

Processos de Software

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I Aula 3

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

SISTEMA GERENCIADOR DE BANCO DE DADOS

Uma Introdução à Engenharia de Software

Desenvolvimento de Interfaces Prototipação

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Planejando o aplicativo

pacotes de software na forma em que são É importante salientar que não é objetivo do software, suas atividades e produtos

Processos de Desenvolvimento de Software

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Gerenciamento de Projeto

Universidade Paulista

Service Level Management SLM. Gerenciamento de Níveis de Serviço

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Engenharia de Requisitos

EVOLUÇÃO DE SOFTWARE

Requisitos. Sistemas de Informações

O Processo de Engenharia de Requisitos

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Gestão de Modificações. Fabrício de Sousa

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Gerenciamento de Níveis de Serviço

Introdução à Qualidade de Software. Profº Aldo Rocha

CHECK - LIST - ISO 9001:2000

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

Introdução a Informática. Prof.: Roberto Franciscatto

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

ISO/IEC 12207: Gerência de Configuração

ENGENHARIA DE SOFTWARE I

UFG - Instituto de Informática

Tecnologia e Sistemas de Informações

Introdução à Engenharia de Software

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Conceitos de Banco de Dados

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Engenharia da Web. Professor MSc Wylliams Barbosa Santos Disciplina: Projeto de Sistemas Web wylliams.wordpress.com

O modelo unificado de processo. O Rational Unified Process, RUP.

Modelos de processos de desenvolvimento de software

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

REQUISITOS. Prof. Msc. Hélio Esperidião

APOO Análise e Projeto Orientado a Objetos. Requisitos

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Resumo das Interpretações Oficiais do TC 176 / ISO

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Interface Homem-Computador

Aspectos técnicos do desenvolvimento baseado em componentes

Transcrição:

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

Prototipação de Software Desenvolvimento rápido de software para validar os requisitos. Slide 2

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 de prototipação. Explicar a técnica de prototipação no desenvolvimento de interface com o usuário Slide 3

Tópicos abordados Prototipação no processo de software Técnicas de prototipação rápida Prototipação de interface com o usuário Slide 4

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ão desenvolvidos usando uma abordagem evolucionária. Slide 5

Usos de protótipos de sistemas O principal uso é ajudar os clientes e desenvolvedores entender os requisitos para o sistema. 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 e omissões nos requisitos. A prototipação pode ser considerada como uma atividade de redução de riscos que reduz os riscos nos requisitos. Slide 6

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 de desenvolvimento. O protótipo pode servir como uma base para derivar uma especificação do sistema com qualidade de produção. O protótipo pode ser usado para treinamento do usuário e teste de sistema. Slide 7

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

Benefícios da prototipação 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ção, e Redução no esforço de desenvolvimento Slide 9

Prototipação no processo de software Prototipação evolucionária Uma abordagem para o desenvolvimento do sistema onde um protótipo inicial é produzido e refinado através de vários está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 problemas com os requisitos e depois descartado. O sistema é então desenvolvido usando algum outro processo de desenvolvimento. Slide 10

Objetivos da prototipação O objetivo da prototipação evolucionária é fornecer aos usuários finais um sistema funcinando. O desenvolvimento começa com aqueles requisitos que são melhores compreendidos. O objetivo da prototipação descartável é validar ou derivar os requisitos do sistema. O processo de prototipação começa com aqueles requisitos que não são bem compreendidos. Slide 11

Abordagens de prototipação Esboçar Esboçar requisitos Prototipação evolucionária Prototipação descartável Sistema Sistema entregue Protótipo executável + especificação do do sistema sistema Slide 12

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 os sistemas de interface com o usuário Baseada em técnicas que permitem interações rápidas para o desenvolvimento de aplicações. Verificação é impossível uma vez que não exise especificação. A validação significa demonstrar a adequação do sistema. Slide 13

Prototipação evolucionária Desenvolver especificação abstrata abstrata Construir sistema sistema protótipo Utilizar Utilizar sistema sistema protótipo Entregar sistema sistema SIM Sisema adequado NÃO Slide 14

Vantagens da prototipação evolucionária Rápido fornecimento do sistema Em alguns casos, o rápido fornecimento e a facilidade de uso são mais importantes do que os detalhes de funcionalidade ou a 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. Slide 15

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 de sistemas, 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 de ferramentas GUI) Slide 16

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 do protótipo do sistema, assim a manutenção a longo prazo pode ser cara. Problemas contratuais Os contratos são, geralmente, estabelecidos baseados em uma especificação completa do software. Slide 17

Protótipos como especificações Algumas partes dos requisitos (por ex. funções críticas com relação à segurança) são difíceis de aparecerem em protótipos, assim acabam não aparecendo na especificação. Uma implementação não tem valor legal de contrato. Requisitos não funcionais não podem ser testados adequadamente em um protótipo do sistema. Slide 18

Desenvolvimento incremental O sistema é desenvolvido e liberado em incrementos após estabelecer uma arquitetura global. Requisitos e especificações para cada incremento podem ser desenvolvidos. Usuários podem avaliar os incrementos liberados enquanto outros estão sendo desenvolvidos. Portanto, esse serve como uma forma de sistema protótipo. O desenvolvimento incremental combina as vantagens da prototipação evolucionária com um processo de desenvolvimento mais fácil de ser gerenciado e uma melhor estruturação do sistema. Slide 19

Um processo de desenvolvimento incremental Definir Definir entregas entregas de de sistema sistema Projetar Projetar arquitetura de de sistema sistema Especificar aumento do do sistema sistema Construir aumento do do sistema sistema Validar Validar aumento NÃO Entregar sistema sistema final final SIM Sistema completo Validar Validar sistema sistema Integrar Integrar aumento Slide 20

Prototipação descartável Usada para reduzir os riscos com os requisitos. O protótipo é desenvolvido de uma especificação inicial, entregue para avaliação e então descartado. 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. Slide 21

Processo de software com prototipação descartável Esboçar Esboçar requisitos Desenvolver protótipo Avaliar Avaliar protótipo Especificar sistema sistema Componentes reutilizáveis Desenvolver software Validar Validar sistema sistema Sistema Sistema de de software entregue Slide 22

Protótipos descartáveis liberáveis Desenvolvedores podem ser pressionados a entregar um protótipo descartável como um produto 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 é ruim para a manutenção a longo prazo. A s mudanças feitas durante o desenvolvimento do protótipo provavelmente terão degradado a estrutura do sistema. Os padrões de qualidade organizacional são, normalmente, deixados de lado no desenvolvimento do protótipo. Slide 23

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 muitas vezes utilizadas em conjunto. Programação visual é uma parte inerente da maioria dos sistemas de desenvolvimento de protótipos. Slide 24

Linguagens dinâmicas de altonível São linguagens que incluem poderosos recursos de gerenciamento de dados em run-time. Necessitam de um grande sistema de suporte de run-time. Assim, não eram largamente usadas para o desenvolvimento de grandes sistemas. Algumas linguagens oferecem excelentes facilidades de desenvolvimento de interface com o usuário Algumas linguagens tem um ambiente de suporte integrado cujas faciliades podem ser usadas no protótipo. Slide 25

Linguagens de alto nível para prototipação Linguagem Tipo Domínio de aplicação Smaltalk Orientada a objetos Sistemas interativos Java Orientada a objetos Sistemas interativos Prolog Lógica Processamento simbólico LISP Com base em listas Processamento simbólico Slide 26

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 a linguagem? Diferentes partes do sistema podem ser programados em diferentes linguagens. Contudo, pode haver problemas com a comunicação entre as linguagens. Slide 27

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 banco de dados, um gerador de interface, um gerador de relatórios e uma planilha de cálculos. A linguagem + ambiente é conhecido como uma linguagem de quarta geração (4GL) São adequadas para sistemas de negócios de tamanho pequeno ou médio. Slide 28

Componentes de linguagens de quarta geração Linguagem de de programação de de BD BD Gerador Gerador de de interface Planilha Planilha de de cálculo cálculo Gerador Gerador de de relatório Sistema Sistema de de gerenciamento de de dados dados Linguagem de quarta geração Slide 29

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 esses componentes. O mecanismo de composição deve incluir facilidades de controle e um mecanismo para comunicação de componentes. A prototipação com componentes reutilizáveis envolve desenvolver uma especificação que leva em conta a disponibilidade e funcionalidade de componentes existentes. Slide 30

Prototipação com reuso Desenvolvimento a nível de aplicações Sistemas inteiros são integrados com o protótipo, de modo que sua 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 Basic ou Perl) ou um framework de integração (CORBA ou JavaBeans) Slide 31

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

Documentos compostos Para algumas aplicações, um protótipo pode ser criado por desenvolver um documento composto. Isso é um documento com elementos ativos (tal como uma planilha de cálculo) que permite funcionalidade ao usuário. Cada elemento ativo está associado a um aplicativo, que é chamado quando aquele elemento é selecionado. O próprio documento é o integrador para diferentes aplicações. Slide 33

Vinculação de aplicativos. Compound document Text 1 Table 1 Text 2 Text 3 Sound 1 Table 2 Text 4 Sound 2 Text 5 Processador Word processor de texto Planilha Spreadsheet de cálculo Reprodutor Audio de player áudio Slide 34

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 interface com o usuário a partir de itens padrões (telas, campos, botões e menus) e a associação de componentes à esses itens. Uma grande biblioteca de componentes existe para suportar esse tipo de desenvolvimento. Slide 35

Programação visual com reuso Date component Hypertext display component Range checking script Draw canvas component File Edit Views Layout Options Help 12th January 2000 3.876 General Index User prompt component + script Tree display component Slide 36

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 a manutenção do sistema. Slide 37

Prototipação de interface com o usuário Os projetistas não devem opinar a respeito de uma interface com o usuário que seja aceitável. A prototipação é essencial nesse caso. O desenvolvimento de IU consome uma parte substancial 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 entidades da interface. (menus, campos, botões, etc.) Interfaces web podem ser prototipadas através do uso de um editor de páginas web. Slide 38

Pontos-chave Um protótipo de sistema pode ser usado para dar aos usuários finais uma impressão concreta das capacidades desse sistema. A prototipação está se tornando cada vez mais comum para 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 é desenvolvido pela evolução de uma versão inicial em uma versão final do sistema. Slide 39

Pontos-chave O desenvolvimento rápido é importante na prototipação de sistemas. Isso pode levar à exclusão de algumas funcionalidades do sistema ou na diminuição dos requisitos não funcionais. Entre as técnicas de prototipação estão o uso de linguagens de nível muito elevado, a programação de bando de dados e a construção de protótipos a partir de componentes reutilizáveis. A prototipação é essencial para o desenvolvimento de interfaces com o usuário, as quais são difíceis de serem especificadas usando um modelo estático. Os usuários deveriam estar envolvidos na avaliação e na evolução do protótipo. Slide 40

Slide 41