• Nenhum resultado encontrado

Erros Típicos em Diagramas de UML Fernando Brito e Abreu Dezembro de 2005

N/A
N/A
Protected

Academic year: 2022

Share "Erros Típicos em Diagramas de UML Fernando Brito e Abreu Dezembro de 2005"

Copied!
5
0
0

Texto

(1)

Erros Típicos em Diagramas de UML Fernando Brito e Abreu

(fba@di.fct.unl.pt)

Dezembro de 2005

Introdução

Este documento tem como objectivo descrever e classificar os erros mais comuns cometidos na construção de modelos com UML. Coligiu-se este tipo de informação com base na correcção de várias centenas de exames e trabalhos de alunos da Universidade Nova de Lisboa e da Academia da Força Aérea.

Tipos de Erro

TIPO GRAU DESIGNAÇÃO DESCRIÇÃO / EXEMPLIFICAÇÃO CF 1 Erro de Convenção ou

Formatação

O modelo é válido e a notação correcta, mas são violados princípios básicos de modelação cujo intuito é a legibilidade dos diagramas.

ES 2 Erros Semânticos O segmento do UoD modelado não corresponde à realidade, isto é, o modelo não é válido.

MI 3 Modelação Incompleta ou Inadequada

As abstracções de modelação usadas são correctas mas não são usadas de forma completa e/ou adequada.

VM 4 Violação do Metamodelo Abstracções de modelação usadas incorrectamente, ou seja, violando o metamodelo.

Erros em todos os diagramas

TIPO CÓD DESIGNAÇÃO DESCRIÇÃO / EXEMPLIFICAÇÃO

CF DS Diagrama Sobrecarregado O diagrama está exageradamente sobrecarregado, dificultando assim a sua compreensão (vide regra de Miller). Sugere-se a sua partição em sub-diagramas.

CF IS Identificador sem Semântica Um identificador deve ter uma semântica adequada à abstracção que identifica.

CF IF Falta Identificador

CF I I Identificador Incorrecto Para permitir a geração de código, um identificador deve ser constituído por uma palavra só, ou por uma composição de palavras sem espaços entre si ou interligados com algum elemento de ligação (ex: “_”).

CF CL Cruzamento de Linhas O cruzamento de linhas dificulta a legibilidade dos diagramas.

CF FD Falta Descrição textual do diagrama

O diagrama deve ser acompanhado de uma pequena descrição textual

(2)

Erros em Diagramas de Casos de Utilização

TIPO CÓD DESIGNAÇÃO DESCRIÇÃO / EXEMPLIFICAÇÃO

CF IC Identificador não Convencional • O nome de um caso de utilização é um identificador de uma acção (dever conter um verbo no infinitivo); este último identificador é geralmente composto de várias palavras (2 ou 3) mas não deve substituir a descrição textual do caso (esta última deve fazer-se à parte)

• O identificador de um actor deve ser no singular porque um caso é activado apenas por uma instância de um actor.

MI FF Fronteira em Falta Os actores devem ser claramente colocados fora do sistema.

ES AF Actor em Falta

ES AI Actor Injustificado A especificação de requisitos não o requer explicitamente.

MI AN Actor Não activo Um actor deve ser capaz de activar pelo menos 1 caso de utilização que o diferencie de outro actor.

MI AE Actor Errado O actor identificado não é externo ao sistema.

ES CF Caso em Falta Não devem existir casos que manipulam informação que ninguém insere no sistema.

ES CI Caso Injustificado A especificação de requisitos não o requer explicitamente.

MI CE Caso Errado O caso corresponde a actividades humanas em vez de computacionais

CF CR Caso Repetido O mesmo caso de utilização não deve aparecer repetido no mesmo diagrama

CF CA Caso Agregado A granularidade é superior ao desejável. O caso deveria ser desagregado.

CF CD Caso Desagregado A granularidade é inferior ao desejável (detalhe exagerado). A representação resulta da desagregação de um caso.

VM GE Generalização Errada Só se podem representar heranças entre actores e entre casos de utilização.

ES GI Generalização Injustificada A especificação de requisitos não o requer explicitamente.

MI GF Generalização em Falta Podem dar-se duas situações:

• Actores generalizáveis – Há actores que partilham os mesmos casos;

• Casos Generalizáveis – Há casos de utilização que têm grande parte do(s) seu(s) cenário(s) semelhantes.

VM VE actiVação Errada Podem dar-se duas situações:

• Actor activa outro actor – Só os casos de utilização podem ser activados

• Caso activa caso - Um caso de utilização ou é activado por um actor (casos passivos) ou é auto-activado (casos activos);

• Caso activa actor humano – Os casos activos apenas podem activar actores não humanos (outros programas ou sistemas).

ES VI actiVação Injustificada A especificação de requisitos não o requer explicitamente.

ES VF actiVação em Falta Se o caso de utilização é passivo e não é abstracto, então tem de ser activado pelo menos por um actor

MI VS actiVação sem Sentido Os casos activos devem indicar o sentido de activação (do caso para o actor), porque por omissão a activação é iniciada pelo actor.

VM XE eXtensão Errada Actor estendendo ou sendo estendido por um caso de uso ES XI eXtensão Injustificada A especificação de requisitos não o requer explicitamente.

ES XF eXtensão em Falta

MI XS eXtensão com Sentido errado O sentido é do que estende para o que é estendido

VM IE Inclusão Errada Actor usando ou sendo usado por um caso de uso ES II Inclusão Injustificada A especificação de requisitos não o requer explicitamente.

ES IF Inclusão em Falta

MI IS Inclusão com Sentido errado O sentido é do que usa para o que é usado

MI EI Estereótipo Incorrecto Troca de estereótipos (<<includes>> trocado por um <<extends>> ou vice-versa)

VM EF Estereótipo em Falta Não foi indicado qual o tipo de ligação entre dois casos de utilização.

MI PF Ponto de extensão em Falta O ponto de extensão deve ser indicado no caso que é estendido MI PN Ponto de extensão Não

utilizado

O ponto de extensão deve ser referenciado na descrição do caso de utilização para indicar quando ocorre a situação de extensão

VM PM Ponto de extensão Mal inserido Não se coloca o ponto de extensão no caso de utilização que estende, mas sim no que é estendido.

(3)

Erros em Diagramas de Classes

TIPO CÓD DESIGNAÇÃO DESCRIÇÃO

CF IC Identificador não Convencional Um identificador de uma classe deve ser escrito no singular.

ES CI Classe Injustificada A especificação de requisitos não a requer explicitamente.

MI CD Classe Dispensável Uma classe é dispensável se:

• Não tem atributos, nem operações, nem associações;

• Tem atributos, operações e/ou associações, mas estas deviam estar incluídas em outra classe (atenção a associações de 1 para 1) MI CAD Classe Associativa Dispensável Quando ocorre uma cardinalidade não múltipla (i.e. 0-1 ou 0..1) de uma

classe participante numa associação, então não se justifica a existência de uma classe associativa.

MI GF Generalização em Falta Quando um conjunto de classes tiver atributos, operações e/ou associações comuns, então deve criar-se uma classe que generalize as anteriores.

MI GE Generalização Errada

MI EI Especialização Injustificada As classes descendentes devem conter atributos, operações e/ou associações que as distingam das classes ascendentes.

MI EE Especialização Errada Uma subclasse tem de ser compatível com a(s) superclasse(s). Por outras palavras, devemos poder utilizar um objecto da subclasse onde fosse esperado um objecto da(s) classe(s) ascendente(s)

MI HC Especialização Circular A classe A herda, directa ou indirectamente de outra classe B e vice- versa.

ES CE Cardinalidade Errada A cardinalidade da associação está errada

MI CF Cardinalidade em Falta A cardinalidade da associação não foi indicada; note-se que a omissão equivale a cardinalidade “1”.

MI PF Papéis em Falta Os papéis (roles) de cada classe na associação não foram indicados.

MI OF Operações em Falta Uma classe que não tem operações não tem as suas responsabilidades bem definidas.

MI AF Atributos em Falta Os objectos de uma classe que não têm (e que não herdam) atributos não têm estado.

MI AD Atributo Derivado O atributo é redundante porque o seu valor pode ser determinado a partir de informação já existente. As redundâncias levam à inconsistência de informação. Um atributo derivado deve ser substituído por uma operação.

MI AR Atributo Redundante O atributo é redundante porque:

i) já existe uma associação que permite obter o seu valor

ii) existe um atributo com o mesmo nome numa classe ascendente.

MI AA Atributo em vez de Associação Em vez do atributo deveria existir uma ligação com uma classe existente no modelo (de N para 1, provavelmente)..

MI AC Atributo do tipo Conjunto Um atributo destina-se a representar uma porção elementar de informação, não um conjunto de informação do mesmo tipo.

Provavelmente a classe necessita de ser factorizada numa agregação ou composição.

(4)

Erros em Diagramas de Estados

TIPO CÓD DESIGNAÇÃO DESCRIÇÃO

MI CD Classe Desconhecida O diagrama representa os estados dos objectos de que classe?

MI AD Atributo(s) Desconhecido(s) Que atributo(s) guarda(m) o estado modelado?

ES EI Estado Injustificado A especificação de requisitos não o requer explicitamente.

VM EIF Estado Inicial em Falta - VM EID Estado Inicial Duplicado - VM EFF Estado Final em Falta - VM EFD Estado Final Duplicado - MI ECF Estado Composto em Falta - MI ECE Estado Composto Errado -

MI VRF eVento Recebido em Falta Falta a causa do despoletar da transição MI CF Condição de Guarda em Falta

MI AF Acção em Falta

MI VEF eVento Enviado em Falta A transição despoleta um outro evento (provavelmente em outra classe)

MI AEF Acção de Entrada em Falta Deve-se usar nos casos em que todos os eventos que chegam a um estado fazem uma determinada acção

MI ASF Acção de Saída em Falta Deve-se usar nos casos em que todos os eventos que abandonam um estado fazem uma determinada acção

VM AI Acção Errada A acção não corresponde a uma operação disponibilizada na interface da classe. Este é um erro de rastreabilidade.

(5)

Erros em Diagramas de Sequência (S) e de Colaboração (C)

TIPO CÓD DESIGNAÇÃO DESCRIÇÃO DIAG

VM CD Caso de utilização / Cenário Desconhecido

O diagrama não explicita qual o cenário que pretende descrever

S/C

ES GS Granularidade Superior ao desejável

Falta detalhe na descrição do cenário S/C

VM AD Actor Desconhecido S/C

VM CD Classe Desconhecida A classe não existe no diagrama de classes S/C MI FF Fluxo de controlo em Falta Uma mensagem despoleta a execução de uma operação, a

qual tem um fluxo de controlo

S

MI RF Retorno em Falta S/C

MI RI Retorno Errado S/C

VM OD Operação Desconhecida A operação não está definida no diagrama de classes S/C

MI PF Parâmetros em Falta S/C

MI MF Mensagem em Falta S/C

VM AA Actor interage com Actor Não se representam mensagens trocadas entre actores S/C VM OR Objectos Repetidos Cada objecto deve ter um identificador único S/C

MI NF Numeração das mensagens em Falta

Num diagrama de colaboração sem a numeração das mensagens, perde-se a componente temporal

C

MI NI Numeração Incorrecta das mensagens

C

MI AF Aninhamento das mensagens em Falta

C

MI OF Objecto em Falta S/C

MI SI Sequência Incorrecta A sequência temporal é incorrecta S/C

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais

Além de serem gravados no cartão, os dados são transmitidos através de um módulo de rádio frequência transmissor para um receptor do modelo, onde há um outro PIC capaz de

São muitos os problemas ambientais causados pelo crescimento urbano, o poder público não acompanha esse crescimento com investimentos em obras de infraestrutura, são ocupados

Assim, analisamos as imagens femininas como corpos inscritos pelos jogos discursivos na imprensa no contexto marcado pelas imagens de seus corpos ornados em tais páginas, onde

Ao desenvolver esta pesquisa conclui-se que sendo a Contabilidade de Custos uma das áreas da Contabilidade, os princípios fundamentais de contabilidade também são válidos para ela

Os maiores coeficientes da razão área/perímetro são das edificações Kanimbambo (12,75) e Barão do Rio Branco (10,22) ou seja possuem uma maior área por unidade de

A abordagem mais usual de fadiga, que utiliza a tensão nominal e a classificação de detalhes geométricos para previsão da vida em fadiga, não abrange conexões mais complexas e