-
Notifications
You must be signed in to change notification settings - Fork 0
Domain Analysis
On this page we provide Domain Model via Ubiquitous Language with Bounded Context
For more details on the topic see following links
We need to analyze statistics of different Child Organisations
. By "analyze" we mean:
- Data visualization
- Statistics calculations (approximate, max/min, etc.)
- Build predictions based on covered data
There we face another problem
We need to provide a mechanism for aggregating data with unified format over time
For that we are going to develop a system that will allow users to:
- Create custom forms for
Reports
based onQuestionnaires
& simplified Excel-likeTables
- Schedule how
Reports
should be distributed acrossChild Organizations
- Manage
Child Organizations
- Fulfill
Reports
- Create different analysis queries based on retrieved data via some interface
One of the core entities of the system is Organization
``Organization` can be:
-
Child Organization
: many -
Head Organization
: one
Head Organization
controls & manages Child Organizations
Organization
consists of Members
. Each Member
is globally a User
. Each User
should be Member
of some Organization
& can't exist independently.
User
can be:
-
Child Organization Member
(COM
) -
Child Organization Administrator
(COA
) -
Head Organization Member
(HOM
) -
Head Organization Administrator
(HOA
)
There can be only one Administrator
per Organization
HOA
can create, delete, edit Users
& Child Organizations
. That is the only way for new Users
& Organizations
to be registered
COA
can send request on registration of new COM
to HOA
Report Template
is another important core entity of the business
Report Template
is some abstraction over the accumulated data structure
Report Template
consists of several Module Templates
which are also some abstraction over different data representations
There are 2 kinds of Module Templates
:
-
Table Module Template
(utilizes tables with strongly typedCell Templates
&Bindings
) -
Questionnaire Module Template
(utilizes questionnaires as a sequence of simple strongly typedQuestion Templates
grouped intoSection Templates
)
Each Question Template
or Cell Template
has Input Type
:
- Integer
- Decimal
- Financial
- Phone number
- Multiple Choice Option List
- Single Option Select
- Boolean
- Short Text
- Paragraph
Binding
contains some predefined type that represents logic of the function & assigned Cell Templates
affected by the function
Section Templates
can be marked as repeatable which means that when User
will be fulfilling Report
generated from Report Template
one can add more Answers
of the same type structured in Section
Section Template
contains Question Templates
Question Template
can't exist out of Section Template
Report Template
can be created only by the HOA
Report Schedule
is another core domain entity that represents how Reports
are instantiated in the system
Report Schedule
can be created only by HOA
Report Schedule
contains data about
- Periods of instantiation (how often we create new
Report
) - Start & End instantiation dates (when we start creating
Reports
& when we stop doing that) - Assigned
Child Organization
-
COM
Roles
- Assignee (one who should pass the information into the
Report
) - Reviewer (one that should approve the
Report
which means that approvement mechanism is required) - Viewer (one that can only observe the
Report
)
- Assignee (one who should pass the information into the
- Report template can be provided with more sophisticated access rule, up to module access restrictions
- Deadline periods
COA
can assign COMs
to Report
by himself if HAO
allowed that in Report Schedule
Report
is automatically created by the system based on Report Schedule
Report
is assigned to some Child Organization
& to some COMs
COMs
can work with Report
based on their roles
Report
has some limited availability time & Status
based on Report Schedule
and will be automatically blocked by the system when it will be expired
- Proceeded
- Passed
- Awaiting Review
- Expired
Report
structure replicates Report Template
, but has some additional data about User
input
If Report
was expired than only HOA
can edit that
This is the core use case that invokes all the other use cases
-
In order to get some information from
Child Organizations
-
As a
HOA
-
I want have an instrument that allows me to create custom distributable data structures -
Report Template
- I want it to provide support for tables & questionnaire form templates
- I want it to have validation & binding schemes for data
- I want input fields to be strongly typed
-
In order to create instances of
Report Template
s automatically -
As a
HOA
-
I want have a mechanism of scheduling
Report
creation viaReport Schedule
s - I want this mechanism to create single time & regular emissions
-
I want
Organization
assignment mechanism -
I want
COM
access preferences forReport Schedule
-
I want to be able to delegate role definition to
COA
- I want define complex deadlines
-
I want limit
Report
emission period
-
In order to pass the data about my
Child Organization
-
As a
COM
- I want to have an interface for passing data into form
- I want to be able to save data before submitting it
-
I want to accept or reject
Report
s