Transparência de Software
De Grupo de Engenharia de Requisitos PUC-Rio
Tabela de conteúdo |
SIG de Transparência
- Cappelli, C; AN APPROACH FOR BUSINESS PROCESSES TRANSPARENCY USING ASPECTS. Tese de Doutorado - Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática, Rio de Janeiro, 2009.
Operacionalização dos atributos de Transparência
Usabilidade
Definição: capacidade de uso.
Uniformidade
Definição: capacidade de manter uma única forma.
Operacionalizações:
- Padronizar a criação de nomes
- Padronizar o estilo de programação
- Padronizar a divisão das partes
- Padronizar as formas de utilização
- Padronizar a apresentação
Amigabilidade
Definição: capacidade de uso sem esforço.
Operacionalizações:
- Usar ajuda sensível ao contexto (software)
- Usar wizards (software)
- Usar técnicas de IHC (software)
Simplicidade
Definição: capacidade de não apresentar dificuldades ou obstáculos
Operacionalizações:
- Minimizar a passagem de parâmetros atômicos.
- Padronizar documentação.
- Minimizar o uso de variáveis.
- Definir a função que será executada por cada módulo.
- Cada modulo deve possuir uma unica função.
- Possuir wizard de instalação
- Destacar as funções mais utilizadas
Operabilidade
Definição:(de software) - Capacidade de estar operacional.
Operacionalizações:
- Estar hábil para funcionar.
- Permitir diversos níveis de acesso para ser controlado pelo usuário.
- Executar as tarefas previstas nos cenários.
- Ser auto-descritivo.
- Ter capacidade de ser reconhecido como um componente único.
Intuitividade
Definição: capacidade de ser utilizado sem aprendizado prévio
Operacionalizações:
- Usar construções canônicas das linguagens de representação
- Usar padrões conhecidos
- Facilitar o reconhecimento de padrões utilizados
- Maximizar a estrutura de controle do tipo seqüência
- Evidenciar estruturas de controle do tipo iteração e seleção
- Minimizar tamanho de sentenças ou modulos
- Utilizar o vocabulario minimo e do dominio
- Minimizar o número de variáveis/constantes por sentença ou modulo
Adaptabilidade
Definição: capacidade de ser alterado de forma a atender novas necessidades ou mudança de contexto.
Operacionalizações:
- Usar parâmetros
- Dividir em módulos coesos
- Ter código aberto
- Aplicar estratégias de variabilidade
Desempenho
Definição: capacidade de operar adequadamente
Operacionalizações:
- Definir requisitos de desempenho
- Usar recursos adequadamente
- Avaliar parâmetros definidos
Auditabilidade
Definição: capacidade de exame analítico.
Validade
Definição: capacidade de ser testado por experimento ou observação para identificar se o que está sendo feito é correto. Capacidade de ser avaliado por experimento ou observação para identificar se está de acordo com as expectativas dos usuários.
Operacionalizações:
- Possuir mecanismos para validar o atendimento das condições iniciais e finais
- Definir mecanismos de validação
- Usar técnicas de simulação de uso do software
Controlabilidade
Definição: capacidade de ter domínio
Operacionalizações:
- Definir os pontos de controle
- Definir politicas de acompanhamento
- Permitir execução com acompanhamento
- Indicar desvios (realizado X planejado)
- Manter o software associado com informações de versionamento/configuração
Verificabilidade
Definição: Capacidade de identificar se o que está sendo feito é o que deve ser feito.
Operacionalizações:
- Usar as normas na produção de software
- Anexar requisitos ao código
- Usar ambiente que permita verificação
Rastreabilidade
Definição:capacidade de seguir o desenvolvimento ou a construção de uma informação, suas mudanças e justificativas.
Operacionalizações:
- Manter o software associado com informações de versionamento/configuração
- Identificar claramente o relacionamento entre as diferentes partes do software
- Utilizar especificações de pre e pos condição
- Possibilitar a navegação entre documentos de origem e documentos resultantes
- Possibilitar a identificação de fontes de informação geradoras de documentos
- Possibilitar a navegação entre versões de um mesmo documento
Explicação
Definição: capacidade de informar a razão de algo. Capacidade de informar a razão de determinada característica do código.
Operacionalizações:
- Usar referências aos episódios e cenários correspondentes
nos trechos de códigos correspondentes (método/função/procedimento)
- Usar referências as definições do léxico para nomes
de estruturas de dados (váriáveis, constantes) e funções/métodos/procedimento.
- Usar a bula do software para explicação global
Acessibilidade
Definição: capacidade de obtenção.
Portabilidade
Definição: Capacidade de ser usado em diferentes ambientes
Operacionalizações:
- Permitir execução em diferentes plataformas.
- Utilizar formatos abertos
- Permitir o acesso ao software a partir de diferentes plataformas.
- Permitir a utilização do software a partir de diferentes plataformas.
Disponibilidade
Definição: capacidade de ser utilizado no momento em que for necessário.
Operacionalizações:
- Ser possível fazer download
- Utilizável no endereço conhecido
- Utilizável 24X7
Publicidade
Definição: capacidade de se tornar público.
Operacionalizações:
- Utilizar mecanismos de divulgação do software
- Otimizar a descrição de palavras chaves visando maquinas de buscas
- Disponibilizar em bibliotecas publicas conhecidas
- Indexar o Software por palavra-chave seguindo um esquema de classificação previamente definido
- Manter a configuração associada as hierarquias do domínio
Entendimento
Definição: capacidade de alcançar o significado e o sentido.
Dependência
Definição: capacidade de identificar a relação entre as partes de um todo.
Operacionalizações:
- Identificar existência de informações sobre dependência
- Identificar interfaces entre as partes
- Identificar relações entre variáveis e partes
Compositividade
Definição: capacidade de construir ou formar a partir de diferentes partes.
Operacionalizações:
- Identificar partes
- Identificar interfaces entre as partes
- Formar uma unidade a partir da reunião das partes
Detalhamento
Definição: capacidade de descrever em minúcias.
Operacionalizações:
- Usar decomposição de dados(variáveis) / funções (comandos)
- Usar nomes adequados
- Explicar o software
Divisibilidade
Definição: capacidade de ser particionado.
Operacionalizações:
- Identificar partes
- Dividir o todo no maior número de partes coesas, preservando integridade das partes
- Particionar dados(variáveis) com integridade
Concisão
Definição: capacidade de ser resumido.
Operacionalizações:
- Criar partes apenas com o estritamente necessário
- Criar apenas as partes estritamente necessárias
- Abstrair detalhes
- Programação econômica
Informativo
Definição: capacidade de prover informações com qualidade.
Clareza
Definição: capacidade de nitidez e compreensão
Operacionalizações:
- Descrever modulos, funções, termos e variáveis utilizadas.
- Identificar as políticas e regras de negocio utilizadas.
- Oferecer fontes alternativas de informação.
- Fornecer ajuda sobre a execução.
- Descrever arquitetura
Consistência
Definição: capacidade de resultado aproximado de várias medições de um mesmo item? Capacidade de não violar restrições de integridade durante sua execução.
Operacionalizações:
- Usar blocos para manipulação/tratamento de exceções, verificando
a consistência e lançando exceções caso a consistência seja comprometida.
- Verificar a observação das restrições previamente definidas
- Verificar se pós-condições do cenário anterior são equivalentes
as pré-condições do cenário atual, e se continuam válidas (se não houve mudanças entre a execução)
- Verificar através de Teste de integração
Integridade
Definição: capacidade de ser correto e imparcial.
Operacionalizações:
- Verificar o antendimento às pré-condições (previamente definidas)
antes da execução de um trecho de código (método/função/procedimento)
- Verificar o antendimento às pós-condições (previamente definidas)
após a execução de um trecho de código (método/função/procedimento)
- Verificar o funcionamento para entradas "inesperadas"
(teste do macaco)
Corretude
Definição: capacidade de ser isento de erros.
Operacionalizações:
- Ter capacidade de cumprir com a sintaxe do ambiente onde esta sendo desenvolvido.
- Verificar através de teste unitário.
- Verificar se sempre que as pré-condições estejam estabelecidas, as pós-condições sejam atendidas.
Acurácia
Definição: capacidade de execução isenta de erros sistemáticos.
Operacionalizações:
- Estabelecer intervalo aceitável de desvios
- Testar através de simulaçao para um grande número de entradas possíveis
Atualização
Definição: capacidade de ser usado em diferentes ambientes
Operacionalizações:
- Permitir execução em diferentes plataformas.
- Utilizar formatos abertos
- Permitir o acesso ao software a partir de diferentes plataformas.
- Permitir a utilização do software a partir de diferentes plataformas.
Completeza
Definição: capacidade de não faltar nada do que pode ou deve ter
Operacionalizações:
- Permitir analise das necessidades funcionais são atendidas
- Permitir analise das qualidades demandadas são atendidas
- Permitir analizar se o código é descrito por documentos auxiliares
- Possibilitar que diferentes interessados possam ter suas demandas consideradas
Comparabilidade
Definição: Capacidade de ser comparado (Avaliação Restaurante A, B, C)
Operacionalizações:
- Permitir acesso ao software e seus artefatos (ex: código fonte, requisitos, casos de teste)
- Permitir armazenar resultados para comparação
- Permitir avaliação através de métricas padrão

