Você está na página 1de 33

Engenharia de Software

Projeto de Software
Orientado a Objetos

Profa. Elanne Mendes


Aula 14 - Projeto de Software Orientado a Objetos

Projeto orientado a objetos (POO)


● Objetos são abstrações do mundo real ou entidades do
sistema que se auto gerenciam.
● Objetos são independentes e encapsulam representações
de informação e estado.
● A funcionalidade do sistema é expressa em termos de
serviços dos objetos.
● Áreas de dados compartilhados são eliminadas. Objetos se
comunicam por passagem de mensagem.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 2


Aula 14 - Projeto de Software Orientado a Objetos

Projeto orientado a objetos (POO)

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 3


Aula 14 - Projeto de Software Orientado a Objetos

Objetos e classes de objetos

● Objetos são entidades no sistema de


software que representam instâncias de
entidades do mundo real e do sistema.
● Classes de objetos são templates
utilizados para criar objetos.
● Classes de objetos podem herdar
atributos e serviços de outras classes de
objetos.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 4


Aula 14 - Projeto de Software Orientado a Objetos

A Linguagem de Modelagem Unificada (UML)

● Várias notações diferentes para descrever projetos


orientado a objetos foram propostas nos anos 80 e 90.
● A UML é uma integração dessas notações.
● A UML descreve notações para vários modelos
diferentes que podem ser produzidos durante a análise
e projeto OO.
● A UML é atualmente um padrão para modelagem OO.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 5


Aula 14 - Projeto de Software Orientado a Objetos

O processo de projeto orientado a objetos

● Os processos de projeto orientados a objetos envolvem o


desenvolvimento de vários modelos diferentes de sistema.
● Precisam de muito esforço no desenvolvimento e na
manutenção desses modelos e, para sistemas pequenos,
talvez não tenham um bom custo-benefício.
● No entanto, para sistemas desenvolvidos por diferentes
grupos, os modelos de projeto são um importante
mecanismo de comunicação.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 6


Aula 14 - Projeto de Software Orientado a Objetos

Estágios do processo

● Existe uma grande variedade de diferentes processos de


projeto orientados a objetos, essa escolha dependerá da
organização que está usando o processo.
● As atividades comuns nesses processos incluem:

Definição do Identificação
Projeto de Desenvolvimento Especificações
contexto e dos principais
arquitetura dos modelos de de interface de
interações objetos de classe
do sistema projeto objetos
do sistema do sistema

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 7


Aula 14 - Projeto de Software Orientado a Objetos

Contexto e interações de sistema


● Entender os relacionamentos entre o software que está
sendo desenvolvido e seu ambiente externo é essencial na
decisão de como prover a funcionalidade requerida para o
sistema e como estruturar o sistema para se comunicar
com seu ambiente.
● Entender o contexto também lhe permite estabelecer os
limites do sistema.
● Estabelecer os limites do sistema ajuda a decidir quais
recursos serão implementados no sistema que está sendo
desenvolvido e quais serão implementados em outros
sistemas associados.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 8


Aula 14 - Projeto de Software Orientado a Objetos

Modelos de contexto e de interação


● Um modelo de contexto de sistema é um modelo
estrutural que mostra outros sistemas no ambiente do
sistema que está sendo desenvolvido.
● Um modelo de interação é um modelo dinâmico que
mostra como o sistema interage com seu ambiente,
durante o seu uso.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 9


Aula 14 - Projeto de Software Orientado a Objetos

O sistema Cabine Pets

Sousa, T., Júnior, G., Pinheiro, V., & Marques, A. (2019). Cabine Pets: promovendo o incentivo à adoção responsável e o engajamento da população nos cuidados
de animais abandonados. In Anais Estendidos do XVIII Simpósio Brasileiro sobre Fatores Humanos em Sistemas Computacionais, (pp. 66-70). Porto Alegre: SBC.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 10


Aula 14 - Projeto de Software Orientado a Objetos

Modelo de contexto do sistema


Cabine Pets

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 11


Aula 14 - Projeto de Software Orientado a Objetos

Modelo de interação do sistema


Cabine Pets

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 12


Aula 14 - Projeto de Software Orientado a Objetos

Projeto de arquitetura
● Assim que as interações entre o sistema e seu ambiente
forem entendidas, usa-se essa informação no projeto de
arquitetura do sistema.
● Identificam-se os componentes principais que compõem o
sistema e suas interações, e então pode-se organizar os
componentes usando um padrão de arquitetura como por
exemplo, um modelo em camadas ou cliente-servidor.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 13


Aula 14 - Projeto de Software Orientado a Objetos

Arquitetura de alto nível do sistema da


cabine

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 14


Aula 14 - Projeto de Software Orientado a Objetos

Arquitetura de alto nível do sistema de


doação

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 15


Aula 14 - Projeto de Software Orientado a Objetos

Identificação das classes de objetos

● Geralmente, a identificação das classes de objetos é uma


parte difícil do projeto orientado a objetos.
● Não existe uma ‘fórmula mágica’ para a identificação dos
objetos. Isso depende do conhecimento, da experiência e
habilidade dos projetistas de sistema.
● A identificação de objetos é um processo iterativo.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 16


Aula 14 - Projeto de Software Orientado a Objetos

Abordagens de identificação

● Geralmente, a identificação das classes de objetos é uma


parte difícil do projeto orientado a objetos.
● Não existe uma ‘fórmula mágica’ para a identificação dos
objetos. Isso depende do conhecimento, da experiência e
habilidade dos projetistas de sistema.
● A identificação de objetos é um processo iterativo.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 17


Aula 14 - Projeto de Software Orientado a Objetos

Descrição da Cabine Pets


● A Cabine Pets consiste em: (1) cabines instaladas em regiões
estratégicas para realizar doações em moedas, liberando em tempo
real, ração e/ou água para animais abandonados da região; e (2) um
aplicativo móvel para obter informações sobre animais para
adoção, localização de cabines e, postagens sobre conscientização
e um ranking obtido a partir de doações nas cabines.
● Os instrumentos da cabine incluem: tablet para registro da doação,
contador de moedas, recipientes de ração e água, e comedouros.
● Quando uma doação é realizada, o sistema da cabine processa a
doação, libera o alimento e transmite a doação para o servidor,
permitindo a atualização do aplicativo móvel.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 18


Aula 14 - Projeto de Software Orientado a Objetos

Classes de objeto da Cabine Pets


● A identificação das classes de objeto no sistema pode se basear no
hardware e em dados tangíveis do sistema:
● Objetos do domínio da aplicação que são objetos de ‘hardware’
relacionados aos instrumentos do sistema.
○ Receptor de doação, contador de moeda, recipiente de ração,
recipiente de água
● A interface básica da Cabine Pets que a liga a seu ambiente. Reflete
as interações identificadas no modelo de caso de uso.
○ Cabine
● Encapsula os dados resumidos dos instrumentos.
○ Doação, apoiador, profissional de saúde, animais, ONG, etc.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 19


Aula 14 - Projeto de Software Orientado a Objetos

Classes de objeto da Cabine Pets

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 20


Aula 14 - Projeto de Software Orientado a Objetos

Modelos de projeto

● Os modelos de projeto mostram os objetos e classes de


objeto, e os relacionamentos entre essas entidades.
● Os modelos estáticos descrevem a estrutura estática do
sistema nos termos das classes de objetos e suas relações.
● Os modelos dinâmicos descrevem as interações dinâmicas
entre os objetos.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 21


Aula 14 - Projeto de Software Orientado a Objetos

Modelos de sequência
● Os modelos de sequência mostram a sequência das
interações dos objetos que ocorrem.
● Os objetos são organizados horizontalmente no topo;
● O tempo é representado verticalmente para que os modelos
sejam lidos de cima para baixo;
● As interações são representadas por setas com rótulos.
Diferentes estilos de setas representam diferentes tipos de
interação;
● Um retângulo fino na linha de vida de um objeto representa o
momento em que o objeto é o objeto controlador do sistema.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 22


Aula 14 - Projeto de Software Orientado a Objetos

Modelo de classes

● Mostra como o projeto está organizado em classes e seus


relacionamentos.

● É o diagrama central da modelagem orientada a objetos.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 23


Aula 14 - Projeto de Software Orientado a Objetos

Modelo de classes da Cabine Pets

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 24


Aula 14 - Projeto de Software Orientado a Objetos

Exemplos de modelos de projeto


● Os modelos de subsistemas que mostram os
agrupamentos lógicos de objetos em subsistemas
coerentes.
● Os modelos de sequência que mostram a sequência das
interações dos objetos.
● Os modelos de máquina de estados que mostram como
objetos individuais mudam de estado em resposta a
eventos.
● Outros modelos incluem modelos de casos de uso, modelos
de atividades, modelos de componentes, etc.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 25


Aula 14 - Projeto de Software Orientado a Objetos

Exemplos de modelos de projeto

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 26


Aula 14 - Projeto de Software Orientado a Objetos

Diagrama
de sequência
descrevendo
a realização
de doação de
ração na
Cabine Pets

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 27


Aula 14 - Projeto de Software Orientado a Objetos

Especificações de interface
● As interfaces de objeto precisam ser especificadas para que
se possa fazer paralelamente o projeto dos objetos e de
outros componentes.
● Os objetos podem ter várias interfaces, as quais são pontos
de vista dos métodos oferecidos.
● A UML usa diagramas de classes para a especificação da
interface.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 28


Aula 14 - Projeto de Software Orientado a Objetos

Interfaces da classe Cabine

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 29


Aula 14 - Projeto de Software Orientado a Objetos

Pontos Importantes
● O nível de detalhamento no projeto depende do tipo de
sistema, e se está sendo usada uma abordagem orientada a
planos ou ágil.
● O processo de projeto orientado a objetos inclui atividades
para projetar aa arquitetura de sistema, identificar os
objetos no sistema, descrever o projeto usando diferentes
modelos de objetos e documentar as interfaces de
componentes.
● Uma série de diferentes modelos pode ser produzida
durante um processo de projeto orientado a objetos.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 30


Aula 14 - Projeto de Software Orientado a Objetos

Vantagens de POO

● Facilidade de manutenção. Objetos podem ser entendidos


como entidades independentes.
● Os objetos são componentes potencialmente reutilizáveis.
● Para vários sistemas, existe um nítido mapeamento entre as
entidades do mundo real para objetos no sistema.

Profa. Elanne Mendes - UFC Russas - Engenharia de Software 31


Referências
● Sommerville, I. (2011). Engenharia de Software, 9 edição. Pearson
Prentice Hall.
● Bezerra, E. (2007). Princípios de Análise e Projeto de Sistemas com
UML (Vol. 2). Rio de Janeiro: Elsevier.
● Pressman, R., & Maxim, B. (2016). Engenharia de Software –Uma
abordagem profissional-8ª Edição. McGraw Hill Brasil.
Obrigada!
Profa. Elanne Mendes
elanne@ufc.br

Você também pode gostar