Upload
diiego2
View
1
Download
0
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