44
UML Unified Modeling Language 1

UML

Embed Size (px)

DESCRIPTION

UML

Citation preview

INTRODUO

UML

Unified Modeling Language

Adelino Manuel de Oliveira Cabral

Lcia Goretti Gonalves de Arajo

1. Introduo

O desenvolvimento de sistemas de software de grande porte so suportados por mtodos de anlise e projeto que modelam esse sistema de modo a fornecer para toda a equipe envolvida (cliente, analista, programador, etc.) uma compreenso nica do projeto.

A UML (Unified Modeling Language) o sucessor de um conjunto de mtodos de anlise e projeto orientados a objeto (OOA&D). A UML est, atualmente, em processo de padronizao pela OMG (Object Management Group).

A UML um modelo de linguagem, no um mtodo. Um mtodo pressupe um modelo de linguagem e um processo. O modelo de linguagem a notao que o mtodo usa para descrever o projeto. O processo so os passos que devem ser seguidos para se construir o projeto.

O modelo de linguagem uma parte muito importante do mtodo. Corresponde ao ponto principal da comunicao. Se uma pessoa quer conversar sobre o projeto, como outra pessoa, atravs do modelo de linguagem que elas se entendem. Nessa hora, o processo no utilizado.

A UML define uma notao e um meta-modelo. A notao so todos os elementos de representao grfica vistos no modelo (retngulo, setas, o texto, etc.), a sintaxe do modelo de linguagem. A notao do diagrama de classe define a representao de itens e conceitos tais como: classe, associao e multiplicidade. Um meta-modelo um diagrama de classe que define de maneira mais rigorosa a notao.

Neste trabalho, ser apresentada a notao UML atravs de algumas definies e exemplos.

2. Comportamento do Sistema

O comportamento do sistema capturado atravs de anlise de casos de uso do sistema chamados Use Case.

Descrio informal do sistema automatizado de Matrcula num Curso

No incio de cada semestre os alunos devem requisitar um catlogo de cursos contendo os cursos oferecidos no semestre. Este catlogo deve conter informaes a respeito de cada curso tais como: professor, departamento e pr-requisitos. Desse modo, os alunos podem tomar suas decises mais apropriadamente.

O novo sistema permitir que os alunos selecionem quatro cursos oferecidos para o prximo semestre. Alm disso, o aluno indicar dois cursos alternativos, caso o aluno no possa ser matriculado na primeira opo. Cada curso ter o mximo de 10 e o mnimo de 3 alunos. Um curso com nmero de alunos inferior a 3 ser cancelado. Para cada matrcula feita por um aluno, o sistema envia informao ao sistema de cobrana para que cada aluno possa ser cobrado durante o semestre.

Os Professores devem acessar o sistema on line, indicando quais cursos iro lecionar. Eles tambm podem acessar o sistema para saber quais alunos esto matriculados em cada curso.

Em cada semestre, h um prazo para alterao de matrcula. Os alunos devem poder acessar o sistema durante esse perodo para adicionar ou cancelar cursos.

Diagrama deUse Cases para um sistema automatizado de Matrcula num Curso

Definio Diagrama de Use Case: um diagrama usado para se identificar como o sistema se comporta em vrias situaes que podem ocorrer durante sua operao. Descreve o sistema, seu ambiente e a relao entre os dois. Os componentes deste diagrama so os atores e os Use Case.

A notao usada pelo Diagrama de Use Case :

Ator: Representa qualquer entidade que interage com o sistema. Pode ser uma pessoa, outro sistema, etc. Algumas de suas caractersticas so descritas abaixo:

ator no parte do sistema. Representa os papis que o usurio do sistema pode desempenhar.

ator pode interagir ativamente com o sistema.

ator pode ser um receptor passivo de informao.

ator pode representar um ser humano, uma mquina ou outro sistema.

Use Case: Como foi exemplificado acima , uma seqncia de aes que o sistema executa e produz um resultado de valor para o ator. Algumas de suas caractersticas so descritas abaixo:

Um Use Case modela o dilogo entre atores e o sistema.

Um Use Case iniciado por um ator para invocar uma certa funcionalidade do sistema.

Um Use Case fluxo de eventos completo e consistente.

O conjunto de todos os Use Case representa todos as situaes possveis de utilizao do sistema.

Descrio textual resumida do Use Case Matrcula nos Cursos: Dos sete Use Case apresentados no Diagrama, ser descrito apenas o de Matrcula nos Cursos. Este Use Case iniciado pelo aluno. Fornece os meios para o aluno criar, anular, modificar e consultar o formulrio de matrcula de um dado semestre.

Descrio do Fluxo principal de eventos associados a esse Use Case.

Este Use Case inicia-se quando o aluno fornece a chave de acesso. O sistema verifica se a chave de acesso do aluno valida (E1) e apresenta ao aluno a opo de selecionar o semestre atual ou o prximo semestre (E2). O aluno seleciona o semestre desejado. O sistema pede ao aluno para selecionar a atividade desejada: Criar, Consultar, Modificar, Imprimir, Anular ou Sair do Sistema.

Se atividade selecionada :

Criar, o subfluxo A1 (Criar uma Matrcula Nova) executado.

Consultar, o subfluxo A2 (Consulta da Matrcula) executado.

Modificar, o subfluxo A3 (Modificao da Matrcula) executado.

Imprimir, o subfluxo A4 (Imprimir a Matrcula) executado.

Anular, o subfluxo A5 (Anular Matrcula) executado.

Sair, o Use Case encerrado.

Descrio dos Subfluxos Alternativos associados a esse Use Case.

A1. Criar uma Matrcula Nova. O sistema apresenta numa tela um formulrio de matrcula em branco. O aluno preenche-o com 4 cursos oferecidos, como primeira escolha e preenche 2 cursos oferecidos como segunda escolha (E3). A seguir, o aluno submete o formulrio preenchido ao sistema. Para cada curso de primeira escolha, o sistema ir verificar se os pr-requisitos so satisfeito (E4) e matricula o aluno no curso, se este estiver sendo oferecido, e se houver vaga (E5). O sistema imprime o formulrio de matrcula (E6) e envia a informao para ser processado pelo sistema de cobrana (E7). O sistema fica disponvel.

A2. Consulta da Matrcula. O sistema recupera (E8) e apresenta numa tela as seguintes informaes para todos os cursos nos quais o aluno est matriculado: nome do curso, nmero do curso, dias da semana, horrio, localizao e nmero de crditos. Quando o aluno indica que terminou a consulta, o sistema fica disponvel.

A3. Modificao da Matrcula. O sistema verifica se a data limite para mudanas no expirou (E9). O sistema recupera (E8) e apresenta as seguintes informaes para todos os cursos nos quais o aluno est matriculado: nome do curso, nmero do curso, dias da semana, horrio, localizao e nmero de crditos. O sistema oferece um menu com as seguintes opes: anule um curso oferecido, adicione um curso oferecido ou sair do sistema.

Se a atividade selecionada for:

Anular um curso matriculado, o procedimento de anulao de um curso (A6), executado.

Adicionar um curso oferecido, o procedimento de adio de curso (A7) executado.

Sair do sistema, o sistema imprime formulrio de matrcula (E6), envia a informao para ser processado pelo sistema de cobrana e fica disponvel.

A4. Imprimir a Matrcula. O sistema imprime a matrcula do aluno (E6) e fica disponvel.

A5. Anular Matrcula. O sistema recupera (E8) e apresenta as informaes atuais da matrcula. O sistema pede ao usurio para confirmar a anulao da matrcula. Se efetuada, a matrcula removida do sistema. Se a anulao no for confirmada, a operao cancelada e o sistema fica disponvel.

A6. Anular um curso escolhido. O aluno entra com o nmero do curso a ser anulado. O sistema pede ao usurio para confirmar a anulao do curso. Se efetuada, o curso removido da matrcula do aluno. Se a anulao no for confirmada, a operao cancelada e o sistema fica disponvel.

A7. Adicionar um curso. O aluno entra com o nmero do curso a ser adicionado. O sistema verifica se os pr-requisitos so satisfeitos (E4) e adiciona o aluno ao curso, se o curso estiver sendo oferecido (E5) e o sistema fica disponvel.

Descrio dos Subfluxos de Exceo.E1. :O aluno fornece chave de acesso invlida. O aluno pode entrar com a chave de acesso novamente ou sair do sistema.

E2. O aluno fornece um semestre invlido. O aluno pode fornecer novamente um semestre ou sair do sistema.

E3. O aluno fornece nmero de curso invlido (formato). O aluno pode fornecer outro nmero ou sair do sistema.

E4. O aluno no satisfaz todos os requisitos necessrios. O aluno informado que no pode se matricular nesse curso e a razo para tal. Se possvel, um curso alternativo apresentado. O sistema segue adiante.

E5. O aluno informado de que a matrcula para curso selecionado est encerrada. Se possvel, um curso alternativo apresentado. O sistema segue adiante.

E6. A matrcula no pode ser imprimida. A informao armazenada e o aluno informado de que o pedido de impresso deve ser repetido. O sistema segue a diante.

E7. O sistema armazenar todas as informaes necessrias ao sistema de cobrana e a fornecer assim que possvel. O fluxo segue adiante.

E8. O sistema no pode recuperar as informaes de matrcula. O aluno deve reiniciar o fluxo desde o incio.

E9. O sistema informa ao aluno que a matrcula no pode ser alterada. O aluno deve reiniciar o fluxo desde o incio.

Documentao de um Use Case. Como apresentado acima, a documentao de um Use Case composta de uma Descrio textual resumida e dos Fluxos de eventos (Fluxo principal, Subfluxos Alternativos e Subfluxos de Exceo).

Cenrios.

Um cenrio primrio:

Rubens fornece sua chave de acesso. O sistema valida a chave e pede para Rubens escolher o semestre. Ele escolhe o semestre atual e pede para criar uma matrcula nova.

Rubens escolhe os cursos primrios Ingls 101, Geologia 110, Histria Geral 200 e lgebra110. Tambm seleciona dois cursos alternativos: Teoria Musical 110 e Introduo Programao Java 180.

O sistema constata que Rubens tem todos os pr-requisitos necessrios e adiciona-o s listas de cada curso.

O sistema avisa que a matrcula foi realizada. Imprime o formulrio de matrcula de Rubens. Envia informao de cobrana referente aos quatro cursos para ser processada no sistema de cobrana.

Cenrios secundrios:

Walker no seleciona os quatro cursos primrios.

Um dos cursos primrios selecionados no possui mais vagas.

Um curso primrio ou secundrio no est sendo oferecido.

Definio Cenrio: uma instncia de um Use Case. O Use Case deve ser descrito atravs de vrios cenrios. Devem ser construdos tantos cenrios quantos forem necessrios para se entender completamente todo o sistema. Podem ser considerados como teste informais para validao dos requisitos do sistema.

Tipos de cenrios:

Primrios: So os cenrios nos quais o fluxo segue normalmente. No h quebra no fluxo por alguma espcie de erro.

Secundrios: So os casos que compem exceo. O fluxo normal de operao interrompido.

Definio de Use case: um modelo das funes a serem executadas pelo sistema e a interao com suas fronteiras. Sua principal aplicao confirmar aos usurios e clientes as suas funcionalidades e comportamento.

3. Objetos e Classes de Objetos

Definio de Objeto. Representa um entidade que pode ser fsica, conceitual ou de software. uma abstrao de algo que possui fronteira definida e significado para a aplicao.

Componentes de um objeto:

Estado

Comportamento

Identidade

Identidade: o que identifica unicamente um objeto, mesmo que ele possua estados ou comportamento comuns a outros objetos.

Estado de um objeto: cada condio na qual o objeto pode existir. mutvel ao longo do tempo. implementado por um conjunto de atributos, os valores desses atributos e ligaes que o objeto pode ter com outros objetos.

Comportamento de um objeto: Determina como um objeto age e reage a estmulos de outros objetos. modelado atravs de um conjunto de mensagens que representam resultados visveis das operaes executadas internamente pelo objeto.

Definio de Classe uma descrio de um grupo de objetos com atributos, comportamentos, relacionamentos com outros objetos e semntica comuns. Uma classe uma abstrao que enfatiza caractersticas relevantes dos objetos, suprimindo outras caractersticas. Portanto um objeto sempre uma instncia de uma classe.

Exemplo da Classe Curso.

Exemplo da Classe Professor

Nome:

Nome:Curso

Professor

Estado:

Estado:Nome

Nome

Nmero do Curso

Nmero do Empregado

Localizao

Data de Admisso

Dias do Curso

Curso ministrado

Nmero de crditos

Tipo de contratao

Hora de Incio

Salrio

Hora de Trmino

Comportamento:

Comportamento:Adicionar um aluno

Consultar Lista de Alunos

Cancelar um aluno

Indicar suas Disciplinas

Obter alunos Matriculados

Determinar se a turma est completa

A notao usada pela UML para representar uma Classe de Objetos :

Nome

Atributo

Operaes

A classe de objeto representada por um retngulo, subdividido em trs reas. A primeira contm o nome da Classe. A segunda contm seus atributos. A terceira contm suas operaes. A seguir tem-se os exemplos que esclarecem a representao descrita acima.

CursoProfessor

Nmero do Curso

Nome

Localizao

Dias do Curso

Nmero de Crditos

Hora de Incio

Hora de TrminoNmero do Empregado

Nome

Data de Admisso

Curso ministrado

Tipo de contratao

Salrio

Adicionar um Aluno( )

Cancelar um Aluno( )

Obter Alunos Matriculados( )

Determinar se a turma est completa( )Consultar Lista de Alunos( )

Indicar suas Disciplinas( )

Esteretipos.

Esteretipo um elemento de modelagem que rotula tipos de Classes de Objeto. Uma Classe de Objetos pode ter um ou mais tipos de esteretipos. Os esteretipos mais comuns so:

Classe Fronteiria

Classe de Entidade

Classe de Controle

Classe de Exceo

Metaclasse

Classe Utilitria

Curso

Professor

Nmero do Curso

Nome

Localizao

Dias do Curso

Nmero de Crditos

Hora de Incio

Hora de TrminoNmero do Empregado

Nome

Data de Admisso

Curso ministrado

Tipo de contratao

Salrio

Adicionar um Aluno( )

Cancelar um Aluno( )

Obter Alunos Matriculados( )

Determinar se a turma est completa( )Consultar Lista de Alunos( )

Indicar suas Disciplinas( )

A notao usada pela UML para Esteretipos, dentro da representao grfica da Classe de Objeto, coloca-lo entre > na rea reservada para o nome da classe e acima deste.

Classe fronteiria. uma classe que modela a comunicao entre a vizinhana do sistema e suas operaes internas. Exemplos: Interface tipo Janela, Protocolo de Comunicao, Interface de Impresso, Sensores, etc. No presente estudo de caso, sistema automatizado de Matrcula num Curso, as classes de objeto Formulrio em Branco e Sistema de Cobrana so exemplos de esteretipos desta classe.

Classe de Entidade. uma classe que modela objetos cuja informao e o comportamento associados so, de maneira geral, persistentes. No presente estudo de caso, sistema automatizado de Matrcula num Curso, as classes de objeto: Lista de Cursos, Curso, Catlogo e Matrcula, so exemplos de esteretipos desta classe.

Classe de Controle. uma classe que modela o comportamento de controle especfico para uma ou mais Use Case. Suas principais caractersticas so:

Cria, ativa e anula objetos controlados.

Controla a operao de objetos controlados

Controla a concorrncia de pedidos de objetos controlados.

Em muitos casos corresponde a implementao de um objeto intangvel.

No presente estudo de caso, sistema automatizado de Matrcula num Curso, a classe de objeto Gerente de Registro e um exemplo de esteretipo desta classe.

4. Interao entre objetos.

A UML se utiliza de dois diagramas para representar a interao entre os objetos: Diagrama de Seqncia e Diagrama de Colaborao.

Diagrama de Seqncia mostra a interao entre os Objetos ao longo do tempo. Apresentando os objetos que participam da interao e a seqncia de mensagens trocadas.

A notao usada pela UML para representar o Diagrama de Seqncia, a seguinte:

Objetos so representados por retngulo com seus nomes sublinhados.

As linhas de vida dos Objetos so representadas por linhas verticais tracejadas.

As interaes entre Objetos so indicadas por flechas horizontais que so direcionadas da linha vertical que representa o Objeto cliente para a linha que representa o Objeto fornecedor.

As flechas horizontais so rotuladas com as mensagens.

A ordem das mensagens no tempo indicada pela posio vertical, com a primeira mensagem aparecendo no topo.

A numerao opcional e baseada na posio vertical.

Foco de Controle. Representa o tempo relativo que o fluxo de controle esta focalizado num dado Objeto. Ele representa o tempo que um Objeto dedica a uma dada mensagem.

Diagrama de Colaborao. um modo alternativo para representar a troca de mensagens entre um conjunto de Objetos. O Diagrama de Colaborao mostra a interao organizada entorno dos Objetos e suas ligaes uns com os outros.

A notao usada pela UML para representar o Diagrama de Colaborao, a seguinte:

Objetos so representados por retngulo com seus nomes sublinhados.

As interaes entre Objetos so indicadas por uma linha conectando-os.

As ligaes indicam a existncia de um caminho para comunicao entre os Objetos conectados.

As ligaes no Diagrama de Colaborao podem ser apresentada por:

flechas apontando do Objeto cliente para o Objeto fornecedor.

o nome da mensagem.

Numerao seqencial, mostrando a ordem relativa de envio das mensagens.

5. Como Descobrir as Classes de Objetos

Anlise do Use Case o processo de examinar o conjunto de Use Cases para extrair os Objetos e Classes do sistema sob desenvolvimento. Os Objetos e Classes so podem ser obtidos do detalhamento dos Cenrios.(instncias de Use Case).

Cenrio para criar matrcula-

Cleber entra com o nmero de identificao do aluno 369 53 3449 e o sistema valida o nmero. O sistema pergunta a qual semestre refere-se a matrcula. Cleber indica que para o semestre atual e escolhe a opo nova matrcula.

Da lista de cursos disponveis, Cleber seleciona como cursos de primeira escolha: Engenharia de Softwarwe 101, Sistemas Computacionais Cliente Servidor 110, Tpicos em Anlise Orientada a Objetos 200 e Gerncia de Mainframe 110. Ele seleciona como cursos de segunda escolha: Introduo a Programao Java 200 e Teoria da Musica 300.O sistema verifica que Cleber tem todos os pr-requisitos necessrios, examinando os registro do aluno e adiciona-o lista de alunos do curso.

O sistema indica que a atividade esta completa. O sistema imprime a matrcula e envia a informao de cobrana, referente aos quatro cursos, para processamento no sistema de cobrana.

Objetos pertencente Classe de Entidades so identificados examinando-se os substantivos e frases substantivadas no cenrio. No cenrio acima esto destacados os substantivos candidatos Objetos da Classe de Entidade. Os substantivos podem ser: Objetos, descrio do estado de um Objeto, entidade externa e/ou ator ou ainda nenhuma das anteriores.

Lista de substantivos e sua classificao.

Cleber.- ator

nmero de identificao do aluno 369 53 3449 propriedade de aluno

sistema. o que est sendo definido

nmero propriedade do aluno

semestre estado (que selecionado quando aplicvel)

semestre atual mesmo que semestre

nova matrcula Objeto candidato

lista de cursos disponveis - Objeto candidato

cursos de primeira escolha - estado

Engenharia de Softwarwe 101 - Objeto candidato

Sistemas Computacionais Cliente Servidor 110 - Objeto candidato

Tpicos em Anlise Orientada a Objetos 200 - Objeto candidato

Gerncia de Mainframe 110 - Objeto candidato

cursos de Segunda escolha - estado

Introduo a Programao Java 200 - Objeto candidato

Teoria da Musica 300.- Objeto candidato

pr-requisitos necessrios cursos com outra identificao

registro do aluno - Objeto candidato

lista de alunos do curso. - Objeto candidato

atividade . expresso

matrcula mesmo que nova matrcula

informao de cobrana - Objeto candidato

quatro cursos - informao necessria ao sistema de cobrana

sistema de cobrana. - ator

Lista de Objetos da Classe Entidade

nova matrcula Lista de cursos para um dado semestre de um dado aluno

lista de cursos disponveis Lista de todos os cursos que esto sendo oferecidos no semestre

Engenharia de Softwarwe 101 Um curso oferecido no semestre

Sistemas Computacionais Cliente Servidor110 - Um curso oferecido no semestre

Tpicos em Anlise Orientada a Objetos 200 - Um curso oferecido no semestre

Gerncia de Mainframe 110 - Um curso oferecido no semestre

Introduo a Programao Java 200 - Um curso oferecido no semestre

Teoria da Musica 300 - Um curso oferecido no semestre

registro do aluno Lista dos cursos feitos pelo aluno nos semestres anteriores

lista de alunos do curso Lista com os alunos matriculados num curso especfico.

informao de cobrana Informaes necessrias para o ator sistema de cobrana.

Criando as Classes de Entidades - Baseando-se na similaridade de estrutura e de comportamento dos objetos.

Lista de Classes de Entidades presentes no Cenrio Criar Matrcula.

Matrcula Lista dos cursos para um dado semestre para um dado aluno.

Catlogo Lista de todos os cursos oferecidos num semestre.

Curso Curso oferecido para um semestre.

RegistroDoAluno Lista dos cursos feitos anteriormente.

ListaDosAlunosNumCurso Lista dos alunos matriculados num curso especfico.

InformaesDeCobrana Informaes necessrias para o ator sistema de cobrana.

Objetos pertencente Classe Fronteiria so identificados examinando-se cada par ator/cenrio e criando-se as classes fronteirias bvias. Classes Fronteirias tambm so criadas para comunicao sistema/sistema e para descrever a escolha de protocolos de comunicao.

Exemplos de classe fronteiria:

Deve ser apresentado ao aluno, mais de uma opo do Use Case Matrcula nos Cursos. Para tanto, criada a Classe FormulrioDeRegistro para permitir ao estudante selecionar a opo desejada.

O aluno deve fornecer ao sistema a informao dos cursos escolhidos. Para tanto criada a Classe FormulrioDeMatrcula para permitir que o aluno entre com a informao.

O matrcula do aluno impressa. Para tanto criada a Classe Impressora.

A informao de cobrana enviada para o sistema de cobrana. Para tanto, criada a Classe SistemaDeCobrana.

Objetos pertencente Classe de Control tipicamente, contm a informao de seqenciamento. Cada Use Case deve ter uma Classe de Controle, responsvel pelo fluxo de eventos. Para tanto, criada a Classe GerenteDeRegistro. Esta classe, para cada curso selecionado na Classe Fronteiria FormulrioDeMatrcula deve executar as seguintes atividades:

Busca na Classe Curso seus pr-requisistos.

Verifica, atravs da Classe RegistoDoAluno se todos os pr-requsisitos do curso selecionado foram satisfeitos.

Sabe o que fazer se um pr-requisito no foi satisfeito.

Interroga se h vaga no curso.

Se houver vaga, pede a classe ListaDeAlunosNoCurso para adicionar o aluno.

Sabe o que fazer se um dos quatro cursos no est disponvel.

Cria os objetos: MatrculaDoAluno e InformaoDeCobrana.

Verifica se o sistema de cobrana est habilitado a receber a informao de cobrana.

6. Carto Class-Responsibility-Collaboration (CRC)

Novas Classe podem ser descoberta atravs do uso do carto CRC. Um CRC um carto de 10cm x 15cm, que contm:

Nome e descrio da Classe.

As responsabilidades da Classe

Conhecimento interno da Classe

Servios fornecidos pela Classe

Os colaboradores com essas responsabilidades

Um colaborador uma classe cujos servios so necessrios para execuo de dada responsabilidade.

Nome da Classe Curso

ResponsabilidadeColaboradores

Adicionar Aluno (incrementar o no. vagas preenchidas)Aluno

Conhecer pr-requisitos

Conhecer quando o curso dado

Conhecer onde o curso dado

Uma sesso com o uso do carto CRC compreende:

Um grupo de pessoas escolhido para representar um cenrio.

criado um carto para cada Classe de Objeto j identificado dentro desse cenrio.

A cada participante associada uma Classe, de modo que cada pessoa torna-se aquela Classe.

O cenrio encenado pelos participantes.

Os cartes so preenchidos com as responsabilidades e os colaboradores.

Novos cartes so criados para classes de Objetos descobertos na sesso.

Benefcios do uso do carto CRC:

medida que os cenrios so encenados, padres de colaborao emergem.

Os cartes que colaboram entre si podem ser arranjados fisicamente prximos

Esse arranjo ajuda a identificar hierarquias de generalizao/especializao ou agregao entre as classes.

O uso do carto CRC mais efetivo para grupo iniciantes no uso de tcnicas OO.

O uso do carto CRC permite :

Confirmar ou no as classes de objetos candidatas, alm de permitir a descoberta de novas Classes.

Determinar o relacionamento entre as Classes.

Identificar atributos (conhecimento interno) e operaes (servios fornecidos).

medida que Classes de Objetos so descobertas, elas so documentadas nos diagramas de interao (diagramas de seqncia e de colaborao) anteriormente confeccionados.

7. Pacote

As classes pertencentes ao Sistema de Matrcula podem ser agrupadas em trs pacotes:

ElementosDaUniversidade

Matrcula

Curso

RegistroDeAluno

Catlogo

ListaDosAlunosNumCurso

InformaesDeCobrana

RegrasDeNegcio

GerenteDeRegistro

Interfaces

FormulrioDeRegistro

FormulrioDeMatrcula

Impressora

SistemaDeCobrana

Definio de Pacote uma generalizao com o propsito de organizar as Classes de Objetos em grupos. Esta abordagem facilita a anlise a medida que o nmero de Classes de Objetos cresce num do cenrio.

A notao usada pela UML para representar pacotes :

8. Relacionamentos

Definio de relacionamento: a maneira como as Classes de Objetos interagem entre si para formar o comportamento do sistema. Esse relacionamento apresentado atravs de Diagrama de Classes. Os dois principais tipos de relacionamento so associao e agregao.

Associao:

uma conexo bidirecional entre Classes que indica a existncia de um relacionamento entre os objetos dessas Classes

representada, nos Diagramas de Classe, por uma linha conectando as Classes associadas,

O fluxo de dados pode ser uni-direcional ou bi-direcional, atravs da conexo.

Para esclarecer o significado de uma associao, ela nomeada. No Diagrama de Classes, o nome apresentado ao longo da linha de associao. Usualmente, esse nome um verbo ou um frase verbalizada.

Entre duas Classes, podem existir mais de uma associao.

Multiplicidade de Associao:

o nmero de instncias de uma classe relacionada com uma instncia de outra classe.

Para cada associao, h uma multiplicidade em cada direo.

A notao usada pela UML, para os indicadores de multiplicidade, :

Muitos

Apenas Um

Zero ou Muitos

Um ou Muitos

Zero ou Um

Intervalo Especfico

Exemplo de nomeao de uma associao

Exemplo de Indicador de Multiplicidade de uma associao

Exemplos de como interpretar (ler) a associao representada num Diagrama de Classes.

Um objeto curso gerenciado por um nico GerenteDeRegistro.

Um GerenteDeRegistro gerencia um ou muitos Cursos.

Associao Reflexiva quando os Objetos da prpria Classe esto se relacionando.

Um curso est associado a nenhum ou muitos pr-requisitos. Ou ainda, um curso pr-requisito de nenhum ou muitos cursos.

Agregao.

uma forma especializada de associao na qual um todo relacionado com suas partes. Tambm conhecida como relao de contedo.

representada como uma linha de associao com um diamante junto Classe agregadora.

A multiplicidade representada da mesma maneira que nas associaes.

Um objeto da Classe FormulrioDeRegistro contm um nico objeto FormulrioDeMatrcula. Um objeto FormulrioDeMatrcula est contido num nico objeto FormulrioDeRegistro.

Agregao Reflexiva quando Objetos de uma Classe composto de Objetos da prpria Classe.

Associao ou Agregao

Classe de uma Associao de Classe permite adicionar atributos, operaes e outras caractersticas a uma dada associao.

A classe de uma Associao de Classe normalmente gerada a partir de uma associao de muitos para muitos.

Relacionamento entre Pacotes

Pacotes so relacionados uns com os outros usando um relacionamento de dependncia. Se uma Classe de um pacote interage com uma Classe de outro pacote, a relao de dependncia adicionada a nvel de pacote. Relacionamento entre pacotes so obtidos a partir dos diagramas de Classe e de Cenrio.

9. Operaes e Atributos

Definio de Operaes So procedimentos que executam as responsabilidades de uma Classe de Objetos e portanto definem o comportamento dos objetos da Classe. Uma operao um servio que pode ser requisitado por um Objeto para realizar um comportamento.Operaes devem ser nomeadas em funo de suas sadas e no em funo de seus passos internos. Exemplo:

A notao usada pela UML apresentar Operaes no terceiro compartimento da Caixa de representao de Classe de Objetos, conforme mostra a figura acima.

O Diagrama de Seqenciamento obtido na anlise de cenrio (representado no da figura acima) deve ser refeito de modo que inclua nas mensagens enviadas, de uma Classe de Objeto para outra, as operaes e os seus resultados (conforme a parte inferior da figura acima).

Definio de Atributos - So dados que caracterizam uma instncia da Classe de Objetos. Atributos no tem comportamento. Atributos so sempre valorados. Cada valor de um atributo particular para um dado objeto. Atributos so nomeados por substantivo simples ou por verbo substantivado. Cada atributo tem uma definio concisa e clara. Exemplo:

A notao usada pela UML apresentar Atributos no segundo compartimento da Caixa de representao de Classe de Objetos, conforme mostra a figura acima.

Cada atributo tem: tipo do dado e valor inicial. Exemplo, o tipo de dado para o atributo horrio : hh:mm:ss e o valor inicial 00:00:00.

A determinao dos atributos de uma Classe de Objetos pode ser conseqncia de:

Anlise dos fluxos de evento nos Use Case.

Definio de uma Classe de Objetos.

Conhecimento do sistema.

10. Herana

Definio de Herana uma hierarquia de abstraes na qual uma subclasse herda a estrutura e/ou comportamento de uma ou mais superclasses.

A Classe de Objetos Caminho tem trs atributos: peso e licenaDoVeculo, herdadas da classe VeculoTerrestre, e tonelagem prprio da Classe. A Classe de Objetos Carro tem dois atributos: peso e licenaDeVeculo, herdadas da classe VeculoTerrestre, e nenhum atributo prprio. Caminho uma espcie de VeculoTerrestre. Carro uma espcie de VeculoTerrestre.

Herana simples quando uma subclasse herda estrutura e/ou comportamento de uma nica superclasse.

Herana mltipla quando uma subclasse herda estrutura e/ou comportamento de mais de uma superclasse.

Herana uma relao entre Classes de Objetos e no uma relao entre instncia das Classes.

Uma subclasse herda:

Atributos

Operaes

Relacionamentos

Uma subclasse pode:

Adicionar novos atributos, operaes e relacionamentos.

Redefinir operaes herdadas.

Herana de Atributos A subclasse de Objetos Caminho herda os atributos: peso e licenaDeVeculo da superclasse VeculoTerrestre.

Herana de Operaes A subclasse de Objetos Caminho herda a operao registro() da superclasse VeculoTerrestre.

Herana de Relacionamentos As subclasses de Objetos Caminho e Carro herdam o relacionamento possui existente entre a superclasse VeculoTerrestre e a Classe Pessoa.

Generalizao a capacidade de se criar superclasses que encapsulam estrutura e/ou comportamento comuns a vrias subclasses.

Os procedimentos para se obter a generalizao so:

Identificar similaridades de estrutura/comportamento entre vrias Classes.

Criar a superclasse para encapsular a estrutura/comportamento comum.

As classes originais passam a ser subclasses da nova superclasse criada.

Especializao a capacidade de se criar subclasses que representam refinamentos no qual a estrutura e/ou comportamento da superclasse so adicionados ou modificados.

Os procedimentos de especializao so:

Perceber que algumas instncias apresentam estrutura e/ou comportamento especializado.

Criar subclasses para agrupar instncias de acordo com sua especializao.

A superclasse VeculoTerrestre uma generalizao das subclasses Carro e Caminho. Por outro lado, as subclasses Carro e Caminho so especializaes da superclasse VeculoTerrestre.

11. Comportamento

O comportamento de uma Classe de Objetos representado atravs de um Diagrama de Transio de Estado, que descreve o ciclo de vida de uma dada classe, os eventos que causam a transio de um estado para outro e as aes resultantes da mudana de estado.

O espao amostral dos estados de uma dada Classe corresponde a enumerao de todos os estados possveis de um objeto.

O estado de um Objeto uma das possveis condies na qual o objeto pode existir. O estado compreende todas as propriedades do objetos (estticas) associadas aos valores correntes (dinmico) de cada uma dessas propriedades.

A notao UML para representar o estado de uma classe corresponde a um retngulo com a bordas abauladas.

Estados e Atributos

Estados podem ser distinguidos pelos valores assumidos por certos atributos.

Exemplo - O nmero mximo de estudantes por curso, no Use Case Matrcula do Aluno, igual a 10.

Estados e Ligaes

Estados tambm podem ser distinguidos pela existncia de certas ligaes.

Exemplo A instncia da Classe Professor pode ter dois estados:

Ensinando: quando o Professor esta ministrando um Curso.

Licenciado: quando no esta ministrando nenhum Curso.

Estados possveis da Classe Professor.

Estados Especiais

Estado Inicial o estado atribudo a um objeto quando criado. O estado Inicial tem as seguintes caractersticas:

mandatrio

Somente um estado Inicial permitido.

O estado Inicial representado por um crculo preenchido.

Estado Final o estado que indica o fim do ciclo de vida de um objeto. O estado Final tem as seguintes caractersticas:

opcional.

Pode existir mais de um estado final.

O estado Final representado por um olho de boi.

Eventos

Um evento uma ocorrncia que acontece em algum ponto no tempo e que pode modificar o estado de um objeto, podendo gerar uma resposta. Exemplo:

Adicionar um aluno a um curso.

Criar um novo curso.

Transio

a mudana do estado atual para o estado subseqente como resultado de algum estmulo. O estado subseqente pode ser igual ao estado original. Uma transio pode ocorrer em resposta a um evento. As transies rotuladas com o nome dos eventos.

Condio de Guarda

A condio de guarda uma expresso Boleana de valores de atributo que permitem que a transio ocorra somente se a condio assumida pela expresso verdadeira.

Aes

uma operao que est associada a uma transio, ocorrendo instantaneamente e que no pode ser interrompida. Nome de uma ao mostrado, na seta indicativa da transio, precedida por um barra inclinada (/).

Envio de eventos a partir de outro evento

Um evento pode provocar o envio de outro evento. O nome do evento enviado mostrado, na seta indicativa de transio, precedido por um circunflexo (^) seguido pelo nome da Classe para onde o evento ser enviado, separados por um ponto. Exemplo: Evento1^Classe.Evento2, onde Evento1 o evento que causou a transio e Evento2 o evento gerado a partir da transio.

Atividade

uma operao que est associada a um estado, leva um tempo para ser executada e que pode ser interrompida.

Envio de eventos a partir de atividadeUma atividade tambm pode provocar o envio de um evento para um outro Objeto.

Transio Automtica

Algumas vezes, o nico propsito da existncia de um estado desenvolver uma atividade. Uma transio automtica ocorre quando a atividade completada. Se mltiplas transies automticas existem, uma condio de guarda necessria para cada transio e as condies de guarda devem ser mutuamente exclusivas.

apresentar em tela

cursos disponveis

formulrios de registro

formulrio de matrcula

Professor

Matrcula nos Cursos

Aluno

Sistema de cobrana

Diagrama de Use Case

Ator

Use Case

criar nova matrcula

entrar com o semestre

validar acesso

entrar com chave de acesso

Rubens

obter cursos

Diagrama de Seqncia

Diagrama de Seqncia

obter cursos

apresentar em tela

criar nova matrcula

entrar com o semestre

validar acesso

entrar com chave de acesso

Rubens

cursos disponveis

formulrio de matrcula

formulrios de registro

Rubens

formulrios de registro

2: validar acesso

1:entrar com chave de acesso

3:entrar com o semestre

4:criar nova matrcula

formulrio de matrcula

cursos disponveis

5:apresentar em tela

6:obter cursos

Diagrama de Colaborao

Matrcula

Curso

Catlogo

RegistroDoAluno

ListaDosAlunosNumCurso

InformaesDeCobrana

FormulrioDeRegistro

FormulrioDeMatrcula

Impressora

SistemaDeCobrana

GerenteDeRegistro

Servio Fornecido

Conhecimen-to Interno

Nome do Pacote

*

1

0..*

1..*

0..1

2..4

GerenteDeRegistro

Curso

gerencia

Curso

GerenteDeRegistro

gerenciada

Curso

GerenteDeRegistro

1..*

1

1

1..*

gerencia

Curso

GerenteDeRegistro

Curso

0..*

0..*

Pr-requisito

FormulrioDeRegistro

FormulrioDeMatrcula

1

1

Curso

Aluno

Nota

3..10

1..*

1

FormulrioDeMatrcula

FormulrioDeRegistro

1

GerenteDeRegistro

1

1

Elementos da Universidade

Interface

RegrasDoNegcio

Curso

obterPr-requisitos ():ListaDeCursos

Curso

nome

descrio

localizao

horrio

nmeroDeCrditos

obterPr-requisitos ():ListaDeCursos

obter pr-requisitos

obterPre-requistos();ListaDeCursos

curso

gerente de registro

Carro

Caminho

tonelagem

VeculoTerrestre

peso

licenaDoVeculo

registro()

cursos

gerente de registro

VeculoTerrestre

peso

licenaDoVeculo

Carro

Caminho

tonelagem

obterTaxas()

Pessoa

Carroceria

0..*

1

possui

Carro

Caminho

tonelagem

obterTaxas()

VeculoTerrestre

peso

licenaDoVeculo

registro()

Nome do Estado

Curso Aberto

Curso Encerrado

NmeroDeAlunos >=0

NmeroDeAlunos = 10

Professor

Curso

1

0..*

Ensinando

Licenciado

Estado Inicial

Estado Final

Curso Completado

Curso Aberto

Adicionar Aluno

Registro fechado

Registro fechado[nmero de alunos >=3

Adicionar Aluno

Curso Completado

Curso Aberto

Curso Encerrado

faa:Relate que o curso est cheio

Atribuio Curso

Curso Aberto

Matrcula aberta/inicialize nmeroDeAlunos igual a 0

Adicionar Aluno

Curso Aberto

Atribuio Curso

Matrcula aberta/inicialize nmeroDeAlunos igual a 0

Adicionar Aluno

Curso Completado

Registro fechado[nmero de alunos >=3]^Curso.Criar relatrio

Curso Completado

Curso Encerrado

Faa:Relate curso est cheio

Curso Encerrado

faa: relate curso esta cheio

Registro fechado [nmero de alunos =10]^Curso .Criar relatrio

Curso Completado

faa: Gerar lista de alunos

Adicionar Aluno

Curso Aberto

Entrada: Registre um aluno

Criao

faa: Crie o objeto curso

Matrcula aberta/inicialize nmeroDeAlunos = 0

Curso Cancelado

faa: envie notificao de cancelamento

Atribuio Curso

faa: Atribuir um professor ao curso

Registro fechado [nmeroDeAlunos>=3]

cancelarCurso

cancelarCurso

cancelarCurso

Registro fechado [nmeroDeAlunos