The purpose of Ampersand is to help business engineers deliver correct information systems. Correct means that the system complies demonstrably to the rules of the business. How cool is that!

Some examples of information systems built in Ampersand

  • Medications, a demonstrator built by TNO in Ampersand to showcase attestation on the internet. This example is undocumented.

  • SETU standards, a site to disclose standards for electronic messaging in the sector of flexible labour. This example is undocumented.

  • RAP3, a tool for students to learn how to work with Ampersand. This project is documented in https://github.com/AmpersandTarski/RAP.

Why rule based?

Not many people can design and build good information systems. It is a difficult task. Ampersand makes your life easier by automating tedious coding tasks and preventing scores of errors you might make. Use it to create this wonderful festival organisation platform, your very own web shop for pedigree poodles, or the trip organiser for hiking expeditions in the Andes. It's all up to you.

A characteristic of Ampersand is its focus on business rules. Business rules embody agreements of people who pursue a common goal. Naturally such rules are to be respected by every information system that supports their business. The value of Ampersand is this: once you have a precise set of rules, you have your information system. The coding of software is automated by Ampersand. So if a rule changes, you have altered it in your code in a breeze. That is why Ampersand focuses on rules.

Ampersand is a way of designing information systems for enterprises, supported by a method, a tool, and a course. These are the things you do (click on the hyperlinks to watch video clips):

  1. Communicate with the business solely in their own language, which is a natural language.

  2. Define a domain language (in Ampersand) to consolidate agreement of terms among stakeholders, using it solely for technical purposes.

  3. ****Formalize the agreements into rules that are relevant for the information system using Ampersand-script.

  4. Generate a working prototype of your information system for verification purposes.

  5. Use this prototype to walk through user stories, test user acceptance, elicit requirements, or otherwise gain more assurance that your design is what your audience wants.

  6. Use the documented ontology that Ampersand generates to validate the agreed rules.

Benefits

  1. Experimenting with rules can simplify business processes and cut back on red tape. Ampersand lets you do just that.

  2. If you want adaptable enterprise software, Ampersand helps by automating most of the programming for you. So, even changes in your conceptual model (viz. data model) are brought in production quickly.

  3. Support your own business, rather than someone else's view on your business. Designing with business rules lets your business associates convince themselves that the system supports exactly the right rules.

  4. Decrease maintenance cost and increase understanding, by describing goals instead of steps. Ampersand is a declarative language, which yields simplicity without sacrificing precision.

  5. Develop more efficiently by preventing errors instead of correcting them. Enjoy the benefits of strong and static typing. Several scientific studies show significant effects of strong and static typing on the total cost of ownership of your design. Besides, it enables Ampersand to generate efficient code.

  6. Gain mathematical certainty of compliance. Ampersand uses relation algebra to align the IT-system to the business, by exploiting its natural language interpretation alongside its technical interpretation as working software. Your claim that business stakeholders understand (solely in natural language) what the computer does (in software) can't be made more convincingly.

  7. Reduce risk by developing in small increments. Add constraints, user interfaces, relations, and other design elements one at a time. Generate a prototype at any intermediate stage, to try out your system long before it is finished.

  8. Reduce risk by dividing the work in small subsystems. To isolate subsystems is easy, due to conceptual independence. Ampersand lets you combine subsystems into larger systems, automating the burden of combining them. Reuse design patterns to assemble systems, rather than re-invent from scratch.

  9. Deploy quickly by building, configuring, and taking it to production automatically.

Foundations

Ampersand is grounded in Relation Algebra. Scientific foundations of Ampersand have been published in the International Conference on Relation Algebraic Methods in Computer Science (RAMiCS) from 2011 onwards.

Ampersand is a tool for rule based design. It adheres closely to the concept of business rule as defined by the Business Rules Group. The following section explains the correspondence between the Business Rules Manifesto and Ampersand.

The Open University of the Netherlands has a course in Rule Based Design, in which students use Ampersand for this purpose.

Licenses

Ampersand is freely available as an open source project in GitHub.