mirror of
https://expo.survex.com/repositories/expoweb/.git/
synced 2025-12-08 14:54:28 +00:00
Schema chnages documn
This commit is contained in:
@@ -10,19 +10,21 @@
|
||||
<h1>Troggle UML Class Diagrams</h1>
|
||||
<style>figure {font-weight: bold; font-size: small; font-family: sans-serif;font-variant-caps: small-caps;}</style>
|
||||
|
||||
<div class="onright">
|
||||
<figure>
|
||||
<a href="https://yuml.me/mkay2100/edit/Troggle-1"><img alt="Troggle UML Class Diagram" src="../i/trogclass-1.jpg"></a>
|
||||
<br><figcaption>Class Diagram - Essential Level (draft - to be corrected)</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
||||
<p>This shows the major "things" in troggle and how they relate to each other.
|
||||
<p>So <strong>a survex (SVX) file</strong> is dated to a particular day during the expedition and usually has between 1 and 3 people associated with it.
|
||||
<p>A <strong>Logbook entry</strong> has several people involved and may relate to a cave. It will be dated to a day during the expedition.
|
||||
|
||||
<p>Although the volume of data in troggle is small, the complexity is significantly intricate that "modern" (i.e. from the mid 1990s) system design tools are compact and useful.
|
||||
|
||||
<div class="centre">
|
||||
<figure>
|
||||
<a href="https://yuml.me/mkay2100/edit/Troggle-2"><img alt="Troggle UML Class Diagram" src="../i/trogclass-2.jpg" ></a>
|
||||
<br><figcaption>Class Diagram - Essential Level (simplified)</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<h3>Design Diagrams</h3>
|
||||
<p>Analysis of expo and design of troggle is done using <a href="#cookanddaniels">three levels</a>:
|
||||
<style>
|
||||
@@ -34,7 +36,7 @@ ul, ol {padding-inline-start: 1em;}
|
||||
<li>The '<strong>specification</strong>' level.
|
||||
<li>The '<strong>implementation</strong>' level.
|
||||
</ol>
|
||||
<p>As anyone reading this has probably been on expo and you might think that we can skip the <strong>real-world level</strong>. Not so: the multiplicities (the number of participants in the association) of the relationships between the different cave survey artefacts can be surprising.
|
||||
<p>As anyone reading this has probably been on expo and you might think that we can skip the <strong>real-world level</strong>. Not so: the multiplicities and cardinalities (the number of participants in the association) of the relationships between the different cave survey artefacts can be surprising. See the diagram above: a Wallet can be associated with more than one Survex file, and a Survex File can be associated with more than one Wallet.
|
||||
<p>The <strong>specification level</strong> is where the action is.
|
||||
This is where we decide which aspects of the real world <em>we will ignore</em> and what <em>extra concepts</em> we need to make things work.
|
||||
<p>So <em>we ignore</em> who is resident at top-camp (even though today we record this religiously because of the tax implications for the GastHof at base). We <em>do</em> need to track the in-computer associations between survex files: the <var>*include</var> tree, what directories they live in, what wallet-directory they relate to, and all the individual survex blocks of survey measurements within each survex file.
|
||||
@@ -64,21 +66,16 @@ The purpose of class diagram is to model the static view of an application: the
|
||||
<p>
|
||||
You can edit your own version to revise this when it becomes outdated. <br>This is the entire source code that generates the diagram:
|
||||
<pre><code style ="font-size:x-small">
|
||||
// Troggle Class Diagram
|
||||
// ------------------------------
|
||||
// Troggle Class Diagram (update 2023-01-30)
|
||||
// -----------------------------------------
|
||||
|
||||
// Chain elements like this
|
||||
[SVX file]<>-wallet 1..*>
|
||||
|
||||
[Wallet]++-1..*>[Scanned Note]
|
||||
|
||||
[SVX file{bg:lightblue}]<>-wallet 1..*>[Wallet{bg:red}]++-1..*>[Scanned Note]
|
||||
[Wallet]++-1..*>[Scanned CentreLine]
|
||||
|
||||
[Scanned CentreLine]++-1..*>
|
||||
[Drawing{bg:turquoise}]
|
||||
[Scanned CentreLine]++-1..*>[Drawing{bg:turquoise}]
|
||||
|
||||
[People{bg:wheat}]<->
|
||||
[LogBook Entry{bg:violet}]
|
||||
[People{bg:wheat}]<->[LogBook Entry{bg:violet}]
|
||||
|
||||
[People]1..3<->[SVX file]
|
||||
|
||||
@@ -89,17 +86,32 @@ You can edit your own version to revise this when it becomes outdated. <br>This
|
||||
// note:
|
||||
[Cave]-.-[Drawing{bg:turquoise}]
|
||||
|
||||
[Expedition{bg:green}]1<>-1..*
|
||||
[ExpeditionDay{bg:green}]<>-
|
||||
[LogBook Entry]
|
||||
[Expedition{bg:green}]1<>-1..*[LogBook Entry]
|
||||
|
||||
[ExpeditionDay]1<>-1..*[SVX file]
|
||||
[SurvexBlock{bg:lightblue}]1<>-1..*[SVX file]
|
||||
|
||||
[PersonExpedition{bg:yellowgreen}]1<-1
|
||||
[People{bg:wheat}]
|
||||
[SurvexBlock{bg:lightblue}]1<>-1..*[Wallet]
|
||||
|
||||
[ExpeditionDay]1..*--1.*
|
||||
[PersonExpedition{bg:yellowgreen}]
|
||||
[SurvexBlock{bg:lightblue}]1..*<>-1[Cave]
|
||||
|
||||
[SurvexBlock{bg:lightblue}]1..*<>-1[Expedition]
|
||||
|
||||
[SurvexBlock{bg:lightblue}]1..*<>-1[SurvexBlock]
|
||||
|
||||
|
||||
[PersonExpedition{bg:yellowgreen}]1->1[People{bg:wheat}]
|
||||
|
||||
[PersonExpedition{bg:yellowgreen}]1<-1[SurvexTeamMember{bg:yellowgreen}]
|
||||
|
||||
[PersonLogEntry{bg:orange}]->[LogBook Entry{bg:violet}]
|
||||
|
||||
[PersonLogEntry{bg:orange}]->[PersonExpedition]
|
||||
|
||||
[SurvexTeamMember{bg:yellowgreen}]1-.-1[People{bg:wheat}]
|
||||
|
||||
[SurvexTeamMember{bg:yellowgreen}]1<-1[SurvexBlock]
|
||||
|
||||
[Expedition]1..*<-1[PersonExpedition{bg:yellowgreen}]
|
||||
|
||||
</code></pre>
|
||||
<h3 id="cookanddaniels">Cook & Daniels - Three Levels</h3>
|
||||
|
||||
Reference in New Issue
Block a user