>
Clique aqui para ler todos os artigos desta edição Conhecendo os detalhes da UML por Rodrigo Oliveira Spínola Leitura Obrigatória: SQL Magazine 13, artigo Projeto de software utilizando UML Na edição 13 da SQL Magazine escrevi um artigo apresentando os conceitos básicos e, também, mais utilizados da UML. Para apoiar nosso primeiro contato com a linguagem de modelagem, fiz uso de um estudo de caso com o intuito de apresentar como construir os diagramas dados os requisitos do software. Entretanto, diversos detalhes da notação da UML deixaram de ser abordados. Começaremos a ver neste artigo alguns detalhes presentes na UML e que podem ser importantes quando você estiver especificando o projeto do software. Em paralelo, veremos como utilizar os elementos apresentados utilizando o Rational Rose 2003 cuja versão trial pode ser encontrada e baixada em http://www-306.ibm.com/software/rational/. Diagrama de Classes No centro do processo de modelagem de softwares orientados a objetos temos o diagrama de classes. Ele permite modelar as definições de recursos essenciais à operação correta do sistema. As definições envolvem a modelagem da estrutura, relacionamentos e comportamentos de uma entidade. Veremos a partir de agora alguns pontos importantes sobre o diagrama de classes que não foram apresentados no artigo Projeto de Software Utilizando UML publicado na SQL Magazine 13. Os pontos que serão analisados serão boas práticas para definição de classes, também conheceremos os estereótipos (que descrevem como você pode personalizar as classes para facilitar o desenvolvimento em um domínio específico de aplicação) e outros conceitos como interface e mais alguns detalhes presentes nos diagramas de classes. Boas práticas para definição de classes Começarei este tópico relembrando rapidamente o conceito de classe: uma classe representa uma entidade do mundo real com seus atributos e comportamentos. Assim como as entidades do mundo real, elas também podem possuir relacionamentos. O conjunto de classes define o modelo de domínio (conceitos presentes no ambiente) do conjunto de entidades do mundo real que queremos contemplar em nosso sistema. Nome da Classe A primeira tarefa que efetuamos ao identificar uma classe é escolher um nome para ela. Parece ser simples, mas o nome de uma classe é muito importante. Ele deve ser conciso e não ambíguo para definir claramente qual tipo de objeto estamos representando na classe. O nome é quase sempre um substantivo no singular como Cliente e Locadora. Singular por que, geralmente, o plural refere-se ao conjunto de objetos instanciados a partir daquela classe. As regras de uso de maiúsculo/minúsculo na escrita dos nomes das classes geralmente seguem ao padrão: primeira letra de cada substantivo em maiúsculo e as demais em minúsculo. Vale lembrar aqui que não devemos colocar espaços entre dois substantivos que definem o nome de uma classe uma vez que o código gerado por esses nomes não admitem espaços em branco. Atributos Atributos definem as propriedades de um determinado objeto. Por exemplo, uma pessoa possui os atributos: nome, data de nascimento e altura dentre outros. Pensando um pouco mais além, o conjunto de atributos de um objeto nos informa seu estado (os valores atuais de cada atributo) e os demais objetos com os quais o objeto se relaciona. Este último pelo fato de que um relacionamento existente entre classes em um diagrama de objetos se transformará em um (ou nenhum) atributo em um (ou nos dois) dos objetos que se relacionam. Este mapeamento (relacionamento para atributo de classe) não é de um para um. Para definirmos devemos considerar outras informações disponibilizadas no diagrama de classes: navegabilidade, cardinalidade e tipo de relacionamento (associação, agregação, composição). Mas antes de entrarmos nesta discussão, vamos analisar antes algumas propriedades dos atributos. Assim como o nome das classes, também existem boas práticas para definição de atributos. Primeiramente, o atributo quase sempre é um substantivo e seguimos o seguinte princípio para sua escrita: primeiro nome todo em minúsculo e caso o substantivo seja composto, a primeira letra do segundo nome será em maiúsculo. Alguns exemplos são dataNascimento e dataInicio. A notação para definição de atributos em UML é: [visibilidade] [/] nome [: tipo] [multiplicidade] [= default] [{string-propriedade}] Onde: · Visibilidade: indica se o atributo poderá ser acessado diretamente por outra classe que esteja relacionada com a classe onde se encontra o atributo (ver Nota 1). · Nome: é o nome dado ao atributo; · Tipo: define a natureza dos valores que poderão ser armazenados no atributo. · Multiplicidade: indica se o atributo é multivaluado; · Default: inidica qual o valor padrão do atributo quando um objeto for instanciado a partir da classe. Nota 1. Visibilidade de atributos e operações Privada (-): somente objetos da mesma classe podem ter acesso (invocar) um atributo/operação privado. Pacote (~): somente objetos contidos em um mesmo pacote podem acessar um atributo/operação no nível de pacote. Pública (+): qualquer objeto pode chamar um atributo/operação público, desde que ele tenha acesso (esteja relacionado) ao objeto onde o atributo/operação foi definido. Protegida (#): apenas objetos definidos a partir de subclasses de uma superclasse que possui o atributo/operação tem acesso a ele.
Quer ler esse conteúdo completo?
Tenha acesso completo