COSTMOS — Cost Modelling Studio
The goal of the project is the creation of an effective tool for solving business trade-off problems. This software allows designing cost estimation models and using them to make business decisions (models simulation).

Everyone knows about Cost Modelling as a mental work, since every person faces the problem of making a decision under uncertainty. Take, for instance, catering — one has to decide on which food and drinks to buy to satisfy guests but minimize the expenses. Buying a car is also a tough decision — choosing the one from the variety of models proposed by the market, considering credit conditions, etc. Problems like these are usually solved without using computer programs, but rather relying on the personal experience and intuition. However, when it comes to the corporate activities, it is more reasonable to build a model and evaluate options. For example, buying component parts at one supplier yields better prices, but the transportation cost is somewhat higher than by the closer one with higher prices. Even this simplest model requires some calculations to find an optimum.

A very handy tool for cost modelling is Microsoft Excel. Nowadays every manager or engineer can build a model by means of Excel — i.e. put formulae into spreadsheet cells that show the dependencies between cost indicators and parameters, enter the data, perform case study calculations, build plots.

The question is: what else is needed? The necessity for extra tools emerges when the model spans a huge number of cases or when the model complexity reaches thousands of formulae. Advantages of spreadsheets — simplicity, clearness, keeping the dependencies in the formatted cells along with the input and output — turn into incoveniences when complexity of the model increases. Use of spreadsheets precludes structuring and highlighting components of a complex model. It is hard to trace long chains of references between cells, especially references between different sheets —  the more complex a model is, the more it looks like spaghetti. Inseparability of data and formulae impedes the evaluation of a large number of cases: it is either necessary to enter new input parameters every time storing the results outside the spreadsheet or to clone the spreadsheet populating it with different sets of data. One may also further complicate the model by adding new sets directly into the document.

Alternatively, it is possible to develop a special software package implementing the model (since a formula in the spreadsheets implicitly gives rise to the program code). However, in order to create such a model, software developers have to step in, and this means cost escalation. Financial analysts and brokers sometimes use this kind of approach, but it is unlikely that it would be acceptable for industrial managers, designers and engineers.

The COSTMOS project suggests an intermediate compromise solution, sitting between the poles: Excel spreadsheets and explicitly programmed models. COSTMOS implements an object-oriented approach to the cost model, using the same advantages that ensure the success in object-oriented software design and development.

The model is defined by a set of input parameters and output cost indicators with the dependencies in-between. The notation for the dependencies formulae is not any harder than one in Excel. But this is only basic capabilities: an expert can create not only simple formula, but complex algorithms by means of Object CML (Cost Modelling Language). Using wizards he or she can import the dependencies (Excel formula, tables, plots) from office applications and files.

Moreover, it is possible to define “external modules” such as Microsoft Excel workbooks and other documents (applications) supporting OLE automation and functioning as OLE servers. The CML language includes usual access to object properties and method calls as in Visual Basic, Visual FoxPro, C# and others popular programming languages. So “input” values are passed to an external module (placed into corresponding Excel worksheet cells). Then the module is evaluated and “resulting” values are taken (from the appropriate cells). It is the shortest way to integrate exisiting spreadsheets into a large cost model. Cost Modelling Studio contains ExcelExt! utilty — simple freeware application for processing of simulation models based on Microsoft Excel workbooks.

Designed models can be structured into larger ones by including one model as a submodel of another. Obviously, the designer of a large model should not go into the details of the submodels he or she uses — perfect analogy with classes and subprograms. The nesting can go infinite. This allows creating even more complex models, performing successive decomposition and splitting the work among several experts. Finalized model is processed by Object CML compiler, which generates efficient executable code (largely platform-independent; currently — for Windows and Unix FreeBSD platforms). After being compiled the model can be simulated, i.e. it can be evaluated using the following two tools: Case Study and Analysis Browser.

The first is intended for calculation and comparison of several cases with fixed parameter values (usually ten to hundred cases). The results can be visualized as plots, bar or pie charts, transformed into HTML/XML form for Internet publishing, exported into Excel or other file formats.

The second tool — Analysis Browser — is used for profound analysis which involves calculating thousands of cases. User can specify one or two intervals for the parameter values, thus defining 2D or 3D cut of many-dimensional solutions space hypercube. The results can also be visualized as 2D or 3D charts, exported, etc.

Model Designer Toolkit described above is a desktop application intended for Microsoft Windows 2000/XP environment. Access to models can be granted to a wide circle of users (without revealing model dependencies and algorithms!). This can be done via uploading the models onto special web-server that hosts models and users databases, solver for models simulation and administrative tools, regulating access to the models. Current implementation uses freeware database management system PostgreSQL hosted on Unix FreeBSD server, although it can be readily implemented on any other SQL-compatible DBMS, for instance Microsoft SQL Server.

To access and evaluate the models there is a slightly truncated version of Analysis Browser available. It runs directly in Internet Explorer and allows studying models over the Internet. Model designer manages the access to his own models, granting execution/copy permissions to everyone, specific groups or single persons. Since capabilities of Internet Explorer-based "thin client" are limited, a user has an option to download and install (on Windows XP/2000 workstation) special “thick client” — desktop application, that can access the web-server, download the models (observing permissions) and evaluate them locally using all features of Case Study and Analysis Browsers tools described above.

Development timespan:
 Project metric Lines of sourcecode: 170,000
Size of sourcecode: 3.8Mb
 Target platformMS Windows 2000/XP
 Software typeDesktop and Web-based application
 Tools usedVisual FoxPro 7.0/8.0
Microsoft Visual C++
Web-server: PHP/XML/DHTML/JavaScript
Keywords: cost tool development to perform cost trade-off studies.
 Analysis Browser displays models' hierarchy as a tree with all the parameters alongside. Model can be populated with the data both interactively and automatically by exporting numbers from external sources.
 Case study tool allows comparing different sets of input data using the same calculation model.