You are on page 1of 8

6/15/2020

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE


CENTRO DE TECNOLOGIA
CURSO DE ENGENHARIA DE TELECOMUNICAÇÕES

OO - Introdução O paradigma da orientação a objetos

Hertz Wilton de Castro Lins

Engenharia de software 2

Paradigma? Paradigma?

• A primeira abordagem usada para modelagem de sistemas de software foi o


• Um paradigma é uma forma de abordar um problema. paradigma estruturado.
• No contexto da modelagem de um sistema de software, um paradigma está • Uso da técnica de decomposição funcional
relacionado com a forma pela qual esse sistema é entendido, projetado e
• “divida sucessivamente um problema complexo em subproblemas”
construído
• Hoje em dia, praticamente suplantou o paradigma anterior, oparadigma da
orientação a objetos...

Engenharia de software 3 Engenharia de software 4

1
6/15/2020

O Paradigma da Orientação a Objetos Fundamentos da Orientação a Objetos

• O paradigma da OO surgiu no fim dos anos 60. • Através de sua analogia biológica, Alan Kay definiu os fundamentos da orientação
a objetos
• Alan Kay, um dos pais desse paradigma, formulou a chamadaanalogia
biológica. • Qualquer coisa é um objeto

• “Como seria um sistema de software que funcionasse como um ser vivo?


” • Objetos realizam tarefas através da requisição de serviços a outros objetos
• Cada objeto pertence a uma determinadaclasse. Uma classe agrupa objetos
similares
• A classe é um repositório para comportamento associado ao objeto
• Classes são organizadas em hierarquias

Engenharia de software 5 Engenharia de software 6

Paradigma da Orientação a Objetos Conceitos e Princípios da OO

O paradigma da orientação a objetos visualiza um


sistema de software como uma coleção de agentes • Conceitos
interconectados chamados objetos. • Classe
Cada objeto é responsável por realizar tarefas
• Objeto
específicas. É através da interação entre objetos
que uma tarefa complexa é realizada. • Mensagem

• Princípios
Um sistema de software orientado a objetos consiste de
• Encapsulamento
objetos em colaboração com o objetivo de realizar as
funcionalidades deste sistema. • Polimorfismo
Cada objeto é responsável por tarefas específicas. É • Generalização (Herança)
através da cooperação entre objetos que a computação
• Composição
do sistema se desenvolve.

Engenharia de software 7 Engenharia de software 8

2
6/15/2020

Classes, Objetos e Mensagens Conceitos e Princípios da OO

• O mundo real é formado de coisas • Classe

• Na terminologia de orientação a objetos, estas coisas do mundo real são


• Define uma estrutura de dados composta por atributos e métodos.
denominadas objetos

• Seres humanos costumam agrupar os objetos para entendê-los


• Estrutura elementar da orientação a objetos.
• A descrição de um grupo de objetos é denominadaclasse de objetos, ou
simplesmente de classe • Modularidade e abstração de complexidade.

• Criação de objetos.

Engenharia de software 9 Engenharia de software 10

Conceitos Classes e Objetos

• Entendendo melhor o conceito • import math


• class Raiz():
• No contexto da OO
• global x
• Encapsula dados e abstraçõesprocedurais necessárias para descrever o conteúdo
• """Calculo de Raiz quadrada"""
de alguma entidade do mundo real
• def __init__(self,x=0):
• self.x = x
• def calculoraiz(self):
• return (math.sqrt(self.x))


• r = Raiz(144)
• print('Resultado',r.calculoraiz())

Engenharia de software 11 Engenharia de software 12

3
6/15/2020

Abstração Abstração

• Uma abstração é qualquer modelo que inclui os aspectos relevantes de alguma


coisa, ao mesmo tempo em que ignora os menos importantes.Abstração
depende do observador.

Engenharia de software 13 Engenharia de software 14

Abstração Abstração na orientação a objetos

• A orientação a objetos faz uso intenso de abstrações


• Os princípios da OO podem ser vistos como aplicações da abstração

• Princípios da OO: encapsulamento, polimorfismo, herança e


composição

Engenharia de software 15 Engenharia de software 16

4
6/15/2020

Objetos como Abstrações Classe X Objeto

• Uma abstração é uma representação das características e do • Objetos são abstrações de entidades que existem no mundo real.

comportamento relevantes de um conceito do mundo real para um • Classes são definições estáticas, que possibilitam o entendimento de um grupo
determinado problema. de objetos.

• Dependendo do contexto, um mesmo conceito do mundo real pode ser • CUIDADO: estes dois termos muitas vezes são usados indistintamente em
textos sobre orientação a objetos.
representado por diferentes abstrações.
• Carro (para uma transportadora de cargas)

• Carro (para uma fábrica de automóveis)

• Carro (para um colecionador)

• Carro (para uma empresa de kart)

• Carro (para um mecânico)

Engenharia de software 17 Engenharia de software 18

Mensagens Mensagens

• Para que um objeto realize alguma tarefa, deve haver um estímulo • Independentemente da origem do estímulo, quando ele ocorre, diz-se que o
objeto em questão está recebendo umamensagem.
enviado a este objeto.
• Uma mensagem é uma requisição enviada de um objeto a outro para que este
• Este objeto é uma entidade ativa que representa uma abstração de algo
último realize alguma operação
do mundo real
• Tal objeto pode responder a estímulos a ele enviados

• Assim como faz sentido dizer que seres vivos reagem a estímulos que eles
recebem.

Engenharia de software 19 Engenharia de software 20

5
6/15/2020

Mensagens Encapsulamento

• Objetos de um sistema trocam mensagens • Objetos possuem comportamento.


• Os objetos estão enviando mensagens uns aos outros com o objetivo de • O termo comportamento diz respeito a que operações são realizadas por um
realizar alguma tarefa dentro do sistema no qual eles estão inseridos objeto e também de que modo estas operações são executadas.

Engenharia de software 21 Engenharia de software 22

Encapsulamento Encapsulamento

• De acordo com o encapsulamento, objetos devem “esconder” a sua • O encapsulamento é uma forma de restringir o acesso ao comportamento
complexidade. interno de um objeto
• Esse princípio aumenta qualidade do SSOO, em termos de: • Um objeto que precise da colaboração de outro para realizar alguma tarefa
• Legibilidade simplesmente envia uma mensagem a este último.

• Clareza • O método (maneira de fazer) que o objeto requisitado usa para realizar a

• Reuso tarefa não é conhecido dos objetos requisitantes.

Engenharia de software 23 Engenharia de software 24

6
6/15/2020

Polimorfismo Generalização (Herança)

• É a habilidade de objetos de classes diferentes responderem a mesma • A herança pode ser vista como um nível de abstração acima da encontrada
mensagem de diferentes maneiras. entre classes e objetos
• Diretamente associado com herança. • Na herança, classes semelhantes são agrupadas em hierarquias
• Trabalha com a redeclaração de métodos previamente herdados por uma classe, • Cada nível de uma hierarquia pode ser visto como um nível de abstração.
onde estes métodos são implementados de forma diferente par cada classe de
• Cada classe em um nível da hierarquia herda as características das classes
acordo com a sua necessidade.
nos níveis acima.
• Classes derivadas de uma mesma superclasse podem invocar métodos que têm
a mesma identificação mas comportamentos distintos, usando para tanto uma
referência a um objeto do tipo da superclasse.

Engenharia de software 25 Engenharia de software 26

Herança OO e Engenharia de Software

• Aspectos
A h e r a n ç a f a c i l i t a o • Projeto
compartilhamento de • Modelagem

comportamento entre classes • Documentação

semelhantes • Gestão

As diferenças ou variações de


uma classe em particular podem
ser organizadas de forma mais
clara.

Engenharia de software 27 Engenharia de software 28

7
6/15/2020

Atores x Usuários Referências

Atores • Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 1 Princípios de Análise e Projeto de

• Representa uma classe externa ao sistema. Sistemas com UML 2ª edição Eduardo Bezerra Editora." — Transcrição da apresentação:

• Representam os papeis que pessoas, dispositivos ou até mesmo sistemas


desempenham enquanto o sistema opera.
• Cada ator possui uma ou mais metas ao usar o sistema.
Usuários
• Podem desempenhar papeis diferentes ao usar o mesmo sistema

Engenharia de software 30

You might also like