-
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
Reportsbased onQuestionnaires& simplified Excel-likeTables - Schedule how
Reportsshould 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 Templatesgrouped 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 -
COMRoles- Assignee (one who should pass the information into the
Report) - Reviewer (one that should approve the
Reportwhich 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 Templates automatically -
As a
HOA -
I want have a mechanism of scheduling
Reportcreation viaReport Schedules - I want this mechanism to create single time & regular emissions
-
I want
Organizationassignment mechanism -
I want
COMaccess preferences forReport Schedule -
I want to be able to delegate role definition to
COA - I want define complex deadlines
-
I want limit
Reportemission 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
Reports