Você está na página 1de 90
Introducaéo Modelagem e projeto orientados a objetos é um modo de pensar respeito dos problemas aplicando-se modelos organizados em torno de conceitos do mundo real. A construcdo fundamental ¢ 0 objeto, que combina estrutura de dados e comportamento. Os modelos orientados a objetos sao titeis para entender problemas, comunicar-se com especialistas de aplicacao, modelar empresas, preparar documentacdo e projetar programas e bancos de dados. Este livro apresenta uma notaco e um processo orientados a objetos que se es- tendem desde a analise até o projeto e sua implementacdo. A mesma notacao se aplica a todos os estagios do processo, enquanto o desenvolvimento prossegue EE] 0 Que E Orientagao a Objetos? Superficialmente, 0 termo orientado a objetos (OO) significa que organizamos 0 software ‘como uma cole¢ao de objetos distintos, que incorporam estrutura de dados e comporta- mento. Isso € diferente das técnicas de programacdo anteriores, nas quais a estrutura de dados e 0 comportamento estio pouco conectados. Existe uma disputa sobre as caracte- risticas exatas exigidas por um enfoque OO, mas elas geralmente incluem quatro aspec- tos: identidade, classificagéo, heranga e polimorfismo. Identidade significa que os dados sAo quantizados em entidades distintas e distingui- veis, chamadas objetos. O primeiro pardgrafo deste capitulo, minha estacao de trabalho ea rainha branca em um jogo de xadrez sio exemplos de objetos. A Figura 1.1 mostra alguns objetos adicionais. Os objetos podem ser concretos, como um arquivo em um sistema de arquivos, ou conceituais, como uma politica de escalonamento em um sistema operacional com multiprocessamento. Cada objeto tem sua propria identidade inerente, Em outras palavras, dois objetos sao distintos mesmo que todos os seus valores de atributos (como nome e tamanho) sejam idénticos. No mundo real, um objeto simplesmente existe, mas, em uma linguagem de progra- macio, cada objeto possui uma referéncia tinica pela qual ele pode ser acessado. As lin- guagens implementam a referéncia de varias maneiras, como endereco, indice de vetor ou um ntimero artificial. Essas referencias dos objetos sao uniformes e independentes do contetido dos objetos, permitindo a criagdo de colecdes mistas de objetos, tal como um diretério do sistema de arquivos, que contém tanto arquivos como subdiretorios. Classificacdo significa que os objetos com a mesma estrutura de dados (atributos) comportamento (operacées) séo agrupados em uma classe. Pardgrafo, Monitor e PecaDe- 2 — Modelagem e Projetos Baseados em Objetos com UML ELSEVIER nome da variével umCrédito enderego 419090007 13537168 = Cor 56826358 tmaPoupanca | 45208128 \ umDébito. umaConta uma tabela de simbolos uma drvore bindria um monitor bicicleta de Marcos Objetos. Os objetos estéo no centro da tecnologia orientada a objetos. Xadrez sao exemplos de classes, Uma classe € uma abstracdo que descreve propriedades importantes para uma aplicacao ¢ ignora as demais. Qualquer escolha de classes € arbitra- ria e depende da aplicacao. Cada classe descreve um conjunto possivelmente infinito de objetos individuais. Cada objeto € considerado uma instancia de sua classe. Um objeto tem seu proprio va- lor para cada atributo, mas compartilha os nomes de atributo e as operacoes com outras instancias da classe. A Figura 1.2 mostra duas classes e algumas de suas respectivas ins- tancias. Um objeto contém uma referéncia implicita a sua propria classe; ele “sabe que tipo de coisa ele é” Heranga é 0 compartilhamento de atributos e operacdes (recursos) entre classes com base em um relacionamento hierarquico. Uma superclasse possui informacoes gerais que as subclasses refinam e claboram. Cada subclasse incorpora ou herda todos os recursos de sua superclasse e acrescenta seus proprios recursos exclusivos. As subclasses nao precisam repetir os recursos da superclasse. Por exemplo, JanelaRolante e JanelaFixa sto subclasses de Janela. As duas subclasses herdam os recursos de Janela, como uma regido vistvel na tela. JanelaRolante acrescenta uma barra de rolagem e um deslocamento. A capacidade de apro- veitar recursos comuns de varias classes em uma superclasse pode reduzir bastante a repe- tigdo dentro de projetos e programas, e é uma das principais vantagens da tecnologia OO. Polimorfismo significa que a mesma operacao pode se comportar de forma diferente para diferentes classes. A operacéo mover, por exemplo, se comporta de formas diferentes para um pedo e para a rainha em um jogo de xadrez. Uma operacao é um procedimento ou transformacao que um objeto realiza ou a que esta sujeito. AlinharDireita, exibir e mo- ver sio exemplos de operacdes. Uma implementacao de uma operacao por uma classe es- pecifica é chamada de método. Como uma operacao OO € polimérfica, ela pode ter mais de um método que a implementa, um para cada classe de objeto diferente. No mundo real, uma operacdo € simplesmente uma abstracao de um comportamento semelhante para diferentes tipos de objetos. Cada objeto “sabe como” realizar suas pré- prias operacdes. Contudo, em uma linguagem de programacao OO, a linguagem selecio- FLSEVIER Intodugao = 3 Objetos bicicleta Classe bicicleta rx tos tamanho do quadro tamanho da roda ES abstrair ntimero de marchas Operagdes reparar Objetos poligono Classe poligono Atributos vertices cor da borda abstrair cor interna para Operagées desenhar apagar mover Objetos e classes. Cada classe descreve um conjunto possivelmente infinito de objetos individuais. na automaticamente o método correto para implementar uma operagdo, com base no nome da operacao e na classe do objeto que esta sendo operado. O usuario de uma opera- do nao precisa estar ciente de quantos métodos existem para implementar determinada operacao polimsrfica, Os desenvolvedores podem acrescentar novas classes sem alterar 0 cédigo existente, desde que oferecam métodos para cada operagao aplicavel. FA. 0 Que E Desenvolvimento 00? Este livro trata do desenvolvimento OO como um meio de pensar a respeito do software com base em abstragdes que existem no mundo real, ¢ também no programa. Nesse con- texto, desenvolvimento refere-se ao ciclo de vida do software: anélise, projeto e im- plementacao. A esséncia do desenvolvimento OO € a identificacdo e a organizacao de con- ceitos da aplicacao, em vez de sua representacio final em uma linguagem de programa- cao. Brooks observa que a parte dificil do desenvolvimento de software € a manipulagao de sua essencia, devido a complexidade inerente do problema, em vez das especificidades de seu mapeamento para uma linguagem em particular [Brooks-95] Embora este livro nao enfoque explicitamente a integracdo, a manutengao e a melho- ria de um software, um projeto limpo em uma notacao precisa facilita todo o seu ciclo de vida. Os conceitos e a notacao OO usados para expressar um projeto também oferecem uma documentagio titil.

Você também pode gostar