scispace - formally typeset
Search or ask a question
Topic

Object-oriented design

About: Object-oriented design is a research topic. Over the lifetime, 5136 publications have been published within this topic receiving 144108 citations.


Papers
More filters
Patent
03 Dec 1998
TL;DR: In this paper, the compiler parses the statements of source code and converts each statement into one or more pre-defined, persistent instruction objects, which are stored as a platform-independent file, each having a virtual initialize method, a virtual execute method and an index indicative of the next instruction object in the sequence.
Abstract: A programming language environment that includes an object compiler and associated object execution engine. The object compiler parses and converts source code into object-oriented, compiled code that is platform independent and that can be executed by the object execution engine at speeds close to that of a true compiled binary executable. The compiler parses the statements of source code and converts each statement into one or more pre-defined, persistent instruction objects. Then, it orders the instruction objects, generating a sequence of instruction objects that are stored as a platform-independent file. The instruction objects each have a virtual initialize method, a virtual execute method, and an index indicative of the next instruction object in the sequence. Data used in the statements can be represented as persistent data objects and the instruction objects and data objects can be stored in separate stacks (i.e., as linked lists), with their indices indicating their position within the stack. The memory address of each instruction object and data object is allocated dynamically at run time, with the initialize method being used to convert each index to a pointer that identifies the memory address of the next object in the stack. The execute method executes at least one machine language instruction and returns a pointer to the next instruction object. Thus, the object execution engine executes the sequence of instruction objects by calling the execute method of each instruction object and using the returned pointer to access the next instruction object.

32 citations

Proceedings Article
01 Dec 2003
TL;DR: This paper proposes a new approach to generate efficient and compact executable code from the UML statechart diagram in an object-oriented language like Java using design patterns and makes elegant handling of most of the statechart features.
Abstract: The Unified Modeling Language (UML) statechart diagram is a powerful tool for specifying the dynamic behavior of reactive objects. Generating code from statechart diagrams is a challenging task due to its dynamic nature and because many of the statechart concepts are not supported by the object oriented programming languages. Most of the approaches for implementing UML statecharts diagram either suffer from maintenance problems or implement only a subset of UML statecharts. This paper proposes a new approach to generate efficient and compact executable code from the UML statechart diagram in an object-oriented language like Java using design patterns. In our approach, each state in the statechart becomes a class, which encapsulates all the transitions and actions of the state. The events that have transitions are thus made explicit without using any if or case statement, which leads to a readable , compact and efficient code. The resultant code is easy to maintain. By representing states as objects, we extend the state design pattern to implement the sequential substates and concurrent substates using the concept of object composition and delegation. We also propose an approach to implement compound transitions (fork/join) and history nodes. The proposed approach makes elegant handling of most of the statechart features.

32 citations

Proceedings ArticleDOI
31 Mar 1997
TL;DR: It is concluded that graphics, in order to assure maximum communicative e ciency, needs to be complemented by an alternate view of the data, and a tool is presented that represents the data in the form of a English text, the ModelExplainer, or ModEx for short, and focuses on the customizability of the system.
Abstract: With the emergence of object-oriented technology and user-centered software engineering paradigms, the requirements analysis phase has changed in two important ways: it has become an iterative activity, and it has become more closely linked to the design phase of software engineering (Davis, 1993). A requirements analyst builds a formal object-oriented (OO) domain model. A user (domain expert) validates the domain model. The domain model undergoes subsequent evolution (modi cation or adjustment) by a (perhaps di erent) analyst. Finally, the domain model is passed to the designer (system analyst), who re nes the model into a OO design model used as the basis for implementation. Thus, we can see that the OO models form the basis of many important ows of information in OO software engineering methodologies. How can this information best be communicated? It is widely believed that graphical representations are easy to learn and use, both for modeling and for communication among the engineers and domain experts who together develop the OO domain model. This belief is re ected by the large number of graphical OO modeling tools currently in research labs and on the market. However, this belief is not accurate, as some recent empirical studies show. For example, Kim (1990) simulated a modeling task with experienced analysts and a validation task with sophisticated users not familiar with the particular graphical language. Both user groups showed semantic error rates between 25% and 70% for the separately scored areas of entities, attributes, and relations. Relations were particularly troublesome to both analysts and users. Petre (1995) compares diagrams with textual representations of nested conditional structures (which can be compared to OO modeling in the complexity of the \paths" through the system). She nds that \the intrinsic di culty of the graphics mode was the strongest e ect observed" (p.35). We therefore conclude that graphics, in order to assure maximum communicative e ciency, needs to be complemented by an alternate view of the data. We claim that the alternate view should be provided by an explanation tool that represents the data in the form of a uent English text. This paper presents such a tool, the ModelExplainer, or ModEx for short, and focuses on the customizability of the system. Automatically generating natural-language descriptions of software models and speci cations is not a new idea. The rst such system was Swartout's GIST Paraphraser (Swartout, 1982). More recent projects include the paraphraser in ARIES (Johnson et al., 1992); the GEMA dataow diagram describer (Scott and de Souza, 1989); and Gulla's paraphraser for the PPP system (Gulla, 1993). ModEx certainly belongs in the tradition of these speci cation paraphrasers, but the combination of features that we will describe in the next section (and in particular the customizability) is, to our knowledge, unique.

32 citations

Patent
Daggett Jeremy1
31 Oct 2002
TL;DR: In this paper, a method and corresponding apparatus for providing aggregate object identifiers combine different database objects into one object to reference any other runtime objects to reduce the lookup time and total number of objects created, thus simplifying software codes that are necessary for a combination of objects to reference another object.
Abstract: A method and corresponding apparatus for providing aggregate object identifiers combine different database objects into one object to reference any other runtime objects. The method decreases object lookup time and total number of objects created, thus simplifying software codes that are necessary for a combination of objects to reference another object. Multiple maps are no longer necessary to refer to an object of interest, thus providing a more efficient mechanism for relating information in network databases. The aggregate object identifiers may operate in any JAVA® runtime environment in a storage area network (SAN).

32 citations

Proceedings ArticleDOI
05 Jun 2000
TL;DR: A range of designs for iterator objects are presented, showing how different designs have different encapsulation properties and also illustrating some of the issues in the design of encapsulation mechanisms in programming languages.
Abstract: Iterators are an important object oriented design pattern, providing sequential access to the state stored in other objects. Precisely because iterators need to access the state of other objects, iterators' design can be at odds with the encapsulation provided by object oriented languages. We present a range of designs for iterator objects, showing how different designs have different encapsulation properties. Studying a range of different iterators can help programmers to identify the strengths and weaknesses of particular designs, and also illustrates some of the issues in the design of encapsulation mechanisms in programming languages.

32 citations


Network Information
Related Topics (5)
Software development
73.8K papers, 1.4M citations
91% related
Software system
50.7K papers, 935K citations
89% related
Software construction
36.2K papers, 743.8K citations
89% related
Web service
57.6K papers, 989K citations
86% related
Software
130.5K papers, 2M citations
86% related
Performance
Metrics
No. of papers in the topic in previous years
YearPapers
20231
20226
20215
20209
201915
201828