terça-feira, 1 de abril de 2008

Certificação UML 2 OMG - Sucesso

Deu tudo certo na prova que fiz hoje de manhã.

Como não poderia deixar de ser, essa é mais uma daquelas provas de TI que se tem que estudar e realmente entender o assunto, pois na hora da contagem regressiva do reloginho, quando se diz valendo, quanto mais souber, quanto mais seguro, menos se enrola com todo aquele linguajar peculiar da prova.

Tudo que li sobre UML foi muito útil, mas eu poderia ter lido algo com uma abordagem mais direcionada, algo como UML 2 Certification Guide.

É aquela velha questão: é sempre melhor concentrar nossos esforços no que realmente é necessário para se atingir o objetivo, como bem sabemos o objetivo é passar na prova, então não é uma boa ficar dedicando muito estudo com definições muito extensas de técnicas de como se levantar requisitos, ou de como fazer uma boa entrevista o cliente, isso de forma alguma cai na prova, a menos que se queira aprofundar mais do que se pede em uma prova UML.

Tem uma coisa que me chamou bastante a atenção e levei um bom tempo pra compreender, tem questões a respeito de digramas de sequencia, sobre troca mensagens, que diz que levando em consideração uma mensagem como sendo y, o envio dessa mensagem como sendo !y e o seu recebimento como sendo ?y, julgue o diagrama e coisa e tal... é por isso que volto a frisar devia ter lido o livro UML 2 Certification Guide, pois em nenhum outro lugar li a respeito da troca de mensagens que mostra o assunto por esse angulo.

Mas lá pela 4º questão tratando do mesmo assunto e muitos minutos perdidos pensando, comecei a usar aquela velha técnica que tanto nos familiarizamos nas provas de certificação Java, por exemplo, quando perguntam se tal trecho de código roda ou não roda e dai se é obrigado a compilar o código mentalmente ali mesmo. Nesse caso comecei a ver o momento em que a mensagem é enviada por um objeto, sua possível tragetória no tempo e, finalmente, seu recebimento pelo outro objeto. Ai as questões acabam ficando mais simples.

Preciso parar por aqui, melhor não me empolgar e não falar mais que devo.

Um abraço a todos

domingo, 30 de março de 2008

UML - Estereótipos

Na UML tem um tópico chamado mecanismos, entenda como sendo tipos de elementos que aparecem eventualmente para agregar mais informações aos diversos diagramas utilizados em uma modelagem UML ou para explicitar tecnicas como reuso, quando ocorre um extend, por exemplo.

Os mecanismos são divididos em quarto partes:

  • Especificações
  • Adornos
  • Divisões comuns
  • Extensibilidade



  • Vamos tratar aqui de Extensibilidade, que por sua vez é dividida em:

  • Atribuição de valores
  • Restrições
  • Estereótipos

  • Como diz o título do post, trataremos específicamente de Estereótipos.

    "Estereótipo amplia o vocabulário da UML, permitindo a criação de novos tipos de blocos de construção, derivados de outros já existentes, mas específico a determinado problema."

    Pra entender melhor, já reparou que quando uma classe inclui ou extende uma outra, as setas para os dois relacionamentos são idênticas? Esse é um bom exemplo para demonstrar que ao utilizar um estereótipo extend, você está querendo dizer que o elemento cliente possui todas as funcionalidades do fornecedor, ou seja, ele acaba de fato se tornando como o próprio fornecedor.

    Fica claro no exemplo anterior que não se trata de um include ou outro qualquer, pois foi dito exatamente do que se trata a relação. Além disso palavras reservadas extend, include, use, etc., possui todo um conceito que é de conhecimento comun, tanto que ao utiliza-la qualquer pessoa que analisar o diagrama saberá de imediato do que se trata esse e em que implica.

    Observe a figura, sem os estereótipos seria muito difícil saber do que se trata e como se comportaria cada uma das dependências:


    Nunca se esqueça que estereótipo não foi feito pro plural, ou seja, nunca se usa extends, includes, uses...

    Você vai acabar por perceber que utilizar um estereótipo não é somente recurso que rotula o relacionamento visualmente, ele vai muito além disso e aplica também uma série de regras nele contidas que pode dar todo um novo sentido para os elementos envolvidos.

    Acessa a especificação para UML da OMG aqui, e dê uma olhada na página 693, cujo título é Annex C: Standard Stereotypes, lá podemos constatar que a UML por padrão vem com um razoável conjunto de estereótipos pré definidos para os mais diverros fins.

    Links:
    Stereotype (Wikipedia)
    Referências de Estereótipos
    Stereotype by Stephen R. Palmer
    Um tutorial ai
    OMG Available Specification