973 resultados para PROGRAMACIÓN ORIENTADA A OBJETOS


Relevância:

100.00% 100.00%

Publicador:

Resumo:

Las pruebas de software (Testing) son en la actualidad la técnica más utilizada para la validación y la evaluación de la calidad de un programa. El testing está integrado en todas las metodologías prácticas de desarrollo de software y juega un papel crucial en el éxito de cualquier proyecto de software. Desde las unidades de código más pequeñas a los componentes más complejos, su integración en un sistema de software y su despliegue a producción, todas las piezas de un producto de software deben ser probadas a fondo antes de que el producto de software pueda ser liberado a un entorno de producción. La mayor limitación del testing de software es que continúa siendo un conjunto de tareas manuales, representando una buena parte del coste total de desarrollo. En este escenario, la automatización resulta fundamental para aliviar estos altos costes. La generación automática de casos de pruebas (TCG, del inglés test case generation) es el proceso de generar automáticamente casos de prueba que logren un alto recubrimiento del programa. Entre la gran variedad de enfoques hacia la TCG, esta tesis se centra en un enfoque estructural de caja blanca, y más concretamente en una de las técnicas más utilizadas actualmente, la ejecución simbólica. En ejecución simbólica, el programa bajo pruebas es ejecutado con expresiones simbólicas como argumentos de entrada en lugar de valores concretos. Esta tesis se basa en un marco general para la generación automática de casos de prueba dirigido a programas imperativos orientados a objetos (Java, por ejemplo) y basado en programación lógica con restricciones (CLP, del inglés constraint logic programming). En este marco general, el programa imperativo bajo pruebas es primeramente traducido a un programa CLP equivalente, y luego dicho programa CLP es ejecutado simbólicamente utilizando los mecanismos de evaluación estándar de CLP, extendidos con operaciones especiales para el tratamiento de estructuras de datos dinámicas. Mejorar la escalabilidad y la eficiencia de la ejecución simbólica constituye un reto muy importante. Es bien sabido que la ejecución simbólica resulta impracticable debido al gran número de caminos de ejecución que deben ser explorados y a tamaño de las restricciones que se deben manipular. Además, la generación de casos de prueba mediante ejecución simbólica tiende a producir un número innecesariamente grande de casos de prueba cuando es aplicada a programas de tamaño medio o grande. Las contribuciones de esta tesis pueden ser resumidas como sigue. (1) Se desarrolla un enfoque composicional basado en CLP para la generación de casos de prueba, el cual busca aliviar el problema de la explosión de caminos interprocedimiento analizando de forma separada cada componente (p.ej. método) del programa bajo pruebas, almacenando los resultados y reutilizándolos incrementalmente hasta obtener resultados para el programa completo. También se ha desarrollado un enfoque composicional basado en especialización de programas (evaluación parcial) para la herramienta de ejecución simbólica Symbolic PathFinder (SPF). (2) Se propone una metodología para usar información del consumo de recursos del programa bajo pruebas para guiar la ejecución simbólica hacia aquellas partes del programa que satisfacen una determinada política de recursos, evitando la exploración de aquellas partes del programa que violan dicha política. (3) Se propone una metodología genérica para guiar la ejecución simbólica hacia las partes más interesantes del programa, la cual utiliza abstracciones como generadores de trazas para guiar la ejecución de acuerdo a criterios de selección estructurales. (4) Se propone un nuevo resolutor de restricciones, el cual maneja eficientemente restricciones sobre el uso de la memoria dinámica global (heap) durante ejecución simbólica, el cual mejora considerablemente el rendimiento de la técnica estándar utilizada para este propósito, la \lazy initialization". (5) Todas las técnicas propuestas han sido implementadas en el sistema PET (el enfoque composicional ha sido también implementado en la herramienta SPF). Mediante evaluación experimental se ha confirmado que todas ellas mejoran considerablemente la escalabilidad y eficiencia de la ejecución simbólica y la generación de casos de prueba. ABSTRACT Testing is nowadays the most used technique to validate software and assess its quality. It is integrated into all practical software development methodologies and plays a crucial role towards the success of any software project. From the smallest units of code to the most complex components and their integration into a software system and later deployment; all pieces of a software product must be tested thoroughly before a software product can be released. The main limitation of software testing is that it remains a mostly manual task, representing a large fraction of the total development cost. In this scenario, test automation is paramount to alleviate such high costs. Test case generation (TCG) is the process of automatically generating test inputs that achieve high coverage of the system under test. Among a wide variety of approaches to TCG, this thesis focuses on structural (white-box) TCG, where one of the most successful enabling techniques is symbolic execution. In symbolic execution, the program under test is executed with its input arguments being symbolic expressions rather than concrete values. This thesis relies on a previously developed constraint-based TCG framework for imperative object-oriented programs (e.g., Java), in which the imperative program under test is first translated into an equivalent constraint logic program, and then such translated program is symbolically executed by relying on standard evaluation mechanisms of Constraint Logic Programming (CLP), extended with special treatment for dynamically allocated data structures. Improving the scalability and efficiency of symbolic execution constitutes a major challenge. It is well known that symbolic execution quickly becomes impractical due to the large number of paths that must be explored and the size of the constraints that must be handled. Moreover, symbolic execution-based TCG tends to produce an unnecessarily large number of test cases when applied to medium or large programs. The contributions of this dissertation can be summarized as follows. (1) A compositional approach to CLP-based TCG is developed which overcomes the inter-procedural path explosion by separately analyzing each component (method) in a program under test, stowing the results as method summaries and incrementally reusing them to obtain whole-program results. A similar compositional strategy that relies on program specialization is also developed for the state-of-the-art symbolic execution tool Symbolic PathFinder (SPF). (2) Resource-driven TCG is proposed as a methodology to use resource consumption information to drive symbolic execution towards those parts of the program under test that comply with a user-provided resource policy, avoiding the exploration of those parts of the program that violate such policy. (3) A generic methodology to guide symbolic execution towards the most interesting parts of a program is proposed, which uses abstractions as oracles to steer symbolic execution through those parts of the program under test that interest the programmer/tester most. (4) A new heap-constraint solver is proposed, which efficiently handles heap-related constraints and aliasing of references during symbolic execution and greatly outperforms the state-of-the-art standard technique known as lazy initialization. (5) All techniques above have been implemented in the PET system (and some of them in the SPF tool). Experimental evaluation has confirmed that they considerably help towards a more scalable and efficient symbolic execution and TCG.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

El objetivo de este documento es presentar dos aproximaciones generales a la axiomatización de clases y conjuntos. De una parte, la aproximación matemáticas, mostrando el origen, evolución y desarrollo de la teoría matemática de clases y conjuntos, sin formular completamente el desarrollo axiomático, sólo mostrando los conceptos básicos y las crisis generadas por ellos y la solución más usualmente aceptada. Por otra parte, la aproximación dada por el paradigma orientado a objetos, siguiendo especialmente la línea marcada por el lenguaje smalltalk-80

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Java es un lengua de programación orientado a objetos desarrollados por Sun Microsystems a principios de la década de los años 90. Java es inspirado en gran parte de C++ y a un nivel menor de Objective C y Smaltalk. Según la Sun Microsystems, Java fue creado inicial mente porque C++ no era adecuado para ciertas tareas. El éxito del lenguaje empieza en 1995, cuando Netscape anuncio que su visualizador, Navigator, trabajaa con programas Java insertados en las páginas Web. La idea era ofrecer a los desarrolladores de páginas HTML, una forma de crear documentos interactivos y animados.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

No escopo deste trabalho é apresentada uma infra- estrutura orientada a objetos, desenvolvida no âmbito do projeto proposto por massuruhá(2004), que suporta via web a abordagem integrada para diágnostico, investigação e tratamento de desordens proposta em massruhá(2003). Nesta nova abordagem, o conhecimento é basicamente modelado através de associações causais entre objrtos e a inferência é abdutiva.Conceitos de parsimonious covering theory(pct), lógica nebulosa e teoria de decisão são também integrados, de maneira a tratar os vários aspectos inerentes aos processos envolvidos em raciocínio clínico. A validação do modelo teórico foi realizada em fitopatologia, abordando especificamente a diagnose, investigação e tratamento de doenças de milho.Entretanto, devido a sua generalidade, espera-se que os desenvolvimentos teóricos obtidos possam ser aplicados para resolver problemas de diagnóstico tanto na área vegetal quanto na área animal.Termos para indexação: inferência abdutiva, lógica nebulosa, orientação a objetos, sistemas especialistas, representação do conhecimento, doenças de plantas.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Visibilidade de membros de classes. Funções. Funções amigas. Sobrecarga de operadores. Hierarquia de classes. Classes abstratas. Criação e destruição de objetos. Alocação e liberação dinâmica de objetos. Atribuição e iniciação de objetos. Modelos de classes (Templates).

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Tesis (Maestro en Ciencias de la Administración con Especialidad en Sistemas) UANL, 1997.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Proyecto realizado en la Universidad Pontificia de Salamanca por cuatro profesores que trabajan en la Escuela Universitaria de Informática. El objetivo principal del proyecto es la elaboración de un soporte bibliográfico para la adquisición de conocimientos sobre las estructuras de datos. Además se pretendía proporcionar una referencia para la realización de aplicaciones informáticas basadas en estructuras de datos. El sistema de trabajo arrancó de la recopilación y estudio de los diversos materiales y referencias existentes, diseccionádolos en contenido teórico y contenido práctico. Partiendo de este planteamiento se han elaborado los temas teóricos junto con las implementaciones de cada tema, añadiéndo enunciados tipo de los ejercicios de estructuras de datos y su resolución (en una alto porcentaje). Finalmente se recopilaron todas las referencias bibliográficas. Los resultados alcanzados pretenden favorecer el aprendizaje de los alumnos así como disminuir el fracaso anterior. Los resultados alcanzados se presentan en dos tomos, el primero recoge: el índice y la implementación clásica; el segundo: la implementación orientada a objetos, los ejercicios y la bibliograa. Los materiales utilizados han sido: ordenador portatil, programas de software, artículos de investigación y referencias bibliográficas. Material no publicado.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Analizar la simulación educativa, las herramientas de programación que se utilizan en la docencia y los estilos de programación. Comprobar la idoneidad de la programación orientada a objetos para la creación de simulaciones educativas. Diseñar una herramienta idónea para producir programas de simulación para Primaria y Enseñanzas Medias. Es necesario diseñar una herramienta específica que facilite la producción de software de simulación para la enseñanza, que sea, a la vez, potente y flexible y responda a los principios de la programación estructurada. Dicha herramienta debe incorporar los elementos comunes de las simulaciones más frecuentemente utilizadas en la educación: objetos, acciones, decisiones y fondo, por lo que su estilo debe responder al propio de la programación orientada a objetos. Es posible diseñar esa herramienta que disminuya el nivel de conocimientos informáticos del docente necesarios. En el futuro debe comprobarse la posibilidad de desarrollar generadores similares pero no en base a Módula-2 sino en base a otros entornos, tales como Smalltalk. Se hace necesaria una investigación experimental para comprobar si estos generadores contribuyen al acercamiento del docente a las herramientas informáticas para la creación de herramientas didácticas, a la rapidez y abaratamiento de los costes del logro de ciertos objetivos didácticos y a la transferencia en el uso de otras utilidades informáticas en el aula.

Relevância:

100.00% 100.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:

100.00% 100.00%

Publicador:

Resumo:

Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Através do uso da programação em linguagem orientada a objetos e, aplicando-se uma técnica de programação específica, é possível gerar um conjunto de classes genéricas cujos objetos representam cada bloco de um controlador fuzzy e também suas variáveis linguísticas. Tais classes, sendo aplicadas de forma sistemática, facilitam a programação de uma variedade de controladores desta natureza. Este trabalho apresenta a referida técnica e mostra os resultados obtidos através de um modelo simulado de um pêndulo rotacional invertido que é controlado por um sistema de controle composto por três controladores fuzzy, projetados e construídos sob este ponto de vista.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Cadaa vemos cómo la programación orientada a objetos se consolida más en todas las áreas de aplicación de la informática. Ya no solamente se utiliza para el desarrollo de interfases gráficas usuario sino también en bases de datos, sistemas operativos, software de comunicaciones, desarrollo de aplicaciones en ambientes de red, software de gestión comercial, etc. En la programación estructurada tradicional, las funciones y los datos se manejan de forma separada, mientras que en la programación orientada a objetos las funciones y los datos están fuertemente ligados en entes llamados objetos. Al utilizar esta nueva filosofía de programación, se codifican la estructura y el comportamiento de los diferentes objetos, como también las relaciones e interacciones que existen entre ellos

Relevância:

100.00% 100.00%

Publicador:

Resumo:

En este texto se utilizará el lenguaje de programación MatLab. Es una necesidad sentida en la Universidad de Medellín contar con un lenguaje que permita, de manera rápida, poner en práctica los conceptos teóricos tratados en las clases de Fundamentos de Programación y Programación Orientada a Objetos (para estudiantes de Ingeniera de Sistemas), lo que ha motivado la redacción de este texto. Su propósito es acercar a los estudiantes a una herramienta potente y fácil de utilizar en un tiempo reducido, con el fin de probar los algoritmos diseñados en clase y validarlos de acuerdo con los requerimientos impuestos. Se pretende con este texto servir de guía a los estudiantes de Fundamentos de Programación de la Universidad de Medellín y de otras universidades para que puedan poner en práctica los conceptos tratados en la clase teórica. En cada capítulo se presentan conceptos de los diferentes temas con ejemplos y problemas resueltos que le ayudarán a visualizar diversas maneras de construir algoritmos. Los problemas propuestos están pensados de tal manera que sirvan como base y ejercitación para otras asignaturas relacionadas con la programación de computadoras, como: Lenguajes de Programación, Estructuras de Datos, entre otras. De ahí la gran importancia de desarrollarlos, de tal manera, el estudiante conocerá las teorías y técnicas mediante las cuales podrá adquirir destrezas lógico-abstractas que le permitan conceptualizar e implementar algoritmos computacionales que solucionen problemas matemáticos mediante la estrategia de aprendizaje por ejemplos.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

En este texto se utilizará el lenguaje de programación Visual Basic. NET. Dicho lenguaje es uno de los más populares en el mundo por su facilidad para diseñar aplicaciones cada vez más robustas; permite crear aplicaciones para Windows de una forma sencilla. La palabra visual hace referencia a la forma en que se van diseñando las aplicaciones, y al aspecto gráfico que toman los diferentes objetos en el momento de ejecutar las aplicaciones; la palabra NET hace referencia al medio donde se ejecutarán las aplicaciones diseñadas. La necesidad sentida en las universidades y politécnicos de contar con un lenguaje que permita de manera rápida poner en práctica los conceptos teóricos tratados en las clases de Fundamentos de Programación y Programación Orientada a Objetos (para estudiantes de Ingeniería de Sistemas) ha motivado la redacción de este texto. Su propósito es acercar a estudiantes a una herramienta potente y fácil de utilizar en un tiempo reducido, con el fin de probar los algoritmos diseñados en clase y validarlos de acuerdo con los requerimientos impuestos. Se pretende con este texto servir de guía a los estudiantes de Fundamentos de Programación de la Universidad de Medellín y de otras universidades para que puedan poner en práctica los conceptos tratados en la clase teórica.