Created by Raphael Luiz Fonseca
about 10 years ago
|
||
- O sistema é uma coletânea de objetos que integram entre si, com características próprias representadas por dados(atributos) e operações(métodos)
- É a representação de qualquer coisa que você queira modelar em um programa
- Propriedade do objeto que distingue de todos os outros objetos
- Reflete os valores correntes dos atributos do objeto em determinado momento
- Como o objeto reage em termos de mudança de estado e troca de mensagens
- Conjunto de atividades externamente observáveis do objeto
- Podem ser pensadas como templates ou "moldes" para objetos
- Consistem em um conjunto de objetos do mesmo tipo, com as mesmas características.
- Características pertencentes a todos objetos da classe
- Armazenam informações sobre o ESTADO dos objetos
- Funções ou serviços oferecidos pela classe
- Metodos usados para implementar o comportamento dos objetos
- É o mecanismo do OO para esconder os detalhes internos de implementação dos objetos do mundo externo
- Diminuição de acoplamento
- É o mecanismo da OO que permite criar novas classes a partir de classes já existentes, reutilizando seus atributos e comportamentos
- É uma operação que um objeto realiza em outro
- Um objeto invocando um método de outro objeto
- A mesma operação implementada várias vezes na mesma classe
- A escolha DEPENDE da assinatura dos métodos sobrecarregados
- Acontece na herança, quando a subclasse sobrepõe o método original
- O método é escolhido em tempo de EXECUÇÃO
- A escolha depende do TIPO DE OBJETO que recebe a mensagem
- Representa as classes no domínio do negócio em questão.
- Não leva em consideração restrições inerentes à tecnologia específica a ser utilizada na solução de um problema
- Obtido através da adição de detalhes ao modelo anterior, confome a solução de software
- Implementação das classes em alguma linguagem de programação
- Utilizadas para modelar a interação entre o ator e o sistema
- Para cada ator é identificado pelo menos uma classe de fronteira
- Dependem do ambiente (visão)
- Objetos responsáveis por controlar a lógica de execução correspondente a cada caso de uso.
- Representam a informação que é manipulada ou processada pelo caso de uso
- Vêm do domínio de negócio
- Normalmente armazenam informações persistentes
- É um relacionamento entre um elemento mais geral e um elemento mais específico
- Permite criar novas classes a partir de classes existentes
- Uma classe pode herdar de várias outras classes
- Java NÃO suporta
- Indica que outros subtipos podem ser adicionados no futuro. É o padrão
- Indica que todas as subclasses foram especificadas e que não é possível realizar mais sub-classificações
- Significa que as classes não podem ser especializadas em uma suclasse comum, isto é, não é possível haver herança múltipla.
- É o contrário de disjoint, isto é, as subclasses podem herdar de mais de uma superclasse.
- É utilizada para organizar uma hierarquia de generalização
- Permite que um conjunto de subclasses tenham o mesmo comportamento
- Não é projetada para receber instâncias
- Representada como nome em ITÁLICO
- Define um conjunto de comportamentos(operações) oferecido para uma classe ou componente
- É dito que as classes REALIZAM interfaces
- É uma organização ou a estrutura dos componentes significativos do sistema que interagem por meio de interfaces
- Importante para comunicação entre os stakeholders
- Para decisões de projeto tempestivos
- Abstração "transferível" de um sistema
- BAIXO ACOPLAMENTO
E
- ALTA COESÃO
- É o grau de dependência de um determinado módulo de programa em relação a outros módulos
- Acoplamento forte entre classes significa que elas precisam conhecer detalhes internos umas das outras
- É a medida do quão fortemente relacionadas são as responsabilidades de um módulo
- Classes com a menor complexidade possível
- Com responsabilidades definidas
- Não executem um grande volume de trabalho
- Separação de responsabilidades
- Decomposição de complexidade
- Encapsulamento de implementação
- Maior Reuso e Extensibilidade
- Podem penalizar a performance do sistema
- Aumento do esforço e complexidade de desenvolvimento
- Programas e dados armazenados em uma única grande máquina
- Aplicação rodava na máquina cliente que interagia com um SGBD (servidor de dados).
- Na máquina cliente, continha toda a lógica de apresentação, negócio e acesso a dados.
- Para minimar o impacto de mudanças nas aplicações, decidiu-se separar a camada de negócio da camada de interface gráfica.
- As classes de fronteira se localiza aqui
- É altamente dependente de ambiente
- HTML, JavaScript, CSS, JSP, Applet
- Windows/Linux
-Menus baseados em texto
- É uma arquitetura LINEAR
- Coordena a aplicação, processa comandos, toma decisões lógicas, faz avaliações e implementa as regras de negócio
- É inerente ao domínio da aplicação
- Vários protocolos podem ser utilizados para ligar esta camada às outras duas
- Socket, HTTP, TCP/IP
- JDBC, LDAP. ODBC
- Contém o código responsável por armazenar e recuperar dados de uma base de dados ou sistema de arquivos
- Normalmente há uma sub-camada(interface) dentro desta camada que abstrai o mecanismo de persistência
- DAO (Data Acess Object)
É a camada de interface com o usuário
- Responsável por receber a entrada de dados e apresentar resultados
- Apenas exibe a informação
- Inclui elementos de exibição no cliente, como: HTML, XML, ASP, APPLETS
- Pode requerer DIRETAMENTE da camada de MODELO
- Responsável por controlar e mapear as ações do usuário, fazendo o papel de intermediário entre a camada de Visão e de Modelo
- Atualiza o Modelo
- Seleciona a Visão
- Responsável por modelar os dados e o comportamento por trás de REGRAS DE NEGÓCIO
- Se preocupa com o armazenamento, manipulação e geração de dados.
- Principal padrão de arquitetura em três camadas utilizada no mercado
- É uma arquitetura TRIANGULAR
- Número e nome das camadas variam
- No mínimo, costuma-se ter três camadas (pequenos volumes). Mas pode haver "N" camadas, dependendo da necessidade.