NORMA (software modeling tool)

Last updated

NORMA (Natural ORM Architect for Visual Studio) [1] is a conceptual modeling tool that implements the object-role modeling (ORM) method.

Contents

The NORMA tool is named after Dr.Terry Halpin's wife Norma Halpin (Terry Halpin, 11am, March 4, 2019) [2]

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 [3] "...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, [4] 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: [5]

[6]

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) [7] and PHP
Other XML schemas (XSD)

Related Research Articles

<span class="mw-page-title-main">Database</span> Organized collection of data in computing

In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and analyze the data. The DBMS additionally encompasses the core facilities provided to administer the database. The sum total of the database, the DBMS and the associated applications can be referred to as a database system. Often the term "database" is also used loosely to refer to any of the DBMS, the database system or an application associated with the database.

A conceptual schema or conceptual data model is a high-level description of informational needs underlying the design of a database. It typically includes only the core concepts and the main relationships among them. This is a high-level model with insufficient detail to build a complete, functional database. It describes the structure of the whole database for a group of users. The conceptual model is also known as the data model that can be used to describe the conceptual schema when a database system is implemented. It hides the internal details of physical storage and targets the description of entities, datatypes, relationships and constraints.

Object–relational mapping in computer science is a programming technique for converting data between a relational database and the memory of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language.

<span class="mw-page-title-main">Data model</span> Abstract model

A data model is an abstract model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities. For instance, a data model may specify that the data element representing a car be composed of a number of other elements which, in turn, represent the color and size of the car and define its owner.

A modeling language is any artificial language that can be used to express data, information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure of a programming language.

Terence Aidan (Terry) Halpin is an Australian computer scientist who is known for his formalization of the [[object–role modeling] notation.

<span class="mw-page-title-main">Entity–relationship model</span> Model or diagram describing interrelated things

An entity–relationship model describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types and specifies relationships that can exist between entities.

<span class="mw-page-title-main">Data modeling</span> Creating a model of the data in a system

Data modeling in software engineering is the process of creating a data model for an information system by applying certain formal techniques. It may be applied as part of broader Model-driven engineering (MDE) concept.

<span class="mw-page-title-main">Object–role modeling</span> Programming technique

Object–role modeling (ORM) is used to model the semantics of a universe of discourse. ORM is often used for data modeling and software engineering.

Database design is the organization of data according to a database model. The designer determines what data must be stored and how the data elements interrelate. With this information, they can begin to fit the data to the database model. A database management system manages the data accordingly.

Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

<span class="mw-page-title-main">Domain model</span> A model in software engineering

In software engineering, a domain model is a conceptual model of the domain that incorporates both behavior and data. In ontology engineering, a domain model is a formal representation of a knowledge domain with concepts, roles, datatypes, individuals, and rules, typically grounded in a description logic.

Notable issue tracking systems, including bug tracking systems, help desk and service desk issue tracking systems, as well as asset management systems, include the following. The comparison includes client-server application, distributed and hosted systems.

Entity Framework (EF) is an open source object–relational mapping (ORM) framework for ADO.NET. It was originally shipped as an integral part of .NET Framework, however starting with Entity Framework version 6.0 it has been delivered separately from the .NET Framework.

The enhanced entity–relationship (EER) model in computer science is a high-level or conceptual data model incorporating extensions to the original entity–relationship (ER) model, used in the design of databases.

<span class="mw-page-title-main">Jira (software)</span> Issue-tracking product developed by Atlassian

Jira is a proprietary product developed by Atlassian that allows bug tracking, issue tracking and agile project management. Jira is used by a large number of clients and users globally for project, time, requirements, task, bug, change, code, test, release, sprint management.

Jira Studio was an integrated, hosted software development suite developed by Atlassian Software Systems. Jira Studio included Subversion for revision control, Jira for issue tracking and bug tracking, Confluence for content management, Jira Agile for agile planning and management, Bamboo for continuous integration, Crucible for code review and FishEye for source code repository browsing.

<span class="mw-page-title-main">Eckhard D. Falkenberg</span> German computer scientist

Eckhard D. Falkenberg is a German scientist and Professor Emeritus of Information Systems at the Radboud University Nijmegen. He is known for his contributions in the fields of information modelling, especially object-role modeling, and the conceptual foundations of information systems.

Skipper is a visualization tool and code/schema generator for PHP ORM frameworks like Doctrine2, Doctrine, Propel, and CakePHP, which are used to create database abstraction layer. Skipper is developed by Czech company Inventic, s.r.o. based in Brno, and was known as ORM Designer prior to rebranding in 2014.

Antony J. (Tony) Morgan is a British computer scientist, data modeling consultant, and Professor in computer science at INTI International University. He is known for his work on (2002) "Business rules and information systems," and the 2010 "Information modeling and relational databases," co-authored with Terry Halpin.

References

  1. Home page of The ORM Foundation
  2. Terry, Halpin (March 4, 2019). "Week 2 - Object Role Modeling (ORM) step 1 & step 2" . QUT Blackboard. Retrieved March 5, 2019.
  3. Halpin, Terry; Morgan, Tony (March 2008), Information Modeling and Relational Databases: From Conceptual Analysis to Logical Design (2nd ed.), Morgan Kaufmann, ISBN   978-0123735683
  4. The ORM Foundation home page
  5. http://www.orm.net/pdf/ORM2.pdf Halpin, T. 2005, ‘ORM 2’, On the Move to Meaningful Internet Systems 2005: OTM 2005 Workshops, eds R. Meersman, Z. Tari, P. Herrero et al., Cyprus. Springer LNCS 3762, pp 676-87.
  6. ORM Foundation, Library. "NORMA, the software".
  7. The PLiX project at SourceForge

Further reading