960 resultados para Orientacao : Objetos


Relevância:

70.00% 70.00%

Publicador:

Resumo:

Independentemente do modelo de programação adotado, no projeto e implementação de aplicações de alta disponibilidade, faz-se necessário usar procedimentos de tolerância a falhas. Dentre as atividades que trazem consigo interesse de pesquisa na área de Tolerância a Falhas, estão os mecanismos de recuperação em um sistema computacional. Do ponto de vista prático, estes mecanismos buscam manter próximo do mínimo o tempo total de execução de aplicações computacionais de longa duração, ao mesmo tempo em que as preparam para não sofrerem perdas significativas de desempenho, em caso de falhas. Paralelamente à evolução dos sistemas computacionais, foi possível observar também a evolução das linguagens de programação, principalmente as que utilizam o paradigma orientado a objetos. O advento da área de tolerância a falhas na orientação a objetos resultou em novos problemas na atividade de recuperação quanto aos mecanismos de salvamento de estados e retomada da execução, principalmente no que se refere às dificuldades de gerenciamento e controle sobre a alocação de objetos. Entretanto, observa-se que a complexidade de implementação dos mecanismos de recuperação, por parte dos programadores, exige deles conhecimentos mais especializados para o salvamento dos estados da aplicação e para a retomada da execução. Portanto, a simplificação do trabalho do programador, através do uso de uma biblioteca de checkpointing que implemente os mecanismos de salvamento de estados e recuperação é o ponto focal deste trabalho. Diante do contexto exposto, nesta dissertação, são definidas e implementadas as classes de uma biblioteca que provê mecanismos de checkpointing e recuperação. Esta biblioteca, denominada de Libcjp, visa aprimorar o processo de recuperação de aplicações orientadas a objetos escritas na linguagem de programação Java. Esta linguagem foi escolhida para implementação devido à presença dos recursos de persistência e serialização. Para a concepção do trabalho, são considerados ambos os cenários no paradigma orientado a objetos: objetos centralizados e distribuídos. São utilizados os recursos da API de serialização Java e a tecnologia Java RMI para objetos distribuídos. Conclui-se o trabalho com a ilustração de casos de uso através de diversos exemplos desenvolvidos a partir de seus algoritmos originais inicialmente, e incrementados posteriormente com os mecanismos de checkpointing e recuperação. Os componentes desenvolvidos foram testados quanto ao cumprimento dos seus requisitos funcionais. Adicionalmente, foi realizada uma análise preliminar sobre a influência das ações de checkpointing nas características de desempenho das aplicações.

Relevância:

70.00% 70.00%

Publicador:

Resumo:

Este trabalho aborda o tema da geração de sistemas supervisórios a partir de modelos orientados a objetos. A motivação para realização do trabalho surgiu com o estudo de sistemas supervisórios e de ferramentas de suporte à modelagem de sistemas usando orientação a objetos. Notou-se que nos primeiros, apesar de possuírem como principal objetivo a visualização de estados e grandezas físicas relacionadas a componentes de plantas industriais (nível de um tanque, temperatura de um gás, por exemplo), os modelos computacionais utilizados baseiam-se em estruturas de dados não hierárquicas, nas quais variáveis de contexto global e não encapsuladas, as chamadas “tags”, são associadas às grandezas físicas a serem visualizadas. Modelos orientados a objeto, por outro lado, constituem uma excelente proposta para a criação de modelos computacionais nos quais a estrutura e semântica dos elementos de modelagem é bastante próxima a de sistemas físicos reais, facilitando a construção e compreensão dos modelos. Assim sendo, a proposta desenvolvida neste trabalho busca agregar as vantagens do uso de orientação a objetos, com conceitos existentes em sistemas supervisórios, a fim de obter-se ferramentas que melhor auxiliem o desenvolvimento de aplicações complexas. Classes e suas instâncias são usadas para modelagem de componentes da planta industrial a ser analisada. Seus atributos e estados são associados às grandezas físicas a serem visualizadas. Diferentes formas de visualização são associadas às classes, aumentando assim o reuso e facilitando o desenvolvimento de sistemas supervisórios de aplicações complexas. A proposta conceitual desenvolvida foi implementada experimentalmente como uma extensão à ferramenta SIMOO-RT, tendo sido denominada de “Supervisory Designer”. A ferramenta desenvolvida estende o modelo de objetos e classes de SIMOO-RT, permitindo a adição de informações específicas para supervisão – tais como as definições de limites para os atributos. A ferramenta foi validada através do desenvolvimento de estudos de casos de aplicações industriais reais, tendo demonstrado diversas vantagens quando comparada com o uso de ferramentas para construção de sistemas supervisórios disponíveis comercialmente).

Relevância:

70.00% 70.00%

Publicador:

Resumo:

Este trabalho realiza um estudo sobre a criação de sistemas tempo-real usando orientação a objetos, com enfoque no mapeamento de especificações para linguagens de programação. O paradigma de orientação a objetos tem sido usado nas diferentes fases relacionadas com o desenvolvimento de sistemas tempo-real, variando desde a modelagem até o ambiente de programação e execução, mas atualmente estas iniciativas ainda focam etapas isoladas do ciclo de desenvolvimento. O objetivo deste trabalho é o de preencher esta lacuna, propondo um mapeamento entre uma metodologia ou ferramenta de análise e projeto de sistemas tempo-real orientados a objetos e uma linguagem ou ambiente de desenvolvimento baseado no paradigma de orientação a objetos que possua suporte para atender às restrições temporais especificadas. O mapeamento proposto foi desenvolvido utilizando estudos de caso clássicos em aplicações tempo-real que foram baseados em dois recentes padrões. O primeiro é o emergente padrão Real-Time UML, que visa realizar a especificação de requisitos temporais utilizando diagramas UML com extensões que os representem. O outro padrão é o Real-Time Specification for Java, que consiste de uma interface de programação (API) para desenvolvimento de aplicações tempo-real com a linguagem Java. O relacionamento entre stereotypes e tags usados para representar restrições temporais em diagramas UML e o código Java correspondente é explicado e um sumário da estratégia de mapeamento é discutido.

Relevância:

70.00% 70.00%

Publicador:

Resumo:

O crescente aumento pela exigência de funcionalidades na implementação dos atuais sistemas de automação predial, vem provocando um aumento da complexidade de projeto e de gerenciamento desses sistemas. O grande desafio que se apresenta atualmente é como, a partir de dispositivos isolados e subsistemas, conseguir sistemas totalmente integrados, os quais permitam economia no investimento inicial, na operação e na manutenção dos sistemas de automação, garantindo um aumento no desempenho geral da edificação Acredita-se que uma etapa importante para avaliar a real necessidade da integração seja projetar o sistema de automação sem foco em uma tecnologia específica, o que não ocorre atualmente, uma vez que, pela carência de ferramentas de apoio ao projeto, as etapas de especificação e projeto geralmente já estão focadas em uma tecnologia disponível para implementação. Este trabalho busca preencher a lacuna deixada pela carência dessas ferramentas, tendo por finalidade a especificação de um framework orientado a objetos para o desenvolvimento de aplicações de automação predial e residencial que permita modelar estes sistemas de forma independente da tecnologia que ele irá utilizar, possibilitando o mapeamento posterior para a mais adequada ou disponível. Serviram como base para o framework proposto a análise de vários padrões abertos disponíveis para implementação de sistemas de automação predial e a especificação ISO/IEC10746, o modelo de referência para processamento distribuído aberto, usado como suporte a metodologia de projeto proposta. O trabalho também discute o mapeamento dos conceitos definidos para uma arquitetura alvo, apresentado um estudo de caso para validação da metodologia proposta.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

O modelo de objetos apresenta-se como um modelo promissor para o desenvolvimento de software tolerante a falhas em virtude de características inerentes ao próprio modelo de objetos, tais como abstração de dados, encapsulamento, herança e reutilização de objetos (componentes). O uso de técnicas orientadas a objetos facilita o controle da complexidade do sistema porque promove uma melhor estruturação de seus componentes e também permite que componentes já validados sejam reutilizados [LIS96]. Técnicas básicas para tolerância a falhas em software baseiam-se na diversidade de projeto e de implementação de componentes considerados críticos. Os componentes diversitários são gerenciados através de alguma técnica que tenha por objetivo assegurar o fornecimento do serviço solicitado, como, por exemplo, a conhecida técnica de blocos de recuperação. Reflexão Computacional é a capacidade que um sistema tem de fazer computações para se auto analisar. Ela é obtida quando o programa pára sua execução por um período de tempo para fazer computações sobre si próprio; analisa seu estado, se o processamento está correto, se pode prosseguir com a execução e atingir o objetivo satisfatoriamente; se não precisa mudar de estratégia ou algoritmo de execução, fazendo, ainda, processamentos necessários para o sucesso da execução. Um sistema de programação distribuída consiste basicamente em vários aplicativos executados em diferentes computadores, os quais realizam troca de mensagens para solucionar um problema comum. A comunicação entre os computadores é realizada através da rede que os interliga. As Redes que controlam sistemas críticos são normalmente de pequena escala pois redes de grandes dimensões podem apresentar atrasos e baixa confiabilidade. Portanto, a abordagem aqui proposta consiste em utilizar, em um ambiente distribuído, uma arquitetura reflexiva aliada a técnicas do domínio da tolerância a falhas para promover a separação entre as atividades de controle, salvamento, recuperação, distribuição e validação de componentes e as funcionalidades executadas pelo próprio componente, a fim de que falhas não venham a prejudicar a disponibilidade, confiabilidade e clareza de determinadas computações. A proposta apóia-se num estudo de caso, implementado na linguagem de programação Java, com seus protocolos de reflexão computacional e de comunicação.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Neste trabalho é proposta uma biblioteca de classes para sistemas de manufatura que visa facilitar a construção de modelos de simulação, permitindo o reuso e a agilizando a modelagaem. A principal característica deste trabalho é sua abordagem que difere da maioria dos trabalhos correlatos na área. Ela baseia-se na utilização de conceitos de produção bastante conhecidos atualemnte, como os roteiros e atividades de produção. Isto permite a criação de novas simulações muito mais rapidamente do que em outras metodologias, já que não são necessárias traduções compelxas entre a realidade e as aplicações simuladas. A biblioteca desenvolvida foi validade com a aplicação dos conceitos à modelagem de uma linha de produção de pontas de eixo para tratores, produzidos pela empresa Pigozzi S/A. ALém disso, o trabalho discute a possibilidade de integração entre a biblioteca de classes proposta e a ferramente de simulação de sistemas de manufatura Automod. A simulação do estudo de caso da linha de produção de pontas de eixo, modelada tanto no Automod quanto na biblioteca de classes proposta, permitiu uma comparação quantitativa, o que viabilizou a validação este trabalho.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Um dos requisitos naturais na modelagem de diversas aplicações na área de banco de dados é a utilização de um mecanismo para controle de versões. Esse mecanismo fornece suporte a um processo evolutivo. Tal suporte permite armazenar os diferentes estágios de uma entidade em tempos distintos, ou sob diferentes pontos de vista. Estudos recentes nessa área mostram a importância de incorporar ao modelo conceitual de banco de dados, um mecanismo para auxiliar no controle da evolução de versões. A evolução de versões apresenta problemas principalmente quando ocorre em uma hierarquia de composição. Por exemplo, se existem objetos compostos fazendo referência à objetos componentes que representam versões, então modificações nos componentes podem causar alterações nos objetos que os referenciam. Normalmente as ações relativas a essas modificações são a notificação ou a propagação de mudanças. Algumas propostas adicionam mecanismos de notificação e propagação ao modelo conceitual utilizado por aplicações não convencionais. Isso é importante porque mecanismos deste tipo auxiliam no controle da integridade de dados e na divulgação de informações sobre as mudanças realizadas no banco de dados. O objetivo do trabalho aqui descrito é apresentar um mecanismo de notificação e propagação, que trata da evolução de dados, para um modelo de versões. É definido um modelo de classes com propriedades e operações que permitem manter e manipular subscrições de eventos referentes à evolução de objetos e versões e reagir diante da ocorrência destes eventos. Para atender os requisitos das diferentes aplicações, esta proposta especifica três estratégias. Cada uma delas apresenta diferentes funcionalidades: notificação ativa (enviar mensagens sobre mudanças ocorridas); notificação passiva (armazenar informações sobre mudanças ocorridas) e propagação (alterar o conteúdo do banco de dados automaticamente). Para validar o mecanismo proposto, uma implementação é apresentada para o sistema Oracle 8.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

No projeto de arquiteturas computacionais, a partir da evolução do modelo cliente-servidor, surgiram os sistemas distribuídos com a finalidade de oferecer características tais como: disponibilidade, distribuição, compartilhamento de recursos e tolerância a falhas. Estas características, entretanto, não são obtidas de forma simples. As aplicações distribuídas e as aplicações centralizadas possuem requisitos funcionais distintos; aplicações distribuídas são mais difíceis quanto ao projeto e implementação. A complexidade de implementação é decorrente principalmente da dificuldade de tratamento e de gerência dos mecanismos de comunicação, exigindo equipe de programadores experientes. Assim, tem sido realizada muita pesquisa para obter mecanismos que facilitem a programação de aplicações distribuídas. Observa-se que, em aplicações distribuídas reais, mecanismos de tolerância a falhas constituem-se em uma necessidade. Neste contexto, a comunicação confiável constitui-se em um dos blocos básicos de construção. Paralelamente à evolução tanto dos sistemas distribuídos como da área de tolerância a falhas, foi possível observar também a evolução das linguagens de programação. O sucesso do paradigma de orientação a objetos deve-se, provavelmente, à habilidade em modelar o domínio da aplicação ao invés da arquitetura da máquina em questão (enfoque imperativo) ou mapear conceitos matemáticos (conforme o enfoque funcional). Pesquisadores demonstraram que a orientação a objetos apresenta-se como um modelo atraente ao desenvolvimento de aplicações distribuídas modulares e tolerantes a falhas. Diante do contexto exposto, duas constatações estimularam basicamente a definição desta dissertação: a necessidade latente de mecanismos que facilitem a programação de aplicações distribuídas tolerantes a falhas; e o fato de que a orientação a objetos tem-se mostrado um modelo promissor ao desenvolvimento deste tipo de aplicação. Desta forma, nesta dissertação definem-se classes para a comunicação do tipo unicast e multicast, nas modalidades de envio confiável e não-confiável. Além destes serviços de comunicação básicos, foram desenvolvidas classes que permitem referenciar os participantes da comunicação através de nomes. As classes estão organizadas na forma de um pacote, compondo um framework. Sua implementação foi desenvolvida usando Java. Embora não tivessem sido requisitos básicos, as opções de projeto visaram assegurar resultados aceitáveis de desempenho e possibilidade de reuso das classes. Foram implementados pequenos trechos de código utilizando e testando a funcionalidade de cada uma das classes de comunicação propostas.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

A atividade de teste constitui uma fase de grande importância no processo de desenvolvimento de software, tendo como objetivo garantir um alto grau de confiabilidade nos produtos desenvolvidos. O paradigma da Orientação a Objetos (OO) surgiu com o objetivo de melhorar a qualidade bem como a produtividade no desenvolvimento de aplicações. Entretanto, apesar do aumento constante de aceitação do paradigma OO pela indústria de software, a presença de algumas de suas características torna a atividade de teste de programas neste paradigma mais complexa do que o teste de sistemas tradicionais. Entre estas características cita-se a herança, o encapsulamento, o polimorfismo e a ligação dinâmica [EIS 97] [PRE 95] [UNG 97]. Algumas técnicas estão sendo implementadas para auxiliarem a atividade de teste através do uso da tecnologia de reflexão computacional [HER 99]. Estas técnicas permitem a realização de análises de aspectos dinâmicos dos programas, sem a necessidade de instrumentar o código-fonte das aplicações que estão sendo monitoradas. Com o objetivo de auxiliar o processo de teste de programas orientados a objetos, este trabalho aborda o desenvolvimento de uma ferramenta, a qual automatiza parcialmente o teste de programas escritos em Java. A ferramenta evidencia o teste de estados fazendo uso da tecnologia de reflexão computacional. Através da especificação de asserções, feitas pelo usuário da ferramenta, na forma de invariantes de classe, pré e pós-condições de métodos, é possível verificar a integridade dos estados dos objetos durante a execução do programa em teste. A ferramenta possibilita também, armazenar a seqüência de métodos chamados pelos objetos da aplicação em teste, tornando possível ao testador, visualizar o histórico das interações entre os objetos criados no nível-base.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Na área de Engenharia de Software, há vários modelos formais de especificação orientado a objetos (OO). Um destes é o OO-Method / OASIS. OO-Method se baseia nos seguintes princípios: - dar suporte às noções do modelo conceitual orientado a objetos; - integrar os modelos formais com metodologias de aceitação industrial; - possibilitar a produção de software avançado que inclua a geração completa de código (estática e dinâmica) do desenvolvimento comercial. O processo de desenvolvimento consiste em levantar as propriedades principais do sistema em desenvolvimento (modelo conceitual) por parte do engenheiro de software, e construir de forma automática, em qualquer momento (por um processo de conversão gráfico-textual) a especificação formal orientada a objetos em OASIS (Open and Active Specifications of Information System) que constituirá um repositório de alto nível do sistema. O objetivo de OASIS é expressar os requisitos funcionais de um sistema de informação, em um marco formal, que facilite sua validação e geração automática de programas. OASIS não inclui a especificação de aspectos temporais. A modelagem de aspectos temporais é um importante tópico da modelagem de sistemas de informação, porque através destes são representadas as características dinâmicas das aplicações e a interação temporal entre diferentes processos. A especificação de requisitos de aplicações através de modelos orientados a objetos permite representar não só os seus estados, mas também, seu comportamento. Modelos temporais representam também a evolução de objetos com o tempo. Como o estado de um objeto pode ser alterado devido à ocorrência de um evento (fato ocorrido em um determinado instante no tempo), é importante que o modelo utilizado permita apresentar a história destes eventos. O presente trabalho tem por finalidade propor uma extensão temporal a um modelo formal de especificação OO. Esta extensão inclui tanto aspectos estáticos quanto dinâmicos. A extensão de aspectos estáticos estende OASIS com atributos temporais. A extensão dos aspectos dinâmicos, contribuição central do trabalho, estende OASIS com eventos temporais.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

A computação de tempo real é uma das áreas mais desafiadoras e de maior demanda tecnológica da atualidade. Está diretamente ligada a aplicações que envolvem índices críticos de confiabilidade e segurança. Estas características, inerentes a esta área da computação, vêm contribuindo para o aumento da complexidade dos sistemas tempo real e seu conseqüente desenvolvimento. Isto fez com que mecanismos para facilitar especificação, delimitação e solução de problemas passem a ser itens importantes para tais aplicações. Este trabalho propõe mecanismos para atuarem no desenvolvimento de sistemas de tempo real, com o objetivo de serem empregados como ferramenta de apoio no problema da verificação de presença de inconsistências, que podem vir a ocorrer nos vários modelos gerados partir da notação da linguagem de modelagem gráfica para sistemas de tempo real - UML-RT(Unified Modeling Language for Real Time). Estes mecanismos foram projetados através da construção de um metamodelo dos conceitos presentes nos diagramas de classe, de objetos, de seqüência, de colaboração e de estados. Para construir o metamodelo, utiliza-se a notação do diagrama de classes da UML (Unified Modeling Language). Contudo, por intermédio das representações gráficas do diagrama de classes não é possível descrever toda a semântica presente em tais diagramas. Assim, regras descritas em linguagem de modelagem OCL (Object Constraint Language) são utilizadas como um formalismo adicional ao metamodelo. Com estas descrições em OCL será possível a diminuição das possíveis ambigüidades e inconsistências, além de complementar as limitações impostas pelo caráter gráfico da UML. O metamodelo projetado é mapeado para um modelo Entidade&Relacionamento. A partir deste modelo, são gerados os scripts DDL (Data Definition Language) que serão usados na criação do dicionário de dados, no banco de dados Oracle. As descrições semânticas escritas através de regras em OCL são mapeadas para triggers, que disparam no momento em que o dicionário de dados é manipulado. O MET Editor do SiMOO-RT é a ferramenta diagramática que faz o povoamento dos dados no dicionário de dados. SiMOO-RT é uma ferramenta orientada a objetos para a modelagem, simulação e geração automática de código para sistemas de tempo real.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Para o desenvolvimento de sistemas interativos que respeitem critérios de usabilidade em adição aos critérios de qualidade convencionais, é necessário que, desde suas primeiras etapas, as áreas de Engenharia de Software (ES) e de Interação Humano- Computador (IHC) sejam consideradas, simultaneamente e de maneira integrada. Essas duas áreas investigam modelos, conceitos, técnicas e práticas que refletem diferentes perspectivas sobre a atividade de desenvolvimento, uma orientada mais ao sistema (ES) e outra, mais ao usuário (IHC). Para conciliar estas perspectivas, é necessário o estabelecimento de um entendimento mútuo e a utilização conjunta e integrada de conceitos, técnicas e práticas de desenvolvimento de ambas as áreas. Este trabalho visa mostrar as possibilidades desta integração, através da combinação dos conceitos de Casos de Uso (Use Cases) e Cenários (Scenarios), importantes técnicas de modelagem amplamente utilizadas respectivamente nas áreas de ES e IHC, em diferentes contextos, com diferentes visões; mas apresentando similaridades valiosas para propiciarem o uso complementar de ambas as técnicas. Para sistematizar esta integração, é proposta uma abordagem teleológica – baseada em objetivos – de construção sistemática de casos de uso com quatro diferentes níveis de abstração, desde os mais abstratos casos de uso essenciais até os cenários, aqui utilizados como instâncias concretas de casos de uso. Com esta abordagem, pretende-se construir um modelo de casos de uso que permita especificar requisitos funcionais, conjuntamente com requisitos de interação, de maneira compreensível e praticável e que sirva como ponto de partida à continuidade do desenvolvimento orientado a objetos de software. Com o intuito de exemplificar a proposta, é descrita e discutida a aplicação passo a passo desta abordagem a um exemplo.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Neste trabalho apresenta-se um método de desenvolvimento integrado baseado no paradigma de orientação a objetos, que visa abordar todo o ciclo de desenvolvimento de uma aplicação tempo real. Na fase de especificação o método proposto baseia-se no uso de restrições temporais padronizadas pelo perfil da UML-TR, sendo que uma alternativa de mapeamento destas restrições para o nível de programação é apresentada. Este mapeamento serve para guiar a fase de projeto, onde utilizou-se como alvo a interface de programação orientada a objetos denominada TAFT-API, a qual foi projetada para atuar junto ao ambiente de execução desenvolvido no âmbito desta tese. Esta API é baseada na especificação padronizada para o Java-TR. Este trabalho também discute o ambiente de execução para aplicações tempo real desenvolvido. Este ambiente faz uso da política de escalonamento tolerante a falhas denominada TAFT (Time-Aware Fault- Tolerant). O presente trabalho apresenta uma estratégia eficiente para a implementação dos conceitos presentes no escalonador TAFT, que garante o atendimento a todos os deadlines mesmo em situações de sobrecarga transiente. A estratégia elaborada combina algoritmos baseados no Earliest Deadline, sendo que um escalonador de dois níveis é utilizado para suportar o escalonamento combinado das entidades envolvidas. Adicionalmente, também se apresenta uma alternativa de validação dos requisitos temporais especificados. Esta alternativa sugere o uso de uma ferramenta que permite uma análise qualitativa dos dados a partir de informações obtidas através de monitoração da aplicação. Um estudo de caso baseado em uma aplicação real é usado para demonstrar o uso da metodologia proposta.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

[ES] La artista alavesa Juncal Ballestín desarrolla una obra caracterizada principalmente por sus referencias al arte objetual, el surrealismo y el arte povera. A partir de aquí, recaba su interés en la búsqueda de diversos objetos con una marcada memoria, es decir, objetos ya utilizados y que han recogido diferentes experiencias, pensamientos y vivencias de sus antiguos dueños, lo que proporciona a su producción escultórica una sólida base significativa, social y vivencial.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

El objetivo principal de este proyecto es la detección automática de objetos de interés en imágenes aéreas de zonas urbanas mediante el uso de descriptores característicos. Los descriptores considerados para esta tarea han sido los histogramas color y los descriptores LBP (Local Binary Pattern), así como la concatenación de ambos dando lugar a descriptores híbridos