• Sonuç bulunamadı

3.3. Doğrudan Yatırım Ekonomik Büyüme İlişkisi

3.3.1. Doğrudan Yabancı Yatırımlar ve Ekonomik Büyüme İlişkisine Yönelik

3.3.1.4. İçsel Büyüme Modeli

ajuda na instanciação da permite implementar Linguagem de

Padrões Framework Aplicação

dá suporte a permite projetar

usando

Domínio específico

Figura 2.2: Relacionamento entre Linguagens de Padr˜oes, Frameworks e Aplicac¸˜oes

2.3

Padr ˜oes de An ´alise e Linguagens de Padr ˜oes Rele-

vantes

Dezenas de padr˜oes de an´alise tˆem sido propostos nos ´ultimos anos, sendo que os primeiros a surgir foram os de Coad (1992), ´uteis principalmente para o desenvolvimento de sistemas de informac¸˜ao. Alguns anos depois, Coad reuniu esses padr˜oes a outros vinte e quatro, publicando-os em um livro que cont´em, al´em dos padr˜oes, in´umeras estrat´egias a serem utilizadas no desenvolvimento de sistemas desse dom´ınio (Coad et al., 1997). Cada estrat´egia ´e um plano de ac¸˜ao objetivando o cumprimento de um objetivo espec´ıfico. Como exemplo de estrat´egia, pode-se citar a estrat´egia “Servic¸os B´asicos”. Ela sugere que se evite mostrar, no modelo de objetos, os servic¸os b´asicos da classe, como por exemplo: atribuir, recuperar, adicionar, remover, criar, inicializar e remover o objeto. Cada padr˜ao de Coad ´e um gabarito (do inglˆestemplate) a ser seguido durante a construc¸˜ao

do modelo de an´alise do sistema. Os trinta e um padr˜oes s˜ao agrupados em cinco fam´ılias de padr˜oes: padr˜oes fundamentais, padr˜oes de transac¸˜ao, padr˜oes agregados, padr˜oes de planejamento e padr˜oes de interac¸˜ao. Coad define ainda padr˜ao de modelo de objetos como um gabarito de objetos com responsabilidades e interac¸˜oes t´ıpicas, de modo que esse gabarito pode ser aplicado in´umeras vezes, por analogia. Embora em seu primeiro artigo, Coad utilize um formato pr´e- definido para descrever seus padr˜oes, no livro ele apresenta os padr˜oes apenas consistindo de um nome, um diagrama com a soluc¸˜ao proposta e exemplos em forma textual, n˜ao havendo explicac¸˜ao sobre os componentes do padr˜ao. A forma de utilizac¸˜ao dos padr˜oes e das estrat´egias ´e ilustrada por

2.3 Padr˜oes de An´alise e Linguagens de Padr˜oes Relevantes 21 meio de exemplos. No total s˜ao cinco exemplos de sistemas de neg´ocio, nos quais, a partir da coleta da especificac¸˜ao, deriva-se o modelo de an´alise utilizando estrat´egias e padr˜oes. Como exemplo de um padr˜ao de Coad, pode-se citar o “Estado atrav´es de uma colec¸˜ao” (do inglˆesState across a collection) que resolve um problema comum em sistemas orientados a objetos, o de agregac¸˜oes,

no qual uma super-classe possui atributos que s˜ao compartilhados pelas subclasses. Outro padr˜ao proposto por Coad e posteriormente reescrito (Coad et al., 1997; Johnson e Woolf, 1998)17 ´e o

“Item-Descric¸˜ao” (do inglˆes Item-Description). Contudo, a vers˜ao proposta por Johnson e Woolf

encontra-se especificada em maior n´ıvel de detalhe e utilizando o formato GoF (ver sec¸˜ao 2.2.1), o que ´e importante para facilitar a aplicac¸˜ao do padr˜ao. O problema resolvido por esse padr˜ao ´e o de uma classe com diversos tipos, que podem variar em tempo de execuc¸˜ao. A soluc¸˜ao ´e agrupar os atributos comuns em uma classe chamada “Classe” e criar uma outra classe denominada “Classe Tipo” para conter os tipos. Os objetos da classe “Classe” possuem uma referˆencia a algum dos objetos da classe “Classe Tipo”.

Outros dois trabalhos co-relacionados e de importˆancia na ´area de padr˜oes de an´alise s˜ao os de Hay (1996) e de Fowler (1997). Ambos foram escritos na mesma ´epoca e apresentam modelos l´ogicos de dados que s˜ao utilizados em in´umeros sistemas de neg´ocios, tendo sido derivados a par- tir da experiˆencia pr´atica dos autores. Hay apresenta dezenas de modelos entidade-relacionamento para solucionar problemas na ´area de neg´ocios e entidades governamentais. Entre eles pode- se enumerar diversos modelos que pertencem especificamente `a gest˜ao de recursos de neg´ocios, como por exemplo: ordens de servic¸o, produtos, compra e venda. Fowler apresenta setenta e seis padr˜oes que, segundo o autor, “refletem estruturas conceituais de processos de neg´ocios, ao inv´es de implementac¸˜oes reais de software”. Os padr˜oes est˜ao divididos em grupos, de acordo com os dom´ınios de neg´ocio. Dentre os grupos relacionados ao dom´ınio de gest˜ao de recursos de neg´ocios est˜ao o grupo “Responsabilidade” (do inglˆesAccountability), o grupo “Planejamento”, para o pla-

nejamento e uso de recursos e o grupo “Comercializac¸˜ao”, para lidar com a compra e venda de bens, com ˆenfase na mudanc¸a de valor desses bens de acordo com as condic¸˜oes de mercado.

Tanto Hay quanto Fowler utilizam formatos pr´oprios para documentac¸˜ao dos padr˜oes. Fowler afirma que um formato fixo traz desvantagens, pois um par “problema-soluc¸˜ao” nem sempre ´e adequado a todo padr˜ao. Ele usa um texto para descrever o contexto de aplicac¸˜ao do padr˜ao, em geral mostrando exemplos pr´aticos e soluc¸˜oes na forma de diagramas. Hay n˜ao chega a justificar o formato utilizado em termos dos formatos usualmente seguidos pela comunidade de padr˜oes. Ele documenta os modelos por meio de uma descric¸˜ao do contexto de utilizac¸˜ao, mostra o diagrama entidade-relacionamento da soluc¸˜ao, descreve os participantes, o racioc´ınio que levou `a soluc¸˜ao e indica os padr˜oes relacionados.

17Johnson e Woolf (1998) o definiram sob o nome de “Objeto-Tipo” (do inglˆesType-Object) e o pr´oprio autor o re-definiu como “Item-Item Espec´ıfico” (Coad et al., 1997)

2.3 Padr˜oes de An´alise e Linguagens de Padr˜oes Relevantes 22 Outros padr˜oes de an´alise que podem ser citados s˜ao os de Boyd (1998) e os de Fernandez (Fer- nandez, 2000; Fernandez e Yuan, 1999; Fernandez et al., 2000). Boyd descreve padr˜oes para repre- sentar a associac¸˜ao entre objetos em sistemas de neg´ocios. S˜ao eles: o padr˜ao “Objeto-Associac¸˜ao” (do inglˆesAssociation-Object), o padr˜ao “Contato com o Cliente” (do inglˆes Customer Contact) e

o padr˜ao “Pedido em trˆes n´ıveis” (do inglˆes3-Level Order). Eles s˜ao comumente encontrados em

sistemas de informac¸˜ao, j´a que representam algo que acontece em um ponto espec´ıfico do tempo associando dois ou mais objetos.

Fernandez e outros autores prop˜oem diversos padr˜oes de an´alise para sistemas no dom´ınio de neg´ocios. O padr˜ao de an´alise “Reserva e Uso de Entidades Reus´aveis” (Fernandez e Yuan, 1999) descreve a realizac¸˜ao de uma reserva para uma entidade reus´avel e sua subsequente utilizac¸˜ao. Tal padr˜ao possui diversas semelhanc¸as com o padr˜ao “Resource Location”, apresentado pela autora desta tese anteriormente (Braga et al., 1998). Tamb´em ´e equivalente `a aplicac¸˜ao dos padr˜oes “Locar o Recurso” e “Reservar o Recurso” da linguagem de padr˜oes para Gest˜ao de Recursos de Neg´ocios, apresentada no Cap´ıtulo 3. O termo “Entidade”, utilizado por Fernandez e Yan, equivale ao termo “Recurso” utilizado pela autora em seus trabalhos (Braga et al., 1998, 1999).

Os padr˜oes “Pedido” (do inglˆesOrder) e “Expedic¸˜ao” (do inglˆes Shipment) (Fernandez et al.,

2000) descrevem como o cliente efetua um pedido de um produto e como ´e feito seu subsequente despacho. Esses padr˜oes s˜ao aplicac¸˜oes espec´ıficas do padr˜ao “Resource Trade”, tamb´em apresen- tado pela autora desta tese anteriormente (Braga et al., 1998) e equivalem `a aplicac¸˜ao dos padr˜oes “Comercializar o Recurso” e “Itemizar a Transac¸˜ao do Recurso” da linguagem de padr˜oes para Gest˜ao de Recursos de Neg´ocios apresentada no Cap´ıtulo 3. Cabe observar que todos esses padr˜oes j´a s˜ao instanciac¸˜oes particulares de padr˜oes de neg´ocios mais gen´ericos propostos por Coad (1992) e Boyd (1998). Essas instanciac¸˜oes visam especializar os padr˜oes para um n´ıvel de abstrac¸˜ao mais baixo, sem contudo chegar a um dom´ınio espec´ıfico. O padr˜ao “Gerenciador de Estoque” (do inglˆesStock Manager) (Fernandez, 2000) ´e um padr˜ao de an´alise para sistemas de invent´ario, que

controla a quantidade e localizac¸˜ao de itens em estoque, atualizando essas quantidades de acordo com os diferentes est´agios de manufatura ou produc¸˜ao, desde o pedido de componentes at´e o des- pacho do produto. Esse padr˜ao engloba alguns outros padr˜oes existentes, como o Objeto-Tipo (Johnson e Woolf, 1998) e o Recipiente-Contexto (Coad et al., 1997).

Embora in´umeras linguagens de padr˜oes tenham surgido na ´ultima d´ecada, poucas s˜ao as que podem ser aplicadas a sistemas de neg´ocios, entre as quais pode-se citar: a linguagem de padr˜oes “Checagem de integridade da Informac¸˜ao” (Cunningham, 1995), que fornece diretrizes sobre como fazer checagem nas entradas de dados para separar dados inv´alidos de dados v´alidos e assegurar que o menor n´umero poss´ıvel de dados inv´alidos seja registrado; a linguagem de padr˜oes “Atra- vessando Abismos” (Brown e Whitenack, 1996), que auxilia na construc¸˜ao de aplicac¸˜oes orien- tadas a objetos que utilizam persistˆencia em base de dados relacional; e a linguagem de padr˜oes

2.4 Frameworks Relevantes na ´area de Neg´ocios 23