Beruflich Dokumente
Kultur Dokumente
OrdemServio
numeroOS
dataOS
dataPrevTermino
dataTermino
placaCarro
situao
1..*
ItemOS
tipoItem *
preo
qtde
*
Pea
codPea
descrio
preo
qtdeEstoque
1
Cliente
nome
cpf
endereo
fone
0..1
*
*
Oficina
0..1
Servio
codServio
descrio
preo
tempoExecuo
Classe Cliente:
Atributos: nome (String), cpf (String), endereo (String) e fone (String). Todos
com acesso privativo;
Mtodo construtor que inicializa todos os atributos atravs de parmetros;
Mdodos get e set para obter e modificar cada um dos valores dos atributos.
Obs.: nem todos os atributos necessitam de mtodos acessores e modificadores.
Classe Pea:
Atributos: codPea (int), descrio (String), preo (double), qtdeEstoque (int).
Todos com acesso privativo;
Mtodo construtor que inicializa todos os atributos atravs de parmetros;
Mtodo construtor que inicializa os atributos codPea, descrio e preo
atravs de parmetros e o atributo qtdeEstoque com zero;
Mdodos get e set para obter e modificar os valores dos atributos; Obs.: nem
todos os atributos necessitam de mtodos acessores e modificadores.
Mtodo para incrementar a quantidade em estoque. Parmetro: a quantidade a
ser incrementada;
Mtodo para decrementar a quantidade em estoque. Parmetro: a quantidade
a ser decrementada. No permitir o decremento se a quantidade se tornar menor
do que zero.
Classe Servio:
Atributos: codServio (int), descrio (String), preo (double) e tempoExecuo
(double, tempo de execuo do servio, em minutos). Todos com acesso
privativo;
Mtodo construtor que inicializa todos os atributos atravs de parmetros;
Mdodos get e set para obter e modificar os valores dos atributos; Obs.: nem
todos os atributos necessitam de mtodos acessores e modificadores.
Classe OrdemServio:
Atributos: numeroOS (int), dataOS (GregorianCalendar), dataPrevTrmino
(GregorianCalendar,
data
prevista
para
trmino),
dataTrmino
(GregorianCalendar, data de trmino), placaCarro (String), situao (char, AAberta, C-Cancelada, F-Finalizada), cliente (Usuario), itens (lista de ItemOS) e
proximoNumero (int). O atributo proximoNumero deve ser esttico e ser usado
para armazenar o prximo nmero de ordem de servio. A lista de itens deve ser
implementada usando a classe Vector. Todos com acesso privativo;
Mtodo construtor que inicializa os atributos com os seguintes valores:
numeroOS (prximo nmero sequencial), dataOS (data corrente do sistema),
dataPrevTrmino, placaCarro e cliente (passados como parmetros),
dataTrmino (null) e situao (A);
Mtodos get para obter os valores dos atributos; Obs.: nem todos os atributos
necessitam de mtodos acessores e modificadores.
Mtodo para adicionar um item (pea) ordem de servio (OS). Parmetros: a
pea e a quantidade. A quantidade em estoque da pea deve ser decrementada
de acordo com o parmetro quantidade. Somente permitido adicionar item em
OS aberta (situao = A);
Mtodo para excluir um item (pea) da OS. Parmetro: a pea a ser excluda. A
quantidade em estoque da pea deve ser incrementada de acordo com a
quantidade adicionada. Somente permitido excluir item de OS aberta (situao
= A);
Mtodo para adicionar um item (servio) ordem de servio (OS). Parmetros:
o servio. Somente permitido adicionar item em OS aberta (situao = A);
Classe ItemOS:
Atributos: tipoItem (char, P-Pea, S-Servio), servio (Servio), pea (Pea),
preo (double) e qtde (int). Todos com acesso privativo;
Mtodo construtor que inicializa os atributos da seguinte forma: pea e qtde
(passados como parmetros), tipoItem com valor P (pea) e preo com o valor
do atributo preo do objeto pea. Esse mtodo usado para construir um item
do tipo Pea;
Mtodo construtor que inicializa os atributos da seguinte forma: servio
(passado como parmetro), tipoItem com valor S (servio), preo com o valor
do atributo preo do objeto servio e qtde com valor 1. Esse mtodo usado
para construir um item do tipo Servio;
Mtodos get para obter os valores dos atributos; Obs.: nem todos os atributos
necessitam de mtodos acessores.
Classe Oficina:
Atributos: clientes (lista de Cliente), peas (lista de Pea), servios (lista de
Servio) e OSs (lista de OrdemServio). As listas devem ser implementadas
usando a classe Vector. Todos com acesso privativo;
Mtodo para inserir um novo cliente na lista de clientes. Parmetro: o cliente;
Mtodo para inserir uma nova pea na lista de peas. Parmetro: a pea;
Mtodo para inserir um novo servio na lista de servios. Parmetro: o servio;
Mtodo para inserir uma nova ordem de servio na lista de ordens de servio.
Parmetro: a ordem de servio;
Mtodo para inserir um novo item (pea) a uma ordem de servio. Parmetros:
a ordem de servio, a pea e a quantidade;
Mtodo para inserir um novo item (servio) a uma ordem de servio.
Parmetros: a ordem de servio e o servio;
Mtodo para excluir um cliente da lista de clientes. Parmetro: o cliente. O
cliente no pode ser excludo se existir alguma ordem de servio para ele;
Mtodo para excluir uma pea da lista de peas. Parmetro: a pea. A pea
no pode ser excluda se existir alguma ordem de servio para ela;
Mtodo para excluir um servio da lista de servios. Parmetro: o servio. O
servio no pode ser excludo se existir alguma ordem de servio para ele;
Mtodo para excluir uma ordem de servio da lista de ordens de servios.
Parmetros: a ordem de servio. Somente permitido excluir OS aberta
(situao = A). Todos os itens devem ser excludos;
Mtodo para excluir um item (pea) de uma ordem de servio. Parmetros: a
ordem de servio e a pea;
Mtodo para excluir um item (servio) de uma ordem de servio. Parmetros: a
ordem de servio e o servio;
Mtodo para finalizar uma ordem de servio. Parmetro: a ordem de servio;
Mtodo para cancelar uma ordem de servio. Parmetro: a ordem de servio;
Mtodo para obter a lista de clientes;
Mtodo para obter a lista de peas;
Classe Interface:
Mtodo para apresentar um menu (interface de caracteres) com opes para:
cadastrar um novo cliente, cadastrar uma nova pea, cadastrar um novo servio,
cadastrar uma nova ordem de servio, inserir um novo item (pea), inserir um
novo item (servio), excluir um cliente, excluir uma pea, excluir um servio,
excluir uma ordem de servio, excluir um item (pea), excluir um item (servio),
finalizar uma ordem de servio, cancelar uma ordem de servio, listar todos os
clientes, listar todas as peas, listar todos os servios, listar todas as ordens de
servio e seus itens e sair do programa;
Mtodo para cadastrar um novo cliente. Deve permitir que o usurio entre com
os dados do cliente a ser inserido;
Mtodo para cadastrar uma nova pea. Deve permitir que o usurio entre com
os dados da pea a ser inserida;
Mtodo para cadastrar um novo servio. Deve permitir que o usurio entre com
os dados do servio a ser inserido;
Mtodo para cadastrar uma nova ordem de servio. Deve permitir que o
usurio entre com os dados da ordem de servio a ser inserida e de cada um de
seus itens.
Mtodo para inserir um novo item (pea) a uma ordem de servio j existente.
Deve permitir que o usurio escolha a ordem de servio e insira os dados do
novo item;
Mtodo para inserir um novo item (servio) a uma ordem de servio j
existente. Deve permitir que o usurio escolha a ordem de servio e insira os
dados do novo item;
Mtodo para excluir um cliente. Deve permitir que o usurio escolha o cliente a
ser excludo;
Mtodo para excluir uma pea. Deve permitir que o usurio escolha a pea a
ser excluda;
Mtodo para excluir um servio. Deve permitir que o usurio escolha o servio
a ser excludo;
Mtodo para excluir uma ordem de servio. Deve permitir que o usurio
escolha a ordem de servio a ser excluda;
Mtodo para excluir um item (pea) de uma ordem de servio j existente.
Deve permitir que o usurio escolha a ordem de servio e a pea a ser excluda;
Mtodo para excluir um item (servio) de uma ordem de servio j existente.
Deve permitir que o usurio escolha a ordem de servio e o servio a ser
excludo;
Mtodo para finalizar uma ordem de servio. Deve permitir que o usurio
escolha a ordem de servio a ser finalizada;
Mtodo para cancelar uma ordem de servio. Deve permitir que o usurio
escolha a ordem de servio a ser cancelada;
Mtodo para listar todas as peas. Deve listar os dados de todas as peas;
Mtodo para listar todos os servios. Deve listar os dados de todos os servios;
Mtodo para listar todas as ordens de servio. Deve listar os dados de todas as
ordens de servio com seus respectivos itens;
Mtodo main para ler os dados armazenados em arquivo, apresentar o menu
principal e, antes de sair do programa, gravar os dados em arquivo.
ItemOS
tipoItem *
preo
qtde
Produto
cdigo
descrio
preo
*
1
Cliente
nome
cpf
endereo
fone
1..*
Pea
qtdeEstoque
Servio
tempoExecuo
*
Oficina
Peas e Servios sero chamados genericamente de Produto. Para isso, foi criada
a classe abstrata Produto com duas subclasses, Pea e Servio. Um ItemOS agora
possui um relacionamento com Produto, de forma que cada ItemOS um Produto
(Pea ou Servio). Na prtica, isso significa que a classe ItemOS ter apenas um
atributo para dizer qual seu item ao invs de dois atributos (pea e servio) onde
um deles era sempre nulo;
Crie a classe Produto e altere as classes Pea e Servio para implementar a
hierarquia proposta. A classe Produto deve ser abstrata;
Altere a classe ItemOS retirando os atributos pea e servio e colocando em seu
lugar o atributo produto do tipo Produto. Consequentemente, alguns mtodos tero
de ser alterados;