Revisões técnicas formais



Yüklə 248,76 Kb.
səhifə6/9
tarix01.11.2017
ölçüsü248,76 Kb.
#25554
1   2   3   4   5   6   7   8   9

III.4 PROJETO DE DADOS

O Projeto de Dados tem uma profunda influência sobre a qualidade do software e os conceitos de ocultação de informação e abstração de dados oferecem as bases para este projeto.

Princípios que podem ser usados, segundo Wasserman, para projetar dados [Pressman-95]:


  • Refletir sobre as diferentes organizações de dados possíveis de forma a decidir sobre a mais apropriada

  • Todas as estruturas de dados e as operações a serem executadas em cada uma devem ser identificadas

  • Um dicionário de dados deve ser estabelecido e usado para se definir tanto o projeto de programa como o de dados.

  • Decisões de baixa prioridade referentes ao projeto de dados devem ser proteladas até mais tarde no processo de projeto

  • A representação da estrutura de dados deve ser conhecida somente por aqueles módulos que precisam fazer uso direto dos dados contidos na estrutura.

  • Uma biblioteca de estruturas de dados úteis e das operações que podem ser aplicadas a elas deve ser desenvolvida. Estruturas de dados podem ser projetadas para se ter reuso. Uma biblioteca de padrões de estruturas de dados (tipos abstratos de dados) pode reduzir tanto o esforço de especificação como o de projeto de dados.

  • Uma linguagem de programação e projeto de software deve suportar a especificação e realização de tipos abstratos de dados.


Tipos Abstratos de Dados:
Abstração de dados: É uma coleção designada de dados que descreve um objeto de dados. Por exemplo, cheque de pagamento é um objeto de dados que representa várias informações diferentes: nome da pessoa a quem se paga, quantia bruta paga, imposto retido, imposto de renda, contribuição para a previdência, etc..
Contudo podemos nos referir a todos os dados ao declararmos o nome da abstração de dados.

A abstração de dados possibilita que o projetista represente um objeto de dados em níveis variáveis de detalhe e, o que é mais importante, que ele especifique um objeto de dados no contexto das operações que podem ser aplicadas a ele.


Quando usamos o tipo real para representar números reais estamos usando uma abstração de dados, sem saber muito sobre a representação deste tipo no computador. (Esta representação varia de um para outro computador). Para usar um objeto de dados no programa cliente deve-se declarar a variável como daquele tipo.

Logo que uma abstração de dados é definida, um conjunto de operações que podem ser aplicadas a ela também pode ser definido.


Quando escrevermos um programa cliente que utiliza esse objeto de dados não necessitamos saber dos detalhes de implementação do objeto de dados. Basta que sejam utilizados os operadores escritos. Isto é ocultar informação (information hiding).
Ocultar informação é útil também devido a facilidade de se modificar o objeto de dados, escolhendo-se por exemplo, um método mais eficiente de representação ou de implementação. Uma vez que o módulo cliente acessa o objeto de dados somente através de seus operadores, o módulo cliente não precisará ser escrito novamente já que acessa o objeto de dados através de seus operadores.
Várias linguagens têm mecanismos que permitem a criação de tipos abstratos de dados (combinação de um tipo de dado com seus operadores), que é usado como um padrão ou estrutura de dados genérica a partir da qual outras estruturas de dados podem ser representadas por uma instância.
No Pascal podemos implementar cada tipo abstrato de dados numa unit.
Objetos são um meio natural de implementar tipos abstratos de dados. Tipos objeto podem ser definidos de forma que os campos de dados sejam manipulados somente por seus operadores. Em nosso próximo curso, Engenharia de Software II, será enfocada a abordagem baseada em objetos.

III.5 PROJETO DE INTERFACE

A seguir é apresentado o resumo de uma pesquisa em qualidade de interfaces homem-máquina realizada pela turma de Eng. de Software I do segundo período de 1998




  1. Introdução

“Ao criarmos uma aplicação, um dos detalhes mais importantes que devem ser considerados é a interface com o usuário. Por quê ? Porque uma interface feia ou difícil de ser entendida e usada pode ser a linha que divide o sucesso do fracasso no ramo de software”



Pesquisa de Leonardo, Maria, Flávio e Ricardo
“Quando se faz o design de uma aplicação, um certo número de decisões precisa ser feito em relação à interface. Qual estilo deve ser usado ? Quantas telas diferentes serão necessárias? Que comandos serão incluídos nos menus? Há necessidade de botões para duplicar as operações de menus ? E quanto às caixas de diálogo para interação com o usuário ? Quanta assistência deve ser dada em determinados momentos ? “

Pesquisa de Luciano Leal, Rodrigo e Fabrício.
“Cada uma das seguintes áreas é relevante para a definição e o estudo de interfaces:

Ciência da Computação: fornece a estrutura tecnológica.

Psicologia: preocupa-se com o entedimento do comportamento humano, percepção, cognição etc.

Ergonomia: envolve-se com aspectos físicos da adaptação das máquinas para uso humano.

Lingüística: a interação homem-máquina exige uma linguagem.

Sociologia: preocupa-se com o impacto dos sistemas interativos na estrutura da sociedade.

Desenho gráfico e tipografia: a habilidade estética dessas áreas é importante já que a apresentação da interface torna-se bonita aos olhos dos usuários”

Pesquisa de Ercole e Isaac
“ Os programadores estão indubitavelmente familiarizados com os aspectos tecnológicos dos computadores. É fácil esquecer que muitos usuários não entendem (e provavelmente não se importam) com a tecnologia por trás da aplicação. Eles vêem o sistema como um meio para um fim: uma maneira de realizar uma tarefa, idealmente mais facilmente do que fariam sem a ajuda do computador....

É imprescindível então, para um bom design da interface da aplicação, ter sempre o usuário final em mente

Pesquisa de Luciano Leal, Rodrigo e Fabrício.

b) Critérios de qualidade de interface homem-máquina
b.1) Condução


  • Presteza, guiando o usuário e poupando-o do aprendizado de uma série de comandos

  • Dirigir a entrada de dados indicando o formato adequado e os valores aceitáveis. Ex: (--/--/--)

  • Exibir as unidades de medidas dos dados a digitar. Ex: m, cm

  • Indicar todas as informações sobre o estado da interação

  • Para cada campo de dados, fornecer um rótulo

  • Indicar o tamanho do campo, quando ele é limitado. ex: [_______]

  • Dar um título a cada janela




  • Agrupamento /distinção entre itens por localização

  • Organizar as opções nos menus em função dos objetos aos quais elas se aplicam




  • Agrupamento por formato

  • Fazer uma distinção visual clara de áreas que têm diferentes funções (área de comandos, área de mensagens, etc.)



  • Feedback imediato e de qualidade às ações dos usuários

  • Todas as entradas dos usuários devem ser mostradas, com exceção de dados sigilosos. Mesmo neste caso, cada entrada deve produzir um feedback perceptível (por exemplo, símbolos como *)

  • Caso o usuário interrompa um processamento de dados, deve ser mostrada uma mensagem garantindo ao usuário que o sistema voltou ao seu estado prévio.

  • Quando o processamento é longo, informações sobre o estado do processamento devem ser fornecidas. Ex: barra indicativa de tempo.




  • Legibilidade

  • Quando o espaço para o texto for limitado, mostrar poucas linhas longas ao invés de muitas linhas curtas.

  • Exibir texto contínuo em colunas largas de, ao menos, 50 caracteres por linha.

  • Ao exibir um texto, mantenha as palavras intactas, com o mínimo de hífens.

  • Cores devem ser usadas moderadamente

  • Se a cor está sendo usada para ressaltar algo na tela seria bom ter um outro indicador, já que há usuários daltônicos

  • Uma tela com 2 ou 3 fontes tem um aspecto melhor do que com 5 ou 6.


b.2) Carga de trabalho


  • Minimize o número de passos para se fazer uma seleção em menu. (A profundidade do menu não deve ser grande)

  • Não faça o usuário entrar com dados que poderiam ser gerados pelo computador (dados derivados)

  • Para entrada de dados, exiba os valores default atuais nos campos apropriados

  • Quando várias páginas estiverem envolvidas, torne possível ir diretamente para uma página sem ter que passar pelas intermediárias. Ex: uso de abas

  • Os usuários não devem necessitar lembrar de dados exatos de uma tela para outra.


b.3) Controle do usuário


  • Possibilitar aos usuários interromper ou cancelar a transação ou processo atual.

  • Fornecer uma opção cancelar com o objetivo de apagar qualquer mudança que acabou de ser feita e trazer a tela para seu estado anterior.



b.4) Adaptabilidade


  • Flexibilidade

  • Quanto mais formas de efetuar uma tarefa existirem, maiores serão as chances de que o usuário possa escolher e dominar uma delas no curso de sua aprendizagem

  • Fornecer meios para que o usuário controle a configuração das telas




  • Consideração da experiência do usuário

  • Prever atalhos

  • Prever a escolha de entradas simples ou múltiplas de acordo com a experiência do usuário

  • Fornecer um tutorial passo a passo para os usuários novatos

  • O usuário deve poder escolher o nível de detalhe das mensagens de erro em função de seu nível de conhecimento



b.5) Gestão de erros (entrada de dados incorretos ou com formatos inadequados, entradas de comandos com sintaxe incorreta)


  • Proteção contra os erros

  • É preferível detectar erros na digitação do que no momento da validação.




  • Qualidade das mensagens de erro

  • As mensagens de erro podem favorecer o aprendizado, indicando ao usuário a razão ou a natureza do erro cometido, o que ele fez de errado, o que deveria ter feito e o que ele deve fazer.

  • Adotar um vocabulário neutro, não personalizado, não repreensivo nas mensagens de erro. Evitar o humor.




  • Correção dos erros

  • Quando se verifica um erro proporcionar ao usuário a possibilidade de refazer a digitação apenas da parte equivocada, evitando rejeitar um bloco todo já digitado.

  • Deve ser possível refazer um contexto anterior à execução de um comando (undo) e cancelar uma operação.



b.6) Consistência


  • Os procedimentos, rótulos, comandos, etc, são melhor reconhecidos, localizados e utilizados quando seu formato, localização ou sintaxe são estáveis de uma tela para outra, de uma seção para outra.

  • Desabilitar em vez de remover um item faz com que os usuários construam modelos mentais de como a aplicação funciona

  • A consistência diminui os custos de treinamento e suporte



b.7) Significado de denominações


  • Termos pouco expressivos para o usuário podem ocasionar problemas de condução, podendo levá-lo a selecionar uma opção errada.

  • Recomenda-se o uso de metáforas, procurando-se entender como o usuário vê um determinado aspecto. Ex: a tesoura significa corte e a lata de lixo simboliza jogar fora.


b.8) Compatibilidade


  • Os procedimentos necessários ao cumprimento da tarefa devem ser compatíveis com as características psicológicas do usuário e devem respeitar suas expectativas ou costumes.


Pesquisa de Alexandre Maia e George/Bruno, Leandro e Patricia/

Eduardo, Fabio e Robson/Michele e Sergio Ricardo/
Jorge e Marcio/Fabio Henrique/Jaime/Fabiano e Flávio


c) Custos
“Em recente pesquisa sobre dezenas de projetos, verifica-se que em média 48% do código de um sistema interativo é dedicado à interface. Quanto ao tempo de projeto de todo o sistema, 50% de toda a implementação e 37% da manutenção ....

Economias da ordem de milhões de dólares podem ser realizadas em interfaces onde o usuário comete poucos erros, o tempo de descrição das tarefas a serem realizadas é mínimo, a distração do usuário é reduzida e os treinamentos são eliminados. Ou seja, a interface interfere economicamente na utilização de um sistema”


Pesquisa de Ercole e Isaac



d) Futuro
“O caminho da evolução da interface é claro para todos os que estão de alguma forma ligados à indústria de informática: a saída definitiva é a interface verbal, em que os usuários possam dizer aos computadores o que fazer....

Como acontece com toda nova tecnologia, é difícil adivinhar quais serão as conseqüências do advento de uma interface verbal, mas podemos divisar com clareza pelo menos duas. Para começar, a curva de aprendizado se tornará extremamente suave, conquistando muitos daqueles que hoje costumam desprezar os computadores mais por insegurança ou preguiça do que por ideologia. Além disso, o teclado não vai deixar de existir, mas deixará de ser um fator determinante na utilização dos computadores.”


Pesquisa de Luciano Leal, Rodrigo e Fabrício.



Yüklə 248,76 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin