We have performed high-level functional-based system engineering for several projects, including architecting store-and-forward satellite networks, complex single- and multi- spacecraft missions (both with and without propulsion), and coordinated space-ground experiments, payloads and systems. The space and ground systems are organized to be as flexible as possible to meet changing customer demands.
Our approach to system design is to develop methods of meeting specific individual requirements in general terms, in order to maximize future reusability of system components. We tend to develop distributed systems which contain interconnected functionally-specific components coupled with generic, lower-capability computing elements. This type of system architecture, if done properly, is extremely versatile and extensible.