Escolar Documentos
Profissional Documentos
Cultura Documentos
Inserir TítulodeAqui
Inserir Título
Sistemas Orientada
Aqui
a Objetos
Conceitos de Orientação a Objetos
Revisão Textual:
Prof.ª Me. Luciene Santos
Conceitos de Orientação a Objetos
Caro Aluno(a)!
Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o
último momento o acesso ao estudo, o que implicará o não aprofundamento no material
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.
Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns
dias e determinar como o seu “momento do estudo”.
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de
troca de ideias e aprendizagem.
Bons Estudos!
UNIDADE
Conceitos de Orientação a Objetos
Contextualização
A modelagem de sistemas orientada a objetos não surgiu por acaso, vários problemas
ocorreram, principalmente na década de 1970 que fizeram com que essa metodologia
começasse aos poucos a ser adotada e ganhasse a dominância para programas
principalmente mobile e web na atualidade.
Para você entender o que ocorreu, leia esse rápido artigo introdutório: https://bit.ly/3BBhPwT
Se você leu esse rápido artigo, deve ter percebido o problema e o desafio consequente
que isso causou.
Portanto, você deve estar preparado para essa dinâmica e suas novas regras de jogo
no mercado de desenvolvimento de software, e fazer a diferença conhecendo e sabendo
usar as tecnologias mais adequadas para cada situação de desenvolvimento.
Isso poderá fazer com que você se torne um profissional diferenciado e com maiores
oportunidades.
6
Conceitos de Orientação a Objetos
Uma das primeiras coisas que devemos ter em mente desde o início desta disciplina
é que a Modelagem de Sistemas Orientados a Objetos não é uma panaceia para
qualquer desafio, não se aplica a todos os casos. Por fim, não é melhor e nem pior que
qualquer outra metodologia ou paradigma.
Dessa forma, você deve ter percebido que a Metodologia está preocupada com a
forma com que estruturamos pensamentos e as ações derivadas desses pensamentos
explicitamente, ou seja, de maneira a exteriorizar isso. Ela responde a perguntas relativas
a que, como, quando e por que devemos fazer algo.
7
7
UNIDADE
Conceitos de Orientação a Objetos
Vamos lá!
UML é um padrão de modelagem para análise e design de OO, que foi amplamente
adotado no setor de TIC – Tecnologia da Informação e Comunicação.
Bom, então você reparou que não é Programação Orientada a Objetos, certo?!
8
Calma, para poder usar UML, você precisa entender os conceitos, há uma série de
linguagem de programação híbrida para trabalhar com OOP, por exemplo, suportam
programação orientada a objeto em maior ou menor grau, tipicamente em combinação,
com programação processual, ou estruturada.
Essas linguagens são: JAVA, C++, C#, PYTHON, LISP, PHP, RUBY, SWIFT, PERL,
OBJECT PASCAL, OBJECTIVE C, DART, SCALA, COMMON e SMALL TALK.
Vamos, agora, definir o que é OO – Orientação a Objetos. Mas cuidado, UML não é
uma linguagem orientada a objetos, ela não fornece um método, no sentido de delinear
as etapas que devem ser tomadas no desenvolvimento de um sistema OO. Ela é mais
uma caixa de ferramentas, fornecendo notações e técnicas de modelagem que podem
ser implantadas quando necessário.
9
9
UNIDADE
Conceitos de Orientação a Objetos
Esses elementos acima são considerados indispensáveis para que estejamos realizando
a Orientada a Objetos. Se qualquer um desse 4 elementos faltarem, deixamos de estar
no mundo OO.
Há também elementos úteis, porém, não fundamentais, e sua presença auxilia, mas
não inviabiliza, a saber:
• Tipificação;
• Concorrência;
• Persistência.
10
Baseado no que aprendemos até agora, utilizar a metodologia OO requer uma ordem
disciplinada de eventos no tempo, por exemplo, o desenvolvedor deverá, nesta sequência:
definir os objetos e classes, descrever esses objetos, seus métodos, atributos e de que
forma os objetos responderão às mensagens. Além disso, deve definir o polimorfismo,
a herança, abstração de dados, encapsulamento e protocolo, bem como descrever a
relação entre esses objetos e descrever sua persistência.
Fácil?!
Proprietário Automóvel
proprietário
nome
marca
endereço
placa
telefone
possui ano
registrar
consultar
transferir_Proprietário
incluir
mudar_Placa
11
11
UNIDADE
Conceitos de Orientação a Objetos
ESTUDANTE ESTUDANTE
DE GRADUAÇÃO DE PÓS-GRADUAÇÃO
GENERALIZAÇÃO
Polimorfismo: Yaiser (2012) define como “o conceito de que vários tipos de objetos
são capazes de funcionar em uma determinada situação. Se você escrever uma mensagem
num papel, você poderá usar caneta ou lápis. O que se deve notar é que aquilo que você
usará caiba em sua mão e faça traços quando pressionado contra o papel.”
A partir dessas definições de OO, podemos resumir então que o objetivo da análise
orientada a objetos é desenvolver de maneira precisa, consisa, de excelente entendimento,
com modelos corretos e representativos da situação problema, de tal forma que as
atividaes de modelagem envolverão Objetos, Dinâmica e Funcionalidades.
12
O que devo fazer em cada uma dessas etapas. É simples, veja um exemplo:
Tendo percorrido esse três grandes pilares, sua modelagem OO está feita.
13
13
UNIDADE
Conceitos de Orientação a Objetos
O modelo dinâmico, foca nos aspectos dinâmicos do sistema. Ele verifica as mudanças
que ocorrem nos estados dos diversos objetos a partir de eventos ocorridos. Usamos o
diagrama de estados para descrevê-los. Ele contém: os estados, sub e superestados,
eventos, ações e atividades.
Para tirar suas dúvidas, quando falamos que em OOM tudo são objetos, vamos dar
alguns exemplos:
Entidades externas – interagem com o sistema que será modelado, podem ser
pessoas, dispositivos e outros programas.
Papéis – realizados pelas pessoas que interagem com o sistema. Seriam exemplos,
caixas, supervisores, estoquistas etc.
14
Locais – que estabeleçam contexto com o problema que está sendo modelado.
Seriam exemplos, o chão da fábrica, doca de um porto, a âncora de um CD.
Claro, há coisas que não são considerados objetos em MOO, por exemplo, procedures
(imprimir, inverter...) e atributos como (preto, azul, 100Mb, leve, pesado...)
Segundo WEAVER 2013, trata-se de uma abordagem para identificar riscos para
o cumprimento da programação do programa de desenvolvimento. SCRAM pode
ser utilizado:
• Por organizações para construir um cronograma que maximize a probabilidade de
cumprimento da programação;
• Para garantir que os riscos comuns sejam abordados antes do cronograma ser
resolvido no início de um projeto;
• Para monitorar o status do projeto, realizado ou ad hoc ou para suportar revisões
de marcos apropriadas;
• Para avaliar projetos desafiadores, para avaliar a probabilidade de cumprimento da
programação, a causa raiz do atraso do cronograma e recomendar a remediação
de problemas do projeto.
15
15
UNIDADE
Conceitos de Orientação a Objetos
Design detalhado: atributos e operações são atribuídos a cada classe com base em
seu diagrama de interação. O diagrama de máquina de estado é desenvolvido para des-
crever os detalhes adicionais do projeto. Nesse caso, tratamos do design de baixo nível .
Design Principles
Vantagens:
• Mapeamento da aplicação com objetos do mundo real para maior compreensibilidade;
• Facilitar a manutenção e consequentemente a percepção de qualidade do sistema
se valendo de técnicas de reuso do programa;
16
• Polimorfismo e abstração são utilizadas garantindo o próprio reuso;
• Características de robustez da aplicação garantem gerenciamento enquanto se roda
a própria aplicação;
• Funcionalidades podem ser melhoradas sem gerar impacto no próprio sistema;
• Isso melhora a resistência ao encapsulamento;
• AOO acelera o desenvolvimento e consequentemente reduzirão o tempo e o custo
para fazer.
Desvantagens:
• AOO – por outro lado, requer muita atenção e conhecimento de negócios para
determinar todas as classes e objetos necessários para um sistema realizar seu
propósito;
• Tempo e orçamento – quando utilizam métodos tradicionais para projetos com
AOO, geram problemas de entrega devido à necessidade principalmente de
entendimento e domínio da técnica e isso pede uma nova forma de gerenciar os
próprios projetos;
• Reuso em larga escala – pedem por codificação de procedimentos bem explícitos.
Esse cartão pode ser desenhado por você mesmo e detém minimamente as se-
guintes colunas:
• O nome da classe;
• Suas classes super e sub;
• As responsabilidades da classe;
• O colaborador, que são nomes de outras classes com as quais a classe irá colaborar
para cumprir suas responsabilidades;
• Autor.
17
17
UNIDADE
Conceitos de Orientação a Objetos
Esses cartões são facilmente utilizáveis porque você pode levar para onde quiser. Veja
os exemplos abaixo:
18
• retainCard (): reter o cartão para cesta de custódia para alguma ação do banco
avisando o usuário.
Por fim, um outro exemplo muito bom, referente a um exercício com um sistema
de bibliotecas:
Funções declaradas:
• Livro: título, autor, código de cadastro;
• Bibliotecário: o ator ou papel que gerencia os livros;
• Mutuário: o ator ou papel de quem tomou os livros, isso inclui o seu contato;
• Data: registra o dia do empréstimo e devolução.
Você pode treinar a confecção de cartões de CRC utilizando este software online:
https://goo.gl/9scNVG
19
19
UNIDADE
Conceitos de Orientação a Objetos
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Be Code. O que é Programação Orientada a Objetos e por que você precisa saber?
https://goo.gl/bsnezm
ALVES G. F. de O. Programação Orientada a Objetos: por que aprender isso?
https://goo.gl/bqMZ5R
SCRAM - Schedule Compliance Risk Assessment Methodology
https://goo.gl/NnSDEH
20
Referências
BOOCH, G. Object Oriented Analysis and Design with Applications, 1994, 2.ed.
Pearsons Group, EUA.
21
21