Beruflich Dokumente
Kultur Dokumente
Modelagem de Software
Orientado a Objetos
Apresentao da disciplina
Mdulo I 2 semestre de 2011
Modelagem de Software
Orientado a Objetos
Apresentaes iniciais
30/08/2011
Modelagem de Software
Orientado a Objetos
Apresentaes iniciais
Sua empresa
Seu cargo
Sua experincia
experincia com tecnologia de objetos
experincia em desenvolvimento de software
Suas espectativas com esta disciplina
Modelagem de Software
Orientado a Objetos
Pblico alvo
Graduados nas reas de Computao, Sistemas de
Informao, Anlise de Sistemas e Tecnologia da
Informao.
Desenvolvedores de software interessados em
modelagem visual de sistemas.
Gerentes de desenvolvimento que desejam entender
melhor a tecnologia de objetos.
Desejvel que conhea e tenha alguma experincia em
programao de computadores.
30/08/2011
Modelagem de Software
Orientado a Objetos
Objetivos previstos na disciplina MSOO
Definir o histrico e a aplicao atual da tecnologia
de objetos.
Explicar o que a UML representa.
Explicar abstrao, encapsulamento, modularidade e
hierarquia.
Descrever a estrutura fsica de uma classe.
Identificar o relacionamento entre objetos e classes.
Definir polimorfismo e generalizao.
Modelagem de Software
Orientado a Objetos
Estrutura da disciplina
Disciplina: MSOO
Parte 1
Parte 2
Parte 3
Parte 4
Princpios de
orientao a
objetos
Princpios de
modelagem
UML
Anlise de
modelos de
software
Estudos de
Caso
6 horas
9 horas
9 horas
6 horas
30/08/2011
Modelagem de Software
Orientado a Objetos
CRAIG LARMAN, Applying UML and Patterns: An
Introduction to Object-Oriented Analysis and Design and
Iterative Development,Bookman, 3rd Edition, 2007.
Modelagem de Software
Orientado a Objetos
ERIC GAMMA, RICHARD HELM, RALPH JOHNSON,
JOHN VLISSIDES, Design Patterns,Addison Wesley,
1995.
30/08/2011
Modelagem de Software
Orientado a Objetos
ALISTAIR COCKBURN Surviving Object-Oriented
Projects, Addison Wesley, 1998.
Modelagem de Software
Orientado a Objetos
Parte 1 Princpios de Orientao a Objetos
Introduo
Prof. Dr. Maurcio Nacib Pontuschka
tuska@pucsp.br
30/08/2011
Tecnologia de Objetos
O que a tecnologia de objetos?
Tecnologia de Objetos
Um conjunto de princpios utilizado na construo
de software, em conjunto com linguagens, bancos
de dados e outras ferramentas que suportam estes
princpios.
Object Technology A Managers Guide, Taylor, 1997.
30/08/2011
C ++
1967
Final de
UML
1980
1996
1972
1991
2004
Smalltalk
Java
UML 2
30/08/2011
Tecnologia de Objetos
Onde a tecnologia de objetos utilizada
atualmente?
Sistemas cliente/servidor e
Desenvolvimento WEB
A tecnologia de objetos permite as empresas a
encapsular as informaes de negcios em objetos e
ajuda a distribuir o processo por meio da Internet ou
uma rede convencional.
30/08/2011
Orientao a objetos
Une dados e os processos de fluxo de dados nos
primeiros momentos do ciclo de vida de
desenvolvimento.
Possui um alto nvel de encapsulamento.
Promove o reuso de cdigo.
Permite uma maior abrangncia do software.
30/08/2011
Rational developerWorks
http://www-136.ibm.com/developerworks/
Rational Edge
http://www-106.ibm.com/developerworks/rational/rationaledge/
Dvidas?
10
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 1 Princpios de Orientao a Objetos
Continuao
Prof. Dr. Maurcio Nacib Pontuschka
tuska@pucsp.br
O que modelagem?
Um modelo uma simplificao da realidade.
11
30/08/2011
Objetivos da modelagem
Ajudar a visualizar o sistema como gostaramos
que ele fosse
Permitir a especificao da arquitetura e
comportamento de um sistema
Fornecer padres de desenvolvimento que serve
como guia de construo do sistema
Documentar as decises tomadas durante o
processo de desenvolvimento
12
30/08/2011
Importncia da modelagem
Menos importante
Avio de papel
Mais importante
Jato militar
13
30/08/2011
14
30/08/2011
15
30/08/2011
Modelo de Processo
Modelo de Implantao
Modelo de Projeto
Viso dos
consumidores
Viso dos
desenvolvedores
16
30/08/2011
Viso lgica
Viso de Implementao
Analistas/Projetistas
Programadores
Estrutura
Gesto de software
Viso de
processo
Integradores de Sistemas
Performance, escalabilidade,
acoplamento
Viso de
Implantao
Engenharia de Sistemas
Topologia do sistema, entrega,
instalao, comunicao
17
30/08/2011
Prximos objetivos
Descrever uma abstrao, encapsulamento, modularidade
e herana.
Descrever a estrutura fsica de uma classe.
Descrever o relacionamento entre uma classe e um
objeto.
Definir polimorfismo e generalizao.
O que um objeto?
Quatro princpios da OO
O que uma classe?
Polimorfismo e Generalizao
Organizando elementos de modelo
18
30/08/2011
Entidade conceitual
Processo qumico
Entidade de software
Lista ligada
19
30/08/2011
Nome: J Clark
ID: 567138
DtContr: 07/25/1991
Area: Finance
Nome: J Clark
ID Funcionrio: 567138
Contratao: 25 de Julho de 1991
rea: Finanas
Professor Clark
Professor Clark
20
30/08/2011
Nome: J Clark
Ensina: Biologia
Nome: J Clark
Ensina: Biologia
O que um objeto?
Quatro princpios da OO
O que uma classe?
Polimorfismo e Generalizao
Organizando elementos de modelo
21
30/08/2011
Hierarquia
Modularidade
Encapsulamento
Abstrao
Orientao a Objetos
O que abstrao?
So caractersticas essenciais de
uma entidade que a distingue de
todos os outros tipos de entidade.
Define uma fronteira relativa
perspectiva do observador.
No uma manifestao
concreta, denota a essncia ideal
de alguma coisa.
22
30/08/2011
Estudante
Professor
O que encapsulamento?
Esconde a implementao dos clientes
Clientes dependem da interface.
Favorece a adaptabilidade
23
30/08/2011
Professor Clark
precisa ser capaz de
ministrar quatro
turmas no prximo
semestre.
Professor Clark
setCargaMxima(4)
Nome: J Clark
ID: 567138
DtContr: 07/25/1991
Disciplina: Finanas
CargaMxima:4
O que Modularidade?
Quebra algo complexo em partes
gerenciveis.
Auxilia as pessoas a entender sistemas
complexos.
24
30/08/2011
Exemplo de Modularidade
Por exemplo, quebrar um sistema
complexo em mdulos menores.
Sistema
de
cobrana
Sistema de
catlogo de
cursos
Sistema de registro
de cursos
Sistema de
gerenciamento
de estudantes
Ativo
Conta Bancria
Menor
abstrao
Poupana
Conta
Corrente
Valores Mobilirios
Aes
Ttulos
Governamentais
Aplices
25
30/08/2011
: Professor
Professor J Clark
Objeto annimo
O que um objeto?
Quatro princpios da OO
O que uma classe?
Polimorfismo e Generalizao
Organizando elementos de modelo
26
30/08/2011
Propriedades
Comportamento
Nome
Localizao
Carga horria
crditos
Hora de incio
Hora de trmino
Adicionar estudante
Remover estudante
Obter lista de nomes
Indicar turma lotada
27
30/08/2011
O nome da classe
A estrutura (atributos)
O comportamento (operaes)
+ publicarNotasFinais()
+ aceitarOfertaDecurso()
+ setCargaMax()
Professor Meijer
Professor Allen
28
30/08/2011
O que um atributo?
Um atributo uma propriedade nomeada de uma classe e
descreve um conjunto de valores que as instncias desta
propriedade podem assumir.
Uma classe pode possuir um nmero qualquer de atributos
inclusive nenhum.
Estudante
Atributos
- nome
- endereco
- cpf
- nascimento
:Estudante
Estudante
- nome
- endereco
- cpf
- nascimento
- nome = M. Modano
- endereco = R. Augusta,2
- cpf = 123.456.789/10
- nascimento = 03/10/1967
Objetos
:Estudante
- nome = Ivone Teixeira
- endereco = Av. Paulista,1
- cpf = 111.213.141/51
- nascimento = 12/11/1969
29
30/08/2011
operaes
+ getTitulacao()
+ addCalendario()
+ getCalendario()
+ delCalendario()
+ possuiPreRequisitos()
O que um objeto?
Quatro princpios da OO
O que uma classe?
Polimorfismo e Generalizao
Organizando elementos de modelo
30
30/08/2011
O que polimorfismo?
Habilidade de esconder muitas implementaes por
trs de uma nica interface.
Fabricante A
Fabricante B
Fabricante C
Princpio OO:
Encapsulamento
Controle Remoto
Exemplo: Polimorfismo
instrumentoFinanceiro.getValorCorrente()
Ao
Ttulo
Fundo de Investimento
31
30/08/2011
O que sobrecarga?
Em uma mesma classe pode possuir operaes com o
mesmo nome e parmetros diferentes.
Quando isso ocorre dizemos que este mtodo foi
sobrecarregado.
O que sobreposio?
Em uma hierarquia de classes caso exista um
mtodo na sub-classe com a mesma assinatura de
um mtodo da classe pai, este se sobrepor o
mtodo da super-classe.
32
30/08/2011
O que Generalizao?
Um relacionamento entre classes onde uma classe
compartilha sua estrutura e/ou seu comportamento de
uma ou mais classes.
Define uma hierarquia de abstraes na qual uma
subclasse herda elementos de uma hierarquia de
superclasses, recebendo como herana suas
caractersticas e comportamento.
Herana simples.
Herana mltipla.
um relacionamento um.
Superclasse
(pai)
+ saque()
+ criarDeclaracao()
Relacionamento
de
generalizao
Subclasses
(filha)
Poupanca
Corrente
Descendentes
33
30/08/2011
Animal
Herana Mltipla
Aviao
Helicoptero
Passaro
Lobo
Cavalo
O que Herana?
Um subclasse herda os atributos, operaes e
relacionamentos da superclasse.
Uma subclasse pode:
Adicionar atributos, operaes e relacionamentos novos.
Redefinir operaes herdadas. (Use com cuidado!)
34
30/08/2011
O que um objeto?
Quatro princpios da OO
O que uma classe?
Polimorfismo e Generalizao
Organizando elementos de modelo
O que Pacote?
Um mecanismo de proposta geral para organizar
elementos em grupos.
Um elemento de modelagem que pode conter outros
elementos de modelagem.
Um pacote pode ser usado:
Para organizar o modelo em desenvolvimento.
Como uma unidade de gesto de configurao.
Artefatos da
Universidade
35
30/08/2011
Artefatos
da
Universidade
Curso
Estudante
Professor
Calendario
CursosOferecidos
<contedo>
36
30/08/2011
Reviso
O que um objeto?
Quais so os quatro princpios de orientao a
objetos? Descrever cada um.
O que uma classe? Como relacionar classes e
objetos?
O que um atributo? Uma operao?
Defina polimorfismo. Fornea um exemplo de
polimorfismo.
O que generalizao?
Por que usar pacotes?
Dvidas?
37
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 2- Princpios de Modelagem UML
O que a UML?
Uma linguagem para:
visualizao,
especificao,
construo e
documentao
38
30/08/2011
39
30/08/2011
Diagrama de Implantao
- 95 :
- NT: -
- : - -, -
- IBM : -, -
Windows95
Window95
Windows95
Use Case 1
-
.EXE
-
Windows
NT
Actor A
Solaris
Actor B
Use Case 2
- .EXE
Alpha
UNIX
-.EXE
Windows
NT
IBM
Mainframe
Use Case 3
-
DocumentList
mainWnd
fileMgr :
document :
gFile
repository
Document
FileMgr
user
Document
FileMgr
add( )
name : int
delete( )
fetchDoc( )
docid : int
sortByName( )
numField : int
get( )
open( )
close( )
2: fetchDoc( )
code..
read( )
FileList
sortFileList( )
fList
create( )
3: create ( )
fillDocument( )
add( )
delete( )
1
4: create ( )
5: readDoc ( )
6: fillDocument ( )
- .
rep
7: readFile ( )
File
Repository
8: fillFile ( )
(from Persistence)
read( )
-
9: sortByName ( )
GrpFile
name : char * = 0
-
.
readDoc( )
readFile( )
read( )
open( )
create( )
fillFile( )
Diagrama de Seqncia
Diagrama de Classe
40
30/08/2011
Hstria da UML
(2004)
UML 1.5
(Mar, 2003)
UML
UML 1.1
Experincias
de parceiros
UML 1.0
(Set. 1997)
(Jan. 1997)
(Out. 1996)
Feedback
do pblico
OOSE
Outros
Mtodos
Booch 1991
OMT - 1
Booch
Jacobson
Meyer
Fusion
Condies anteriores
e posteriores
Descrio de operaes
Numerao de
mensagens
Harel
Embley
Classes Singleton,
Viso de alto nvel
Diagrama de estados
Gamma, et.al
Wirfs-Brock
Frameworks, padres,
notas
Shlaer- Mellor
Ciclo de vida de objetos
Responsabilidades
Odell
ROOM (Real-Time
Object-Oriented Modeling)
Classificao
41
30/08/2011
Desenvolvimento
Baseado em Equipes
Linguagem
de Modelagem
Processo
Unificado
42
30/08/2011
Cliente
Sacar dinheiro
43
30/08/2011
Iterao 2
Iterao 3
R
D
R
D
D
C
C
I
I
T
TEMPO
44
30/08/2011
Reviso
Dvidas?
45
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 2- Princpios de Modelagem UML
Modelagem por Casos de Uso
Prof. Dr. Maurcio Nacib Pontuschka
tuska@pucsp.br
Objetivos
Descrever o comportamento de um sistema e mostrar
como captur-lo em um modelo.
Demostrar como ler e interpretar:
um diagrama de casos de uso;
um diagrama de atividades.
46
30/08/2011
Onde estamos?
47
30/08/2011
Matricular em cursos
Estudante
Requerer
certificado
Comunicao
Identificao
Verificao
Comunicao
Usurio
final
Especialista no
domnio
Identificao
Caso de Uso
Verificao
Usurios
48
30/08/2011
Caso de Uso
Onde estamos?
49
30/08/2011
O que um ator?
Atores representam papis que os
usurios do sistema podem assumir.
Podem representar uma pessoa,
uma mquina ou outros sistemas.
Podem trocar informaes com o
sistema ativamente.
Podem ser fornecedores de
informao.
Podem ser receptores passivos de
informao.
Atores no fazem parte do sistema
Ator
Atores so EXTERNOS.
50
30/08/2011
Associao
Ator
Catlogo de cursos
Mantm cadastro de
professor
Matricula-se em
cursos
Estudante
Mantm informaes
do estudante
Funcionrio
Seleciona cursos
para ministrar
Fecha matrcula
Professor
Publica notas
Sistema de Cobrana
51
30/08/2011
Onde estamos?
Atividade 2
Atividade 1
Atividade 3
52
30/08/2011
Atividade 4
<<Ps-condio>>
Boolean restriot
Atividade 5
Threads
Paralelos
[ apaga curso ]
Atividade/Ao
Apaga curso
[ adiciona curso ]
Synchronization
Bar (Fork)
Condio
de fluxo
Verifica
Calendrio
[ verificao ok ]
Matricular
no curso
Verifica
Pr-requisitos
[verificao falha]
Resolver
Conflitos
Barra de
sincronizao
(Join)
Transio
Atualizar
Calendrio
53
30/08/2011
SISTEMA
54
30/08/2011
FA1
FLUXO DE ORIGEM: FP
FLUXO DE RETORNO: FP
ATOR
SISTEMA
4. Informa que a turma no existe
FE1
FLUXO DE ORIGEM: FP
ATOR
5. Cancela a operao.
OBSERVAO
Embora nestes slides os fluxos tenham sido colocados de forma separada para uma melhor
visualizao no formato de apresentao, estes podem ser contnuos em uma mesma tabela.
55
30/08/2011
Reviso
Exerccio
Dados:
Casos de uso, atores e associaes
Desenhe:
Um diagrama de casos de uso
Dados:
Aes, estados e atividades
Desenhe:
Um diagrama de atividades
56
30/08/2011
Dvidas?
57
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 2- Princpios de Modelagem UML
Diagramas de Interao
Prof. Dr. Maurcio Nacib Pontuschka
tuska@pucsp.br
Objetivos
58
30/08/2011
getOfertaCursos(semestre)
: Car buyer
:ControladorMatrcula
:SistemaCatalogoCurso
59
30/08/2011
Variantes Especializadas
Diagrama de Tempo
Diagrama Geral de Interao
Diagramas de Interao
Diagrama de Seqncia
Viso cronolgica das interaes
dos objetos.
Diagramas de
Seqncia
Diagrama de Comunicao
Viso estrutural das mensagens
dos objetos.
Diagramas de
Comunicao
60
30/08/2011
Diagramas de Interao
Diagrama de Tempo
Viso de restries de tempo das
mensagens envolvidas em uma
interao.
Diagramas de Tempo
Diagramas Gerais de
Interaes
Onde estamos?
Diagramas de Seqncia
Diagramas de Comunicao
Comparao dos diagramas de interao
61
30/08/2011
Diagrama de
seqncia
:RegisterForCoursesForm
:RegistrationController
:CourseCatalogSystem
: Course Catalog
1: create schedule( )
2: get course offerings( )
3: get course offerings(forSemester)
4: get course offerings( )
ref
Select Offerings
62
30/08/2011
:RegistrationController
Objetos annimos
SWTSU Catalog :
CourseCatalogSystem
Objetos nomeados
Linhas
de vida
:RegistrationController
SWTSU Catalog :
CourseCatalogSystem
: Course Catalog
Instncias de atores
63
30/08/2011
:RegistrationController
: Student
SWTSU Catalog :
CourseCatalogSystem
: Course Catalog
1: create schedule( )
Mensagem
Mensagens
Reflexivas
:RegistrationController
: Student
SWTSU Catalog :
CourseCatalogSystem
: Course Catalog
1: create schedule( )
2: get course offerings( )
3: get course offerings(for Semester)
4: get course offerings( )
Processo em
execuo
64
30/08/2011
:RegistrationController
: Student
SWTSU Catalog :
CourseCatalogSystem
: Course Catalog
1: create schedule( )
2: get course offerings( )
3: get course offerings(for Semester)
4: get course offerings( )
Ocorrncia de
evento
:RegistrationController
: Student
SWTSU Catalog :
CourseCatalogSystem
: Course Catalog
1: create schedule( )
2: get course offerings( )
3: get course offerings(for Semester)
4: get course offerings( )
ref
Ocorrncia
de
interao
Select Offerings
65
30/08/2011
Onde estamos?
Diagramas de Seqncia
Diagramas de Comunicao
Comparao dos diagramas de interao
Diagramas de Interao
66
30/08/2011
1: create schedule( )
: Course Catalog
: RegisterForCoursesForm
: Student
: CourseCatalogSystem
Objetos
: RegistrationController
SWTSU Catalog
: CourseCatalogSystem
67
30/08/2011
: Course Catalog
: Student
Atores
SWTSU Catalog
: CourseCatalogSystem
: RegistrationController
Ligaes
1: create schedule( )
: Course Catalog
: RegisterForCoursesForm
: Student
: CourseCatalogSystem
68
30/08/2011
Onde estamos?
Diagramas de Seqncia
Diagramas de Comunicao
Comparao dos diagramas de interao
So semanticamente equivalentes
Podem ser convertidos de um para o outro sem perda
de informao
69
30/08/2011
Diagramas de Comunicao
Exibem relacionamentos,
alm das interaes.
Melhores para visualizao
de padres de comunicao.
Melhores para visualizao
de todos os efeitos de um
dado objeto.
Mais fceis de serem
utilizados em sesses de
brainstorming.
Resumo
Qual a proposta de um diagrama de interao?
O que um diagrama de seqncia? E um diagrama de comunicao?
O que um diagrama de tempo? E um diagrama geral de interao?
Quais so as similaridades entre os diagramas de seqncia e de
comunicao?
Quais so as diferenas entre os diagramas de seqncia e de
comunicao?
70
30/08/2011
Exerccio
Dado:
Um conjunto de objetos, suas
ligaes e mensagens.
Produzir:
Um diagrama de seqncia.
Um diagrama de mensagens.
Dvidas?
71
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 2- Princpios de Modelagem UML
Diagrama de Classes
Prof. Dr. Maurcio Nacib Pontuschka
tuska@pucsp.br
72
30/08/2011
Onde Estamos?
Diagrama de Classes
Relacionamento de Classes
Associao
Agregao
Generalizao
Schedule
CloseRegistrationController
- semester
+ open()
+ close registration()
Student
+ get tuition()
+ add schedule()
+ get schedule()
+ delete schedule()
+ has pre-requisites()
+ commit()
+ select alternate()
+ remove offering()
+ level()
+ cancel()
+ get cost()
+ delete()
+ submit()
+ save()
+ any conflicts?()
+ create with offerings()
+ update with new selections()
+ is registration open?()
+ close registration()
Professor
- name
- employeeID : UniqueId
- hireDate
- status
- discipline
- maxLoad
+ submitFinalGrade()
+ acceptCourseOffering()
+ setMaxLoad()
+ takeSabbatical()
+ teachClass()
73
30/08/2011
RegisterForCoursesForm
Schedule
CloseRegistrationForm
CloseRegistrationController
Professor
Student
Course
CourseOffering
CourseCatalogSystem
BillingSystem
74
30/08/2011
Artefatos da
Universidade
Registration
CloseRegistrationForm
CloseRegistrationController
RegisterForCoursesForm
RegistrationController
75
30/08/2011
Onde Estamos?
Diagrama de Classes
Relacionamento de Classes
Associao
Agregao
Generalizao
Calendrio
Curso
76
30/08/2011
2: submit schedule( )
: RegisterForCoursesForm
: RegistrationController
: Student
8: any conflicts?( )
3: save( )
4: submit( )
: Schedule
7: still open?( )
9: add student(Schedule)
6: has pre-requisites(CourseOffering)
: CourseOffering
: Student
5: is selected?( )
10: mark as enrolled in( )
: PrimaryScheduleOfferingInfo
Professor
- instrutor
0..1
Oferta de Curso
0..*
77
30/08/2011
Indicadores de Multiplicidade
No especificado
Exatamente um
Zero ou mais
0..*
Zero ou mais
Um ou mais
1..*
0..1
Faixa especfica
2..4
2, 4..6
Exemplo: Multiplicidade
RegisterForCoursesForm
RegistrationController
1
0..1
0..1
Student
Schedule
0..*
0..*
CourseOffering
0..4
78
30/08/2011
Onde Estamos?
Diagrama de Classes
Relacionamento de Classes
Associao
Agregao
Generalizao
Parte
0..1
79
30/08/2011
Exemplo: Agregao
RegisterForCoursesForm
RegistrationController
1
0..1
0..1
Student
Schedule
0..*
0..*
CourseOffering
0..4
Onde Estamos?
Diagrama de Classes
Relacionamento de Classes
Associao
Agregao
Generalizao
80
30/08/2011
um relacionamento -um.
Superclasse
(pai)
+ withdraw()
+ createStatement()
Relacionamento
de
generalizao
Subclasse
(filha)
Savings
Checking
Descendentes
81
30/08/2011
Animal
Herana Mltipla
Aviao
Helicoptero
Ave
Lobo
Cavalo
Reviso
O que um diagrama de classes
representa?
Qual benefcio os pacotes propiciam
ao modelo?
Defina associao, agregao e
generalizao.
Como encontramos associaes?
O que multilicidade?
Quais informaes a multiplicidade
fornece ao modelador?
82
30/08/2011
Exerccio
Dado:
Um conjunto de classes e seus
relacionamentos
Desenhe:
Um diagrama de classes
Dvidas?
83
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 2- Princpios de Modelagem UML
Outros Diagramas da UML
Prof. Dr. Maurcio Nacib Pontuschka
tuska@pucsp.br
Objetivos
84
30/08/2011
Onde Estamos?
Nome: J Clark
ID: 567138
Contr: 07/25/1991
Estado: Titular
Disciplina: Finanas
Carga mx.: 3
Nome: J Clark
ID: 567138
Data Contratao: July 25, 1991
Estado: Titular
Disciplina: Finanas
Carga mxima: 3 classes
Professor Clark
85
30/08/2011
Exemplo: Professor
Professor
assistente
Efetivo
86
30/08/2011
Estados especiais
O estado inicial o estado que o objeto se encontra
quando ele criado.
Um estado inicial obrigatrio
S pode haver um estado inicial.
O estado inicial representado por um crculo slido.
O que so eventos?
Evento
Efetivo
87
30/08/2011
O que so transies?
Uma transio a mudana de um estado original
para um estado sucessor como resultado de algum
estmulo.
O estado sucessor pode ser inclusive o prprio estado
original.
Efetivo
numArtigos
Transio
Nome do evento
Exame
admissional
aceito
H
Professor
assistente
numArtigos
Efetivo
recusado
Titulao/maturidade
aposentadoria
Titular
H
retornar
tirarLicena
Estado de histrico
Afastado
88
30/08/2011
Onde Estamos?
<<component>>
ComponenteA
ComponenteB
<<component>>
<<component>>
ComponenteC
ComponenteD
89
30/08/2011
O que um componente?
Parte modular de um sistema a qual esconde sua implementao
por trs de um conjunto de interfaces externas.
Parte de um sistema lgico ou fsico
<<component>>
<<component>>
NomeDoComponente
Component Name
Nome da Interface
Nome requerido
da Interface
Onde Estamos?
90
30/08/2011
O que um n?
Representa um recurso
computacional em tempo de
execuo
Normalmente possui a memria
mnima e capacidade de
processamento.
Tipos:
Dispositivo
Recurso computacional fsico com sua
capacidade de processamento.
<<device>>
Nome do dispositivo
<<device>>
Nome do
sub dispositivo
<<exe env>>
nome do
ambiente
Ambiente de execuo
Representa plataformas particulares de
execuo.
91
30/08/2011
O que um conector?
Um conector representa um:
Mecanismo de comunicao
Mdia fsica
Protocolo de software
<<client workstation>>
Kiosk
<<100-T Ethernet>>
Conector
<<application server>>
Server
<<client workstation>>
Console
<<RS-232>>
<<Campus LAN>>
0..2000
1
1
<<Campus LAN>>
1
<<legacy RDBMS>>
Course Catalog
<<application server>>
Registration Server
<<Campus LAN>>
1
1
<<legacy>>
Billing
System
92
30/08/2011
<<Campus LAN>>
0..2000
1
<<Campus LAN>>
1
<<application server>>
Registration Server
CourseCatalogSystemAccess
CourseRegistrationProcess
BillingSstemAccess
<<legacy RDBMS>>
Course Catalog
<<Campus LAN>>
1
<<legacy>>
Billing
System
Reviso
Defina estado. Como voc
determina classes com estados
significantes?
O que um diagrama de mquina
de estados? Descreva as diferentes
partes do diagrama.
O que um diagrama de
componentes?
Qual a proposta do diagrama de
implantao?
93
30/08/2011
Dvidas?
Modelagem de Software
Orientado a Objetos
Parte 2- Princpios de Modelagem UML
Padres de Projeto
(Design Patterns)
Prof. Dr. Maurcio Nacib Pontuschka
tuska@pucsp.br
94
30/08/2011
Objetivos
Onde Estamos?
95
30/08/2011
ESTRUTURAIS
COMPORTAMENTAIS
96
30/08/2011
ESTRUTURAIS
COMPORTAMENTAIS
Onde Estamos?
97
30/08/2011
98
30/08/2011
Onde Estamos?
99
30/08/2011
Onde Estamos?
100
30/08/2011
101
30/08/2011
Onde Estamos?
102
30/08/2011
Onde Estamos?
103
30/08/2011
Padro: Mediator
Padro: Mediator
104
30/08/2011
Onde Estamos?
Padro: Faade
105
30/08/2011
Padro: Faade
X
Z
Y
<<interface>>
Faade
Dvidas?
106
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 3 Anlise de Modelos de Software
Objetivos
107
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
108
30/08/2011
Casos de Uso
Para cada caso de uso pode haver um conjunto de alguns artefatos
relevantes:
descrio do caso de uso;
especificao do caso de uso;
diagrama de atividades;
esboos de tela.
Caso de Uso
Pargrafo explicando o que faz o caso de uso.
Normalmente utilizamos este pargrafo nas
primeiras rodadas de levantamento de requisitos
antes de realizar uma especificao formal.
SISTEMA
1. Primeira ao
Ator
Caso de Uso
2. Primeira resposta
3. Segunda ao
4. Segunda resposta
5. Terceira ao
6. Terceira resposta
7. Ao
ATOR
SISTEMA
3. Segunda ao
4. Segunda resposta
5. Terceira ao
6. Terceira resposta
7. Ao
Casos de Uso
Estes artefatos devem manter um alto grau de coerncia entre eles.
Cada um possui um objetivo especfico mas esto contribuindo para
o modelo da mesma interao do usurio com o sistema.
109
30/08/2011
Modelo de Domnio
O modelo de domnio representa os conceitos envolvidos no projeto
de desenvolvimento do software no que diz respeito ao domnio da
aplicao. Estes conceitos so identificados a partir dos artefatos
que detalham os casos de uso. Os termos importantes so
identificados e representados em um diagrama de classes, que neste
momento ainda no apresentar detalhes como os mtodos e
atributos das classes.
110
30/08/2011
Refinamento
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
111
30/08/2011
Problemas de Modelagem
Uma srie de problemas de modelagem foram
levantadas e podem ser estudadas com maior
profundidade no livro:
Applying Use Case Driven Object Modeling with
UML
dos autores Doug Rosemberg e Kendall Scott.
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de so
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
112
30/08/2011
113
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
114
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
115
30/08/2011
116
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
117
30/08/2011
118
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
119
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
120
30/08/2011
1.
2.
3.
4.
5.
121
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
122
30/08/2011
123
30/08/2011
Onde estamos?
Vnculo entre Modelos
Problemas de Modelagem
Modelagem de Domnio
Modelagem de Casos de Uso
Reviso de Requisitos
Anlise de Robustez
Reviso Preliminar de Design
Elaborao dos Diagramas de Seqncia
Reviso Crtica de Design
Anlise de Modelos UML
124
30/08/2011
125
30/08/2011
Resumo
Qual a relao entre um caso de uso e um
diagrama de atividades?
Por que no desejado incluir mtodos e
atributos antes do desenho dos diagramas
de interao?
Qual o objetivo geral deste conjunto de
diagramas?
O que representa o diagrama de classes
neste contexto?
Estas etapas de desenvolvimento so
determinadas pela UML?
Dvidas?
126
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 3 Anlise de Modelos de Software
Objetivos
127
30/08/2011
Onde estamos?
Jogo da Velha
128
30/08/2011
Jogo da Velha
Jogo da Velha
129
30/08/2011
Jogo da Velha
Jogo da Velha
130
30/08/2011
Jogo da Velha
Modelo Conceitual
Jogo da Velha
Diagrama de Robustez
131
30/08/2011
Jogo da Velha
Diagrama de Robustez
Jogo da Velha
Diagrama de Robustez
132
30/08/2011
Onde estamos?
133
30/08/2011
joo:Desenhista
marcar()
joo:Desenhista
marcar()
134
30/08/2011
joo:Desenhista
marcar()
joo:Desenhista
marcar()
135
30/08/2011
joo:Desenhista
marcar()
T:Tela
joo:Desenhista
Loop
marcar()
136
30/08/2011
T:Tela
joo:Desenhista
Loop
marcar()
T:Tela
joo:Desenhista
Loop
marcar()
137
30/08/2011
T:Tela
joo:Desenhista
Loop
marcar()
T:Tela
joo:Desenhista
Loop
marcar()
138
30/08/2011
T:Tela
T:TracaCirculo
joo:Desenhista
marcar()
tracar()
ok
T:Tela
joo:Desenhista
marcar()
tracar()
ok
T:TracaCirculo
139
30/08/2011
T:Tela
T:TracaCirculo
joo:Desenhista
marcar()
tracar()
ok
ok
T:Tela
T:TracaCirculo
joo:Desenhista
marcar()
tracar()
ok
140
30/08/2011
Onde estamos?
Classe1
Classe2
Associao
Classe1
Classe2
Agregao
Classe1
Classe2
Composio
Classe1
Classe2
Generalizao
141
30/08/2011
Estudante
Secretaria
Associao
Meias
Gaveta
Agregao
142
30/08/2011
Assento
Cadeira
Composio
Passaro
Animal
Generalizao
143
30/08/2011
Restries em relacionamentos
Restries em relacionamentos
guarda
Meias
0..*
mordida
Gaveta
Cachorro 0..*
Menino
144
30/08/2011
Restries em relacionamentos
guarda
Meias
mordida
Gaveta
Cachorro 5
Menino
Restries em relacionamentos
Meias
guarda
{set}
Gaveta
Cachorro 5
mordida
{bag}
Menino
145
30/08/2011
Onde estamos?
Forum de Notcias
146
30/08/2011
Onde estamos?
Exerccio 1 Jogo da Velha
Exerccio 2 Forum de Notcias
Exerccio 3 Jogo Sudoku
Jogo Sudoku
O jogo Sudoku trata-se de uma matriz 9X9 em que alguns
nmeros so dispostos como um enunciado.
O jogador deve posicionar nmeros de 1 a 9 nesta matriz
de forma que em nenhuma linha, coluna ou quadrantes
da matriz sejam alocados numeros repetidos.
Um quadrante uma parte da matriz geral e possui as
dimenses 3X3. Existem 9 quadrantes no sobrepostos
nesta matriz.
147
30/08/2011
Jogo Sudoku
Coluna
Quadrante
Casa
Linha
Dvidas?
148
30/08/2011
Modelagem de Software
Orientado a Objetos
Parte 3 Anlise de Modelos de Software
Objetivos
149
30/08/2011
Frum de Discusses
O sistema Frum de Notcias permite que questes sejam
postadas e permite que vrias respostas sejam anexadas a
cada questo. O diagrama acima identifica os casos de uso
previstos para o software.
Qualquer usurio assume o mesmo papel ao utilizar o
sistema por tanto todas as funcionalidades estaro
disponveis para qualquer usurio do sistema.
Como se trata de um sistema cujo foco a modelagem e
no efetivamente sua usabilidade, foram descartados
aspectos importantes como persistncia (armazenamento
em disco) das informaes entre outras tantas possveis
funcionalidades aderentes ao projeto.
Jogo da Velha
150
30/08/2011
Jogo da Velha
Jogo da Velha
151
30/08/2011
Jogo da Velha
Frum de Discusses
MN#01 Caso de Uso Cadastrar Questes
Ator Principal: Usurio
Pr-condies Nenhuma
Ps-Condies: Questo Cadastrada
1. Seleciona a opo de cadastrar uma nova
questo.
2. Exibe uma tela para a redao da nova
questo com os campos: nome do usurio e
questo. A data e a hora sero armazenadas
automaticamente juntamente com os dados de
entrada do usurio.
3. Digita as informaes da tela e submete a
questo para o Frum de Discusso.
4. Acrescenta a questo do usurio no sistema.
152
30/08/2011
Frum de Discusses
Diagrama de Robustez para o caso de uso Cadastrar Questes
Frum de Discusses
Diagrama de Seqncia para o caso de uso Cadastrar Questes
153
30/08/2011
Frum de Discusses
MN#02 Caso de Uso Consultar Questes
Ator Principal: Usurio
Pr-condies Nenhuma
Ps-Condies: Questes consultadas
1. Seleciona a opo de consultar questes.
2. Exibe uma tela com a lista de todas as
questes j cadastradas no sistema.
3. Consulta as questes cadastradas e depois
solicita a volta ao menu principal.
4. Fecha a tela de consulta.
Frum de Discusses
Diagrama de Robustez para o caso de uso Consultar Questes
154
30/08/2011
Frum de Discusses
Diagrama de Seqncia para o caso de uso Consultar Questes
Frum de Discusses
MN#03 Caso de Uso Responder Questo
Ator Principal: Usurio
Pr-condies: Questo cadastrada
Ps-Condies: Questo com resposta anexada
1. Seleciona a opo de responder uma questo.
2. Exibe uma tela com todas as questes para que o
usurio escolha a questo a ser respondida.
3. Escolhe uma das questes apresentadas na tela.
4. Apresenta uma tela com a pergunta escolhida e um
espao para que o usurio preencha seu nome e
resposta para a questo.
5. Preenche seu nome e a resposta questo.
6. Registra o nome, a resposta, a data e a hora do
sistema e anexa questo.
155
30/08/2011
Frum de Discusses
Diagrama de Robustez para o caso de uso Responder Questes
Frum de Discusses
Diagrama de Robustez para o caso de uso Responder Questes
156
30/08/2011
Frum de Discusses
MN#04 Caso de Uso Consultar Respostas das Questes
Ator Principal: Usurio
Pr-condies: Questo cadastrada
Ps-Condies: Respostas da questo consultadas
1. Seleciona a opo de consultar respostas de uma
questo.
2. Exibe uma tela com todas as questes para que o
usurio escolha a questo para a consulta de suas
respostas.
3. Escolhe uma das questes apresentadas na tela.
4. Apresenta uma tela com a pergunta escolhida e todas
as respostas associadas esta questo.
5. Consulta as respostas associadas questo e depois
solicita a volta ao menu principal.
6. Fecha a tela de consulta de respostas.
Frum de Discusses
Diagrama de Robustez para o caso de uso Consultar Respostas das Questes
157
30/08/2011
Frum de Discusses
Diagrama de Seqncia para o caso de uso Consultar Respostas das Questes
Frum de Discusses
158
30/08/2011
Dvidas?
159