M. Woodman, R. Griffiths, M. Macgregor, S. Holland
{"title":"OU LearningWorks: a customized programming environment for Smalltalk modules","authors":"M. Woodman, R. Griffiths, M. Macgregor, S. Holland","doi":"10.1145/302405.302910","DOIUrl":"https://doi.org/10.1145/302405.302910","url":null,"abstract":"We have exploited and adapted Goldberg's LearningWorks framework to produce an environment with new programming tools, visualization tools, and system simulations. The environment is designed to be used via plug-in modules, called LearningBooks, sets of classes and persistent objects, for which we have developed a pedagogic standard that includes, for example, an HTML browser and various of the aforementioned tools and systems. The context for this development has been a distance learning degree-level course in object technology which is enrolling over 5000 mature students per year, mostly in the UK, Western Europe and Singapore. The course, M206, Computing: An Object-oriented Approach from the Open University (OU), will soon be introduced into the USA. While adhering to the original conception of LearningWorks that it promote a software engineering approach of systems building, we have successfully added support for the needs of the distance learning neophyte. By showing various microworlds and programming tools these notes outline the environment we have implemented and deployed.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123188387","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":"The international symposium on software engineering for parallel and distributed systems PDSE'99","authors":"P. Croll, H. El-Rewini","doi":"10.1145/302405.302967","DOIUrl":"https://doi.org/10.1145/302405.302967","url":null,"abstract":"The PDSE’99 symposium, now in its fourth successive year, is a continuation of the inaugural PDSE’96 workshop held in conjunction with ICSE-18 in Berlin. This was followed by ICSE events in Boston, 1997 and in Kyoto, 1998. The PDSE symposiums attract up to 50 delegates from a wide range of backgrounds from both industry and academia from around the world. The papers are always published internationally, more recently as IEEE proceedings, and are refereed by a minimum of three independent experts in the field. The talks include keynote speakers with an emphasis on first hand experience of industrial applications and large-scale projects.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"5 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123692790","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":"Avoiding packaging mismatch with flexible packaging","authors":"R. Deline","doi":"10.1145/302405.302456","DOIUrl":"https://doi.org/10.1145/302405.302456","url":null,"abstract":"To integrate a software component into a system, it must interact properly with the system's other components. Unfortunately, the decisions about how a component is to interact with other components are typically committed long before the moment of integration and are difficult to change. This paper introduces the flexible packaging method, which allows a component developer to defer some decisions about component interaction until system integration time. The method divides the component's source into two pieces: the ware, which encapsulates the component's functionality; and the packager, which encapsulates the details of interaction. Both the ware and the packager are independently reusable. A ware, as a reusable part, allows a given piece of functionality to be employed in systems in different architectural styles. A packager, as a reusable part, encapsulates conformance to a component standard, like an ActiveX control or an ODBC database accessor. Because the packager's source code is often formulaic, a tool is provided to generate the packager's source from a high-level description of the intended interaction, a description written in the architectural description language UniCon. The method and tools are evaluated with two case studies, an image viewer and a database updater.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123916403","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}
R. Kazman, M. Barbacci, M. Klein, S. Carrière, S. Woods
{"title":"Experience with performing architecture tradeoff analysis","authors":"R. Kazman, M. Barbacci, M. Klein, S. Carrière, S. Woods","doi":"10.1145/302405.302452","DOIUrl":"https://doi.org/10.1145/302405.302452","url":null,"abstract":"Software architectures, like complex designs in any field, embody tradeoffs made by the designers. However, these tradeoffs are not always made explicitly by the designers and they may not understand the impacts of their decisions. This paper describes the use of a scenario-based and model-based analysis technique for software architectures-called ATAM-that not only analyzes a software architecture with respect to multiple quality attributes, but explicitly considers the tradeoffs inherent in the design. This is a method aimed at illuminating risks in the architecture through the identification of attribute trends, rather than at precise characterizations of measurable quality attribute values. In this paper, the operationalization of ATAM is illustrated via a specific example in which we analyzed a U.S. Army system for battlefield management.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121894345","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 systematic approach to derive the scope of software product lines","authors":"Jean-Marc DeBaud, Klaus Schmid","doi":"10.1145/302405.302409","DOIUrl":"https://doi.org/10.1145/302405.302409","url":null,"abstract":"Product line scoping is a critical activity because it elicits the common realms upon which the different products of a product line can be optimally engineered with respect to economies of scope. This, in turn, upper bounds the overall economic benefits that can be accrued from product line based development. Inherently, product line scoping is difficult because of the complexity of the factors that must be taken into account. Many are not known a priori. Traditional scoping approaches (from domain engineering) have focused on the notion of application domains. However, domains proved difficult to optimally scope and engineer from an enterprise standpoint because a domain captures extraneous elements that are of no interest to an enterprise which must focus on particular products, whether existing, under development, or anticipated. Hence, the domain view provides a flawed economic basis for making a scoping decision. We introduce PuLSE-Eco, a technique especially developed to address the aforementioned issues. Its main characteristics are: a complete product-centric orientation done via product maps, the separation of concerns achieved through the definition and operationalization of strategic business objectives, and last, diverse types of analyses performed upon product maps allowing scoping decisions based on these objectives. We illustrate the technique with a running example.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121133831","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 method refactoring using weighted dependence graphs","authors":"Katsuhisa Maruyama, Kenichi Shima","doi":"10.1145/302405.302627","DOIUrl":"https://doi.org/10.1145/302405.302627","url":null,"abstract":"While refactoring makes frameworks more reusable, it is complex to do by hand. This paper presents a mechanism that automatically refactors methods in object-oriented frameworks by using weighted dependence graphs, whose edges are weighted based on the modification histories of the methods. To find the appropriate boundary between frozen spots and hot spots in the methods, the value of the weight varies based on whether the dependence in the original methods has been repeatedly preserved or destroyed in the methods of applications created by programmers. The mechanism constructs both template methods that contain the invariant dependence and hook methods that are separated by eliminating the variant dependence. The new template methods and hook methods tailored to each programmer save him/her from writing superfluous code when reusing a framework. Experimental results show a reduction rate of up to 22% in the number of statements a programmer has to write when creating several applications; this percentage is double that achievable by a conventional refactoring technique.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116923587","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":"Failure and success factors in reuse programs: a synthesis of industrial experiences","authors":"Michel Ezran, M. Morisio, C. Tully","doi":"10.1145/302405.302955","DOIUrl":"https://doi.org/10.1145/302405.302955","url":null,"abstract":"This tutorial presents the essential concepts of software reuse, and the key issues on how to introduce effectively reuse in companies producing software or systems. Large part of the tutorial is dedicated to present examples and lessons learnt from industrial projects. Failure factors are discussed as well as success factors. The tutorial is the result of the Esprit ESSI project n. 23960, SURPRISE, funded by the European Commission. SURPRISE (SURvey on the Possibilities of Reuse In Software Engineering) has deeply analyzed over 18 reuse projects performed in Europe from 1994 to 1997, in order to extract from them practical lessons on what to do, and what not to do, in order to introduce reuse into companies.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131714432","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":"Distributed objects","authors":"W. Emmerich, Neil Roodyn","doi":"10.1145/302405.302926","DOIUrl":"https://doi.org/10.1145/302405.302926","url":null,"abstract":"This tutorial motivates the need for, and discusses the principles of object-oriented distribution middleware. We will give an overview how these principles are supported by the major incarnations of object-oriented middleware, the Object Management Group’s Common Object Request Broker Architecture (CORBA), Microsoft’s Distributed Component Object Model (DCOM) and Java’s Remote Method Invocation (RMI). We will discuss common design problems that occur when building applications using distributed objects and present techniques for their solution.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134553798","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":"Agent system development method based on agent patterns","authors":"Yasuyuki Tahara, Akihiko Ohsuga, S. Honiden","doi":"10.1145/302405.302657","DOIUrl":"https://doi.org/10.1145/302405.302657","url":null,"abstract":"As wide-area open networks such as the Internet and intranets grow larger, agent technology is attracting more attention. Agents are units of software that can deal with environmental changes and the various requirements of open networks through features such as autonomy, mobility, intelligence, cooperation, and reactivity. However, since the usual development method of the agent systems is not sufficiently investigated, the technology is not yet widespread. This paper proposes a method of agent system development based on agent patterns that represent typical and recurring structures and behaviors of agents. The agent patterns are classified according to their appropriate architectural levels and the degree to which they depend on specific agent platforms. Our method enables developers to design agent systems efficiently since they can construct complicated system architectures and behaviors by dividing the design process into two architectural levels and applying the appropriate agent patterns. In addition, the higher level designs are independent of specific agent platforms and can be therefore easily reused.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121338987","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 safe software for medical devices","authors":"David M. MacKenzie","doi":"10.1145/302405.302717","DOIUrl":"https://doi.org/10.1145/302405.302717","url":null,"abstract":"With the proliferation of new products for medical therapy and diagnosis, the integrity of embedded software for medical devices has become a major section of the software development industry. Such products as implanted drug delivery pumps, pacemakers and defibrillators, expert system cancer cell diagnostics, laboratory DNA-based diagnostics, or high-volume robotic sample-handling systems illustrate the wide range of software needs.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128637012","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}