SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
UNIVERSIDADE FEDERAL DE OURO PRETO

                                    INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS

                                    DEPARTAMENTO DE CIÊNCIAS EXATAS E APLICADAS

                                    ENGENHARIA DE SOFTWARE II




                                              UML ,
             Diagramas estruturais




Jéssica Pires – 09.1.8068, Priscila de Ávila - 09.1.8050, Rafaela Priscila - 09.1.8080, Thaise Delfino - 09.2.8115
Sumário


Introdução ................................................................................................................................ 2
História do UML ........................................................................................................................ 3
Diagramas Estruturais ............................................................................................................... 4
Diagrama de Classes ................................................................................................................. 5
Diagrama de objetos ................................................................................................................. 8
Diagramas de Pacotes ............................................................................................................. 11
Diagrama de Estrutura Composta............................................................................................ 12
Diagrama de Componentes ..................................................................................................... 13
Diagramas de Implantação ...................................................................................................... 16
Diferenças entre os Diagramas ................................................................................................ 17
Aplicação ................................................................................................................................ 18
Conclusões.............................................................................................................................. 19
Referências Bibliográficas ....................................................................................................... 20




                                                                                                                                           1
Introdução


       Modelagem nada mais é do que uma representação do software a ser feito sobre
imagens e aspectos que facilite o usuário a enxergar o que deve ser feito em seu trabalho.
Geralmente são feito diagramas e existem inúmeras ferramentas no mercado para ajudar a
elaborar esses diagramas. A UML (Unified Modeling Language) é uma linguagem para fazer
exatamente isso: modelagem de software.

        A UML é uma linguagem na qual se obtém a especificação desejada, a documentação
correta e uma fácil visualização do projeto para um sistema orientado a objetos. Através de
seus diversos diagramas podemos obter diferentes perspectivas de visualização. Facilita na
comunicação entre as pessoas envolvidas com o sistema, como gerentes, coordenadores,
analistas e desenvolvedores, pois apresenta uma forma fácil de entender o problema como um
todo.




                                                                                         2
História do UML


        No início da utilização de programas orientados à objetos, vários foram os métodos de
modelagem que surgiram, porém apenas três deles se destacaram por não estender os
métodos estruturados já existentes, erro cometido pelos demais. Cada método possuía pontos
fontes e diferentes entre si, um deles era focado em casos de uso (OOSE de Ivar Jacobson),
outro focava na fase de projeto (Booch’93 de Grady Booch) e o terceiro era voltado para
análise de sistemas de informação (OMT-2 de James Rumbaugh).

        Em outubro de 1994 começaram os projetos para a junção destes três métodos. Em
1995, dois deles já eram unificados (Booch’93 e o OMT-2), um tempo depois, OOSE passou a
fazer parte desse conjunto, formando assim o “método unificado”.

        Em julho de 1996, os três criadores do “método unificado” lançaram uma versão desse
novo método com a união dos outros três já existentes. A versão foi batizada de UML e mais
tarde lançaram várias outras novas versões.

        A OMG3 (organização internacional que aprova padrões abertos para aplicações
orientadas a objetos) contribuiu imensamente para o crescimento da UML, pois ela lançou
uma solicitação de proposta para que outras empresas também pudessem contribuir com o
crescimento do UML, depois disso ela chegou a sua versão 1.1 e a OMG3 passou a se
responsabilizar pelas revisões e a adotou como linguagem padrão. As revisões são feitas com o
cuidado de não modificar a ideia principal do projeto e isso acaba sendo um motivo para
disseminar a linguagem para o mundo inteiro.

A linguagem UML chegou a sua versão 2 em 2003. Essa versão é composta por treze
diagramas, esses diagramas são divididos em diagramas de comportamento e diagramas
estruturais, da qual iremos tratar no restante do nosso trabalho.




                                                                                           3
Diagramas Estruturais

       Os diagramas estruturais são aspectos estáticos, ou seja, representação da estrutura
de um sistema. Eles são classificados em diagramas de classe, objetos, de pacotes, de estrutura
composta, de componentes e de implementação.




                                            DIAGRAMAS
                                            ESTRUTURAIS



                                                     DIAGRAMA DE
   DIAGRAMA DE     DIAGRAMA DE     DIAGRAMA DE                      DIAGRAMA DE     DIAGRAMA DE
                                                      ESTRUTURA
      CLASSES         OBJETOS        PACOTES                        COMPONENTES    IMPLEMENTAÇÃO
                                                      COMPOSTA




                                                                                              4
Diagrama de Classes

        O diagrama de classes é o diagrama principal do modelo estrutural, ele é o diagrama
que chega mais perto do código do programa, onde é fácil visualizar as classes, seus métodos,
atributos e os relacionamentos, de acordo com a especificação do sistema podemos fazer uma
modelagem utilizando esses dados.

       Precisamos, antes de tudo, saber o que é uma linguagem com orientação a objetos.
Basicamente é abstração de conceitos do mundo real. Para compreendermos melhor,
podemos citar o exemplo de uma locadora de filmes, temos que pensar em dividir esse
problema em objetos. Neste exemplo temos os seguintes objetos: CD’s e Fitas, Clientes, etc. A
melhor forma de conceituar é imaginar objetos do mundo real e tentar abstrair esses
conceitos.

       Um exemplo real:

        Meu cachorro Thor. Posso descrever seus atributos físicos: é grande, sua cor principal
é castanha, olhos pretos, orelhas grandes e caídas, rabo grande. Além de seus atributos físicos,
posso descrever algumas ações que ele costuma fazer: balança o rabo quando chego em casa,
late quando ouve um barulho estranho, trás a bola pra mim quando quer brincar. Temos baixo
a representação do Thor.

Temos então a representação de um objeto (Thor) que possui determinadas
propriedades e métodos:

  Propriedades: Cor do corpo: castanha, Cor dos olhos: preto, Altura: 30 cm
                  Comprimento: 80 cm, Largura: 24 cm.

                  Métodos: Balançar o rabo, Brincar, Latir, Deitar.


        Para tratar objetos, temos as classes. Então temos uma classe: Cachorro, onde eu
posso representar o Thor. Podemos pensar em classe como um modelo para criar várias outros
objetos. Funciona como um carimbo, temos o carimbo e com ele podemos fazer quantas
cópias do mesmo modelo quisermos.

        A representação gráfica de uma classe é feita em um triangulo com três divisões: nome
da classe, atributos e métodos.




                                                                                              5
Atributos: Um atributo especifica características gerais para um objeto. Mas cada
objeto pode receber valores diferentes em cada atributo. Então, no exemplo do cachorro Thor,
temos que os atributos dele são aqueles descrito acima, mas podemos criar um outro objeto
cachorro com outras propriedades, ou seja, outros atributos. Podemos representar a
visibilidade dos atributos utilizando as seguintes marcações:

      + público - visível em qualquer classe

      # protegido - qualquer descendente pode usar

      - privado - visível somente dentro da classe

        Métodos: são ações que representam um determinado objeto. Como no exemplo
anterior, temos que o meu cachorro, Thor, pode latir, sentar, comer, etc.

        Os objetos possuem relações entre si, uma classe pode se relacionar com outra. O
UML reconhece três importantes tipos de relação: dependência, associação e generalização
(ou herança). As relações são esquematizadas da seguinte forma.




         Associação: São relacionamentos entre instâncias, indica que objetos de duas classes
diferentes podem estar relacionados. Por exemplo, uma classe professor e uma classe
disciplina, onde uma instância da classe professor terá uma associação com uma instância da
classe disciplina.

        Dependência: Relacionamentos em que um elemento de uma classe depende de um
elemento de outra classe, logo, se houver alteração em um elemento o outro também se
alterará.

        Generalização: Relacionamento entre elementos generalistas e especialistas, na qual a
classe especialista herda da outra propriedades e métodos gerais.

        Agregação Regular: É a associação onde o objeto parte é um atributo do todo. Os
objetos parte são criados apenas quando o todo ao qual está agregado também é criado. Um
exemplo prático seria uma classe Pedido e uma classe Item. O pedido só pode ser feito quando
os itens do pedido estão disponíveis.



                                                                                           6
Composição – Relacionamento onde existe um elemento como o todo e um como a
parte do todo. A parte do todo só pertence ao todo e são criadas e destruídas nele.

       O diagrama de classes é consequência de um levantamento de requisitos feitos
previamente. Como exemplo podemos fazer o levantamento de requisitos para um sistema de
consultório dentário. As etapas são:

      Levantamento e análise de requisitos do sistema a ser desenvolvido. Entrevista com o
       cliente, no caso o proprietário de uma clinica, um dentista, ou mesmo funcionários
       que saibam dar as informações de maneira clara e especifica.

      Definição dos objetos do sistema: Paciente, agenda, dentista, serviço, contrato,
       consulta, pagamento, etc..

      Definição e detalhamento das ações: marcar consulta confirmar consulta cadastrar
       paciente, cadastrar serviços, etc.

      Definição das classes: paciente, dentista, exame, agenda, serviço.

      Definir os atributos e métodos das classes.

   Após toda esta análise, podemos construir o diagrama que represente esse problema.




       Neste exemplo, temos as classes paciente, Agenda, serviço, consulta, horário,
limpeza/Restauração e Exame. Cada classe possui seus atributos e métodos e cada uma possui
uma relação com outras classes.

                                                                                         7
Diagrama de objetos


        O Diagrama de Objetos é uma variação do Diagrama de Classes, e é muito pouco
utilizado. Eles são usados, também, como parte dos diagramas de comunicação, onde os
objetos do sistema possuem um vínculo. Nessa variação do diagrama, podem ser atribuídos
nomes reais aos objetos. Os diagramas de Objetos não são tão importantes como os
diagramas de classes, mas são muito úteis para simplificar diagramas de classes mais
complexos e de difícil entendimento, ajudando muito em sua compreensão.

           Existem apenas duas diferenças entre a notação desse diagrama com o diagrama de
classes:

          Os objetos são escritos com seus nomes sublinhados

          Todas as instâncias num relacionamento são mostradas.

    Com esse diagrama, temos o perfil do sistema em um certo momento de sua execução,
tendo a possibilidade, assim, de conferir se os dados estão atribuídos corretamente e se são
consistentes. Os diagramas de objetos têm seu nome sublinhado e todos os seus
relacionamentos são mostrados. Seus nomes vêm separados das classes que ele representa
por “:” (dois pontos). Nesse Diagrama, os atributos já podem se receber seus respectivos
valores.

    Por exemplo, o cachorro que se chama Thor, você pode definir um objeto “Thor” e
representar ele aqui.

Por exemplo, Thor:Cachorro



                                         Thor:Cachorro




      Os diagramas de objetos são importantes para visualizar, especificar e documentar os
modelos estruturais, assim como aspectos dentro de um sistema.

           Exemplo de um diagrama:

                                                           Thor:Cachorro

                                                           +cor: Castanho: string
             Jessica:Dona
                                                           +peso: 37: int
             +cpf:12345678901:int
             +numCarteirinha:2345: int
                                                           latir()
                                                           comer()
                                                           correr()



                                                                                          8
O diagrama pode ser lido da seguinte maneira: O objeto Jéssica da classe Dona está
 associado ao objeto Thor da classe Cachorro.

       Podemos com os diagramas, projetar um jogo por exemplo. Onde o jogador está preso
 em uma casa de tortura e ele deve tentar sair de lá.

        O jogo tem as seguintes regras (não nos preocuparemos com objetos no jogo, somente
 com o projeto da cena):

           A casa onde o jogador está possui dois quartos espelhados;

           Cada quarto reconhece quatro elementos da casa (uma porta, uma parede, ou outro
            quarto);

           Se o jogador entra em um quarto, sua localização é alterada;

           Se ele entra em uma porta e a porta estiver

               o     Aberta: o jogador muda de quarto;

               o     Fechada: o jogador se machuca;

           Se o jogador se depara com a parede, se machuca.

 Criando o diagrama de classes para esse jogo, temos:

                            <<interface>>
                            ElementoDoJogo    4 elementos

                            Joga()



                                                                  1
Porta                                                 Quarto
                            Parede                                               CasaEspelhada
estaAberta:boolean                                    +QuartoNumero
QuartoUM:Elemento                                                        n   1
DeCasaEsp()
                            Entra()                   Entra()
Entra()                                               getQuartoViz()
                                                      getQuartoViz()             adicionaQuarto()
QuartoEspDoOutroLa
                                                                                 getQuarto(int):Quarto
do(:QuartoEsp)




 A classe Quarto herda elementos da classe CasaEspelhada, e a Interface herda os elementos
 de Parede . Porta tem uma relação de associação com Quarto, o que quer dizer que os
 atributos de quarto e de porta se relacionam (Por exemplo, cada quarto possui uma porta).
 Vários quartos dependem da existência de uma casaEspelhada e os elementos do jogo
 dependem da existência de um quarto.

 Podemos simplificar a visualização desse diagrama, criando o Diagrama de Objetos para esse
 mesmo problema:


                                                                                                         9
   Escolhemos o cenário que desejamos representar (casos de uso);

          Identificamos as classes (diagrama de classes);

          Defina os relacionamentos entre os objetos (tipos de relacionamento);




                                          nJogo:JogosMortais




                                     nArea:CasaEspelhada
                                     +




        QuartoUM:Quarto                                                      QuartoDOIS:Quarto
        +                                                                    +
        +                                                                    +



                                                 aPorta:Porta
                                             +




      :Parede              :Parede                 :Parede             :Parede             :Parede
+                      +                     +                   +                     +




    O diagrama de objetos traz uma visualização muito mais sucinta do que será o projeto: A casa
    espelhada possui dois quartos, e esses quartos devem reconhecer paredes, portas ou outro
    quarto. E, por ultimo, devemos:

          Definir os nomes e valores para os atributos dos objetos;




                                                                                                 10
Diagramas de Pacotes


        O diagrama de pacotes mostra as relações entre diferentes pacotes e dependências
entre suas classes.

       Os pacotes e dependências são importantes para fazer testes de sistema e visam
organizar o modelo de sistema UML. Com isso os desenvolvedores conseguem ver as
dependências do sistema em larga escala e minimizar impactos nas modificações.

Loja

       O exemplo abaixo ilustra um diagrama de pacotes de uma loja qualquer onde cada
pacote é composto por um conjunto de classes. As setas representam a dependência entre os
mesmos.



                        Clientes                           Serviços




                        Produtos




                                                                                      11
Diagrama de Estrutura Composta

       O Diagrama de estrutura composta mostra a estrutura interna de uma classe, ou seja,
como seus objetos estão interligados, com um objetivo comum. O diferencial desse diagrama é
que ele expressa tempo de execução, padrões de uso e o relacionamento entre os objetos.
Porém ele não é muito utilizado na prática, pois sua estrutura é bastante complexa.

          A figura abaixo ilustra um exemplo de diagrama de estrutura composta, onde, por
exemplo, um usuário que imprimir um documento através de um programa de computador e
vai utilizar a impressora.




                                         Computador




                              Programa                Impressora




        Neste outro exemplo, o objetivo é chegar a um diagnóstico do paciente, para isso
precisa de uma colaboração do médico com o paciente em uma consulta.




                           Médico            Consulta              Paciente



                                          Diagnóstico




                                                                                        12
Diagrama de Componentes

        O Diagrama de componentes da UML mostra como as classes deverão se encontrar
organizadas através da noção de componentes. O diagrama tem por objetivo apresentar a
disposição dos componentes físicos de um sistema, como interfaces e suas relações,
mostrando os elementos reutilizáveis de software e sua interdependência. Um componente
pode ser um pedaço de software retulizável, bem encapsulado e facilmente substituido.

        O principal objetivo deste diagrama é possibilitar a construção de artefatos para o
perfil de arquitetura da solução, seja para a arquitetura técnica ou a de negócios. Um
componente é formado por um conjunto de classes que se encontram nele implementadas.

        O componente em si pode ser um código em linguagem de programação como um
código executável já compilado. Por exemplo, em um sistema desenvolvido em Java, cada
arquivo .java ou .class é um componente do sistema. Exemplo de componente:




                          Cliente.java                  Graficos.dll




       Um componente é mostrado em UML como um retângulo com uma elipse e dois
retângulos menores do seu lado esquerdo. Na figura abaixo segue uma forma de
representação mais antiga de componentes, temos o exemplo anterior e a seguinte forma:




                                 Widget




       No diagrama de componentes também é possível mostrar a configuração de um
sistema de software mostrando, graficamente, a dependência entre os diversos arquivos que
compõem o sistema, ou seja, um componente, assim como as classes que ele possui,
dependem funcionalmente das classes de outro componente.




                                                                                        13
Gerenciador
                   Gerenciador de
                                                      Graficos                   de Banco de
                    Comunicação
                                                                                       dados
                                                   Graficos.dll
                        Comm.dll
                                                                                      DB.dll




                                                  Aplicação

                                                   App.exe




        No exemplo acima, a dependência entre componentes pode ser mostrada como uma
linha tracejada com uma seta, simbolizando que um componente precisa do outro para
possuir uma definição completa. Nota-se facilmente que arquivos .dll são necessários para
executar a aplicação.

        Em outro tipo de notação, o diagrama é composto normalmente por componentes,
interfaces e portas. Os componentes são representados pelo estereótipo da uml <> . Interfaces
são representadas através de uma linha com um círculo ou semicírculo ligado ao componente.
Portas são representados através de retângulos saindo dos componentes.

       Segundo MACORATTI, a UML reconhece cinco estereótipos de componentes:

      Um executável: Um componente que pode ser executado (um programa).

      Uma biblioteca: Uma biblioteca de classes ou funções, dinâmica ou estática.

      Uma tabela: Uma tabela de um banco de dados.

      Um documento: Uma parte da documentação (texto livre, diagramas, documentos de
       ajuda, etc.)

      Um arquivo: Outros arquivos, geralmente, se trata de um arquivo de código fonte,
       mas pode ser também um arquivo de dados, um ``script'' ou outros arquivos.

    Exemplo de um diagrama de componente exibindo os componentes para um sistema de
locadora na web :




                                                                                               14
<<HTML>>
                                                                                  <<Aplication>>
                                    Interface
                                                                             GerenteDeBusca.java
                                Cliente.html


               <<HTML>>                                 <<HTML>>
         InterfaceEstatica                      InterfaceDinamica
                    .html                                    .html                <<dataBase>>
                                                                             BancoDeVideos.mdb

                                                   <<Aplication>>
                                                    MontaApplet


                                   <<HTML>>
                             InterfaceExibida
                                        .html                            <<Aplication>>
                                                                           Servidor.java




                              <<Applet>>                                         <<Aplication>>
                              Cliente.java                                   TransmissorAV.java




      Neste exemplo, utiliza-se << >> para falar o que é utilizado para implementar o
componente e, o nome do componente. Estas duas informações vão dentro de um retângulo.
Normalmente é utilizado para:

      Modelar os componentes do código-fonte, do código executável do software.

      Destacar a função de cada módulo para facilitar a sua reutilização.

      Auxiliar no processo de engenharia reversa, por meio da organização dos módulos do
       sistema e seus relacionamentos.




                                                                                                   15
Diagramas de Implantação

        Um diagrama de implantação, também chamado de digrama de utilização, modela o
relacionamento entre recursos de infraestrutura, de rede ou artefatos de sistemas. Este
diagrama é normalmente utilizado em projetos onde há muita interdependência entre partes
de hardware e software. Cada nó deste diagrama é uma unidade física que representa um
recurso computacional, como processadores, dispositivos, roteadores ou qualquer
equipamento de importância para o sistema de software.

      Modela o mundo físico do sistema, considerando:

           o    Computadores

           o    Dispositivos e

           o    Suas interconexões




                                                                    FAX
               Terminal 1




                                                              Impressora Matricial
                                       Servidor




               Terminal 2
                                                                Impressora Laser




                                                                                     16
Diferenças entre os Diagramas


        O diagrama de classes é o diagrama principal do modelo estrutural, ele é o diagrama
que chega mais perto do código do programa, onde é fácil visualizar as classes, seus métodos,
atributos e os relacionamentos, de acordo com a especificação do sistema podemos fazer uma
modelagem utilizando esses dados.

        Os diagramas de Objetos são muito parecidos com os Diagramas de Classes, e são
usados, mormente, para exemplificar Diagramas de Classes mais complexos. Nos Diagramas de
Objetos, seus objetos recebem nomes reais e é muito mais fácil compreender as relações
entre eles.

         Já os Diagramas de Pacotes, devem mostrar as relações entre pacotes e pacotes, ou
seja, a relação entre um grupo de classes ou outro grupo de classes através de uma relação de
dependência.

       O principal objetivo do Diagrama de Estrutura Composta é mostrar a estrutura interna
de uma classe, a interligação de seus objetos.

        Os Diagramas de Componentes apresentam a disposição dos componentes físicos de
um sistema, como interfaces e suas relações.

        Os Diagramas de Implantação são utilizados, na maioria das vezes em projetos onde há
muita interdependência entre partes de hardware e software. Este diagrama modela o
relacionamento entre recursos de infraestrutura, de rede ou artefatos de sistemas.




                                                                                           17
Aplicação


Utilização da ferramenta case StarUML.

StarUML é uma plataforma de modelagem de software que suporta UML. Com ela você pode
modelar diagramas e ter uma melhor visualização dos mesmos.


                          Agência

    +Número: int
    +Nome: string
    +Endereço: string

    +abrirconta(cliente: Cliente, tipo: string): Conta
    +obterCliente(id; int): Cliente
    +autenticar(cliente: int, conta: int, senha: int): void


                          1

                        0..n

                  ContaBancária

            +Titular: Cliente
            +Número: int
            +Dígito: int
            +Saldo: float

            +deposito(valor: float): void
            +saque(valor: float): void
                                            0..n



                                                              1..n              Cliente

                                                                     +Código: int
                                                                     +CPF
                                                                     +Nome: string
                                                                     +Endereço: string

                                                                     +obterConta(numero: int): void




                                                                                                      18
Conclusões


        A UML é uma ferramenta adequada para poder visualizar características de
comportamento de um software ou sistema, por isso é considerada uma das linguagens mais
expressivas no quesito modelagem.

       Muitas técnicas avançadas de modelagem podem ser definidas usando UML como
base, podendo ser estendida sem se fazer necessário redefinir a sua estrutura interna. A
ferramenta integrou muitas idéias adversas, e esta integração acelera o uso do
desenvolvimento de softwares orientados a objetos. Mostra uma relação de dependência
entre os diagramas que a compõe (Pacote, componente, implantação, etc.), seja de
modelagem ou infraestrutura física do sistema.

        Os diagramas UML permite em si que a construção de um sistema possa ser eficiente,
justamente por permitir uma detalhada análise de requisitos principalmente para linguagens
orientadas a objeto, além de facilitar a comunicação entre todas as pessoas envolvidas no
processo. A UML é método satisfatório para construção de sistema.




                                                                                       19
Referências Bibliográficas

Principais:

http://staruml.sourceforge.net

SILVA, R. P. e. UML 2 em Modelagem Orientada a Objetos. Florian ́ polis: Visual Books, 2007.

VARGAS, Thânia Clair de Souza. A história de UML e seus diagramas .

BOOCH, G.; RUMBAUGH,J.; JACOBSON,I. UML Guia do Usuário.2.ed. Rio de Janeiro:Elsevier,
2006.

PFLEEGER, S.L.Engenharia de Software - Teoria e Prática. 2.ed. São Paulo: Prentice Hall,2004.

CRAIG, L. Utilizando UML e padrões - Uma introdução à análise e ao projeto orientados a
objetos e ao desenvolvimento iterativo.

BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. – Rio de Janeiro :
Elsevier, 2003.

PENDER, Tom. UML A Bíblia – Rio de Janeiro:Elsevier, 2004.

BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do Usuário. – Rio de Janeiro :
Elsevier, 2006.

MARTIN, James.; ODELL, James. Análise e Projeto Orientados a Objeto. 639 p. – São Paulo:
Makron Books, 1995.

Relevantes:

http://www.lavailama.com.br
http://pt.wikipedia.org
http://www.cassao.eti.br
http://irup.rsuzano.com
http://www.novatec.com.br
http://pt.wikipedia.org/wiki/Diagrama_de_objetos
http://techblog.desenvolvedores.net/2011/05/28/diagrama-de-objeto-uml/
http://portalarquiteto.blogspot.com.br/2008/03/diagrama-de-objetos.html
http://www.portalarquiteto.com.br/diagrama-de-componentes/
http://www.etelg.com.br/paginaete/downloads/informatica/apostila_uml.pdf
http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-elements.html
http://www.macoratti.net/net_uml3.htm

MELO, Ana Cristina. Desenvolvendo aplicações com UML. 255 p. – Rio de Janeiro: Brasport,
2002.




                                                                                                20

Mais conteúdo relacionado

Mais procurados

Modelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequênciaModelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequênciaJorge Linhares
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de SoftwareMarcelo Yamaguti
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Javaarmeniocardoso
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de SistemasNécio de Lima Veras
 
Princípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de RequisitosPrincípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de Requisitoselliando dias
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Aula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de usoAula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de usoLeinylson Fontinele
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo RelacionalJoel Santos
 

Mais procurados (20)

Modelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequênciaModelagem de casos de uso e diagramas de sequência
Modelagem de casos de uso e diagramas de sequência
 
UML - Casos de Uso
UML - Casos de UsoUML - Casos de Uso
UML - Casos de Uso
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Uml
UmlUml
Uml
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de Software
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
 
Princípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de RequisitosPrincípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de Requisitos
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Aula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de usoAula 04 - Diagrama de casos de uso
Aula 04 - Diagrama de casos de uso
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 

Destaque

Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classesErica Fabri
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoRudson Kiyoshi Souza Carvalho
 
Análise Orientada a Objetos - Diagrama de Sequencia
Análise Orientada a Objetos - Diagrama de SequenciaAnálise Orientada a Objetos - Diagrama de Sequencia
Análise Orientada a Objetos - Diagrama de SequenciaCursoSENAC
 
Aula diagrama de interação - 3º periodo uniao
Aula diagrama de interação - 3º periodo uniaoAula diagrama de interação - 3º periodo uniao
Aula diagrama de interação - 3º periodo uniaoMaria Alice Jovinski
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classeSuissa
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantaçãoelliando dias
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classesMarco Coelho
 
Habilidade e competencias do administrador
Habilidade e competencias do administradorHabilidade e competencias do administrador
Habilidade e competencias do administradorAlesilveira
 
Habilidade e competências do administrador (Juliano Carvalho)
Habilidade e competências do administrador (Juliano Carvalho)Habilidade e competências do administrador (Juliano Carvalho)
Habilidade e competências do administrador (Juliano Carvalho)Juliano Carvalho
 

Destaque (19)

Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
 
Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
Análise Orientada a Objetos - Diagrama de Sequencia
Análise Orientada a Objetos - Diagrama de SequenciaAnálise Orientada a Objetos - Diagrama de Sequencia
Análise Orientada a Objetos - Diagrama de Sequencia
 
Uml 2.0
Uml 2.0Uml 2.0
Uml 2.0
 
Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Aula diagrama de interação - 3º periodo uniao
Aula diagrama de interação - 3º periodo uniaoAula diagrama de interação - 3º periodo uniao
Aula diagrama de interação - 3º periodo uniao
 
Aula7 diagrama classes
Aula7 diagrama classesAula7 diagrama classes
Aula7 diagrama classes
 
UML - Diagrama de Pacotes
UML - Diagrama de PacotesUML - Diagrama de Pacotes
UML - Diagrama de Pacotes
 
[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Diagramas de componentes
Diagramas de componentesDiagramas de componentes
Diagramas de componentes
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classe
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
 
Habilidade e competencias do administrador
Habilidade e competencias do administradorHabilidade e competencias do administrador
Habilidade e competencias do administrador
 
Habilidade e competências do administrador (Juliano Carvalho)
Habilidade e competências do administrador (Juliano Carvalho)Habilidade e competências do administrador (Juliano Carvalho)
Habilidade e competências do administrador (Juliano Carvalho)
 

Semelhante a Uml Diagramas estruturais - parte escrita

Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetosGabriel Faustino
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...odnanfer
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetosdanielrpgj30
 
Aula classes abstratas 3º periodo uniao
Aula classes abstratas  3º periodo uniaoAula classes abstratas  3º periodo uniao
Aula classes abstratas 3º periodo uniaoMaria Alice Jovinski
 
Artigo webminig
Artigo webminigArtigo webminig
Artigo webminigediqueli
 
Orientação a objetos java
Orientação a objetos javaOrientação a objetos java
Orientação a objetos javavicnetepc
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 

Semelhante a Uml Diagramas estruturais - parte escrita (20)

Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
 
Relatorio
RelatorioRelatorio
Relatorio
 
4º semestre
4º semestre4º semestre
4º semestre
 
Trabalho de análise e projeto 2
Trabalho de análise e projeto 2Trabalho de análise e projeto 2
Trabalho de análise e projeto 2
 
PENSANDO POR DIAGRAMAS
PENSANDO POR DIAGRAMASPENSANDO POR DIAGRAMAS
PENSANDO POR DIAGRAMAS
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Relatório da uml
Relatório da umlRelatório da uml
Relatório da uml
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
Aula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_umlAula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_uml
 
Aula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aooAula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aoo
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Aula classes abstratas 3º periodo uniao
Aula classes abstratas  3º periodo uniaoAula classes abstratas  3º periodo uniao
Aula classes abstratas 3º periodo uniao
 
aula 1.pptx
aula 1.pptxaula 1.pptx
aula 1.pptx
 
Artigo webminig
Artigo webminigArtigo webminig
Artigo webminig
 
Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)
 
Orientação a objetos java
Orientação a objetos javaOrientação a objetos java
Orientação a objetos java
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 

Uml Diagramas estruturais - parte escrita

  • 1. UNIVERSIDADE FEDERAL DE OURO PRETO INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS DEPARTAMENTO DE CIÊNCIAS EXATAS E APLICADAS ENGENHARIA DE SOFTWARE II UML , Diagramas estruturais Jéssica Pires – 09.1.8068, Priscila de Ávila - 09.1.8050, Rafaela Priscila - 09.1.8080, Thaise Delfino - 09.2.8115
  • 2. Sumário Introdução ................................................................................................................................ 2 História do UML ........................................................................................................................ 3 Diagramas Estruturais ............................................................................................................... 4 Diagrama de Classes ................................................................................................................. 5 Diagrama de objetos ................................................................................................................. 8 Diagramas de Pacotes ............................................................................................................. 11 Diagrama de Estrutura Composta............................................................................................ 12 Diagrama de Componentes ..................................................................................................... 13 Diagramas de Implantação ...................................................................................................... 16 Diferenças entre os Diagramas ................................................................................................ 17 Aplicação ................................................................................................................................ 18 Conclusões.............................................................................................................................. 19 Referências Bibliográficas ....................................................................................................... 20 1
  • 3. Introdução Modelagem nada mais é do que uma representação do software a ser feito sobre imagens e aspectos que facilite o usuário a enxergar o que deve ser feito em seu trabalho. Geralmente são feito diagramas e existem inúmeras ferramentas no mercado para ajudar a elaborar esses diagramas. A UML (Unified Modeling Language) é uma linguagem para fazer exatamente isso: modelagem de software. A UML é uma linguagem na qual se obtém a especificação desejada, a documentação correta e uma fácil visualização do projeto para um sistema orientado a objetos. Através de seus diversos diagramas podemos obter diferentes perspectivas de visualização. Facilita na comunicação entre as pessoas envolvidas com o sistema, como gerentes, coordenadores, analistas e desenvolvedores, pois apresenta uma forma fácil de entender o problema como um todo. 2
  • 4. História do UML No início da utilização de programas orientados à objetos, vários foram os métodos de modelagem que surgiram, porém apenas três deles se destacaram por não estender os métodos estruturados já existentes, erro cometido pelos demais. Cada método possuía pontos fontes e diferentes entre si, um deles era focado em casos de uso (OOSE de Ivar Jacobson), outro focava na fase de projeto (Booch’93 de Grady Booch) e o terceiro era voltado para análise de sistemas de informação (OMT-2 de James Rumbaugh). Em outubro de 1994 começaram os projetos para a junção destes três métodos. Em 1995, dois deles já eram unificados (Booch’93 e o OMT-2), um tempo depois, OOSE passou a fazer parte desse conjunto, formando assim o “método unificado”. Em julho de 1996, os três criadores do “método unificado” lançaram uma versão desse novo método com a união dos outros três já existentes. A versão foi batizada de UML e mais tarde lançaram várias outras novas versões. A OMG3 (organização internacional que aprova padrões abertos para aplicações orientadas a objetos) contribuiu imensamente para o crescimento da UML, pois ela lançou uma solicitação de proposta para que outras empresas também pudessem contribuir com o crescimento do UML, depois disso ela chegou a sua versão 1.1 e a OMG3 passou a se responsabilizar pelas revisões e a adotou como linguagem padrão. As revisões são feitas com o cuidado de não modificar a ideia principal do projeto e isso acaba sendo um motivo para disseminar a linguagem para o mundo inteiro. A linguagem UML chegou a sua versão 2 em 2003. Essa versão é composta por treze diagramas, esses diagramas são divididos em diagramas de comportamento e diagramas estruturais, da qual iremos tratar no restante do nosso trabalho. 3
  • 5. Diagramas Estruturais Os diagramas estruturais são aspectos estáticos, ou seja, representação da estrutura de um sistema. Eles são classificados em diagramas de classe, objetos, de pacotes, de estrutura composta, de componentes e de implementação. DIAGRAMAS ESTRUTURAIS DIAGRAMA DE DIAGRAMA DE DIAGRAMA DE DIAGRAMA DE DIAGRAMA DE DIAGRAMA DE ESTRUTURA CLASSES OBJETOS PACOTES COMPONENTES IMPLEMENTAÇÃO COMPOSTA 4
  • 6. Diagrama de Classes O diagrama de classes é o diagrama principal do modelo estrutural, ele é o diagrama que chega mais perto do código do programa, onde é fácil visualizar as classes, seus métodos, atributos e os relacionamentos, de acordo com a especificação do sistema podemos fazer uma modelagem utilizando esses dados. Precisamos, antes de tudo, saber o que é uma linguagem com orientação a objetos. Basicamente é abstração de conceitos do mundo real. Para compreendermos melhor, podemos citar o exemplo de uma locadora de filmes, temos que pensar em dividir esse problema em objetos. Neste exemplo temos os seguintes objetos: CD’s e Fitas, Clientes, etc. A melhor forma de conceituar é imaginar objetos do mundo real e tentar abstrair esses conceitos. Um exemplo real: Meu cachorro Thor. Posso descrever seus atributos físicos: é grande, sua cor principal é castanha, olhos pretos, orelhas grandes e caídas, rabo grande. Além de seus atributos físicos, posso descrever algumas ações que ele costuma fazer: balança o rabo quando chego em casa, late quando ouve um barulho estranho, trás a bola pra mim quando quer brincar. Temos baixo a representação do Thor. Temos então a representação de um objeto (Thor) que possui determinadas propriedades e métodos: Propriedades: Cor do corpo: castanha, Cor dos olhos: preto, Altura: 30 cm Comprimento: 80 cm, Largura: 24 cm. Métodos: Balançar o rabo, Brincar, Latir, Deitar. Para tratar objetos, temos as classes. Então temos uma classe: Cachorro, onde eu posso representar o Thor. Podemos pensar em classe como um modelo para criar várias outros objetos. Funciona como um carimbo, temos o carimbo e com ele podemos fazer quantas cópias do mesmo modelo quisermos. A representação gráfica de uma classe é feita em um triangulo com três divisões: nome da classe, atributos e métodos. 5
  • 7. Atributos: Um atributo especifica características gerais para um objeto. Mas cada objeto pode receber valores diferentes em cada atributo. Então, no exemplo do cachorro Thor, temos que os atributos dele são aqueles descrito acima, mas podemos criar um outro objeto cachorro com outras propriedades, ou seja, outros atributos. Podemos representar a visibilidade dos atributos utilizando as seguintes marcações:  + público - visível em qualquer classe  # protegido - qualquer descendente pode usar  - privado - visível somente dentro da classe Métodos: são ações que representam um determinado objeto. Como no exemplo anterior, temos que o meu cachorro, Thor, pode latir, sentar, comer, etc. Os objetos possuem relações entre si, uma classe pode se relacionar com outra. O UML reconhece três importantes tipos de relação: dependência, associação e generalização (ou herança). As relações são esquematizadas da seguinte forma. Associação: São relacionamentos entre instâncias, indica que objetos de duas classes diferentes podem estar relacionados. Por exemplo, uma classe professor e uma classe disciplina, onde uma instância da classe professor terá uma associação com uma instância da classe disciplina. Dependência: Relacionamentos em que um elemento de uma classe depende de um elemento de outra classe, logo, se houver alteração em um elemento o outro também se alterará. Generalização: Relacionamento entre elementos generalistas e especialistas, na qual a classe especialista herda da outra propriedades e métodos gerais. Agregação Regular: É a associação onde o objeto parte é um atributo do todo. Os objetos parte são criados apenas quando o todo ao qual está agregado também é criado. Um exemplo prático seria uma classe Pedido e uma classe Item. O pedido só pode ser feito quando os itens do pedido estão disponíveis. 6
  • 8. Composição – Relacionamento onde existe um elemento como o todo e um como a parte do todo. A parte do todo só pertence ao todo e são criadas e destruídas nele. O diagrama de classes é consequência de um levantamento de requisitos feitos previamente. Como exemplo podemos fazer o levantamento de requisitos para um sistema de consultório dentário. As etapas são:  Levantamento e análise de requisitos do sistema a ser desenvolvido. Entrevista com o cliente, no caso o proprietário de uma clinica, um dentista, ou mesmo funcionários que saibam dar as informações de maneira clara e especifica.  Definição dos objetos do sistema: Paciente, agenda, dentista, serviço, contrato, consulta, pagamento, etc..  Definição e detalhamento das ações: marcar consulta confirmar consulta cadastrar paciente, cadastrar serviços, etc.  Definição das classes: paciente, dentista, exame, agenda, serviço.  Definir os atributos e métodos das classes. Após toda esta análise, podemos construir o diagrama que represente esse problema. Neste exemplo, temos as classes paciente, Agenda, serviço, consulta, horário, limpeza/Restauração e Exame. Cada classe possui seus atributos e métodos e cada uma possui uma relação com outras classes. 7
  • 9. Diagrama de objetos O Diagrama de Objetos é uma variação do Diagrama de Classes, e é muito pouco utilizado. Eles são usados, também, como parte dos diagramas de comunicação, onde os objetos do sistema possuem um vínculo. Nessa variação do diagrama, podem ser atribuídos nomes reais aos objetos. Os diagramas de Objetos não são tão importantes como os diagramas de classes, mas são muito úteis para simplificar diagramas de classes mais complexos e de difícil entendimento, ajudando muito em sua compreensão. Existem apenas duas diferenças entre a notação desse diagrama com o diagrama de classes:  Os objetos são escritos com seus nomes sublinhados  Todas as instâncias num relacionamento são mostradas. Com esse diagrama, temos o perfil do sistema em um certo momento de sua execução, tendo a possibilidade, assim, de conferir se os dados estão atribuídos corretamente e se são consistentes. Os diagramas de objetos têm seu nome sublinhado e todos os seus relacionamentos são mostrados. Seus nomes vêm separados das classes que ele representa por “:” (dois pontos). Nesse Diagrama, os atributos já podem se receber seus respectivos valores. Por exemplo, o cachorro que se chama Thor, você pode definir um objeto “Thor” e representar ele aqui. Por exemplo, Thor:Cachorro Thor:Cachorro Os diagramas de objetos são importantes para visualizar, especificar e documentar os modelos estruturais, assim como aspectos dentro de um sistema. Exemplo de um diagrama: Thor:Cachorro +cor: Castanho: string Jessica:Dona +peso: 37: int +cpf:12345678901:int +numCarteirinha:2345: int latir() comer() correr() 8
  • 10. O diagrama pode ser lido da seguinte maneira: O objeto Jéssica da classe Dona está associado ao objeto Thor da classe Cachorro. Podemos com os diagramas, projetar um jogo por exemplo. Onde o jogador está preso em uma casa de tortura e ele deve tentar sair de lá. O jogo tem as seguintes regras (não nos preocuparemos com objetos no jogo, somente com o projeto da cena):  A casa onde o jogador está possui dois quartos espelhados;  Cada quarto reconhece quatro elementos da casa (uma porta, uma parede, ou outro quarto);  Se o jogador entra em um quarto, sua localização é alterada;  Se ele entra em uma porta e a porta estiver o Aberta: o jogador muda de quarto; o Fechada: o jogador se machuca;  Se o jogador se depara com a parede, se machuca. Criando o diagrama de classes para esse jogo, temos: <<interface>> ElementoDoJogo 4 elementos Joga() 1 Porta Quarto Parede CasaEspelhada estaAberta:boolean +QuartoNumero QuartoUM:Elemento n 1 DeCasaEsp() Entra() Entra() Entra() getQuartoViz() getQuartoViz() adicionaQuarto() QuartoEspDoOutroLa getQuarto(int):Quarto do(:QuartoEsp) A classe Quarto herda elementos da classe CasaEspelhada, e a Interface herda os elementos de Parede . Porta tem uma relação de associação com Quarto, o que quer dizer que os atributos de quarto e de porta se relacionam (Por exemplo, cada quarto possui uma porta). Vários quartos dependem da existência de uma casaEspelhada e os elementos do jogo dependem da existência de um quarto. Podemos simplificar a visualização desse diagrama, criando o Diagrama de Objetos para esse mesmo problema: 9
  • 11. Escolhemos o cenário que desejamos representar (casos de uso);  Identificamos as classes (diagrama de classes);  Defina os relacionamentos entre os objetos (tipos de relacionamento); nJogo:JogosMortais nArea:CasaEspelhada + QuartoUM:Quarto QuartoDOIS:Quarto + + + + aPorta:Porta + :Parede :Parede :Parede :Parede :Parede + + + + + O diagrama de objetos traz uma visualização muito mais sucinta do que será o projeto: A casa espelhada possui dois quartos, e esses quartos devem reconhecer paredes, portas ou outro quarto. E, por ultimo, devemos:  Definir os nomes e valores para os atributos dos objetos; 10
  • 12. Diagramas de Pacotes O diagrama de pacotes mostra as relações entre diferentes pacotes e dependências entre suas classes. Os pacotes e dependências são importantes para fazer testes de sistema e visam organizar o modelo de sistema UML. Com isso os desenvolvedores conseguem ver as dependências do sistema em larga escala e minimizar impactos nas modificações. Loja O exemplo abaixo ilustra um diagrama de pacotes de uma loja qualquer onde cada pacote é composto por um conjunto de classes. As setas representam a dependência entre os mesmos. Clientes Serviços Produtos 11
  • 13. Diagrama de Estrutura Composta O Diagrama de estrutura composta mostra a estrutura interna de uma classe, ou seja, como seus objetos estão interligados, com um objetivo comum. O diferencial desse diagrama é que ele expressa tempo de execução, padrões de uso e o relacionamento entre os objetos. Porém ele não é muito utilizado na prática, pois sua estrutura é bastante complexa. A figura abaixo ilustra um exemplo de diagrama de estrutura composta, onde, por exemplo, um usuário que imprimir um documento através de um programa de computador e vai utilizar a impressora. Computador Programa Impressora Neste outro exemplo, o objetivo é chegar a um diagnóstico do paciente, para isso precisa de uma colaboração do médico com o paciente em uma consulta. Médico Consulta Paciente Diagnóstico 12
  • 14. Diagrama de Componentes O Diagrama de componentes da UML mostra como as classes deverão se encontrar organizadas através da noção de componentes. O diagrama tem por objetivo apresentar a disposição dos componentes físicos de um sistema, como interfaces e suas relações, mostrando os elementos reutilizáveis de software e sua interdependência. Um componente pode ser um pedaço de software retulizável, bem encapsulado e facilmente substituido. O principal objetivo deste diagrama é possibilitar a construção de artefatos para o perfil de arquitetura da solução, seja para a arquitetura técnica ou a de negócios. Um componente é formado por um conjunto de classes que se encontram nele implementadas. O componente em si pode ser um código em linguagem de programação como um código executável já compilado. Por exemplo, em um sistema desenvolvido em Java, cada arquivo .java ou .class é um componente do sistema. Exemplo de componente: Cliente.java Graficos.dll Um componente é mostrado em UML como um retângulo com uma elipse e dois retângulos menores do seu lado esquerdo. Na figura abaixo segue uma forma de representação mais antiga de componentes, temos o exemplo anterior e a seguinte forma: Widget No diagrama de componentes também é possível mostrar a configuração de um sistema de software mostrando, graficamente, a dependência entre os diversos arquivos que compõem o sistema, ou seja, um componente, assim como as classes que ele possui, dependem funcionalmente das classes de outro componente. 13
  • 15. Gerenciador Gerenciador de Graficos de Banco de Comunicação dados Graficos.dll Comm.dll DB.dll Aplicação App.exe No exemplo acima, a dependência entre componentes pode ser mostrada como uma linha tracejada com uma seta, simbolizando que um componente precisa do outro para possuir uma definição completa. Nota-se facilmente que arquivos .dll são necessários para executar a aplicação. Em outro tipo de notação, o diagrama é composto normalmente por componentes, interfaces e portas. Os componentes são representados pelo estereótipo da uml <> . Interfaces são representadas através de uma linha com um círculo ou semicírculo ligado ao componente. Portas são representados através de retângulos saindo dos componentes. Segundo MACORATTI, a UML reconhece cinco estereótipos de componentes:  Um executável: Um componente que pode ser executado (um programa).  Uma biblioteca: Uma biblioteca de classes ou funções, dinâmica ou estática.  Uma tabela: Uma tabela de um banco de dados.  Um documento: Uma parte da documentação (texto livre, diagramas, documentos de ajuda, etc.)  Um arquivo: Outros arquivos, geralmente, se trata de um arquivo de código fonte, mas pode ser também um arquivo de dados, um ``script'' ou outros arquivos. Exemplo de um diagrama de componente exibindo os componentes para um sistema de locadora na web : 14
  • 16. <<HTML>> <<Aplication>> Interface GerenteDeBusca.java Cliente.html <<HTML>> <<HTML>> InterfaceEstatica InterfaceDinamica .html .html <<dataBase>> BancoDeVideos.mdb <<Aplication>> MontaApplet <<HTML>> InterfaceExibida .html <<Aplication>> Servidor.java <<Applet>> <<Aplication>> Cliente.java TransmissorAV.java Neste exemplo, utiliza-se << >> para falar o que é utilizado para implementar o componente e, o nome do componente. Estas duas informações vão dentro de um retângulo. Normalmente é utilizado para:  Modelar os componentes do código-fonte, do código executável do software.  Destacar a função de cada módulo para facilitar a sua reutilização.  Auxiliar no processo de engenharia reversa, por meio da organização dos módulos do sistema e seus relacionamentos. 15
  • 17. Diagramas de Implantação Um diagrama de implantação, também chamado de digrama de utilização, modela o relacionamento entre recursos de infraestrutura, de rede ou artefatos de sistemas. Este diagrama é normalmente utilizado em projetos onde há muita interdependência entre partes de hardware e software. Cada nó deste diagrama é uma unidade física que representa um recurso computacional, como processadores, dispositivos, roteadores ou qualquer equipamento de importância para o sistema de software.  Modela o mundo físico do sistema, considerando: o Computadores o Dispositivos e o Suas interconexões FAX Terminal 1 Impressora Matricial Servidor Terminal 2 Impressora Laser 16
  • 18. Diferenças entre os Diagramas O diagrama de classes é o diagrama principal do modelo estrutural, ele é o diagrama que chega mais perto do código do programa, onde é fácil visualizar as classes, seus métodos, atributos e os relacionamentos, de acordo com a especificação do sistema podemos fazer uma modelagem utilizando esses dados. Os diagramas de Objetos são muito parecidos com os Diagramas de Classes, e são usados, mormente, para exemplificar Diagramas de Classes mais complexos. Nos Diagramas de Objetos, seus objetos recebem nomes reais e é muito mais fácil compreender as relações entre eles. Já os Diagramas de Pacotes, devem mostrar as relações entre pacotes e pacotes, ou seja, a relação entre um grupo de classes ou outro grupo de classes através de uma relação de dependência. O principal objetivo do Diagrama de Estrutura Composta é mostrar a estrutura interna de uma classe, a interligação de seus objetos. Os Diagramas de Componentes apresentam a disposição dos componentes físicos de um sistema, como interfaces e suas relações. Os Diagramas de Implantação são utilizados, na maioria das vezes em projetos onde há muita interdependência entre partes de hardware e software. Este diagrama modela o relacionamento entre recursos de infraestrutura, de rede ou artefatos de sistemas. 17
  • 19. Aplicação Utilização da ferramenta case StarUML. StarUML é uma plataforma de modelagem de software que suporta UML. Com ela você pode modelar diagramas e ter uma melhor visualização dos mesmos. Agência +Número: int +Nome: string +Endereço: string +abrirconta(cliente: Cliente, tipo: string): Conta +obterCliente(id; int): Cliente +autenticar(cliente: int, conta: int, senha: int): void 1 0..n ContaBancária +Titular: Cliente +Número: int +Dígito: int +Saldo: float +deposito(valor: float): void +saque(valor: float): void 0..n 1..n Cliente +Código: int +CPF +Nome: string +Endereço: string +obterConta(numero: int): void 18
  • 20. Conclusões A UML é uma ferramenta adequada para poder visualizar características de comportamento de um software ou sistema, por isso é considerada uma das linguagens mais expressivas no quesito modelagem. Muitas técnicas avançadas de modelagem podem ser definidas usando UML como base, podendo ser estendida sem se fazer necessário redefinir a sua estrutura interna. A ferramenta integrou muitas idéias adversas, e esta integração acelera o uso do desenvolvimento de softwares orientados a objetos. Mostra uma relação de dependência entre os diagramas que a compõe (Pacote, componente, implantação, etc.), seja de modelagem ou infraestrutura física do sistema. Os diagramas UML permite em si que a construção de um sistema possa ser eficiente, justamente por permitir uma detalhada análise de requisitos principalmente para linguagens orientadas a objeto, além de facilitar a comunicação entre todas as pessoas envolvidas no processo. A UML é método satisfatório para construção de sistema. 19
  • 21. Referências Bibliográficas Principais: http://staruml.sourceforge.net SILVA, R. P. e. UML 2 em Modelagem Orientada a Objetos. Florian ́ polis: Visual Books, 2007. VARGAS, Thânia Clair de Souza. A história de UML e seus diagramas . BOOCH, G.; RUMBAUGH,J.; JACOBSON,I. UML Guia do Usuário.2.ed. Rio de Janeiro:Elsevier, 2006. PFLEEGER, S.L.Engenharia de Software - Teoria e Prática. 2.ed. São Paulo: Prentice Hall,2004. CRAIG, L. Utilizando UML e padrões - Uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. – Rio de Janeiro : Elsevier, 2003. PENDER, Tom. UML A Bíblia – Rio de Janeiro:Elsevier, 2004. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do Usuário. – Rio de Janeiro : Elsevier, 2006. MARTIN, James.; ODELL, James. Análise e Projeto Orientados a Objeto. 639 p. – São Paulo: Makron Books, 1995. Relevantes: http://www.lavailama.com.br http://pt.wikipedia.org http://www.cassao.eti.br http://irup.rsuzano.com http://www.novatec.com.br http://pt.wikipedia.org/wiki/Diagrama_de_objetos http://techblog.desenvolvedores.net/2011/05/28/diagrama-de-objeto-uml/ http://portalarquiteto.blogspot.com.br/2008/03/diagrama-de-objetos.html http://www.portalarquiteto.com.br/diagrama-de-componentes/ http://www.etelg.com.br/paginaete/downloads/informatica/apostila_uml.pdf http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-elements.html http://www.macoratti.net/net_uml3.htm MELO, Ana Cristina. Desenvolvendo aplicações com UML. 255 p. – Rio de Janeiro: Brasport, 2002. 20