Continue Reading Continue Reading More Learning Content

Application Portfolio Management (APM) v1.0 Metamodel

Synopsis: Application Portfolio Management (APM) is a practice that attempts to justify and measure the financial benefits of each application in comparison to the costs of the application's maintenance and operations.


Tip: learn more about APM on Wikipedia.

Idea Behind Application Portfolio Management

If your organization uses multiple software systems, it becomes imperative to analyze their cost-effectiveness, quality characteristics, and business fit. These insights help when deciding where and how much to invest across your existing applications portfolio. Additionally, by analyzing the current state of the portfolio, you may sport cost-effectiveness and functional improvement opportunities within your enterprise.

Application Portfolio Management (APM) metamodel in Archipeg allows conducting related activities within a single project by capturing business capabilities, applications, components, providers, and technologies that will impact the investment decisions.

APM Metamodel Diagram

Below is a complete diagram of the APM metamodel. Please click on the picture to open it in a new window and examine its details.

APM v1.0 Metamodel Detailed Description





Business capability of an enterprise or an organization. You can form capability maps by nesting or otherwise associating Capabilities with each other.


A logical or conceptual solution that solves a specific business need. Application does not have to correspond to a software system, but rather it must be cohesively understood by the business. You can nest Applications for composition or link them for upstream-downstream relationships.

Data Object

Any cohesive piece of information that serves for communication, application integration, or data processing needs.

Application Component

A physical solution (e.g., software system, piece of code, server, or OS) that realizes Applications. You can nest Components for composition or tie them for dependency mapping.

Component Provider

A party that provides Application Component(s)

Component Technology

Digital product that enables building Application Components, typically developed or provided by the third party; e.g., framework or library.




Capability::Nested Capabilities <-> Capability::Parent Capability

Outgoing: Business Capabilities that are nested under this Capability.

Incoming: Business Capability that nests this Capability.

Capability::Depends on Capabilities <-> Capability::Dependent Capabilities

Outgoing: Business Capabilities on which this Capability depends.

Incoming: Business Capabilities that depend on this Capability.

Application::Fulfills Capabilities <-> Capability::Fulfilled by Applications

Outgoing: Business Capabilities that this Application Fulfills.

Incoming: Applications that fulfill this Capability.

Application::Nested Applications <-> Application::Parent Application

Outgoing: Applications that are nested under this Application.

Incoming: Application that nests this Application.

Application::Downstream Applications <-> Application::Upstream Applications

Outgoing: Downstream (affected, impacted, dependent) Applications of this Application.

Incoming: Upstream Applications of this Application.

Application::Handles Data Objects <-> Data Object::Handled by Applications

Outgoing: Data Objects that this Application handles, processes, or transmits.

Incoming: Applications that handle, process, or transmit this Data Object.

Application::Components <-> Application Component::Serves Applications

Outgoing: Application Components that realize or serve this Application.

Incoming: Applications that this Component realizes.

Component Provider::Provides Components <-> Application Component::Providers

Outgoing: Application Components that this Provider provides (e.g., through development, manufacturing, or support).

Incoming: Providers that provide this Component (e.g., through development, manufacturing, or support).

Application Component::Nested Components <-> Application Component::Parent Component

Outgoing: Application Components that are nested under this Component.

Incoming: Application Component that nests this Component.

Application Component::Depends on Components <-> Application Component::Dependent Components

Outgoing: Application Components on which this Component depends.

Incoming: Application Components that depend on this Component.

Application Component::Tech Stack <-> Component Technology::Used in Components

Outgoing: Technologies upon which this Component relies.

Incoming: Application Components that rely on this Technology.

See Also


More Learning Content

Growing product,
Transparent pricing,
Award-winning support.

All Rights Reserved ©