Você está na página 1de 24

Análise e Projetos

de Sistema
Material Teórico
Projeto Baseado em Objetos

Responsável pelo Conteúdo:


Prof. Ms. Rodrigo da Rosa

Revisão Textual:
Profa. Esp. Vera Lídia de Sá Cicaroni
Projeto Baseado em Objetos

• Introdução

• Projeto Baseado em Objetos

• 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?

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.

5
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.

6
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.

7
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.

8
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;

9
Unidade: Projeto Baseado em Objetos

• um pedido, para ser gerado, 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.

10
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.

11
Unidade: Projeto Baseado em Objetos

Figura 4: Diagrama de classe.

12
Ideias Chave
S
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;
}
13
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.

14
-- 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 cliente optou 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.

15
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.

16
• 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.

17
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.

18
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.

19
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.

20
Anotações

21
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São Paulo SP Brasil
Tel: (55 11) 3385-3000

Você também pode gostar