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

A conceptual schema is a high-level description of informational needs underlying the design of a database. It typically includes only the main concepts and the main relationships among them. Typically this is a first-cut model, with insufficient detail to build an actual database. This level 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 on describing entities, datatypes, relationships and constraints.

Object–relational mapping in computer science is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. There are both free and commercial packages available that perform object–relational mapping, although some programmers opt to construct their own ORM tools.

Data model Abstract model that organizes elements of data and standardizes how they relate to one another and to real-world entities.

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.

Eclipse (software) Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

A modeling language is any artificial language that can be used to express 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.

Terence Aidan (Terry) Halpin is an Australian computer scientist who is known for his formalization of the Object Role Modeling notation.

Entity–relationship model 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.

Data modeling

Data modeling in software engineering is the process of creating a data model for an information system by applying certain formal techniques.

Object-role modeling 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.

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.

This article is a comparison of issue tracking systems that are notable, including bug tracking systems, help desk and service desk issue tracking systems, as well as asset management systems. The comparison includes client-server application, distributed and hosted systems.

ER/Studio is data architecture and database design software developed by IDERA, Inc. ER/Studio is compatible with multiple database platforms and is used by data architects, data modelers, database administrators and business analysts to create and manage database designs, document and reuse data assets. In 2015, Embarcadero Technologies was acquired by database and infrastructure management software company IDERA, Inc. Since the acquisition by IDERA, Inc., ER/Studio has been renamed to ER/Studio Data Architect with updated features.

In the field of computer science a conceptual model, also known as a domain model, represents 'concepts' (entities) and relationships between them, while a mental model captures ideas in a problem domain.

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. Starting with Entity Framework version 6, 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.

Jira is a proprietary issue tracking product developed by Atlassian that allows bug tracking and agile project 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.

Quick Objects is a powerful object–relational mapping tool for Microsoft .NET Framework with a built in framework for business logic and validation. The architecture for Quick Objects is different from other ORM tools. Focus of Quick Objects to provide the advantages of code reuse, code generation and object relational mapping in a single tool set.

Eckhard D. Falkenberg

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.

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