MAPA - ESOFT - PARADIGMAS DE LINGUAGENS DE
PROGRAMAÇÃO - 54_2026
QUESTÃO 1
MV-ASSESSORIA
Consulte a nossa assessoria pelo Número:
Whats(15)98170-8778
Tele gram:(15)98170-8778
Entre em contato com a nossa equipe que vamos assessorar com esse trabalho
Mais de 10 anos no mercado acadêmico
Modelagem de
telemetria de frota sustentável: abstração, herança e encapsulamento de
sistemas reais no paradigma orientado a objetos
Na programação
orientada a objetos, a estrutura de um software pode ser organizada em classes
que reúnem atributos e métodos. As classes funcionam como modelos a partir dos
quais os objetos são instanciados e podem representar entidades de uma situação
real. A abstração do problema permite identificar quais entidades devem ser
representadas, quais dados pertencem a elas e quais operações precisam ser
realizadas.
Outro aspecto
importante é o controle de acesso aos dados. O encapsulamento permite
estabelecer diferentes níveis de visibilidade para atributos e métodos. Em
Java, o material didático da disciplina apresenta os modificadores private, public e protected. A visibilidade
protegida permite que subclasses acessem componentes definidos na superclasse,
enquanto a visibilidade privada restringe o acesso ao interior da própria
classe.
A herança
possibilita estruturar relações entre uma superclasse e suas subclasses,
permitindo o compartilhamento de atributos e métodos. O polimorfismo, por sua
vez, possibilita adequar comportamentos herdados às necessidades específicas
das subclasses. Classes e métodos abstratos também podem ser utilizados como
modelos estruturais, cuja implementação ocorre nas subclasses.
Esses recursos
serão aplicados na modelagem e implementação de um sistema de telemetria para
uma frota de veículos elétricos.
Fonte: adaptado
de: TOKUMOTO, R. C. Paradigmas de linguagem de programação. Maringá:
UniCesumar, 2022.
A empresa EcoFleet Solutions
S.A. desenvolve um sistema de telemetria para uma frota de transporte
urbano sustentável composta por vans elétricas de carga e bicicletas elétricas
de entrega.
O protótipo inicial
do sistema armazenava informações operacionais de maneira pouco controlada.
Durante os testes, verificou-se que valores inválidos poderiam ser atribuídos
ao nível de bateria dos veículos, incluindo valores inferiores a zero ou
superiores à capacidade máxima considerada pelo sistema. Essa situação
comprometia a consistência dos dados utilizados no acompanhamento da frota.
Para reorganizar a
aplicação, a equipe decidiu utilizar o paradigma orientado a objetos e
implementar uma nova estrutura em Java. A solução deverá representar os tipos
de veículos por meio de classes, centralizar características comuns, restringir
o acesso ao nível de bateria e permitir comportamentos diferentes para o
cálculo do consumo de cada categoria de veículo.
Você será
responsável por estruturar logicamente essa solução e implementar um programa
capaz de demonstrar, na prática, o uso de abstração, encapsulamento,
construtores, herança e polimorfismo.
Objetivo da
atividade
Modelar e
implementar, em linguagem Java, uma solução orientada a objetos para o sistema
de telemetria da EcoFleet Solutions S.A., empregando raciocínio lógico na
organização das classes, na definição das relações entre seus componentes, no
controle dos valores armazenados e no processamento do consumo de bateria dos
diferentes veículos.
Com base nos
conceitos de programação orientada a objetos estudados no material didático da
disciplina e nas regras definidas para o sistema de telemetria, desenvolva uma
solução completa para a EcoFleet Solutions S.A.
A atividade deverá
ser desenvolvida em três tarefas integradas:
- Na primeira
tarefa, organize logicamente a estrutura das classes e as relações existentes
entre elas.
- Na segunda
tarefa, implemente a solução em Java, respeitando as regras de encapsulamento,
herança, validação e cálculo apresentadas.
- Na terceira
tarefa, explique a lógica adotada na implementação dos principais componentes
da solução.
Todos os
componentes deverão ser apresentados em um único arquivo de entrega, devidamente
identificados como Tarefa 1, Tarefa 2 e Tarefa 3.
Tarefas
obrigatórias
Tarefa 1: Modelagem
conceitual
Elabore uma
representação textual da estrutura de classes necessária para o sistema.
Sua modelagem
deverá contemplar:
Uma
superclasse abstrata denominada Veiculo.
Duas subclasses concretas, denominadas VanEletrica e BicicletaEletrica.
Na classe Veiculo, os seguintes
atributos:
idVeiculo, do tipo int, com visibilidade protected.
modelo, do tipo String, com visibilidade protected.
capacidadeCarga, do tipo double, com visibilidade protected.
autonomiaBateria, do tipo double, com visibilidade private.
Na classe VanEletrica, o atributo
específico placaIdentificacao, do
tipo String, com
visibilidade private.
Na classe BicicletaEletrica, o
atributo específico limiteVelocidadeAssistida,
do tipo double, com
visibilidade private.
Uma justificativa para o uso Veiculo como
classe abstrata, relacionando essa escolha ao fato de funcionar como modelo
geral que concentra características comuns aos diferentes tipos de veículos e
que não deve ser instanciado diretamente.
Uma explicação sobre a escolha dos modificadores protected e private identificando
quais dados devem ser compartilhados por herança e quais devem permanecer
encapsulados.
Tarefa 2:
Implementação em Java
Com base na
modelagem elaborada na Tarefa 1, implemente as classes Veiculo, VanEletrica, BicicletaEletrica e Main.
Classe Veiculo
A classe deverá:
Pertencer
ao pacote telemetria.
Ser declarada como abstrata por meio de abstract.
Possuir os quatro atributos definidos na Tarefa 1.
Possuir um construtor sem parâmetros que inicialize os atributos com valores
definidos, utilizando 0, 0.0 ou uma String vazia, conforme o tipo do atributo.
Possuir o método público getAutonomiaBateria(),
responsável por retornar o valor armazenado em autonomiaBateria.
Possuir o método público setAutonomiaBateria(double
bateria).
No método setAutonomiaBateria,
implementar uma estrutura condicional que verifique o valor recebido. Caso seja
menor que 0.0 ou maior
que 100.0, deverá ser
atribuído 0.0 ao atributo.
Caso o valor esteja no intervalo de 0.0 a 100.0, o valor recebido deverá ser armazenado
normalmente.
Declarar o seguinte método abstrato: public
abstract void registrarViagem(double distancia);.
Classe VanEletrica
A classe deverá:
Pertencer
ao pacote telemetria.
Herdar a classe Veiculo utilizando extends.
Possuir o atributo privado placaIdentificacao.
Possuir um construtor que receba os valores necessários para inicializar os
atributos do objeto.
Inicializar os atributos protegidos herdados da classe Veiculo e utilizar o método setAutonomiaBateria() para definir o
nível inicial de bateria.
Sobrescrever publicamente o método registrarViagem(double
distancia).
Utilizar @Override e a
assinatura public void
registrarViagem(double distancia) na implementação do método.
Considerar que cada quilômetro percorrido pela van reduz a bateria em 0.5 ponto percentual.
Calcular o novo nível de bateria utilizando getAutonomiaBateria() e
realizar sua atualização por meio de setAutonomiaBateria().
Exibir no console uma mensagem contendo a distância percorrida e o nível de
bateria resultante.
Classe BicicletaEletrica
A classe deverá:
Pertencer
ao pacote telemetria.
Herdar a classe Veiculo utilizando extends.
Possuir o atributo privado limiteVelocidadeAssistida.
Possuir um construtor que receba os valores necessários para inicializar os
atributos do objeto.
Inicializar os atributos protegidos herdados da classe Veiculo e utilizar o método setAutonomiaBateria() para definir o
nível inicial de bateria.
Sobrescrever publicamente o método registrarViagem(double
distancia).
Utilizar @Override e a
assinatura public void
registrarViagem(double distancia) na implementação do método.
Considerar que cada quilômetro percorrido pela bicicleta reduz a bateria
em 0.2 ponto percentual.
Calcular o novo nível de bateria utilizando getAutonomiaBateria() e
realizar sua atualização por meio de setAutonomiaBateria().
Exibir no console uma mensagem contendo a distância percorrida e o nível de
bateria resultante.
Classe Main
A classe deverá:
Pertencer
ao pacote telemetria.
Possuir o método public static void
main(String[] args).
Instanciar um objeto da classe VanEletrica e
um objeto da classe BicicletaEletrica.
Inicializar os dois veículos com 100.0 como
nível de bateria e com valores coerentes para os demais atributos.
Simular uma viagem de 50.0 quilômetros
para cada veículo por meio do método registrarViagem(double
distancia).
Exibir o nível final de bateria dos dois objetos.
Tarefa 3:
Justificativa da lógica implementada
Após a
implementação, redija um texto de 10 a 20 linhas explicando:
Como
a lógica do método setAutonomiaBateria() impede
que valores inferiores a 0.0 ou
superiores a 100.0 sejam
armazenados normalmente.
Como a organização dos atributos na superclasse e nas subclasses permite
reutilizar componentes comuns e manter componentes específicos em cada tipo de
veículo.
Como o método registrarViagem(double
distancia) utiliza a distância percorrida para calcular e atualizar
o nível de bateria de cada categoria de veículo.
Qual é a função do construtor na definição dos valores iniciais utilizados
pelos objetos.
Produto final
esperado
O produto final
será um único arquivo anexado no ambiente virtual de aprendizagem, contendo:
Identificação
do estudante com nome completo e RA.
Modelagem textual desenvolvida na Tarefa 1.
Código completo das classes Veiculo, VanEletrica, BicicletaEletrica e Main,
referente à Tarefa 2.
Justificativa da lógica implementada, com 10 a 20 linhas, referente à Tarefa 3.
O código deverá
estar organizado e legível, com indentação adequada.
Modelo de entrega
Organize o arquivo
final na seguinte ordem:
Identificação do
estudante
Nome completo:
RA:
Tarefa 1: Modelagem
conceitual
Insira a modelagem
e as justificativas solicitadas.
Tarefa 2:
Implementação em Java
Insira, de forma
identificada, o código das quatro classes solicitadas.
Tarefa 3:
Justificativa da lógica implementada
Insira o texto
solicitado.
O arquivo deverá
ser enviado como anexo na área destinada ao MAPA no ambiente virtual de aprendizagem,
utilizando o formato disponibilizado para envio na disciplina.
Orientações gerais
0 comentários:
Postar um comentário