FactEngine’s Pedigree with Object-Role Modeling

A 29 Year History of Building NIAM/ORM Software

Victor Morgante


It dawned on me the other day that people don’t know what they don’t know and that on a global scale those who use Object-Role Modeling (ORM) are entitled to ask “who is this chump?” when they think of Object-Role Modeling and FactEngine.

When I think about it, only a handful of people on Earth know the history behind FactEngine’s Boston software and where it all came from…so here is the story.

As manager, lead-architect and researcher for FactEngine, I have been making NIAM/Object-Role Modeling software since 1994, longer than Terry Halpin the ostensible godfather of the Object-Role Modeling variant of NIAM. That may come as a shock to some people who work with ORM on a day-to-day basis.

My first NIAM (as Object-Role Modeling was known in 1994) tool was/is called NIAM+ and is a Windows based software written in Visual Basic.

Below is me trying to run NIAM+ in circa 2007. The Internal Uniqueness Constraints didn’t render properly.

NIAM+ in action. NIAM Software for Windows. Written 1994. Image by author.
NIAM+ User Manual. Image by author.

To be fair, I didn’t know who Terry Halpin was, and I did not really care. All I knew is that I was in love with NIAM and that it did not have a tool to draw NIAM diagrams.

Born out of frustration and picturing dollar signs, I worked almost around the clock to put something together with what tools and Windows programming experience I had at the time. From memory, it took me about 4 months to get something together that would draw basic NIAM diagrams and present them on different pages.

I was working on my ‘6 Month Project’ course for my degree at the time, and my project partner and I had chosen the hardest possible target piece of software that we could think of at the time (with our supervisor) and we needed a NIAM tool, I thought, to create the database for the project.

The problem space of the software for the project was ‘Timetable Booking Software for a University’. A very difficult task, scheduling lectures, tutorials, lecturers and rooms for a university, and we…