forked from Arquisoft/wiq_0
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
60 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,75 +1,91 @@ | ||
ifndef::imagesdir[:imagesdir: ../images] | ||
|
||
[[section-system-scope-and-context]] | ||
== System Scope and Context | ||
# System Scope and Context | ||
|
||
|
||
[role="arc42help"] | ||
**** | ||
.Contents | ||
System scope and context - as the name suggests - delimits your system (i.e. your scope) from all its communication partners | ||
(neighboring systems and users, i.e. the context of your system). It thereby specifies the external interfaces. | ||
|
||
If necessary, differentiate the business context (domain specific inputs and outputs) from the technical context (channels, protocols, hardware). | ||
--- | ||
|
||
.Motivation | ||
The domain interfaces and technical interfaces to communication partners are among your system's most critical aspects. Make sure that you completely understand them. | ||
## Contents | ||
### Scope and context | ||
|
||
.Form | ||
Various options: | ||
This project aims to develop a quiz game. | ||
The main constraints are developing the game as a web app and using Wikidata to obtain the questions and answers. | ||
|
||
* Context diagrams | ||
* Lists of communication partners and their interfaces. | ||
--- | ||
|
||
## Business Context | ||
|
||
.Further Information | ||
[role="arc42help"] | ||
|
||
See https://docs.arc42.org/section-3/[Context and Scope] in the arc42 documentation. | ||
### Contents | ||
|
||
**** | ||
* *Users:* They interact directly with the application through the user interface provided by the frontend using React, HTML, CSS, and JavaScript. | ||
* *Wikidata API:* The application communicates with the Wikidata service to obtain questions and answers related to different topics. Requests are made using the HTTP protocol, and response data is received in JSON format. | ||
|
||
--- | ||
|
||
=== Business Context | ||
### Motivation | ||
|
||
[role="arc42help"] | ||
**** | ||
.Contents | ||
Specification of *all* communication partners (users, IT-systems, ...) with explanations of domain specific inputs and outputs or interfaces. | ||
Optionally you can add domain specific formats or communication protocols. | ||
Regarding the information exchanged with the application, it will require having a registered account to play, and it will also exchange information with a MongoDB database and Wikidata itself to obtain the questions. | ||
|
||
.Motivation | ||
All stakeholders should understand which data are exchanged with the environment of the system. | ||
--- | ||
|
||
.Form | ||
All kinds of diagrams that show the system as a black box and specify the domain interfaces to communication partners. | ||
### Form | ||
|
||
Alternatively (or additionally) you can use a table. | ||
The title of the table is the name of your system, the three columns contain the name of the communication partner, the inputs, and the outputs. | ||
|=== | ||
|
||
**** | ||
| *Quiz Game* | *Comunication Partners* | *Inputs* | *Outputs* | ||
| Users | User Interface | User answers | Game questions | ||
| Wikidata API | API Service | Question requests | JSON Responses | ||
|
||
**<Diagram or Table>** | ||
|=== | ||
|
||
**<optionally: Explanation of external domain interfaces>** | ||
--- | ||
|
||
=== Technical Context | ||
### Context diagram | ||
[plantuml, "context", png] | ||
---- | ||
component "App" as app | ||
[role="arc42help"] | ||
**** | ||
.Contents | ||
Technical interfaces (channels and transmission media) linking your system to its environment. In addition a mapping of domain specific input/output to the channels, i.e. an explanation which I/O uses which channel. | ||
:User: -> [app]: Answer question | ||
[app] -> User: Return result | ||
database DB | ||
[app] -> DB: Ask for question | ||
DB -> [app]: Return question | ||
.Motivation | ||
Many stakeholders make architectural decision based on the technical interfaces between the system and its context. Especially infrastructure or hardware designers decide these technical interfaces. | ||
component "WikiData" as wd | ||
[app] --> wd: Ask for keyword | ||
wd --> [app]: Return keyword | ||
---- | ||
|
||
--- | ||
|
||
## Technical Context | ||
|
||
[role="arc42help"] | ||
|
||
.Form | ||
E.g. UML deployment diagram describing channels to neighboring systems, | ||
together with a mapping table showing the relationships between channels and input/output. | ||
### Contents | ||
|
||
**** | ||
* *HTTP Channel:* The application uses the HTTP protocol to communicate with the Wikidata API service. | ||
* *MongoDB Data Channel:* Interactions with the MongoDB database allow for storing and retrieving questions and answers. | ||
|
||
**<Diagram or Table>** | ||
--- | ||
|
||
**<optionally: Explanation of technical interfaces>** | ||
### Deployment diagram | ||
[plantuml, "deployment", png] | ||
---- | ||
node "Aplication Server" as app | ||
node "DB Server" as db { | ||
artifact "MongoDB Server" | ||
} | ||
node Wikidata as w | ||
node Interface as i | ||
**<Mapping Input/Output to Channels>** | ||
app - db | ||
app -- w | ||
app -- i | ||
---- |