Você está na página 1de 11

ENGENHARIA DE SOFTWARE

FACULDADE ANHANGUERA – POLO TATUAPÉ (SÃO PAULO – SP)

PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA:

NOME DA DISCIPLINA: ANÁLISE ORIENTADO A OBJETOS


EMERSON RICADO MARCHI – RA 3460770401

PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA

NOME DA DISCIPLINA: ANÁLISE ORIENTADO A OBJETOS

Trabalho de portfólio apresentado como requisito parcial


para a obtenção de pontos para a média semestral.

Orientador: JESSICA FERNANDES LOPES

São Paulo/SP
2023
São Paulo/SP
2023
SUMÁRIO

1 INTRODUÇÃO.......................................................................................................3
2 DESENVOLVIMENTO...........................................................................................4
2.1 MÉTODO............................................................................................................4
2.2 RESULTADOS...................................................................................................4
3 CONCLUSÃO........................................................................................................7
3

1 INTRODUÇÃO

Este trabalho tem por objetivo desenvolver um diagrama de classes utilizando


os conhecimentos e práticas da UML.
Os diagramas de classe são fundamentais para o processo de modelagem de
objetos e modelam a estrutura estática de um sistema. Dependendo da
complexidade de um sistema, é possível utilizar um único diagrama de classe para
modelar um sistema inteiro ou vários diagramas de classe para modelar os
componentes de um sistema.
Em programação, um diagrama de classes é uma representação da estrutura
e relações das classes que servem de modelo para objetos. É uma modelagem
muito útil para o desenvolvimento de sistemas, pois define todas as classes que o
sistema necessita possuir e é a base para a construção dos diagramas
de comunicação, sequência e estados.
4

CONCEITOS

CLASSE: Elemento abstrato que representa um conjunto de objetos. A classe


contém a especificação do objeto; suas características: atributos (características)
e métodos (ações / comportamentos).

ATRIBUTO: Define características da classe.

RELACIONAMENTO ENTRE CLASSES

Os objetos tem relações entre eles: um professor ministra uma disciplina para
alunos numa sala, um cliente faz uma reserva de alguns lugares para uma data,
etc.[2] Essas relações são representadas também no diagrama de classe.
Geralmente as classes não estão sós e se relacionam entre si. O relacionamento
e a comunicação entre as classes definem responsabilidades, temos 3 tipos:

ASSOCIAÇÃO (AGREGAÇÃO)

São relacionamentos estruturais entre instâncias e especificam que objetos de


uma classe estão ligados a objetos de outras classes. Podemos ter associação
unitária etc. A associação pode existir entre classes ou entre objetos. Uma
associação entre a classe Professor e a classe disciplina (um professor ensina
uma disciplina) significa que uma instância de Professor (um professor
específico) vai ter uma associação com uma instância de Disciplina. Esta relação
significa que as instâncias das classes são conectadas, seja fisicamente ou
conceitualmente.

COMPOSIÇÃO
5

A composição, diferentemente da agregação, é um relacionamento de


contenção. Um objeto (container) CONTÉM outros objetos (elementos). Esses
elementos que estão contidos dentro de outro objeto dependem dele para existir.
Eles são criados e destruídos de acordo com o seu container. Um exemplo de
container poderia ser uma nota fiscal, e seus elementos seriam seus itens. Não
faz sentido existir itens de nota fiscal, sem que haja uma nota fiscal onde tais
itens estejam contidos. Eles só existem se houver uma nota fiscal da qual eles
façam parte. Se a nota fiscal é destruída, todos os seus itens também são, o que
não acontece com a agregação, onde, se uma reunião é destruída, seus
participantes continuam existindo, pois podem participar de outras reuniões. A
composição, na UML, é representada por uma linha com um losango preenchido
do lado da classe dona do relacionamento. No primeiro exemplo existem duas
classes distintas a primeira é a classe Carro e a segunda é a classe Motor.
Imagine que toda classe Carro tenha uma classe Motor, neste exemplo há uma
relação entre Carro e Motor de composição, pois o motor está contido na classe
Carro.

Um exemplo de composição é a relação entre Livro e Autor são duas classes


distintas, onde cada objeto da classe Livro possui um objeto da classe Autor.
Neste caso existirá uma relação de composição, pois a classe Autor faz parte da
classe Livro.

Uma forma de verificar se uma determinada classe A tem uma relação de


composição com uma classe B. É fazer perguntar-se: "A classe A está contida na
classe B?". Caso a resposta seja positiva existe uma relação de composição
entre as duas classes. Abaixo é possível visualizar alguns exemplos: • Um Livro
tem Autor? - SIM – Logo, se usa a composição. • Um Automóvel tem um Carro
Antigo? - NÃO – Logo, não se usa a composição. • Um Automóvel tem Porta? -
SIM – Logo, pode se usar a composição.

AGREGAÇÃO REGULAR
6

Tipo de associação (é parte de, todo/parte) onde o objeto parte é um atributo do


todo; a existência do objeto-parte faz sentido, mesmo não existindo o objeto-
todo. Por exemplo Carro e rodas: as rodas existem mesmo sem o carro. A
agregação, na UML, é representada por uma linha com um losango sem
preenchimento do lado da classe dona do relacionamento.

ESPECIALIZAÇÃO OU GENERALIZAÇÃO

Também conhecida como herança, representa as dependências e hierarquias.

DEPENDÊNCIA

São relacionamentos de utilização no qual uma mudança na especificação de um


elemento pode alterar a especificação do elemento dependente. A dependência
entre classes indica que os objetos de uma classe usam serviços dos objetos de
outra classe.

Esta etapa deve conter parágrafos que falem sobre a importância do tema
escolhido, sua relevância e aplicabilidade, visando contextualizar as atividades
que serão realizadas.

As orientações da atividade de portfólio ficam na sessão de portfólio – “tutorial de


aula prática”. Observe que o arquivo possui todas as instruções para realização
da atividade proposta.

2 DESENVOLVIMENTO

Para desenvolver esta atividade foi acessada a versão online do software Visual
Paradigm, para a construção de um diagrama de Classes de um sistema de
locação de veículos levando-se em consideração as seguintes premissas:
7

- A empresa tem muitos automóveis. Cada automóvel tem atributos como


número da placa, cor, ano, tipo de combustível, número de portas,
quilometragem, RENAVAM, chassi, valor de locação etc.

- Cada carro tem um modelo e uma marca, mas um modelo pode relacionar-se a
muitos carros e uma marca pode referir-se a muitos modelos, embora cada
modelo só tenha uma marca específica.

- Um carro pode ser alugado por muitos clientes, em momentos diferentes, e um


cliente pode alugar muitos carros. É preciso saber quais carros estão locados ou
não. Sempre que um carro for locado é preciso armazenar a data e hora de sua
locação e, quando for devolvido, a data e hora de devolução.

2.1MÉTODO

Ao acessar a versão online do software Visual Paradigm foi criado um Diagrama


de Classe em branco para a construção de um sistema de locação de veículos
de acordo com as premissas relatadas no item 2 Desenvolvimento deste
trabalho.
8

O primeiro passo foi inserir as classes Automóvel, Modelo, Marca, Locação e


Cliente.

Após esta etapa para cada classe foi realizada a descrição dos seus atributos e
operações (métodos).

2.2 RESULTADOS

A figura abaixo apresenta a resolução proposta para esta atividade,


contemplando o diagrama de classes elaborado para o sistema de locação de
veículos, conforme as premissas estabelecidas no item 2 Desenvolvimento deste
trabalho:

4 CONCLUSÃO
9

O objetivo de desenvolver um diagrama de classes para um sistema de locação


de veículos foi alcançado.

Por meio da realização desta atividade foi possível internalizar os conhecimentos


adquiridos da disciplina Análise Orientada a Objetos e aprender de modo prático
a utilizar o software Visual Paradigm.

O desenvolvimento dessas habilidades é de suma importância para trabalhar na


estruturação de projetos na área de Engenharia de Software.

Você também pode gostar