Skip to content

Commit

Permalink
Stakeholder & Values Modelling (#355)
Browse files Browse the repository at this point in the history
  • Loading branch information
stefan-ka authored Aug 9, 2024
1 parent 9129c0f commit 140e6dc
Show file tree
Hide file tree
Showing 18 changed files with 1,814 additions and 66 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/build_master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ jobs:
- name: Build with Gradle
run: ./gradlew clean build
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}

build_eclipse:
name: Build Eclipse Plugin
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/build_standard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ jobs:
- name: Build with Gradle
run: ./gradlew clean build
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}

build_eclipse:
name: Build Eclipse Plugin
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ jobs:
- name: Build with Gradle
run: ./gradlew clean build
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}

build_eclipse:
name: Build Eclipse Plugin
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Stakeholders {

Stakeholder Tester

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
BoundedContext SameDayDelivery

Stakeholders of SameDayDelivery {
StakeholderGroup Online_Shopping_Company {
Stakeholder Development_Team {
influence MEDIUM
interest HIGH
}
Stakeholder Product_Management {
influence HIGH
interest HIGH
}
Stakeholder Customer_Relationship_Manager {
influence HIGH
interest MEDIUM
}
}

StakeholderGroup Product_Suppliers {
Stakeholder Managers
Stakeholder Logistics_Warehouse_Staff_of_Suppliers
Stakeholder Delivery_Staff_of_Suppliers
}

StakeholderGroup Delivery_Partners {
Stakeholder Route_Planners
Stakeholder Drivers
}

StakeholderGroup Competing_Companies

StakeholderGroup Logistics_Team {
Stakeholder Logistics_Manager
Stakeholder Warehouse_Staff
}


Stakeholder Government

StakeholderGroup Customers_and_Shoppers {
Stakeholder Shoppers_in_Emergency_Situations
Stakeholder Others
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
BoundedContext SameDayDelivery
BoundedContext Context2

Stakeholders of SameDayDelivery, Context2 {
StakeholderGroup Online_Shopping_Company {
Stakeholder Development_Team {
influence MEDIUM
interest HIGH
}
Stakeholder Product_Management {
influence HIGH
interest HIGH
}
Stakeholder Customer_Relationship_Manager {
influence HIGH
interest MEDIUM
}
}

StakeholderGroup Product_Suppliers {
Stakeholder Managers
Stakeholder Logistics_Warehouse_Staff_of_Suppliers
Stakeholder Delivery_Staff_of_Suppliers
}

StakeholderGroup Delivery_Partners {
Stakeholder Route_Planners
Stakeholder Drivers
}

StakeholderGroup Competing_Companies

StakeholderGroup Logistics_Team {
Stakeholder Logistics_Manager
Stakeholder Warehouse_Staff
}


Stakeholder Government

StakeholderGroup Customers_and_Shoppers {
Stakeholder Shoppers_in_Emergency_Situations
Stakeholder Others
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

Stakeholders {
StakeholderGroup Online_Shopping_Company {
Stakeholder Development_Team {
influence MEDIUM
interest HIGH
}
Stakeholder Product_Management {
influence HIGH
interest HIGH
}
Stakeholder Customer_Relationship_Manager {
influence HIGH
interest MEDIUM
}
}

StakeholderGroup Product_Suppliers {
Stakeholder Managers
Stakeholder Logistics_Warehouse_Staff_of_Suppliers
Stakeholder Delivery_Staff_of_Suppliers
}

StakeholderGroup Delivery_Partners {
Stakeholder Route_Planners
Stakeholder Drivers
}

StakeholderGroup Competing_Companies

StakeholderGroup Logistics_Team {
Stakeholder Logistics_Manager
Stakeholder Warehouse_Staff
}


Stakeholder Government

StakeholderGroup Customers_and_Shoppers {
Stakeholder Shoppers_in_Emergency_Situations
Stakeholder Others
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Domain Insurance_Application {
Entity Claim {
Date date
Double amountClaimed
String description
String desc
- Agent agent
}
Entity Policy {
Expand Down Expand Up @@ -43,7 +43,7 @@ Domain Insurance_Application {
UseCase Get_paid_for_car_accident { // title
actor "Claimant" // primary actor
interactions
"submit" a "Claim" with its "date", "amountClaimed", "description" for a "Policy", // step 1: claimant submits claim
"submit" a "Claim" with its "date", "amountClaimed", "desc" for a "Policy", // step 1: claimant submits claim
"verifyExistanceOf" "Policy" with its "startDate", "endDate" for a "Contract", // step 2: insurance company verifies that valid policy exists
"assign" an "Agent" with its "personalID", "firstName", "lastName" for "Claim", // step 3: agent is assigned to claim
"verify" "Policy" for a "Contract", // step 4: agent verifies all details are within policy guidelines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ BoundedContext ClaimsManagement implements ClaimsManagement {
Entity Claim {
Date date
Double amountClaimed
String description
String desc
String claimId key
- Agent agent
}
Expand Down Expand Up @@ -59,7 +59,7 @@ Domain Insurance_Application {
Entity Claim {
Date date
Double amountClaimed
String description
String desc
- Agent agent
}
Entity Policy {
Expand Down Expand Up @@ -100,7 +100,7 @@ Domain Insurance_Application {
UseCase Get_paid_for_car_accident { // title
actor "Claimant" // primary actor
interactions
"submit" a "Claim" with its "date", "amountClaimed", "description" for a "Policy", // step 1: claimant submits claim
"submit" a "Claim" with its "date", "amountClaimed", "desc" for a "Policy", // step 1: claimant submits claim
"verifyExistanceOf" "Policy" with its "startDate", "endDate" for a "Contract", // step 2: insurance company verifies that valid policy exists
"assign" an "Agent" with its "personalID", "firstName", "lastName" for "Claim", // step 3: agent is assigned to claim
"verify" "Policy" for a "Contract", // step 4: agent verifies all details are within policy guidelines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class DomainDSLParsingTest {
BoundedContext testContext
Domain Insurance {
Subdomain core
Subdomain CoreDomain
Subdomain support1
Subdomain generic
}
Expand All @@ -79,7 +79,7 @@ class DomainDSLParsingTest {
assertEquals(3, domain.subdomains.size);

val subdomainNames = domain.subdomains.stream.map[name].collect(Collectors.toList);
assertTrue(subdomainNames.contains("core"));
assertTrue(subdomainNames.contains("CoreDomain"));
assertTrue(subdomainNames.contains("support1"));
assertTrue(subdomainNames.contains("generic"));
}
Expand All @@ -88,10 +88,10 @@ class DomainDSLParsingTest {
def void canMapSubdomainToBoundedContexts() {
// given
val String dslSnippet = '''
BoundedContext testContext implements core
BoundedContext testContext implements CoreDomain
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
}
Subdomain support1 {
Expand All @@ -108,17 +108,17 @@ class DomainDSLParsingTest {
assertThatNoParsingErrorsOccurred(result);
assertThatNoValidationErrorsOccurred(result);
assertEquals(1, result.boundedContexts.get(0).implementedDomainParts.size);
assertEquals("core", result.boundedContexts.get(0).implementedDomainParts.get(0).name);
assertEquals("CoreDomain", result.boundedContexts.get(0).implementedDomainParts.get(0).name);
}

@Test
def void canMapSubdomainsToBoundedContexts() {
// given
val String dslSnippet = '''
BoundedContext testContext implements core, support1
BoundedContext testContext implements CoreDomain, support1
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
}
Subdomain support1 {
Expand All @@ -137,7 +137,7 @@ class DomainDSLParsingTest {
assertEquals(2, result.boundedContexts.get(0).implementedDomainParts.size);

val subdomainNames = result.boundedContexts.get(0).implementedDomainParts.stream.map[name].collect(Collectors.toList);
assertTrue(subdomainNames.contains("core"));
assertTrue(subdomainNames.contains("CoreDomain"));
assertTrue(subdomainNames.contains("support1"));
}

Expand All @@ -162,7 +162,7 @@ class DomainDSLParsingTest {
// given
val String dslSnippet = '''
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
domainVisionStatement = "my domain vision for this subdomain"
}
Expand All @@ -183,7 +183,7 @@ class DomainDSLParsingTest {
BoundedContext testContext implements Insurance
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
}
}
Expand All @@ -200,10 +200,10 @@ class DomainDSLParsingTest {
def void cannotImplementSubdomainAlreadyImplementedByDomain() {
// given
val String dslSnippet = '''
BoundedContext testContext implements Insurance, core
BoundedContext testContext implements Insurance, CoreDomain
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
}
}
Expand All @@ -213,7 +213,7 @@ class DomainDSLParsingTest {
// then
assertThatNoParsingErrorsOccurred(result);
validationTestHelper.assertError(result, ContextMappingDSLPackage.Literals.BOUNDED_CONTEXT, "",
String.format(ALREADY_IMPLEMENTED_SUBDOMAIN, "core", "Insurance"));
String.format(ALREADY_IMPLEMENTED_SUBDOMAIN, "CoreDomain", "Insurance"));
}

@Test
Expand All @@ -223,7 +223,7 @@ class DomainDSLParsingTest {
BoundedContext testContext implements Insurance, Banking
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
}
}
Expand All @@ -241,7 +241,7 @@ class DomainDSLParsingTest {
// given
val String dslSnippet = '''
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
domainVisionStatement = "my domain vision for this subdomain"
Expand All @@ -267,7 +267,7 @@ class DomainDSLParsingTest {
// given
val String dslSnippet = '''
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type = CORE_DOMAIN
domainVisionStatement = "my domain vision for this subdomain"
Expand All @@ -289,7 +289,7 @@ class DomainDSLParsingTest {
// given
val String dslSnippet = '''
Domain Insurance {
Subdomain core {
Subdomain CoreDomain {
type CORE_DOMAIN
domainVisionStatement "my domain vision for this subdomain"
}
Expand Down
Loading

0 comments on commit 140e6dc

Please sign in to comment.