First presented at CALECO
The idea behind Model Master is that instead of writing formulae directly into spreadsheet cells, the programmer describes a model in a programming language, MM. Superficially, MM resembles Pascal or Modula: it has keywords, expressions, type declarations, and so on. This program is then fed through the MM compiler, which converts it into spreadsheet formulae and data, finally loading them into one or more worksheets.
MM is ``object-oriented'', meaning that MM programs view the world as a collection of interacting objects. In a business model, these objects might be companies, departments, markets, and so on. Each object has several ``attributes'' or properties. For a company, these might include incomings, outgoings, and profit. Finally, an object will usually have ``behaviour'': one or more equations specifying how these attributes are related. A reasonable equation for our simple company would be that profit is always equal to incomings minus outgoings. The MM compiler maps these objects onto a worksheet by allocating attributes to columns.
In some cases, we may want to model objects which evolve over time. For example, we might to simulate our company's growth between the years 1995 and 2001. In this case, we can ask the compiler to use the rows on the spreadsheet to represent time points, mapping sucessive points in its history to successive rows.
As well as specifying each object's behaviour, the programmer must also specify how different objects interact, and can also say where they are to appear on the generated worksheet.