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 13, 2022 by Benno Schmidt's avatar Benno Schmidt
Show whitespace changes
Inline Side-by-side
Showing with 84 additions and 76 deletions
+84 -76
  • BOM.md BOM.md +84 -76
  • No files found.
BOM.md
View page @ a4467055
![BOM](uploads/a1243262e673af6714c64ec99cc554ae/BOM.png) ![BOM](https://gitlab.fbg-hsbo.de/web3dscans/web3dscans1/blob/master/etc/UML-Modellierung/BOM.png)
Quellcode (USE-Modell; die SOIL-Testumgebung folgt demnächst...): Quellcode (USE-Modell; die SOIL-Testumgebung folgt demnächst...):
...@@ -16,56 +16,56 @@ model Web3dScans ...@@ -16,56 +16,56 @@ model Web3dScans
-- Wesentliche Anwendungsobjekte sind: -- Wesentliche Anwendungsobjekte sind:
-- Betrachtungsobjekt (das kann zunächst ein Handstück, Bohrkern oder Fossil -- Betrachtungsobjekt (das kann zunächst ein Handstück, Bohrkern oder Fossil
-- sein), der zugehörige 3D-Scan und der zugehörige Steckbrief sowie ein -- sein), der zugehörige 3D-Scan und der zugehörige Steckbrief sowie ein
-- Objekt mit punktförmiger Geometrie und einem thmatischen Attribut, das -- Objekt mit punktförmiger Geometrie und einem thematischen Attribut, das
-- eine ID zur Verknüpfung der Geometrie mit den anderen genannten zewntralen -- eine ID zur Verknüpfung der Geometrie mit den anderen genannten zentralen
-- Anwendungsobjekten enthält. -- Anwendungsobjekten enthält.
class Betrachtungsobjekt class Betrachtungsobjekt -- Impl.: ExaminationObject
attributes attributes
id : Integer id : Integer
-- Reale Objektgröße gegeben in Millimetern (Länge, Breite, Höhe): -- Reale Objektgröße gegeben in Millimetern (Länge, Breite, Höhe):
extentX : Integer groesseX : Integer
extentY : Integer groesseY : Integer
extentZ : Integer groesseZ : Integer -- Impl.: sizeX, sizeY, sizeZ
end end
-- Spezielle Typen von Betrachtungsobjekten: -- Spezielle Typen von Betrachtungsobjekten:
class Handstueck < Betrachtungsobjekt end class Handstueck < Betrachtungsobjekt end -- Impl.: HandSample
class Bohrkern < Betrachtungsobjekt end class Bohrkern < Betrachtungsobjekt end -- Impl.: CoreSample
class Fossil < Handstueck end class Fossil < Handstueck end -- Impl.: Fossil
class Scan3dModel class SteinModel3d -- Impl.: RockModel3d
attributes attributes
uri : String uri : String
end end
class Steckbrief class Steckbrief -- Impl.: Profile
attributes attributes
uri : String uri : String
end end
class PktObjekt class PktObjekt -- Impl.: PointObject
attributes attributes
id: Integer -- im Shape des HLNUG das Attribut PROBE id: Integer -- im Shape des HLNUG das Attribut PROBE
xCoord: Real xKoord: Real
yCoord: Real yKoord: Real
zCoord: Real zKoord: Real -- Impl.: sizeX, sizeY, sizeZ
crs: String crs: String
end end
association Betrachtungsobjekt_PktObjekt between association Betrachtungsobjekt_PktObjekt between
Betrachtungsobjekt[1] role bobj Betrachtungsobjekt[1] role bobj
PktObjekt[0..1] role location PktObjekt[0..1] role lokation
end end
association Betrachtungsobjekt_Steckbrief between association Betrachtungsobjekt_Steckbrief between
Betrachtungsobjekt[1] role bobj Betrachtungsobjekt[1] role bobj
Steckbrief[0..1] role profile Steckbrief[0..1] role steckbrief
end end
association Betrachtungsobjekt_Scan3dModel between association Betrachtungsobjekt_Scan3dModel between
Betrachtungsobjekt[1] role bobj Betrachtungsobjekt[1] role bobj
Scan3dModel[0..*] role scan SteinModel3d[0..*] role smodell
end end
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
...@@ -85,95 +85,102 @@ context Handstueck ...@@ -85,95 +85,102 @@ context Handstueck
-- Als Handstück wird in der Geologie eine Gesteinsprobe und in der Minera- -- 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 -- 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. -- zwischen 8,5 cm × 11,5 cm und 10 cm × 15 cm entspricht.
inv sizeHandstueck: inv groesseHandstueck:
self.extentX > 85 and self.extentX < 100 and self.groesseX > 85 and self.groesseX < 100 and
self.extentY > 115 and self.extentY < 150 self.groesseY > 115 and self.groesseY < 150
class Erdzeitalter class Erdzeitalter < Tag -- Impl.: GeologicalAge
attributes attributes
zeitalter: String name: String
end end
association Steckbrief_Zeitalter between association Steckbrief_Zeitalter between
Steckbrief[1] role profile Steckbrief[1] role steckbrief
Erdzeitalter[1..*] role age Erdzeitalter[1..*] role zeitalter
end end
constraints constraints
context Erdzeitalter context Erdzeitalter
-- Erzeitalter kann nur einen der in der nachstehenden (unvollständigen) -- Erzeitalter kann nur einen der in der nachstehenden (unvollständigen)
-- Liste angegebenen Werte enthalten: -- Liste angegebenen Werte enthalten:
inv ageNameList: inv gueltigesZeitalter:
Set{ Set{
'Praekambrium', 'Kambrium', 'Ordovizium', 'Silur', 'Devon', 'Karbon', 'Praekambrium', 'Kambrium', 'Ordovizium', 'Silur', 'Devon', 'Karbon',
'Perm', 'Trias', 'Jura', 'Tertiaer', 'Quartaer'} 'Perm', 'Trias', 'Jura', 'Tertiaer', 'Quartaer'}
->includes(zeitalter) ->includes(name)
-- Jedes Handstück bezieht sich auf ein Erdzeitalter: -- Jedes Handstück bezieht sich auf ein Erdzeitalter:
context Handstueck context Handstueck
inv handSampleHasAge: inv gesetztesHandstueckAlter:
self.profile.age->size() = 1 self.steckbrief.zeitalter->size() = 1
-- Bohrkerne können mehr als ein Erdzeitalter abdecken: -- Bohrkerne können mehr als ein Erdzeitalter abdecken:
context Bohrkern context Bohrkern
inv coreSampleHasAges: inv gesetzteBohrkernAlter:
let ages = self.profile.age in let ages = self.steckbrief.zeitalter in
ages->size() >= 1 ages->size() >= 1
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Einbindung des Punkt-Layers in die Kartenkomponente:
class Geodienst class PktObjektLayer -- Impl.: PointObjectLayer
end end
class WMS < Geodienst association PktObjekt_PktObjektLayer between
PktObjekt[0..*] role punkt
PktObjektLayer[1] role layer
end end
class WFS < Geodienst -- Der Punkt-Layer wird über einen geeigneten Dienst in die interaktive Karte
end -- der Anwendung eingebunden, z. B. über einen OGC-WMS mit GetFeatureInfo-
-- Operation oder einen OGC-WFS.
class Map class Geodienst -- Impl.: GeoWebService
end end
class Tag class WMS < Geodienst end
end class WFS < Geodienst end
class TagVerzeichnis association PktObjektLayer_Geodienst between
PktObjektLayer[1] role layer
Geodienst[1] role layer
end end
-- Klasse DI-Paar beinhaltet die Key-Value Paare, die im Steckbrief enthalten sein können class Karte -- Impl.: Map
class DIPair
end end
class KeyData < DIPair association Karte_Geodienst between
Karte[1] role map
Geodienst[1] role service
end end
class InputValue < DIPair -----------------------------------------------------------------------------
end -- Steckbrief-Konzept:
class Tag
attributes
name: String
end
association Pkt_Geodienst between class TagVerzeichnis -- Impl.: TagDirectory
PktObjekt[0..*]
Geodienst[1] role services
end end
association Map_Geodienst between -- Klasse DI-Paar beinhaltet die Tag/Inhalts-Paare (Key-Value-Paare), die im
Map[1] -- Steckbrief enthalten sein können.
Geodienst[1..*] role mapping class TIPaar -- Impl.: TIPair
attributes
tag: Tag
inhalt: String -- Impl.: content
end end
association Steckbrief_Tag between association Steckbrief_TIPaar between
Steckbrief[1..*] role profile Steckbrief[1] role steckbrief
Tag[0..*] role tagging TIPaar[1..*] role inhalt
end end
association Tag_TagVerzeichnis between association Tag_TagVerzeichnis between
Tag[0..*] Tag[0..*]
TagVerzeichnis[1] role tagRegister TagVerzeichnis[1] role register
end
association Steckbrief_DIPair between
Steckbrief[1] role profile
DIPair[1..*] role InputPairs
end end
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
...@@ -183,22 +190,23 @@ constraints ...@@ -183,22 +190,23 @@ constraints
context PktObjekt context PktObjekt
-- x- und y-Koordinate müssen gesetzt sein: -- x- und y-Koordinate müssen gesetzt sein:
inv xyCoordsSet: inv gesetzteXYKoordinaten:
self.xCoord.oclIsUndefined() = false and self.xKoord.oclIsUndefined() = false and
self.yCoord.oclIsUndefined() = false self.yKoord.oclIsUndefined() = false
-- Falls z gesetzt ist, muss der Wert unterhalb der Geländeoberfläche -- Falls z gesetzt ist, muss der Wert unterhalb der Geländeoberfläche
-- liegen (Ausnahmen?): -- liegen (Ausnahmen?):
inv zCoordBelowGround: inv ZKoordUnterGrund:
self.zCoord.oclIsUndefined() = true or self.zKoord.oclIsUndefined() = true or
self.zCoord < 0 -- wäre noch zu prüfen/vereinbaren... -> ToDo self.zKoord < 0 -- wäre noch zu prüfen/vereinbaren... -> ToDo
context Betrachtungsobjekt context Betrachtungsobjekt
inv extentsSet: inv definierteObjektGroesse:
--Koordinatendimension == 3 --Koordinatendimension == 3
-- Maße für das Betrachtungsobjekt müssen gesetzt sein -- Maße für das Betrachtungsobjekt müssen gesetzt sein
self.extentX.oclIsUndefined() = false and self.groesseX.oclIsUndefined() = false and
self.extentY.oclIsUndefined() = false and self.groesseY.oclIsUndefined() = false and
self.extentZ.oclIsUndefined() = false self.groesseZ.oclIsUndefined() = false
-- eof -- eof
</pre> </pre>
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