"Constructed Complex Systems" are heterogeneous software and hardware systems that have to function in complex environments. Building and managing such a sytem requires explicit infrastructure that includes models of the system, its arechitecture, and its environment. We describe "wrapping", our knowledge-based integration infrastructure, and show by example how the meta-knowledge that wrappings contain, and the expressive uniformities that result from stepping up to a meta-level, lead to much cleaner descriptions of many software processes. We describe our Problem Posing Interpretation of programming lanugages, and the corresponding wrapping expression notation"wrex", and show its use both for programming the internal details of a system and for describing a system lifecycle process. We apply our methods to two examples: migration of disparate database systems into a common standard, and the process of "Software Disintegration", which identifies models of components of software and should be part of any software or system re-engineering process.
展开▼