272,009 research outputs found

    Redesigning the jMetal Multi-Objective Optimization Framework

    Get PDF
    jMetal, an open source, Java-based framework for multi-objective optimization with metaheuristics, has become a valuable tool for many researches in the area as well as for some industrial partners in the last ten years. Our experience using and maintaining it during that time, as well as the received comments and suggestions, have helped us improve the jMetal design and identify significant features to incorporate. This paper revisits the jMetal architecture, describing its refined new design, which relies on design patterns, principles from object-oriented design, and a better use of the Java language features to improve the quality of the code, without disregarding jMetal ever goals of simplicity, facility of use, flexibility, extensibility and portability. Among the newly incorporated features, jMetal supports live interaction with running algorithms and parallel execution of algorithms.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech

    Learning Research Informed Design and Evaluation of a Web-enhanced Object Oriented Programming Seminar

    Get PDF
    Object-Oriented Programming subject is included in the ACM Curriculum Guidelines for Undergraduate and Graduate Degree Programs in Computer Science as well as in Curriculum for K-12 Computer Science. In a few research studies learning problems and difficulties have been recorded, and therefore, specific pedagogical guidelines and educational tools have been proposed which aim at better supporting the instructional process of Object-Oriented Programming. This paper presents an empirical pilot study of a seminar related to the basic principles-concepts of Object-Oriented Programming. The seminar was at undergraduate educational level using the Java language and web technologies. Its instructional approach was based on selected best instructional practices (either in the form of guidelines or design patterns) already published in the literature. The fundamental aim of the present study was to investigate the factors that might affect the learning effectiveness of a web-enhanced instructional process of the Object-Oriented Programming subject

    Closing the gap between guidance and practice, an investigation of the relevance of design guidance to practitioners using object-oriented technologies

    Get PDF
    This thesis investigates if object oriented guidance is relevant in practice, and how this affects software that is produced. This is achieved by surveying practitioners and studying how constructs such as interfaces and inheritance are used in open-source systems. Surveyed practitioners framed 'good design' in terms of impact on development and maintenance. Recognition of quality requires practitioner judgement (individually and as a group), and principles are valued over rules. Time constraints heighten sensitivity to the rework cost of poor design decisions. Examination of open source systems highlights the use of interface and inheritance. There is some evidence of 'textbook' use of these structures, and much use is simple. Outliers are widespread indicating a pragmatic approach. Design is found to reflect the pressures of practice - high-level decisions justify 'designed' structures and architecture, while uncertainty leads to deferred design decisions - simpler structures, repetition, and unconsolidated design. Sub-populations of structures can be identified which may represent common trade-offs. Useful insights are gained into practitioner attitude to design guidance. Patterns of use and structure are identified which may aid in assessment and comprehension of object oriented systems.This thesis investigates if object oriented guidance is relevant in practice, and how this affects software that is produced. This is achieved by surveying practitioners and studying how constructs such as interfaces and inheritance are used in open-source systems. Surveyed practitioners framed 'good design' in terms of impact on development and maintenance. Recognition of quality requires practitioner judgement (individually and as a group), and principles are valued over rules. Time constraints heighten sensitivity to the rework cost of poor design decisions. Examination of open source systems highlights the use of interface and inheritance. There is some evidence of 'textbook' use of these structures, and much use is simple. Outliers are widespread indicating a pragmatic approach. Design is found to reflect the pressures of practice - high-level decisions justify 'designed' structures and architecture, while uncertainty leads to deferred design decisions - simpler structures, repetition, and unconsolidated design. Sub-populations of structures can be identified which may represent common trade-offs. Useful insights are gained into practitioner attitude to design guidance. Patterns of use and structure are identified which may aid in assessment and comprehension of object oriented systems

    Understanding Design Patterns Density with Aspects: A Case Study in JHotDraw using AspectJ

    Get PDF
    International audienceDesign patterns offer solutions to common engineering prob- lems in programs [1]. In particular, they shape the evolution of program elements. However, their implementations tend to vanish in the code: thus it is hard to spot them and to understand their impact. The prob- lem becomes even more difficult with a "high density of pattern": then the program becomes easy to evolve in the direction allowed by patterns but hard to change [2]. Aspect languages offer new means to modular- ize elements. Implementations of object-oriented design patterns with AspectJ have been proposed [3]. We aim at testing the scalability of such solutions in the JHotDraw framework. We first explore the impact of density on pattern implementation. We show how AspectJ helps to reduce this impact. This unveils the principles of aspects and AspectJ to control pattern density

    Design patterns and their application in Android mobile applications development

    Get PDF
    U ovom su radu opisani glavni oblikovni obrasci. Riječ je o nacrtima rješenja za problemekoji se često pojavljuju pri objektno orijentiranom programiranju. Svaki oblikovni obrazacopisuje svoju ulogu, primjere i način korištenja za rješavanje jednog problema pri čemu seosigurava kvalitetno i dugoročno ispravno rješenje. Uz oblikovne obrasca, prikazana su načelaobjektno orijentiranog dizajna te anti-obrasci. Načela su temeljne odredbe koje treba imati naumu pri pisanju koda, a anti-obrasci, suprotno od oblikovnih obrazaca, opisuju česte krivenačine dizajniranja programske podrške. Kao dio diplomskog rada izraĎena je Androidmobilna aplikacije čija je svrha omogućiti korisniku aplikacije pregled lokacija u pojedinomgradu koje imaju povijesnu priču. Kroz izradu aplikacije prikazano je korištenje najčešćihoblikovnih obrazaca na Android sustavu kao i prednosti koje oni donose.This thesis describes main design patterns. They represent blueprints of solutions forfrequently occurring problems in object oriented programming. Each design pattern describesits role, examples and usage for solving one problem which ensures quality and long-termcorrect solution. Accompanied by design patterns, principles of object oriented design andanti-patterns are presented. Principles are core terms which should be considered whileprogramming and anti-patterns, contrary to design patterns, describe frequent bad examples ofsoftware development. Android mobile application has been developed as the part of thesiswith the intent to give user a list of locations in each city that have historical relevance.Development of the application showed usages of most often used design patterns on theAndroid system and their advantages

    A ”Framework” for Object Oriented Frameworks Design

    Get PDF
    Object-oriented frameworks are established tools for domain-specific reuse. Many framework design patterns have been documented, e.g. reverse engineering framework architectures from conventionally built applications for a given domain. The framework development cycle generally evolves from open framework to closed application. We describe a more flexible component-based approach to framework design that stresses a common interface for ’plugging-in’ new components at different lifecycle stages. An analysis of framework-related user roles shows that the classical developer/end-user boundary is too rigid. We see the framework’s development as a continuum within which its ’actors’ can customise its behaviour. This both increases the system’s flexibility and reduces its maintenance requirement. A case study of three frameworks for different application domains illustrates the presented principles

    GarmentCode: Programming Parametric Sewing Patterns

    Full text link
    Garment modeling is an essential task of the global apparel industry and a core part of digital human modeling. Realistic representation of garments with valid sewing patterns is key to their accurate digital simulation and eventual fabrication. However, little-to-no computational tools provide support for bridging the gap between high-level construction goals and low-level editing of pattern geometry, e.g., combining or switching garment elements, semantic editing, or design exploration that maintains the validity of a sewing pattern. We suggest the first DSL for garment modeling -- GarmentCode -- that applies principles of object-oriented programming to garment construction and allows designing sewing patterns in a hierarchical, component-oriented manner. The programming-based paradigm naturally provides unique advantages of component abstraction, algorithmic manipulation, and free-form design parametrization. We additionally support the construction process by automating typical low-level tasks like placing a dart at a desired location. In our prototype garment configurator, users can manipulate meaningful design parameters and body measurements, while the construction of pattern geometry is handled by garment programs implemented with GarmentCode. Our configurator enables the free exploration of rich design spaces and the creation of garments using interchangeable, parameterized components. We showcase our approach by producing a variety of garment designs and retargeting them to different body shapes using our configurator.Comment: Supplementary video: https://youtu.be/16Yyr2G9_6E
    corecore