{"title":"Applied software engineering principles for UML","authors":"Bernhard Rumpe, R. Breu, Ingolf Krüger","doi":"10.1109/TOOLS.1999.779099","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779099","url":null,"abstract":"Summary form only given, as follows. The crucial factors for Unified Modeling Language's (UML¿s) broad acceptance in the future are the thorough understanding of its concepts, an in-depth knowledge about the meaning and manipulation of notations, and a coherent methodological framework. Therefore, in this tutorial we will focus both on a thorough treatment of UML¿s description techniques and on their seamless integration into a practical development process for sequential and concurrent systems.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"31 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":"115042346","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":"Robust dynamic exchange of implementation aspects","authors":"Welf Löwe, R. Neumann, M. Trapp, W. Zimmermann","doi":"10.1109/TOOLS.1999.779066","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779066","url":null,"abstract":"We show a technique for consistent dynamic exchange of different aspects of implementations of abstract data types, in particular data structure representations and algorithms. Previous work showed how one single aspect's implementation can be exchanged dynamically without running into robustness problems if other aspects are guaranteed to be fixed. The present work generalizes this idea in the sense that all aspects' implementations may be exchanged arbitrarily at run time where robustness is preserved. We use finite state machines where each state represents a combination of the different implementations and each transition an exchange of exactly one aspect's implementation. We use these state machines to check for the robustness of a class within a certain application context.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"32 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":"115140574","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":"Visual programming: Tips and techniques - Using VisuAlage for Java","authors":"Steve Edwards","doi":"10.1109/TOOLS.1999.779102","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779102","url":null,"abstract":"Summary form only given, as follows. This talk provides an insight into a variety of approaches to using visual programming tools. The talk introduces techniques that assist in the production of well designed, visually programmed software systems. Visual programming tools are very powerful but offer many paths that allow for the production of software that is difficult to maintain and interpret. The techniques introduced in this talk provide a basic framework for reducing the possibilities for developers to \"shoot themselves in the foot.\" IBM¿s VisualAge for Java is used as the basis for a variety of demonstrations showing these techniques in action.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"13 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":"121415458","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":"Dynamic reuse of services in distributed systems","authors":"Gautier Koscielny, Salah Sadou","doi":"10.1109/TOOLS.1999.779061","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779061","url":null,"abstract":"In the context of open distributed systems, subject to continuous addition of service offers and constant evolution, suitable (re)use of software components remains difficult to achieve. Improved support for dynamic reuse and accommodation of services is required to cope with the diversity of object implementations and specifications. We introduce a programming abstraction called the service group. A service group represents a mediator between weakly coupled distributed objects. It allows the transparency of access to an aggregation of instances of different types related to the same domain of use. It unifies the interface specification of the same service provided by different objects. This is achieved thanks to a type conformance relation between similar services. This approach has several advantages for client objects ranging from late binding improvement to service availability increase. Another advantage lies in the fact that this abstraction enables the composition of existing services and the definition of coordination patterns providing new generic services.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"30 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":"127750865","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":"Lessons learned introducing an object-oriented database in the telecom industry","authors":"A. Ishaq","doi":"10.1109/TOOLS.1999.779014","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779014","url":null,"abstract":"In order to be able to meet an extremely stringent time limit on the development of the Authentication Centre for the TACS mobile users of TIM, it was decided to utilise an object-oriented database, viz. ObjectStore. We learned some positive lessons: it allowed us to reduce design time (database design, transaction handling, fault-tolerance concurrency handling), gave us extremely high performance which allowed us further time for development and allowed us to serialise a server eliminating the need for deadlock detection. We also learned some negative lessons: unexpected problems (necessity of physical allocation schemes, address space), missing or poor features in the product (extent handling, versioning, scalability, ODMG compatibility, support for C++ STL). Since only a few members on the team had any knowledge of the workings of an OODBMS, the experience also proved the usefulness of OO technology whereby team members managed, nonetheless, to use the OODMS successfully as it was encapsulated in the domain classes.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"42 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":"121596645","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":"Trusted components - 2nd Workshop on Trusted Components","authors":"J. Jézéquel","doi":"10.1109/TOOLS.1999.779108","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779108","url":null,"abstract":"Summary form only given, as follows. Using ¿off-the-shelf¿ software components in mission-critical applications is not yet as commonplace as in desktop applications. Opposite to electronic components, there is a lack of methods and quality estimates in the software domain which makes it difficult to build trust into software components. While electronic devices have sets of measures characterizing their quality (reliability, performances, use-domain, speed scale), no real consensus exists to measure such quality characteristics for software components. A second problem is the software component expected capability to evolve (addition of new functionality, implementation change) and to be adapted to various environments. Trusted components are reusable software elements equipped with a strong presumption of high quality, based on a combination of convincing arguments of various kinds: technical (e.g. Design by Contract, thorough and meaningful testing, appropriate programming language, formal proofs), managerial (e.g. systematic process based on CMM or similar), social (e.g. reputation of the components¿ authors). The idea of trusted components was introduced in an IEEE Computer article of May 1998 and earlier presentations in the same journal (Object Technology column). A first Trusted Components workshop was held at Monash University (Melbourne, Australia) at the end of TOOLS PACIFIC 1998 on November 28, 1998. The purpose of this workshop is to set up a forum where interested people can share their point of view on the idea of trusted components and identify research directions to help the industry move towards this goal.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"29 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":"131888227","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-testable components: from pragmatic tests to design-for-testability methodology","authors":"Yves Le Traon, D. Deveaux, J. Jézéquel","doi":"10.1109/TOOLS.1999.779003","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779003","url":null,"abstract":"Testing is a key aspect of software development, because of its cost and impact on final product reliability. Classical views on testing and their associated testing models, based on the waterfall model, are not well-suited to an OO development process. The standardization of semi-formal modeling methods, such as UML, reveals this trend: testing can no longer be separated from specification/design/code stages. A test approach integrated with the OO process must be defined with an associated testing philosophy. The approach presented in the paper aims at providing a consistent framework for building trust into components. By measuring the quality of test cases, we seek to build trust in a component passing those test cases. We present a pragmatic approach for linking design and test of classes, seen as basic unit test components. Components are self-testable by enhancing them with embedded test sequences and test oracles. Self-testable components serve as building blocks for performing systematic integration and non-regression testing. The main contribution presented in the paper consists of using component self-tests to systematically exercise main system structural dependencies. This approach has been implemented in the Eiffel, Java, Perl and C++ languages. Since it is simpler, due to the direct support for Design-by-Contract(TM) in the language, the Eiffel implementation is detailed.","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":"125761453","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":"Understanding software component technologies: JavaBeans and ActiveX","authors":"G. Pour","doi":"10.1109/TOOLS.1999.10018","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.10018","url":null,"abstract":"Summary form only given, as follows. In component-based software development (CBSD), reusable software components are assembled within appropriate software architectures. This delivers the promise of large-scale software reuse and has the potential to improve software reliability, time-to-market, maintainability and quality. This tutorial will provide participants with the opportunity to acquire a good understanding of the two leading component technologies: JavaBeans and ActiveX (DCOM), so as to be able to select the right one for their projects.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"54 3 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":"125925672","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":"Analysis by contract: UML with attitude!","authors":"R. Mitchell","doi":"10.1109/TOOLS.1999.10015","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.10015","url":null,"abstract":"Summary form only given, as follows. At the heart of the Unified Modeling Language (UML) are a number of visual modeling notations for describing classes, states, and so on. The UML also contains an Object Constraint Language, OCL, for adding precision to models. OCL can be used to add preconditions, postconditions and invariants to classes or types, allowing the precision of design by contract to be applied at any level of abstraction. This tutorial will introduce OCL, and show it in action on a small case study. It will emphasize how abstraction need not lead to a loss of precision, and how precision can allow powerful cross-checking of models, thereby improving the analysis process. Precision will be increasingly important as the software industry moves further towards component-based development. The case study will emphasize: why types are a suitable analysis-level abstraction; how type models can provide a vocabulary for behavior modeling; how type models can be improved with invariants; how state modeling can support analysis-level modeling; how state models and type models can be cross-checked; how behavior can be expressed using preconditions and postconditions.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"22 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":"127832359","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":"Designing reusable object-oriented architectures - challenges, methods & tools","authors":"K. Koskimies, J. Bosch, W. Pree, G. Hedin","doi":"10.1109/TOOLS.1999.779107","DOIUrl":"https://doi.org/10.1109/TOOLS.1999.779107","url":null,"abstract":"Summary form only given, as follows. More and more software developers are recognizing the need for solutions that make it possible to share code between different applications in the same domain. Reusing code increases not only the productivity of the developers but also the reliability and maintainability of the software products. Many software companies have ended up with a repository of enterprise components modelling the core business of the company, or with a product-line architecture that captures the common aspects of a family of software products. In both cases, object-orientation (OO) offers a technology that enables these solutions. The workshop studies the problems in designing reuse-oriented architectures (ROA) within the OO paradigm and the OO techniques that support this. The design of such systems is much harder than the design of individual applications, because ROAs need to be valid for unforeseen applications. Instead of a closed world of application concepts, the designer must analyze the variable aspects of a domain. The workshop covers a wide range of topics related to the development of ROAs, including: Design methods for OO product-lines/frameworks; Case studies of existing ROAs; Patterns and architectural styles supporting ROAs; Component-based ROAs; Evaluation of ROAs; Tools supporting the creation and reuse of product-line platforms and frameworks; Documentation of product-line platforms and frameworks; Practical experiences with reuse in OO; and Re-engineering legacy systems into ROAs.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"88 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":"114877647","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}