Upload
lcbj
View
4.346
Download
3
Embed Size (px)
Citation preview
Análise e Projeto
Msc Luiz Barboza
Padrões de ArquiteturaCamadas e MVC
Camadas MVC Classes de Análise
GUI View Boundary
Negócio Control Control
Persistência Model Entity
Um abstração Descreve:
Propriedades (atributos) Comportamento (operações) Relacionamentos Semântica
Nome da classe
Atributos
Operações
Professor
nameProfessorId : UniqueId
create()save()delete()change()
UMLRepresentação de Classe
Boundary
Entity
Control
<<boundary>>
<<control>>
<<entity>>
=
=
=
MVC em UML
Modela a interação entra o núcleo do sistema e seus arredores GUI – Interface gráfica do usuário Interface com sistemas externos
Dependente de ambiente Dependente da GUI Dependente do protocolo de
comunicação com o sistema externo
Boundary
Boundary
Customer
<<boundary>>
<<boundary>>
<<control>>
<<boundary>>
<<entity>> <<entity>>
Boundary
Controla o comportamento de uma funcionalidade
É acionada por uma Boundary e faz acesso a uma ou mais Entities
É independente de ambiente, e concentra as regras de negócio
Control
Control
Control
Este tipo de classe deve fazer o controle de fluxo de negócio
Ela deve ser utilizada para centralizar as regras de negócio
Control
Representa entidade do domínio de negócio
Representa informação persistente
Independe de ambiente e altamente reusável.
Entity
Entity
Entity
Deve representar entidades do domínio do problema
Deve conter as validações de negócio que sao restritas a estas entidades.
Entity
Pela interações é possível identificar os métodos
Boundary Control
orderIDdatesalesTotaltaxshipDate
cada
stra
rClie
nte(
)
cadastrarCliente()
Mensagem
Identificação dos Métodos
1: cadastrarCliente()
Objeto Cliente Objeto Fornecedor
Mensagem
:Boundary :Control
Escopo de atividade
Chamada localLinha de vida
1.1:validarCredito()
Numeração de seqüência demensagens
UML: Diagrama de Seqüência
UML: Diagrama de Classe
Com base nas comunicações é possível estabelecer os relacionamentos
Considerando o padrão MVC, temos tipicamente a seguinte estrutura.
View
// Render the models()// Request updates from models()// Send user gestures to controller()// Allows controller to select view()
Controller
// Defines application behavior()// Maps user actions to model updates()// Selects view for response()// One for each use-case()
Model
// Encapsulates application data()// Responds to state queries()// Exposes application functionality()// Notifies view of changes()
<<subscribe>>
Análise e Projeto
Msc Luiz Barboza