Ampersand Documentation

website·Indexed 30 days ago

https://ampersandtarski.github.io/

Documentation for Ampersand, a tool for automatically generating information systems from ADL interface definitions. Includes guides on the Prototype Framework, custom VIEW and BOX templates, frontend component development using Angular, and deployment instructions for RAP via Docker and Kubernetes.

Tokens
97.8K
Snippets
361
Records
756
Agent score
72%

What's inside Ampersand

  1. Overview of Conceptual Modeling in Ampersand

    Conceptual modeling (or domain modeling) in Ampersand is used to represent a domain's concepts, relationships, and constraints. It serves to explore unknown domains, define service boundaries, resolve terminology misunderstandings among stakeholders, and facilitate learning. The Ampersand approach is specifically useful when the model needs to be interpreted by a computer to generate artifacts like data models, prototype implementations, or documentation.
  2. Overview of Ampersand regression testing

    The Ampersand regression suite validates a collection of .adl and .archimate scripts by comparing the compiler's actual exit code against an expected exit code. A test is considered successful if the actual exit code matches the expected value. The suite is implemented as the ampersand-test stanza in package.yaml, with the core logic located in src/Ampersand/Test/Regression.hs.
  3. Overview of Ampersand research and academic foundations

    Research into Ampersand focuses on the automatic generation of information systems, the development of a language suitable for designing these systems, and improving design communication between stakeholders. The project is grounded in relation algebra and is documented on Researchgate via 'The Ampersand Project'.
  4. Overview of Ampersand use cases

    Ampersand is a tool designed for specific user profiles and purposes:

    • Students: Provided with a dedicated tutorial for classroom use.
    • Computer Professionals: Offers a method for designing information systems focused on fast results for those willing to learn the system.
    • Scientific Researchers: Based on relation algebra and formal methods.
    • Software Engineers: Designed for adaptability, where back-end software is as flexible as front-end software, generating results using proven technology for maintainability.
  5. Overview of RAP automated testing with Gatling

    RAP uses the Gatling framework to perform automated functional tests. Gatling allows the creation of 'simulations' that mimic user behavior to verify that the application responds as expected.
  6. Overview of RAP application architecture

    RAP is an information system generated by Ampersand. It consists of a backend connected to a database, an API, and a frontend application. It is built upon the Prototype-framework (a PHP framework) and utilizes the Ampersand compiler to allow users to upload ADL-scripts and deploy new information systems. The RAP image includes customized code for compiling user scripts, creating functional specification documents, and deploying generated systems via Docker-compose or Kubernetes.
  7. Introduction to Ampersand and RAP4

    Ampersand is a language used to develop information systems. RAP4 is the web-based editor and execution environment used to specify, analyze, and build these systems. It allows developers to write Ampersand scripts, compile them, and generate working web-based prototypes.
  8. Overview of the Full-text search module

    The search module allows users to search across all stored data of a running prototype from the home screen. It identifies atoms (entities) whose data contains the search term, groups them by concept, and provides buttons to open the matching atom in any compatible interface. The search is debounced and performs case-insensitive substring matching using LIKE '%term%'.
  9. Overview of the Ampersand compilation process

    The Ampersand compilation pipeline consists of six primary stages:

    1. Scripts: Collection of files (typically .adl, .docadl, or .ifc) tied together by INCLUDE statements. Cycles in include trees are permitted.
    2. Lexing: Tokenization of all included files.
    3. Parsing: Production of a P_Context (P-structure), which is a structured representation of the script (parse tree) wrapped in a Guarded type to handle errors.
    4. Type checking: The pCtx2aCtx function converts the P_Context into a type-correct A_Context (A-structure). Every term is mapped to a unique expression with a specific signature.
    5. Upstream enrichment: The pCtx2Fspec function transforms the A_Context into an FSpec (Functional Specification).
    6. Generation: The FSpec is used to generate final code, documentation, or quality analysis.
  10. Overview of the SIAM (Sessions, Identity and Access Management) Module

    The SIAM module provides core infrastructure for managing user sessions, identities, and authentication (login). It includes built-in support for Accounts, Roles, and a basic, extendable registration system for both individuals and organizations.
  11. Overview of the Ampersand research programme

    Ampersand is a research programme dedicated to the automatic generation of information systems from formal specifications. It utilizes a relation-algebraic theory to ensure that business rules are treated as formal constraints whose violations can be computed and signaled in real time. The goal is to develop production-ready software by keeping specifications close to business requirements and using a compiler to generate the software based on defined semantics.