UML

UML is the Unified Modeling Language

What is UML?

UML (Unified Modeling Language) is a modeling language standardized by the OMG.

The objective of this language is to provide system architects, software engineers and software developers with tools for the analysis, design and implementation of software-based systems, as well as for modeling business and similar processes.

One of its primary goals is to advance the state of the industry by enabling object visual modeling tool interoperability. In order to enable a meaningful exchange of model information between tools, UML meets the following requirements:

  • A formal definition of a common MOF-based metamodel that specifies the abstract syntax of the UML. The abstract syntax defines the set of UML modeling concepts, their attributes and their relationships, as well as the rules for combining these concepts to construct partial or complete UML models.
  • A detailed explanation of the semantics of each UML modeling concept. The semantics define, in a technology-independent manner, how the UML concepts are to be realized by computers.
  • A specification of the human-readable notation elements for representing the individual UML modeling concepts, as well as rules for combining them into a variety of different diagram types corresponding to different aspects of the modeling systems.
  • A detailed definition of ways in which UML tools can be made compliant with this specification. This is supported (in a separate specification) with an XML-based specification of corresponding model interchange formats (XMI) that must be realized by compliant tools.

Modelio's Contribution to UML

In 1990 Modelio defined and published an object-oriented method called Class Relation, supported by a case tool called Objecteering. At the time, Class Relation was a very advanced OO method, already able to support model-driven development. In 1996, Modelio joined the UML standardization team within the OMG, and since then, Modelio has participated in the elaboration of the different UML versions. The UML profile mechanism was one of the contributions from Modelio.

 

Implementation of the UML metamodel by Modelio

Some metamodel parts or constructs are not well defined and subject to change. The UML metamodel is too complex, in particular but not only due to the heavily used "Package Merge" mechanism. These are concerns that will lead to yet more evolutions of the standard.

This is why Objecteering and Modelio implement the entire UML standard, using a pragmatic approach. The Modelio metamodel was designed to be easy to understand, use and handle, while remaining as close as possible to the standard. It also provides some additional features and end user simplifications that make UML easier to use and extend.

Modelio implements the UML interchange standard (XMI), and has validated it with the OMG MIWG (Model Interchange Working Group) in order to guarantee that the Modelio XMI import and export services are standard-compliant and efficiently work with other UML tools.

SOA

SOA is service-oriented architectures

What is SOA?

Service Oriented Architecture (SOA) is a way of describing and understanding organizations, communities and systems in order to maximize agility, scale and interoperability. The SOA approach is simple – people, organizations and systems provide services to each other. These services allow us to get something done without doing it ourselves or even without knowing how to do it, helping us be more efficient and agile. Services also enable us to offer our capabilities to others in exchange for some value, thus establishing a community, process or marketplace. The SOA paradigm works equally well for integrating existing capabilities as for creating and integrating new capabilities.

A service is a value delivered to another through a well-defined interface and available to a community (which may be the general public). A service results in work provided to one by another. Thus, SOA is an architectural paradigm for defining how people, organizations and systems provide and use services to achieve results.

Examples of SOA

SOA technology

 

SOA technology

SOA Approaches

SOA has been associated with a variety of approaches and technologies. SOA is first and foremost an approach to systems architecture, where architecture is a way to understand and specify how things can best work together to meet a set of goals and objectives. In this context, systems include organizations, communities and processes as well as information technology systems. The architectures described with SOA may be business architectures, mission architectures, community architectures or information technology systems architectures – all can be equally service oriented. The SOA approach to architecture helps with separating the concerns of what needs to get done from how it gets done, where it gets done or who or what does it. Some other views of SOA and “Web Services” are very technology focused and deal with the “bits and bytes” of distributed computing.

Benefits of SOA

Enterprise Information Systems tend to be a group of monolithic applications, organized in silos that depend on techonology and/or business units. The increasing complexity and demand on Information Systems has resulted in information systems which are hard to maintain, hard to make evolve, and not well aligned to business needs.

SOA architecture helps design systems that are no longer monolithic and application-oriented. This provides agile information systems that are aligned to the business, thereby avoiding redundancy and facilitating communications and sharing within the IS.

SOA does not provide the whole solution by itself. However, associated with Enterprise Architecture, SOA helps encompass IT and the business in a global vision.

Modelio's Contribution to SOA

Modelio is one of the many contributors to the OMG's SoaML standard.

SoaML is a standard modeling language dedicated to designing and modeling SOA solutions using the Unified Modeling Language® (UML®). SoaML is mainly defined as a UML profile that uses the built-in extension mechanisms of UML to define SOA concepts in terms of existing UML concepts. SoaML can be used with current “off the shelf” UML tools although some tools may offer enhanced modeling capabilities.

SoaML integrates modeling capabilities to support the use of SOA at different levels and with different methodologies, in particular support for the “contract-based” and “interface-based” approaches which, in general, follow the “ServiceContract” and “ServiceInterface” elements of the SoaML profile respectively.

Modelio's Support for SOA Modeling

Modelio provides a module dedicated to SOA modeling named Modelio TOGAF Architect. This module, which is integrated in the Modelio BA - Enterprise Architect product, is based on the usual notions and approaches to model SOA architectures. It is purposely simple, in order to be easily usable by users who are not necessarily well-versed in the arcanes of UML. Its main concepts are:

  • Service components:
    These represent the components of a system that are inter-connectable through services. Service components are usually very large (applications or entire systems that can be implemented by hundreds of classes). The usual practice is to layer the component-based architecture into different kinds of service components. Entity components are components dedicated to handling system data, process components are responsible for the implementation of a business process, and presentation components are in charge of managing GUI access. This classification also introduces function components (half way between between process and entity components) and utility components. Several methodologies explain how to identify these components, and provide layering rules between these kinds of components.
  • Services:
    These are broken down into provided and required services. They are represented in a simplified way by ports on components typed by an interface (the definition of the service).
  • Component connectors:
    These connectors wire components together, by assembling required and provided services in order to form a complete and consistent system.
  • Messages:
    These represent the information exchanged between service components through services. They are typically implemented as XML documents.

Modelio provides model transformations and generators to easily and quickly transform an SOA architecture model into a software model and then into an implementation, for example by generating XML schemas, WSDL web services, BPEL orchestration, SQL database schemas, BPMN mapping or using Java code generator.

The SoaML profile is a much more complex model that supports a wide variety of methodologies and requires a thorough understanding of UML. Modelio already has an implementation of an SoaML profile which is published as an open source module (available in the Modelio Store). The use of this SoaML module and of the TOGAF Architect module will be mutually exclusive, since each implements a different approach to SOA modeling.

Enterprise Architecture

Enterprise Architecture provides a complete expression of the enterprise

What is Enterprise Architecture?

Enterprise Architecture (EA) is a discipline that has gained and will continue to gain huge importance to master enterprise organization and its IT support.

Enterprise Architecture is a complete expression of the enterprise, a master plan which “acts as a collaboration force” between aspects of business planning (such as goals, visions, strategies and governance principles), aspects of business operations (such as business terms, organization structures, processes and data), aspects of automation (such as information systems and databases) and the enabling technological infrastructure of the business (such as computers, operating systems and networks).

Enterprise architects use various business methods, analytical techniques and conceptual tools to understand and document the structure and dynamics of an enterprise. In doing so, they produce lists, drawings, documents and models, together called "artifacts". These artifacts describe the logical organization of business functions, business capabilities, business processes, people, information resources, business systems, software applications, computing capabilities, information exchange and communications infrastructure within the enterprise.

 

Enterprise Architecture Domains

Several enterprise architecture frameworks break down the practice of enterprise architecture into a number of practice areas or "domains" (also called viewpoints, layers or aspects).

  • There are at least two domains, "Business Modeling" and "Current Systems and Technology", which can be further broken down into "Data Architecture", "Applications Architecture" and "Technology Architecture".
  • The popular TOGAF framework divides the practice into three domains, "Business Architecture", "Information Systems Architecture" and "Technology Architecture" and then subdivides the information systems architecture into "Information Architecture" and "Applications Architecture".
  • The Strategic Architecture Model allows for a flexible division into up to ten domains covering many aspects of an enterprise from its objectives and goals through its projects and programs to its software applications and technology.

The dividing of the practice into a number of domains allows enterprise architects to describe an enterprise from a number of important perspectives, dividing the descriptive task between many participants and allowing the practice as a whole to make good use of individual domain-specific expertise and knowledge. By taking this approach, enterprise architects can ensure a holistic description of the design of the enterprise is produced.

Modelio's Support for Enterprise Architecture

Modelio integrates the entire set of models necessary to cover the whole scope of Enterprise Architecture. It supports goal analysis through its Analyst module, which also provides support for business rules and domain dictionaries. Modelio BA - Enterprise Architect provides dedicated Enterprise Architecture modeling support by integrating UML and BPMN, in order to provide both integrated business process modeling support and TOGAF-dedicated modeling support.

The support Modelio provides is based on well-defined standards (UML, BPMN, TOGAF, BMM). Enterprise Architecture extensions are added to this using the UML profile technique. Modelio offers dedicated diagrams for modeling organization, business process maps, application maps, SOA architecture views, etc.

Modelio provides a unique repository for all aspects of Enterprise Architecture, thus helping to achieve the Enterprise Continuum recommended by TOGAF.

 

Architecture repository

Enterprise Architecture Techniques

Business techniques

  • Vision: Goals, Strategy
  • Organization, Organization units, Geographical distribution
  • Business processes
  • Business models, Business Rules, Key Business Concepts

Application techniques

  • Inventory of software applications
  • Inventory of repositories
  • Software application interfaces, events, messages, dataflows
  • Intra/Extra-net, eCommerce, EDI, internal and external links between organizations
  • Data models

Technical techniques

  • Hardware, networks, servers
  • Software infrastructure: Application servers, RDB, etc

Enterprise Architecture Standards

Standards such as TOGAF, MODAF, DODAF provide definitions and predefined viewpoints for enterprise architecture. There also exist open methodologies such as PRAXEME (www.praxeme.org) that specify how to model and realize enterprise architecture. A wide diversity of tools and company-specific practices for enterprise architecture development exist.

BPMN

BPMN is the Business Process Modeling standard

What is BPMN?

Business Process Modeling Notation (BPMN) is a graphical representation used to specify business processes in a workflow.

The Business Process Modeling Notation (BPMN) is a standard for business process modeling that provides a graphical notation for specifying business processes in a Business Process Diagram (BPM), based on a flowcharting technique very similar to that used in UML activity diagrams. The objective of BPMN is to support business process management for both technical and business users, while still being able to represent complex process semantics. The BPMN specification also provides a mapping between the graphics of the notation and the underlying constructs of the execution languages, particularly BPEL (Business Process Execution Language).

Modelio's Support for BPMN

Modelio provides wide support of modeling, covering the entire scope from enterprise vision through software implementation, including Enterprise Architecture and business process modeling. Modelio integrates all the necessary modeling techniques within one consistent modeling tool.

In particular, Modelio is one of the very rare tools to integrate UML2 and BPMN2 support in a single metamodel, allowing smooth and consistent modeling across the entire modeling scope.

Modelio also provides process map modeling, with dedicated diagrams showing an overview of existing business processes, which are then modeled in detail using BPMN.

History of BPMN

BPMN was originally developed by Business Process Management Initiative (BPMI), which has since merged with the Object Management Group (OMG). The most recent version of BPMN is BPMN2.0, now supported by many tools. However, BPMN1.2 was very popular and most tools are still at BPMN1.2 level.

Objectives of BPMN

The primary goal of BPMN is to provide a standard notation that is readily understandable by all business stakeholders. These stakeholders include business analysts who create and refine processes, technical developers responsible for implementing processes, and business managers who monitor and manage processes. Consequently, BPMN is intended to serve as a common language to bridge the communication gap that frequently occurs between business process design and implementation.

BPMN supports only those modeling concepts that are applicable to business processes. This means that other types of modeling carried out by organizations for non-business purposes will be outside the scope of BPMN. For example, the modeling of organizational structures, functional breakdowns and datamodels will not be a part of BPMN.

Examples of BPMN

BPMN models

Modeling BPMN business process maps

World Wide Modeling

Distribute and share your models on the web

Distributing repositories using "model fragments"

  • Just like web pages or websites, model fragments can be distributed worldwide
  • With Modelio, the location of model fragments is transparent
  • Any number of users can share the same model fragment
  • Model elements from different model fragments can refer to each other transparently
  • Links between model fragments can be broken and restored transparently, just like web links

constellation_thumb

A project containing model fragments

A Modelio project is a set of fragments

  • Fragments can be local or shared or accessed via the web
  • Fragments can be used by several projects
  • Traceability links can be defined within a project between all elements of the selected model fragments

Example: A project made up of fragments

  • Project model: Shared with several participants, managed using Modelio Teamwork Manager and the Modelio Java Solution.
  • Test model: Local model on the user's laptop. Its purpose is only to carry out local tests by the current user.
  • JDK 1.7: Modelio model component (model library), versioned and updated according to the needs of the project.
  • Project requirements: Accessed via the web (read-only model), and managed elsewhere by business analysts using the Modelio Analyst Solution.

Project examples

More information

Download the " World Wide Modeling: The agility of the web applied to model repositories" white paper. </>