This paper presents a methodology for extracting objects from legacy imperative code. The parameter-based object identification (PBOI) methodology is based on the thesis that object attributes manifest themselves as d...
详细信息
ISBN:
(纸本)9780818679612
This paper presents a methodology for extracting objects from legacy imperative code. The parameter-based object identification (PBOI) methodology is based on the thesis that object attributes manifest themselves as data items passed from subprogram to subprogram in the imperative paradigm. A taxonomy of imperative subprograms is presented and the PBOI methodology is defined. Several examples are provided.
In traditional object-oriented languages, the dynamic dispatch algorithm is hardwired: for every polymorphic call, only the most specific method is used. Clos, the Common Lisp object System, goes beyond the traditiona...
详细信息
ISBN:
(纸本)9782955747421
In traditional object-oriented languages, the dynamic dispatch algorithm is hardwired: for every polymorphic call, only the most specific method is used. Clos, the Common Lisp object System, goes beyond the traditional approach by providing an abstraction known as method combinations: when several methods are applicable, it is possible to select several of them, decide in which order they will be called, and how to combine their results, essentially making the dynamic dispatch algorithm user-programmable. Although a powerful abstraction, method combinations are under-specified in the Common Lisp standard, and the Mop, the Meta-object Protocol underlying many implementations of Clos, worsens the situation by either contradicting it or providing unclear protocols. As a consequence, too much freedom is granted to conforming implementations. The exact or intended behavior of method combinations is unclear and not necessarily coherent with the rest of Clos. In this paper, we provide a detailed analysis of the problems posed by method combinations, the consequences of their lack of proper specification in one particular implementation, and a Mop-based extension called method combinators, aiming at correcting these problems and possibly offer new functionality.
In this paper we discuss problems related to the teaching of object-oriented programming (OOP). We argue that more research on how the computer science teacher understands OOP would be beneficial. Our argument takes i...
详细信息
ISBN:
(纸本)9781920682699
In this paper we discuss problems related to the teaching of object-oriented programming (OOP). We argue that more research on how the computer science teacher understands OOP would be beneficial. Our argument takes its point of departure in three sets of studies: (1) an ongoing study on how computer science teachers understand core concepts of OOP, (2) a study of how the teaching of OOP is discussed within the CS community, and (3) a set of studies that discuss the different ways in which CS teachers experience their teaching. This paper reports on an ongoing study of the different ways in which computing science teachers understand object-oriented programming, and what they mean when use the term objects first. The phenomenographic research approach has been applied to the analysis of a discussion that occurred in the SIGCSE-members mailing list. Two understandings of objects first have been identified: (1) as an extension of imperative programming, and (2) as conceptually different from imperative programming. These two understandings are illustrated via the differing ways in which computing science teachers use the term polymorphism.
Context. Features and styles inspired by functional programming have grown in popularity in the world of object-oriented programming. Immutability is a core concept of functional programming, which brings advantages t...
详细信息
ISBN:
(纸本)9798400700408
Context. Features and styles inspired by functional programming have grown in popularity in the world of object-oriented programming. Immutability is a core concept of functional programming, which brings advantages to software development. However, introducing immutability in object-oriented programming presents some challenges. Problem. One of these challenges is method overriding. When inheriting non-destructive mutators (methods used on immutable objects which return a new object instead of modifying the receiver), a naive approach generates code duplication and has scalability issues. Contribution. We analyse an example of this overriding problem and propose a solution in a new design pattern based on the factory method pattern. We also discuss the advantages and limitations of this pattern, as well as implementations in Clojure, Java, and Kotlin. We also identify and discuss the language features that mostly affect the implementation of this pattern. Conclusion. Our proposed design pattern helps mitigate some of the code duplication and scalability problems of a naive approach. However, the inclusion of a functional updating language feature is required to completely remove the scalability issues.
Aspect-orientedprogramming(AOP) is a relatively new technique,which makes it possible to overcome the weakness of object-oriented programming(OOP) technique by resolving the crosscutting problem between concerns and ...
详细信息
Aspect-orientedprogramming(AOP) is a relatively new technique,which makes it possible to overcome the weakness of object-oriented programming(OOP) technique by resolving the crosscutting problem between concerns and making Multi-Dimensional concerns to separate from each *** problems and weakness of traditional software architecture for embedded system software was *** order to overcome these problems and weakness,AOP technique was adopted and an Aspect-oriented software architecture model for embedded system software was proposed in this *** validity was illustrated by practical application in the software development of vending machine, and the advantages of this model were discussed also.
In March 2004, SIGCSE members contributed to a mailing list discussion on the question of whether programming should be taught objects first or imperative first. We analyse that discussion, exploring how the CS commun...
详细信息
ISBN:
(纸本)9781595936035
In March 2004, SIGCSE members contributed to a mailing list discussion on the question of whether programming should be taught objects first or imperative first. We analyse that discussion, exploring how the CS community debates the issue and whether contributors' positions are supported by the research literature on novice programmers. We applied four distinct research methods to the discussion: cognitive science, rhetorical analysis in the critical tradition, phenomenography and biography. We identify the cognitive claims made in the email discussion and find there is not a consensus in the research literature as to whether the objects first approach or the imperative approach is harder to learn. From the rhetorical analysis, we find that the discussion was not so much a debate between OO-first versus imperative-first, but instead was more for and against OO-first. Our phenomenographic analysis identified and categorized the underlying complexity of the discussion. We also applied a biographical method to explore the extent to which the participants' views are shaped by their own prior experience. The paper concludes with some reflections upon paradigms, and the manner in which the CS discipline community defines itself.
The special requirements for the modeling of PDMsystem-extendible organization, modularized structureand cooperation between the front stage and the backstage are introduced. The objects PDM system refersto-products, ...
详细信息
ISBN:
(纸本)0780379411
The special requirements for the modeling of PDMsystem-extendible organization, modularized structureand cooperation between the front stage and the backstage are introduced. The objects PDM system refersto-products, projects, documents, personnel andworkflow, etc-and their attributes and functions areanalyzed. Based on object-oriented technique, theattributes, data, processes and functions of these objectsare packed in the corresponding classes. Composed ofthese classes, the model of PDM system is set up. Withthe techniques of encapsulation and inheritance ofclasses, the requirements of modularization andextendibility are met; with the user interface and thecontrol of the workflow class, the cooperation betweenthe front stage and the back stage is also met.
OSGi provides a dynamic and versatile platform forthe embedded software evolution. Using this platform,products can be easily upgraded, flexibly reconfiguredand managed for its after-sale services. In OSGi,application...
详细信息
ISBN:
(纸本)0780379411
OSGi provides a dynamic and versatile platform forthe embedded software evolution. Using this platform,products can be easily upgraded, flexibly reconfiguredand managed for its after-sale services. In OSGi,applications are made up of bundles. The variousfunctions of a product are implemented throughinteractions and co-operations between the bundles. As aresult, how to efficiently and effectively manage thesebundles becomes prominent for the after-sale productsevolution. This article presents a component-basedapproach, where the services and its implementations aredivided into different bundles and are managed by aLeaderBundle for reconfiguration and update.
Level - Beginner, but attendees should have some experience with a high-level programming *** tutorial is designed for those who have some familiarity with a programming language, but who are new to Ada. In the mornin...
详细信息
ISBN:
(纸本)9781605582740
Level - Beginner, but attendees should have some experience with a high-level programming *** tutorial is designed for those who have some familiarity with a programming language, but who are new to Ada. In the morning, we will discuss the basics of programming in Ada, including types, packages, syntax rules, and other Ada programming constructs. In the afternoon, we will cover Ada's object-oriented programming and concurrent-programming features. Many examples will be shown; freely downloadable Ada programming environments and tools will be demonstrated.
Many systems are constructed without the use of modeling and visualization artifacts, due to constraints imposed by deadlines or a shortage of manpower. Nevertheless, such systems might profit from the visualization p...
详细信息
ISBN:
(纸本)9780909925888
Many systems are constructed without the use of modeling and visualization artifacts, due to constraints imposed by deadlines or a shortage of manpower. Nevertheless, such systems might profit from the visualization provided by diagrams to facilitate maintenance of the constructed system. In this paper, we present a tool, Reveal, to reverse engineer a class diagram from the C + + source code representation of the software. In Reveal, we remain faithful to the UML standard definition of a class diagram wherever possible. However, to accommodate the vagaries of the C + + language, we offer some extensions to the standard notation to include representations for namespaces, stand-alone functions and friend functions. We compare our representation to three other tools that reverse-engineer class diagrams, for both compliance to the UML standard and for their ability to faithfully represent the software system under study.
暂无评论