Syntax

Method

A MethodSketch consists of many StaticAspect and UseCase blocks, if there is only one StaticAspect naming the block is optional

StaticAspect

Define an Architecture

StaticAspect { }

Define an named Architecture aspect

StaticAspect First { }
StaticAspect Second { }
StaticAspect "Third with space" { }

Defining Components

Client, Manager, Engine, Access, Resource and Utility are the only valid architecture Components as long as they are seperated with whitespace any token ending in a component name will be recognised.

StaticAspect {
    ApiClient WebClient
    FeedManager AdminManager
    TransformationEngine ValidationEngine
    CustomerAccess SupplierAccess
    CustomerResource SupplierResource
    SecurityUtility
}
_images/staticAspect_01.svg

Resource Components

StaticAspect {
    NosqlResource:n
}
_images/staticAspect_nosql.svg
StaticAspect {
    FileResource:f
}
_images/staticAspect_file.svg
StaticAspect {
    ApiResource:a
}
_images/staticAspect_api.svg

UseCase

Define a use case

UseCase First { }
UseCase "With Spaces" { }

Synchronous call

UseCase First {
    ApiClient -> FeedManager
}
_images/syncCallChain.svg_images/syncCallSequence.svg

Asynchronous call

UseCase First {
    ApiClient -:q> FeedManager
}
_images/asyncCallChain.svg_images/asyncCallSequence.svg

CallDetail - Synchronous OperationName

UseCase First {
    ApiClient - MyOperation() > FeedManager
}
_images/syncCallDetailSequence.svg

CallDetail - Asynchronous OperationName

UseCase First {
    ApiClient - Operation() :q> FeedManager
}
_images/asyncCallDetailSequence.svg

CallDetail - Facet and OperationName

UseCase First {
    ApiClient - IFacet.MyOperation() > FeedManager
}
_images/syncFacetCallSequence.svg

CallDetail - Context, Facet and OperationName

UseCase First {
    ApiClient - Context.IFacet.MyOperation() > FeedManager
}
_images/syncContextFacetCallSequence.svg

CallDetail - Request Type

UseCase First {
    ApiClient - MyOperation(OperationRequest) > FeedManager
}
_images/syncOperationRequestDTO.svg

CallDetail - Request Type and parameter name

UseCase First {
    ApiClient - MyOperation(OperationRequest request) > FeedManager
}
_images/syncOperationRequestDTOParamName.svg

CallDetail - Context RequestType and parameter name

UseCase First {
    ApiClient - MyOperation(Context.OperationRequest request) > FeedManager
}
_images/syncOperationContextRequestDTO.svg

CallDetail - ResponseType

UseCase First {
    FeedManager -OperationResponse MyOperation() > TransformationEngine
}
_images/syncResponseOperation.svg

CallDetail - Context.ResponseType

UseCase First {
    FeedManager -Context.OperationResponse MyOperation() > TransformationEngine
}
_images/syncContextResponseOperation.svg

CallDetail - Generic Wrapper Context.ResponseType

UseCase First {
    FeedManager -Response<Context.OperationResponse> MyOperation() > TransformationEngine
}
_images/syncGenericContextResponseOperation.svg