We facilitate design of Information Systems by viewing the design process as one in which different stakeholders need to be addressed in their own language. From a human perspective, programmers view systems differently from designers, and management might describe the system they want in different terms from the people who end up using it. Despite possibly phrasing it in different ways, there is a shared set of rules that all stakeholders will agree on. Rule Based Design focuses on making these rules explicit, facilitating cooperation.
From a formal perspective, by seeing the computer as a stakeholder and its ‘language’ as the programming language used to program it, automatically generating an information system becomes a possibility. Rule based programming is used in Logic programming, and in expert systems. In information systems design, rules are used to derive business processes.
This research is focused around the Ampersand tool. However, several tools were created as separate experiments: the Amperspiegel tool may one day help us to generate better interfaces. A rule-based type system designed with Ampersand in mind turned out to be problematic when generating error messages, causing us to abandon it in Ampersand. We published the core algorithm separately.