# NORMA (software modeling tool)

NORMA (Natural ORM Architect for Visual Studio) is a conceptual modeling tool that implements the object-role modeling (ORM) method.
The NORMA tool is named after Dr.Terry Halpin's wife Norma Halpin (Terry Halpin, 11am, March 4, 2019)
NORMA is a free and open source plug-in to Microsoft Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, Visual Studio 2015, Visual Studio 2017 and Visual Studio 2019. NORMA supports ORM2 (second generation ORM), and can map object-role models to implementation targets, such as database engines, object-oriented code, and XML schema.
Dr. Terry Halpin's 2008 book, Information Modeling and Relational Databases: From Conceptual Analysis to Logical Design "...explains the ORM2 notation, as supported by the NORMA (Neumont ORM Architect) tool..." (page 10), and "(...)At the time of writing, the NORMA tool provides the most complete support for the ORM2 notation discussed in this book." (Preface, xxv).
He also states: "A modeling method as good as ORM deserves a good CASE tool. Since the early 1990s, talented staff at ServerWare, Asymetrix Corporation, InfoModelers Incorporated, Visio Corporation, Microsoft Corporation, Neumont University worked to develop state of the art CASE tools to support the specific ORM method discussed in this book." (Preface, xxvi)

## ORM2

ORM2 contains improvements to the original ORM1 specification. ORM2 is implemented in NORMA. Dr. Terry Halpin led the original NORMA effort whilst serving as a Professor at Neumont University and from 2007, continued via The ORM Foundation, a UK-based non-profit organization dedicated to the promotion of the fact-based approach to information modeling
ORM2 is defined in an ORM2 metamodel that was created by using the NORMA tool.
NORMA is an open source project. As at 3 March 2019, NORMA for Visual Studio 2017 includes fixes for 38 bugs that were found in the 2015 versions. The remaining issues are being handled within the NORMA Plus JIRA project that you can read about here. https://ormfoundation.atlassian.net/secure/Dashboard.jspa. Ken Evans 10:58, 3 March 2019 (UTC)
This link shows the current list of unresolved issues in NORMA. https://ormfoundation.atlassian.net/issues/?jql=issuetype%20%3D%20Bug%20AND%20status%20in%20(%22In%20Progress%22%2C%20%22To%20Do%22)
The main objectives for the ORM2 graphical notation are:
* More compact display of object-role models without compromising clarity
* Improved internationalization (e.g. avoid English language symbols)
* Simplified drawing rules to facilitate creation of a graphical editor
* Full support of textual annotations (e.g. footnoting of textual rules)
* Use of views for selectively displaying/suppressing detail
* Support for new features

## Project

In September 2016, the "NORMA Plus" JIRA project was established to document the code and to resolve current issues..Ken Evans 14:37, 18 July 2017 (UTC)
As at 3 March 2019, the NORMA Plus project has resolved 38 of the bugs were found in the 2015 version of NORMA. Ken Evans 10:53, 3 March 2019 (UTC) Official CTPs are available at the ORM Foundation Library.

## Generation targets

| Database engines | Microsoft Sql Server, Oracle, DB2, MySQL, PostgreSQL, etc. |
| Programming languages | LINQ to SQL, PLiX (Programming Language in XML) and PHP |
| Other | XML schemas (XSD) |