Skip to main content

Tools for Value-Driven Design

Project description

Tools for Value-Driven Design

cc-angular release-tool

Tools intended to help with modelling decisions in a value centric design process. The intent is to keep this as generic as possible, as some of this decision modelling is suited to generic decision-making, non-design activities with a little massaging.

Features

  • Concept Design Analysis (CODA) method implementation
  • Requirements weighting with a Binary Weighting Matrix
  • Programmatic or Spreadsheet based model creation (via Excel workbooks or Google Sheets).
  • Native JSON serialisation for both CODA models and Binary Weighting Matrices (human-readable, git-diff-friendly).
  • Command-line interface for quick model inspection and interactive weighting

Install

pip install vdd

CLI

vdd ships with a command-line interface for the two core workflows.

Inspect a CODA model

Load a CODA model from an Excel file and print the overall design merit alongside a per-requirement satisfaction summary:

vdd coda path/to/model.xlsx

By default the compact Excel format is assumed. Pass --parser full for the standard format:

vdd coda path/to/model.xlsx --parser full

Weight requirements interactively

Step through a pairwise comparison of requirements and print the resulting normalised scores:

vdd requirements weight "Lightweight" "Stiff" "Durable"

Questions are shuffled by default. Pass --no-shuffle to work through them in a fixed order.

JSON model i/o

Both CODA models and Binary Weighting Matrices serialise to and from a flat, human-readable JSON format. This is handy for version-controlling models or moving them between the two tools.

from vdd.coda.models import CODA
from vdd.requirements.models import BinWM

# Weight requirements with a binary weighting matrix, then persist it.
bwm = BinWM('Stiffness', 'Friction', 'Weight')
bwm.prompt()
bwm.to_json('weights.json')

# Seed a CODA model directly from the weighting matrix scores.
coda = CODA()
coda.add_requirements_from(bwm)

# Round-trip a CODA model through JSON.
coda.to_json('model.json')
reloaded = CODA.read_json('model.json')

to_json() returns a string when no path is given. to_dict() / from_dict() expose the same data as plain-python dicts. The BinWM format ({"requirements": [...], "binary_matrix": [[...]]}) is the same shape used by the bundled example fixtures.

Documentation

Currently just stored in the repo.

Development

In the repository root:

uv sync

Releases

Managed by Release Please with auto-versioning. Changes to default branch will be accumulated in a release PR based on Conventional Commits. Merging the release PR will automatically publish the versioned package to PyPI.

Roadmap

  • Model sets for comparative work (rather than a single set of characteristic parameter values)
  • Improved visualisation
  • Export CODA models to Excel template
  • House of Quality style requirement/characteristic weighting
  • Pandas everywhere (v1.x)

References

Based on my own degree notes and open access literature:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vdd-3.1.0.tar.gz (121.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vdd-3.1.0-py3-none-any.whl (73.8 kB view details)

Uploaded Python 3

File details

Details for the file vdd-3.1.0.tar.gz.

File metadata

  • Download URL: vdd-3.1.0.tar.gz
  • Upload date:
  • Size: 121.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vdd-3.1.0.tar.gz
Algorithm Hash digest
SHA256 d0d1eb2eaa1bdb04614dbc59a77b537fe5cf407d042bbb1e260dfbce0a6fd48e
MD5 c5b5649ae679ef5a777013b213e6c3f9
BLAKE2b-256 4d2571a1f4008d991f141ba7915897458e0224432ef86e2bd67b9cb4ac149416

See more details on using hashes here.

File details

Details for the file vdd-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: vdd-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 73.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vdd-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f548d2821d7c9d63c3c7d1d39a16757b58b6160789abc3d2e371f6d4bc01ef2
MD5 8b8dd04a77027665b1bf9a616f958206
BLAKE2b-256 0f2bc0f542dccbf0b5b1b3b4d14d34f94578033f48a06b1bfe75797e2f57363f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page