{"title":"Use case pitfalls: top 10 problems from real projects using use cases","authors":"Susan Lilly","doi":"10.1109/TOOLS.1999.787547","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787547","url":null,"abstract":"One of the beauties of use cases is their accessible, informal format. Use cases are easy to write, and the graphical notation is trivial. Because of their simplicity, use cases are not intimidating, even for teams that have little experience with formal requirements specification and management. However, the simplicity can be deceptive; writing good use cases takes some skill and practice. Many groups writing use cases for the first time run into similar kinds of problems. The paper presents the author's \"Top Ten\" list of use case pitfalls and problems, based on observations from a number of real projects. The paper outlines the symptoms of the problems, and recommends pragmatic cures for each. Examples are provided to illustrate the problems and their solutions.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"113 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127243886","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":"Implementing a distributed garbage collector for OO databases","authors":"Richard Bielak, Jean-Pierre Sarkis","doi":"10.1109/TOOLS.1999.787534","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787534","url":null,"abstract":"We describe the implementation of a distributed garbage collector for a group of object oriented databases. We start by considering the issues that led to the choice of algorithm and why garbage collection in a database is more difficult than in memory. We describe the algorithm and how it was implemented in Eiffel, using PVM (Parallel Virtual Machine) and the Versant ODBMS.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116076667","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 detection of design problems in object-oriented reengineering","authors":"Oliver Ciupke","doi":"10.1109/TOOLS.1999.787532","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787532","url":null,"abstract":"The evolution of software systems over many years often leads to unnecessarily complex and inflexible designs which in turn lead to a huge amount of effort for enhancements and maintenance. Thus, the reengineering of object oriented software becomes more and more important as the number, age and size of such legacy systems grow. A key issue during reengineering is the identification and location of design problems which prevent the efficient further development of a system. Up to now this problem area has not been sufficiently supported, either by methods, or by tools. We present a technique for analyzing legacy code, specifying frequent design problems as queries and locating the occurrences of these problems in a model derived from source code. We present our experiences with a tool set which we implemented to support this task by automatically analyzing a given system and detecting the specified problems. We applied our tools to check violations of a number of well known design rules in existing source code taken from several case studies, both from industrial and academic fields. These experiments showed that the task of problem detection in reengineering can be automated to a large degree, and that the technique presented can be efficiently applied to real world code.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123770586","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":"Overview of the ROL2 deductive object-oriented database system","authors":"Mengchi Liu","doi":"10.1109/TOOLS.1999.787607","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787607","url":null,"abstract":"The paper presents an overview of ROL2, a novel deductive object oriented database system developed at the University of Regina. ROL2 supports in a rule based framework nearly all important object oriented features such as object identity, complex objects, typing, information hiding, rule based methods, encapsulation of such methods, overloading, late binding, polymorphism, class hierarchies, multiple structural and behavioral inheritance with overriding, blocking, and conflict handling. It is so far the only deductive system that supports all these features in a pure rule based framework.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125891280","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":"When to trust mobile objects: access control in the Jini/sup TM/ Software System","authors":"C. Crichton, J. Davies, J. Woodcock","doi":"10.1109/TOOLS.1999.787541","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787541","url":null,"abstract":"Future developments in computing, and in consumer electronics, will involve a considerable degree of convergence: applications will work together to locate and provide services. If this convergence is to be implemented successfully, then a shared model for reliable service provision is required. The recently released Jini/sup TM/ Software System (1.0) is an attempt to meet this requirement through object orientation. Based entirely upon existing Java/sup TM/ 2 technology, Jini is a set of protocols and programming models for peer-to-peer service provision using downloaded code and remote method invocation. The paper examines the way in which the Jini Software System will be used. It shows that the existing mechanisms for access control and secure operation provided by Java may prove inadequate in a Jini environment: a Jini enabled device will be vulnerable to attack from its peers. Similar problems may be encountered in other related technologies, such as Enterprise Java Beans. An account of the Jini technology is followed by an exploration of the inadequacies and vulnerabilities; concrete examples are provided to illustrate the possible attacks. The paper ends by showing how the existing specification may be enhanced to produce a secure system without significantly reducing either functionality or flexibility.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"454 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116157103","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":"Cooperative software development: concepts, model and tools","authors":"J. Altmann, G. Pomberger","doi":"10.1109/TOOLS.1999.787549","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787549","url":null,"abstract":"The development of large software systems demands intensive cooperation among multiple project team members with different responsibilities. The development process is often distributed across time and space and takes place within and between specialized workgroups. This necessitates finding appropriate answers to questions related to division of labor, to communication, and to coordination and cooperation in the planning, development and maintenance of software systems. Development environments that explicitly support group work are an important prerequisite for the production of high quality software systems. Most of the software development environments in use today support primarily technical aspects and have shortcomings in the area of organizational support. The paper describes a model for cooperative work processes in software projects and a corresponding development environment that provides balanced support for both organizational and technical aspects of software development. The work toward the conception of the model and the implementation of the development environment have been completed, and the evaluation of the proposed approach has begun. Experience to date with using the developed environment confirms the assumption that the cooperative, cluster oriented development improves both productivity and quality. The presented approach excels primarily in its easily understandable model, the intuitive usability of the tools and the comprehensible presentation of process- and product-related information.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115059755","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":"Enhancing an event-based OO framework for distributed programming","authors":"B. Silverajan, J. Harju","doi":"10.1109/TOOLS.1999.787546","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787546","url":null,"abstract":"The paper discusses an asynchronous event based object oriented framework, OVOPS, employing the usage of design patterns to incorporate and interwork with a CORBA enabled environment. Distributed programming is constantly evolving into a very realistic technology which enhances systems integration through interoperability, adaptability and flexibility. However such advantages, coupled with performance, can only be gained by the proper analysis and design of the systems or frameworks in question. A critical examination would reveal that such a framework can be made realistically possible through the usage of object oriented methods combined with the elegance of design patterns and the advances made in CORBA technology. The described environment will ensure consistent creation of protocols and other such similar services through reusable object oriented components communicating over a heterogeneous network while addressing certain shortcomings, such as ensuring asynchronous communication remaining guaranteed and providing native event and message based features without resorting to CORBA based messaging and event services. It also attempts to shield the developer from network specific issues by providing a more generic but very consistent technique to interface to the underlying services. Two areas in which such a framework can be employed are described within the Intelligent Networks realm to illustrate the available methods and practices.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"528 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132657504","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":"Specifying Java frameworks using abstract programs","authors":"A. Mikhajlova","doi":"10.1109/TOOLS.1999.787543","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787543","url":null,"abstract":"We propose a novel approach to specifying, documenting, and reasoning about object oriented frameworks. The novelty of our approach is in combining standard executable statements of a programming language (we choose Java as an example) with possibly nondeterministic specification constructs. A specification of the intended behavior given in this language can serve as a precise documentation for users of the framework and its extension developers. To illustrate the applicability of our method to specification of object oriented frameworks, we demonstrate how one can specify the Java Collections Framework which is a part of the standard Java Development Kit 2.0.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132689593","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":"Contracts: from analysis to C++ implementation","authors":"Reinhold Plösch, J. Pichler","doi":"10.1109/TOOLS.1999.787553","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787553","url":null,"abstract":"Standard C++ does not provide mechanisms for working with assertions in the spirit of design by contract (DBC) as proposed by B. Meyer (1996; 1992). We earlier developed a set of techniques and tools facilitating the prototyping of object oriented architectures based on the idea of design by contract (R. Ploesch, 1997; 1998). As it is crucial for us to support evolutionary prototyping, we need to provide mechanisms to automatically transform the classes and assertions specified in our prototyping environment to C++. Therefore we developed a system that automatically transforms classes and assertions of our prototyping system to C++. As a side effect, our environment provides general mechanisms for realizing design by contract for the programming language C++.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"151 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131823129","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":"Bounding component behavior via protocols","authors":"F. Plášil, M. Besta, Stanislav Visnovsky","doi":"10.1109/TOOLS.1999.787567","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.787567","url":null,"abstract":"We enhance the SOFA Component Description Language with a semantic description of a component's functionality. There are two key requirements this description aims to address: first, it should ensure correct composition of the nested architectural abstractions (for design purposes); second, it should be easy-to-read so that an average user can identify a component with the correct semantics for the purposes of component trading. The semantic description in SOFA expresses the behavior of the component in terms of behavior protocols using a notation similar to regular expressions which is easy to read and comprehend. The behavior protocols are used on three levels: interface, frame, and architecture. The key achievements of the paper include the definition of the protocol conformance relation. Using this relation, the designer can in most cases statically verify that the frame protocol adheres to the requirements of the interface protocols, and that the architecture protocol adheres to the requirements of the frame and interface protocols.","PeriodicalId":147966,"journal":{"name":"Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278)","volume":"2016 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129244086","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}