standard-readme compliantQuality Attribute DSL
A TypeScript DSL IDE for defining, validating, visualizing, importing, and exporting ISO 25010 quality attribute scenarios.
DSL Live Parser Simulator
Write or modify the quality attribute specification to validate its syntax:
✓ Valid DSL!
Program: Ecommerce · Attributes: 1 Loaded (PerformanceCheckout) · ISO 25010 Compliance: 100%
Source code
Explore the repositories that implement this project:
Generated Diagrams & Artifacts
Discover real visual examples of quality attribute models generated through Canvas from the Qify engine.
Architecture note: This carousel illustrates the complex specifications of the SmarTrip travel platform. Explore the full implementation in this portfolio case study.
Background
This DSL allows you to define quality attributes for systems using ISO 25010 categories, specify stimulus-response scenarios for quality requirements, validate semantic correctness and ISO 25010 compliance, and generate structured representations of quality specifications.
The system is built with TypeScript and provides:
Complete ISO 25010 Support
All 8 main categories with valid subcategories completely mapped out.
Semantic Validation
Ensures required fields, structural rules, and correct category usage metrics.
Extensible Grammar
Clean, human-readable syntax built optimized for quality architecture specifications.
Multiple Output Formats
Support for native plain text models and automated JSON structural export options.
Error Reporting
Detailed tracking of validation errors, inline syntactic warnings, and stack reports.
Visualization
Canvas-based architectural rendering visualization of specified system quality attributes.
Install
No external dependencies required. Just clone and run with Node.js 12+:
$ git clone https://github.com/LePeanutButter/qify $ cd qify
Development Setup
- Clone the repository as listed above
- Install dependencies: npm install
- Build the project: npm run build
- Run tests: npm test
- Start development: npm run dev
Usage
Programmatic Usage
import { DSLParser } from "./src/core/domain/dsl/services/DSLParser";
const parser = new DSLParser();
const result = parser.parseDSL(dslText);API Reference
DSLParser
The main parser class for processing DSL text architecture layouts.
class DSLParser {
parseDSL(dslText: string): ParseResult;
validateProgram(program: DSLProgram): ValidationResult;
}