H. Nayat, Fumic, Narisawat, T. Yokoyamat, K. Ohkawal, M. Amanot
{"title":"Object-oriented development based on polymorphism patterns and optimization to reduce executable code size","authors":"H. Nayat, Fumic, Narisawat, T. Yokoyamat, K. Ohkawal, M. Amanot","doi":"10.1109/TOOLS.1997.681862","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681862","url":null,"abstract":"This paper describes an object-oriented development method and an optimization method for embedded control systems. In embedded control systems development, specifications are changed frequently and there is strong constraint of memory. We present an object-oriented analysis and design method based on polymorphism patterns. Polymorphism patterns are standard of method interfaces which are shared by several objects. With this method, a system is constructed with objects which have polymorphism patterns. This system ensures reusability because it easy to replace objects where the specification of the system is changed. Object-oriented technology has several functions, such as instantiation, inheritance and polymorphism, where functions are implemented with both method tables and inheritance hierarchy tables. These mechanisms are needless in the automotive engine control application which execute fixed control flow. Our optimization method eliminates these mechanisms and reduces executable code size. We have applied the techniques to the development of automotive engine control applications.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122923095","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A component framework for direct-manipulation editors","authors":"R. Weinreich","doi":"10.1109/TOOLS.1997.681864","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681864","url":null,"abstract":"Object-oriented software technology has some significant flaws that are addressed with component technology. The foundations of software component technology and the possible and useful kinds of software composition are still an open issue of ongoing research. After a clarification of important issues of component technology and component composition, we present an object-oriented component framework that was developed to serve as the basis for an adaptable software development environment. The framework supports the construction of applications with a direct-manipulation user interface (especially graphic editors) and a code generation back-end. It uses a trading mechanism for component integration at run time, facilitates the separation of component adaptation and component composition, and incorporates an architecture that supports system evolution to a certain degree.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"95 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126877264","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Patterns for finding objects within designs","authors":"J. Noble","doi":"10.1109/TOOLS.1997.681865","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681865","url":null,"abstract":"To design a program, first find your objects. Unfortunately, the right objects are not easy to find, and as a result most programs are not as well designed as they could be. This paper presents four patterns which describe how objects can be found within the designs of existing programs. By using these patterns, programs and designs can be made more simple, more general, and more easy to change.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114092564","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Interactive analysis of object architectures","authors":"J. Fröhlich, Thomas Stranzinger","doi":"10.1109/TOOLS.1997.681875","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681875","url":null,"abstract":"Object oriented design notations represent application domains in terms of interacting classes where each class provides well defined services. During implementation of an object oriented design, the focus lies on individual classes rather than on groups of interacting classes. But individual classes usually implement only small, cohesive parts of system tasks. Important parts of algorithms behind system tasks are hidden in changing object graphs. This can cause malicious problems during restructuring, testing and documentation of object oriented programs, if there is no systematic approach to these activities. The article describes an architecture model, a tool and their application for rigorous analysis of hybrid, object oriented programs at the abstraction level of object graphs and interactions. Analysis results are intended especially to support incremental development of object oriented programs, dynamic documentation and dynamic testing. Object oriented C++ programs serve as analysis objects.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117011507","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Automatic generation of bridging code for accessing C++ from Java","authors":"A. Schade","doi":"10.1109/TOOLS.1997.681869","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681869","url":null,"abstract":"Java is becoming increasingly important as a programming language for applications based on the network centric computing paradigm. While more and more applications are written an Java, a large number of working C++ implementations for standard tasks still exist. Based on a domain model for language interoperability, the paper derives the structure of the necessary bridging code between C++ and Java and describes a mechanism, as well as its implementation for automatic bridging code generation. The paper then provides a top down overview of the bridging code layers, describing how C++ features are remodeled, and how C++ definitions are automatically mapped to Java.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127028439","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
J. L. Keedy, M. Evered, Axel Schmolitzky, G. Menger
{"title":"Attribute types and bracket implementations","authors":"J. L. Keedy, M. Evered, Axel Schmolitzky, G. Menger","doi":"10.1109/TOOLS.1997.681879","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681879","url":null,"abstract":"In an object oriented system, different types of objects may have one or more attributes in common. For example different types of objects in a library system might be \"loanable\" or \"catalogued\". The first part of the paper introduces a distinction between object types and attribute types, showing that there are advantages in treating them as separate constructs of an object oriented programming language. Then generalized attribute types, (e.g. \"synchronized\", \"journalized\", \"protected\") are discussed. It is shown how implementations involving a technique called bracket routines can lead to clearly modeled and cleanly implemented programs. It is then shown how the bracket technique can be effectively used to introduce protection and security concepts into a system. Among the clear advantages of this technique is that it results in better reusability of code.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"252 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132388291","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"\"self\"-conscious objects in Object-Z","authors":"A. Griffiths","doi":"10.1109/TOOLS.1997.681872","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681872","url":null,"abstract":"Within the field of object oriented type theory, much attention has been devoted to the notion of self and Self-types. In contrast, relatively little attention has been paid to this topic in studies on object oriented specification language semantics. In the context of language semantics, the notion of self poses two problems. Firstly, it involves an awareness by an object of its own identity, and hence a capacity for self referential method invocations. Secondly, the usual reference model for object identity maps object identities to object values. This means that an object's identity is not normally considered to be a part of its value. And so a value for self is not normally in scope. The way that a semantics resolves the scope problem can affect one's ability to use the semantics to reason about an object independently of its environment. The paper motivates the inclusion of a concept of self in object oriented formal specification languages, and shows how this concept can be accommodated within the semantics of Object-Z. We show that a useful consequence of making objects 'self'-aware is that messages between objects can be 'tagged' with the identity of the sender object; this facilitates the task of reasoning about object interaction.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131187733","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Design by Contract: Making Object-Oriented Programs that Work","authors":"B. Meyer","doi":"10.1109/TOOLS.1997.681888","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681888","url":null,"abstract":"To deliver on its promises, object-oriented technology must be able to produce systems that are reliable (correct and robust). Only under these conditions will the other quality factors advertised for the method, in particular the increase in reusability and extendibility, yield the expected benefits for software practitioners. It is indeed possible to use object-oriented technology to produce, almost routinely, software systems that reach a degree of reliability without any equivalent in conventional methods, languages and tools. This requires a strict application of pure object-oriented concepts, in particular, seamlessness (the use of a consistent method and notation throughout the software life-cycle), information hiding, automatic garbage collection, static typing, and the combination of static typing and dynamic binding. Another key component of this approach is the notion of design by contract, which leads to the production of systems whose correctness is built-in rather than ensured ex post facto.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134246148","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Programming in a CORBA Environment","authors":"C. Exton","doi":"10.1109/TOOLS.1997.681885","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681885","url":null,"abstract":"The Object Oriented (00) approach to software development is a well-established approach for the development of complex systems in varied application domains. The CORBA standard expands the object-oriented domain to the distributed arena. This presentation is a tour of distributed 00 software development using the CORBA method. It is intended to be suitable both for beginners and for people who have already had some exposure to CORBA. A basic knowledge of 00 concepts is assumed. Java is the language used in the samples provided. All topics will be introduced by providing sample programming code. Topics covered include: What is middleware?, The distinction between Client server and a Distributed Object System?, CORBA IDL, DII, TIE, BOAImpl and some simple Patterns.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121514814","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Object-Oriented Testing","authors":"P. Strooper","doi":"10.1109/TOOLS.1997.681887","DOIUrl":"https://doi.org/10.1109/TOOLS.1997.681887","url":null,"abstract":"In contrast to the explosion of activity in object-oriented design and programming, relatively little attention has been given to object testing. The proposed tutorial discusses problems and potential solutions with the testing of object-oriented software. After a brief introduction in which the testing of 00 software is compared with the testing of more traditional software, an in-depth look is taken at two approaches to the testing of 00 software. The first is a method for the testing of 00 systems that is used by MPR Teltech, a Canadian telecommunications company. In this method, the ACE tool is used to automatically test individual classes. The second is the ClassBench methodology and framework for the testing of collection classes, which has been used to test several classes from commercial class libraries.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122048471","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}