Value-Driven Analysis and Design (VDAD)

VDAD Process | Practices | Why VDAD? (User Stories) | Tools | Background | Glossary

Value-Driven Analysis and Design (VDAD) Process Overview

VDAD, first presented at EuroPLoP 20241, combines value-driven approaches with analysis and design practices in software engineering; we especially aim at bringing ethical thinking into domain-driven practices. As software engineers, we should build digitalized solutions that serve humanity - never the other way around. VDAD proposes seven steps that cover the whole development lifecycle and aim at illustrating how human and ethical values can be respected in all phases of the software development process.

The seven steps are:

Note: The VDAD process is not considered to be conducted in a linear, unidirectional way. Project teams have to iterate over the individual steps as well as the whole process. The page process continuation explains this incremental approach.

The following illustration visualizes the VDAD process with its steps as well as the input and output artifacts of the individual steps.

Value-Driven Analysis and Design (VDAD) Process

Note: Each step with its inputs and outputs is elaborated in detail on the corresponding pages linked above.

Domain-Driven Practices and Collaborative Modelling as Enablers

All value-driven approaches and processes that aim at treating values as first-class citizens (such as the IEEE-70002 or Value-Based Engineering3) require close and interdisciplinary collaboration between all stakeholders and human beings affected by a system.

One important goal of Domain-Driven Design (DDD) and Collaborative Modelling approaches (such as Event Storming, Domain Storytelling, etc.) is to find a common understanding and a ubiquitous language between engineers, domain experts, and any other stakeholders. Therefore, these practices and methods can help us in applying value-based engineering and establish the required communication between all human being involved in the process.

Modelling in general can help us to visualize the context of a system, interrelations between stakeholders and values, and conflicts that should be identified so that they can, hopefully, be solved.

Overview of Practices and Tools

The following overview lists all practices and artifacts that support you in the individual VDAD steps:

VDAD Step Practices and Artifacts
Step 1: Aquire Domain Understanding Use Cases, User Stories, Business Process Models, Domain Models (e.g. with Context Mapper) based on Domain-Driven Design (DDD) patterns, Collaborative Modelling (e.g. Event Storming, Domain Storytelling)
Step 2: Identify Stakeholders Stakeholder Mapping, Personas, Identify them in the artifacts produced in Step 1 (Use Cases, User Stories, etc.), Context Mapper DSL (CML) stakeholder model
Step 3: Identify Values per Stakeholder Stakeholder Mapping and Value Impact Mapping (VIM), Value Register2, ESE templates to model values, Context Mapper DSL (CML) value model
Step 4: Prioritize Values Value Register2, templates suggested in ESE Story Valuation, Context Mapper DSL (CML) value model with stakeholder priorities
Step 5: Make Digitalization Decision All inputs from steps before
Step 6: Derive New and Adjust Existing Requirements Use models and knowledge from previous steps to elicit and/or refine functional and non-functional requirements; formulate so-called Ethical Value Requirement (EVRs) according IEEE 7000 standard2, apply ESE Story Valuation to create EVRs
Step 7: Design Software Architecture Architecture Decision Records (ADRs), architecture documentation (e.g. filled-out arc42 template), Strategic and Tactic DDD (i.e., Bounded Contexts and Domain Models with Aggregates, Entities and other DDD patterns); use Context Mapper for modelling) for architecture and design, working software
  1. Published EuroPLoP paper coming soon … 

  2. IEEE Standard Model Process for Addressing Ethical Concerns during System Design, 2021, https://ieeexplore.ieee.org/document/9536679  2 3 4

  3. https://www.value-based-engineering.com/