Prototipação


Prototipaçãode Software


  • Prototipação é o desenvolvimento rápido de um sistema
  • 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


  • A principal função é auxiliar os usuários e desenvolvedores a entender os requisitos do 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


  • 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.


  • A prototipação pode ser considerada como uma atividade de redução de riscos que reduz a fraca implementação dos requisitos.



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


  • 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.


  • 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.


  • 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).


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.


  • 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.


  • Desenvolvedorespodem 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.


Técnicas de prototipação


  • 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.


  • 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 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.


  • Exemplos:
    • Smaltalk, Java, Prolog, LISP, etc


  • 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.


  • 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.

Técnica de prototipação no desenvolvimento 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.


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.
  • O desenvolvimento rápido é importante na prototipaçãode 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.


Referências


  • UNESP. Departamento de Ciências de Computação e Estatística. Prototipação de Software. 2005.