Table of Contents

Process Step
Role
Policy
Objective
Behaviour
Container
Property
Type
Callable
Parameter
Position
Business Object
Constant Provider
Constant
Thing
Constraint
Derived Relation
Package
Project
Configuration provider
TestData
DTO
Factory
Service
Delegate
External Service under DI framework
External type
External Project
External package
Test Case
Unit Test
Test Helper
Stub provider
Test Artifact

Table 1. 

Process Step

is constrained by

is expanded by

contains

is contained by

uses

is determined by

is tested by

is constrained by

is expanded by

is done by

is implemented by

iterates

is iterated by

triggers

is triggered by

is constrained by

is constrained by

is constrained by

is constrained by

Get data from database

   

gets dataset from database

gets problemset from the database

starts categorizer

record categorization

gets dataset from database

gets problemset from the database

starts categorizer

record categorization

TRAINING_SET_FILE

TRAINING_SET_COLUMNS

PROBLEM_SET_FILE

PROBLEM_SET_COLUMNS

The record data is provided by the user in CSV

     

User

external script

   

Update database with categories

Update database with categories

       

Convert strings to numeric arrays

   

NCS.ARRAY_SIZE

NCS.ROW_SIZE

NCS.ELEMENTS

data

prepare data for AI

NCS.ARRAY_SIZE

NCS.ROW_SIZE

NCS.ELEMENTS

data

prepare data for AI

 

Use an AI to categorize the transactions

       

NumericConverterService

               

Calculates maximum string length

   

prepare data for AI

prepare data for AI

PROBLEM_SET_INPUT_COLUMN

TRAINING_SET_INPUT_COLUMN

Use an AI to categorize the transactions

       

PrepareDataService

               

calculates number of output neurons

   

prepare data for AI

prepare data for AI

TRAINING_SET_OUTPUT_COLUMN

Use an AI to categorize the transactions

All aspects of the database structure are configureable

       

PrepareDataService

               

prepares problemValues for AI

   

prepare data for AI

prepare data for AI

PROBLEM_SET_INPUT_COLUMN

Use an AI to categorize the transactions

All aspects of the database structure are configureable

       

PrepareDataService

               

prepares trainValues for AI

   

prepare data for AI

prepare data for AI

TRAINING_SET_OUTPUT_COLUMN

Use an AI to categorize the transactions

All aspects of the database structure are configureable

       

PrepareDataService

               

prepares trainResults for AI

   

prepare data for AI

prepare data for AI

TRAINING_SET_OUTPUT_COLUMN

Use an AI to categorize the transactions

       

PrepareDataService

               

prepares problemOids

   

prepare data for AI

prepare data for AI

PROBLEM_SET_ID_COLUMN

Use an AI to categorize the transactions

All aspects of the database structure are configureable

       

PrepareDataService

               

loads problemset from csv

   

Update database with categories

Update database with categories

 

The record data is provided by the user in CSV

       

CategorizerService

   

prepare data for AI

prepare data for AI

       

loads training set from csv

   

Update database with categories

Update database with categories

 

The record data is provided by the user in CSV

       

CategorizerService

   

prepare data for AI

prepare data for AI

       

compiles the model

   

Train AI

Train AI

 

Use an AI to categorize the transactions

       

NeuralNetTrainerService

               

trains the model

   

Train AI

Train AI

BATCH_SIZE

Use an AI to categorize the transactions

       

NeuralNetTrainerService

               

returns model accuracy

   

Train AI

Train AI

 

The accuracy of the model and probability of predictions should be shown

Refuse work if the accuracy of predictions are too low

       

NeuralNetTrainerService

               

build AI

   

There are three layers in the model

All three layers are Dense

The number of neurons is configureable

the number of output neurons

Update database with categories

ai

There are three layers in the model

All three layers are Dense

The number of neurons is configureable

the number of output neurons

Update database with categories

ai

 

Use an AI to categorize the transactions

       

NeuralNetBuilderService

   

Train AI

prepare data for AI

Train AI

prepare data for AI

       

check model accuracy

   

ACCURACYCHECK_FAILURE_HANDLING

display an error message about accuracy being low

display model accuracy

Train AI

ai

ACCURACYCHECK_FAILURE_HANDLING

display an error message about accuracy being low

display model accuracy

Train AI

ai

MIN_ACCURACY

Refuse work if the accuracy of predictions are too low

       

AccuracyCheckService

               

Train AI

   

check model accuracy

compiles the model

trains the model

returns model accuracy

Update database with categories

ai

check model accuracy

compiles the model

trains the model

returns model accuracy

Update database with categories

ai

 

Use an AI to categorize the transactions

       

NeuralNetTrainerService

   

run AI on problem set

build AI

run AI on problem set

build AI

       

display an error message about accuracy being low

   

check model accuracy

ui

check model accuracy

ui

 

The accuracy of the model and probability of predictions should be shown

Refuse work if the accuracy of predictions are too low

       

AccuracyErrorDisplayService

               

display model accuracy

   

check model accuracy

ui

check model accuracy

ui

 

The accuracy of the model and probability of predictions should be shown

Refuse work if the accuracy of predictions are too low

       

DisplayAccuracyService

               

ask the user about choice of categories

   

ui

obtain user's choice on the category

ui

obtain user's choice on the category

 

The user is presented with the most probable category combinations, and chooses one of them

       

ChoiceAskService

               

Display choice for user

   

ui

ui

OPTION_DISPLAY_FORMAT

The user is presented with the most probable category combinations, and chooses one of them

Information about the record and possible choices should be presented to the user in a way that makes it easy to comprehend, and contains all information needed by the user

       

OptionDisplayService

decide on the categories

decide on the categories

           

Display a transaction

   

decide on the categories

ui

decide on the categories

ui

 

The user is presented with the most probable category combinations, and chooses one of them

Information about the record and possible choices should be presented to the user in a way that makes it easy to comprehend, and contains all information needed by the user

       

TransactionDisplayService

               

obtain user's choice on the category

   

ask the user about choice of categories

compute chouce from the answer

decide on the categories

ask the user about choice of categories

compute chouce from the answer

decide on the categories

           

ChoiceObtainerService

               

compute chouce from the answer

   

COS.number

COS.None

COS.categories

obtain user's choice on the category

COS.number

COS.None

COS.categories

obtain user's choice on the category

           

ChoiceObtainerService

               

Update database with categories

   

prepare data for AI

build AI

Train AI

run AI on problem set

Update data

loads problemset from csv

loads training set from csv

categorizerai

prepare data for AI

build AI

Train AI

run AI on problem set

Update data

loads problemset from csv

loads training set from csv

categorizerai

PROBLEM_SET_COLUMNS

PROBLEM_SET_FILE

TRAINING_SET_COLUMNS

TRAINING_SET_FILE

The records are updated in the database

All aspects of the database structure are configureable

       

CategorizerService

   

Get data from database

Get data from database

       

decide on the categories

   

Display a transaction

obtain user's choice on the category

update one row

Display a transaction

obtain user's choice on the category

update one row

 

Use an AI to categorize the transactions

         

Display choice for user

Display choice for user

update the row in the database

prepare options for a row

update the row in the database

prepare options for a row

       

obtain categories

   

prepare options for a row

prepare options for a row

 

Use category combinations determined in the database

       

OptionPreparatorService

               

Obtain database connection

   

Update data

Update data

 

The records are updated in the database

                         

prepare data for AI

   

Calculates maximum string length

calculates number of output neurons

prepares problemValues for AI

prepares trainValues for AI

prepares trainResults for AI

prepares problemOids

Convert strings to numeric arrays

Update database with categories

data

Calculates maximum string length

calculates number of output neurons

prepares problemValues for AI

prepares trainValues for AI

prepares trainResults for AI

prepares problemOids

Convert strings to numeric arrays

Update database with categories

data

 

Use an AI to categorize the transactions

       

PrepareDataService

   

build AI

loads training set from csv

loads problemset from csv

build AI

loads training set from csv

loads problemset from csv

       

prepare options for a row

   

obtain categories

update one row

obtain categories

update one row

 

The user is presented with the most probable category combinations, and chooses one of them

       

OptionPreparatorService

   

decide on the categories

decide on the categories

       

run AI on problem set

   

Update database with categories

Update database with categories

 

Use an AI to categorize the transactions

       

CategorizerService

   

Update data

Train AI

Update data

Train AI

       

Update data

   

Obtain database connection

Update database with categories

Obtain database connection

Update database with categories

 

The records are updated in the database

       

CategorizerService

update one row

update one row

run AI on problem set

run AI on problem set

       

update one row

   

prepare options for a row

decide on the categories

update the row in the database

prepare options for a row

decide on the categories

update the row in the database

 

The records are updated in the database

         

Update data

Update data

           

update the row in the database

   

update one row

update one row

 

The records are updated in the database

             

decide on the categories

decide on the categories

       

Table 2. 

Role

is constrained by

is expanded by

does

User

   

Get data from database



Table 4. 

Objective

is constrained by

is expanded by

determines

is drived by

Refuse work if the accuracy of predictions are too low

   

check model accuracy

ACCURACYCHECK_FAILURE_HANDLING

returns model accuracy

display an error message about accuracy being low

display model accuracy

Categorize transactions

The user is presented with the most probable category combinations, and chooses one of them

   

prepare options for a row

ask the user about choice of categories

Display choice for user

Display a transaction

Categorize transactions

Use an AI to categorize the transactions

   

build AI

Train AI

run AI on problem set

prepare data for AI

Convert strings to numeric arrays

decide on the categories

NCS.ARRAY_SIZE

NCS.ELEMENTS

NCS.ROW_SIZE

Calculates maximum string length

calculates number of output neurons

prepares problemOids

prepares problemValues for AI

prepares trainResults for AI

prepares trainValues for AI

All three layers are Dense

trains the model

compiles the model

Categorize transactions

The record data is provided by the user in CSV

   

Get data from database

gets dataset from database

gets problemset from the database

starts categorizer

loads problemset from csv

loads training set from csv

Transactions are in a database

The records are updated in the database

   

Update database with categories

Update data

Obtain database connection

update one row

update the row in the database

Transactions are in a database

Use category combinations determined in the database

   

obtain categories

Transactions are in a database

The important AI parameters should be tuneable

   

The number of neurons is configureable

the number of output neurons

There are three layers in the model

The project should not impose constraints on the database structure, and be adaptable for various needs

All aspects of the database structure are configureable

   

calculates number of output neurons

prepares problemValues for AI

prepares trainValues for AI

prepares problemOids

Update database with categories

The project should not impose constraints on the database structure, and be adaptable for various needs

Information about the record and possible choices should be presented to the user in a way that makes it easy to comprehend, and contains all information needed by the user

   

Display choice for user

Display a transaction

The user should be informed about significant circumstances

The accuracy of the model and probability of predictions should be shown

   

returns model accuracy

display an error message about accuracy being low

display model accuracy

The user should be informed about significant circumstances


Table 5. 

Behaviour

is constrained by

is expanded by

contains

is contained by

uses

is determined by

is tested by

Process Step

Is done by a user or implemented by a Callable

Contained in a Package or a process step

Contained in at most one Package

Contained in at most one Process Step

Iterates or contained in at most one Process Step

is implemented by/implements

         

gets dataset from database

   

Get data from database

Get data from database

 

The record data is provided by the user in CSV

 

gets problemset from the database

   

Get data from database

Get data from database

 

The record data is provided by the user in CSV

 

starts categorizer

   

Get data from database

Get data from database

 

The record data is provided by the user in CSV

 

NCS.ARRAY_SIZE

   

Convert strings to numeric arrays

Convert strings to numeric arrays

 

Use an AI to categorize the transactions

 

NCS.ROW_SIZE

   

Convert strings to numeric arrays

Convert strings to numeric arrays

 

Use an AI to categorize the transactions

 

NCS.ELEMENTS

   

Convert strings to numeric arrays

Convert strings to numeric arrays

 

Use an AI to categorize the transactions

 

ACCURACYCHECK_FAILURE_HANDLING

   

check model accuracy

check model accuracy

 

Refuse work if the accuracy of predictions are too low

 

There are three layers in the model

   

build AI

build AI

 

The important AI parameters should be tuneable

 

All three layers are Dense

   

build AI

build AI

 

Use an AI to categorize the transactions

 

The number of neurons is configureable

   

build AI

build AI

FIRST_LAYER_NEURONS

SECOND_LAYER_NEURONS

The important AI parameters should be tuneable

 

the number of output neurons

   

build AI

build AI

 

The important AI parameters should be tuneable

 

COS.number

   

compute chouce from the answer

compute chouce from the answer

     

COS.None

   

compute chouce from the answer

compute chouce from the answer

     

COS.categories

   

compute chouce from the answer

compute chouce from the answer

CHOICE_FORMAT_REGEX

   

Table 6. 

Container

is constrained by

is expanded by

contains

is contained by

Behaviour

       

Type

       

Package

In exactly one Project or Package

     

Project

Contains at least one package

     


Table 8. 

Type

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

Callable

               

Business Object

               

Constant Provider

               

DTO

               

Factory

               

Delegate

               

Type Alias

               

Unit Test

               

Test Helper

               

Stub provider

               

csv file

       

column list

filename

 

Training set csv

Problem set csv

 

Table 9. 

Callable

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

results

uses

implements

Service

Implements a Process Step

                   

External Service under DI framework

                     

External type

                     



Table 12. 

Business Object

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

has an example as

is used as parameter

is of

is resulted by

Problem set csv

           

csv file

 

problem_set.csv

 

csv file

external script

Training set csv

           

csv file

 

training_set.csv

 

csv file

external script

Input set

           

numpy.ndarray [str]

 

TRAIN_SET_VALUES

inputSet

numpy.ndarray [str]

 

input array for AI model

           

numpy.ndarray [numpy.ndarray [float]]

     

numpy.ndarray [numpy.ndarray [float]]

NumericConverterService

data for AI

           

AIData

 

data

 

AIData

PrepareDataService

trainset dataframe

           

pandas.DataFrame

 

TRAIN_SET

trainSet

pandas.DataFrame

 

problemset dataframe

           

pandas.DataFrame

 

PROBLEM_SET

problemSet

pandas.DataFrame

 

Neural net

           

keras.Model

 

model

model

keras.Model

NeuralNetBuilderService

number of categories

           

int

 

OUTPUT_NEURONS

numberOfOutputNeurons

int

 

maximum string length in all records

           

int

 

MAX_LENGTH

max_length

max_length

int

 

model accuracy

           

float

 

ACCURACY

Accuracy

accuracy

float

NeuralNetTrainerService

trainValues

           

numpy.ndarray [numpy.ndarray [float]]

 

TRAIN_VALUES

trainValues

numpy.ndarray [numpy.ndarray [float]]

 

trainResults

           

numpy.ndarray [int]

 

TRAIN_RESULTS

trainResults

numpy.ndarray [int]

 

choice

           

str

 

ANSWER_TO_CHOICE_PROMPT

 

str

ChoiceAskService

tuple of categories and the ID of the combination

           

list[str]

 

CATEGORY_TUPLE

categoriesForAnswer

list[str]

 

probability of an answer

           

float

 

ANSWER_PROBABILITY

probability

float

 

number of the choice offered

           

int

 

OFFERED_CHOICE

choiceNumber

int

 

transaction from the database

           

tuple

 

fetched_row

row

tuple

 

categories

           

choice

tuple

     

choice

tuple

 

choice

       

probability

value

tuple

categories

     

tuple

categories

ChoiceObtainerService

choices

       

key

value

 

dict

   

options

dict

 

Table 13. 

Constant Provider

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

Configuration provider

Can contain only constants

             

TestData

Contains only Test Artifacts

             


Table 15. 

Thing

is constrained by

is expanded by

Role

   

Policy

   

Objective

   

Container

   

Property

   

Parameter

   

Position

   

Test Case

   




Table 19. 

Project

is constrained by

is expanded by

contains

is contained by

is constrained by

External Project

         

CategorizerAI

   

categorizerai

categorizerai

 

Table 20. 

Configuration provider

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

is constrained by

Config

       

MIN_ACCURACY

FIRST_LAYER_NEURONS

SECOND_LAYER_NEURONS

BATCH_SIZE

TRAINING_SET_OUTPUT_COLUMN

PROBLEM_SET_INPUT_COLUMN

TRAINING_SET_INPUT_COLUMN

PROBLEM_SET_ID_COLUMN

OPTION_DISPLAY_FORMAT

PROBLEM_SET_COLUMNS

PROBLEM_SET_FILE

TRAINING_SET_COLUMNS

TRAINING_SET_FILE

CHOICE_FORMAT_REGEX

       

Table 21. 

TestData

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

is constrained by

is used by

contains examples of

DataTestData

       

MAX_LENGTH

TRAIN_SET_VALUES

TRAIN_SET

PROBLEM_SET

OUTPUT_NEURONS

           

AITestData

       

model

TRAIN_VALUES

TRAIN_RESULTS

ACCURACY

           

UITestData

       

ANSWER_TO_CHOICE_PROMPT

OFFERED_CHOICE

ANSWER_PROBABILITY

CATEGORY_TUPLE

           

UpdateTestData

       

data

           

DbTestData

       

fetched_row

all_rows

           

DTO

Table 22. 

DTO

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

is created by

is used by

AIData

   

ai

ai

max_length

numberOfOutputNeurons

trainValues

trainResults

problemValues

problemOids

 

data for AI

 

AIDataFactory

 

Table 23. 

Factory

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

creates

AIDataFactory

               

AIData


Table 24. 

Service

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

results

uses

implements

contributes to

is constrained by

NumericConverterService

               

input array for AI model

inputSet

max_length

Convert strings to numeric arrays

   

PrepareDataService

               

data for AI

problemSet

trainSet

prepare data for AI

   

CategorizerService

                   

Update database with categories

   

AccuracyCheckService

                 

Accuracy

check model accuracy

   

NeuralNetBuilderService

               

Neural net

max_length

numberOfOutputNeurons

build AI

   

NeuralNetTrainerService

               

model accuracy

trainValues

trainResults

model

Train AI

   

DisplayAccuracyService

                 

accuracy

display model accuracy

   

AccuracyErrorDisplayService

                   

display an error message about accuracy being low

   

ChoiceAskService

               

choice

 

ask the user about choice of categories

   

OptionDisplayService

                 

choiceNumber

probability

categoriesForAnswer

Display choice for user

   

TransactionDisplayService

                 

row

Display a transaction

   

ChoiceObtainerService

               

choice

options

obtain user's choice on the category

   

OptionPreparatorService

                   

prepare options for a row

   

Table 25. 

Delegate

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

uses

uses


Table 26. 

External Service under DI framework

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

results

uses

implements


Table 27. 

External type

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

results

uses

implements

is aliased by

external script

               

Training set csv

Problem set csv

 

Get data from database

 

numpy.ndarray [numpy.ndarray [float]]

   

numpy

numpy

 

trainValues

problemValues

trainValues

input array for AI model

         

numpy.ndarray [int]

   

numpy

numpy

 

trainResults

trainResults

         

keras.Model

   

Keras

Keras

   

Neural net

         

int

   

Python core

Python core

 

numberOfOutputNeurons

max_length

FIRST_LAYER_NEURONS

SECOND_LAYER_NEURONS

BATCH_SIZE

key

number of categories

maximum string length in all records

number of the choice offered

         

list[list[int]]

   

Python core

Python core

               

list[int]

   

Python core

Python core

 

problemOids

           

list[str]

   

Python core

Python core

 

PROBLEM_SET_COLUMNS

TRAINING_SET_COLUMNS

column list

tuple of categories and the ID of the combination

         

float

   

Python core

Python core

 

MIN_ACCURACY

probability

model accuracy

probability of an answer

         

pandas.DataFrame

   

pandas

pandas

   

problemset dataframe

trainset dataframe

         

numpy.ndarray [str]

   

numpy

numpy

   

Input set

         

str

   

Python core

Python core

 

PROBLEM_SET_FILE

TRAINING_SET_FILE

TRAINING_SET_OUTPUT_COLUMN

PROBLEM_SET_INPUT_COLUMN

TRAINING_SET_INPUT_COLUMN

PROBLEM_SET_ID_COLUMN

OPTION_DISPLAY_FORMAT

filename

CHOICE_FORMAT_REGEX

choice

         

tuple

   

Python core

Python core

 

all_rows

transaction from the database

choice

categories

         

dict

   

Python core

Python core

   

choices

         


Table 29. 

External package

is constrained by

is expanded by

contains

is contained by

is constrained by

record categorization

   

Get data from database

User's own project

Get data from database

User's own project

 

Table 30. 

Test Case

is constrained by

is expanded by

tests

is contained by


Table 31. 

Unit Test

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

contains

uses

uses

uses


Table 32. 

Test Helper

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

is used by


Table 33. 

Stub provider

is constrained by

is expanded by

contains

is contained by

contains

is type of

is type of

represented in

is used by


Table 34. 

Test Artifact

is constrained by

is expanded by

is contained by

is a

is used by

is default for

is an example of

is expanded by

is expanded by

is expanded by

is based on

is base of

problem_set.csv

     

csv file

Get data from database

 

Problem set csv

         

training_set.csv

     

csv file

Get data from database

 

Training set csv

         

TRAIN_SET_VALUES

   

DataTestData

numpy.ndarray [str]

Convert strings to numeric arrays

 

Input set

         

MAX_LENGTH

   

DataTestData

int

Convert strings to numeric arrays

build AI

 

maximum string length in all records

         

data

   

UpdateTestData

AIData

prepare data for AI

 

data for AI

         

TRAIN_SET

   

DataTestData

pandas.DataFrame

prepare data for AI

 

trainset dataframe

         

PROBLEM_SET

   

DataTestData

pandas.DataFrame

prepare data for AI

 

problemset dataframe

         

model

   

AITestData

keras.Model

Train AI

build AI

 

Neural net

         

OUTPUT_NEURONS

   

DataTestData

int

build AI

 

number of categories

         

TRAIN_VALUES

   

AITestData

numpy.ndarray [numpy.ndarray [float]]

Train AI

 

trainValues

         

TRAIN_RESULTS

   

AITestData

numpy.ndarray [int]

Train AI

 

trainResults

         

ACCURACY

   

AITestData

float

check model accuracy

display model accuracy

Train AI

 

model accuracy

         

ANSWER_TO_CHOICE_PROMPT

   

UITestData

str

ask the user about choice of categories

 

choice

         

OFFERED_CHOICE

   

UITestData

int

Display choice for user

 

number of the choice offered

         

ANSWER_PROBABILITY

   

UITestData

float

Display choice for user

 

probability of an answer

         

CATEGORY_TUPLE

   

UITestData

list[str]

Display choice for user

 

tuple of categories and the ID of the combination

         

fetched_row

   

DbTestData

tuple

Display a transaction

 

transaction from the database

     

all_rows

all_rows

all_rows

   

DbTestData

tuple

Display a transaction

 

transaction from the database

     

fetched_row

fetched_row