370,289 research outputs found

    Assessing design patterns for concurrency

    Get PDF
    Design patterns are language-independent software-engineering techniques for solving recurring problems within a particular problem-context. Despite their generality, they have been primarily adopted by, and for the most part developed within, the object-oriented community. As a result, some pattern definitions are sometimes expressed with objects-oriented machinery in mind such as classes and inheritance. We test the paradigm independence of these design patterns and investigate the viability of adopting existing patterns from the object-oriented paradigm to the message-passing concurrency setting. By porting these techniques to the new programming paradigm, we expect to inherit the benefits associated with these design patterns. We achieve these goals by implementing a suite of design patterns as reusable modules in Erlang, an industry-strength message-passing language for programming concurrent distributed systems.peer-reviewe

    Improving the Design and Implementation of Software Systems uses Aspect Oriented Programming

    Get PDF
    A design pattern is used as a static reusable component of object oriented design in the many patterns catalogue. The regular design pattern does not show any collaboration of shared resource between patterns in the software design. But generative design pattern is a new design pattern that shows the relationship and shared resources between them. The generative design pattern is considered a dynamic and active design, which creating new design as a result of collaboration and resource usage between two designs. This paper will demonstrate benefit and the structure of generative pattern. It also demonstrates the creation of a desktop application for modeling generative design pattern. The Java language creates the desktop application. The application provides many features, for instance, users can place drawing objects such as class, Interface and Abstract Class object. The users also can draw different connection line between these objects, such as simple, inheritance, composition lines. This project shows the implementation details techniques of drawing objects and their connection. It also provides an open source code that many novice developers can understand and analysis for further development. The application source code gives the developers new ideas and skills in object oriented programming and graphical user interface in Java language

    LePUS3: An Object-Oriented Design Description Language

    Get PDF
    LePUS3 [1] (lepus.org.uk) is a logic, visual, object-oriented Design Description Language: a formal specification language designed to capture and convey the building-blocks of object-oriented design. LePUS3 minimal vocabulary constitutes of abstraction mechanisms that can specify effectively and precisely design patterns and the design of JavaTM (C++, Smalltalk, etc.) programs at any level of abstraction

    Aspect oriented implementation of design patterns using metadata

    Get PDF
    Computer programming paradigms aim to provide better separation of concerns. Aspect oriented programming extends object oriented programming by managing crosscutting concerns using aspects. Two of the most important critics of aspect oriented programming are the “tyranny of the dominant signature” and lack of visibility of program's flow. Metadata, in form of Java annotations, is a solution to both problems. Design patterns are assumed as the general solutions for Object-Oriented matters. They assist in software complexity management and serve as a bridge among software designers as well. These properties have led the patterns to be introduced as a choice in order to prove new technologies. Successful implementations share a generic solution: the usage of annotation to configure and mark the participants, while the pattern's code is encapsulated in aspects. This loses the coupling between aspects and type signatures and between the code base and a specific AOP framework. Also, it increases the developer's awareness of the program's flow. In the present article, aspect oriented programming and design patterns are introduced and also taking the benefit of annotation equipment in java language is proposed as a solution to reduce tight coupling and increase program flow observation rate for aspect oriented programming. Keywords: aspect oriented programming, design patterns, object oriented programming, metadata

    Object Oriented Computing

    Get PDF
    In this contribution, the basic overview of the Object Oriented Programming and its usage in computation is given. Concepts of class, encapsulation, inheritance, and polymorphism are introduced. Some additional concepts like interface and Design Patterns are briefly discussed. Schematic examples in C++ are given. --

    Using an Object-Oriented Approach to Develop a Software Application

    Get PDF
    This paper describes a software development project completed using an object-oriented approach. Because Visual Basic .NET was used to build the Windows-based application, application design patterns were identified that would be beneficial in this development environment. A discussion of which design patterns were selected and how they were implemented using Visual Basic .NET is included, along with descriptions of object-oriented design documents and their role in the project. The paper also provides details about how the project has and will be used to provide teaching examples in software development courses

    Pattern Reification as the Basis for Description-Driven Systems

    Full text link
    One of the main factors driving object-oriented software development for information systems is the requirement for systems to be tolerant to change. To address this issue in designing systems, this paper proposes a pattern-based, object-oriented, description-driven system (DDS) architecture as an extension to the standard UML four-layer meta-model. A DDS architecture is proposed in which aspects of both static and dynamic systems behavior can be captured via descriptive models and meta-models. The proposed architecture embodies four main elements - firstly, the adoption of a multi-layered meta-modeling architecture and reflective meta-level architecture, secondly the identification of four data modeling relationships that can be made explicit such that they can be modified dynamically, thirdly the identification of five design patterns which have emerged from practice and have proved essential in providing reusable building blocks for data management, and fourthly the encoding of the structural properties of the five design patterns by means of one fundamental pattern, the Graph pattern. A practical example of this philosophy, the CRISTAL project, is used to demonstrate the use of description-driven data objects to handle system evolution.Comment: 20 pages, 10 figure
    • 

    corecore