Premium
A viable system structure for large‐scale software systems
Author(s) -
Deubler HannsHelmuth
Publication year - 1999
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/(sici)1097-024x(199910)29:12<1025::aid-spe265>3.0.co;2-4
Subject(s) - computer science , common object request broker architecture , structuring , distributed computing , software system , modularity (biology) , software engineering , software , flexibility (engineering) , interface (matter) , software development , component based software engineering , scope (computer science) , modular design , process (computing) , legacy system , operating system , programming language , statistics , mathematics , finance , bubble , maximum bubble pressure method , biology , economics , genetics
A homogeneous system structure is proposed that enhances modularity and flexibility, and facilitates (further) development of large‐scale software systems in a major‐industry environment. In our opinion, it is an effective means of countering the inherent increase in software entropy when (further) developing existing large‐scale software systems, thereby substantially cutting down production costs. It can be applied generally both to new and existing systems, whether application programs or operating systems, promotes the parallel use of different programming paradigms and various implementation languages, and offers the option of either redesigning parts or introducing additional parts in stages based on a more modern technology. The proposed system structure is compared and contrasted with other architectures such as CORBA, and it is shown that it may be regarded as an embellishment of the CORBA architecture for the internal structuring or restructuring of possibly distributed software systems. So far it has been used in four releases of the BS2000/OSD operating system with very positive results. Dependencies between various entities – which we call ‘subsystems’ – in the course of the (further) development process, as well as during dynamic execution are minimized and well‐regulated. The subsystems may be loaded on demand during the session by a system authority. Every interface in the system is classified according to its permitted scope of use. For interfaces between subsystems, a uniform and standardized technique is introduced which uses the same format for all implementation languages at both the source‐ and binary‐code level. This technique exceeds the regulations in other architectures but actually achieves considerable rationalization. Copyright © 1999 John Wiley & Sons, Ltd.