Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
W
web3dscans1
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 17
    • Issues 17
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Web3DScans
  • web3dscans1
  • Wiki
  • BOM

BOM · Changes

Page history
Update BOM authored Nov 07, 2022 by Benno Schmidt's avatar Benno Schmidt
Hide whitespace changes
Inline Side-by-side
Showing with 203 additions and 1 deletion
+203 -1
  • BOM.md BOM.md +203 -1
  • No files found.
BOM.md
View page @ d859b732
![BOM](uploads/a1243262e673af6714c64ec99cc554ae/BOM.png)
\ No newline at end of file
![BOM](uploads/a1243262e673af6714c64ec99cc554ae/BOM.png)
Quellcode (USE-Modell; die SOIL-Testumgebung folgt demnächst...):
<code>
-----------------------------------------------------------------------------
-- UML/OCL-Modellierung für das Projekt "Web3dScans"
-- Lehrveranstaltung "Datenmodellierung für raumbezogene Fachanwendungen"
-- des Masterstudiengangs Geoinformatik der Hochschule Bochum im SoSe 2022
-- Angelegt von: Sofia Segers
model Web3dScans
-----------------------------------------------------------------------------
-- Wesentliche Anwendungsobjekte sind:
-- Betrachtungsobjekt (das kann zunächst ein Handstück, Bohrkern oder Fossil
-- sein), der zugehörige 3D-Scan und der zugehörige Steckbrief sowie ein
-- Objekt mit punktförmiger Geometrie und einem thmatischen Attribut, das
-- eine ID zur Verknüpfung der Geometrie mit den anderen genannten zewntralen
-- Anwendungsobjekten enthält.
class Betrachtungsobjekt
attributes
id : Integer
-- Reale Objektgröße gegeben in Millimetern (Länge, Breite, Höhe):
extentX : Integer
extentY : Integer
extentZ : Integer
end
-- Spezielle Typen von Betrachtungsobjekten:
class Handstueck < Betrachtungsobjekt end
class Bohrkern < Betrachtungsobjekt end
class Fossil < Handstueck end
class Scan3dModel
attributes
uri : String
end
class Steckbrief
attributes
uri : String
end
class PktObjekt
attributes
id: Integer -- im Shape des HLNUG das Attribut PROBE
xCoord: Real
yCoord: Real
zCoord: Real
crs: String
end
association Betrachtungsobjekt_PktObjekt between
Betrachtungsobjekt[1] role bobj
PktObjekt[0..1] role location
end
association Betrachtungsobjekt_Steckbrief between
Betrachtungsobjekt[1] role bobj
Steckbrief[0..1] role profile
end
association Betrachtungsobjekt_Scan3dModel between
Betrachtungsobjekt[1] role bobj
Scan3dModel[0..*] role scan
end
-----------------------------------------------------------------------------
-- Einige grundlegende fachliche Konzepte und Constraints der Anwendung:
constraints
-- Alle Betrachtungsobjekte und Punktobjekte haben eine eindeutige ID:
context Betrachtungsobjekt
inv uniqueID:
Betrachtungsobjekt.allInstances -> isUnique(id)
context PktObjekt
inv uniqueID:
PktObjekt.allInstances -> isUnique(id)
context Handstueck
-- Als Handstück wird in der Geologie eine Gesteinsprobe und in der Minera-
-- logie eine Mineralstufe in "Handgröße" bezeichnet, was etwa einer Größe
-- zwischen 8,5 cm × 11,5 cm und 10 cm × 15 cm entspricht.
inv sizeHandstueck:
self.extentX > 85 and self.extentX < 100 and
self.extentY > 115 and self.extentY < 150
class Erdzeitalter
attributes
zeitalter: String
end
association Steckbrief_Zeitalter between
Steckbrief[1] role profile
Erdzeitalter[1..*] role age
end
constraints
context Erdzeitalter
-- Erzeitalter kann nur einen der in der nachstehenden (unvollständigen)
-- Liste angegebenen Werte enthalten:
inv ageNameList:
Set{
'Praekambrium', 'Kambrium', 'Ordovizium', 'Silur', 'Devon', 'Karbon',
'Perm', 'Trias', 'Jura', 'Teritaer', 'Quartaer'}
->includes(zeitalter)
-- Jedes Handstück bezieht sich auf ein Erdzeitalter:
context Handstueck
inv handSampleHasAge:
self.profile.age->size() = 1
-- Bohrkerne können mehr als ein Erdzeitalter abdecken:
context Bohrkern
inv handSampleHasAges:
let ages = self.profile.age in
ages->size() >= 1
-----------------------------------------------------------------------------
class Geodienst
end
class WMS < Geodienst
end
class WFS < Geodienst
end
class Map
end
class Tag
end
class TagVerzeichnis
end
-- Klasse DI-Paar beinhaltet die Key-Value Paare, die im Steckbrief enthalten sein können
class DIPair
end
class KeyData < DIPair
end
class InputValue < DIPair
end
association Pkt_Geodienst between
PktObjekt[0..*]
Geodienst[1] role services
end
association Map_Geodienst between
Map[1]
Geodienst[1..*] role mapping
end
association Steckbrief_Tag between
Steckbrief[1..*] role profile
Tag[0..*] role tagging
end
association Tag_TagVerzeichnis between
Tag[0..*]
TagVerzeichnis[1] role tagRegister
end
association Steckbrief_DIPair between
Steckbrief[1] role profile
DIPair[1..*] role InputPairs
end
-----------------------------------------------------------------------------
-- Weitere spezielle Constraints:
constraints
context PktObjekt
-- x- und y-Koordinate müssen gesetzt sein:
inv xyCoordsSet:
self.xCoord.oclIsUndefined() = false and
self.yCoord.oclIsUndefined() = false
-- Falls z gesetzt ist, muss der Wert unterhalb der Geländeoberfläche
-- liegen (Ausnahmen?):
inv ZCoordBelowGround:
self.zCoord.oclIsUndefined() = true or
self.zCoord < 0 -- wäre noch zu prüfen/vereinbaren... -> ToDo
context Betrachtungsobjekt
inv extentsSet:
--Koordinatendimension == 3
-- Maße für das Betrachtungsobjekt müssen gesetzt sein
self.extentX.oclIsUndefined() = false and
self.extentY.oclIsUndefined() = false and
self.extentZ.oclIsUndefined() = false
-- eof
</code>
Clone repository
  • 3.3 3D Viewer
  • 3D Darstellungsparameter
  • 3D Formate
  • 3D Viewer Komponente
  • 3D Viewer
  • Anzeigefenster
  • Arbeitsumgebung
  • Aufgabenbeschreibung
  • BOM
  • Bohrprofil Anzeige
  • CrossReferencer
  • Desktop und mobile Version
  • Endbericht
  • Generierung der 3D Modelle
  • Geodatengrundlage beim HLNUG
View All Pages