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 .. code-block:: StaticAspect { } Define an named Architecture aspect .. code-block:: 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. .. code-block:: StaticAspect { ApiClient WebClient FeedManager AdminManager TransformationEngine ValidationEngine CustomerAccess SupplierAccess CustomerResource SupplierResource SecurityUtility } .. image:: _syntax/staticAspect_01.svg Resource Components +++++++++++++++++++ .. code-block:: StaticAspect { NosqlResource:n } .. image:: _syntax/staticAspect_nosql.svg .. code-block:: StaticAspect { FileResource:f } .. image:: _syntax/staticAspect_file.svg .. code-block:: StaticAspect { ApiResource:a } .. image:: _syntax/staticAspect_api.svg UseCase ~~~~~~~ Define a use case .. code-block:: UseCase First { } UseCase "With Spaces" { } Synchronous call ++++++++++++++++ .. code-block:: UseCase First { ApiClient -> FeedManager } .. image:: _syntax/syncCallChain.svg .. image:: _syntax/syncCallSequence.svg Asynchronous call +++++++++++++++++ .. code-block:: UseCase First { ApiClient -:q> FeedManager } .. image:: _syntax/asyncCallChain.svg .. image:: _syntax/asyncCallSequence.svg CallDetail - Synchronous OperationName ++++++++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { ApiClient - MyOperation() > FeedManager } .. image:: _syntax/syncCallDetailSequence.svg CallDetail - Asynchronous OperationName +++++++++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { ApiClient - Operation() :q> FeedManager } .. image:: _syntax/asyncCallDetailSequence.svg CallDetail - Facet and OperationName ++++++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { ApiClient - IFacet.MyOperation() > FeedManager } .. image:: _syntax/syncFacetCallSequence.svg CallDetail - Context, Facet and OperationName +++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { ApiClient - Context.IFacet.MyOperation() > FeedManager } .. image:: _syntax/syncContextFacetCallSequence.svg CallDetail - Request Type +++++++++++++++++++++++++ .. code-block:: UseCase First { ApiClient - MyOperation(OperationRequest) > FeedManager } .. image:: _syntax/syncOperationRequestDTO.svg CallDetail - Request Type and parameter name ++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { ApiClient - MyOperation(OperationRequest request) > FeedManager } .. image:: _syntax/syncOperationRequestDTOParamName.svg CallDetail - Context RequestType and parameter name +++++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { ApiClient - MyOperation(Context.OperationRequest request) > FeedManager } .. image:: _syntax/syncOperationContextRequestDTO.svg CallDetail - ResponseType +++++++++++++++++++++++++ .. code-block:: UseCase First { FeedManager -OperationResponse MyOperation() > TransformationEngine } .. image:: _syntax/syncResponseOperation.svg CallDetail - Context.ResponseType +++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { FeedManager -Context.OperationResponse MyOperation() > TransformationEngine } .. image:: _syntax/syncContextResponseOperation.svg CallDetail - Generic Wrapper Context.ResponseType +++++++++++++++++++++++++++++++++++++++++++++++++ .. code-block:: UseCase First { FeedManager -Response MyOperation() > TransformationEngine } .. image:: _syntax/syncGenericContextResponseOperation.svg