Our key to approach complexity: Breaking the system down into smaller units.

While studying successful development projects of complex systems we found that each project requires its very own particular approach. Instead of using just one method, a tailored combination of methods is most appropriate. Depending on the product to be developed, its context and the team, the right combination of methods must be chosen. These have been the common success factors in previous projects.

HMG Systems Engineering GmbH adopts a systematic view of the product as a whole. The starting point is an understanding of the customer and their needs. We use a collaborative problem-solving approach which uses holistic models to combine competences in a variety of methods. This allows us to gain an overview of the entire product and of its development project.

Herna Muñoz-Galeano first learned the use of functional Anatomy from its originator, Jack Järkvik at Ericsson. Later she introduced the concept and practice to successful projects outside Ericsson and in other areas besides global telecommunications, such as medical engineering and railway automation.

In 2016, this innovative process approach earned HMG Systems Engineering the award as one of the Top 100 ( most innovative SMEs in Germany.

Functional Anatomy

Functional anatomy allows everybody involved in a project to create a shared view and a common understanding of what needs to be done in a short time.

The functional anatomy model describes and structures the product from a user’s perspective: What should the system do? How is it to be used? It is a top-down approach on a functional level. It defines functions. It figures out which functions are prerequisites for others. It discovers which functions are not related to others.

What makes it so different to other methods?

Instead of a traditional approach, where complex tasks are split into into smaller units, these tasks are rigorously developed and tested before being integrated into the system in the final stage. Functional anatomy follows an incremental development and step-wise integration approach to reach the final stage.

The core philosophy is to plan and verify the system in the same order as it comes to life. The process incorporates 7 steps:

  1. Define the system, based on use cases
  2. Build a ‘Tree of Functions’ (top-down) and identify their dependencies
  3. Define the architecture (mapping the functions to use cases) and the deployment view
  4. Define the integration in order to obtain a working base system first
  5. Define the integration plan/order (bottom-up)
  6. Define the incremental test and verification to obtain defined functionality and stability
  7. Define and keep the control of the delivery plan by having all phases accompanied by the up-to-date progress charts (confident base for customer deliveries)


What are the advantages?

The best results can be achieved if the functional anatomy method is already applied during the system specification and as an overall project planning and controlling tool. Most often, however, we have been asked to help using our method when the complexity of a project was underestimated and the allocated deadline was not far off.

Our clients value the functional anatomy method because of the following reasons:

  • Functional anatomy provides a transparent understanding of the system dependencies and functions
  • The ‘Tree of Functions’ shows all necessary tasks and use cases on one page and is the ideal platform for discussion and a commonly understood system.
  • The ability to develop and test in parallel in a controlled manner saves time
  • System faults can be identified early
  • System stability is achieved by incremental test and verification, a working system is always available by incremental integration
  • Transparency and confidence in the project: The status/progress of the project/product is known at any time and is a confident base for decisions. Everyone’s contribution becomes transparent.

Agile Development

Agile development is a reaction to waterfall methodologies and Big Design Up Front. Agile development challenges all ivory tower plans, whether micro or macro management.

Agile development can be very successful on the team level, where complexity does not pose a great problem. However, as the product and consequently the project grow in complexity, their management becomes a challenge. Agile development with multiple teams and multi-site development are in many cases still not well understood. At HMG, agile development is applied to all projects. As the complexity grows, functional anatomy is added to the development.

DevOps – Stepwise integration strategy

A stepwise integration strategy allows for an iterative development process. It starts with the integration of the simplest functionality: the ‘early bird’. Then many small integration steps follow, each time adding new functionalities until the product is completed. In this way, ‘many small deliveries’ can be made to the customer.

This approach to integrate is based on the following principles::

  • Grow in small steps: plan small iterations (agile) which will make functionality grow.
  • Identify the key functionality to be delivered and limit the number of dependencies.
  • Design and test in parallel as much as possible. This improves efficiency.
  • Integrate as soon as possible in order to identify errors at an early stage.
  • Define quality gates and test to pass them. In this way, the quality of each delivery is as high as the quality of the final delivery.
  • Keep a shared view of the way the system grows.


Holistic Use Case Approach

We believe that the starting point for the development of an innovation is the understanding of the user and user’s needs. In fact, it is the starting point for the development of any kind of product. The use case approach models the different types of users (actors) and their interaction with the system. As such, it describes the goals of the users, the interactions between the users and the system, and the required behaviour of the system in satisfying these goals.

Modelling the use cases, e.g. with UML (Unified Modeling Language), helps to identify the model elements in a unique and consistent way: use cases, actors and relationships between them. Most of the use case modelling is textual, with the text captured during the interviews and specification workshops. This text describes the flow of actions for each use case. Well specified and modelled use cases are essential for the specification of realistic requirements to the system under development.

The use case model serves as a unifying thread throughout the system development. It is used as the primary specification of the functional requirements for the system, as the basis for analysis and design, as well as as an input to the incremental integration. Use case specification is the basis to define system test cases and a base for user documentation.

Model-Based Testing

Model-based testing is a testing technique whereby software test procedures are automatically generated by a formal specification model. Although this type of testing requires significantly more up-front effort in building the model, it offers substantial advantages over traditional software testing methods.


This is a unique website which will require a more modern browser to work!

Please upgrade today!