SlideShare uma empresa Scribd logo
1 de 102
Baixar para ler offline
Modelação Visual Com UML e Rational Rose 2000
Caso de Estudo
“Sistema de Gestão dos Cursos da Eastern
State University (ESU)”
José A. M. Cordeiro,
(j.cordeiro@computer.org)
Esc. Sup. Tec. de Setúbal – Janeiro 2001
Retirado do livro de Terry Quatrani
Visual Modeling with Rational Rose 2000 and UML
Jan-01 Modelação Visual com UML e Rational Rose 2000 2
Modelação Visual,
UML e Rational Rose 2000
w Objectivos
n Demonstrar com exemplos práticos a utilização da linguagem
UML nas várias fases de desenvolvimento de um projecto
n Mostrar uma possível metodologia de desenvolvimento de uma
aplicação seguindo os princípios da orientação por objectos
n Rever a utilização e a composição dos vários diagramas UML
n Fornecer algumas pistas práticas para a identificação e construção
dos vários elementos (things) e relações do UML
n Ilustrar a utilização e organização do Rational Rose 2000
Jan-01 Modelação Visual com UML e Rational Rose 2000 3
Modelação Visual,
UML e Rational Rose 2000
w Objectivos (cont...)
n NOTAS:
l Não se pretende desenvolver a aplicação completa uma vez que
se perderia muito tempo com os detalhes
l Utiliza-se o processo unificado da Rational (RUP). A
exemplificação ou descrição deste processo não estão entre os
objectivos desta apresentação
l Não se vai demonstrar completamente a utilização e as
capacidades do Rational Rose 2000
Jan-01 Modelação Visual com UML e Rational Rose 2000 4
Caso de Estudo
Gestão dos cursos da ESU
w Gere as disciplinas de um curso permitindo a atribuição de
professores e a inscrição e matrícula de alunos
Resumo:
n Professores escolhem disciplinas a leccionar
n Produzida listagem de disciplinas e professores
n Alunos inscrevem-se e matriculam-se nas disciplinas
n Produzida listagem de disciplinas e alunos matriculados
Jan-01 Modelação Visual com UML e Rational Rose 2000 5
Descrição do Problema
Gestão dos cursos da ESU
Sistema actual
w Atribuição de professores às disciplinas
n Os professores definem quais as disciplinas que irão leccionar
nesse semestre
n A secretaria introduz os dados e emite uma listagem para cada
professor com as disciplinas que vão leccionar
w Inscrição dos alunos
n A secretaria produz uma listagem para os alunos das disciplinas
disponíveis nesse semestre
n Os alunos preenchem um formulário em que escolhem as
disciplinas que pretendem ter (até 4) e entregam-no na secretaria
Jan-01 Modelação Visual com UML e Rational Rose 2000 6
Descrição do Problema
Gestão dos cursos da ESU
Sistema actual
w Inscrição dos alunos (cont...)
n A secretaria introduz os dados e um sistema automático atribui os
alunos às disciplinas
n No caso de haver problemas a secretaria contacta os alunos para
obter escolhas adicionais
n No final é entregue aos alunos uma listagem das disciplinas que
irão frequentar para que eles efectuem as suas matrículas
w Listagem de Disciplinas
n Após o período de inscrição os professores recebem a listagem das
disciplinas a leccionar com a lista dos alunos matriculados
Jan-01 Modelação Visual com UML e Rational Rose 2000 7
Descrição do Problema
Gestão dos cursos da ESU
Solução pretendida
w Professores - Gestão das disciplinas
n Acesso online ao sistema para escolha das disciplinas a leccionar e
para saber no final quais os alunos matriculados nas mesmas
w Alunos - Inscrição e Matricula
n Recebem um catálogo do curso com a lista de disciplinas que
inclui o docente, o departamento e os pré-requisitos necessários
n Escolhem online até 4 disciplinas, e deverão indicar 2 opcionais
n As disciplinas poderão ter no máximo 10 alunos e no mínimo 3
alunos (senão serão canceladas)
Jan-01 Modelação Visual com UML e Rational Rose 2000 8
Descrição do Problema
Gestão dos cursos da ESU
Solução pretendida
w Alunos - Inscrição e Matricula (cont...)
n Terão acesso online ao sistema durante um certo período de forma
a poderem adicionar e alterar disciplinas à sua selecção inicial
n A matrícula ser-lhes-à cobrada através de um sistema de
facturação externo. Este sistema irá receber a informação
necessária a partir do sistema de gestão de cursos
Jan-01 Modelação Visual com UML e Rational Rose 2000 9
Arquitectura da Solução
Modelo das 4+1 vistas da arquitectura
(Usado no Rational Rose 2000)
Physical
Vista lógica
Utilizador final
Funcionalidade
Vista da implementação
Programadores
Gestão do software
Vista dos processos
Performance
Escalabilidade
Desempenho
Integrador de sistemas
Vista da instalação
Topologia do sistema
Entrega, instalação
Comunicação
Engenharia de sistemas
Vista dos
casos de uso
Compreensão
Utilização
FísicoConceptual
Jan-01 Modelação Visual com UML e Rational Rose 2000 10
Arquitectura da Solução
Vista dos Casos de Uso
w Vai documentar o comportamento do sistema, (ou seja a
funcionalidade que o sistema irá disponibilizar aos seus
utilizadores) principalmente através da identificação de:
n actores,
n casos de uso,
n relações entre actores e casos de uso com a criação dos diagramas
de casos de uso
w Facilita a comunicação com o cliente e com os
utilizadores finais
Jan-01 Modelação Visual com UML e Rational Rose 2000 11
Vista dos Casos de Uso
Actores
w Interagem com o sistema - Fornecem e/ou recebem informação do
sistema
w Não fazem parte do sistema
Actor: Representa alguém ou algo que necessita
de interagir com o sistema, mas que não faz parte
do mesmo
Jan-01 Modelação Visual com UML e Rational Rose 2000 12
Vista dos Casos de Uso
Identificação de actores
Pistas para identificação
w Colocar as seguintes questões:
n A quem interessa determinado requisito?
n Em que lugar da organização o sistema é usado?
n Quem beneficia com a utilização do sistema?
n Referindo determinada informação, quem a fornece, a utiliza e a
apaga?
n Quem mantém e dá apoio ao sistema?
n O sistema usa algum recurso exterior?
n Alguém desempenha papeis diferentes?
n Um mesmo papel é desempenhado por várias pessoas?
n O sistema interage com algum legacy system?
Jan-01 Modelação Visual com UML e Rational Rose 2000 13
Vista dos Casos de Uso
Identificação de actores
Criação de actores
w É um processo iterativo – a primeira lista raramente é a
definitiva
Ex: Um novo aluno representa um actor diferente de um aluno que
retorna?
Ex: Criação de um actor para cada papel que alguém pode desempenhar.
Caso do professor-assistente.
w Documentar os actores – a descrição deve identificar o
papel que o actor representa quando interage com o
sistema
Jan-01 Modelação Visual com UML e Rational Rose 2000 14
Vista dos Casos de Uso
Identificação de actores
Eastern State University
w Aluno - alguém que se matricula para ter aulas na
Universidade
w Professor - alguém certificado para dar aulas na
Universidade
w Funcionário da secretaria – alguém responsável pela
manutenção do sistema de gestão de cursos da
Universidade
w Sistema de Facturação - sistema externo responsável
pela cobrança das matrículas aos alunos da Universidade
Jan-01 Modelação Visual com UML e Rational Rose 2000 15
Vista dos Casos de Uso
Casos de Uso
w Modelam um diálogo entre um actor e o sistema: Representam as
funcionalidades disponibilizadas pelo sistema ao actor
w O conjunto de todos os casos de uso define todas as maneiras de como
o sistema pode ser usado
Caso de uso: É a descrição de uma sequência de
acções realizadas por um sistema que originam um
resultado mensurável com interesse para um
determinado actor
Jan-01 Modelação Visual com UML e Rational Rose 2000 16
Vista dos Casos de Uso
Identificação dos casos de uso
Pistas para identificação
w Colocar as seguintes questões:
n Quais as tarefas de cada actor?
n Algum actor cria, guarda, altera, apaga ou lê informação no
sistema?
n Qual o caso de uso que cria, guarda, altera, apaga ou lê esta
informação?
n Algum actor necessita de informar o sistema de alterações
externas súbitas?
n Algum actor necessita de ser informado acerca de uma certa
ocorrência no sistema?
n Quais os casos de uso que mantêm e apoiam o sistema?
n Estarão todos os requisitos funcionais realizados nos casos de uso?
Jan-01 Modelação Visual com UML e Rational Rose 2000 17
Vista dos Casos de Uso
Identificação dos casos de uso
Criação de casos de uso
w Não há resposta para a questão: Qual a dimensão que um
caso de uso deve ter?
Método prático
“Um caso de uso normalmente define uma funcionalidade do sistema
importante e completa com inicio e fim e deve entregar algo de valor
para determinado actor”
Ex: O aluno escolhe as disciplinas, é adicionado aos alunos da disciplina e
é-lhe cobrada a matrícula. Três casos de uso ou apenas um?
Ex: O funcionário da secretaria deve adicionar cursos, apagar cursos e
modificar cursos. São três casos de uso ou apenas um?
w Documentar os casos de uso – descrever a funcionalidade
providenciada pelo caso de uso
Jan-01 Modelação Visual com UML e Rational Rose 2000 18
Vista dos Casos de Uso
Identificação dos casos de uso
Eastern State University
w Criar a lista de disciplinas do curso
w Matricular nas disciplinas
w Requerer a lista de disciplinas a leccionar
w Seleccionar as disciplinas a leccionar
w Manter a informação das disciplinas
w Manter a informação dos professores
w Manter a informação dos alunos
Jan-01 Modelação Visual com UML e Rational Rose 2000 19
Vista dos Casos de Uso
Identificação dos casos de uso
Documentação pormenorizada
w Fluxo de acções
n Deve descrever os passos necessários para realizar determinada
funcionalidade e deve ser definido no sentido daquilo que o
sistema deve fazer e não da maneira como o faz
n Deve incluir:
l Quando e como o caso de uso começa e acaba
l Que interacções o caso de uso tem com os actores
l Que dados são necessários ao caso de uso
l A sequência normal de acções do caso de uso
l A descrição de sequências de acções alternativas ou de excepção
Jan-01 Modelação Visual com UML e Rational Rose 2000 20
Vista dos Casos de Uso
Identificação dos casos de uso
Documentação pormenorizada
w Fluxo de acções (cont...)
n É um processo iterativo iniciando-se com uma descrição breve
que depois se vai detalhando.
n Sugestão de um modelo para a sequência de acções
X. Sequência de acções para o caso de uso <nome>
X.1 Pré-condições
X.2 Acções principais
X.3 Subacções
X.4 Acções alternativas
Jan-01 Modelação Visual com UML e Rational Rose 2000 21
Vista dos Casos de Uso
Relações envolvendo casos de uso e actores
Associação, inclusão e extensão
w Relações possíveis:
n Associação – entre um caso de uso e um actor
n Inclusão (<<Include>>) – para incluir casos de uso que reúnem
funcionalidades comuns a mais que um caso de uso
Ex: Validar utilizador
n Extensão (<<Extend>>) – para mostrar comportamentos
opcionais, comportamentos que só ocorrem mediante
determinadas condições ou diferentes sequências que dependem
da escolha do utilizador
Ex: Nome do utilizador inválido
Jan-01 Modelação Visual com UML e Rational Rose 2000 22
Vista dos Casos de Uso
Diagramas de casos de uso
w Podem incluir relações de herança entre actores
w As colaborações definem as realizações dos casos de uso
Diagrama de casos de uso: Mostra um
conjunto de actores, casos de uso, relações entre
eles e opcionalmente colaborações
Casos de uso do professor
Seleccionar as disciplinas a
leccionar
Professor
Validar utilizador
<<include>>
Requerer a lista de disciplinas a
leccionar
<<include>>
Jan-01 Modelação Visual com UML e Rational Rose 2000 23
Vista dos Casos de Uso
Diagramas de casos de uso
Pistas para utilização
w Em cada sistema existe normalmente um diagrama
principal de casos de uso onde são mostradas as
fronteiras do sistema e as funcionalidades principais
w Adicionalmente podem existir diagramas para:
n Mostrar todos os casos de uso de um determinado actor
n Mostrar todos os casos de uso a serem implementados numa
interacção
n Mostrar um caso de uso e todas as suas relações
Diagrama de casos de uso principal
Aluno
Sistema de
Facturação
Matricular nas disciplinas
Requerer a lista de disciplinas a
leccionar
Seleccionar as disciplinas a
leccionar
Professor
Criar a lista de disciplinas
Manter a informação dos alunos
Manter a informação dos cursos
Manter a informação dos
professores Funcionário
Jan-01 Modelação Visual com UML e Rational Rose 2000 24
Vista dos Casos de Uso
Diagramas de actividade
Diagrama de actividades: Apresenta uma
forma de fluxograma dando ênfase na sequência de
actividades
Jan-01 Modelação Visual com UML e Rational Rose 2000 25
Vista dos Casos de Uso
Diagramas de actividade
Composição
w Elementos UML incluídos nos diagramas de actividade:
n Actividades – um conjunto de acções atómicas
n Transições automáticas – entre as diferentes actividades
n Pontos de decisão – permitem definir caminhos diferentes
dependentes de uma condição (guard condition)
n Actividades inicial e final – marcam o início e o fim das acções
n Barras de sincronismo – permitem definir o local de início e fim
de conjuntos de actividades que decorrem em paralelo
n Swinlanes (Pistas) – permitem atribuir um responsável a um
determinado conjunto de actividades
n Objectos – por vezes são também incluídos
Jan-01 Modelação Visual com UML e Rational Rose 2000 26
Vista dos Casos de Uso
Diagramas de actividade
Pistas para utilização
w Descrição da dinâmica do sistema (os processos de
negócio) mostrando a sequência de actividades, o seu
paralelismo e a existência de caminhos alternativos
Nota: A sequência de actividades é representada do ponto de vista
dos actores que colaboram com o sistema. Pode envolver
vários casos de uso ou apenas um determinado caso de uso
w Descrição do fluxo de acções (o detalhe de um algoritmo)
relativo a uma determinada operação
Diagrama de actividades da criação do curriculum
Criar
curricul um
Atribuir os professores
às disciplinas
Todos os professores
estão atribuídos?
[ Não ]
Criar a lista de
disciplinasdos cursos
[ Sim]
Disponibilizar o catálogo das
disciplinas na livraria local
Enviar o catálogo das
disciplinas para os alunos
Abrir as
matriculas
Seleccionar as
disciplinas a leccionar
ProfessorFuncionário
Jan-01 Modelação Visual com UML e Rational Rose 2000 27
Arquitectura da Solução
Vista Lógica
w Vai documentar o design da solução (ou seja a
arquitectura do sistema), inclui a organização, a estrutura
e as relações das classes
w Permite a comunicação com os peritos e entre os
programadores e os analista de sistemas
w O design do sistema, irá ser representado principalmente
através de:
n Objectos,
n Classes,
n Relações entre Classes
Jan-01 Modelação Visual com UML e Rational Rose 2000 28
Vista Lógica
Objectos
Objecto: Representa uma entidade real ou
conceptual. Possui três importantes características:
estado, comportamento e identidade.
Jan-01 Modelação Visual com UML e Rational Rose 2000 29
Vista Lógica
Objectos
Composição
w Estado: pode mudar com o tempo e é definido por um
conjunto de propriedades (atributos)
Ex: disciplina: aberta (< 10 alunos) e fechada (=10 alunos) )
w Comportamento: diz como um objecto responde a outro
objecto. É implementado por um conjunto de operações
Ex: disciplina: Adicionar aluno e Apagar aluno
w Identidade: cada objecto é único mesmo que tenha o seu
estado igual ao de outro objecto
Ex: disciplina: Álgebra 101, secção 1, Álgebra 101, secção 2
Jan-01 Modelação Visual com UML e Rational Rose 2000 30
Vista Lógica
Classes
Classe: É a descrição de um conjunto de objectos
com propriedades comuns, comportamento comum,
relações com outros objectos comuns e semântica
comum.
w Uma classe funciona como um modelo para a criação de objectos
w Cada objecto é uma instância de uma classe e cada objecto não pode
pertencer a mais do que uma classe
Ex: disciplina: local, hora (atributos) e
obter local, adicionar aluno (Operações )
Jan-01 Modelação Visual com UML e Rational Rose 2000 31
Vista Lógica
Identificação de classes
Pistas para identificação
w Uma classe deve capturar apenas uma abstracção, ou seja
ter um tema principal.
Ex: (errado) classe que mantém a informação das disciplinas que um aluno
fez e a informação do aluno
w Os nomes devem ser vir do vocabulário do problema
w A distinção entre objecto e classe pode não ser óbvia
w Documentação das classes – apresentar o propósito da
classe e não a estrutura. Dificuldade em escolher o nome
pode representar a presença de uma má abstracção
Ex: (errado) classe aluno – O nome, endereço e número de telefone do
aluno
Jan-01 Modelação Visual com UML e Rational Rose 2000 32
Vista Lógica
Identificação de classes
Método RUP
w Tipos de classes
(Seguem o princípio Modelo-Visualização-Controlo)
( representados por estereótipos com ícones próprios definidos
dentro do Rational Rose):
n Entidade (<<entity>>) – modela informação e comportamentos
associados que são de longa duração
n Fronteira (<<boundary>>) – tratam da comunicação entre o
sistema e o exterior.
n Controlo (<<control>>) – modelam o comportamento sequencial
específico a um ou mais casos de uso.
Diagrama de classes de Inscrição nas disciplinas
ErroInscricao
<<exception>>
GestorInscricoesFormularioInscricao
Disciplina
Fronteira Entidade Controlo
Jan-01 Modelação Visual com UML e Rational Rose 2000 33
Vista Lógica
Objectos e classes
Eastern State University
w Resultantes do cenário “Adicionar disciplina a leccionar”
do caso de uso “Seleccionar disciplinas a leccionar”
n Classes fronteira
OpcaoAdicionarDisciplina,
OpcoesDisciplinasProfessor
n Classes entidade
Professor
Disciplina
Curso
n Classes controlo
GestorDisciplinasProfessor
Jan-01 Modelação Visual com UML e Rational Rose 2000 34
Vista Lógica
Pacotes
Agrupar classes
w Usados na vista lógica para agrupar um conjunto de
classes e/ou outros pacotes
w Contêm habitualmente um conjunto de classes públicas
que constituem (realizam) a interface do pacote, o resto
são classes de implementação do pacote
Jan-01 Modelação Visual com UML e Rational Rose 2000 35
Vista Lógica
Diagramas de classes
Diagrama de classes: Mostra um conjunto de
classes, interfaces, colaborações e as suas relações.
Pode incluir pacotes e as suas relações.
Jan-01 Modelação Visual com UML e Rational Rose 2000 36
Vista Lógica
Diagramas de classe
Pistas para utilização
w Usos comuns - pode existir um diagrama para:
n Visualizar as classes implementadas num determinado pacote
n Visualizar a estrutura e comportamento de uma ou mais classes
n Visualizar uma hierarquia de herança
w Usados também para mostrar colaborações*, esquemas de
bases de dados e grupos de pacotes, incluindo relações
* sociedades de classes, interfaces e outros elementos que trabalham
em conjunto de modo a fornecer um comportamento cooperativo
Jan-01 Modelação Visual com UML e Rational Rose 2000 37
Vista Lógica
Cenários e Colaborações
Cenários
w Cenário:
n Capturam a funcionalidade dos casos de uso descrevendo
possíveis sequências de acções que os concretizam. Representam
uma possível sequência de acções dentro de um caso de uso
n Usam-se para ajudar a identificar objectos, classes e interacções
entre objectos necessárias para executar determinada
funcionalidade do sistema
n Documentam decisões de como as responsabilidades especificadas
nos casos de uso se distribuem pelos objectos e classes do sistema
n Constituem um excelente meio de comunicação e discussão dos
requisitos do sistema com os clientes
Jan-01 Modelação Visual com UML e Rational Rose 2000 38
Vista Lógica
Cenários e Colaborações
Pistas para identificação
w Começar por encontrar os cenários principais referentes às
acções e subacções dos casos de uso
w Quando se começarem a repetir com frequência os passos
de outros cenários é indicação que se deve concluir
w Os cenários secundários, resultantes da análise dos casos
“e-se” (“what-if”) vêm depois
Jan-01 Modelação Visual com UML e Rational Rose 2000 39
Vista Lógica
Cenários e Colaborações
Realizações dos casos de uso
w Os cenários dizem como se realiza um caso de uso
através de interacções dentro de sociedades de objectos -
colaborações
(Nota: As realizações representam-se com diagramas de casos de uso)
Ex: Criar um curso dentro do caso de uso Manter a informação dos cursos
w Os cenários documentam-se com diagramas de
interacção:
Diagramas de sequência
Diagramas de colaboração
Diagrama de casos de uso e das suas realizações
Manter a informação dos cursos
(from Use Case View) Manter a informação dos cursos
<<realize>>
Seleccionar as disciplinas a
leccionar
(from Use Case View)
Seleccionar as disciplinas a
leccionar
<<realize>>
Diagrama de casos de uso das realições
Criar a lista de disciplinas
Manter a informação dos cursos
Manter a informação dos
professores
Matricular nas disciplinas
Validar utilizador
Requerer a lista de disciplinas a
leccionar
Manter a informação dos alunos
Seleccionar as disciplinas a
leccionar
Jan-01 Modelação Visual com UML e Rational Rose 2000 40
Vista Lógica
Diagramas de sequência
Diagrama de Sequência: Mostra as
interacções entre objectos evidenciando as suas
sequências temporais. Contém normalmente
objectos e mensagens.
Jan-01 Modelação Visual com UML e Rational Rose 2000 41
Vista Lógica
Diagramas de sequência
Pistas para utilização
w Associados às realizações de casos de uso (colaborações)
w Para mostrar a sequência de acções de um cenário
w Devem-se acrescentar classes de fronteira para mostrar e
documentar a interacção entre os actores e o sistema e não
a implementação da interface
w Manter os diagramas de sequência simples
w Sugere-se incluir a lógica condicional apenas quando esta
for simples, senão utilizar diagramas separados para o
if, para o then e para o else
(Nota: em Rational Rose podem-se ligar os diagramas criados através de links
colocados nas notas)
Jan-01 Modelação Visual com UML e Rational Rose 2000 42
Vista Lógica
Diagramas de sequência
Eastern State University
w Resultante da análise do cenário “Criar um curso” do caso
de uso “Manter a informação dos cursos”:
n Objectos:
Um formulário curso, um gestor, um curso
n Actor:
Funcionário
n Mensagens:
Fornecer informação do curso, processar,
adicionar curso, novo curso
Diagrama de sequência para a criação de um curso
um curso : Curso: Funcionário
um formulário
de curso
um gestor
fornecer informacao do curso
processar
adicionar curso
novo curso
Jan-01 Modelação Visual com UML e Rational Rose 2000 43
Vista Lógica
Diagramas de colaboração
w São equivalentes aos diagramas de sequência mas mostram os
cenários de uma maneira diferente dando ênfase à arquitectura
(objectos e ligações)
Diagrama de colaboração: Mostra as
interacções entre objectos evidenciando as ligações
entre eles. Contém Objectos, ligações (links) e
mensagens
Diagrama de colaboração da criação de um curso
: Funcionário
um formulário
de curso
um
gestor
um curso : Curso
1: fornecer informacao do curso
2: processar
3: adicionar curso
4: novo curso
Diagrama de sequência de adicionar uma disciplina
: Professor : OpcoesDisciplinasProfessor : OpcaoAdicionarDisciplina
:
GestorDisciplinasProfessor
: Curso : Disciplina
introduzir password
verificar password
introduzir semestre
introduzir disciplina
mostrar
seleccionar Matemática 101
obter disciplinas
obter disciplinas
obter disciplinas
mostrar disciplinas
seleccionar disciplina
atribuir disciplina
adicionar professor
adicionar professor
Diagrama de classes participantes de adicionar uma disciplina
Curso
(from ElementosUniversidade)
GestorDisciplinasProfessor
(from ElementosUniversidade)
Disciplina
(from ElementosUniversidade)
OpcoesDisciplinasProfessor
(from Interfaces)
OpcaoAdicionarDisciplina
(from Interfaces)
Jan-01 Modelação Visual com UML e Rational Rose 2000 44
Vista Lógica
Relações entre classes
Associação e agregação
w A análise de cenários revela relações entre classes
w O comportamento do sistema é obtido através de
colaborações entre objectos. As mensagens trocadas entre
objectos evidenciam relações entre as suas classes.
w Dois tipos de relações encontrados durante a análise:
n Associação – é uma ligação bidireccional entre duas classes.
Uma associação entre classes significa que existe uma ligação
(link) entre os objectos dessas classes
n Agregação – é uma forma especializada de associação onde um
todo está relacionado com as partes. (Relação part-off ou has-a)
Jan-01 Modelação Visual com UML e Rational Rose 2000 45
Vista Lógica
Associação e Agregação de Classes
Pistas para identificação
w Não é sempre clara a decisão entre a associação e
agregação de classes. Colocar as seguintes questões:
n É utilizada a frase “é parte de” na descrição da relação?
n Algumas operações no todo são automaticamente aplicadas às
partes?
n Existe alguma assimetria intrínseca onde uma classe está
subordinada a outra?
w Muitas vezes a decisão depende do contexto do problema.
Ex: Relação entre carro e pneus. Empresa pneus e concessionário.
Jan-01 Modelação Visual com UML e Rational Rose 2000 46
Vista Lógica
Associação e Agregação de Classes
Composição
w Podem-se ainda colocar os seguintes adornos nas
associações ou agregações:
n Nomes - comunicam o significado duma associação
Ex: Professor ensina curso
n Papeis das classes envolvidas – usados habitualmente como
alternativa a nomear uma associação
n Indicadores de Multiplicidade – definem o número de objectos
que participam na associação ou agregação
n Relações reflexivas – quando múltiplos objectos de uma classe
têm que comunicar entre si
Diagrama de classes com características das associações
GestorDisciplinasProfessor
Disciplina
Curso
Gere 0..n
0..n
+Pré-requesitos
0..n
0..n
Professor
Disciplina
(from ElementosUniversidade)
1
0..4
+OProfessor
1
0..4
Jan-01 Modelação Visual com UML e Rational Rose 2000 47
Vista Lógica
Associação e Agregação de Classes
Eastern State University
w Resultante do cenário “Adicionar uma disciplina” do caso
de uso “Seleccionar as disciplinas a leccionar”:
AgregaçãoDisciplinaCurso
AssociaçãoCursoGestorDisciplinasProfesoor
AssociaçãoGestorDisciplinasProfessorOpcaoAdicionarDisciplina
AgregaçãoOpcaoAdicionarDisciplinaOpcoesDisciplinasProfessor
Tipo RelaçãoClasse que recebe a msgClasse que envia a msg
Diagrama de classes do pacote ElementosUniversidade
GestorDisciplinasProfes
sor
Disciplina
OpcaoAdicionarDisciplina
(from Interfaces)
OpcoesDisciplinasProfessor
(from Interfaces)
Curso
1
1..n
1
1
1
1
1
1
1
+Pré-requesitos
0..n0..n
0..n0..n
1
1..n
1
gere
Jan-01 Modelação Visual com UML e Rational Rose 2000 48
Vista Lógica
Relações entre pacotes
w Existem também relações de dependência entre pacotes
Por exemplo o pacote A depende do Pacote B:
n Implica que uma ou mais classes do pacote A iniciam uma
comunicação com uma ou mais classes do pacote B
n No caso anterior o pacote A é o pacote Cliente e o pacote B é o
pacote fornecedor
Jan-01 Modelação Visual com UML e Rational Rose 2000 49
Vista Lógica
Classes – operações e atributos
Comportamento e estrutura
w Operações – definem o comportamento da classe
n As operações vão realizar as responsabilidades atribuídas à
classe
Ex: Classe Disciplina – responsabilidade de adicionar e remover aluno
w Atributos – definem a estrutura da classe
n Os atributos definem os dados que irão ser guardados por cada
objecto da classe
Ex: Classe Disciplina – local e hora de cada disciplina
Jan-01 Modelação Visual com UML e Rational Rose 2000 50
Vista Lógica
Classes – operações
Pistas para identificação
n As mensagens dos diagramas de sequência dão origem
a operações nas classes dos objectos destinatários
n As mensagens não dão origem a operações quando são
enviadas para uma classe de fronteira, ou quando têm
origem ou destino num actor humano
n Os nomes devem ter em conta a classe que recebe a
mensagem e não devem traduzir a implementação.
Ex: calcularNumeroAlunos e obterNumeroAlunos
n As operações devem ser documentadas em termos da
funcionalidade disponibilizada. Devem indicar ainda os
dados de entrada e saída.
Diagrama de sequência de adicionar uma disciplina com operações
: Professor : OpcoesDisciplinasProfessor : OpcaoAdicionarDisciplina
:
GestorDisciplinasProfe...
: Curso : Di scipl ina
introduzir password
verificar password
introduzir semestre
introduzir disciplina
mostrar
seleccionar Matem ática 101
mostrar disciplinas
seleccionar disciplina
obterDisciplinas(Curso)
atribuirProfessor(Professor, Curso, Disciplina)
obterDisciplinas( )
atribuirProfessor(Professor, Curso)
obterDisciplina( )
atribuirProfessor(Professor)
Jan-01 Modelação Visual com UML e Rational Rose 2000 51
Vista Lógica
Relação de Dependência entre Classes
Pistas para identificação
w dependência – relação uni-direccional entre duas classes.
Classe depende de outra ou usa outra (Relação using)
n Na dependência a classe da qual se depende não conhece a classe
dependente (relação uni-direccional)
n Pode ser identificada através da assinatura de uma operação
quando é passado como argumento ou quando é retornado um
objecto de outra classe
n Pode ter origem ainda na criação e utilização de um objecto local
de outra classe dentro de uma operação da classe dependente
n Começa por ser modelada como associação
Jan-01 Modelação Visual com UML e Rational Rose 2000 52
Vista Lógica
Classes – atributos
Pistas para identificação
w Podem ser obtidos a partir da descrição do problema, do
conjuntos de requisitos ou da descrição das sequências de
acções documentadas
w Devem ser documentados com definições claras e
precisas.
Ex: (errado) – Nome do Curso: uma string de tamanho 15,
(correcto) – O título do curso tal como aparece nas publicações da
universidade
w Podem ser criados Diagramas de classe apenas para
mostrarem todos ou alguns atributos e operações de uma
ou mais classes
Diagrama de classes do pacote ElementosUniversidade
Disciplina
local
obterDisciplina()
atribuirProfessor()
adicionarAluno()
<<entity>>
Curso
nome
descricao
horasCredito
obterDisciplinas()
atribuirProfessor()
<<entity>>
GestorDisciplinasProfessor
obterDisciplinas()
atribuirProfessor()
<<control>>
Jan-01 Modelação Visual com UML e Rational Rose 2000 53
Vista Lógica
Classes de associação
Relações entre classes
w Classes de associação – obtidas a partir da associação
entre duas classes quando esta relação tem estrutura e
comportamento.
Ex: Aluno e disciplina. Onde colocar a Nota obtida?
n Podem ter também associações com outras classes
Diagrama de classes das notas dos alunos
Disciplina
(from ElementosUniversidade)
Aluno
3..100..4 3..100..4
NotasSemestre ListaNotasSemestre
1
1
1
1
0-4 10-4 1
Jan-01 Modelação Visual com UML e Rational Rose 2000 54
Vista Lógica
Herança entre classes
Relações entre classes
w Herança – define uma relação onde uma classe partilha a
estrutura e comportamento de uma ou mais classes. A
classe derivada vai herdar todos os atributos, operações e
relações definidos nas classes que estão acima na
hierarquia. (Relação kind-of ou is-a )
n A relação de herança não necessita de ter nome, papeis ou mesmo
multiplicidade
n A herança é a chave para a reutilização
Jan-01 Modelação Visual com UML e Rational Rose 2000 55
Vista Lógica
Herança entre classes
Pistas para identificação
w Por Generalização – criar uma classe base a partir de
várias classes com comportamento e estrutura comuns
Ex: Aluno e professor: nome, endereço e telefone, professorID e alunoID
Utilizador com utilizadorID (se possível), incluir os outros atributos.
w Por Especialização – adicionar comportamento e
estrutura a uma classe. Pode-se redefinir operações sem
nunca restringir uma operação previamente definida
w Cuidado na utilização de descriminadores na criação de
subclasses
Ex: Curso, CursoInterno, CursoExterno – descriminador é o local do curso.
E onde colocar por exemplo CursoObrigatorio?
Diagrama de classe das hierarquias do pacote InformaçãoPessoas
Professor Aluno
Utilizador
Jan-01 Modelação Visual com UML e Rational Rose 2000 56
Vista Lógica
Herança múltipla
Pistas para utilização
w A herança múltipla origina diversos problemas devendo
ser usada com muito cuidado
Ex: Colisões de identificadores, cópias múltiplas de características
herdadas e código difícil de manter
w A agregação pode ser a alternativa correcta
Ex: classes Aluno, ALunoFullTime AlunoPartTime
Diagrama de classes da hierarquia do utilizador
Utilizador
nome
numeroID
<<entity>>
Professor
emSabatica
<<entity>>
Disciplina
(from ElementosUniversidade)
<<entity>>
0..4
1
0..4
+OProfessor
1
Aluno
maioridade
<<entity>>
0..4
3..10
0..4
3..10
Jan-01 Modelação Visual com UML e Rational Rose 2000 57
Vista Lógica
Herança e agregação entre classes
Pistas para utilização
w Não se deve abusar da utilização da herança apenas
porque se diz que “a herança é muito boa”. Muitas vezes a
agregação é a alternativa correcta
Ex: classes Aluno, AlunoFullTime, AlunoPartTime – e se um aluno de
Full Time decide mudar para Part Time, o objecto muda de classe?, e
se é adicionada uma nova dimensão AlunoComBolsa e
AlunoSemBolsa?
Diagrama de classes da hierarquia do utilizador com classificação
Utilizador
nome
numeroID
<<entity>>
Professor
emSabatica
<<entity>>
Disciplina
(from ElementosUniversidade)
<<entity>>
0..4
1
0..4
+OProfessor
1
FullTime
PartTime
Aluno
maioridade
<<entity>>
0..4
3..10
0..4
3..10
Classificacao
0..n0..n
Jan-01 Modelação Visual com UML e Rational Rose 2000 58
Vista Lógica
Diagrama de estados
Diagrama de estados: Define máquinas de
estados. Mostra os estados de um objecto,
acontecimentos e mensagens que originam mudanças
de estado e as acções resultantes
Jan-01 Modelação Visual com UML e Rational Rose 2000 59
Vista Lógica
Diagrama de estados
Composição
w Elementos UML representados nos diagramas de estado:
n Estados – quando um objecto satisfaz uma condição, executa uma
acção ou aguarda um acontecimento. Pode incluir acções de
entrada e saída e/ou actividades executadas durante o estado.
Ex: professor em sabática e a dar aulas.
n Transições entre estados – mudança para o estado seguinte.
Pode incluir uma acção ou uma condição associada e pode ainda
originar um acontecimento. Pode ser automática (a actividade do
estado anterior acabou) ou ser causada por um acontecimento
n Estados inicial e final – Existe sempre um único estado inicial e
podem haver um, nenhum ou vários estados finais
Jan-01 Modelação Visual com UML e Rational Rose 2000 60
Vista Lógica
Diagrama de estados
Pistas para utilização
w Para mostrar o comportamento dinâmico duma classe que
justifique, para investigar o comportamento de uma classe
todo de uma agregação ou de uma classe de controlo
w Contem todas as mensagens enviadas e recebidas pelo
objecto
w Os cenários representam um caminho através de um
diagrama de estados
w Examinar os diagramas de sequência para a identificação
de estados: o intervalo entre duas mensagens enviadas
pelo objecto normalmente está associado a um estado
Jan-01 Modelação Visual com UML e Rational Rose 2000 61
Vista Lógica
Diagrama de Estados
Eastern State University
w Resultantes da análise da classe “Disciplina” :
n Estados:
Aberta
Fechada
Cancelada
Inicialização
Diagrama de estados da disciplina
Inicialização
do/ Inicializar os dados da disciplina
Aberta
entry/ Registar estudante
exit/ ^listaAlunos.adicionar aluno(aluno)
Fechada
do/ finalizar disciplina
Cancelada
cancelar
cancelar
adicionar aluno / colocar contador = 0 ^ListaAlunos.criaradicionar aluno[ contador < 10 ]
[ contador = 10 ]
^ListaAlunos.apagar
Jan-01 Modelação Visual com UML e Rational Rose 2000 62
Vista lógica
Homogeneização do design
w Combinar classes – Classes semelhantes que fazem a mesma
coisa, classes de controlo com comportamentos semelhantes e que
acedem à mesma informação
w Dividir classes – Quando não possuem um único tema principal,
quando um atributo exibe estrutura e comportamento associados
w Eliminar classes – Classes que não possuem qualquer estrutura e
comportamento, classes que não participam em casos de uso
w Verificar consistência
n Percorrer os cenários
n Seguir os acontecimentos
n Rever a documentação
Jan-01 Modelação Visual com UML e Rational Rose 2000 63
Arquitectura da Solução
Vista da implementação
w Vai documentar a partir de diagramas de componentes a
organização modular do software
w Tem em conta requisitos derivados como sejam facilidade
de desenvolvimento, gestão do software, reutilização e
restrições das linguagens de programação utilizadas
w Os pacotes nesta vista representam partições físicas do
sistema
w O Rational Rose inclui esta vista dentro da vista dos
componentes definida no browser do programa
Jan-01 Modelação Visual com UML e Rational Rose 2000 64
Vista da implementação
Diagrama de componentes
w Pode incluir componentes de código fonte, componentes executáveis
e dependências entre componentes
w Pode incluir pacotes e dependências entre eles
Diagrama de componentes: Mostra um
conjunto de componentes e as suas relações. Pode
incluir interfaces e pacotes
Jan-01 Modelação Visual com UML e Rational Rose 2000 65
Vista da implementação
Diagrama de componentes
Pistas para utilização
w Inclui habitualmente as classes do modelo lógico (quando
estas estão implementadas em componentes)
w Outros usos:
n Para modelar os ficheiros de código fonte. Inclui os componentes
de trabalho
n Para modelar a versão final do programa. Inclui executáveis,
bibliotecas, tabelas, ficheiros e documentos
n Para modelar bases de dados
Diagrama de componentes principal
Interfaces
Universidade
Tratamento de
erros Base de dados Bases
Diagrama de componentes da Universidade
Curso Disciplina
AlunoProfessor
Utilizador
Jan-01 Modelação Visual com UML e Rational Rose 2000 66
Arquitectura da solução
Vista dos processos
w Vai documentar a partir de diagramas de componentes a
estrutura da implementação em execução do sistema
w Tem em conta requisitos como sejam performance,
fiabilidade, escalabilidade, integridade, gestão do sistema
e sincronização
w O Rational Rose inclui esta vista dentro da vista dos
componentes definida no browser do programa.
Diagrama de componentes executáveis do professor
OpcoesProfessor
<<EXE>>
Persistencia
<<DLL>>
APIBaseDa
dos
Cursos
<<DLL>>
APICursos
Jan-01 Modelação Visual com UML e Rational Rose 2000 67
Arquitectura da solução
Vista da instalação
w Vai documentar a partir de diagramas de instalação a
distribuição física dos elementos processadores e do
software que incluem
w Define a topologia do sistema
w Tem em conta requisitos como sejam disponibilidade do
sistema, fiabilidade, performance e escalabilidade
Diagrama de instalação
Registo
OpcoesProfessor.exe
Servidor base de
dados
Biblioteca
OpcoesAluno.exe
Dormitório
OpcoesAluno.exe
Edificio principal
OpcoesAluno.exe
Jan-01 Modelação Visual com UML e Rational Rose 2000 68
Vista da instalação
Diagrama de instalação
Diagrama de instalação: Apresenta uma
visão dos elementos físicos que constituem o
sistema. Mostra os nós, os componentes que
existem dentro deles e as ligações com outros nós.
Jan-01 Modelação Visual com UML e Rational Rose 2000 69
Vista lógica
Mecanismos chave
Selecção dos mecanismos chave
w É importante seleccionar os mecanismos chave que irão
ser utilizados na arquitectura da solução que incluem:
n Linguagem de implementação
n Forma de armazenamento de dados
n Interface do utilizador
n Tratamento de erros
n Mecanismos de comunicação
n Distribuição e migração de objectos
n Ligações em rede
Diagrama de classes principal
Interfaces
InformaçãoPessoasElementosUniversidade
Controlos GUI
Bases
global Base de dados
Tratamento de
erros
global
Jan-01 Modelação Visual com UML e Rational Rose 2000 70
Vista lógica
Conclusão do Design
Propósito
w Passar da análise inicial da especificação do que o sistema
deve fazer para como fazer.
w Completar e implementar o design
n Definir e desenhar a interface do utilizador
n Adicionar classes de design
n Completar e refinar as relações definidas
n Completar o design das operações e atributos
w Comunicar o design aos programadores
Jan-01 Modelação Visual com UML e Rational Rose 2000 71
Vista lógica
Conclusão do Design
Interface com o utilizador e classes de design
w Definir e desenhar a interface do utilizador:
n Examinar os cenários: é necessário fornecer a capacidade de
enviar e receber mensagens dos actores
n Implica a implementação das classes de fronteira definidas: criar
janelas, definir o layout das janelas, tratar eventos do utilizador
Ex: Seleccionar disciplinas a leccionar – janela com password, janela
de opções, botões, caixas edição de texto, etc.
w Adicionar classes de design
n Para facilitar o como fazer (how-to) do sistema
n Classes que aparecem por necessidade de implementação
Ex: ListaIDValidos - Classe que sabe como validar as passwords
Diagrama de classes principal do pacote das interfaces
OpcaoAdicionarDisciplina
<<boundary>>
ListaIDValidos
<<entity>>
OpcoesDisciplinasProfessor
<<boundary>>
1
1
1
1
1..n1 1..n1
Jan-01 Modelação Visual com UML e Rational Rose 2000 72
Vista lógica
Conclusão do design
Refinação das relações entre classes
w Completar e refinar as relações definidas
n Navegação – Rever as associações e agregações para determinar a
uni-direccionalidade. Implica classes mais fáceis de manter
n Composição – Quando a agregação implica a contenção exclusiva
das partes. Implica contenção por valor (e não por referência)
Ex: Classes OpcoesDisciplinaProfessor e OpcaoAdicionarDisciplina
n Dependência – Quando uma das classes numa associação não
possui ou necessita de ter qualquer conhecimento da outra
Ex: Classes Disciplinas e BDDisciplinas
n Implementação da multiplicidade – Quando a multiplicidade é
superior a um usa-se normalmente classes contentoras.
Jan-01 Modelação Visual com UML e Rational Rose 2000 73
Vista lógica
Refinação das relações entre classes
Eastern State University
w Resultantes do cenário “Adicionar uma disciplina” do caso
de uso “Seleccionar as disciplinas a leccionar”:
ComposiçãoDisciplinaCurso
AssociaçãoProfessorDisciplina
DependênciaBDDisciplinasDisciplina
Associação (unidir)CursoOpcaoAdicionarDisciplina
Associação (unidir)ListaIDValidosOpcoesDisciplinasProfessor
Composição (unidir)OpcaoAdicionarDisciplinaOpcoesDisciplinasProfessor
Tipo RelaçãoClasseClasse
Diagrama de classes dos cursos
Curso
<<entity>>
0..n
0..n
+Pré-requesitos
0..n
0..n
Aluno
(from InformaçãoPessoas)
<<entity>>
Disciplina
<<entity>> 0..4
3..10
0..4
3..10
BDDisciplinas
(from Base de dados)
Diagrama de classes actualizado do pacote das interfaces
ListaIDValidos
<<entity>>
OpcoesDisciplinasProfessor
<<boundary>>
1..n1 1..n1
OpcaoAdicionarDisciplina
<<boundary>>
1
1
1
1
Curso
(from El ementosUni versi dade)
<<entity>>
Jan-01 Modelação Visual com UML e Rational Rose 2000 74
Vista lógica
Conclusão do design
Operações e atributos
w Completar o design das operações e atributos com:
n Tipos de dados – são dependentes da linguagem
n Valores iniciais
n Controlo de acesso - privado, publico e protegido.
Diagrama de classes dos ElementosUniversidade com atributos e operações
Curso
nome : String
descricao : String
horasCredito : Integer = 3
obterDisciplinas() : ListaDisciplinas
atribuirProfessor(professor : Professor, curso : Curso) : Boolean
<<entity>>
Disciplina
local
obterDisciplina() : ListaDisciplinas
atribuirProfessor(professor : Professor) : Boolean
adicionarAluno()
<<entity>>
GestorDisciplinasProfessor
obterDisciplinas(curso : Curso) : ListaDisciplinas
atribuirProfessor(professor : Professor, curso : Curso, disciplina : Disciplina) : Boolean
<<control>>

Mais conteúdo relacionado

Mais procurados

UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoVinícius de Paula
 
Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoVinícius de Paula
 
Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UMLinfo_cimol
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLAlessandro Almeida
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escritathaisedd
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de umlaudiclerio
 
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
 
Visibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLVisibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLufpb
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLClaudio Martins
 
Uml
UmlUml
Umllcbj
 

Mais procurados (20)

Análise e Modelagem com UML
Análise e Modelagem com UMLAnálise e Modelagem com UML
Análise e Modelagem com UML
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de Projeto
 
8 02
8 028 02
8 02
 
Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de Projeto
 
Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UML
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UML
 
Uml ppoint
Uml ppointUml ppoint
Uml ppoint
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escrita
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Uml
UmlUml
Uml
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
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
 
Visibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLVisibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UML
 
Componentes
ComponentesComponentes
Componentes
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
Uml
UmlUml
Uml
 
UML
UMLUML
UML
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 

Semelhante a Gestão de Cursos ESU

8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdfgabriel-colman
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesRogerio P C do Nascimento
 
Engenharia de Software II - Aula 18
Engenharia de Software II - Aula 18Engenharia de Software II - Aula 18
Engenharia de Software II - Aula 18Alessandro Almeida
 
Aula(l) 11 12-software engenhering
Aula(l) 11 12-software engenheringAula(l) 11 12-software engenhering
Aula(l) 11 12-software engenheringcifjovo02
 
Engenharia de Software II - Aula 15
Engenharia de Software II - Aula 15Engenharia de Software II - Aula 15
Engenharia de Software II - Aula 15Alessandro Almeida
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageCloves da Rocha
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling LanguageRicardoKratz2
 
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
 
ESw 09 - Exercicio pratico.pdf
ESw 09 - Exercicio pratico.pdfESw 09 - Exercicio pratico.pdf
ESw 09 - Exercicio pratico.pdfGabrielMarchesan
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaGabriel Moura
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.pptAlan5263
 
Apresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEApresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEalexculpado
 

Semelhante a Gestão de Cursos ESU (20)

8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf
 
Aula-04-UML.pptx
Aula-04-UML.pptxAula-04-UML.pptx
Aula-04-UML.pptx
 
Parte6 casos de uso
Parte6   casos de usoParte6   casos de uso
Parte6 casos de uso
 
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
 
Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)
 
Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e Planificações
 
Estagio ads
Estagio adsEstagio ads
Estagio ads
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Engenharia de Software II - Aula 18
Engenharia de Software II - Aula 18Engenharia de Software II - Aula 18
Engenharia de Software II - Aula 18
 
Aula(l) 11 12-software engenhering
Aula(l) 11 12-software engenheringAula(l) 11 12-software engenhering
Aula(l) 11 12-software engenhering
 
Engenharia de Software II - Aula 15
Engenharia de Software II - Aula 15Engenharia de Software II - Aula 15
Engenharia de Software II - Aula 15
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
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
 
ESw 09 - Exercicio pratico.pdf
ESw 09 - Exercicio pratico.pdfESw 09 - Exercicio pratico.pdf
ESw 09 - Exercicio pratico.pdf
 
UML (1).ppt
UML (1).pptUML (1).ppt
UML (1).ppt
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semana
 
1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt1601PAPSUML-Cap12-destaqueDAO.ppt
1601PAPSUML-Cap12-destaqueDAO.ppt
 
Apresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEApresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEE
 
Monografia da Bruna
Monografia da BrunaMonografia da Bruna
Monografia da Bruna
 

Último

Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira partecoletivoddois
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESpatriciasofiacunha18
 
Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024GleyceMoreiraXWeslle
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyasminlarissa371
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaFernanda Ledesma
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxacaciocarmo1
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptAlineSilvaPotuk
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfpaulafernandes540558
 
PRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basicoPRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basicoSilvaDias3
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...LuizHenriquedeAlmeid6
 
ADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mentalADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mentalSilvana Silva
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdfDemetrio Ccesa Rayme
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 

Último (20)

Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parte
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
 
Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão Linguística
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptx
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdf
 
PRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basicoPRIMEIRO---RCP - DEA - BLS estudos - basico
PRIMEIRO---RCP - DEA - BLS estudos - basico
 
(76- ESTUDO MATEUS) A ACLAMAÇÃO DO REI..
(76- ESTUDO MATEUS) A ACLAMAÇÃO DO REI..(76- ESTUDO MATEUS) A ACLAMAÇÃO DO REI..
(76- ESTUDO MATEUS) A ACLAMAÇÃO DO REI..
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
 
ADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mentalADJETIVO para 8 ano. Ensino funda.mental
ADJETIVO para 8 ano. Ensino funda.mental
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 

Gestão de Cursos ESU

  • 1. Modelação Visual Com UML e Rational Rose 2000 Caso de Estudo “Sistema de Gestão dos Cursos da Eastern State University (ESU)” José A. M. Cordeiro, (j.cordeiro@computer.org) Esc. Sup. Tec. de Setúbal – Janeiro 2001 Retirado do livro de Terry Quatrani Visual Modeling with Rational Rose 2000 and UML
  • 2. Jan-01 Modelação Visual com UML e Rational Rose 2000 2 Modelação Visual, UML e Rational Rose 2000 w Objectivos n Demonstrar com exemplos práticos a utilização da linguagem UML nas várias fases de desenvolvimento de um projecto n Mostrar uma possível metodologia de desenvolvimento de uma aplicação seguindo os princípios da orientação por objectos n Rever a utilização e a composição dos vários diagramas UML n Fornecer algumas pistas práticas para a identificação e construção dos vários elementos (things) e relações do UML n Ilustrar a utilização e organização do Rational Rose 2000
  • 3. Jan-01 Modelação Visual com UML e Rational Rose 2000 3 Modelação Visual, UML e Rational Rose 2000 w Objectivos (cont...) n NOTAS: l Não se pretende desenvolver a aplicação completa uma vez que se perderia muito tempo com os detalhes l Utiliza-se o processo unificado da Rational (RUP). A exemplificação ou descrição deste processo não estão entre os objectivos desta apresentação l Não se vai demonstrar completamente a utilização e as capacidades do Rational Rose 2000
  • 4. Jan-01 Modelação Visual com UML e Rational Rose 2000 4 Caso de Estudo Gestão dos cursos da ESU w Gere as disciplinas de um curso permitindo a atribuição de professores e a inscrição e matrícula de alunos Resumo: n Professores escolhem disciplinas a leccionar n Produzida listagem de disciplinas e professores n Alunos inscrevem-se e matriculam-se nas disciplinas n Produzida listagem de disciplinas e alunos matriculados
  • 5. Jan-01 Modelação Visual com UML e Rational Rose 2000 5 Descrição do Problema Gestão dos cursos da ESU Sistema actual w Atribuição de professores às disciplinas n Os professores definem quais as disciplinas que irão leccionar nesse semestre n A secretaria introduz os dados e emite uma listagem para cada professor com as disciplinas que vão leccionar w Inscrição dos alunos n A secretaria produz uma listagem para os alunos das disciplinas disponíveis nesse semestre n Os alunos preenchem um formulário em que escolhem as disciplinas que pretendem ter (até 4) e entregam-no na secretaria
  • 6. Jan-01 Modelação Visual com UML e Rational Rose 2000 6 Descrição do Problema Gestão dos cursos da ESU Sistema actual w Inscrição dos alunos (cont...) n A secretaria introduz os dados e um sistema automático atribui os alunos às disciplinas n No caso de haver problemas a secretaria contacta os alunos para obter escolhas adicionais n No final é entregue aos alunos uma listagem das disciplinas que irão frequentar para que eles efectuem as suas matrículas w Listagem de Disciplinas n Após o período de inscrição os professores recebem a listagem das disciplinas a leccionar com a lista dos alunos matriculados
  • 7. Jan-01 Modelação Visual com UML e Rational Rose 2000 7 Descrição do Problema Gestão dos cursos da ESU Solução pretendida w Professores - Gestão das disciplinas n Acesso online ao sistema para escolha das disciplinas a leccionar e para saber no final quais os alunos matriculados nas mesmas w Alunos - Inscrição e Matricula n Recebem um catálogo do curso com a lista de disciplinas que inclui o docente, o departamento e os pré-requisitos necessários n Escolhem online até 4 disciplinas, e deverão indicar 2 opcionais n As disciplinas poderão ter no máximo 10 alunos e no mínimo 3 alunos (senão serão canceladas)
  • 8. Jan-01 Modelação Visual com UML e Rational Rose 2000 8 Descrição do Problema Gestão dos cursos da ESU Solução pretendida w Alunos - Inscrição e Matricula (cont...) n Terão acesso online ao sistema durante um certo período de forma a poderem adicionar e alterar disciplinas à sua selecção inicial n A matrícula ser-lhes-à cobrada através de um sistema de facturação externo. Este sistema irá receber a informação necessária a partir do sistema de gestão de cursos
  • 9. Jan-01 Modelação Visual com UML e Rational Rose 2000 9 Arquitectura da Solução Modelo das 4+1 vistas da arquitectura (Usado no Rational Rose 2000) Physical Vista lógica Utilizador final Funcionalidade Vista da implementação Programadores Gestão do software Vista dos processos Performance Escalabilidade Desempenho Integrador de sistemas Vista da instalação Topologia do sistema Entrega, instalação Comunicação Engenharia de sistemas Vista dos casos de uso Compreensão Utilização FísicoConceptual
  • 10. Jan-01 Modelação Visual com UML e Rational Rose 2000 10 Arquitectura da Solução Vista dos Casos de Uso w Vai documentar o comportamento do sistema, (ou seja a funcionalidade que o sistema irá disponibilizar aos seus utilizadores) principalmente através da identificação de: n actores, n casos de uso, n relações entre actores e casos de uso com a criação dos diagramas de casos de uso w Facilita a comunicação com o cliente e com os utilizadores finais
  • 11. Jan-01 Modelação Visual com UML e Rational Rose 2000 11 Vista dos Casos de Uso Actores w Interagem com o sistema - Fornecem e/ou recebem informação do sistema w Não fazem parte do sistema Actor: Representa alguém ou algo que necessita de interagir com o sistema, mas que não faz parte do mesmo
  • 12. Jan-01 Modelação Visual com UML e Rational Rose 2000 12 Vista dos Casos de Uso Identificação de actores Pistas para identificação w Colocar as seguintes questões: n A quem interessa determinado requisito? n Em que lugar da organização o sistema é usado? n Quem beneficia com a utilização do sistema? n Referindo determinada informação, quem a fornece, a utiliza e a apaga? n Quem mantém e dá apoio ao sistema? n O sistema usa algum recurso exterior? n Alguém desempenha papeis diferentes? n Um mesmo papel é desempenhado por várias pessoas? n O sistema interage com algum legacy system?
  • 13. Jan-01 Modelação Visual com UML e Rational Rose 2000 13 Vista dos Casos de Uso Identificação de actores Criação de actores w É um processo iterativo – a primeira lista raramente é a definitiva Ex: Um novo aluno representa um actor diferente de um aluno que retorna? Ex: Criação de um actor para cada papel que alguém pode desempenhar. Caso do professor-assistente. w Documentar os actores – a descrição deve identificar o papel que o actor representa quando interage com o sistema
  • 14. Jan-01 Modelação Visual com UML e Rational Rose 2000 14 Vista dos Casos de Uso Identificação de actores Eastern State University w Aluno - alguém que se matricula para ter aulas na Universidade w Professor - alguém certificado para dar aulas na Universidade w Funcionário da secretaria – alguém responsável pela manutenção do sistema de gestão de cursos da Universidade w Sistema de Facturação - sistema externo responsável pela cobrança das matrículas aos alunos da Universidade
  • 15. Jan-01 Modelação Visual com UML e Rational Rose 2000 15 Vista dos Casos de Uso Casos de Uso w Modelam um diálogo entre um actor e o sistema: Representam as funcionalidades disponibilizadas pelo sistema ao actor w O conjunto de todos os casos de uso define todas as maneiras de como o sistema pode ser usado Caso de uso: É a descrição de uma sequência de acções realizadas por um sistema que originam um resultado mensurável com interesse para um determinado actor
  • 16. Jan-01 Modelação Visual com UML e Rational Rose 2000 16 Vista dos Casos de Uso Identificação dos casos de uso Pistas para identificação w Colocar as seguintes questões: n Quais as tarefas de cada actor? n Algum actor cria, guarda, altera, apaga ou lê informação no sistema? n Qual o caso de uso que cria, guarda, altera, apaga ou lê esta informação? n Algum actor necessita de informar o sistema de alterações externas súbitas? n Algum actor necessita de ser informado acerca de uma certa ocorrência no sistema? n Quais os casos de uso que mantêm e apoiam o sistema? n Estarão todos os requisitos funcionais realizados nos casos de uso?
  • 17. Jan-01 Modelação Visual com UML e Rational Rose 2000 17 Vista dos Casos de Uso Identificação dos casos de uso Criação de casos de uso w Não há resposta para a questão: Qual a dimensão que um caso de uso deve ter? Método prático “Um caso de uso normalmente define uma funcionalidade do sistema importante e completa com inicio e fim e deve entregar algo de valor para determinado actor” Ex: O aluno escolhe as disciplinas, é adicionado aos alunos da disciplina e é-lhe cobrada a matrícula. Três casos de uso ou apenas um? Ex: O funcionário da secretaria deve adicionar cursos, apagar cursos e modificar cursos. São três casos de uso ou apenas um? w Documentar os casos de uso – descrever a funcionalidade providenciada pelo caso de uso
  • 18. Jan-01 Modelação Visual com UML e Rational Rose 2000 18 Vista dos Casos de Uso Identificação dos casos de uso Eastern State University w Criar a lista de disciplinas do curso w Matricular nas disciplinas w Requerer a lista de disciplinas a leccionar w Seleccionar as disciplinas a leccionar w Manter a informação das disciplinas w Manter a informação dos professores w Manter a informação dos alunos
  • 19. Jan-01 Modelação Visual com UML e Rational Rose 2000 19 Vista dos Casos de Uso Identificação dos casos de uso Documentação pormenorizada w Fluxo de acções n Deve descrever os passos necessários para realizar determinada funcionalidade e deve ser definido no sentido daquilo que o sistema deve fazer e não da maneira como o faz n Deve incluir: l Quando e como o caso de uso começa e acaba l Que interacções o caso de uso tem com os actores l Que dados são necessários ao caso de uso l A sequência normal de acções do caso de uso l A descrição de sequências de acções alternativas ou de excepção
  • 20. Jan-01 Modelação Visual com UML e Rational Rose 2000 20 Vista dos Casos de Uso Identificação dos casos de uso Documentação pormenorizada w Fluxo de acções (cont...) n É um processo iterativo iniciando-se com uma descrição breve que depois se vai detalhando. n Sugestão de um modelo para a sequência de acções X. Sequência de acções para o caso de uso <nome> X.1 Pré-condições X.2 Acções principais X.3 Subacções X.4 Acções alternativas
  • 21. Jan-01 Modelação Visual com UML e Rational Rose 2000 21 Vista dos Casos de Uso Relações envolvendo casos de uso e actores Associação, inclusão e extensão w Relações possíveis: n Associação – entre um caso de uso e um actor n Inclusão (<<Include>>) – para incluir casos de uso que reúnem funcionalidades comuns a mais que um caso de uso Ex: Validar utilizador n Extensão (<<Extend>>) – para mostrar comportamentos opcionais, comportamentos que só ocorrem mediante determinadas condições ou diferentes sequências que dependem da escolha do utilizador Ex: Nome do utilizador inválido
  • 22. Jan-01 Modelação Visual com UML e Rational Rose 2000 22 Vista dos Casos de Uso Diagramas de casos de uso w Podem incluir relações de herança entre actores w As colaborações definem as realizações dos casos de uso Diagrama de casos de uso: Mostra um conjunto de actores, casos de uso, relações entre eles e opcionalmente colaborações
  • 23. Casos de uso do professor Seleccionar as disciplinas a leccionar Professor Validar utilizador <<include>> Requerer a lista de disciplinas a leccionar <<include>>
  • 24. Jan-01 Modelação Visual com UML e Rational Rose 2000 23 Vista dos Casos de Uso Diagramas de casos de uso Pistas para utilização w Em cada sistema existe normalmente um diagrama principal de casos de uso onde são mostradas as fronteiras do sistema e as funcionalidades principais w Adicionalmente podem existir diagramas para: n Mostrar todos os casos de uso de um determinado actor n Mostrar todos os casos de uso a serem implementados numa interacção n Mostrar um caso de uso e todas as suas relações
  • 25. Diagrama de casos de uso principal Aluno Sistema de Facturação Matricular nas disciplinas Requerer a lista de disciplinas a leccionar Seleccionar as disciplinas a leccionar Professor Criar a lista de disciplinas Manter a informação dos alunos Manter a informação dos cursos Manter a informação dos professores Funcionário
  • 26. Jan-01 Modelação Visual com UML e Rational Rose 2000 24 Vista dos Casos de Uso Diagramas de actividade Diagrama de actividades: Apresenta uma forma de fluxograma dando ênfase na sequência de actividades
  • 27. Jan-01 Modelação Visual com UML e Rational Rose 2000 25 Vista dos Casos de Uso Diagramas de actividade Composição w Elementos UML incluídos nos diagramas de actividade: n Actividades – um conjunto de acções atómicas n Transições automáticas – entre as diferentes actividades n Pontos de decisão – permitem definir caminhos diferentes dependentes de uma condição (guard condition) n Actividades inicial e final – marcam o início e o fim das acções n Barras de sincronismo – permitem definir o local de início e fim de conjuntos de actividades que decorrem em paralelo n Swinlanes (Pistas) – permitem atribuir um responsável a um determinado conjunto de actividades n Objectos – por vezes são também incluídos
  • 28. Jan-01 Modelação Visual com UML e Rational Rose 2000 26 Vista dos Casos de Uso Diagramas de actividade Pistas para utilização w Descrição da dinâmica do sistema (os processos de negócio) mostrando a sequência de actividades, o seu paralelismo e a existência de caminhos alternativos Nota: A sequência de actividades é representada do ponto de vista dos actores que colaboram com o sistema. Pode envolver vários casos de uso ou apenas um determinado caso de uso w Descrição do fluxo de acções (o detalhe de um algoritmo) relativo a uma determinada operação
  • 29. Diagrama de actividades da criação do curriculum Criar curricul um Atribuir os professores às disciplinas Todos os professores estão atribuídos? [ Não ] Criar a lista de disciplinasdos cursos [ Sim] Disponibilizar o catálogo das disciplinas na livraria local Enviar o catálogo das disciplinas para os alunos Abrir as matriculas Seleccionar as disciplinas a leccionar ProfessorFuncionário
  • 30. Jan-01 Modelação Visual com UML e Rational Rose 2000 27 Arquitectura da Solução Vista Lógica w Vai documentar o design da solução (ou seja a arquitectura do sistema), inclui a organização, a estrutura e as relações das classes w Permite a comunicação com os peritos e entre os programadores e os analista de sistemas w O design do sistema, irá ser representado principalmente através de: n Objectos, n Classes, n Relações entre Classes
  • 31. Jan-01 Modelação Visual com UML e Rational Rose 2000 28 Vista Lógica Objectos Objecto: Representa uma entidade real ou conceptual. Possui três importantes características: estado, comportamento e identidade.
  • 32. Jan-01 Modelação Visual com UML e Rational Rose 2000 29 Vista Lógica Objectos Composição w Estado: pode mudar com o tempo e é definido por um conjunto de propriedades (atributos) Ex: disciplina: aberta (< 10 alunos) e fechada (=10 alunos) ) w Comportamento: diz como um objecto responde a outro objecto. É implementado por um conjunto de operações Ex: disciplina: Adicionar aluno e Apagar aluno w Identidade: cada objecto é único mesmo que tenha o seu estado igual ao de outro objecto Ex: disciplina: Álgebra 101, secção 1, Álgebra 101, secção 2
  • 33. Jan-01 Modelação Visual com UML e Rational Rose 2000 30 Vista Lógica Classes Classe: É a descrição de um conjunto de objectos com propriedades comuns, comportamento comum, relações com outros objectos comuns e semântica comum. w Uma classe funciona como um modelo para a criação de objectos w Cada objecto é uma instância de uma classe e cada objecto não pode pertencer a mais do que uma classe Ex: disciplina: local, hora (atributos) e obter local, adicionar aluno (Operações )
  • 34. Jan-01 Modelação Visual com UML e Rational Rose 2000 31 Vista Lógica Identificação de classes Pistas para identificação w Uma classe deve capturar apenas uma abstracção, ou seja ter um tema principal. Ex: (errado) classe que mantém a informação das disciplinas que um aluno fez e a informação do aluno w Os nomes devem ser vir do vocabulário do problema w A distinção entre objecto e classe pode não ser óbvia w Documentação das classes – apresentar o propósito da classe e não a estrutura. Dificuldade em escolher o nome pode representar a presença de uma má abstracção Ex: (errado) classe aluno – O nome, endereço e número de telefone do aluno
  • 35. Jan-01 Modelação Visual com UML e Rational Rose 2000 32 Vista Lógica Identificação de classes Método RUP w Tipos de classes (Seguem o princípio Modelo-Visualização-Controlo) ( representados por estereótipos com ícones próprios definidos dentro do Rational Rose): n Entidade (<<entity>>) – modela informação e comportamentos associados que são de longa duração n Fronteira (<<boundary>>) – tratam da comunicação entre o sistema e o exterior. n Controlo (<<control>>) – modelam o comportamento sequencial específico a um ou mais casos de uso.
  • 36. Diagrama de classes de Inscrição nas disciplinas ErroInscricao <<exception>> GestorInscricoesFormularioInscricao Disciplina Fronteira Entidade Controlo
  • 37. Jan-01 Modelação Visual com UML e Rational Rose 2000 33 Vista Lógica Objectos e classes Eastern State University w Resultantes do cenário “Adicionar disciplina a leccionar” do caso de uso “Seleccionar disciplinas a leccionar” n Classes fronteira OpcaoAdicionarDisciplina, OpcoesDisciplinasProfessor n Classes entidade Professor Disciplina Curso n Classes controlo GestorDisciplinasProfessor
  • 38. Jan-01 Modelação Visual com UML e Rational Rose 2000 34 Vista Lógica Pacotes Agrupar classes w Usados na vista lógica para agrupar um conjunto de classes e/ou outros pacotes w Contêm habitualmente um conjunto de classes públicas que constituem (realizam) a interface do pacote, o resto são classes de implementação do pacote
  • 39. Jan-01 Modelação Visual com UML e Rational Rose 2000 35 Vista Lógica Diagramas de classes Diagrama de classes: Mostra um conjunto de classes, interfaces, colaborações e as suas relações. Pode incluir pacotes e as suas relações.
  • 40. Jan-01 Modelação Visual com UML e Rational Rose 2000 36 Vista Lógica Diagramas de classe Pistas para utilização w Usos comuns - pode existir um diagrama para: n Visualizar as classes implementadas num determinado pacote n Visualizar a estrutura e comportamento de uma ou mais classes n Visualizar uma hierarquia de herança w Usados também para mostrar colaborações*, esquemas de bases de dados e grupos de pacotes, incluindo relações * sociedades de classes, interfaces e outros elementos que trabalham em conjunto de modo a fornecer um comportamento cooperativo
  • 41. Jan-01 Modelação Visual com UML e Rational Rose 2000 37 Vista Lógica Cenários e Colaborações Cenários w Cenário: n Capturam a funcionalidade dos casos de uso descrevendo possíveis sequências de acções que os concretizam. Representam uma possível sequência de acções dentro de um caso de uso n Usam-se para ajudar a identificar objectos, classes e interacções entre objectos necessárias para executar determinada funcionalidade do sistema n Documentam decisões de como as responsabilidades especificadas nos casos de uso se distribuem pelos objectos e classes do sistema n Constituem um excelente meio de comunicação e discussão dos requisitos do sistema com os clientes
  • 42. Jan-01 Modelação Visual com UML e Rational Rose 2000 38 Vista Lógica Cenários e Colaborações Pistas para identificação w Começar por encontrar os cenários principais referentes às acções e subacções dos casos de uso w Quando se começarem a repetir com frequência os passos de outros cenários é indicação que se deve concluir w Os cenários secundários, resultantes da análise dos casos “e-se” (“what-if”) vêm depois
  • 43. Jan-01 Modelação Visual com UML e Rational Rose 2000 39 Vista Lógica Cenários e Colaborações Realizações dos casos de uso w Os cenários dizem como se realiza um caso de uso através de interacções dentro de sociedades de objectos - colaborações (Nota: As realizações representam-se com diagramas de casos de uso) Ex: Criar um curso dentro do caso de uso Manter a informação dos cursos w Os cenários documentam-se com diagramas de interacção: Diagramas de sequência Diagramas de colaboração
  • 44. Diagrama de casos de uso e das suas realizações Manter a informação dos cursos (from Use Case View) Manter a informação dos cursos <<realize>> Seleccionar as disciplinas a leccionar (from Use Case View) Seleccionar as disciplinas a leccionar <<realize>>
  • 45. Diagrama de casos de uso das realições Criar a lista de disciplinas Manter a informação dos cursos Manter a informação dos professores Matricular nas disciplinas Validar utilizador Requerer a lista de disciplinas a leccionar Manter a informação dos alunos Seleccionar as disciplinas a leccionar
  • 46. Jan-01 Modelação Visual com UML e Rational Rose 2000 40 Vista Lógica Diagramas de sequência Diagrama de Sequência: Mostra as interacções entre objectos evidenciando as suas sequências temporais. Contém normalmente objectos e mensagens.
  • 47. Jan-01 Modelação Visual com UML e Rational Rose 2000 41 Vista Lógica Diagramas de sequência Pistas para utilização w Associados às realizações de casos de uso (colaborações) w Para mostrar a sequência de acções de um cenário w Devem-se acrescentar classes de fronteira para mostrar e documentar a interacção entre os actores e o sistema e não a implementação da interface w Manter os diagramas de sequência simples w Sugere-se incluir a lógica condicional apenas quando esta for simples, senão utilizar diagramas separados para o if, para o then e para o else (Nota: em Rational Rose podem-se ligar os diagramas criados através de links colocados nas notas)
  • 48. Jan-01 Modelação Visual com UML e Rational Rose 2000 42 Vista Lógica Diagramas de sequência Eastern State University w Resultante da análise do cenário “Criar um curso” do caso de uso “Manter a informação dos cursos”: n Objectos: Um formulário curso, um gestor, um curso n Actor: Funcionário n Mensagens: Fornecer informação do curso, processar, adicionar curso, novo curso
  • 49. Diagrama de sequência para a criação de um curso um curso : Curso: Funcionário um formulário de curso um gestor fornecer informacao do curso processar adicionar curso novo curso
  • 50. Jan-01 Modelação Visual com UML e Rational Rose 2000 43 Vista Lógica Diagramas de colaboração w São equivalentes aos diagramas de sequência mas mostram os cenários de uma maneira diferente dando ênfase à arquitectura (objectos e ligações) Diagrama de colaboração: Mostra as interacções entre objectos evidenciando as ligações entre eles. Contém Objectos, ligações (links) e mensagens
  • 51. Diagrama de colaboração da criação de um curso : Funcionário um formulário de curso um gestor um curso : Curso 1: fornecer informacao do curso 2: processar 3: adicionar curso 4: novo curso
  • 52. Diagrama de sequência de adicionar uma disciplina : Professor : OpcoesDisciplinasProfessor : OpcaoAdicionarDisciplina : GestorDisciplinasProfessor : Curso : Disciplina introduzir password verificar password introduzir semestre introduzir disciplina mostrar seleccionar Matemática 101 obter disciplinas obter disciplinas obter disciplinas mostrar disciplinas seleccionar disciplina atribuir disciplina adicionar professor adicionar professor
  • 53. Diagrama de classes participantes de adicionar uma disciplina Curso (from ElementosUniversidade) GestorDisciplinasProfessor (from ElementosUniversidade) Disciplina (from ElementosUniversidade) OpcoesDisciplinasProfessor (from Interfaces) OpcaoAdicionarDisciplina (from Interfaces)
  • 54. Jan-01 Modelação Visual com UML e Rational Rose 2000 44 Vista Lógica Relações entre classes Associação e agregação w A análise de cenários revela relações entre classes w O comportamento do sistema é obtido através de colaborações entre objectos. As mensagens trocadas entre objectos evidenciam relações entre as suas classes. w Dois tipos de relações encontrados durante a análise: n Associação – é uma ligação bidireccional entre duas classes. Uma associação entre classes significa que existe uma ligação (link) entre os objectos dessas classes n Agregação – é uma forma especializada de associação onde um todo está relacionado com as partes. (Relação part-off ou has-a)
  • 55. Jan-01 Modelação Visual com UML e Rational Rose 2000 45 Vista Lógica Associação e Agregação de Classes Pistas para identificação w Não é sempre clara a decisão entre a associação e agregação de classes. Colocar as seguintes questões: n É utilizada a frase “é parte de” na descrição da relação? n Algumas operações no todo são automaticamente aplicadas às partes? n Existe alguma assimetria intrínseca onde uma classe está subordinada a outra? w Muitas vezes a decisão depende do contexto do problema. Ex: Relação entre carro e pneus. Empresa pneus e concessionário.
  • 56. Jan-01 Modelação Visual com UML e Rational Rose 2000 46 Vista Lógica Associação e Agregação de Classes Composição w Podem-se ainda colocar os seguintes adornos nas associações ou agregações: n Nomes - comunicam o significado duma associação Ex: Professor ensina curso n Papeis das classes envolvidas – usados habitualmente como alternativa a nomear uma associação n Indicadores de Multiplicidade – definem o número de objectos que participam na associação ou agregação n Relações reflexivas – quando múltiplos objectos de uma classe têm que comunicar entre si
  • 57. Diagrama de classes com características das associações GestorDisciplinasProfessor Disciplina Curso Gere 0..n 0..n +Pré-requesitos 0..n 0..n Professor Disciplina (from ElementosUniversidade) 1 0..4 +OProfessor 1 0..4
  • 58. Jan-01 Modelação Visual com UML e Rational Rose 2000 47 Vista Lógica Associação e Agregação de Classes Eastern State University w Resultante do cenário “Adicionar uma disciplina” do caso de uso “Seleccionar as disciplinas a leccionar”: AgregaçãoDisciplinaCurso AssociaçãoCursoGestorDisciplinasProfesoor AssociaçãoGestorDisciplinasProfessorOpcaoAdicionarDisciplina AgregaçãoOpcaoAdicionarDisciplinaOpcoesDisciplinasProfessor Tipo RelaçãoClasse que recebe a msgClasse que envia a msg
  • 59. Diagrama de classes do pacote ElementosUniversidade GestorDisciplinasProfes sor Disciplina OpcaoAdicionarDisciplina (from Interfaces) OpcoesDisciplinasProfessor (from Interfaces) Curso 1 1..n 1 1 1 1 1 1 1 +Pré-requesitos 0..n0..n 0..n0..n 1 1..n 1 gere
  • 60. Jan-01 Modelação Visual com UML e Rational Rose 2000 48 Vista Lógica Relações entre pacotes w Existem também relações de dependência entre pacotes Por exemplo o pacote A depende do Pacote B: n Implica que uma ou mais classes do pacote A iniciam uma comunicação com uma ou mais classes do pacote B n No caso anterior o pacote A é o pacote Cliente e o pacote B é o pacote fornecedor
  • 61. Jan-01 Modelação Visual com UML e Rational Rose 2000 49 Vista Lógica Classes – operações e atributos Comportamento e estrutura w Operações – definem o comportamento da classe n As operações vão realizar as responsabilidades atribuídas à classe Ex: Classe Disciplina – responsabilidade de adicionar e remover aluno w Atributos – definem a estrutura da classe n Os atributos definem os dados que irão ser guardados por cada objecto da classe Ex: Classe Disciplina – local e hora de cada disciplina
  • 62. Jan-01 Modelação Visual com UML e Rational Rose 2000 50 Vista Lógica Classes – operações Pistas para identificação n As mensagens dos diagramas de sequência dão origem a operações nas classes dos objectos destinatários n As mensagens não dão origem a operações quando são enviadas para uma classe de fronteira, ou quando têm origem ou destino num actor humano n Os nomes devem ter em conta a classe que recebe a mensagem e não devem traduzir a implementação. Ex: calcularNumeroAlunos e obterNumeroAlunos n As operações devem ser documentadas em termos da funcionalidade disponibilizada. Devem indicar ainda os dados de entrada e saída.
  • 63. Diagrama de sequência de adicionar uma disciplina com operações : Professor : OpcoesDisciplinasProfessor : OpcaoAdicionarDisciplina : GestorDisciplinasProfe... : Curso : Di scipl ina introduzir password verificar password introduzir semestre introduzir disciplina mostrar seleccionar Matem ática 101 mostrar disciplinas seleccionar disciplina obterDisciplinas(Curso) atribuirProfessor(Professor, Curso, Disciplina) obterDisciplinas( ) atribuirProfessor(Professor, Curso) obterDisciplina( ) atribuirProfessor(Professor)
  • 64. Jan-01 Modelação Visual com UML e Rational Rose 2000 51 Vista Lógica Relação de Dependência entre Classes Pistas para identificação w dependência – relação uni-direccional entre duas classes. Classe depende de outra ou usa outra (Relação using) n Na dependência a classe da qual se depende não conhece a classe dependente (relação uni-direccional) n Pode ser identificada através da assinatura de uma operação quando é passado como argumento ou quando é retornado um objecto de outra classe n Pode ter origem ainda na criação e utilização de um objecto local de outra classe dentro de uma operação da classe dependente n Começa por ser modelada como associação
  • 65. Jan-01 Modelação Visual com UML e Rational Rose 2000 52 Vista Lógica Classes – atributos Pistas para identificação w Podem ser obtidos a partir da descrição do problema, do conjuntos de requisitos ou da descrição das sequências de acções documentadas w Devem ser documentados com definições claras e precisas. Ex: (errado) – Nome do Curso: uma string de tamanho 15, (correcto) – O título do curso tal como aparece nas publicações da universidade w Podem ser criados Diagramas de classe apenas para mostrarem todos ou alguns atributos e operações de uma ou mais classes
  • 66. Diagrama de classes do pacote ElementosUniversidade Disciplina local obterDisciplina() atribuirProfessor() adicionarAluno() <<entity>> Curso nome descricao horasCredito obterDisciplinas() atribuirProfessor() <<entity>> GestorDisciplinasProfessor obterDisciplinas() atribuirProfessor() <<control>>
  • 67. Jan-01 Modelação Visual com UML e Rational Rose 2000 53 Vista Lógica Classes de associação Relações entre classes w Classes de associação – obtidas a partir da associação entre duas classes quando esta relação tem estrutura e comportamento. Ex: Aluno e disciplina. Onde colocar a Nota obtida? n Podem ter também associações com outras classes
  • 68. Diagrama de classes das notas dos alunos Disciplina (from ElementosUniversidade) Aluno 3..100..4 3..100..4 NotasSemestre ListaNotasSemestre 1 1 1 1 0-4 10-4 1
  • 69. Jan-01 Modelação Visual com UML e Rational Rose 2000 54 Vista Lógica Herança entre classes Relações entre classes w Herança – define uma relação onde uma classe partilha a estrutura e comportamento de uma ou mais classes. A classe derivada vai herdar todos os atributos, operações e relações definidos nas classes que estão acima na hierarquia. (Relação kind-of ou is-a ) n A relação de herança não necessita de ter nome, papeis ou mesmo multiplicidade n A herança é a chave para a reutilização
  • 70. Jan-01 Modelação Visual com UML e Rational Rose 2000 55 Vista Lógica Herança entre classes Pistas para identificação w Por Generalização – criar uma classe base a partir de várias classes com comportamento e estrutura comuns Ex: Aluno e professor: nome, endereço e telefone, professorID e alunoID Utilizador com utilizadorID (se possível), incluir os outros atributos. w Por Especialização – adicionar comportamento e estrutura a uma classe. Pode-se redefinir operações sem nunca restringir uma operação previamente definida w Cuidado na utilização de descriminadores na criação de subclasses Ex: Curso, CursoInterno, CursoExterno – descriminador é o local do curso. E onde colocar por exemplo CursoObrigatorio?
  • 71. Diagrama de classe das hierarquias do pacote InformaçãoPessoas Professor Aluno Utilizador
  • 72. Jan-01 Modelação Visual com UML e Rational Rose 2000 56 Vista Lógica Herança múltipla Pistas para utilização w A herança múltipla origina diversos problemas devendo ser usada com muito cuidado Ex: Colisões de identificadores, cópias múltiplas de características herdadas e código difícil de manter w A agregação pode ser a alternativa correcta Ex: classes Aluno, ALunoFullTime AlunoPartTime
  • 73. Diagrama de classes da hierarquia do utilizador Utilizador nome numeroID <<entity>> Professor emSabatica <<entity>> Disciplina (from ElementosUniversidade) <<entity>> 0..4 1 0..4 +OProfessor 1 Aluno maioridade <<entity>> 0..4 3..10 0..4 3..10
  • 74. Jan-01 Modelação Visual com UML e Rational Rose 2000 57 Vista Lógica Herança e agregação entre classes Pistas para utilização w Não se deve abusar da utilização da herança apenas porque se diz que “a herança é muito boa”. Muitas vezes a agregação é a alternativa correcta Ex: classes Aluno, AlunoFullTime, AlunoPartTime – e se um aluno de Full Time decide mudar para Part Time, o objecto muda de classe?, e se é adicionada uma nova dimensão AlunoComBolsa e AlunoSemBolsa?
  • 75. Diagrama de classes da hierarquia do utilizador com classificação Utilizador nome numeroID <<entity>> Professor emSabatica <<entity>> Disciplina (from ElementosUniversidade) <<entity>> 0..4 1 0..4 +OProfessor 1 FullTime PartTime Aluno maioridade <<entity>> 0..4 3..10 0..4 3..10 Classificacao 0..n0..n
  • 76. Jan-01 Modelação Visual com UML e Rational Rose 2000 58 Vista Lógica Diagrama de estados Diagrama de estados: Define máquinas de estados. Mostra os estados de um objecto, acontecimentos e mensagens que originam mudanças de estado e as acções resultantes
  • 77. Jan-01 Modelação Visual com UML e Rational Rose 2000 59 Vista Lógica Diagrama de estados Composição w Elementos UML representados nos diagramas de estado: n Estados – quando um objecto satisfaz uma condição, executa uma acção ou aguarda um acontecimento. Pode incluir acções de entrada e saída e/ou actividades executadas durante o estado. Ex: professor em sabática e a dar aulas. n Transições entre estados – mudança para o estado seguinte. Pode incluir uma acção ou uma condição associada e pode ainda originar um acontecimento. Pode ser automática (a actividade do estado anterior acabou) ou ser causada por um acontecimento n Estados inicial e final – Existe sempre um único estado inicial e podem haver um, nenhum ou vários estados finais
  • 78. Jan-01 Modelação Visual com UML e Rational Rose 2000 60 Vista Lógica Diagrama de estados Pistas para utilização w Para mostrar o comportamento dinâmico duma classe que justifique, para investigar o comportamento de uma classe todo de uma agregação ou de uma classe de controlo w Contem todas as mensagens enviadas e recebidas pelo objecto w Os cenários representam um caminho através de um diagrama de estados w Examinar os diagramas de sequência para a identificação de estados: o intervalo entre duas mensagens enviadas pelo objecto normalmente está associado a um estado
  • 79. Jan-01 Modelação Visual com UML e Rational Rose 2000 61 Vista Lógica Diagrama de Estados Eastern State University w Resultantes da análise da classe “Disciplina” : n Estados: Aberta Fechada Cancelada Inicialização
  • 80. Diagrama de estados da disciplina Inicialização do/ Inicializar os dados da disciplina Aberta entry/ Registar estudante exit/ ^listaAlunos.adicionar aluno(aluno) Fechada do/ finalizar disciplina Cancelada cancelar cancelar adicionar aluno / colocar contador = 0 ^ListaAlunos.criaradicionar aluno[ contador < 10 ] [ contador = 10 ] ^ListaAlunos.apagar
  • 81. Jan-01 Modelação Visual com UML e Rational Rose 2000 62 Vista lógica Homogeneização do design w Combinar classes – Classes semelhantes que fazem a mesma coisa, classes de controlo com comportamentos semelhantes e que acedem à mesma informação w Dividir classes – Quando não possuem um único tema principal, quando um atributo exibe estrutura e comportamento associados w Eliminar classes – Classes que não possuem qualquer estrutura e comportamento, classes que não participam em casos de uso w Verificar consistência n Percorrer os cenários n Seguir os acontecimentos n Rever a documentação
  • 82. Jan-01 Modelação Visual com UML e Rational Rose 2000 63 Arquitectura da Solução Vista da implementação w Vai documentar a partir de diagramas de componentes a organização modular do software w Tem em conta requisitos derivados como sejam facilidade de desenvolvimento, gestão do software, reutilização e restrições das linguagens de programação utilizadas w Os pacotes nesta vista representam partições físicas do sistema w O Rational Rose inclui esta vista dentro da vista dos componentes definida no browser do programa
  • 83. Jan-01 Modelação Visual com UML e Rational Rose 2000 64 Vista da implementação Diagrama de componentes w Pode incluir componentes de código fonte, componentes executáveis e dependências entre componentes w Pode incluir pacotes e dependências entre eles Diagrama de componentes: Mostra um conjunto de componentes e as suas relações. Pode incluir interfaces e pacotes
  • 84. Jan-01 Modelação Visual com UML e Rational Rose 2000 65 Vista da implementação Diagrama de componentes Pistas para utilização w Inclui habitualmente as classes do modelo lógico (quando estas estão implementadas em componentes) w Outros usos: n Para modelar os ficheiros de código fonte. Inclui os componentes de trabalho n Para modelar a versão final do programa. Inclui executáveis, bibliotecas, tabelas, ficheiros e documentos n Para modelar bases de dados
  • 85. Diagrama de componentes principal Interfaces Universidade Tratamento de erros Base de dados Bases
  • 86. Diagrama de componentes da Universidade Curso Disciplina AlunoProfessor Utilizador
  • 87. Jan-01 Modelação Visual com UML e Rational Rose 2000 66 Arquitectura da solução Vista dos processos w Vai documentar a partir de diagramas de componentes a estrutura da implementação em execução do sistema w Tem em conta requisitos como sejam performance, fiabilidade, escalabilidade, integridade, gestão do sistema e sincronização w O Rational Rose inclui esta vista dentro da vista dos componentes definida no browser do programa.
  • 88. Diagrama de componentes executáveis do professor OpcoesProfessor <<EXE>> Persistencia <<DLL>> APIBaseDa dos Cursos <<DLL>> APICursos
  • 89. Jan-01 Modelação Visual com UML e Rational Rose 2000 67 Arquitectura da solução Vista da instalação w Vai documentar a partir de diagramas de instalação a distribuição física dos elementos processadores e do software que incluem w Define a topologia do sistema w Tem em conta requisitos como sejam disponibilidade do sistema, fiabilidade, performance e escalabilidade
  • 90. Diagrama de instalação Registo OpcoesProfessor.exe Servidor base de dados Biblioteca OpcoesAluno.exe Dormitório OpcoesAluno.exe Edificio principal OpcoesAluno.exe
  • 91. Jan-01 Modelação Visual com UML e Rational Rose 2000 68 Vista da instalação Diagrama de instalação Diagrama de instalação: Apresenta uma visão dos elementos físicos que constituem o sistema. Mostra os nós, os componentes que existem dentro deles e as ligações com outros nós.
  • 92. Jan-01 Modelação Visual com UML e Rational Rose 2000 69 Vista lógica Mecanismos chave Selecção dos mecanismos chave w É importante seleccionar os mecanismos chave que irão ser utilizados na arquitectura da solução que incluem: n Linguagem de implementação n Forma de armazenamento de dados n Interface do utilizador n Tratamento de erros n Mecanismos de comunicação n Distribuição e migração de objectos n Ligações em rede
  • 93. Diagrama de classes principal Interfaces InformaçãoPessoasElementosUniversidade Controlos GUI Bases global Base de dados Tratamento de erros global
  • 94. Jan-01 Modelação Visual com UML e Rational Rose 2000 70 Vista lógica Conclusão do Design Propósito w Passar da análise inicial da especificação do que o sistema deve fazer para como fazer. w Completar e implementar o design n Definir e desenhar a interface do utilizador n Adicionar classes de design n Completar e refinar as relações definidas n Completar o design das operações e atributos w Comunicar o design aos programadores
  • 95. Jan-01 Modelação Visual com UML e Rational Rose 2000 71 Vista lógica Conclusão do Design Interface com o utilizador e classes de design w Definir e desenhar a interface do utilizador: n Examinar os cenários: é necessário fornecer a capacidade de enviar e receber mensagens dos actores n Implica a implementação das classes de fronteira definidas: criar janelas, definir o layout das janelas, tratar eventos do utilizador Ex: Seleccionar disciplinas a leccionar – janela com password, janela de opções, botões, caixas edição de texto, etc. w Adicionar classes de design n Para facilitar o como fazer (how-to) do sistema n Classes que aparecem por necessidade de implementação Ex: ListaIDValidos - Classe que sabe como validar as passwords
  • 96. Diagrama de classes principal do pacote das interfaces OpcaoAdicionarDisciplina <<boundary>> ListaIDValidos <<entity>> OpcoesDisciplinasProfessor <<boundary>> 1 1 1 1 1..n1 1..n1
  • 97. Jan-01 Modelação Visual com UML e Rational Rose 2000 72 Vista lógica Conclusão do design Refinação das relações entre classes w Completar e refinar as relações definidas n Navegação – Rever as associações e agregações para determinar a uni-direccionalidade. Implica classes mais fáceis de manter n Composição – Quando a agregação implica a contenção exclusiva das partes. Implica contenção por valor (e não por referência) Ex: Classes OpcoesDisciplinaProfessor e OpcaoAdicionarDisciplina n Dependência – Quando uma das classes numa associação não possui ou necessita de ter qualquer conhecimento da outra Ex: Classes Disciplinas e BDDisciplinas n Implementação da multiplicidade – Quando a multiplicidade é superior a um usa-se normalmente classes contentoras.
  • 98. Jan-01 Modelação Visual com UML e Rational Rose 2000 73 Vista lógica Refinação das relações entre classes Eastern State University w Resultantes do cenário “Adicionar uma disciplina” do caso de uso “Seleccionar as disciplinas a leccionar”: ComposiçãoDisciplinaCurso AssociaçãoProfessorDisciplina DependênciaBDDisciplinasDisciplina Associação (unidir)CursoOpcaoAdicionarDisciplina Associação (unidir)ListaIDValidosOpcoesDisciplinasProfessor Composição (unidir)OpcaoAdicionarDisciplinaOpcoesDisciplinasProfessor Tipo RelaçãoClasseClasse
  • 99. Diagrama de classes dos cursos Curso <<entity>> 0..n 0..n +Pré-requesitos 0..n 0..n Aluno (from InformaçãoPessoas) <<entity>> Disciplina <<entity>> 0..4 3..10 0..4 3..10 BDDisciplinas (from Base de dados)
  • 100. Diagrama de classes actualizado do pacote das interfaces ListaIDValidos <<entity>> OpcoesDisciplinasProfessor <<boundary>> 1..n1 1..n1 OpcaoAdicionarDisciplina <<boundary>> 1 1 1 1 Curso (from El ementosUni versi dade) <<entity>>
  • 101. Jan-01 Modelação Visual com UML e Rational Rose 2000 74 Vista lógica Conclusão do design Operações e atributos w Completar o design das operações e atributos com: n Tipos de dados – são dependentes da linguagem n Valores iniciais n Controlo de acesso - privado, publico e protegido.
  • 102. Diagrama de classes dos ElementosUniversidade com atributos e operações Curso nome : String descricao : String horasCredito : Integer = 3 obterDisciplinas() : ListaDisciplinas atribuirProfessor(professor : Professor, curso : Curso) : Boolean <<entity>> Disciplina local obterDisciplina() : ListaDisciplinas atribuirProfessor(professor : Professor) : Boolean adicionarAluno() <<entity>> GestorDisciplinasProfessor obterDisciplinas(curso : Curso) : ListaDisciplinas atribuirProfessor(professor : Professor, curso : Curso, disciplina : Disciplina) : Boolean <<control>>