Object Oriented Role Analysis and Modeling

Last updated

The OOram (Object-oriented Role Analysis and Modeling) is a method, based on the concept of role, for performing object-oriented modeling. [1]

Contents

Originally (1989) coined Object Oriented Role Analysis, Synthesis and Structuring (OORASS), the method focuses on describing patterns of interaction without connecting the interaction to particular objects/instances. OOram was originally developed by Trygve Reenskaug (1996), a professor at the University of Oslo and the founder of the Norwegian IT company Taskon. The use of "roles" in OOram is similar in application to that of agent-oriented programming.

Enterprise models created according to OOram may have a number of views, with each view presenting certain aspects of a model. [2] The following ten views are proposed: [3]

  1. Area of concern view: Textual description of a phenomenon represented in the role model.
  2. Stimulus-response view: Describes how environment roles may trigger activities in the organization (stimulus), together with the effect (response).
  3. Role list view: List describing all roles of a role model together with attributes and textual explanation.
  4. Semantic view: Describes meaning of roles and relationships between roles.
  5. Collaboration view: Describes patterns of roles and message paths.
  6. Interface view: Describes all messages that can be sent along a message path.
  7. Scenario view: Provides a sample sequence of messages flowing between roles (a concrete example).
  8. Process view: Describes data flow between roles and associated activities performed by the roles.
  9. State diagram view: For each role, the legal states can be described together with messages that trigger transitions.
  10. Method specification view: Describes what messages to send for each method belonging to a role. May also specify procedures to perform.

OOram suggests a varied mix of formal and informal notations and languages for representing and communicating models. Which view to use depends upon the needs in a particular situation. [2]

See also

Related Research Articles

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

Model–view–controller Software design pattern

Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user.

In software and systems engineering, the phrase use case is a polyseme with two senses:

  1. A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful.
  2. A potential scenario in which a system receives an external request and responds to it.

In object-oriented programming, delegation refers to evaluating a member of one object in the context of another original object. Delegation can be done explicitly, by passing the sending object to the receiving object, which can be done in any object-oriented language; or implicitly, by the member lookup rules of the language, which requires language support for the feature. Implicit delegation is the fundamental method for behavior reuse in prototype-based programming, corresponding to inheritance in class-based programming. The best-known languages that support delegation at the language level are Self, which incorporates the notion of delegation through its notion of mutable parent slots that are used upon method lookup on self calls, and JavaScript; see JavaScript delegation.

In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions. Software frameworks may include support programs, compilers, code libraries, toolsets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.

Role-oriented programming as a form of computer programming aims at expressing things in terms that are analogous to human conceptual understanding of the world. This should make programs easier to understand and maintain.

In software engineering, inversion of control (IoC) is a programming principle. IoC inverts the flow of control as compared to traditional control flow. In IoC, custom-written portions of a computer program receive the flow of control from a generic framework. A software architecture with this design inverts control as compared to traditional procedural programming: in traditional programming, the custom code that expresses the purpose of the program calls into reusable libraries to take care of generic tasks, but with inversion of control, it is the framework that calls into the custom, or task-specific, code.

Kantega

Kantega is a Norwegian software corporation founded in 2003 with headquarters in Oslo. Kantega primarily develops bespoke software based on Java and lightweight application frameworks. It also has offices in Trondheim and Bergen.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

Trygve Reenskaug Norwegian computer scientist

Trygve Mikkjel Heyerdahl Reenskaug is a Norwegian computer scientist and professor emeritus of the University of Oslo. He formulated the MVC (model–view–controller) pattern for GUI software design in 1979 while visiting Xerox PARC. His first major software project, "Autokon," produced a successful CAD/CAM program which was first used in 1963, and continued in use by shipyards worldwide for more than 30 years.

A system architecture is the conceptual model that defines the structure, behavior, and more views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system.

Taskon was a Norwegian IT enterprise which developed systems using object-oriented technology. The company also provided advisory and consultancy services, products, and training within the field of object-oriented systems development. Formed in 1986 by Trygve Reenskaug, Taskon's expertise was in the area of analysis, design, and implementation of component-based systems.

An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. The architectural patterns address various issues in software engineering, such as computer hardware performance limitations, high availability and minimization of a business risk. Some architectural patterns have been implemented within software frameworks.

Object-oriented design (OOD) is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.

Domain-driven design (DDD) is a software design approach focusing on modelling software to match a domain according to input from that domain's experts.

View model

A view model or viewpoints framework in systems engineering, software engineering, and enterprise engineering is a framework which defines a coherent set of views to be used in the construction of a system architecture, software architecture, or enterprise architecture. A view is a representation of a whole system from the perspective of a related set of concerns.

IDEF4

IDEF4, or Integrated DEFinition for Object-Oriented Design, is an object-oriented design modeling language for the design of component-based client/server systems. It has been designed to support smooth transition from the application domain and requirements analysis models to the design and to actual source code generation. It specifies design objects with sufficient detail to enable source code generation.

Method engineering Term

Method engineering in the "field of information systems is the discipline to construct new methods from existing methods". It focuses on "the design, construction and evaluation of methods, techniques and support tools for information systems development".

Data, context, and interaction (DCI) is a paradigm used in computer software to program systems of communicating objects. Its goals are:

OOP is a programming paradigm based on the concept of "objects", which can contain data and code: data in the form of fields, and code, in the form of procedures.

References

  1. Reenskaug, Trygve (1996). "Working with Objects: OOram Framework Design Principles" (PDF). Taskon, Norway. (Presented at OOPSLA 1996 Workshop: Exploration of Framework Design Principles)
  2. 1 2 Terje Totland (1997). 5.2.8 Object-Oriented role analysis and modeling (OOram) Thesis, Norwegian University of Science and Technology (NTNU), Trondheim.
  3. (Reenskaug, 1996:60)

Further reading