Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Análise e Projetos 
de Sistema
Projeto Baseado em Objetos
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Rodrigo da Rosa
Revisão Textual:
Profa. Esp. Vera Lídia de Sá Cicaroni 
5
•	Introdução
•	Projeto Baseado em Objetos
•	Estudo de Caso
Para que os objetivos da unidade sejam alcançados, é fundamental que você leia, 
cuidadosamente, todo o material e realize, com atenção, todas as atividades propostas. 
Nesta unidade é importante que, durante as leituras e a realização dos exercícios, você 
consiga compreender os aspectos envolvidos em projetos baseados em objetos através de 
um estudo de caso.
 · Quais são as características que definem a fase de Projeto 
em um desenvolvimento de software?
 · Como são desenvolvidos os softwares para realizar as 
tarefas definidas no levantamento de requisitos junto ao 
usuário/cliente?
 · Como são elaborados os diagramas da UML que servirão 
como grande auxílio para visualização mais simples e clara 
do projeto de software?
Projeto Baseado em Objetos
6
Unidade: Projeto Baseado em Objetos
Contextualização
A fase de Projeto, que se apresenta após a etapa de requisitos, é parte do trabalho realizado 
pela equipe de desenvolvimento de sistemas. Uma vez que as informações necessárias para 
a construção do software já foram colhidas e tratadas, é necessário que os requisitos sejam 
utilizados como parâmetro para que os profissionais desenvolvedores programem o sistema.
É uma etapa que exige, também, muita dedicação e empenho, pois detalhes preciosos não 
poderão passar despercebidos. Aqui os códigos-fonte passarão a ser estruturados em ambiente 
de linguagem de programação específica orientada a objetos (esse é o contexto da unidade). 
Além disso, em paralelo, serão criados os modelos de diagramas da UML, que serão excelentes 
auxílios ao projeto, beneficiando desenvolvedores, usuários/cliente, administradores e equipes 
de manutenção também.
Nesta unidade, iremos abordar conceitos importantes sobre a segunda etapa do processo 
de desenvolvimento de softwares, chamada de Projeto. O foco principal será Projetos 
Baseados em Objetos. 
7
Introdução
O Projeto baseado em objetos compõe a segunda etapa do desenvolvimento de projeto de 
software. Fica logo após a etapa de levantamento dos requisitos que servirão como dados de 
primordial importância para que se crie um software que atenda às expectativas de usuários/
clientes diante de algum problema que se deseja solucionar.
Nesta unidade abordaremos os fatores que estão inseridos na fase de Projeto. Serão 
apresentados conceitos importantes que envolvem a programação orientada a objetos e as 
formas básicas de estruturação de seus códigos. Além disso, um estudo de caso simples será 
demonstrado, não em sua totalidade, para que tenhamos noções sobre como, inicialmente, 
podemos modelar o projeto, representando-o através, também, de diagramas diversos da UML, 
que darão, cada qual com sua especificidade, uma visão diferente do projeto.
Projeto Baseado em Objetos
Pressman (1995, p. 521) afirma que o projeto orientado a objeto (Object-Oriented-Design – OOD), 
como outras metodologias de projeto, cria uma representação do domínio do problema do mundo 
real e leva-a a um domínio de solução que é o software.
Em outras palavras, o projeto orientado a objeto age na tentativa de captar um problema 
presente em um ambiente real para ser estudado na busca de uma solução através de um software.
Sabemos que o ciclo de vida de um software é descrito conforme a figura a seguir:
 Figura 2: Ciclo de Vida do Software.
8
Unidade: Projeto Baseado em Objetos
A segunda fase de um projeto de desenvolvimento de software é chamada de Projeto, 
caracterizada pela criação do software com base nos requisitos anteriormente levantados. É 
a fase que agrega questões de elaboração dos diagramas e também dos códigos-fonte em 
linguagem de programação orientada a objeto para que o software desempenhe suas tarefas de 
acordo com o combinado.
Programação Orientada a Objeto
A Programação Orientada a Objeto é uma estrutura de instruções escritas em determinada 
linguagem de programação que considera um conjunto de classes e também de objetos que possuem 
interação entre si para que tarefas sejam realizadas e resultados esperados sejam alcançados.
A forma como os comandos (instruções) são “lidos” para sua execução é em sequência, ou 
seja, linha por linha na ordem em que foram estruturadas. Entretanto, existem situações em que 
essa ordem precisa ser modificada. Por exemplo, se um módulo do programa for responsável 
por calcular a média obtida por um estudante e tiver que apresentar uma afirmação “aprovado”, 
se essa média for maior ou igual a 7, ou uma afirmação “reprovado”, se essa média for menor 
que 7, a sequência a ser executada vai depender de uma condição, ou seja, se a média for um 
valor, esse módulo deverá ler uma sequência de comandos, porém, se for outro valor, deverá 
ler outra sequência distinta de comandos.
Exemplo: o parâmetro IF define um comando que deverá ser lido somente se uma condição 
imposta for satisfeita.
if (media >= 7) {
 comandos se condição satisfeita
}else {
 comandos se condição não satisfeita
}
Outro exemplo é o do parâmetro while, que define que certa parte do código deve ser 
executada enquanto a condição estiver sendo atendida.
while (x < 10) {
 System.out.println(“mensagem”);
x = x + 1;
}
Esse exemplo deve também indicar que o x receberá um valor a mais, pelo menos, cada vez 
que os comandos forem executados, até que x tenha um valor 11 que permita que o processo 
de execução seja continuado de outro ponto referenciado pelo código.
9
Estudo de Caso
 
A proposta deste item é descrever um exemplo simplificado de uma situação em que um 
determinado cliente sente a necessidade de possuir um sistema e contrata uma empresa que irá 
desenvolver o projeto com base nas especificações levantadas junto a esse usuário. Tal proposta 
baseia-se em Guedes (2009, pp. 361 a 399).
Não há o intuito de mostrar o desenvolvimento completo de um sistema, mas sim utilizar 
ferramentas conhecidas para realizar a modelagem do projeto baseado no problema apresentado.
Analisando Requisitos
A empresa y tem o interesse de possuir um sistema de venda de CDs e DVDs on-line que 
permita que os clientes possam realizar pedidos desses produtos por meio da Internet.
Para que esse sistema seja desenvolvido, é necessário, em primeiro lugar, pensar em como 
deverá ser a página principal do site da loja de CDs e DVDs. Podemos considerar, por exemplo, 
que, segundo as especificações, o analista percebeu a necessidade de haver, em tal página, as 
seguintes opções de navegação:
•	 Identificação:	necessária	para	que	o	cliente	possa	identificar-se	ou	cadastrar-se	no	sistema.	
Esse cadastro deve conter informações úteis para que a entrega seja realizada no local 
correto, como, por exemplo, endereço, bairro, CEP, cidade e estado;
•	 CDs:	necessária	para	que	o	cliente	encontre	algum	CD	de	interesse;
•	 DVDs:	necessária	para	que	o	cliente	encontre	algum	DVD	de	interesse;
•	 Visualizar	carrinho:	necessária	para	mostrar	ao	cliente	os	itens	escolhidos	até	o	momento,	
bem como o valor que deverá pagar, caso encerre a compra optando por fazê-la. Este item 
deve, também, permitir que o cliente exclua algum produto do carrinho;
•	 Últimos	pedidos:	necessária	para	mostrar	ao	cliente	os	últimos	itens	que	ele	comprou,	em	
datas anteriores;
•	 Finalizar	pedido:	necessária	para	concluir	o	pedido	do	cliente.	Uma	tela	de	confirmação	de	
endereço de entrega deverá ser apresentada, dando ao cliente a oportunidade de alterar 
tal endereço, caso seja seu desejo.
Alguns detalhes importantes:
•	 assim	que	o	cliente	finalizar	seu	pedido,	o	sistema	deverá	armazenar	os	produtos	comprados;
•	 cada	cliente	poderá	comprar	diversas	vezes	no	site,	ou	seja,	poderá	fazer	muitos	pedidos,	
entretanto qualquer pedido será exclusivo para cada cliente;
10
Unidade: Projeto Baseado em Objetos
•	 um	pedido,	para	sergerado,	deverá	conter,	pelo	menos,	um	produto,	sendo	ele	CD	ou	DVD;
•	 as	datas	de	compra	e	de	entrega	do	pedido	deverão	ser	armazenadas;
•	 assim	que	o	produto	for	separado	para	entrega,	o	sistema	deverá	descontar	do	estoque	
a quantidade dos produtos que saíram, ou seja, se, por exemplo, o estoque possuía 100 
CDs de determinado artista e 200 DVDs de determinado filme e se um cliente comprou 1 
DVD e 1 CD desses exemplificados, a quantidade restante em estoque de CDs deverá ser 
99 enquanto a quantidade de DVDs restante deverá ser 199.
•	 a	quantidade	de	produtos	em	estoque	deverá	ser	controlada	para	que	os	produtos	sejam	
repostos por fornecedores no momento em que a quantidade limite mínima for atingida;
•	 relatórios	deverão	ser	gerados	para	que	a	empresa	tenha	controle	de,	por	exemplo,	CDs	
e DVDs mais vendidos, localidade mais atendida, se o público é caracterizado em maior 
escala por homens ou mulheres, faixa etária dos clientes, etc.
Sempre que um desses itens for escolhido pelo cliente, uma tela de referência a essa escolha 
será exibida. Por exemplo, se o cliente escolher a opção DVDs, uma relação desse produto irá 
aparecer dando a ele a possibilidade de compra.
Projetando o Sistema
Para que esse sistema seja projetado, utilizaremos alguns conceitos conhecidos da UML.
•	 Diagrama	de	caso	de	uso	para	um	subsistema	de	vendas: neste caso, há um ator 
denominado cliente que se refere àquele que irá acessar o site para realizar uma busca por 
CDs ou DVDs.
 
Figura 2: Diagrama de caso de uso para as vendas.
11
A expressão “<<include>>”, conforme apresentada no diagrama, indica que, 
obrigatoriamente, a tela “Visualizar carrinho” deverá ser exibida quando o cliente 
escolher a opção “Finalizar pedido”. Já a expressão “<<extend>>”, que liga 
“Identifica-se” com “Cadastrar”, não indica obrigatoriedade de apresentação de 
uma tela quando uma opção é escolhida, ou seja, se o cliente já estiver cadastrado, 
na identificação ele não precisará fazer novo cadastro. 
•	 Diagrama	 de	 caso	 de	 uso	 para	 subsistema	 de	 conferência: este diagrama é 
uma representação simples do funcionamento do sistema sob o ponto de vista das 
responsabilidades do funcionário da empresa.
 
Figura 3: Diagrama de caso de uso para conferência.
 - Identificação do funcionário: o funcionário deverá identificar-se para ter acesso às telas 
com que irá trabalhar;
 - Visualizar pedidos de clientes: esta funcionalidade permite que o funcionário identifique 
quais são os pedidos em aberto, além de dar a possibilidade de finalizar o pedido para 
que ele seja liberado para entrega.
•	 Diagrama	de	classes: este diagrama será utilizado para demonstrar as classes envolvidas 
no sistema proposto e seus relacionamentos.
12
Unidade: Projeto Baseado em Objetos
 
Figura 4: Diagrama de classe.
13
S
Ideias Chave
Tipos de dados são elementos que demonstram qual característica um dado deverá possuir para ser 
inserido em certo atributo. Exemplos:
•	int: indica que o atributo que receber esta classificação deverá conter apenas 
valores numéricos inteiros.
•	string:	 indica que o atributo que receber esta classificação poderá conter textos com os mais 
variados caracteres.
•	date: indica que o atributo que receber esta classificação deverá conter dados de data.
•	double:	indica que o atributo que receber esta classificação deverá conter números reais.
•	time: indica que o atributo que receber esta classificação deverá conter hora de um dia.
 - site_loja_CD_DVD:	esta é uma classe que representa a página virtual que os clientes 
visualizarão para poderem acessar e comprar seus produtos. Esta classe é controlada 
por outra classe, nomeada de controle_loja_CD_DVD.
 - controle_loja_CD_DVD:	como o próprio nome sugere, esta é uma classe responsável 
pelo controle e interpretação das solicitações dos clientes no site_loja_CD_DVD. Tais 
solicitações são transmitidas para as demais classes do sistema.
 - Classe	cliente: é caracterizada por ser responsável pelo armazenamento dos dados 
pessoais dos clientes que efetuam seus cadastros, ou seja, informações sobre endereço, 
cidade, estado, CEP, e-mail, número de telefone, etc. Nesta classe são considerados os 
seguintes métodos:
a) CliLogin – por meio deste método, o cliente recebe ou não autenticação no site. 
Login e senha devem estar de acordo com o que já estava cadastrado.
b) CliReg – método que permite o cadastro de novo usuário no sistema. Os dados de 
referência para preenchimento são baseados nos atributos da classe cliente.
c) CliSel – método que possibilita selecionar todos os clientes cadastrados no sistema.
A definição dessa classe em linguagem orientada a objeto seria escrita, basicamente, deste modo:
Class cliente {
 stringcli_id;
 stringcli_senha;
stringcli_nome;
 stringcli_end;
 stringcli_cep;
string cli-fone;
 stringcli_email;
datecli_dt_nasc;
}
14
Unidade: Projeto Baseado em Objetos
 - Classe estado: nela estão as informações que se referem ao estado de residência do 
cliente. O único atributo existente é o nome do estado.
a) ConsUF – método utilizado quando se pretende consultar o estado de residência de 
um cliente.
 - Classe	cidade: nela estão as informações que se referem à cidade de residência do 
cliente. O único atributo existente é o nome da cidade.
a) ConsCid - método utilizado quando se pretende consultar a cidade de residência de 
um cliente.
 - Classe	 funcionário: é caracterizada por ser responsável pelo armazenamento dos 
dados pessoais dos funcionários que atuam na empresa, ou seja, informações sobre 
endereço, cidade, estado, CEP, e-mail, número de telefone, salário, CPF, etc. Nesta 
classe são considerados os seguintes métodos:
a) FunLogin - por meio deste método, o funcionário recebe ou não autenticação no 
sistema. Login e senha devem estar de acordo com o que está cadastrado.
b) FunReg - método que permite o cadastro de novo funcionário no sistema. Os dados 
de referência para preenchimento são baseados nos atributos da classe funcionário.
c) FunCons – método que permite a consulta de funcionários cadastrados no sistema.
 - Classe pedido: é responsável por armazenar as informações sobre os pedidos 
realizados pelos clientes, ou seja, a data e hora da efetivação do pedido, o status (se 
foi realizado ou está em aberto, por exemplo) e um código de identificação. Esta classe 
está associada à classe funcionário através da indicação “prepara”, indicando que o 
funcionário autenticado está incumbido de trabalhar no preparo da entrega do produto. 
Nesta classe são considerados os seguintes métodos:
a) PedReg – método que possibilita o cadastramento de novo pedido. 
b) PedCons – possibilita a consulta de determinado pedido.
c) PedVisPedCli – exibe todos os pedidos realizados por um determinado cliente.
d) PedSel – permite que o cliente delimite um período do tempo em que ele deseja 
visualizar seus pedidos, como, por exemplo, de 21/03/2008 à 23/05/2013. 
e) PedConfirm – método que permite que um pedido seja confirmado por um cliente, 
indicando que optou pela compra de produtos do site. Perceba que ped_status é do 
tipo inteiro e, inicialmente, é atribuído valor zero. No momento da confirmação, esse 
status passa a ser um, demonstrando a ação do cliente.
f) PedFinal – método que estabelece que um pedido foi finalizado por um 
funcionário específico. 
15
 - Classe	item_CD: caracterizada por ser responsável por armazenar informações sobre 
os CDs escolhidos pelo cliente. É uma classe intermediária que atua entre as classes 
CD e pedido.
a) CDAdItem – método utilizado para se adicionar um CD ao pedido do cliente.
b) CDExcItem – este possibilita a remoção de um CD do pedido do cliente.
c) CDSelItem – método que permite a seleção de todos os CDs de um determinado pedido.
 - Classe	CD:	caracterizada por armazenar todos os CDs que são vendidos pela loja.
a) CDReg – método que permite o registro de um novo CD.
b) CDExc – método que possibilita a exclusão de um CD.
c) CDSel – seleciona todos os CDs que o clienteoptou para compor seu pedido.
d) CDConsPreco – método que permite a consulta do preço de um determinado CD.
e) CDConsDesc– método que permite a consulta da descrição de um CD.
 - Classe	Item_Compra_CD:	é uma classe intermediária que atua entre as classes CD e 
Compra. Armazena informações referentes aos CDs escolhidos em uma determinada compra.
a) CDRegCompra – utilizado como referência para apresentar à classe compra quais 
são os CDs escolhidos pelo cliente.
b) CDSelItemCompra–método utilizado para selecionar cada CD contido em uma compra.
 - Classe	 item_DVD:	 caracterizada por ser responsável por armazenar informações 
sobre os DVDs escolhidos pelo cliente. É uma classe intermediária que atua entre as 
classes DVD e pedido.
a) DVDAdItem – método utilizado para se adicionar um DVD ao pedido do cliente.
b) DVDExcItem – este possibilita a remoção de um DVD do pedido do cliente.
c) DVDSelItem – método que permite a seleção de todos os DVDs de um determinado pedido.
 - Classe	DVD: caracterizada por armazenar todos os DVDs que são vendidos pela loja.
a) DVDReg – método que permite o registro de um novo DVD.
b) DVDExc – método que possibilita a exclusão de um DVD.
c) DVDSel – seleciona todos os DVDs que o cliente optou para compor seu pedido.
d) DVDConsPreco – método que permite a consulta do preço de um determinado DVD.
e) DVDConsDesc –método que permite a consulta da descrição de um DVD.
16
Unidade: Projeto Baseado em Objetos
 - Classe	Item_Compra_DVD:	é uma classe intermediária que atua entre as classes 
DVD e Compra. Armazena informações referentes aos DVDs escolhidos em uma 
determinada compra.
a) DVDRegCompra – utilizado como referência para apresentar à classe compra quais 
são os DVDs escolhidos pelo cliente.
b) DVDSelItemCompra - método utilizado para selecionar cada DVD contido em uma compra.
 - Classe Compra: caracterizada por conter informações sobre os pedidos de compras 
realizados pelos clientes e que serão solicitados aos fornecedores. Existe uma relação 
com a classe funcionário, sugerindo, assim, que um funcionário tem autonomia para 
realizar a encomenda desses pedidos de compras.
a) CompraReg – método utilizado quando se deseja registrar uma nova compra.
b) ComprasAbertas – apresenta todos os pedidos de compras que ainda não foram 
atendidos pelos fornecedores.
c) CompraFinal–método utilizado quando se deseja finalizar uma compra, indicando 
que o produto foi entregue pelo fornecedor.
•	 Diagrama	de	pacotes:	organizaas classes de objetos em grupos chamados pacotes, que 
podem se relacionar com outros pacotes aderentes ao projeto.
 
Figura 5: Diagrama de pacotes.
Para que o subsistema administrativo possa ser funcional, é preciso, necessariamente, que 
o subsistema de vendas tenha alguma tarefa, ou seja, é preciso que um cliente faça um pedido 
para que o funcionário administrativo realize suas tarefas. Por este motivo, há a indicação de 
dependência entre os dois pacotes.
17
•	 Diagrama	 de	Objetos: é um complemento do diagrama de classes. Permite que 
os valores armazenados por cada objeto sejam visualizados, o que não ocorre no 
diagrama de classes.
 
Figura 6: Diagrama de objetos.
O diagrama acima apresentado é um exemplo de pedido de uma cliente de nome Rosana 
Soares, cujos dados pessoais estão descritos na figura. O pedido foi realizado no dia 14/06/2013, 
às 23h24. A cliente escolheu dois CDs (artistas S e T) que custam R$ 24,96 e R$ 22,76, 
respectivamente, e um DVD (filme H) que custa R$ 34,90. O pedido de compra de número 57 foi 
gerado e deve ser enviado aos fornecedores. O funcionário Leonardo Borges irá acompanhar a 
compra e deverá finalizá-la assim que os fornecedores entregarem os produtos encomendados.
18
Unidade: Projeto Baseado em Objetos
Outros diagramas poderiam ser utilizados neste projeto. De qualquer maneira, temos, com 
aqueles que foram apresentados, referência para refletirmos sobre como um projeto baseado 
em objetos pode ser estruturado.
 
 Explore
Para uma visão mais completa e detalhada dos diagramas da UML em projetos de sistemas, leia o 
capítulo 16 do livro UML	2:	uma	abordagem	prática, de Gilleanes T. Araújo Guedes, disponível 
na biblioteca Virtual da UNICID.
19
Material Complementar
•	<http://www.omg.org> site da organização	Object	Management	Group, 
que analisa e define padrões de desenvolvimento de projetos orientados a 
objetos.
•	PAULA	FILHO,	W.	P.Engenharia	de	Software:	 fundamentos,	métodos	
e padrões. Rio de Janeiro. LTC, 2009.Disponível na biblioteca virtual da 
Unicsul.
•	SOMMERVILLE,	Ian.	Engenharia	de	Software. São Paulo. Pearson Addilson-
Wesley,	2007.Disponível	na	biblioteca	virtual	da	Unicsul.
http://www.omg.org
20
Unidade: Projeto Baseado em Objetos
Referências
GUEDES, G. T. A. UML	2:	uma	abordagem	prática.	São Paulo. Novatec, 2009.
PRESSMAN, R. S. Engenharia	de	Software. São Paulo: Pearson Makron Books, 1995.
21
Anotações
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São Paulo SP Brasil 
Tel: (55 11) 3385-3000
http://www.cruzeirodosulvirtual.com.br

Mais conteúdos dessa disciplina