This chapter introduces the notion of software architecture, which is becoming a prominent topic in the Software Engineering literature. It presents a case study, clearly reflecting the author's interests, which nevertheless illustrates some of the complexities that may arise in developing a heterogeneous system. The remainder of this chapter is rather technical, intended to illustrate the issues that arise in glueing different object models together.