Skip to content
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
39 changes: 25 additions & 14 deletions models/example_EveOnlineMiningFrigate/DomainModel/Concerns.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ package StakeholderConcerns {
private import StakeholdersDef::*;
private import MiningFrigate::*;

// The concerns are directly declared without definition, beacuse they aren't going to be reused in the scope of this model.
// Concerns Derived from the Business Case

concern def ProfitabilityConcern {
concern ProfitabilityConcern {
subject miningCorporation : Domain::MiningCorporation;

require constraint {
Expand All @@ -47,7 +48,7 @@ package StakeholderConcerns {
stakeholder miningCEO : MiningCEO;
}

concern def OperationalCostsConcern {
concern OperationalCostsConcern {
subject miningCorporation : Domain::MiningCorporation;

require constraint {
Expand All @@ -58,7 +59,7 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

concern def ScalabilityConcern {
concern ScalabilityConcern {
subject miningCorporation : Domain::MiningCorporation;

assume constraint {
Expand All @@ -69,7 +70,7 @@ package StakeholderConcerns {
stakeholder fleetCommander : FleetCommander;
}

concern def MarketResponsivenessConcern {
concern MarketResponsivenessConcern {
subject miningCorporation : Domain::MiningCorporation;

require constraint {
Expand All @@ -82,7 +83,7 @@ package StakeholderConcerns {

// Concerns Derived from the ConOps

concern def SecurityConcern {
concern SecurityConcern {
subject miningFrigate : MiningFrigate::MiningFrigate;

require constraint {
Expand All @@ -94,7 +95,7 @@ package StakeholderConcerns {
stakeholder shipEngineer : ShipEngineer;
}

concern def ResourceAvailabilityConcern {
concern ResourceAvailabilityConcern {
subject miningCorporation : Domain::MiningCorporation;

require constraint {
Expand All @@ -105,7 +106,7 @@ package StakeholderConcerns {
stakeholder fleetCommander : FleetCommander;
}

concern def DeploymentEfficiencyConcern {
concern DeploymentEfficiencyConcern {
subject miningFrigate : MiningFrigate::MiningFrigate;

require constraint {
Expand All @@ -116,7 +117,7 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

concern def ThreatNeutralizationConcern {
concern ThreatNeutralizationConcern {
subject miningFrigate : MiningFrigate::MiningFrigate;

require constraint {
Expand All @@ -130,7 +131,7 @@ package StakeholderConcerns {

// Concerns Derived from the MoEs

concern def TotalProfitabilityConcern {
concern TotalProfitabilityConcern {
subject miningCorporation : Domain::MiningCorporation;

require constraint {
Expand All @@ -141,7 +142,7 @@ package StakeholderConcerns {
stakeholder miningCEO : MiningCEO;
}

concern def OreYieldConcern {
concern OreYieldConcern {
subject miningFrigate : MiningFrigate::MiningFrigate;

require constraint {
Expand All @@ -152,7 +153,7 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

concern def SurvivabilityConcern {
concern SurvivabilityConcern {
subject miningFrigate : MiningFrigate::MiningFrigate;

require constraint {
Expand All @@ -163,7 +164,7 @@ package StakeholderConcerns {
stakeholder shipEngineer : ShipEngineer;
}

concern def FleetDeploymentEfficiencyConcern {
concern FleetDeploymentEfficiencyConcern {
subject miningCorporation : Domain::MiningCorporation;

require constraint {
Expand All @@ -175,7 +176,7 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

concern def OreDeliveryEfficiencyConcern {
concern OreDeliveryEfficiencyConcern {
subject miningFrigate : MiningFrigate::MiningFrigate;

require constraint {
Expand All @@ -186,7 +187,7 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

concern def RiskAdjustedProfitabilityConcern {
concern RiskAdjustedProfitabilityConcern {
subject miningCorporation : Domain::MiningCorporation;

require constraint {
Expand All @@ -198,4 +199,14 @@ package StakeholderConcerns {
stakeholder fleetCommander : FleetCommander;
}

//Viewpoints
viewpoint 'Operational profitability'{
frame ProfitabilityConcern;

require constraint {
doc /*TBD*/
}
}


}
61 changes: 35 additions & 26 deletions models/example_EveOnlineMiningFrigate/DomainModel/Domain.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ package Domain {
part miningCorporation: MiningCorporation;
part drone : Drone[1..*];
}

part domain : Domain;

// Definitions of domain objects
part def Spaceship {
#mop cargoCapacity : Real; // Maximum ore cargo capacity (m³)
#mop survivalProbability : Real; // Probability of surviving an operation (%)
Expand All @@ -33,8 +35,6 @@ package Domain {
attribute dockingTime : Real; // seconds, the time required to dock and offload ore (STRQ08)
attribute shieldStrength : Real ; //Strength of the core shield (STRQ03)
}

// Definitions of domain objects

part def MiningCorporation {
#moe minimumProfit : Real {
Expand Down Expand Up @@ -126,31 +126,28 @@ package Domain {
*/
} // %

//exhibits a predefined state
part miningFrigate : MiningFrigate::MiningFrigate [1..*] {
exhibit MiningFrigate::miningFrigatesStates {
in miningFrigates = miningFrigate;
}
part miningFrigate : MiningFrigate::MiningFrigate [1..*]{

// Cause and Effect Occurrences
event occurrence MiningRateIncreases;
event occurrence CargoCapacityIncreases;
event occurrence ShieldStrengthIncreases;
event occurrence ThreatDetectionImproves;
event occurrence DroneOperationsImprove;
event occurrence WarpSpeedIncreases;
event occurrence FleetCoordinationImproves;

event occurrence OreYieldIncreases;
event occurrence DowntimeReduces;
event occurrence SurvivabilityEnhances;
event occurrence ThreatResponseImproves;
event occurrence OperationalEfficiencyIncreases;
event occurrence OreExtractionEfficiencyIncreases;
event occurrence ProfitabilityMaximizes;
timeslice miningRateIncreases;
timeslice cargoCapacityIncreases;
timeslice shieldStrengthIncreases;
timeslice threatDetectionImproves;
timeslice droneOperationsImprove;
timeslice warpSpeedIncreases;

}
part rorqual : Rorqual [1..*];
ref part pilotPod : PilotPod [1..*] ;
part fleet : Fleet [1..*];
part fleet : Fleet [1..*]{
timeslice fleetCoordinationImproves;
timeslice downtimeReduces;
timeslice survivabilityEnhances;
timeslice threatResponseImproves;
timeslice operationalEfficiencyIncreases;
timeslice oreExtractionEfficiencyIncreases;
timeslice profitabilityMaximizes;
}

//interactions at the enterprise level
occurrence def MiningAsteroid {
Expand Down Expand Up @@ -241,6 +238,7 @@ package Domain {
#mop oreContent : Real; // Quantity of ore available (m³)
#mop depletionRate : Real; // Rate at which ore is extracted (m³/hour)
port asteroidOrePort : AsteroidOrePort;
timeslice oreYieldIncreases;
}

part def HostileShip {
Expand Down Expand Up @@ -287,7 +285,7 @@ package Domain {
out item droneReport : DroneReport;
}

// Interface definition
// Interfaces definition
interface def CommandIF {
end controlSend : PodPort;
end controlReceive : ~PodPort;
Expand Down Expand Up @@ -373,5 +371,16 @@ package Domain {
item def ScanSignature {
attribute type: String;
attribute priority: String;
}
}

//Views and views definition
view def 'Domain Structure View'{
satisfy StakeholderConcerns::'Operational profitability';

filter @SysML::PartUsage;
}
view 'Mining Frigate structure Table View' : 'Domain Structure View' {
expose MiningCorporation::miningFrigate::*;
//render asElementTable;
}
}
Loading
Loading