{"title":"Building reusable software","authors":"S. Parker","doi":"10.1109/TOOLS.1999.10002","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.10002","url":null,"abstract":"Summary form only given, as follows. Reusing software improves quality as well as productivity. In practice, it is hard to achieve significant levels of reuse in commercial applications beyond generic support software. This tutorial will present programming and design techniques for achieving more reuse. The first session will examine the obstacles to reuse in commercial data processing, and illustrate the potential benefits. The main session will: 1) consider design reuse, source code reuse and routine libraries; 2) review the principles of modular design, cohesion, coupling and information hiding; 3) show how inheritance and dynamic binding extend and enhance these established techniques. The final session addresses organisational aspects of reuse, an alternative project lifecycle, metrics and developer motivation. The tutorial is intended for developers and their managers regardless of language, method or platform.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"99 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127673394","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":"Use cases considered harmful","authors":"A. Simons","doi":"10.1109/TOOLS.1999.779012","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779012","url":null,"abstract":"This article traces the unstable semantics of use cases from Jacobson to UML 1.3. The UML 1.1 metamodel formally defined the \"uses\" and \"extend\" use case relationships as stereotypes of generalisation, yet both received interpretations that varied between inheritance and composition, reflecting a large degree of confusion among developers. The recently revised UML 1.3 has quietly dropped these in favour of new \"include\" and \"extend\" relationships, which are styled instead as kind of dependency. Despite this change, the deployment of use case diagrams encourages analysts to correspondence and develop models which conceal arbitrary jumps in the flow of control, corresponding to goto and come from statements, and in which unpleasant non-local dependencies exist across modules. A discussion of examples reveals how a conscientious designer must disassemble use case models completely to produce properly-structured code. A radical solution is proposed.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123020302","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":"Very high level programming with collection components","authors":"M. Evered, G. Menger","doi":"10.1109/TOOLS.1999.779078","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779078","url":null,"abstract":"Despite the possibility of providing standard collection frameworks, object-oriented languages do not generally encourage a 'very high level' style of programming in which collection components are regarded as first class citizens and in which different implementations for a collection can be exchanged without affecting the correctness of a program and with minimal change to the source code. This results both from weaknesses in the structure of the frameworks and from the poor degree of integration of collections into the languages. We present a new approach to the integration of collections in object-oriented languages in which collection types are part of the language but collection implementations are not. We also show how the integration of collection types allows automatic conversions which, among other advantages, provide a new solution to the problem of statically type-safe compatibility for collections.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128118339","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":"Unleashing the power of distributed enterprise information systems","authors":"Trygve Reenskaug, Lasse Bjerde","doi":"10.1109/TOOLS.1999.10008","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.10008","url":null,"abstract":"Summary form only given, as follows. The communication-centered architectures represent a new paradigm that subsumes the older storage-centered and computation-centered architectures. The main advantages of the new architectures are unlimited size and complexity, distributed ownership and control, and a higher level of reuse through components. This tutorial is intended to prepare the participant to meet the challenges of the era of distribution by giving a roadmap to the new technology. What changes are needed in personal competence, organization, and development processes in order to meet its challenges and reap its benefits? Architectural themes covered include 1) The connected society, a new system paradigm; 2) Separation of concern with role models, responsibilities and interfaces; 3) Powerful reuse with components; 4) The component developer - a new layer in the value chain.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"62 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130337922","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":"Multiparadigm Design and Implementation in C++","authors":"J. Coplien","doi":"10.1109/TOOLS.1999.10007","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.10007","url":null,"abstract":"Summary form only given, as follows. C++ is a programming language that supports multiple paradigms: classes, overloaded functions, templates, modules, procedural programming and more. Despite the language¿s flexibility and richness, however, there has previously been little effort to create a design method to support multiple paradigms within a single application. This tutorial explores a coherent framework for multi-paradigm design, offering an advanced set of design practices that form the foundation for a formal multi-paradigm design method. Attendees will gain an understanding of domain engineering methods that support multi-paradigm design. The presentation reveals how to analyze the application domain using principles of commonality and variation to define subdomains according to the most appropriate paradigm for each. The course explores deep questions of design to address fundamental issues of software abstraction.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130604484","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}
F. J. Zarazaga-Soria, J. Valiño, S. Comella, J. Nogueras-Iso, P. R. Muro-Medrano
{"title":"TRUNIS: an object oriented trunking radio telephone network information system-an experience report","authors":"F. J. Zarazaga-Soria, J. Valiño, S. Comella, J. Nogueras-Iso, P. R. Muro-Medrano","doi":"10.1109/TOOLS.1999.779017","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779017","url":null,"abstract":"The paper shows our experience in developing a trunking radiotelephone network information system using object oriented technologies. The developed information system has the network management responsibility and it offers a complete set of utilities to the network operator to facilitate its work. It has been necessary to balance requirements from the management point of view (real time interaction, statistics, etc.), requirements from the technical connection with the network (different technologies, buffering problems, etc.), and extra requirements imposed by the client (remote management option, easy to platform migration, etc.). Representation techniques based on object meta knowledge have been used as a powerful tool to provide a flexible and easy to extend mechanism to cover application design and implementation phases. The adopted architecture and the main components and their orchestration are described. The paper includes learned experiences, development criteria, problems and choices of commercial products.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"203 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133877587","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":"DSDM: Dynamic Systems Development Method","authors":"J. Stapleton","doi":"10.1109/TOOLS.1999.10000","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.10000","url":null,"abstract":"Summary form only given, as follows. The Dynamic Systems Development Method (DSDM) is about people, not tools. It is about truly understanding the needs of a business, delivering software solutions that work and delivering them as quickly as possible. The DSDM provides a framework of controls and best practice for rapid application development. It was created by a consortium of organizations and since its publication in January 1995, it has proved to be extremely effective in delivering maintainable systems which match the needs of the business better than those produced using traditional life cycles. This tutorial will be an introduction to DSDM, given by the Chairman of the Technical Committee which developed the method.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125233617","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 and use of industrial software architectures","authors":"J. Bosch","doi":"10.1109/TOOLS.1999.779093","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779093","url":null,"abstract":"Summary form only given, as follows. Industry is increasingly performing its software development in the context of an explicitly defined software architecture. A typical example of this is formed by the recent adoption of product line architectures by several large corporations. The tutorial presents experiences and research results collected in the domain of software architecture within our research group based on our cooperation with a large collection of software development companies. More concretely, the tutorial presents experiences from architectural design, a method for architectural design, architecture evaluation techniques, and results from a case study on the problems and issues of industrial use of product-line architectures.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"52 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130737721","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 \"framework\" for object oriented frameworks design","authors":"D. Parsons, A. Rashid, A. Speck, A. Telea","doi":"10.1109/TOOLS.1999.779007","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779007","url":null,"abstract":"Object-oriented frameworks are established tools for domain-specific reuse. Many framework design patterns have been documented, e.g. reverse engineering framework architectures from conventionally built applications for a given domain. The framework development cycle generally evolves from an open framework to a closed application. We describe a more flexible component-based approach to framework design that stresses a common interface for 'plugging-in' new components at different lifecycle stages. An analysis of framework-related user roles shows that the classical developer/end-user boundary is too rigid. We see the framework's development as a continuum within which its 'actors' can customise its behavior. This both increases the system's flexibility and reduces its maintenance requirement. A case study of three frameworks for different application domains illustrates the presented principles.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134109664","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":"Internet servers, safe-language extensions, and structured resource control","authors":"G. Czajkowski, T. V. Eicken","doi":"10.1109/TOOLS.1999.779021","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779021","url":null,"abstract":"The growing role of server systems, especially in the context of the World Wide Web, requires providing flexible and inexpensive mechanisms for accounting for and controlling of resources consumed by individual requests. To a large extent, the Internet server models currently deployed fail in this respect. The focus of this work is to alleviate some problems related to resource management in server environments. In particular, we propose a structured approach to binding threads (execution entities) to resource accounts (abstractions encapsulating rights to using particular amounts of particular resources). The approach advocates separation between protection domains (processes) and resource management; we argue that this is more appropriate for server systems than traditional approaches. Resource accounts address some issues related to trust and to dividing complex requests into separate sub-requests.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132875179","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}