Class Arc42DocumentationTemplate

java.lang.Object
com.structurizr.documentation.DocumentationTemplate
com.structurizr.documentation.Arc42DocumentationTemplate

public class Arc42DocumentationTemplate
extends DocumentationTemplate

An implementation of the arc42 documentation template, consisting of the following sections:

  1. Introduction and Goals (1)
  2. Constraints (2)
  3. Context and Scope (2)
  4. Solution Strategy (3)
  5. Building Block View (3)
  6. Runtime View (3)
  7. Deployment View (3)
  8. Crosscutting Concepts (3)
  9. Architectural Decisions (3)
  10. Quality Requirements (2)
  11. Risks and Technical Debt (4)
  12. Glossary (5)

The number in parentheses () represents the grouping, which is simply used to colour code section navigation buttons when rendered.

  • Constructor Details

  • Method Details

    • addIntroductionAndGoalsSection

      public Section addIntroductionAndGoalsSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Introduction and Goals" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addIntroductionAndGoalsSection

      public Section addIntroductionAndGoalsSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Introduction and Goals" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addConstraintsSection

      public Section addConstraintsSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Constraints" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addConstraintsSection

      public Section addConstraintsSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Constraints" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addContextAndScopeSection

      public Section addContextAndScopeSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Context and Scope" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addContextAndScopeSection

      public Section addContextAndScopeSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Context and Scope" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addSolutionStrategySection

      public Section addSolutionStrategySection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Solution Strategy" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addSolutionStrategySection

      public Section addSolutionStrategySection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Solution Strategy" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addBuildingBlockViewSection

      public Section addBuildingBlockViewSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Building Block View" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addBuildingBlockViewSection

      public Section addBuildingBlockViewSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Building Block View" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addRuntimeViewSection

      public Section addRuntimeViewSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Runtime View" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addRuntimeViewSection

      public Section addRuntimeViewSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Runtime View" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addDeploymentViewSection

      public Section addDeploymentViewSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Deployment View" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addDeploymentViewSection

      public Section addDeploymentViewSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Deployment View" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addCrosscuttingConceptsSection

      public Section addCrosscuttingConceptsSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Crosscutting Concepts" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addCrosscuttingConceptsSection

      public Section addCrosscuttingConceptsSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Crosscutting Concepts" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addArchitecturalDecisionsSection

      public Section addArchitecturalDecisionsSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds an "Architectural Decisions" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addArchitecturalDecisionsSection

      public Section addArchitecturalDecisionsSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds an "Architectural Decisions" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addQualityRequirementsSection

      public Section addQualityRequirementsSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Quality Requirements" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addQualityRequirementsSection

      public Section addQualityRequirementsSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Quality Requirements" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addRisksAndTechnicalDebtSection

      public Section addRisksAndTechnicalDebtSection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Risks and Technical Debt" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addRisksAndTechnicalDebtSection

      public Section addRisksAndTechnicalDebtSection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Risks and Technical Debt" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • addGlossarySection

      public Section addGlossarySection​(SoftwareSystem softwareSystem, java.io.File... files) throws java.io.IOException
      Adds a "Glossary" section relating to a SoftwareSystem from one or more files.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      files - one or more File objects that point to the documentation content
      Returns:
      a documentation Section
      Throws:
      java.io.IOException - if there is an error reading the files
    • addGlossarySection

      public Section addGlossarySection​(SoftwareSystem softwareSystem, Format format, java.lang.String content)
      Adds a "Glossary" section relating to a SoftwareSystem.
      Parameters:
      softwareSystem - the SoftwareSystem the documentation content relates to
      format - the Format of the documentation content
      content - a String containing the documentation content
      Returns:
      a documentation Section
    • getMetadata

      protected TemplateMetadata getMetadata()
      Description copied from class: DocumentationTemplate
      Gets the metadata associated with this template.
      Specified by:
      getMetadata in class DocumentationTemplate
      Returns:
      a TemplateMetadata object, or null if there is none