Engenharia de Software - Análise e Projeto OO

Description

HARD Específica (Engenharia de Software) Flashcards on Engenharia de Software - Análise e Projeto OO, created by Raphael Luiz Fonseca on 18/11/2014.
Raphael Luiz Fonseca
Flashcards by Raphael Luiz Fonseca, updated more than 1 year ago
Raphael Luiz Fonseca
Created by Raphael Luiz Fonseca over 9 years ago
18
1

Resource summary

Question Answer
- 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) Enfoque OO
- É a representação de qualquer coisa que você queira modelar em um programa Objeto
- Propriedade do objeto que distingue de todos os outros objetos Componentes do Objeto - Identidade
- Reflete os valores correntes dos atributos do objeto em determinado momento Componentes do Objeto - Estado
- Como o objeto reage em termos de mudança de estado e troca de mensagens - Conjunto de atividades externamente observáveis do objeto Componentes do Objeto - Comportamento
- Podem ser pensadas como templates ou "moldes" para objetos - Consistem em um conjunto de objetos do mesmo tipo, com as mesmas características. Classes
- Características pertencentes a todos objetos da classe - Armazenam informações sobre o ESTADO dos objetos Componentes da Classe - Propriedade
- Funções ou serviços oferecidos pela classe - Metodos usados para implementar o comportamento dos objetos Componentes da Classe - Operações (Métodos)
- É o mecanismo do OO para esconder os detalhes internos de implementação dos objetos do mundo externo - Diminuição de acoplamento Encapsulamento
- É o mecanismo da OO que permite criar novas classes a partir de classes já existentes, reutilizando seus atributos e comportamentos Herança
- É uma operação que um objeto realiza em outro - Um objeto invocando um método de outro objeto Mensagens
- A mesma operação implementada várias vezes na mesma classe - A escolha DEPENDE da assinatura dos métodos sobrecarregados Polimorfismo Estático ou de Sobrecarga (Overload)
- 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 Polimorfismo Dinâmico/Sobreposição/Sobrescrita/Override
- 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 Model de Classes de Análise
- Obtido através da adição de detalhes ao modelo anterior, confome a solução de software Modelo de Classes de Especificação
- Implementação das classes em alguma linguagem de programação Modelo de Classe de Implementaçã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) Classes de Fronteira
- Objetos responsáveis por controlar a lógica de execução correspondente a cada caso de uso. Classes de Controle
- 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 Classes de Entidade
Análise X Projeto
- É um relacionamento entre um elemento mais geral e um elemento mais específico Generalização (Herança)
- Permite criar novas classes a partir de classes existentes Herança Simples
- Uma classe pode herdar de várias outras classes - Java NÃO suporta Herança Múltipla
- Indica que outros subtipos podem ser adicionados no futuro. É o padrão Herança Incompleta
- Indica que todas as subclasses foram especificadas e que não é possível realizar mais sub-classificações Herança Completa
- Significa que as classes não podem ser especializadas em uma suclasse comum, isto é, não é possível haver herança múltipla. Herança Disjunta
- É o contrário de disjoint, isto é, as subclasses podem herdar de mais de uma superclasse. Herança Sobreposta ( Overlapping )
- É 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 Classe Abstrata
- Define um conjunto de comportamentos(operações) oferecido para uma classe ou componente - É dito que as classes REALIZAM interfaces Interface
- É 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 Arquitetura de Software
- BAIXO ACOPLAMENTO E - ALTA COESÃO Uma boa arquitetura deve ter:
- É 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 Acoplamento
- É 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 Coesão
- Separação de responsabilidades - Decomposição de complexidade - Encapsulamento de implementação - Maior Reuso e Extensibilidade Arquitetura em Camadas - Vantagens
- Podem penalizar a performance do sistema - Aumento do esforço e complexidade de desenvolvimento Arquitetura em Camadas - Desvantagens
- Programas e dados armazenados em uma única grande máquina Arquitetura Monolítica
- 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. Arquitetura em Duas Camadas (two-tier)
- Para minimar o impacto de mudanças nas aplicações, decidiu-se separar a camada de negócio da camada de interface gráfica. Arquitetura em Três Camadas ( Three-tier )
- 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 Arquitetura em Três Camadas - Apresentação
- 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 Arquitetura em Três Camadas - Lógica de Negócio
- 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) Arquitetura em Três Camadas - Acesso a Dados
É 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 MVC - Camada de Visão
- 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 MVC - Camada de Controle
- 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. MVC - Camada de Modelo
- Principal padrão de arquitetura em três camadas utilizada no mercado - É uma arquitetura TRIANGULAR MVC ( Model View Controller )
- 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. Arquitetura WEB
Show full summary Hide full summary

Similar

Engenharia de Software
Gabriel Alexandre
Quiz - Processo de Software
Adriana Gomes Alves
ERGONOMIA
timEU
01. Eng de software:Fases de Processos da Eng de Software.
Jamil Yahuza Felippe
Áreas de Conhecimento X Grupos de Processos
Rodrigo Ferreira
Questões Fundamentos Eng de Software
Jamil Yahuza Felippe
Engenharia de Software
Marcio Silveira
Quiz - Processos tradicionais
Adriana Gomes Alves
Engenharia de software
pcbsytem
Aula Um Engenharia de Software III
Artur R
13. Eng de Software:Modelo Processo Ágil de Desenvolvimento
Jamil Yahuza Felippe