{"id":19154868,"url":"https://github.com/bomquote/modality","last_synced_at":"2026-06-15T14:30:18.773Z","repository":{"id":74926304,"uuid":"163170841","full_name":"bomquote/modality","owner":"bomquote","description":"Modality, a Python framework for creating hardware product test suites.","archived":false,"fork":false,"pushed_at":"2019-01-03T07:46:21.000Z","size":256,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-03T19:30:57.079Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bomquote.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-26T11:07:50.000Z","updated_at":"2023-11-26T15:00:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"4dda0f0a-6a4d-4cb1-ac28-7f7fbf019e46","html_url":"https://github.com/bomquote/modality","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomquote%2Fmodality","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomquote%2Fmodality/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomquote%2Fmodality/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bomquote%2Fmodality/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bomquote","download_url":"https://codeload.github.com/bomquote/modality/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240238544,"owners_count":19769960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T08:28:38.863Z","updated_at":"2026-06-15T14:30:18.695Z","avatar_url":"https://github.com/bomquote.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://raw.githubusercontent.com/bmjjr/modality/master/img/modality_img.jpg?token=AAgJc9an2d8HwNRHty-6vMZ94VfUGGSIks5b8VHbwA%3D%3D\n\n**A framework for creating hardware product test suites.**\n\n.. image:: https://img.shields.io/badge/Python-3.6%20%7C%203.7-blue.svg\n  :target: https://github.com/bomquote/modality\n.. image:: https://img.shields.io/badge/Status-Alpha-yellow.svg\n  :target: https://github.com/bomquote/modality\n.. image:: https://img.shields.io/badge/license-MIT-lightgrey.svg\n  :target: https://github.com/bomquote/modeality/blob/master/LICENSE\n\n\n=============\n*Modality*\n=============\n\nAbout\n-----\n\n**Pre-Alpha concept development. Not currently usable.**\n\nModality is a framework which supports Model Based Testing (MBT) for hardware products.\n\nIt's goal is to be useful to guide specification, analysis, design, verification, and\nvalidation testing in the new product development process, as viewed from a systems\nengineering perspective.\n\nParticularly, it should be useful to develop a quick, accurate understanding of how\na design change will impact the requirements of other aspects of the product\nas a system.\n\nIt integrates concepts from `MBSE (Model Based Systems Engineering) \u003chttps://mbseworks.com/mbse-overview/\u003e`_ and `Sys.ML\n(Systems Modeling Language) \u003chttps://sysml.org/sysml-faq/\u003e`_ to enable describing simple to complex systems that\nmay include hardware, software, data, personnel, procedures, and facilities.\n\nPractically, it's core use case is to first use SysML to build models which are then used to\nbuild test suites for product design verification, validation, unit, and system testing.\n\nDevelopment of Modality is sponsored by `BOM Quote Manufacturing \u003chttps://www.bomquote.com\u003e`_.\n\n\nGoals\n----------\n\nModality should be useful to developers to build models of systems under consideration\n(SUC). The system requirements and interface relations are then used to build test\nsuites for the SUC. Targeted users are those involved in hardware design, product\ndevelopment, or product lifecycle management for products viewed as a system, including\nmoderately complex hardware (electronic + mechanical) + software (embedded) systems.\n\nThe framework should help to create test suites used to:\n\n- verify specifications realize intended product features\n- generate actionable tests, for engineering or MFG QA use\n\nParticularly, it should be useful to develop test suites to:\n\n1. highlight potential related change areas to consider in a change process\n2. adding new features to existing designs\n3. design verification and validation testing\n4. performing functional and/or acceptance testing\n\nMotivation\n----------\n\nFor example, in the 'NPI' or 'New Product Introduction' phase. Design changes must\noften be made to realize features or to improve manufacturability. Even when using\na clear ECR/ECO process, without a standard test framework in place customized to\nthe product, it is easy to make mistakes and oversights. Especially, when working\nwith external suppliers or CM's. Mistakes and oversights result in project delays.\n\nAlso, when hardware designers work with external teams, like a CM team, the CM team\nmust come up to speed on the design. But, it is difficult for non-dedicated staff\nwho were not involved in the design process to fully comprehend a hardware product\nas a system. Clearly defined test suites for subassembly and system requirement\ndocuments are helpful if they exist. But, usually early in the design phase they do\nnot exist and how to go about creating them is non-standard.\n\nGenerally, a reliance on individual talents and heroics of the responsible designers\nis how these issues are overcome. Test suites built with Modality should help to\nreduce reliance on individual heroics and instead help to formalize a standardized\nprocess for tests and system reviews.\n\nCommon types of issues that test suites built with Modality should help address\ninclude:\n\nTechnical Oversights\n\n- Making a change but missing related changes that should be made in other areas\n- Making changes but then failing to assess the impact to the system as a whole\n\nUnclear Specifications\n\n- Failing to appropriately specify each individual part in a BOM\n- Failing to specify modules and subassemblies comprised of parts\n- Failing to adequately specify the system for testing\n\nUnclear Relations\n\n- Failing to formally identify interconnected parts and dependencies\n\n\nTerminology\n------------\n\nDesign verification is defined as, \"confirmation by examination and provision of\nobjective evidence that specified requirements have been fulfilled.\"\n\nDesign validation is, \"establishing by objective evidence that device specifications\nconform with user needs and intended use(s).\"\n\nSimply put, verification confirms that the design output meets the design input\nrequirements, while validation ensures that user needs are met by the product.\n\n\nSystem/Subsystem:\nA `system` means a product.  `Subsystems` mean parts that compose the product.\n\n.. image:: https://raw.githubusercontent.com/bmjjr/modality/master/img/system_subsystem.jpg?token=AAgJc9an2d8HwNRHty-6vMZ94VfUGGSIks5b8VHbwA%3D%3D\n\n\nControl model/Plant model:\n`Subsystems` are categorized into two types:\n\n1. control models which control subsystems\n2. plant models which are controlled by control models\n\n.. image:: https://raw.githubusercontent.com/bmjjr/modality/master/img/control_model_plant_model.jpg?token=AAgJc9an2d8HwNRHty-6vMZ94VfUGGSIks5b8VHbwA%3D%3D\n\n\nInterface:\nAn `interface` means a relation between plant models in a subsystem.\n\n.. image:: https://raw.githubusercontent.com/bmjjr/modality/master/img/subsystem_interfaces.jpg?token=AAgJc9an2d8HwNRHty-6vMZ94VfUGGSIks5b8VHbwA%3D%3D\n\n\nAcronyms:\n\n- SUC : System under consideration\n\n\nModel Based Testing:\n\nA lightweight formal method which is used to validate a system.\nSuch testing method is applicable to both hardware and software testing. We use the\nsystem requirements in order to generate the efficient test cases with the help of a\nModel. Given below is an overview of a model based testing.\n\n- Develop a model.\n- Determine various inputs for this model.\n- Determine expected output for this model.\n- Execute the tests.\n- Compare the returned result against the expected output.\n- Make the decision on the action on the model.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbomquote%2Fmodality","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbomquote%2Fmodality","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbomquote%2Fmodality/lists"}