Você está na página 1de 14

Trabalhando com os diagramas da UML Parte 2

Esse artigo ir apresentar as principais notaes e exemplos prticos de como trabalhar


com um diagrama de classes da UML.
0

Gostei (0) (0)

Demais posts desta srie:


Trabalhando com os diagramas da UML Parte 1[/link]

Artigo no estilo Curso

Fique por dentro

O Diagrama de classes uma das tcnicas mais utilizadas no desenvolvimento orientado a objetos. Ele descreve a estrutura dos objetos de um sistema
e para cada objeto, descreve a sua identidade, os seus relacionamentos com os outros objetos, os seus atributos e as suas operaes. Por ser um
diagrama de grande utilidade, esse artigo mostra o conceito dos elementos mais importantes e um estudo de caso detalhado, criado no Astah
Professional. Esse artigo rene as caractersticas mais importantes e utilizadas da notao de UML 2.0 do Diagrama de Classes e se torna til para
estudantes, analistas de requisitos, analistas de sistemas e desenvolvedores, que utilizam diagramas de classes como apoio no desenvolvimento de
softwares.

O diagrama de classes um dos diagramas mais utilizados da UML. Ele permite a visualizao das classes que iro compor o sistema com
seus respectivos atributos e mtodos. Ele visa demonstrar como as classes do diagrama se relacionam e transmitem informaes entre si. Ele
composto por suas classes e associaes entre elas.

O diagrama de classes um modelo esttico e pode ser organizado em pacotes. Representa termos do domnio do negcio, ideias, coisas e
conceitos no mundo real. Descreve o problema representado pelo sistema a ser desenvolvido, sem considerar caractersticas da soluo a ser
utilizada.

Este artigo apresenta os elementos bsicos do diagrama de classes e um estudo de caso detalhado. Os exemplos foram criados no Astah
Professional com as notaes baseadas na UML 2.0.

Elementos bsicos do diagrama de classes

Atributos e mtodos

As classes costumam ter atributos e mtodos. Uma classe representada como um retngulo com at trs divises, conforme pode ser visto
na Figura 1. A primeira diviso contm a descrio da classe, que no exemplo Automvel. A segunda diviso armazena os atributos e seus
tipos de dados. A terceira diviso contm a lista de mtodos, que no exemplo contm o mtodo ConsAutomovel() que permite consultar o
automvel.
Figura 1. Exemplo de Classe

Os smbolos menos (-) e mais (+) na frente dos atributos e mtodos representam a visibilidade dos mesmos. A visibilidade utilizada para
indicar o nvel de acessibilidade de um determinado atributo ou mtodo, sendo representada esquerda destes. A Tabela 1 mostra os quatro
modos de visibilidade existentes: pblico, protegido, privado e pacote.

Visibilidade privada (-) Significa que apenas os objetos da classe podero


enxerg-lo.
Visibilidade protegida (#) Significa que, alm dos objetos da classe, os mtodos de
suas subclasses tambm podero enxerg-lo.
Visibilidade pblica (+) Significa que a classe pode ser utilizada por qualquer
objeto.
Visibilidade pacote (~) Significa que qualquer classe est visvel para qualquer
objeto dentro do pacote.

Tabela 1. Exemplos de visibilidade

A classe no precisa conter obrigatoriamente trs divises. Ela pode no conter atributos ou mtodos. O nome da classe obrigatrio, e pode
acontecer que nem os mtodos nem os atributos precisem ser representados no diagrama. A classe apresentada na Figura 1 mostra uma
classe sem parmetros. Eles tambm no so obrigatrios. Em um diagrama de classes com muitas classes possvel que sejam apresentados
apenas o nome dos mtodos das classes, sem especificar os parmetros que eles iro receber.

Associaes

As associaes so os relacionamentos entre as classes, que permitem que elas compartilhem informaes entre si. Uma associao
representada por uma linha slida conectando duas classes.

Uma associao unria ocorre quando existe um relacionamento de um objeto de uma classe com objetos da mesma classe. A Figura 2
mostra uma classe com o nome Funcionrio. A linha intitulada Supervisiona atinge a prpria classe. Isso ocorre porque um supervisor pode
supervisionar vrios funcionrios e por sua vez ele tambm funcionrio da empresa, portanto, constitui uma instncia da classe
Funcionrio.
Figura 2. Exemplo de associao unria

A multiplicidade representada pelo valor 0..*. Esse exemplo mostra que um funcionrio pode ou no supervisionar outros funcionrios,
mas um funcionrio tem um e apenas um funcionrio como supervisor imediato. A Tabela 2 mostra os exemplos de multiplicidade.

Multiplicidade Significado
0..1 No mnimo zero e no mximo um.
1..1 Um e somente um.
0..* No mnimo zero e no mximo muitos
* Muitos
1..* No mnimo um e no mximo muitos
m..n Faixa de valores (por exemplo: 4..7)

Tabela 2. Exemplos de multiplicidade

Associaes binrias ocorrem quando so identificados relacionamentos entre objetos de duas classes distintas. A Figura 3 mostra um objeto
da classe Funcionrio que pode relacionar-se ou no com instncias da classe Dependente, conforme pode ser visto na multiplicidade 0..*.
Uma instncia da classe Funcionrio possui, no mnimo, nenhuma instncia e no mximo, muitas instncias da classe Dependente e uma
instncia da classe Dependente possuda por uma e somente uma instncia da classe Funcionrio.

Figura 3. Exemplo de associao binria

J associaes ternrias ou N-rias so associaes que conectam objetos de mais de duas classes. So representadas por um losango para
onde convergem todas as ligaes da associao. No Astah o smbolo dessa associao um crculo conforme mostrado na Figura 4.
Figura 4. Exemplo de associao ternria

Veja que um professor leciona para, no mnimo, uma turma e, no mximo, para muitas. Uma turma tem, no mnimo, um professor e no
mximo, muitos. Um professor, ao lecionar para uma determinada turma, utiliza no mnimo uma sala de aula e no mximo muitas. As
associaes ternrias so teis para demonstrar associaes complexas. No entanto, evite utiliz-las, pois sua leitura , por vezes, difcil de
ser interpretada.

Agregao

um tipo especial de associao, onde se tenta demonstrar que as informaes de um objeto (chamado objetos todo) precisam ser
complementadas pelas informaes contidas em um ou mais objetos de outra classe (chamados objetos parte). Uma relao todo-parte entre
dois objetos indica que um dos objetos est contido no outro. Podemos tambm dizer que um objeto contm o outro.

O exemplo na Figura 5 mostra que uma pessoa pode possuir muitas contas e uma conta pode ser possuda por muitas pessoas, como no caso
de uma conta conjunta. Ou seja, os objetos-parte podem ser compartilhados por mais de um objeto todo.

Figura 5. Exemplo de agregao

A associao de agregao pode em alguns casos ser substituda por uma associao binria simples. A funo principal da associao de
uma agregao identificar a obrigatoriedade de uma complementao das informaes de um objeto-todo por seus objetos-parte, quando
este for consultado. J na associao binria essa obrigatoriedade no est explcita.

Composio

Na composio, os objetos-parte tm de estar associados a um nico objeto-todo. Os objetos parte s podem pertencer a um nico objeto
todo e tm o seu tempo de vida coincidente com o dele.

O exemplo da Figura 6 mostra que um objeto da classe Revista refere-se no mnimo, um objeto da classe Edio, podendo se referir a
muitos objetos dessa classe, e que cada instncia da classe Edicao relaciona-se nica e exclusivamente, a uma instncia especfica da classe
Revista, no podendo se relacionar com outra. O exemplo tambm mostra que um objeto da classe Edicao deve se relacionar a no mnimo
sete objetos da classe Artigo, podendo se relacionar at 10 objetos da j citada classe.
Figura 6. Exemplo de composio

Generalizao e Especializao

O objetivo dessa associao representar a herana entre as classes, identificando as super classes, que so as gerais, e as subclasses, que so
as especializadas. Para reaproveitar cdigo, cria-se uma classe geral em que so declarados os atributos e mtodos comuns a todas as classes
envolvidas no processo, ento, declara-se as classes especializadas, ligadas a classe geral, que herdam todas as suas caractersticas. Veja o
exemplo na Figura 7. O exemplo mostra uma classe comum tornando-se uma classe geral e a partir dela, duas classes especializadas: Conta-
Especial e Conta-Poupana que herdam suas caractersticas.

Figura 7. Exemplo de Generalizao e especializao

Classe associativa

utilizada quando ocorrem associaes que possuem multiplicidade muitos para muitos em todas as suas extremidades. A Figura 8 mostra
que um fornecedor fornece muitos produtos e muitos produtos podem ser fornecidos por muitos fornecedores. Nesse caso, surge uma nova
classe ProdutoFornecedor com os atributos correlacionados.

Figura 8. Exemplo de classe associativa

Dependncia

Demonstra certo grau de dependncia de uma classe a outra. Quando ocorrer mudana em uma classe, essa mudana dever refletir na outra.
A Figura 9 mostra que o item de carrinho depende da classe CarrinhodeCompras.
Figura 9. Exemplo de dependncia

Realizao

um tipo de relacionamento que mistura caractersticas dos relacionamentos de generalizao e dependncia. usada para identificar
classes responsveis por executar funes para classes que representam interfaces. Este tipo de relacionamento herda o comportamento de
uma classe e no sua estrutura. representado por uma seta tracejada, vazia, que aponta para a classe que tem um ou mais funes que
devem ser realizadas por outra, e na outra extremidade a classe que realiza (implementa) tais funes, assim como mostra a Figura 10.

Figura 10. Exemplo de realizao

Restrio

So informaes extras que definem condies a serem validadas durante a implementao dos mtodos de uma classe, das associaes entre
as classes ou mesmo de seus atributos. A Figura 11 mostra que o cliente poder realizar uma nova locao apenas se no tiver nenhuma
pendncia, ou seja, se no tiver nenhuma outra locao pendente.

Figura 11. Exemplo de restrio

Interfaces

As interfaces descrevem os servios disponveis de classes especficas. Elas podem ser de dois tipos: fornecidas ou requeridas. As interfaces
fornecidas so representadas por um crculo fechado ligado a classe por uma linha slida. O conjunto de interfaces implementadas por uma
classe forma suas interfaces fornecidas. Ela representa o conjunto de servios que a classe oferece a seus clientes. Por exemplo, a interface
iTeclado, apresentada na Figura 12 representa a interface fsica entre a placa me e um teclado, onde a placa me responsvel por
interpretar as teclas pressionadas no teclado.

As interfaces requeridas so representadas por um semicrculo ligado a uma classe por uma linha slida. Elas descrevem os servios que
outras classes devem fornecer a uma determinada classe, que no precisa ter conhecimento de quais classes implementaro esses servios.
No exemplo da Figura 13, mostra a interface requerida iMonitor, que representa a interface fsica entre uma placa-me e um monitor, onde o
monitor deve apresentar no vdeo as imagens e os smbolos solicitados pelo processador. Em ambos os tipos de interfaces necessrio
definir uma porta de comunicao entre a interface e a classe.

Figura 12. Exemplos de interface fornecida e requerida

Figura 13. Exemplos de interface requerida

Esteretipos

Esteretipos so teis quando precisamos definir um novo significado a um elemento existente da UML. Podemos definir diferentes tipos de
esteretipos. Alguns exemplos so:

Entity: A classe uma entidade. A classe possui informaes recebidas e armazenadas pelo sistema ou geradas por meio deste. As
informaes podem ser conservadas em memria ou podem ser persistentes. A Figura 14 mostra uma classe com o esteretipo de
persistente.

Figura 14. Exemplo de interface

Boundary: A classe boundary uma classe de fronteira, geralmente interfaces grficas. Muitas vezes ela precisa interagir com outra classe
do tipo Control. Ver Figura 15.

Control: A classe control identifica classes que servem de intermdio entre as classes > e as demais classes do sistema. Os objetos Control
so responsveis por interpretar os eventos ocorridos sobre os objetos. Ver Figura 15.
Figura 15. Exemplo de interface boundary e control

Veja que a classe Interface_Agencia representa a interface do sistema e seus objetos so basicamente textos, botes, caixas de edio, alm
do prprio formulrio. Os eventos que ocorrem sobre tais objetos so repassados para um objeto Controlador_Agencia que interpretar esses
eventos e se necessrio, ir repassar para outros objetos do sistema.

O modelo conceitual do diagrama de classes deve se preocupar em representar as informaes que o software necessita, em termos de classes
e seus atributos, bem como as associaes que as classes podero conter nessa etapa. Somente na fase de projeto produzido o modelo de
domnio, que j enfoca a soluo do problema. Todos os mtodos necessrios s classes so descobertos a partir da modelagem dos
diagramas de iterao, como o diagrama de sequncia. O estudo de caso a seguir, apresenta o diagrama de classes referente ao problema
proposto. Nesse exemplo, foram apontados alguns mtodos que foram possivelmente identificados. Para evitar o excesso de elementos no
diagrama, nenhum mtodo foi parametrizado.

Estudo de caso

Uma empresa de informtica tem a necessidade de lanar suas despesas por setor de trabalho, por meio do qual um usurio dever lanar as
despesas pela intranet. Os seguintes requisitos devero ser levados em considerao:

1. O sistema dever conter as opes para incluir, alterar e excluir as despesas, o tipo de despesa, a unidade de medida, o setor de trabalho,
usurio, endereo e realizar o lanamento das despesas;

2. A tela para cadastrar o tipo de despesa dever conter apenas descrio do tipo da despesa. A tela para cadastrar a unidade de medida
dever conter a descrio e a sigla da unidade de medida. A tela para cadastrar as despesas dever conter o tipo da despesa, a sigla da unidade
de medida e a descrio da despesa. A despesa dever ter uma data incio e fim de ativao do item;

3. Para lanar uma despesa, o usurio dever selecionar o tipo da despesa, a despesa e informar a quantidade do item lanado;

4. Ao lanar uma despesa, o sistema dever armazenar o setor responsvel pela despesa e o usurio da empresa que realizou o lanamento.
Este aquele que estiver logado no sistema;

5. Um lanamento dever ser composto de, no mnimo, um item, podendo conter muitos itens de despesa. Cada item relativo ao lanche,
almoo, papel, lpis e outros, independentemente da quantidade;

6. A tela de lanamento de despesas dever conter a data do lanamento das despesas;

7. O sistema dever calcular o valor total da despesa por lanamento e apresentar o total na tela de lanamento;

8. Durante o lanamento das despesas, itens podero ser excludos e includos novamente;

9. Ao incluir um registro de lanamento da despesa o sistema dever salvar todos os itens do lanamento da despesa;

10. Um usurio poder realizar muitos lanamentos, mas, um lanamento poder ser realizado por apenas um usurio;

11. Cada lanamento deve ser feito por setor e a empresa precisar saber qual setor consome mais despesas por ms e o consumo mdio
anual de cada setor.

Diagrama de Classes
A Figura 16 mostra a definio das classes que compe o diagrama, juntamente com as associaes, mtodos e atributos. Essa modelagem
bem simples contemplando o principal objetivo do sistema: o lanamento das despesas. Ser realizada uma descrio do diagrama de classes,
detalhando cada classe individualmente.

Figura 16. Exemplo de diagrama de classes - Modelo de domnio

Classe Interface_Lanamento_Despesas

Essa classe representa a pgina eletrnica por meio da qual o usurio ir realizar o lanamento da despesa. Ela representa a comunicao
entre o usurio e o sistema de lanamento, conforme demonstra o esteretipo >. Ela controlada pela classe Controlador_Lanamento, que
apresentada a seguir.

Classe Controlador_Lancamento

Essa classe apresentada pelo esteretipo > uma classe de controle, responsvel por interpretar as solicitaes realizadas na pgina pelo
usurio e repassar essas solicitaes para as classes de entidade que compem o sistema. Durante as operaes do sistema ela ir relacionar-
se com diversas outras classes, por isso ela est associada a todas elas.

Classe Usurio

Essa classe tem como funo armazenar as informaes relativas aos usurios do sistema, inclusive aquele que ser responsvel pelo
lanamento das despesas. Os atributos necessrios nessa classe so: Identificao do tipo long, login, senha, nome, endereo, telefone e e-
mail, todos estes do tipo String. Essa classe se relaciona com as classes Endereco e Lancamento_Despesa. Esses relacionamentos indicam
que um usurio possui apenas um endereo e um endereo possudo por apenas um usurio. Um lanamento de despesa realizado por
apenas um usurio, mas um usurio pode realizar vrios lanamentos. A Tabela 3 mostra os mtodos da classe Usurio.

Login() Permite autenticar um usurio na pgina, recebendo como


parmetros o login e a senha do usurio. Se estes estiverem
corretos, o mtodo retornar verdadeiro informando que o
usurio foi autenticado com sucesso, caso contrrio retornar
falso.
ConsultarUsuario() Permite consultar um usurio que est logado no sistema,
retornando uma String.
IncluirUsuario() Permite incluir um novo usurio. Recebe como parmetro todos
os atributos definidos na classe Usurio e retorna verdadeiro se o
usurio foi registrado com sucesso, caso contrrio retornar
falso.
AlterarUsuario() Permite alterar um usurio. Recebe como parmetro todos os
atributos definidos na classe Usurio e retorna verdadeiro se a
operao pode ser realizada, e retornar falso, caso contrrio.
ExcluirUsuario() Permite excluir um usurio. O mtodo retorna verdadeiro se foi
finalizado com sucesso, ou falso caso contrrio.

Tabela 3. Mtodos da classe Usurio

Classe Setor

Essa classe armazena as informaes referentes aos setores de trabalho (Escritrio de Informtica, Vendas e outros) da empresa. Essa classe
se relaciona com a classe Lancamento_Despesa. Esse relacionamento indica que um lanamento de despesa possui apenas um setor, mas,
um setor pode possuir vrios lanamentos. Seu nico atributo a descrio do setor e os seus mtodos so apresentados na Tabela 4.

ConsultarSetor() Permite consultar um setor de trabalho para o lanamento da


despesa, retornando uma String com seus dados.
IncluiSetor() Permite incluir um novo setor. Recebe como parmetro todos os
atributos definidos na classe Setor e retorna verdadeiro se o setor
foi registrado com sucesso, caso contrrio retornar falso.
AlterarSetor() Permite alterar um setor. Recebe como parmetro todos os
atributos definidos na classe Setor e retorna verdadeiro se a
operao pode ser realizada, e retornar falso, caso contrrio.
ExcluirSetor() Permite excluir um setor. O mtodo retorna verdadeiro se foi
finalizado com sucesso, ou falso caso contrrio.

Tabela 4. Mtodos da classe Setor

Classe Endereo

Essa classe tem como funo armazenar as informaes relativas aos endereos dos usurios e ela se relaciona com as classes Cliente,
Tipo_Logradouro e Tipo_ Complemento. Os relacionamentos indicam que um cliente possui apenas um endereo e um endereo pertence
apenas a um cliente. Um endereo possui apenas um tipo de logradouro, porm, um tipo de logradouro pertence a vrios endereos. Um
endereo possui apenas um tipo de complemento, porm, um tipo de complemento pertence a vrios endereos. A associao de agregao
foi inserida, mas, no se torna obrigatria.

Seus atributos so: CEP, Logradouro, Complemento, Nmero, Bairro, Cidade, Estado e UF. Seus mtodos so apresentados na Tabela 5.

ConsultarEndereco() Permite consultar um endereo, retornando uma String com


seus dados.
IncluirEndereco() Permite incluir um novo endereo. Recebe como parmetro
todos os atributos definidos na classe Endereco e retorna
verdadeiro se o endereo foi registrado com sucesso, caso
contrrio retornar falso.
AlterarEndereco() Permite alterar um endereo. Recebe como parmetro todos os
atributos definidos na classe Endereco e retorna verdadeiro se
a operao pode ser realizada, e retornar falso, caso contrrio.
ExcluirEndereco() Permite excluir um endereo. O mtodo retorna verdadeiro se
foi finalizado com sucesso, ou falso caso contrrio.

Tabela 5. Mtodos da classe Endereo

Classe Tipo_Logradouro

Essa classe tem como funo armazenar as informaes referentes aos tipos de logradouros (Av, Rua, Praa, etc.) e ela se relaciona com a
classe Endereco. Seu nico atributo a Descrio do tipo String. Seus mtodos so apresentados na Tabela 6.

ConsultarTipoLogra() Permite consultar um tipo de logradouro.


IncluirTipoLogra() Permite incluir um novo tipo de logradouro. Recebe como
parmetro todos os atributos definidos na classe
Tipo_Logradouro e retorna verdadeiro se o endereo foi
registrado com sucesso, caso contrrio retornar falso.
AlterarTipoLogra() Permite alterar um tipo de logradouro. Recebe como parmetro
todos os atributos definidos na classe Tipo_Logradouro e
retorna verdadeiro se a operao pode ser realizada, e retornar
falso, caso contrrio.
ExcluirTipoLogra() Permite excluir um tipo de logradouro. O mtodo retorna
verdadeiro se foi finalizado com sucesso, ou falso caso
contrrio.

Tabela 6. Mtodos da classe Tipo_Logradouro

Classe Tipo_Complemento

Essa classe tem como funo armazenar as informaes referentes aos tipos de complementos (Loja, Apt, etc.) e ela se relaciona com a classe
Endereco. Seu nico atributo a Descrio do tipo String. Seus mtodos so apresentados na Tabela 7.

ConsultarTipoCompl() Permite consultar um tipo de complemento.


IncluirTipoCompl() Permite incluir um novo tipo de complemento. Recebe como
parmetro todos os atributos definidos na classe
Tipo_Complemento e retorna verdadeiro se o endereo foi
registrado com sucesso, caso contrrio retornar falso.
AlterarTipoCompl() Permite alterar um tipo de complemento. Recebe como
parmetro todos os atributos definidos na classe
Tipo_Complemento e retorna verdadeiro se a operao pode
ser realizada, e retornar falso, caso contrrio.
ExcluirTipoCompl() Permite excluir um tipo de complemento. O mtodo retorna
verdadeiro se foi finalizado com sucesso, ou falso caso
contrrio.

Tabela 7. Mtodos da classe Tipo_Complemento

Classe Tipo_Despesa
Essa classe armazena os tipos de despesas a serem lanadas (alimentao, material de limpeza, material de escritrio, dentre outros). Essa
classe se relaciona com a classe Despesa. O relacionamento indica que uma despesa possui apenas um tipo de despesa, mas um tipo de
despesa pertence a vrias despesas. Seu nico atributo a Descrio do tipo String. Seus mtodos so apresentados na Tabela 8.

ConsultarTipo() Permite consultar um tipo de despesa e retorna uma string com seus
dados.
IncluirTipo() Permite incluir um novo tipo de despesa. Recebe como parmetro
todos os atributos definidos na classe Tipo_Despesa e retorna
verdadeiro se o tipo de despesa foi registrado com sucesso, caso
contrrio retornar falso.
AlterarTipo() Permite alterar um tipo de despesa. Recebe como parmetro todos
os atributos definidos na classe Tipo_Despesa e retorna verdadeiro
se a operao pode ser realizada, e retornar falso, caso contrrio.
ExcluirTipo() Permite excluir um tipo de despesa. O mtodo retorna verdadeiro se
foi finalizado com sucesso, ou falso caso contrrio.

Tabela 8. Mtodos da classe Tipo_Despesa

Classe Unidade_Medida

Essa classe armazena as unidades de medida (caixa, unidade, Litro e outros). Essa classe se relaciona com a classe Despesa. O
relacionamento indica que uma despesa possui uma unidade de medida, mas uma unidade de medida pertence a vrias despesas. Seus
atributos so a Descrio e a Sigla, ambos do tipo String. Seus mtodos so apresentados na Tabela 9.

ConsultarUnidMed() Permite consultar uma unidade de medida para incluir no tipo de


despesa.
IncluirUnidMed() Permite incluir uma nova unidade de medida. Recebe como
parmetro todos os atributos definidos na classe
Unidade_Medida e retorna verdadeiro se a unidade de medida
foi registrada com sucesso, caso contrrio retornar falso.
AlterarUnidMed() Permite alterar uma unidade de medida. Recebe como parmetro
todos os atributos definidos na classe Unidade_Medida e
retorna verdadeiro se a operao pode ser realizada, e retornar
falso, caso contrrio.
ExcluirUnidMed() Permite excluir uma unidade de medida. O mtodo retorna
verdadeiro se foi finalizado com sucesso, ou falso caso
contrrio.

Tabela 9. Mtodos da classe Unidade_Medida

Classe Despesa

Essa classe armazena todas as despesas que devero ser lanadas. Como mostrado anteriormente, essa classe est associada s classes
Tipo_Despesa e Unidade_Medida. Os atributos dessa classe so a Descrio do tipo String, Data_Inicio e Data_Fim de ativao da
despesa. A classe Despesa poderia conter outros campos como, por exemplo, para controle de estoque ou outros, mas isso foge dos requisitos
que esto sendo apresentados nesse exemplo. Seus mtodos so apresentados na Tabela 10.

ConsultarDespesa() Permite consultar a descrio de uma despesa para incluso no


lanamento.
IncluirDespesa() Permite incluir uma nova despesa. Recebe como parmetro
todos os atributos definidos na classe Despesa e retorna
verdadeiro se a despesa foi registrada com sucesso, caso
contrrio retornar falso.
AlterarDespesa() Permite alterar uma despesa. Recebe como parmetro todos os
atributos definidos na classe Despesa e retorna verdadeiro se a
operao pode ser realizada, e retornar falso, caso contrrio.
ExcluirDespesa() Permite excluir uma despesa. O mtodo retorna verdadeiro se
foi finalizado com sucesso, ou falso caso contrrio.

Tabela 10. Mtodos da classe Despesa

Classe Lancamento_Despesa

Essa classe armazena as informaes do lanamento da despesa. Note que essa classe se relaciona s classes Usuario, Setor e
Item_Lanamento. Como apresentado anteriormente, um lanamento realizado por um usurio, mas um usurio pode realizar vrios
lanamentos. Da mesma forma um lanamento possui apenas um setor, entretanto um setor possudo por vrios lanamentos. Por fim, um
lanamento contm vrios itens de lanamento, mas um item de lanamento pertence apenas a um lanamento de despesa.

Os atributos dessa classe so: Data_lanamento do tipo Date, Valor_total do tipo Double. Seus mtodos so apresentados na Tabela 11.

ConsultarLanamento() Permite consultar um lanamento, retornando uma string com


os dados.
IncluirLancamento() Permite incluir um novo lanamento. Recebe como parmetro
todos os atributos definidos na classe Lancamento_Despesa
e retorna verdadeiro se o lanamento foi registrado com
sucesso, caso contrrio retornar falso.
AlterarLanamento() Permite alterar um lanamento. Recebe como parmetro todos
os atributos definidos na classe Lancamento_Despesa e
retorna verdadeiro se a operao pode ser realizada, e
retornar falso, caso contrrio.
ExcluirLancamento() Permite excluir um lanamento. O mtodo retorna verdadeiro
se foi finalizado com sucesso, ou falso caso contrrio.
CalcularTotal() Permite calcular o total de itens de despesa includos no
lanamento. O mtodo retorna o total do tipo long.
TotalSetorMensal() Totaliza as despesas lanadas por setor. O mtodo retorna um
long com o total do ms.
TotalMedioAnual() Totaliza o valor das despesas anualmente por setor. O mtodo
retorna um long com o valor da mdia anual.

Tabela 11. Mtodos da classe Lanamento_Despesa

Classe Item_Lancamento

Essa uma classe intermediria que contm as informaes de cada item do lanamento. Essa classe se relaciona com as classes
Lancamento_Despesa e Despesas. A classe Item_lancamento armazena o atributo Quantidade do tipo Double, que estabelece a quantidade
da despesa lanada. Seus mtodos so apresentados na Tabela 12.

IncluirItemLancamento() Permite registrar um novo item de despesa lanado.


ExcluirItemLancamento() Permite excluir um item lanado.

Tabela 12. Mtodos da classe Item_Lancamento

Com base no que foi apresentado, possvel perceber que os diagramas de classes so muito teis para o desenvolvimento de software e
essenciais no desenvolvimento orientado a objetos, pois eles definem todas as classes que o sistema precisa ter e a base para a construo
de outros diagramas. Eles definem os recursos do sistema atravs de seus atributos e mtodos, alm de representar o domnio do negcio.

Referncia

Guedes, Gilleanes T. A. UML2: uma abordagem prtica. Ed. So Paulo: Novatec. 2009.
Fernanda Fernandes Matos

Especializada em Anlise de Sistemas pela UFMG, ps graduada em Gesto de Projetos pelo IETEC e bacharel em Cincia da
Computao pela UNIVALE. Possui grande experincia na rea de TI, com destaque na Anlise de Requisitos e coo [...]

Publicado em 2015

Leia mais em: Trabalhando com os diagramas da UML Parte 2 http://www.devmedia.com.br/trabalhando-com-os-diagramas-da-uml-parte-


2/33224#ixzz3lW9MXkWF

Você também pode gostar