santiago.dev
    ProjectsAboutContact
<- Back to projects
backgroundinstallusageapigallery
Qifystandard-readme compliant

Quality Attribute DSL

A TypeScript DSL IDE for defining, validating, visualizing, importing, and exporting ISO 25010 quality attribute scenarios.

Launch Live AppDocumentation

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:

  • Personal tool

    Qify

    TypeScript DSL parser and visualization IDE for ISO 25010 quality attribute requirements.

    LePeanutButter/qify →

Generated Diagrams & Artifacts

Discover real visual examples of quality attribute models generated through Canvas from the Qify engine.

SmarTrip_CompatibilidadIntegracion.svg
SmarTrip Platform — Compatibilidad Integracion.svg

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;
}
MIT License · Personal architecture tooling project

2026 Santiago Botero Garcia. Built with restrained systems thinking.

    GitHubLinkedInInstagramFacebook