Object oriented software technologies applied to switching system architectures and software development processes

This paper describes a switching system architecture and an associated software development process that establishes a foundation for increased software productivity and quality. The soft ware architecture is based on plug-compatible software com ponents that can be inoemented independent ofone another. The degree of independence between components is such that an individual component can be e4bted, compiled, and loaded on a target system independent of all other components. To achieve AW independence the system runtime environment is designed to make components insensitive to runtime data in other com ponents and to eliminate the need for a compile time definition of component interfaces. This was accomplished by using a Lisp language environment with object oriented wensions (Flavors) and a distributed processor operating system that is capable of routing messages to components addressed by symbolic names. Improvements in software productivity are based upon the premise that the Wistics required to produce large software products with conventional software development environments are a major obstacle to softwareproductivity. We observe that the time required to build large software products, the number of changes incorporated into these products, and the management overhead required to coordinate system changes are unaccept ably large. These limitations severely restrict our capacity to evolve and iterate system designs, and arisefrom our inability to make independent incremental changes to the system. A software development environment (SDE) that provides a very rapid edit-compile-test cycle is essentialfor supporting the evolution of switching system software architectures. We have determined that such an SDE (originally built for artificial intel ligence research) can be usedto design afullyfunctional switch ing system An indqpendenr trial of this process for a medium sized system (200K C source lines) indicates a possible factor of two increase in productivity for the complete software develop ment Cycle. A functionally distributed prototype switching system was built using this approach. It encompassesIMN local office calls, interoffice calls, processor recovery, recent change, and a system maintenance console. Initial performance measurements indi cate that performance acceptable for switching applications can be achievedwith a realtime-efficient Lisp implementation hosted on processors customized to the language environment