Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 55 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,55 @@
.project
.project
.metadata/.lock
.metadata/.lock_info
.metadata/.log
.metadata/version.ini
.metadata/.mylyn/.tasks.xml.zip
.metadata/.mylyn/repositories.xml.zip
.metadata/.mylyn/tasks.xml.zip
.metadata/.mylyn/.taskListIndex/segments_1
.metadata/.mylyn/.taskListIndex/write.lock
.metadata/.plugins/org.eclipse.buildship.core/gradle/versions.json
.metadata/.plugins/org.eclipse.core.resources/0.snap
.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location
.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.markers.snap
.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.syncinfo.snap
.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap
.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jsch.core.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.settings/org.eclipse.core.resources.prefs
.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser
.metadata/.plugins/org.eclipse.m2e.logback/0.log
.metadata/.plugins/org.eclipse.m2e.logback/logback.2.7.0.20241001-1350.xml
.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup
.metadata/.plugins/org.eclipse.ui.intro/introstate
.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
.metadata/.plugins/org.eclipse.wildwebdeveloper.xml/system-catalog.xml
.metadata/.plugins/org.eclipse.core.resources/.root/1.tree
.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.navigator.prefs
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache
.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache
.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt
.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache
.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
.metadata/.plugins/org.eclipse.mylyn.github.ui/avatars.ser
.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml
.metadata/.plugins/org.eclipse.ui.editors/dialog_settings.xml
.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml
.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ package analysisProblemSpace {
private import ScalarValues::*;
private import ISQ::*;
private import SI::*;
private import Domain::*;
private import MiningFrigate::*;
private import DomainPackage::*;
private import MiningFrigatePackage::*;
private import BusinessRequirements::BUS01_1;

// **General Analysis Definition: Risk-Adjusted Profitability Calculation**
analysis def RiskAdjustedProfitability {

subject miningcorporation : Domain::MiningCorporation;
subject miningcorporation : MiningCorporation;

objective {
doc /* Evaluates profitability across different security zones (High Sec, Low Sec, Null Sec)
Expand Down Expand Up @@ -112,7 +112,7 @@ package analysisProblemSpace {
in operationalCosts = 200000.0; // ISK/hour (high cost due to logistics, security)
in survivalProbability = 50.0; // Very high risk, frequent losses
}
part analysisMiningCorporation : Domain::MiningCorporation ;
part analysisMiningCorporation : MiningCorporation ;

satisfy BUS01_1 by analysisMiningCorporation;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ package ConceptOfOperations {
}
package BusinessRequirements {

private import Domain::*;
private import DomainPackage::MiningCorporation;
private import ScalarValues::*;
private import StakeholderConcerns::*;

Expand All @@ -44,14 +44,14 @@ package BusinessRequirements {
doc /* The mining organization shall guarantee a profitability of 25.000 ISK/hour in order to provide
* suficcient incentive to pilots to work for the corporation.
*/
subject miningFCorporation : Domain::MiningCorporation;
subject miningFCorporation : MiningCorporation;
attribute profitability : Real;
require constraint { profitability >= 25000 }

frame concern ProfitabilityConcern;
}
requirement <BUS01_1> profitabilityRequirement : ProfitabilityRequirement {
subject miningCorporation : Domain::MiningCorporation;
subject miningCorporation : MiningCorporation;
attribute :>> profitability = miningCorporation.minimumProfit ;
}
}
71 changes: 41 additions & 30 deletions models/example_EveOnlineMiningFrigate/DomainModel/Concerns.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,15 @@ package StakeholderConcerns {

private import ScalarValues::*;
private import ISQ::*;
private import Domain::*;
private import DomainPackage::MiningCorporation;
private import StakeholdersDef::*;
private import MiningFrigate::*;
private import MiningFrigatePackage::*;

// 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 {
subject miningCorporation : Domain::MiningCorporation;
concern ProfitabilityConcern {
subject miningCorporation : MiningCorporation;

require constraint {
doc /* The Mining Corporation shall ensure that mining operations generate sufficient ISK/hour
Expand All @@ -47,8 +48,8 @@ package StakeholderConcerns {
stakeholder miningCEO : MiningCEO;
}

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

require constraint {
doc /* The Mining Corporation shall minimize operational costs (e.g., ship replacements,
Expand All @@ -58,8 +59,8 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

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

assume constraint {
doc /* The Mining Corporation assumes that mining operations can scale effectively with
Expand All @@ -69,8 +70,8 @@ package StakeholderConcerns {
stakeholder fleetCommander : FleetCommander;
}

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

require constraint {
doc /* The Mining Corporation shall adapt mining operations to fluctuating market demands
Expand All @@ -82,8 +83,8 @@ package StakeholderConcerns {

// Concerns Derived from the ConOps

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

require constraint {
doc /* The Mining Frigate shall ensure safety and survivability in hostile environments
Expand All @@ -94,8 +95,8 @@ package StakeholderConcerns {
stakeholder shipEngineer : ShipEngineer;
}

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

require constraint {
doc /* The Mining Corporation shall ensure sufficient access to high-value asteroids,
Expand All @@ -105,8 +106,8 @@ package StakeholderConcerns {
stakeholder fleetCommander : FleetCommander;
}

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

require constraint {
doc /* The Mining Frigate shall ensure rapid and efficient movement between resource
Expand All @@ -116,8 +117,8 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

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

require constraint {
doc /* The Mining Frigate shall mitigate risks from NPC pirates and hostile players
Expand All @@ -130,8 +131,8 @@ package StakeholderConcerns {

// Concerns Derived from the MoEs

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

require constraint {
doc /* The Mining Corporation shall maximize the total ISK/hour generated from mining
Expand All @@ -141,8 +142,8 @@ package StakeholderConcerns {
stakeholder miningCEO : MiningCEO;
}

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

require constraint {
doc /* The Mining Frigate shall maximize ore yield per frigate or fleet while avoiding
Expand All @@ -152,8 +153,8 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

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

require constraint {
doc /* The Mining Frigate shall ensure high survivability in hostile or dangerous environments. */
Expand All @@ -163,8 +164,8 @@ package StakeholderConcerns {
stakeholder shipEngineer : ShipEngineer;
}

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

require constraint {
doc /* The Mining Corporation shall ensure optimal fleet deployment to maximize ore extraction
Expand All @@ -175,8 +176,8 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

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

require constraint {
doc /* The Mining Frigate shall ensure fast and efficient transport of mined ore to stations
Expand All @@ -186,8 +187,8 @@ package StakeholderConcerns {
stakeholder operationsManager : OperationsManager;
}

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

require constraint {
doc /* The Mining Corporation shall balance profitability with the risks of operating in
Expand All @@ -198,4 +199,14 @@ package StakeholderConcerns {
stakeholder fleetCommander : FleetCommander;
}

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

require constraint {
doc /*TBD*/
}
}


}
Loading
Loading