Evolving communications software: techniques and ... - IEEE Xplore

3 downloads 423 Views 611KB Size Report
understand such systems. Nearly all communications software and distributed appli- ... nents to speed the development of new products, or (minimal- ly) supporting existing ... middlewarc is. 86. IEEE Communications Magazine October 2001 ...
GUESTEDITORIAL Evo LVING

COMMUNICATIONS SOFTWARE: TECHNIQUES AND TECHNOLOGIES

William F. Opdyke

T

Algirdas Pakstas

his fcature topic prcsents recent experience in techniques and technologies for evolving communications software. Our intended audicncc is the community of software cngineers involved in constructing communications software systems and the community of decision-makcrs who nced to understand such systems. Nearly all communications software and distributed application projects have a significant legacy component, whether in cvolving an existing product, leveraging existing components to speed the development of new products, or (minimally) supporting existing protocols and intcrfaces. Even for the most innovative/leading edge products, building on Internet timelines rarely allows for building all of the functionality “from scratch.” This topic has long been recognized as important [ l , 21, but covcrage in the literature has been limited. Software evolution concerns have been addressed somewhat in the softw a r e engine e r i n g , software con f i g u r a t i o n man age m e n t , object-oricntcd, and pattern languages literature, but often thc literature has focused on “fresh start” projects, which are the exception rather than the norm in the communications industry. Some of these issues have been the subject of panels and workshops at Object-Oriented Programming, Systcms, Languages, and Applications (OOI’SLA) conferences, and Pattern Languages of Program Design (PLOP) and related patterns conferences, as well as at Business Applications Sessions at IEEE ICC ’98 and GLOBBCOM ’99 [ 3 ] .Tclccom industry staff have been significant participants in these fora. There are ranges of issucs, somc technical and some organizational, that are key leverage points and need to be further discussed. We believe that industry practitioncrs may benefit from discussion of the following topics: T h e fundamental problems t h a t m a k e it difficult to evolve software Tools and methodologies for evolving communications softwarc Descriptions of cases when communication-rclated software was evolved using various techniques such as design patterns Among the key challenges in evolving communications software (discussed in this feature topic) are: New proposed changes to communications software are 9

Editorial liaison: Ram Batni

86

often orthogonal to the ways in which the software was initially designcd. Often, many of the design insights (applied over a multiyear development life cycle) are not explicitly documente d - and thus, it is difficult f o r developers a n d maintainers to understand the structure and capab of thc existing software. When developing communication software, flexibility and cxtcnsibility often take a back seat to addressing pcrformancc constraints and othcr complcxities - thus, the resultant systems are difficult to evolve. In t h e first article, Mancl details a case study where a refactoring process is applicd to thc evolution of a wireless base station controller system. The refactoring process is a mcans of cleaning up thc design of a software system and supporting new, previously unanticipated changes. The process is composcd of discovery, rcdesign, code copying/ code transformation and retesting phases - analogous to the more traditional analysis, design, coding, and testing phases. Mancl details the discovery aspects and several refactoring-related design patterns. Topics discussed includc the role of use cascs in discovery, an approach to building a n object-oriented design model, and the application of several design pattcrns. In thc second article, Mansurov and Probert describe a n approach to: Extracting scenarios from the legacy software using a combination of dynamic and static stratcgies Automatic synthesis of formal models from thesc sccnarios T h c sccond step is hcavily dcpendcnt on the use of the MOST toolkit, which accepts scenarios in a form of extended message sequence charts (MSCs) and produccs state-based formal models. T h e a u t h o r s illustrate t h c use of their approach by presenting a case study of recovering the design of a small-sized system, ToolExchange. The authors believe that recovered design provides a starting point and some necessary guidance for the ordcrly evolution of communications software. The third article, by Wang, Parameswaran, Schmidt, and Othman, presents a systematic overview and evaluation of the common meta-programming mechanisms supported by distributed object computing (DOC) middleware. Increasingly, D O C middleware is used to shield developers from many of thc tcdious and error-prone aspects of designing and dcvcloping communications softwarc. The resultant middlewarc is

IEEE Communications Magazine

October 2001

GUESTEDITORIAL often complex and finely tuned. Inevitably, applications built using this middlcware will subsequently need to evolve in ways that includes support for new protocols, quality of service (QoS), and performance strategies. Among mechanisms that can help improve the evolvability and adaptability of distributed applications (by modifying their behavior without changing their existing software designs) are smart proxies, interceptors, and pluggable protocols. After describing these approaches, the authors compare them with respect to generality, overhead, portability, and suitability for integration in various lifecycle phases. The editors hope that publishing this Feature Topic will promotc wider usc of these and other software evolution techniques in the telecommunications industry - and stimulate research into other (related) complex and high-leverage topics relatcd to evolving communication softwarc, addressing issues such as: How to effectively organize development projects for cvolving communications software How to manage the tension between customer-spccific variations and maintaining an cvolving (and evolvable) code basc Additional tools and techniques for design rccovery and for addressing discovery costllearning curve issues 9

REFERENCES [ I ] A. Pakstas and N. Zolotaryov, Syntax-Oriented Components of Distributed Systems: Development and Debugging Tools on the Basis of Formal Descriptions, Moscow: Nauka, 1992.

IEEE Communications Magazine

Octobcr 2001

[21 Davison, Mancl, and W. Opdyke, "Understanding and Addressing the Essential Costs o f Evolving Systems," Bell Labs Tech. J., Apr.-June

2000. 131 A. Pakstas, "Communications Software Engineering: Methods and Project Management Tools," GLOBECOM '99, Rio-de-Janeiro, Brazil, Dec. 6-10, 1999.

BIOGRAPHIES WILLIAM

F. OPDYKE ([email protected]) has spent most of his career focusing

on issues related to software evolution and the complexities of design and developing communications software. His doctoral research at the University of Illinois at Urbana-Champaign focused on refactoring object oriented frameworks. During his twenty year career at Lucent TechnologiesiBell Labs (where he was a distinguished member of technical staff) he led several efforts related disruptive technologies, internet telephony, evolving telecom systems, object-oriented technologies, distributed platforms, and customer/ problem understanding. He is a member of the ACM, and has been active in object-oriented and patterns-related professional fora. PAKSTAS ISM] ([email protected])received his M.Sc. in radioALGIRDAS physics and electronics in 1980 from the lrkutsk State University, his Ph.D. in systems programming in 1987 from the Institute of Control Sciences, and his professorship from Agder College in 1997. He is currently with the University of North London, where he is doing research in software engineering for distributed computer systems, communications engineering, and real-time systems. Has published t w o research monographs and over 100 other publications. He is active in the IEEE Communications Society Technical Committees on Communications Software, Enterprise Networking, and Multimedia Communications. He is involved in organizing many IEEE Communications Society conferences in various capacities, most recently as vice-chair of ICC 2000 and co-chair of the Next Generation Internet Symposium at ICC '01. He i s a member o f the IEEE Computer Socety as well as of ACM and the New York Academy of Sciences.

87