Engenharia de Software 1
07 - Projeto Orientado a Objetos
Alexandre de Andrade Barbosa
alexandre.barbosa@arapiraca.ufal.br
Objetivos
Explicar como um projeto de software pode ser representado como um conjunto de
objetos que interagem e que gerenciam seu estado e opera¸
c˜
oes.
Diferentes etapas no ciclo de vida de um software O.O.
An´
alise - Identifica¸
c˜
ao e representa¸c˜
ao do dom´ınio/esocpo do
problema/projeto
Projeto - Cria¸
c˜
ao de modelos O.O. que ir˜
ao compor a solu¸
c˜
ao de
software
Codifica¸
c˜
ao - Implementa¸c˜
ao do software com uma linguagem de
programa¸
c˜
ao O.O.
Verifica¸
c˜
ao e Valida¸c˜
ao - Inspe¸
c˜
oes e testes sobre a implementa¸
c˜
ao
A transi¸
c˜
ao entre as etapas do ciclo de vida deve ser cont´ınua
Passar para o pr´
oximo est´
agio pode envolver a melhoria dos
artefatos das fases anteriores
Projeto Orientado a Objetos
Introdu¸
c˜
ao - An´
alise e Projeto
Vis˜ao geral de uso da UML
Projeto Orientado a Objetos
Classes e objetos
Objetos s˜
ao abstra¸
c˜
oes do mundo real ou entidades de sistema e
gerenciam a si pr´
oprios
Os objetos s˜
ao independentes, eles englobam estados e
A funcionalidade do sistema ´
e expressa em termos de servi¸
cos de
objetos.
Colabora¸
c˜
oes entre objetos ocorrem atrav´
es de troca de
Projeto Orientado a Objetos
Classes e objetos
“Um objeto ´
e uma entidade que possui um estado e um
conjunto de opera¸c˜
oes definidas para funcionar nesse estado.
O estado ´
e representado como um conjunto de atributos de
objeto. As opera¸
c˜
oes associadas ao objeto fornecem servi¸
cos
a outros objetos (clientes) que solicitam estes servi¸
cos
quando alguma computa¸c˜
ao ´
e necess´
aria.”
“Os objetos s˜
ao criados de acordo com uma defini¸
c˜
ao de
classe de objeto. Uma defini¸
c˜
ao de classe de objeto funciona
tanto como uma especifica¸c˜
ao quanto como um template
para cria¸c˜
ao de objetos. Essa defini¸
c˜
ao inclui declara¸
c˜
oes de
todos os atributos e opera¸
c˜
oes que devem ser associadas a
um objeto dessa classe.”
Sommerville, 2007
Projeto Orientado a Objetos
Classes e objetos
Os objetos se comunicam por meio da passagem de mensagens
Mensagens:
nome do servi¸
co solicitado;
informa¸
c˜
oes necess´
arias para executar o servi¸
co.
Mensagens s˜
ao implementadas pelas chamadas de m´
etodos
nome = nome do m´
etodo;
informa¸
c˜
oes = lista de parˆ
ametros.
Projeto Orientado a Objetos
Classes e objetos
Objetos s˜
ao membros de classes que definem tipos de atributos e
opera¸
c˜
oes
As classes sempre est˜
ao relacionadas a outras classes, pois seus
objetos precisam se comunicar
As classes podem ser organizadas em uma hierarquia onde uma
classe (uma classe-pai) ´
e uma generaliza¸
c˜
ao de uma ou mais
classes (classes-filho).
Uma classe-filho herda os atributos e as opera¸
c˜
oes da classe-pai e
pode adicionar novos m´
etodos ou atributos para si
Hierarquia de generaliza¸c˜ao
Projeto Orientado a Objetos
Classes e objetos
Objetos e classes de objeto participam de relacionamentos com
outros objetos e classes de objeto
Na UML, um relacionamento generalizado ´
e indicado por uma
associa¸
c˜
ao
Outros elementos de um relacionamento:
multiplicidade
nome da associa¸c˜
ao
pap´
eis
dire¸
c˜
ao de leitura
visibilidade (modificadores de acesso)
Projeto Orientado a Objetos
Processo de Projeto Orientado a Objeto (PPOO)
Como representar os diferentes aspectos relacionados a um
software O.O.?
V´
arias nota¸
c˜
oes diferentes para a descri¸c˜
ao de projetos orientados
a objetos foram propostas nas d´
ecadas de 1980 e 1990.
UML surgiu da unifica¸
c˜
ao das nota¸c˜
oes (uniu o melhor dos
mundos)
Descri¸
c˜
ao da estrutura - Diagrama de classes, diagrama de
componentes, ...
Descri¸
c˜
ao do comportamento - Diagrama de estados, diagrama de
atividade, ...
Descri¸
c˜
ao das intera¸
c˜
oes - Diagrama de seq¨
uˆ
encia, diagrama de
colabora¸
c˜
ao, ...
Existem diversos processos de projeto O.O.
Relembrando...
N˜
ao existe o melhor processo
Existe o processo mais adequado
Sommerville descreve um processo gen´
erico que engloba as
atividades comuns aos processos de projeto O.O. (OOD
-Object-Oriented Design)
Projeto Orientado a Objetos
Processo de Projeto Orientado a Objeto (PPOO)
Processos de projeto envolvem o desenvolvimento de uma s´
erie
de diagramas diferentes para o sistema
O desenvolvimento de diagramas aumenta a visibiliadde do
processo, contudo exige uma grande quantidade de esfor¸
co (criar
diagrama > codificar > atualizar diagrama)
Para sistemas pequenos isto pode n˜
ao ser adequado
Para sistemas maiores os modelos de projeto s˜
ao um mecanismo
Desenvolver uma compreens˜
ao dos relacionamentos entre o
software que est´
a sendo desenvolvido e seu ambiente externo
Contexto do sistema - modelo est´
atico que descreve outros
sistemas no ambiente
Modelo de uso do sistema - modelo dinˆ
amico que descreve como
o sistema interage com seu ambiente
Projeto Orientado a Objetos
PPOO - Contexto de sistema
Modelo de uso do sistema, casos de uso (Sommerville, 2007)
Projeto Orientado a Objetos
PPOO - Projeto de arquitetura
Uma vez que as intera¸c˜
oes entre o sistema e seu ambiente
tenham sido compreendidas, vocˆ
e pode usar essas informa¸
c˜
oes
para projetar a arquitetura do sistema
Sommerville descreve que:
“...arquitetura ´
e uma representa¸c˜
ao de alto-n´ıvel do sistema...”
Pressman descreve que:
“...arquitetura ´
e a estrutura hier´
arquica dos componentes (m´
odulos)
do programa, e a maneira como estes componentes interagem...”
Projeto Orientado a Objetos
PPOO - Projeto de arquitetura
Uma analogia...
Uma analogia...
Divis˜ao do software
Projeto Orientado a Objetos
PPOO - Projeto de arquitetura
Uma analogia...
Uma analogia...
Divis˜ao do software
Projeto Orientado a Objetos
PPOO - Projeto de arquitetura
Uma analogia...
“Um sistema de mapeamento meteorol´
ogico ´
e necess´
ario
para gerar mapas meteorol´
ogicos regularmente usando dados
coletados de esta¸
c˜
oes remotas, sem funcion´
arios, e de outras
fontes de dados, como observat´
orios, bal˜
oes e sat´
elites. As
esta¸c˜
oes meteorol´
ogicas transmitem seus dados para um
computador local em resposta `
a solicita¸
c˜
ao dessa m´
aquina
O sistema de computador local valida os dados coletados e
integra os dados a partir de diferentes fontes. Os dados
integrados s˜
ao arquivados e, usando dados desse arquivo e
um banco de dados de mapas digitalizados, um conjunto de
mapas meteorol´
ogicos locais ´
e criado. Os mapas podem ser
impressos para distribui¸c˜
ao em uma impressora de mapas
especial e ser apresentados em diversos formatos.”
Projeto Orientado a Objetos
PPOO - Projeto de arquitetura
N˜
ao h´
a ‘f´
ormula m´
agica’ para a defini¸
c˜
ao dos objetos que
comp˜
oem o sistema
Esta defini¸c˜
ao ´
e um processo iterativo
criar vers˜
ao inicial
revisar
modificar
Projeto Orientado a Objetos
Identifica¸
c˜
ao de objetos
Modelos de projeto mostram os objetos ou as classes de objetos e
os relacionamentos entre essas entidades
Os modelos est´
aticos descrevem a estrutura est´
atica do sistema
em termos de classes de objeto e seus relacionamentos
Modelos dinˆ
amicos descrevem as intera¸c˜
oes dinˆ
amicas entre os
objetos.
Projeto Orientado a Objetos
Modelos de projeto
A UML inclui um conjunto de modelos para representar os
aspectos est´
aticos e dinˆ
amicos do sistema
Diagrama de pacotes
Diagrama de seq¨
uˆ
encia
Pacotes da esta¸c˜ao metereol´ogica
Projeto Orientado a Objetos
Modelos de projeto
Diagrama de estados para esta¸c˜ao metereol´ogica
Projeto Orientado a Objetos
Especifica¸
c˜
ao de interface entre objetos
As interfaces de objeto tˆ
em de ser especificados, de tal modo que
os objetos e outros componentes possam ser projetados em
paralelo
Interfaces abstraem a complexidade
Projeto Orientado a Objetos
Especifica¸
c˜
ao de interface entre objetos
Os objetos podem ter v´
arias interfaces que s˜
ao pontos de vista
sobre os m´
etodos fornecidos.
Em Java a especifica¸c˜
ao da interface pode ser realizada
utilizando o conceito com mesmo nome
Exerc´ıcio
1