• Sonuç bulunamadı

İşletmenin, İşyerinin veya İşin Gereklerinden Kaynaklanan Nedenlerin

II- İşletmeye, İşyerine veya İşe İlişkin Geçerli Nedenler

3- İşletmenin, İşyerinin veya İşin Gereklerinden Kaynaklanan Nedenlerin

A modelagem orientada a objetos tem como meta identificar o melhor conjunto de objetos para descrever um sistema de software e reusar tais objetos quando necessário em outras aplicações (RUMBAUGH e BLAHA, 2006). Um objeto pode ser considerado um conceito, uma abstração ou coisa que representa, através de sua identidade, algum significado para uma aplicação.

Na modelagem orientada a objetos implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Uma classe representa um grupo de objetos semelhantes e que através da especialização e generalização ou, simplesmente, categorização, organiza os objetos por suas semelhanças e diferenças (RUMBAUGH e BLAHA, 2006). Desta maneira, surge o conceito de superclasse e subclasses. Cada classe determina o comportamento (definido nos métodos51) e estados possíveis (atributos) de seus objetos, assim

como o relacionamento com outros objetos. Cada um desses objetos é chamado de instância de sua classe. Segundo Rumbaugh e Blaha (2006), a subclasse herda as características de sua superclasse. E acrescentam que cada instância de uma subclasse é também uma instância da superclasse. Por isso da denominação “é um”, do inglês “is a”, para o relacionamento de generalização. A Figura 15 ilustra uma situação de especialização e generalização entre a superclasse pessoa e suas subclasses cliente e empregado, que por sua vez especializa mais três subclasses: escriturário, caixa e secretária.

50 Através de uma linguagem de banco de dados, a Structure Query Language, conhecida como SQL.

51 São usados para mudar os valores dos atributos do objeto ou retornar valores de atributos de objetos selecionados. A mesma operação pode ser aplicada a diferentes tipos de objetos; em tal situação, um nome de operação pode ser referir a várias implementações distintas, mas logicamente representando a mesma tarefa. Esse procedimento é conhecido como polimorfismo (RUMBAUGH e BLAHA, 2006).

Figura 15 - Modelo representando uma herança entre a classe pessoa e suas subclasses

Fonte: adaptado de Silberschatz, Korth e Sudarshan (2006)

Outras formas de organizar ou classificar objetos podem ser feitas através da agregação e da associação. Na agregação há níveis de abstração do tipo “parte de” em relação à classe. Exemplo: termostatos e compressores são partes de congeladores. Na associação, uma classe tem atributos que associam características comuns a outras classes diferentes. Nessa classificação, certas idéias promovem lembranças de outras idéias relacionadas, como por exemplo: montanhas e pistas estão associadas a esquiar.

Salienta-se nesse ponto a similaridade entre as relações apresentadas e as relações entre conceitos observadas nos instrumentos discutidos nesse trabalho, ontologias e tesauros, por exemplo. As relações de especialização e generalização, de agregação e de associação são similares às utilizadas nos tesauros, conforme foi visto na seção 2.4.3.3.1. Nos tesauros, a especialização e a generalização são representadas respectivamente pelos símbolos TE (termo específico) e TG (termo genérico), a agregação é denominada relação hierárquica partitiva, e a associação é identificada pelo símbolo TR (termo relacionado). Nas ontologias, a especialização e a generalização são relações representadas através de hierarquias de classes, conhecidas como taxonomia. Tais relações, bem como as de agregação e de associação podem ser representadas através de uma linguagem lógica, como a lógica descritiva e a lógica de primeira ordem (USCHOLD, 1996). A lógica de primeira ordem e a lógica descritiva são vistas como possibilidades de tipos de deduções projetadas para auxiliar o usuário a definir um conjunto coerente de conceitos e objetos para descrever o domínio (CRANEFIELD e PURVIS, 1999). Além da similaridade entre as relações, as restrições e as deduções impostas sobre os valores dos atributos dos conceitos, na ontologia, são implementados no modelo orientado a objetos através das assinaturas das classes (representadas pelos métodos).

Generalização Especialização

escriturário caixa secretária

é um pessoa empregad

o

cliente é um um

Na atividade de representação das classes, dos objetos e das relações entre esses objetos, a comunidade de orientação a objetos vem utilizando a linguagem de modelagem unificada, a UML, como técnica de modelagem de sistemas. Pesquisadores das áreas de ontologias e modelagem orientada a objetos (EVANS, 1998; EVANS et al., 1998; CRANEFIELD e PURVIS, 1999; OMG, 2003) vêm agregando esforços em trabalhos que utilizam a UML na especificação de ontologias. Isso se deve ao fato de que, na condução de projetos orientados a objetos, a UML é considerada a técnica de modelagem atualmente mais utilizada por sua facilidade de comunicação através de representação gráfica, e pelo fato de as ontologias possuírem uma semântica mais expressiva em relação à UML na representação de um domínio de conhecimento. Esse cenário é constatado por Campos (2004, p.31) que assinala que a ontologia “[...] utiliza-se da representação gráfica, como uma ferramenta para garantir um projeto lógico mais bem estruturado de um sistema e, para tanto, recorre geralmente à representação gráfica utilizada pelo modelo OO”.

Na seção a seguir a UML é apresentada brevemente no sentido de elucidar possíveis contribuições para as ontologias na concepção de modelos formais e interativos à comunidade de usuários.

2.3.2.2.1 Linguagem de Modelagem Unificada

A UML é sucessora de um conjunto de métodos de análise e projetos baseados em objetos, criado pelos próprios autores da linguagem: Grady Booch, James Rumbaugh e Ivar Jacobson. A linguagem é adotada e recomendada pelo Object Management Group – OMG, um grupo responsável pelos padrões voltados ao paradigma de orientação a objetos. Por possuir uma notação gráfica simples e ser capaz de modelar aspectos estruturais e comportamentais de um sistema é amplamente consolidada na área de Engenharia de Software (PRESSMAN, 2002; SOMMERVILLE, 2007; BOOCH, JACOBSON e RUMBAUGH, 2006).

Furlan (1998, p.38) assinala que a UML é uma linguagem de modelagem e não uma metodologia, pois não explicita os procedimentos de uso da linguagem para construção de softwares, geralmente embutidos numa metodologia.

A UML possui vários diagramas (BOOCH, JACOBSON e RUMBAUGH, 2006). Os diagramas que modelam os aspectos estruturais são os diagramas de classes, diagramas de objetos, diagramas de componentes e os diagramas de desenvolvimento. Os diagramas de

colaboração, diagramas de seqüência, diagramas de casos de uso, diagramas de estados e os diagramas de atividades servem para modelar os aspectos comportamentais de um sistema. A Figura 16 mostra um exemplo de um diagrama de classes sobre um catálogo de CDs de música clássica.

Figura 16 – Exemplo de Diagrama de Classe

Fonte: adaptado de Cranefield e Purvis (1999)

O diagrama de classes mostra um conjunto de classes, interfaces e relacionamentos que é responsável por modelar a parte estática do sistema. A semântica estática consiste em um conjunto de regras que definem diagramas bem formados dentro da linguagem. No exemplo da Figura 16 as classes Indivíduo e Grupo são especializações da classe Intérprete, relacionamento conhecido como generalização; outros tipos de relacionamentos são contemplados no diagrama de classes como o relacionamento de associação entre as classes Gravação e ItemNoCD, que representa uma relação estrutural entre duas classes indicando que estas se comunicam através e troca de mensagens; e o relacionamento de dependência entre a classe ItemNoCD e CD, chamado de relacionamento de agregação, cuja semântica é “parte de”.

A percepção da relação do modelo orientado a objetos para com as ontologias torna-se clara na medida em que ambos buscam representar semanticamente um domínio de conhecimento. O primeiro modelo busca classificar o domínio através de classes e objetos, possibilitando o reuso dos mesmos em outras aplicações. Tais princípios também são

Intérprete Indivíduo Grupo Gravação Gravadora: string ItemNoCD Número: integer Movimentos: Sequence(integer) TrilhaInicial: integer Trilha Número: integer CD Título: string NroCatálogo: integer

-- Especificação de quais trilhas pertencem a qual item

<<invariant>>

self.Trilha[Número].Número = Sequence

(self.TrilhaInicial..self.TrilhaIncial + self.Movimentos->size – 1)

-- Trilhas e números de itens são consecutivos, iniciando em 1 <<invariant>> self.Trilha.Número->includesAll(Sequence(1..self.Trilha->size)) <<invariant>> self.ItemNoCD.Número->includesAll(Sequence(1..self.ItemNoCD->size)) 0.. * 1.. 1..1 0..* 1.. * 1.. 1.. 1.. 1..* 1.. 1 {ordered} {ordered} {ordered}

empregados nas ontologias (NOY e GUINNESS, 2001) quando concebidas para fins de modelagem de domínio.

Dada a similaridade entre os modelos orientados a objetos e as ontologias, a comunidade de orientação a objetos tem despertado para o uso de ontologias através da UML em conjunto com a sua linguagem de restrição de objetos denominada OCL - Object Constraint Language (ERIKSSON e PENKER, 1998). A OCL52 foi desenvolvida para preencher a necessidade existente na UML de representar, formalmente, restrições adicionais sobre os objetos do modelo. A linguagem restringe valores de atributos e possíveis instâncias de um relacionamento, além de especificar procedimentos para verificação de integridades. A Figura 16 mostra dois exemplos de restrições em OCL vinculadas às classes CD e ItemNoCd. A especificação desta última restringe as possíveis instâncias no relacionamento de agregação entre Trilhas e Itens. A palavra-chave self indica uma instância; a palavra sequence, um tipo de lista ordenada e size é uma função que retorna o número de elementos de uma seqüência da lista ordenada.

A UML e a OCL ainda não possuem uma semântica formal. A OMG fornece uma descrição informal em linguagem natural (CRANEFIELD e PURVIS, 1999). Entretanto, pesquisadores vêm propondo diferentes formas semânticas para UML: modelo matemático direto (BREU et al, 1997); descrição utilizando a linguagem de especificação Z (EVANS et al, 1998); definição de uma semântica formal, bem como de regras de transformação dedutivas para provar que um diagrama é conseqüência de outro (EVANS, 1998); operações semânticas descrevendo como um modelo UML se envolve com outros elementos (OVERGAARD, 1998); e semântica para OCL nos diagramas de classes tem sido proposta por RICHTERS e GOGOLLA (1998).

Ressalta-se a importância da semântica na especificação de modelos para a representação de conhecimento, podendo ser alcançada através do uso de ontologias; e a facilidade na forma de representação gráfica proporcionada pela UML, viabilizando a interação entre comunidades de usuários e projetos de sistemas de informações. Iniciativas fundamentais na junção das comunidades de orientação a objetos e ontologias encontram-se num patamar evolutivo, como é o caso da especificação de ontologias DAML-OIL (LOCKHEED, 2000) e ontologias OWL (BROCKMANS e HAASE, 2006; OMG, 2003) em UML, no contexto da Web Semântica.

Na próxima seção, as ontologias são apresentadas com maior detalhe, de forma a elucidar as relações entre a representação de conhecimento e os modelos semânticos.