173
Aula 6º
Projeto orientado a objetos
Prezados (as) alunos (as),
Nesta aula, estudaremos alguns conceitos do projeto
orientado a objetos.
Se ao final desta aula tiverem dúvidas, vocês poderão saná-
las através das ferramentas da plataforma de ensino.
Conto com a sua participação, aproveite para ler e refletir
os objetivos de aprendizagem, afinal, da sua participação
dependerá seu aprendizado.
Bom Trabalho!
Bons estudos!
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de:
• compreender a importância de se projetar um sistema;
• saber as características de qualidades desejáveis em um projeto;
• entender os conceitos de projeto de sistema e projeto de objetos.
174 Análise de Sistemas II 38
• falta de pessoas treinadas (know-how);
Seções de estudo • ferramentas imaturas
• LQYHVWLPHQWRVVLJQLÀFDWLYRVMiIHLWRVHPIHUUDPHQWDV
não orientadas a objetos.
1 – Introdução
2 – Projeto de sistema Além dos benefícios citados anteriormente, outros
3 – Projeto de objeto IDWRUHV OLJDGRV j SURGXWLYLGDGH WDPEpP VmR HVSHUDGRV
Deve haver uma maior reutilização do software, acarretando
1 - Introdução ganhos de performance na construção de novos sistemas.
Todos estes aspectos conduzem a vantagens econômicas.
Uma grande parte dos desenvolvedores de software A partir da década de 90, as aplicações se tornaram
“torcem o nariz” para o trabalho de projeto de software partindo mais complexas, demorando mais tempo para serem
GLUHWDPHQWH SDUD R WUDEDOKR GH FRGLÀFDomR GR VLVWHPD HP executadas e apresentando um índice proporcionalmente
uma linguagem de programação que esteja sendo bem maior de falhas. O tempo e o dinheiro necessários para
GLYXOJDGDQDPtGLDSRLVDÀQDOFRPRSHQVDPHGL]HPLVWRp a manutenção dessas aplicações também aumentaram
o que realmente importa, projetar é tempo perdido enquanto substancialmente.
poderia estar desenvolvendo o programa. A fase de projeto é responsável por incorporar requisitos
Esta visão romântica e “suicida” hoje em dia não tem mais tecnológicos aos requisitos essenciais. Assim, o projetista
fundamento. Devido ao aumento da complexidade dos projetos deverá estar atento aos critérios de qualidade que o sistema
de software realizar um planejamento profundo do projeto é terá que atender.
crucial. O cliente precisa entender o que o desenvolvedor O projeto OO modela a solução e consiste das atividades
está fazendo e precisa ter condições de indicar alterações nas de criação (como pode ser feito), enquanto que a análise
funcionalidades do projeto. Para isso, é necessário um canal modela o problema e consistem das atividades necessárias
de comunicação onde a linguagem usada seja compreensível para entender o domínio do problema (o que deve ser feito).
pela equipe de desenvolvimento e pelo cliente. A chave A qualidade do projeto pode ser medida conforme os
para este processo ser bem sucedido é organizar o processo requisitos citados a seguir:
de desenvolvimento de forma a envolver programadores,
analistas e clientes no desenvolvimento do sistema usando uma )XQFLRQDOLGDGHUHIHUHVHjH[LVWrQFLDGHXPFRQMXQWR
linguagem que seja de fácil entendimento a todos. GHIXQo}HVTXHVDWLVID]jVQHFHVVLGDGHVH[SOtFLWDVHLPSOtFLWDVH
VXDVSURSULHGDGHVHVSHFtÀFDV7HPFRPRVXEFDUDFWHUtVWLFDV
3RUSURMHWRHQWHQGHVHDLPSOHPHQWD©¥RGHWRGRDUWHIDWRFULDGR
adequação, acurácia, interoperabilidade, segurança de acesso
HPWHPSRGHDQ£OLVHGHDFRUGRFRPRP«WRGRGHGHVHQYROYLPHQWR
e conformidade.
HVFROKLGR
&RQÀDELOLGDGH GL] UHVSHLWR j FDSDFLGDGH GR software
O Projeto Orientado a Objetos se dedica a desenvolver manter seu nível de desempenho, sob condições estabelecidas,
um modelo orientado a objetos de um sistema de software para por um período de tempo. Tem como sub- características:
implementar os requisitos. Os objetivos em um projeto OO maturidade, tolerância a falhas, recuperabilidade e
HVWmRUHODFLRQDGRVjVROXomRGRSUREOHPDque está sendo conformidade.
resolvido. 8VDELOLGDGH refere-se ao esforço necessário para se
Embora a tecnologia orientada a objetos não seja nova, utilizar um produto de software, bem como o julgamento
o Projeto Orientado a Objetos é uma abordagem inovadora individual de tal uso por um conjunto de usuários. Tem
para o desenvolvimento do software que, se bem implementada, como sub-características: inteligibilidade, apreensibilidade,
trará benefícios substanciais para o aumento da produtividade operacionalidade, atratividade e conformidade.
com qualidade. É necessário, no entanto, que se consiga (ÀFLrQFLDdiz respeito ao relacionamento entre o nível
transpor as razões habituais de resistência para adoção de de desempenho do software e a quantidade de recursos utilizados
novas tecnologias. sob condições estabelecidas. Tem como sub-características:
Algumas das vantagens do Projeto OO: comportamento em relação ao tempo, comportamento em
relação aos recursos e conformidade.
• facilidade de manutenção. Objetos podem ser 0DQXWHQLELOLGDGH concerne ao esforço necessário
entendidos como entidades independentes; SDUD VH ID]HU PRGLÀFDo}HV QR software. Tem como sub-
• os objetos são componentes potencialmente FDUDFWHUtVWLFDVDQDOLVDELOLGDGHPRGLÀFDELOLGDGHHVWDELOLGDGH
reutilizáveis; testabilidade e conformidade.
• para vários sistemas, existe um nítido mapeamento 3RUWDELOLGDGH UHIHUHVH j FDSDFLGDGH GR software ser
entre as entidades do mundo real para objetos do transferido de um ambiente para outro. Tem como sub-
sistema. características: adaptabilidade, capacidade para ser instalado,
coexistência, capacidade para substituir e conformidade.
Se existem vantagens, porque muitas empresas não
adotaram ainda o projeto orientado a objetos? Alguns dos 2SURMHWRRULHQWDGRDREMHWRVVHGLYLGHHPSURMHWRGRVLVWHPDH
motivos apontados são: SURMHWR GR REMHWR TXH VHU¥R GHVFULWRV VXFLQWDPHQWH QD VH©¥R D
VHJXLU
• incerteza;
39 175
implementação, bem como as interfaces e os algoritmos
23URMHWRGHVLVWHPD dos métodos utilizados para por em prática as operações.
Nesta fase, são adicionados objetos internos para a
O projeto do sistema consiste em tomar decisões de alto implantação e otimizadas as estruturas de dados e os
nível sobre o como o problema será resolvido e a solução algoritmos. O projetista deverá escolher entre várias formas
construída. O projeto de sistemas inclui decisões sobre a de implementação, levando em conta questões como
arquitetura do sistema, sobre a organização do sistema em minimização do tempo de execução, da memória e outras
subsistemas, a alocação de subsistemas, a componentes de medidas de custo. A otimização do projeto deve ainda levar
hardware ou de software e sobre a política e a estratégia que em conta as facilidades de implementação, manutenção e
formam o quadro no qual o projeto detalhado poderá ser expansão.
desenvolvido. Durante o projeto do objeto, o projetista deve realizar os
O projetista do sistema deve tomar as seguintes decisões: passos seguintes:
- 2UJDQL]DU R VLVWHPD HP VXEVLVWHPDV D SDUWLU • combinar os três modelos para obter as operações
GDVQRo}HVGHFDPDGDV VXEGLYLVmRKRUL]RQWDO sobre as classes;
HGHSDUWLo}HV VXEGLYLVmRYHUWLFDO • projetar os algoritmos para realizar as operações;
6LJQLÀFDHVWDEHOHFHUXPDHVWUXWXUDKLHUDUTXL]DGDGDV • otimizar os caminhos de acesso aos dados;
funções do sistema, dividindo a função principal em • implementar o controle para as interações
sub-funções, que pode ser horizontal, mostrando externas;
sub-funções no mesmo nível, ou vertical dividindo • ajustar a estrutura de classes para adicionar a
cada função em funções menores. herança;
- ,GHQWLÀFDUDFRQFRUUrQFLDLQHUHQWHDRSUREOHPD • realizar o projeto das associações;
HGHÀQLUDVWDUHIDVFRQFRUUHQWHV • determinar a representação do objeto;
'HÀQLUDVGLYHUVDVWDUHIDVTXHSRGHPDWXDUVREUH • empacotar classes e associações nos módulos;
um mesmo problema e como estas tarefas deverão • documentar as decisões de projeto.
VHUH[HFXWDGDVVHPJHUDUFRQÁLWRV
- $ORFDURVVXEVLVWHPDVDSURFHVVDGRUHVHWDUHIDV
Determinar quais equipamentos e programas serão Retomando a aula
alocados para cada parte do sistema como um todo.
- (VFROKHU XPD DERUGDJHP SDUD JHUHQFLDU RV
DUPD]HQDGRUHVGHGDGRV
Escolher o tipo de metodologia e estruturas de
dados serão utilizadas para os bancos de dados. 9DPRV DJRUD UHOHPEUDU DOJXQV SRQWRV LPSRUWDQWHV
- 'HWHUPLQDU RV PHFDQLVPRV SDUD PDQXVHDU R GHVWD$XOD
DFHVVRDRVUHFXUVRVJOREDLV
'HÀQLUGHTXHIRUPDRVUHFXUVRVGRVLVWHPDVHUmR
disponibilizados para seus usuários e como será o
gerenciamento destes acessos; ²,QWURGXomR
- (VFROKHU D LPSOHPHQWDomR GR FRQWUROH QR
Todo sistema precisa ser construído baseado em um
VRIWZDUH
projeto, para que tenha um mínimo de qualidade.
'HÀQLUFRPRVHUmRIHLWRVHVWHVFRQWUROHVGHDFHVVR
No Projeto Orientado a Objetos é desenvolvido um
utilização, solicitações e alterações.
modelo orientado a objetos de um sistema de software para
- 'HWHUPLQDURPDQXVHLRGDVFRQGLo}HVOLPLWHV
implementar os requisitos. Os objetivos em um projeto OO
Preparar o sistema e as pessoas para tratar com
HVWmR UHODFLRQDGRV j VROXomR GR SUREOHPD TXH HVWi VHQGR
as situações limites, ou seja, situações e valores
resolvido.
que exigirão do sistema uma validação correta e
um tratamento adequado quando o as funções ²3URMHWRGHVLVWHPD
H[HFXWDUHP WDUHIDV TXH HVWHMDP jV PDUJHQV GR
processamento normal. 1RSURMHWRGHVLVWHPDVVmRGHÀQLGRVDDUTXLWHWXUDGR
- (VWDEHOHFHU DV SULRULGDGHV HQWUH RV sistema; a organização do sistema em subsistemas; a alocação
FRPSURPLVVRV de subsistemas; componentes de hardware ou de software; a
Estabelecer que tarefas deverão ser executadas política e a estratégia que formam o quadro no qual o projeto
primeiro, baseados na necessidade da empresa e nas detalhado poderá ser desenvolvido.
solicitações do usuário.
²3URMHWRGHREMHWR
33URMHWRGHREMHWR 1RSURMHWRGHREMHWRVmRIHLWDVDVGHÀQLo}HVFRPSOHWDV
das classes e associações utilizadas na implementação, assim
$ IDVH GH SURMHWR GH REMHWR GHWHUPLQD DV GHÀQLo}HV como as interfaces e os algoritmos dos métodos utilizados
completas das classes e associações utilizadas na para por em prática as operações.
176 Análise de Sistemas II 40
Vale a pena
9DOHDpena acessar
DEVMEDIA. Análise e projeto orientado a objetos.
Disponível por www em http://www.devmedia.com.br/
curso/analise-e-projeto-orientado-a-objetos/336. Acesso
em 10/10/2013.
UNESP. Projeto orientado a objetos. Disponível por www
em http://www.dcce. ibilce.unesp.br/~ines/cursos/eng_
soft/2006/aula11_ProjetoOrientadoObjeto.pdf. Acesso
em 10/10/2013.
Minhas anotações