Skip to content

Commit 76d9097

Browse files
author
sebastian
committed
1 parent c32cf1a commit 76d9097

File tree

15 files changed

+128
-50
lines changed

15 files changed

+128
-50
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">
3+
<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>
4+
<stringAttribute key="M2_GOALS" value="clean"/>
5+
<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>
6+
<booleanAttribute key="M2_OFFLINE" value="false"/>
7+
<stringAttribute key="M2_PROFILES" value=""/>
8+
<listAttribute key="M2_PROPERTIES"/>
9+
<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>
10+
<booleanAttribute key="M2_SKIP_TESTS" value="false"/>
11+
<intAttribute key="M2_THREADS" value="1"/>
12+
<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>
13+
<stringAttribute key="M2_USER_SETTINGS" value=""/>
14+
<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>
15+
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/java-8-openjdk-amd64"/>
16+
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/openfasttrace-architecture-template}"/>
17+
</launchConfiguration>

pom.xml

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,36 @@
1717
<description>Free software requirement tracing suite</description>
1818
<build>
1919
<plugins>
20+
<plugin>
21+
<groupId>com.github.jeluard</groupId>
22+
<artifactId>plantuml-maven-plugin</artifactId>
23+
<version>1.2</version>
24+
<executions>
25+
<execution>
26+
<phase>process-resources</phase>
27+
<goals>
28+
<goal>generate</goal>
29+
</goals>
30+
</execution>
31+
</executions>
32+
<configuration>
33+
<sourceFiles>
34+
<directory>${basedir}/src/main/resources/uml/diagrams</directory>
35+
<includes>
36+
<include>**/*.plantuml</include>
37+
</includes>
38+
</sourceFiles>
39+
<format>svg</format>
40+
<outputDirectory>${basedir}/target/html/uml</outputDirectory>
41+
</configuration>
42+
<dependencies>
43+
<dependency>
44+
<groupId>net.sourceforge.plantuml</groupId>
45+
<artifactId>plantuml</artifactId>
46+
<version>8059</version>
47+
</dependency>
48+
</dependencies>
49+
</plugin>
2050
<plugin>
2151
<groupId>com.ruleoftech</groupId>
2252
<artifactId>markdown-page-generator-plugin</artifactId>
@@ -35,52 +65,22 @@
3565
<inputFileExtensions>md, markdown</inputFileExtensions>
3666
<inputEncoding>UTF-8</inputEncoding>
3767
<outputEncoding>UTF-8</outputEncoding>
38-
<headerHtmlFile>${project.basedir}/src/main/resources/html/header.html</headerHtmlFile>
68+
<headerHtmlFile>${basedir}/src/main/resources/html/header.html</headerHtmlFile>
3969
<copyDirectories>css</copyDirectories>
4070
<transformRelativeMarkdownLinks>true</transformRelativeMarkdownLinks>
4171
</configuration>
4272
</plugin>
43-
<!-- plugin>
44-
<groupId>org.codehaus.mojo</groupId>
45-
<artifactId>license-maven-plugin</artifactId>
46-
<version>1.16</version>
47-
<configuration>
48-
<verbose>false</verbose>
49-
<detail>true</detail>
50-
<licenseName>cc-by-4.0</licenseName>
51-
<licenseResolver>${project.basedir}/src/license</licenseResolver>
52-
<organizationName>itsallcode.org</organizationName>
53-
<inceptionYear>2018</inceptionYear>
54-
<excludes>
55-
</excludes>
56-
<failOnMissingHeader>true</failOnMissingHeader>
57-
<failIfWarning>true</failIfWarning>
58-
<failOnNotUptodateHeader>true</failOnNotUptodateHeader>
59-
<encoding>UTF-8</encoding>
60-
<dryRun>false</dryRun>
61-
</configuration>
62-
<executions>
63-
<execution>
64-
<id>check-file-header</id>
65-
<goals>
66-
<goal>check-file-header</goal>
67-
</goals>
68-
<phase>validate</phase>
69-
</execution>
70-
<execution>
71-
<id>first</id>
72-
<goals>
73-
<goal>update-file-header</goal>
74-
</goals>
75-
<phase>process-sources</phase>
76-
<configuration>
77-
<roots>
78-
<root>src/markdown</root>
79-
</roots>
80-
</configuration>
81-
</execution>
82-
</executions>
83-
</plugin -->
73+
<!-- plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId>
74+
<version>1.16</version> <configuration> <verbose>false</verbose> <detail>true</detail>
75+
<licenseName>cc-by-4.0</licenseName> <licenseResolver>${project.basedir}/src/license</licenseResolver>
76+
<organizationName>itsallcode.org</organizationName> <inceptionYear>2018</inceptionYear>
77+
<excludes> </excludes> <failOnMissingHeader>true</failOnMissingHeader> <failIfWarning>true</failIfWarning>
78+
<failOnNotUptodateHeader>true</failOnNotUptodateHeader> <encoding>UTF-8</encoding>
79+
<dryRun>false</dryRun> </configuration> <executions> <execution> <id>check-file-header</id>
80+
<goals> <goal>check-file-header</goal> </goals> <phase>validate</phase> </execution>
81+
<execution> <id>first</id> <goals> <goal>update-file-header</goal> </goals>
82+
<phase>process-sources</phase> <configuration> <roots> <root>src/markdown</root>
83+
</roots> </configuration> </execution> </executions> </plugin -->
8484
</plugins>
8585
</build>
8686
</project>

src/main/resources/markdown/architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@
3131

3232
> OFT: Note that in comparison to the original arc42 template, we exchanged the order of the chapters [context](context.md) and [constraints](constraints.md) since we feel that understanding the system context is necessary before understanding which constraints apply.
3333
34-
> OFT: the bibliography chapter does not appear in the original arc42 template but turned out to be a good idea nonetheless
34+
> OFT: the bibliography chapter does not appear in the original arc42 template but turned out to be a good idea nonetheless.

src/main/resources/markdown/context.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,44 @@
44
55
> OFT: We recommend that you at least provide a context diagram in this document since that is one of the most helpful parts when it comes to understanding the architecture.
66
7+
> OFT: arc42 recommends two sub-sections here: "Business Context" and "Technical Context". If you have a separate System Requirement Specification (SRS), the "Business Context" is better kept there since it is part of the user domain. Of course referencing it from here is a good idea.
8+
9+
For information about the uers's point of view on the system context please refer to the [OFTAutoYummi System Requirement Specification (SRS)](bibliography.md#SRS).
10+
11+
## Technical Context
12+
13+
In the diagram below you see the system context OFTAutoYummi with its external roles and neighboring systems.
14+
15+
![System context](uml/component/comp_context.svg)
16+
17+
### External Roles
18+
19+
> OFT: External roles are roles that are "cast" outside of your project. Customer roles are an obvious example. Technical personnel from partner companies also count, at least if they are not part of a joint venture.
20+
21+
> OFT: List all relevant project-external roles in this section describing their responsibilities and interests. After reading the role descriptions readers should understand what the roles have to do with your system and why they interact with it.
22+
23+
#### Customer
24+
25+
The Customers in OFTAutoYummi are people using the vending machine to purchase dishes.
26+
27+
#### Mechatronic Technician
28+
29+
Mechatronic Technicians are responsible for repairing defect [AutoYummiBoxes](glossary.md#autoyummibox). The need in-depth knowledge of electronics, 3D printer mechanics and food engineering. They also get regular trainings on updated versions of the AutoYummiBox. Due to their specific skill set Mechatronics Technicians are more expensive than [Machine Maintainers](#machine-maintainer). The project also employs fewer of them since the need for repairs should be a lot less frequent than for refilling and cleaning.
30+
31+
#### Machine Maintainer
32+
33+
Machine Maintainers are responsible for keeping the AutoYummiBoxes clean and stocked. They receive basic training in how to clean the food processing hardware components and how to exchange the [paste containers](glossary.md#paste-container).
34+
35+
### Neighboring Systems
36+
37+
> OFT: Neighboring systems are project-external technical systems that are attached to your system or that your system attaches to. Systems run by the same company which are outside of the responsibility of this project also count as external.
38+
39+
> OFT: arc42 suggests listing technical details about the communication channels to the neighboring systems. We recommend that you do not go to this level of detail here since in a non-trivial system interface descriptions go beyond the scope of a simple system context, often involving painful architectural decisions between available communication options. Those details are better kept in the [Building Block View](building_blocks.md) and [Deployment View](deployment.md) chapter. Also keep in mind that the context chapter is often read by management and needs to be on an abstraction level managers are able to follow.
40+
41+
#### Payment Provider
42+
43+
Payment Providers are companies offering to handle payment transactions. Since handling payments is not OFTAutoYummi's core business, this part is outsourced to external providers. Since OFTAutoYummi supports payment by credit card and VirtuCoinBuddy, it needs providers for both. Since we need high availability, each type of payment provider needs to have a backup. Assuming that there is no provider who offers both types of payment, a minimum of four payment provider connections is necessary.
44+
45+
#### Paste Factory
46+
47+
Paste Factories are production plants that deliver the [pastes](glossary.md#paste) that the OftAutoYummyBoxes need to operate. They accept automatic orders and deliver the [paste containers](glossary.md#paste-container) to [container distribution centers](glossary.md#container-distribution-center).

src/main/resources/markdown/glossary.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Glossary
22

3+
## A
4+
5+
### AutoYummyBox
6+
7+
Food vending machine with an internal 3D printer that creates dishes from [pastes](#paste).
8+
9+
### Container Distribution Center
10+
11+
*Container Distributions Centers* keep a small stock of [paste containers](#paste-container). Machine Maintainers pick the container up there and deliver them to the individual [AutoYummyBoxes](#autoyummybox).
12+
313
## P
414

515
### Paste
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@startuml
2+
actor "Mechatronic\nTechnician" <<external>> as Technician
3+
@enduml
File renamed without changes.

src/main/uml/diagrams/component/Context.plantuml renamed to src/main/resources/uml/diagrams/component/comp_context.plantuml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@
33

44
!include ../../actors/Customer.plantuml
55
!include ../../actors/MachineMaintainer.plantuml
6+
!include ../../actors/Technician.plantuml
67

78
!include ../../nodes/OftAutoYummy.plantuml
89
!include ../../nodes/PaymentProvider.plantuml
10+
!include ../../nodes/PasteFactory.plantuml
911

1012
OftAutoYummyNode -u- "*" Customer
1113
OftAutoYummyNode -d- "*" MachineMaintainer
12-
OftAutoYummyNode -r- "1..*" PaymentProviderNode
14+
OftAutoYummyNode -d- "*" Technician
15+
OftAutoYummyNode -r- "4..*" PaymentProviderNode : credit card payments\nVirtuCoinBuddy payments
16+
OftAutoYummyNode -l- "2..*" PasteFactoryNode : < paste order\npaste delivery >
1317
@enduml

0 commit comments

Comments
 (0)