Please enable JavaScript.
Coggle requires JavaScript to display documents.
ORIENTAÇÃO A OBJETOS :airplane: (CONCEITOS (ASSOCIAÇÃO (Generalização…
ORIENTAÇÃO A OBJETOS
:airplane:
MÉTODO
#
modelo de linguagem
UML
não é uma técnica
LINGUAGEM VISUAL PARA ESPECIFICAR, CONSTRUIR E DOCUMENTAR OS ARTEFATOS DO SISTEMA
Criação de artefatos
Textuais ou Graficos
Diferentes visões do sistema
Entrada para a geração do cód fonte
Linguagem visual para modelar o software
Diagramas
não é um processo
Diferentes perspectivas do sistema
Usado para engenharia reversa também
Ferramentas CASE
Rational
Astah
Independe da Linguagem ou Tecnologia
OMG
anos 2000
Adoção de Casos de Uso
Unificação das Linguagens de Modelagens
desenho
notação
=representação grafica do sistema
Comunicação unica entre equipe e cliente
EVOLUÇÃO MÉTODOS OO
Small Talk / Simula
1989
Booch, Rumbaugh, Jacobson
OSA
1 metodo
UML
PROCESSO + MODELO DE LINGUAGEM
DIAGRAMAS UML
1-Estruturais
CLASSES:star:
Conjunto de classes e seus relacionamentos
Classes
estrutura e comportamento
Estrutura estática do sistema
Atributos, Associações e Operações
Objetos
Quais os objetos e seus relacionamentos
instâncias das classes
Trata aspecto estático
Pacotes
Agrupar elementos de modelagem
vários CDUs
Ex: "Pacote Estoque"
Componentes
Instalação/Entrega/Deployment
Configuração de elementos /Dispositivos
Distribuição e relacionamento
Nós e softwares
Arquitetura Fisica
Nós
2 - DIAGRAMAS Comportamentais
representa o aspecto dinâmico do sistema
CASOS DE USO
:star:
RELAÇÕES DE DEPENDÊNCIA
Funcionalidade do Sistema
<-------------
Include
inclui o comportamento de outro CDU
Extende
Variação de um comportamento
Ex: calcular contas a pagar <----- calcular desconto
Documentação de Requisitos
São narrativas de texto de um ator utilizando o sistema para atingir objetivos
Não só figuras, deve ter texto também
#
Visão geral do funcionamento do sistema
Narrativas
entre a pessoa/ator e o sistema
Itens do CDU
Nome
Descrição
Requisitos Funcionais
Requisitos Não Funcionais
Restrições
Pre condições
o que deve ser verdadeiro para a execução do CDU
1 more item...
Pos condições
o que se torna verdadeiro pela execução do CDU
1 more item...
Invariantes
Condições que são verdadeira durante a execução do CDU
Fluxo de eventos
#
interações entre atores e sistema
caminho entre os possíveis
Fluxos alternativos
caminho opcional que não é parte do comportamento de um CDU
Notação Gráfica
Elipse
ATOR
Tudo que interage com o sistema
Humano, Sistema, Organização
Usa o sistema
Retangulo
#
Delimitação do sistema
Cenários
Ações e interações entre sistema e atores
Caso de Uso
Coleção de cenários
Interação
2Sequencia
3Colaboração
1Timming
Padrões de Interação entre as Instâncias
4Visão Geral de Interação
ESTADOS
:world_map:
Mudança de estado dos objetos
Comportamento interno da classe
Estado Inicial
:black_circle:
Estado final
circulo com bordas
Estados
:large_orange_diamond:
escolha
Deve decidir para um dos estados possiveis
:fork_and_knife:
Retangulo Preenchido
Fork
Desencadeia Estados concorrentes
Junção
Varios estados podem chegar a um unico estado
Criação
Destruido
Inicialização
Realizou alguma solicitação
sempre dentro de um retângulo simples
Composto
mais de um estado dentro de um composto
Ações
Entra
Sai
Está
Momento no tempo de vida do objeto
determinado pelo valor do atributo
Atividades
Fluxo das atividades
Situações de decisão
SEQUENCIA
:arrow_forward:
Interações entre os objetos
Retangulo
Timeline
Mensagem
Sincrona
Aguarda retorno (linha tracejada)
Assincrona
Não aguarda retorno
Seta horizontal do emissor para receptor
Tempo de atividade
Elo entre CDU e OO
Cenário específico de um CDU
Identificar as operações no CDU
COMUNICAÇÃO
:speech_balloon:
COLABORAÇÃO
= Ao de sequencia, mas não considera o tempo e sim a ordem de comunicação
Classe mais próxima e ordem das mensagens
números sequenciais
Não se preocupa com a linha do tempo
Estrutura Dinâmica do Sistema
Sofre alteração no sistema
UP
Fases
inicio, elaboração, construção, transição
Workflows
requisitos, analise, projeto, implementação, testes
ANÁLISE
1Identificar a necessidade do usuário
2Análise economica/técnica
3.Artibuição de Funções
Prazo/Custo
Base inicial para o trabalho
ETAPAS DE DESENVOLVIMENTO :arrow_right:
1-Necessidade
:question:
o que é, tecnologias, tempo, o que será realizado
metas globais do sistema
2-Estudo Viabilidade
Verificar se o problema pode ser resolvido
tecnico
recursos computacionais
legal
recursos
pessoal competente
operacional
economico
3-Analise
objetivos do sistema
Entender as exigências do sistemas
saídas do sistema
Escreve
o que deve
ser feito
Documento de Requisitos
ESPECIFICAÇÃO DO SISTEMA
Técnicas de levantamento
Entrevistas
Questionarios
Observações
Analise de manuais e procedimentos
REQUISITOS
capacidades do sistemas que devem ser satisfeitas
Funcionais
Não Funcionais
Usabilidade
Confiabilidade
freqüência de falhas
Desempenho
Facilidade de Suporte
Conhecidos como requisitos de QUALIDADE
Legais
Operação
Interface
com sistemas externos
Requisitos de Software
Especificar o problema
Compreender o problema
Definir uma proposta
Atualizar requisitos (Gerenciar)
Objetivos e restrições estabelecidas pelo usuário do sistema
Caracterisiticas
Corretas
Possiveis
Necessária
Priroizar
Não pode ser ambígua
Verificáveis
inspeções
Verificados e Validados
DOMÍNIO
Finalidade do Sistema
SAIDAS
Caso de Uso
Requisitos Funcionais e Não Funcionais
4-Projeto
Estrutura do Software
Dados
Interface entre componentes
Linguagem
COMO FAZER
Solução Computacional/ Técnica
5-Codificação/Implementação
executável
6-Implantação
entrega do software para o cliente
7-Manutenções
modificação do sistema
adptativa
corretiva
evolutiva
PROCESSOS
MODELOS de PROCESSO
Cascata :sweat_drops::
Etapas bem definidas
Requisitos/Projeto/Implementação e teste/Integração/Operação
Fase por fase
precisa entender todo o problema para seguir na proxima fase
mais falhas
Requisitos Estáveis
Detalhamento todo antes da programação
Ideal para sistemas que o Domínio do problema completamente compreendido
Evolucionário
:star:
CARACTERISTICAS
especifica/desenvolve/valida/versão incial > ciclo
evoluir até chegar na versão final
mais eficaz
atividades paralelas
Bom para quando não endentemos o problema por completo
AGIL
:rocket: :rocket:
Iterativo e Evolutivo
ciclo de iterações
evolução a cada ciclo
Iterativo e incremental
Interações com tempo fixo com atividades desenvolvidas em paralelo
entrega fatia do software para o cliente no final da interação
Sistema executável
:desktop_computer:
depois faz as modificações necessárias
Testado e Inegrado
Sprints / Iterações
= iterações
entre 2 e 6 semanas
Beneficios
Minimização dos erros
Envolvimento do usuário
Não contágio da paralisia da análise
Guiado pelo cliente
Valor
Manifesto Agil
Indivíduos e Interação
Software Funcionando
Responder a Mudanças
Colaboração com o cliente
Atitudes/Metodos Ageis
Princípios
Adequação à Mudanças
Software de valor para o cliente
Entrega de software funcionando com frequencia
Pessoas de negocio e desenvolvimento trabalham juntamente
Equipe de Desenvolvimento Motivada
Conversa cara a cara
Software funcionando é a principal medida de progresso
Ritmo constante
Excelência Técnica e bom design
Focar no que é necessário
simplicidade
times autorganizaveis
Reflexão do Time
o que deu certo, o que pode ser melhorado
Desvantagens
documentação desatualizada
sistemas mal estruturados
Processo minimo
CDU
2.Modelo de Dominio
mostra os objetos do dominio /classes
ex: aluno, materia, semestre
3.Diagrams de interação
sequencia ou comunicação
interação entre os objetos
Diagramas de classes
em nível de projeto
classes, tipo de dados, metodos
Visibilidade :eye:
:heavy_plus_sign: Publico
todas as classes tem acesso
:heavy_minus_sign: Privado
:hash:Protegido
Metodos definidos na classe e na classe derivada podem ver
~Pacote
visível para classe do pacote
OBJETIVOS
Organização do Codigo
Padronização Maior na Codificação
Padrões de Projeto
Soluções prá construídas
Facilidade de manutenção do código
Linguagens OO
Java
Angular
OO
Representação dos elementos do mundo real e nas interações entre eles, que se refletem no projeto na forma de classes e métodos
Pilares
Abstração
Herença
Classe herda características da SuperClasse
Classe Cliente herda atributos da classe pessoa
Polimorfismo
objeto assume diferente formas
Uma pessoa pode ser um cliente ou um funcionário dependendo do momento
Encapsulamento :pill:
Proteção das propriedades
Controle das prodpriedades
Objetos de software
Estratégia de Desenvolvimento que organiza o software como uma coleção de objetos que contém tanto a estrutura de dados como o comportamento deles
Beneficios
:check:
reutilização do codigo
confiabilidade (objetos encapsulados)
aumento de produtividade
Forma natural de tratar a realidade
TIPOS DE DADOS :game_die:
Booleanos
V ou F
Char
Inteiros
Byte
Short
Int
Long
Positivos ou negativos
Float
Double
String
CONCEITOS
OBJETO
qualquer coisa concreta ou abstrada que existe no mundo real e que tem comportamentos e caracterisiticas proprias
Sofá
Dinheiro
Avião
Concreto ou abstrato
Tempo
Abstração
bolsa
vários tipos de bolsa
Ocorre quando definimos um objeto conceitual a partir de objetos do mundo real que possuem mesmas características e comportamentos
CLASSE
Abstração de um conjunto de objetos
que possui comportamentos e características comuns
Individualiza um objeto
caracterisitcas
comportamentos
Inicio com letra maiuscula
Instância
é uma das ocorrencias de um objeto a partir de sua classe
Ex: Objeto Funcionario 1 - José da Silva, Rua dos Patriotas, telefone:232323
Registro do objeto da classe
ATRIBUTO
S
características dos objetos de uma classe
nome
endereço
teleone
possuem valores diferentes
Visibilidade
[<visibilidade>]<nome>:[<tipo>][<valor inicial.}
-- Nome:String
Operação
ordem que faz o objeto executar uma ação
:scissors:
corta
quebra
Fura
Mensagem :e-mail:
mecanismo de chamada de uma operação
Solicitação de execução de uma operação
Maneira que conseguimos que o metodo seja executado
Manda mensagem para o
objeto porta abrir
SINCRONA
ASSINCRONA
AUTOMENSAGEM
Evento
Tipo de operação
Faz o objeto mudar de estado
Ao clicar
Parâmetros
um ou mais atributos carregados para dentro de uma mensagem
Estado
Forma de apresentação dos objetos de uma classe em um determinado instante
Parado / Decolando
Transição de Estado
Mudança de estado de um objeto
ASSOCIAÇÃO
Forma como oa objetos de uma mesma classe ou de classe diferentes se conectam
Unária
classe associa a ela mesma
Binária
Entre duas classes
Ternária
Três classes
:large_orange_diamond:
Classe Associativa
quando uma associação possui atributos proprios
para *
Agregação
Parte-Todo
uma parte de
Regular
losango vazado
B existe sem o A
Partes independentes
Composição
quando o todo é destruido as partes são destruidas
losando preenchido
B não existe sem o A
Generalização
Associação hierárquica
Relacionamento entre classe e classe de mais alto nível
Conceito de Herança
Cobertura
Normal
Total
Para cada elemento da classe genérica tem que mapear um elemento para as classes filhas
Exclusiva
cada elemento da classe genérica é mapeado para somente um elemento das subclasses
Restrita
Parcial
Existem elementos da classe generica que não tem mapeamento na subclasse
Sobreposição
para cada elemento na classe generica, pode ocorrer duas ou mais ocorrencias nas sublcasses
Linha tracejada
Seta em branco sempre apontando para a super classe
Ligação entre classes
Nome escrito em letra maiuscula
Percurso Bidirecional
Linha solida
Encapsulamento
reunião de características e comportamentos de objetos em uma classe
Polimorfismo
capacidade do objeto se comportar de maneiras diferentes
MÉTODO
Algormitmo
conjunto de passos
Logica de uma operação
[<visibilidade] <nome>(<lista de argumentos.):[<retorno>]
Lista de argumentos
meios que são utilizados para passar dados para os metodos
calcularIdadeEmMeses(data:Date):int
Implementação da operação
Colaboração
Troca de mensagens entre objetos e atores
Herança
Simples
hierarquia a somente uma arvore
Multipla
Permite que uma classe possua mais de uma superclasse e herde características de todos os seus ancestrais
Perigos :skull:
perda da simplicidade de implementação
Herda todos os atributos e métodos de varias classes
MULTIPLICIDADE
resultado da associação entre classes
Cardinalidade de uma associação
Especifica quantas instâncias de uma classe relacionam-se a uma unica instância de uma classe associada
Representação
1
0..*
zero ou mais
*
zero ou mais
1..*
Um ou mais
0..1
Zero ou um
5..8
Intervalo especifico (5,6,7,8)
4..7,9
Combinação (4,5,6,7 ou 9)
Quantos objetos da classe A podem ser associados na classe B
TRIADE
1- Sistema solicita...
2- Usuário informa...
3- Sistema Responde....