Solution basics
The first dive into the specification and all its aspects: exploring the definition of the solution and its various elements, such as modules, pages, and more.
Last updated
The first dive into the specification and all its aspects: exploring the definition of the solution and its various elements, such as modules, pages, and more.
Last updated
This article will explain each of the elements in Uniscale that allows you to describe and structure your specification. If you want to start using Uniscale, please check our Quick start guide
In this article, we will explain each of the elements in Uniscale that allows you to break describe and structure your specification.
In this video you will get a short introduction to the structure of a specification:
A solution is the product, project, or system that you are working on. It contains all the information such as your functional specification and technical documentation.
In Uniscale, we provide various elements to describe and structure your solution. In this article, we will go through each of the elements and explain their purpose and functionality.
A module is a functionally isolated part of the software that has distinct ownership over its functionality and revision lifecycle.
Modules let you place a boundary in the solution at points where it makes sense to divide responsibilities for parts of the software.
Pages define the top-level structure of a module.
Use pages to break down the structure of your solution. In the image below, you will see an example of two pages: Timeline and Direct message. These are both created as pages in the Uniscale solution.
Creating pages is part of the detailed specification that is described further here: Detailed specification
Sections help break pages into manageable chunks, ensuring every detail in your description is captured.
The idea is to keep breaking them down into a structure of nested sections to define the interface.
A section can be further broken down into:
Sibling section: A section that can be added on the same level as others.
Child section: A subsection to a section for further breaking down the structure.
Functional use cases describe the user behavior within a module or page. This is in contrast to pages and sections that describe the structure.
A functional use case (FUC) can be used for two purposes:
Abstract: To describe the high-level user behavior of a module. An example can be to describe how a new user to your product should be onboarded.
Concrete: To describe the concrete behavior of a page or section. An example can be to describe concrete steps for what should happen when clicking on a button.
A Functional use case can further be broken down into the following elements:
For every User Interface (UI) element there is a UI designer note where your designer or product lead can describe the functionality and the restrictions you envision for that part of the UI.
The UX Product notes allow you to add notes and provide a detailed description regarding the intended user experience for a specific functional use case.
UX flows describe the detailed behaviors within functional use cases.
A list of qualifications that the implementation of the UX flow needs to fulfill.
You can use our generative AI to help suggest acceptance criteria. Learn more here: Tutorial: Using AI in Specification
Service flows are the first steps towards creating your technical documentation.
This part should be done by people familiar with your existing services, like a Solution Architect or Tech Lead.
For each UX flow in your solution, you can create a Service flow to begin to link your functional specification directly to your services.
A service refers to a discrete unit of functionality or capability provided by a system or application.
Each service is defined by its inputs, outputs, behavior, and interactions with other components of the system. Describe the requirements for the underlying technical flows that will enable you to build the desired functionality.
To learn more about Services, visit our detailed Service basics article
To to create a module: