Buscar

Diagrama de classes Parte I

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Diagrama de classes Parte I 
Nas aulas anteriores aprendemos diversos conceitos importantes: processos de 
software, requisitos, casos de uso, diagramas de casos de uso, tudo que foi visto até o 
momento nos auxiliam na montagem do diagrama de classes. Os elementos fundamentais de 
um diagrama de classes são as próprias classes e os relacionamentos existem entre elas. 
 Diagrama de Classes 
 Os digramas de classes pretendem apresentar a estrutura estática de um sistema. 
Lembre que para mostrar aspectos dinâmicos veremos digramas de interação. Os diagramas 
de classes pretendem fornecer uma visão de todas as “ estruturas” que serão manipuladas ou 
gerenciadas pelo sistema. O elemento fundamental deste tipo de diagrama são as classes. 
 O diagrama de classes pode representar diferentes aspectos do sistema. Em um 
processo de software, você pode ter o diagrama de classes de domínio, que trata uma 
aplicação em nível mais alto, independente de tecnologias que possam ser utilizadas. Neste 
nível são consideradas apenas as classes referentes ao negócio sob estudo,ou seja, ao domínio 
do problema, visando auxiliar na compreensão dos elementos envolvidos e na forma como 
estes elementos se relacionam.Wazlawick (2004) usa o termo modelo conceitual para 
identificar o que, nesta aula, estamos chamando de diagrama de classes de domínio. 
 Todos os detalhes referentes a solução do projeto ficam para a fase posterior, que é a 
fase de projeto, onde devem ser vistos os detalhes de interface e formas de armazenamento 
(banco de dados, segurança de acesso, comunicação entre outros.) (WASLAWICK, 2004). 
 Todos estes detalhes refrentes à implementação são representados no diagrama de 
classes de projeto, que se torna uma extensão do diagrama de classes de domínio. Ou seja, os 
dois digramas não tratam de coisas diferentes. As classes definidas no nível de negócios devem 
ser mantidas e deve ser feita a adição de detalhes específicos, que vão depender das 
tecnologias escolhidas para implementação do problema.Nesta disciplina de análise I 
trataremos sobre o diagrama de classes de domínio. 
 Classes 
 Como mencionado, o elemento fundamental de um diagrama de classes é a própria 
classe. Juntamente com os relacionamentos possíveis, elas vão permitir que você possa 
construir digrama de classes tanto no nível de negócio como no nível de projeto. 
 As classes representam entidade do mundo real que estão envolvidos no negócio 
analisado e que resultará no software a ser construído. Considerando o nosso sistema de 
controle acadêmico, podemos rapidamente algumas classes principais, como professor, 
disciplina e avaliação. De acordo com Wazlawick (2004), a classe representa conceitos que não 
podem ser descritos simplesmente por um tipo alfanumérico, ou seja, representam um 
conceito mais complexo. Por este motivo, Professor deve ser considerado uma classe do 
sistema, enquanto o nome do professor não pode ser uma classe, já que pode ser 
representado, simplesmente, por um campo do tipo caracter. 
 A UML fornece notação própria para representação de classes conforme representado 
na figura 1, a classe é representado por um retângulo, dividido em três compartimentos: o 
compartimento de identificação, o compartimento de atributos e o compartimento de 
definição de métodos. 
 
 
 
 No compartimento superior está o nome da classe. No caso do exemplo da Figura1, o 
nome da classe é ClasseGenerica. O sistema de controle acadêmico pode ter classes nomeadas 
“Professor”, “Aluno”, “Avaliação”. Vamos usar o mesmo método padrão sugerido pela UML 
para nomeação das classes, utilizando a primeira letra de cada palavra que compõe o seu 
nome em maiúsculo. 
 Em seguida, temos o compartimento onde são definidos os atributos da classe. Os 
atributos são características ou propriedades que uma classe tem. De acordo com Wazlawick 
(2004), um atributo é uma informação alfanumérica, que está diretamente ligada ao conceito 
representado por uma classe. No caso da classe “Professor”, temos atributo como nome, idade 
e data de nascimento. Para a classe “Disciplina”, temos atributos como o código da disciplina e 
seu nome. A forma geral para definição de uma atributo é apresentada a seguir (PENDER, 
2004). 
 [Visibilidade] Nome-Atributo [Multiplicidade]:[Tipo]=[Valor] 
 
 A visibilidade indica se o atributo está disponível para ser utilizado por outras 
classes. Um atributo pode ser público (representado pelo símbolo +) ou privado (-). Uma 
terceira opção é que o atributo seja protegido (#). Neste caso, o atributo pode ser acessado 
somente por classes derivadas da classe a qual o atributo pertence. 
 Depois da visibilidade, vem o nome do atributo, que deve identificar o atributo 
exclusivamente dentro da classe e pode vir a ser seguido da multiplicidade, usado para caso de 
atributos múltiplo, como vetores. A UML sugere que a primeira palavra do nome do atributo 
deve ser iniciar por letra minúscula e as demais, por letra minúsculas. A seguir, vem o tipo, 
indicando o tipo de dado que aquele atributo pode comportar (char,real,inteiro entre outros). 
A cada atributo pode ser atribuído a um valor inicial assim que ele é criado, sendo que esta 
opção irá depender da linguagem de programação usada, que deve fornecer suporte para 
função. 
 Alguns exemplos de declaração de atributos para classe “Professor” seriam: 
-dataNasciemto: data: indica que o atributo data de nascimento é do tipo data e deve estar 
protegido de acesso externo. 
+nome: char: Indica que o nome é do tipo caracter e pode ser acessadopor métodos de outras 
classes. 
 Agora, vamos falar um pouco sobre o compartimento de identificação de métodos, 
onde são declaradas as ações que uma classe pode desempenhar. Os métodos seguem um 
estilo muito próximo dos atributos: 
[Visibilidade]Nome-Método(Parâmetro):[Valor-de-Retorno] 
 A visibilidade segue os mesmos critérios dos atributos. O nome do método também 
deve identificá-lo de forma única dentro da classe, e a primeira palavra do nome deve iniciar 
com letra minúscula e as demais, com letra maiúscula. Os parâmetros irão indicar as variáveis 
de recebimento e retorno dos métodos e valor do retorno indica se o método retorna algum 
valor ao término de sua execução. Alguns exemplos de métodos estão definidos a seguir: 
 +calcularValor(va1:int, val2:int):int: função que retorna valor inteiro, e que pode ser 
acessado externamente. 
 +armazenarDados(nome:char,salário:float): Método que armazena os dados enviados 
como parâmetro, e que pode ser acessado externamente. 
Na figura2, vemos um exemplo de classe para o Sistema de Controle Acadêmico, 
representando as disciplinas de um determinado curso. Esta classe possui três métodos. Todos 
os atributos foram declarados com visibilidade privada, e os métodos com visibilidade pública. 
 
Identificando classes e atributos 
 Conforme mencionado, nesta disciplina, estamos falando de classes de domínio, sem 
considerar detalhes de implementação . Você pode esta se perguntando: “Como vou fazer 
para descobrir quais são as classes envolvidas no sistema? Onde devo procura-las?” 
 Como vimos na aula anterior os casos de uso são utilizados para detalhar um requisito 
funcional, e nele vai estar descrito quais são as entidades que o sistema sendo criado vai 
manipular. Obviamente, este caso de uso deve estar bem escrito e detalhado num nível 
adequado para que seja possível obter a informação adequado a partir dele. 
 Como vemos no sistema de controle acadêmico, é necessário manipular informação 
referente a professores, alunos, avaliações, entre outros. Por este motivo, estes elementos 
devem ser identificados como classe. Quando você quiser encontrar as classes, faça uma 
leituracuidadosa dos casos de uso, identificando os conceitos que são relevantes para se 
tornarem classes e quais são os seus atributos. Quando você estiver fazendo isso, deve 
aproveitar para identificar os conceitos diferentes, que são sinônimos. Por exemplo,se você, 
num momento, utiliza o termo aluno e, em outro , o termo estudante, procure padronizar 
utilizando um termo único.Para auxiliar nesta tarefa, o glossário é uma ferramenta bastante 
útil. Procure sempre utilizar os termos conforme estão descritos nele. 
 Deve-se tomar bastante cuidado, também, para não confundir classes com atributos. 
Um erro comum que pode ocorrer é declarar um atributo como se fosse uma classe do 
sistema. Lembre que ambos têm diferentes níveis de complexidade. 
 Além de todos os pontos descritos anteriormente, quando estamos identificado as 
classes a partir de um caso de uso, temos que tomar cuidado para não tratar cada caso de uso 
como subsistema. Ou seja, as classes (e posteriormente, o diagrama de classes) devem ser 
válidos par sistema como um todo, sendo que antes de criar uma nova classe, sempre deve ser 
verificado se ela já não foi definida anteriormente para um outro caso de uso. Por exemplo, 
vários casos de uso utilizam a classe Aluno. Entretanto, não deve ser criada uma classe aluno 
para cada situação, mas deve ser criada uma classe Aluno a ser usada em todo o sistema. A 
cada caso de uso estudado, esta classe pode sofrer alterações, de forma que contenha todos 
os atributos necessários para o projeto. 
 Normalmente, não se consegue definir todas as classes envolvidas em uma primeira 
tentativa. Fazer a identificação das classes e dos seus atributos é um trabalho que, 
normalmente, passa por sucessivas refinamentos.Quando um requisito modifica,ou mesmo 
um caso de uso é reestruturado, as classes devem ser revisitadas de forma que sempre 
reflitam as mudanças que forma especificadas. 
 Em se tratando da identificação das classes para elaboração do diagrama de classes de 
projeto, outras ferramentas podem ser úteis, tais como os diagramas de interação. (próximas 
aulas). 
 Levantamento de Classes – Sistema de Controle Acadêmico 
 Para ilustrar a busca de classe, vamos usar o nosso sistema de controle acadêmico. 
Novamente, estamos tratando do diagrama de classes em um nível de negócio, desprezado 
detalhes de implementação. 
 Na Figura 3, vamos as classes “Aluno”, “Disciplina”, “Avaliação”, “Professor”, “Curso” e 
“NotaAluno”. Neste diagrama, foram definidas, até o momento, somente as operações 
básicas que são realizados pelas classes. Futuramente, veremos com obter mais detalhes 
sobre os métodos que devem pertencer a uma classe. O atributo “numCreditosAutorizado” da 
classe “Curso” indica p número máximo de créditos que o aluno de um curso pode fazer 
durante um semestre, e atributo “numeroCreditos” da classe “Disciplina” indica o número de 
créditos da disciplina individualmente. Estes campos foram atribuídos devido às validações que 
definidos nos casos de uso descritos. 
 
Relacionamentos entre classes 
 Até agora, vimos o que são classes e algumas dicas sobre como identificá-los. 
Entretanto, o diagrama de classes não é simplesmente composto de um conjunto de classes 
soltas, mas, sim, de classes relacionadas. 
 Existem diferentes formas de se efetuar o relacionamento entre classes. As três 
principais formas de relacionamento entre classes são: Associação, agregação e generalização. 
 
 
 
 
 
 
 
 
 
 
Atividades

Outros materiais