-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAula8.txt
154 lines (146 loc) · 7.88 KB
/
Aula8.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
Unidade 8- Modelagem baseada em classes- Pressman inteiro POSCOMP
Para modelar um software, existem quatro modelso
Baseados em cenarios
Por que cenarios?
O usuario ira contar uma historianha que sao censarios que seu software ira abordar
Ex.Casos de uso
Baseda em calsses
Comportamental
Orientada a fluxo
Modelagem baseada em classes
Por que modelar?
Hojeem dia so usamos lingauigem orentaad a objetos. o conceito mais importatne e o de objeto, que executara açoes. Os objetos representam tudo aquiolo que o programa ira executar.
Os objetos sempre sao criados a partir de classes
Precisamos cirar classes sempre?
teoricamente nao , mas acabamos criando para implementar as classes ja criadas
Pensamos ja no objeto e no relacionamento entre classes
Começamos a pensar na ESTRUTURA do codigo
Classes de analise
classe que nos obtemos ou definimos a partir da modelagem de casos de uso, analise sintatica
Estas classes nao serao as definitivas uma vez que a medida que o projeto evolui, necessitaremos de outras classes
essas classe tem haver com o dominio do problema, a partir das regras de negocio do problema
Ao longo do tempo tem que atualizando as classes modeladas.
Dicas para monstar suas classes em potencial
Persistencia de dados
Serviços necessários
Atributos multiplos
Atributos comuns
Operacoes comuns
Requisitos essenciais (Olhar no livro )
Uma classe funciona como um template, um modelo, um molde, uma especificação
possui atributos , que definem caracteristicas dos objetos
metodos , sao as acoes que seu software ira realizar
As classes devem representar o contexto da realidade.
Os atributos sao definidos com base no dominio do problema, aquilo que foi modelado pelos casos de uso
Os atributos sao instaciados juntos com a objetos na memoria
Os metodos sao armazenados na area de memoria da classe, que sao acessados pela palavra this.
modelagem crc
as vezes e muito tenso definir as classes , e para suprir isso foi criado essa tecnica
classe-responsabilidade-colaborador
nao e muito utilizado
faz uma reuiniao com os usaurios , usa algumas fichas onde voce tenta colocar as responsabilidades, as pessoas envolvidas naquele serviço.
os envolvidos as preenchem com suas responsabiliadde e necessidades
Taxonomia de classe (tipos de classe)
Temos as classes de negocio ou classes de entidade
Sao as classes que obtemos normalmente de cara no sistema , relacionado ao negocio do usuario.
Ex. Aluno, disciplina, funcionario em um sistema escolar
Classes de fronteira
classes que surgem ao longo do desenvolvimento do projeto . Estao ligadas na interface da aplicação.
Ex: Voce precisa se conectar em banco de dados,
classes de controle (ler e validar esses dados)
sao consideradas geralemtne na fase de projeto
Analise
o que é o sistema, quais suas funcinaldiades? Para que serve o software?
Projeto
Como implementar? Qual solução que empregarei?
Responsabilidades -Diretrizes
Coesao
Quando um objeto tem uma função claramente definida
Um objeto deve fazer poucas coisas de preferencia. Quanto mais coisas um objeto faz , menos coeso ele é
Evite que uma classe que faça um monte de coisa, pois isso pode complicar na manutenção do software
Tentar fazer classes abstratas ao maximo, isso organiza seu codigo de uma melhor maneira. Criando-se metodos abstratos para serem definidos da melhor em cada objeto filho. conceito de herança!!!
Informação e comportamento deve residir na mesma classe
Garantir que as açoes delas sejam coerentes com sua função
garantir o conceito do encapsulamento
Private x Protected
OPrivate : Mesma classe que acessa
Protected: Todas as classes filhas podem acessar
informaçoes sobre um item deve estar em uma unica classe e nao distribuido
isso evita a dificuldade de manutencao
Quando apropriado, responsabilidades devem ser compartilhadas entre classes relacionadas.
Colaboração entre calsses
Diagram de classes aborda o relacionamento, a colaboração entre classes
ocorrem quando um objeto de alguma forma interage com outro objeto
tres tipos:
é parte de(agregação e composição )
tem conhecimento de outra classe
depende de
Diagrama de classes
fornece a primeira noção do código, primeira ideia do codigo, da estrutura do codigo
primeiro diagrama da uml que mostra um embrião do codigo do programa
O diagrama nao mostra as interações entre objetos
visto no diagrama de sequencia, que msotra o fluxo e as interações do objeto
visao estatica , ou estrutural do sistema, uma fotografia
nao mostra a natureza dinamica do software, nao mostra o filme
finalidade
mostrar as classes,atributos,funções e relacionamentos entre as classes
reflete a estrutura do codigo
Como construir
classe é um retagulo dividio em tres retangulos meniores
nome , atributos e metodos
recomenda-se que o nome da classe seja pertinente ao dominio do problema e siga a notação CamelCase
Nos atributos, define se a caracteristica do atributo
+ = public
# = protected
- = private
O atributo recomenda-se que seja protected ou private. NUNCA public
Os metodos recomenda-se que sejam public para serem utlizados
metodo concreto sao metodos que nao sao abstratos, ou seja , que possuem codigo
metodos abstratos sao o contrario , nao possuem codigo. Servem como molde para herança.italico
classes abstratas sao calsses que nao podem ser instanciadas, servem apenas como molde para herança.possuem pelomenos um metodo abstrata. nao pode ser instaciado um objeto pois nem todos os metodos sao definidos. italico
classes concretas sao o contrario. podem ser criados objetos na memoria
mostra o relacionamento entre classes, a ligação entre as classes
se assemelha com o de entidade e relacionamento em alguns pontos por que alçgumas classes devem ser persistente. mas um na substitui o outro pois ha calsses que nao sao persistentes, alem de haver funcoes que devem ser representadas
relacionamento de associação
ligação entre duas ou mais classes
nome do relacionemtno
uma linha simples
multiplicidade
mostra quantas instancias estao associadas entre si
1..*
uma ocorrencia ou varias
*
varias
0..*
zero ou mais
0..1
zero ou um
m..n
faixa de valores
tipo
papeis
representação da realidade , ex: pessoa e empresa
relacionamento de agregação
quando se tem uma classe relacionada com outra classe fazendo um relacionamento de todo e parte
ex: um pedido é composto por diversos itens . quando montamos um pedidos ele agrega componentes. os componentes tem vida propria? Se o pedido for cancelado, os itens morrerão junto? NAO
Um item pode ser instaciado sem o o pedido . o contrario não
é uma ligação fraca
há um pequeno losango no lugar da classe que agregará as clssers menores.
relacionamento de composição
tambem chamadao de Agregação forte.
Uma agregação que uma classe nao pode ser instaciada sem a outra
losango afrodesendente do lado forte, do agregador
classes aninhadas porra
Relacionamento de generalização e especialização
As classes de nivel mais altas são mais genericas
Triangulo do lado da classe mais generica
A grande vantagem é usar o mecanismo de HERANÇA
Herdar atributos e métodos
Ganhamos reusabilidade
Para usar herança o relacionamento "é uma espécie de" deve ser verdade
Semantica da herança
significado da herança
atributos e metodos podem ser herdados
faz sentido fazer um override de METODOS nao ATRIBUTOS
NAO TEM SENTIDO FAZER OVERRIDE DE ATRIBUTOS
pode haver varios niveis de herança