recursal/Fanatic-Fandom huggingface dataset:
Use Case Diagram

Use case-diagrammet bruges til at give et overblik. Er der få use cases for et givent system, kan de sættes i et enkelt diagram for alle use cases, og er der mange use cases, laves der et diagram pr. aktør.

På side 90 i Applying UML and Patterns er et eksempel på et use case diagram (figur 6.3)

*Se PowerPointet w02\_3 Use case-diagrammer for beskrivelse af, hvordan et use case diagram bygges op.*
Switch

Switch giver mulighed for valgmuligheder. Switch kører igennem *cases*, indtil der bliver fundet en sand. Når en *case* er sand, udføres dens statement. Hvis ingen af *case’ene* er sande, udføres default’s statement.

Eksempel:

```
for (i = 0; i < 10; i++)
     switch(i) {
          case 0:
               System.out.println(”I er nul”);
               break;
          case 1:
               System.out.println(”I er et”);
               break;
          case 2:
               System.out.println(”I er to”);
               break;
          case 3:
               System.out.println(”I er tre”);
               break;
          case 4:
               System.out.println(”I er fire”);
               break;
          default:
               System.out.println(”I er fem eller mere”);
}

```
Zath'on

**Zath’ons** were **sentient**, **amphibious** aliens native to the planet **Hylnome**. They were one of the subspecies of the **Zath**, a species that was distributed throughout the Zath system.

## Biology and appearance

Zath’ons were **small** compared to many other sentient species, only averaging a height of **1.30 meters** and a weight of only **50 kilograms**. They had **webbed feet**, which allowed them to both **climb and jump from tree to tree**. Zath’ons also had **short lifespans**, living to about 35 years on average. Their diet consisted of various kinds of **insects** found on their homeworld of Hylnome.

## Society and culture

The Zath’ons were organized into different **tribes**, which lived on different areas on Hylnome. They lived mostly in the **wetland and marshland areas** of their planet, due to their amphibious nature. Their culture was **warlike**, and they were hostile to outsiders, and even sometimes to other tribes of their own species. They did use blasters, making them a threat to any outsiders on the surface of their planet. However, they **avoided underground areas**, which allowed humans to found settlements under the planet’s surface.

## History

As a **subspecies of the Zath**, the Zath’ons originated on Hylnome, being the **only subspecies to remain on the planet**. They were the first natives of Hylnome and had been established long before any other sentient species arrived. When the mineral **rautium** was discovered on the planet, human settlers arrived on the planet and began **mining operations**. Hostility broke out between the humans and the Zath’ons, and a few battles took place. However, when the humans realized that the **Zath’ons refused to go underground**, they started to live there, thus putting an end to the fighting.
Darth Zitox

## Chronological and political information

### Era(s)

▾ Uprising of the Galactic Empire of the Sith▾ Fragmentation of the Galactic Empire of the Sith

▾ Uprising of the Perpetual Empire

### Affiliation(s)

▾ House of Brong▾ Sith Order

▾ Council of the Dark Lords

▾ Galactic Empire of the Sith

▾ Perpetual Empire

### Apprentices

Darth Fend

**Darth Zitox**, whose real name was **Zeid Brong**, was a nobleman from Naboo, member of the **House of Brong**, Sith **apprentice of Darth Toc** and Commander of the Army of the **Galactic Empire of the Sith**.
American McGee

**American James McGee** ist ein amerikanischer Spieleentwickler und der Erschaffer und Direktor von American McGee's Alice, Alice: Madness Returns und Alice: Otherlands. Er ist der Firmenchef und Gründer von Spicy Horse.

## Trivia

### Alice Reihe

* American McGee empfindet denen eine Abneigung gegenüber, die Alice sexualisieren oder sie in Klamotten zeichnen, die übertrieben sexy sind. Ein Grund dafür sind Alice originale Geschichte, die Vorgeschichte um ihre Schwester, der Grund, dass Alice fast zur Prostitution gezwungen wurde und die Männer, die sie während des Spieles anzüglich angrinsen. Er war auch genervt, als einer seiner Arbeiter, während der Entwicklung des Spieles fragte, was die Spieler sehen sollten, wenn sie unter Alice Rock schauen sollten, als ob es irgendetwas wichtiges wäre, das mit einbezogen werden sollte.
* American McGee würde seine Kinder *American McGee's Alice* spielen lassen, dazu sagt er aber auch *"sie wurden noch nicht geboren".*
* McGee's Lieblingscharaktere in *American McGee's Alice* sind der Jabberwock und der Boojum. Er mag aber auch der Zimmermann aus *Alice: Madness Returns*.
Creative Wars Encyclopedia

Hello there, space traveller!

## What is Creative Wars?

**Creative Wars** is a Minecraft community specialised in the creation of Star Wars-related tales and character design. Creative Wars has its own plot, taking the basics from the Star Wars universe and adapting them to create an unique story. Its charismatic characters like Darth Toc, Darth Zitox and Senator Pol have taken Planet Minecraft by storm and there have been more and more individuals looking forward to being part of the community.

Do you want to learn more about this community? Search this encyclopedia and take a look at some of the articles published here.

You can also visit our Planet Minecraft account and glance at our submissions.
Kliprantt

▾ Plains

▾ Tundra

▾ Cliffs

▾ Estuaries and fjords

**Kliprantt** was a planet located in the Outer Rim of the Galaxy. Its landscapes mainly consisted of **large plains** with **foggy forests**, abrupt **cliffs** and beautiful **fjords**.

## Description

Kliprantt was a large planet in comparison to many others, although it was much smaller than a gas giant. It had a **cold climate**, and its terrain included **huge ocean areas as well as land**. The planet did not have sandy beaches; its land dropped abruptly when it reached the ocean, forming **cliffs and fjords**. Both **plains and coniferous forests** could be found on the planet’s land.

## History

At some unknown time, the **Jedi temple of Stallur** was built on one of Kliprantt’s cliffs. When the Galactic Republic arrived on the planet during its war with the Dark Empire, they found the temple to be already **abandoned**. The **droids** used in the daily maintenance of the temple were still there, although they were deactivated and rusted, indicating that **the Jedi had not used the building for a long time**. The Mandalorian **clan of Jance** did also visit this planet regularly, since the new warriors had to fullfill the trial of fighting against the **tontalros**, a huge mammal from Kliprantt. Those who managed to kill a tontalros would deserve the respect of the rest of members of the clan.

## Society

Kliprantt had a **native alien species known as the Geitens**. These creatures were organized into **tribes** and used **primitive weapons** such as spears. They built villages and **megaliths** that could be found throughout the planet. The Geitens also practiced a religion led by **druids**.
Hylnome

▾ Hylnomian Science Academy

▾ Museum of Laikor

▾ Biosphere

▾ Colonial Republic of Hylnome (dismantled by the Empire)

▾ Laikor

▾ Soralis

**Hylnome** was a planet located in the Middle Rim of the Galaxy. It was home of a population of humans as well as a native alien species, known as the **Zath'ons**.

## Description

Hylnome was a **moderately-sized** planet with a **temperate climate**. Its surface was partly covered in vast bodies of water and partly covered in heavily forested land. Coasts and beaches were not sandy, but moist and muddy, generating wetlands and marshlands. The planet also had **large supplies of minerals** under the surface, especially of the rare mineral **rautium**, which was used in the manufacture of starship engines. Hylnome also had two moons, Seroc and Fasirin, but these were never settled.

## History

#### Early history

Hylnome was originally inhabited by the **Zath’ons**, a tribal alien species. However, when rautium was discovered on the planet, a significant number of **humans settled on the planet and began large-scale mining operations**. The Zath’ons were hostile to the humans, and fighting quickly broke out. After a few minor battles, the humans realized that the Zath’on warriors would not pursue them if they fled into the mines. Taking advantage of this fact, the humans were able to avoid further conflict with the Zath’ons and soon built entire **cities underground**.

#### Imperial Conquest

When the Galactic Empire of the Sith came to power, the military seized control of some of the rautium mines of Hylnome in order to **build up their fleet of starships**. This upset many Hylnomians, who resented the interference in their planet’s largest industry. In addition, some were concerned with potential depletion of the planet’s resources, since the Empire’s mining operations were on such a large scale. This discontent among the Hylnomians **caused some of them to join the Alliance for Freedom**.

## Society

The human inhabitants of Hylnome, known as **Hylnomians**, placed a high value on **science and technology**. This was largely due to the fact that they relied so heavily on the **mining industry**, which was itself reliant on technology. The underground cities of Hylnome were large and elaborate, as the wealth from mining was used to fund projects in these cities. A few of these projects included the **Hylnomian Archive** in the capital city of Rondia, which held a vast supply of scientific information, and the **Biosphere**, which housed a **collection of different flora and fauna from around the galaxy**.
Darth Toc

* Aristocrat
* Armoured
* Hooded

▾ Liberation War

▾ Fragmentation of the Galactic Empire of the Sith

▾ Council of the Dark Lords

▾ Concordat of Imperial Worlds

▾ Galactic Empire of the Sith

**Yahn Varona**, hugely known as **Darth Toc**, was a dark lord of the Sith, ruler of the **Concordat of Imperial Worlds** and **Galactic Sith Emperor**.
Iterative and Evolutionary Development

Uddybes under 2.0 og 2.2 (side 63/69 på e-bogen, i bogen er det side 19)

Iterativ udvikling er en af de mest anvendte udviklingsmetoder især i UP samt andre moderne metoder.

Den iterative udviklingstilgang består af korte iterationer (lad os sige et 3 ugers forløb som eksempel) På de her 3 uger, har man kravspecifikation/kravanalyse, design, implementation. Derudover så har man også aktivt testet det. Så kommer man til selve iterationen, hvor man får reviewet/vurderet ens produkt, ofte over ens kunde. Efter man har sparet med kunden, så kører processen igen(den loop'er / bliver gentaget mange gange)

Styrken ved at have de her iterationer er at man løbende får feedback. Udfra ens feedback, kan man lave de nødvendige justeringer/tilpasninger.

Figur 2.1 samt firgur 2.2 kan klart anbefaldes for en dybere forståelse.
TODO

Streg ud efterhånden med ~~eksempel~~.

	+ Beskriv hvordan en ~~klasse~~/metode fungere (gerne vha. kodeeksempel).
	+ Beskriv hvordan man regner med binær/bit og hvordan bitwise operatore fungere.
		- https://www.binaryhexconverter.com/hex-to-decimal-converter
		- https://en.wikipedia.org/wiki/Bitwise\_operation
	+ Beskriv Operators
		- Bitwise
		- Logical
	+ Beskriv Nested - Frank
	+ Beskriv JavaFX begreber
		- ~~Pane~~
		- ~~Event~~
		- ~~V boks~~
		- ~~Stage og scene~~
* Systemudvikling:
	+ ~~Beskriv operations kontrakter~~
	+ Beskriv pakke diagrammer - LISA
		- Lagdeling

	+ ~~Beskriv hvad JUnit er hvad formålet med unit testing er (Inkluder eventuelt kort kodeeksempel) - Silke~~
* Systemudvikling:
	+ ~~Beskriv hvad static og dynamic modellering er og forskellen.~~
	+ ~~Beskrivelse af sekvensdiagrammer - Casper P~~

* + ~~fx messages og lifeline boxes.~~

* ~~Beskrivelse af klassediagrammer + indkapsling (fra undervisningen fredag)~~

**Uge 42:** Ferie

**Uge 43:** Studiepraktikanter

* Forslag??
* Eventuelt tilføj mere til de emner I selv har fremlagt i, hvis I har lært noget udover det der allerede står skrevet.
* Opråb til alle i klassen: Tilføj jeresU PowerPoints til "Obligatorisk Opgave"-siden

	+ Beskriv/uddyb IO // Kap. 10

* Systemudvikling
	+ Beskriv hvad GRASP er som helhed, samt de fem fokus punkter vi har haft.

	+ Generic - Sakaria
	+ Enum
	+ Lambda expressions,
	+ kap 12 - 13 - 14
* Systemudvikling:
	+ GRASP - Jes

**Uge 46:**

* Programmering

* Systemudvikling
	+ Brugervenlighed
		- Gestaltlove
		- Vertikal og Horizontal Prototype
		- Tacit Knownledgde

**Uge 47:**

* Programmering
	+ Vigtige begreber fra læsestof
		- SQL Termer (Database)
* Systemudvikling
	+ Heuristisk analyse
		- De 10 der (Står i PP)
Velkommen til

**Grundregler:**

* Intet copyright beskyttet indhold. Altså ikke noget med at ligge vores bøger op eller lignende. Dog går det nok at citere i begrænset omfang eller ligge enkle diagrammer op.
* Der må under ingen omstændigheder ligges personlig information op, uden forudgående tilladelse.
* Hvis der er noget du mener er faktuelt forkert, undersøg da (som udgangspunkt) sagen grundigt før du ændre det! Vi skal ikke have en ond cirkel af reverts. Endnu bedre, snak med personen der har skreven det.
* Har du radikale ændringer til layout eller lignende, clear det lige med nogen først :)

**Gode råd:**

* Har du en ide eller opdaget noget der mangler, men mangler tiden eller evnerne til at implementere det? Tilføj den til vores TODO side eller tilføj en TODO til den enkelte side, så det ikke bliver glemt.
* Brug referencer! Tilføj en reference, så dine medstuderende let kan se hvor henne i f.eks. bogen der står at x betyder y.
	+ Husk at bruge de rigtige sidetal! Hvilket vil sige det sidetal der står i bogen, ikke det sidetal din PDF-viser viser.
Gestalt Love

**Law of Proximity**

Hvis objekter er sat
tæt sammen, bliver de ofte opfattet som en gruppe.

**Law of Symmetry**

Objekter skal være
balanceret og symmetriske for at blive opfattet som en helhed/gruppe.

**Law of Similiarity**

Objekter der er
ensartet, med lignende komponenter eller attributter bliver ofte set
sammen.

**Law of Common Fate**

Når objekter med
samme bevægelse og retning, samme retning og på sammen tid bliver
set som en gruppe.

**Law of Continuation**

Objekter vil blive
set om en gruppe hvis de er i linære eller følger en retning.

Law of Closure

Hjernen kan blive
snydt til at fuldføre ufærdige eller delvis skjulte objekter.
Chapter 11: Multihreaded Programming

Multithreading allows you to take advantage of the idle time that is present in nearly all programs.
When one thread can’t run, another can. In multicore systems, two or more threads can execute
 **2. Multithreading is supported by the \_\_\_\_\_\_\_\_\_\_ class and the \_\_\_\_\_\_\_\_\_\_ interface.**
 '*3. When creating a runnable object, why might you want to extend Thread rather than'***implement Runnable?**
 **4. Show how to use *join(* ) to wait for a thread object called MyThrd to end.**

```
MyThrd.join();

 **5. Show how to set a thread called MyThrd to three levels above normal priority.**

```
MyThrd.setPriority(Thread.NORM\_PRIORITY+3);

 **6. What is the effect of adding the synchronized keyword to a method?**
 **7. The wait( ) and notify( ) methods are used to perform \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_.**
 8. Change the TickTock class so that it actually keeps time. That is, have each tick take one half second, and each tock take one half second. Thus, each tick-tock will take one second. (Don’t worry about the time it takes to switch tasks, etc.)
To make the TickTock class actually keep time, simply add calls to sleep( ), as shown here:

```
// Make the TickTock class actually keep time.

class TickTock {

String state; // contains the state of the clock

synchronized void tick(boolean running) {

if(!running) { // stop the clock

state = "ticked";

notify(); // notify any waiting threads

return;

}

System.out.print("Tick ");

// wait 1/2 second

try {

Thread.sleep(500);

} catch(InterruptedException exc) {

System.out.println("Thread interrupted.");

}

state = "ticked"; // set the current state to ticked

notify(); // let tock() run

try {

while(!state.equals("tocked"))

wait(); // wait for tock() to complete

}

catch(InterruptedException exc) {

System.out.println("Thread interrupted.");

}

}

synchronized void tock(boolean running) {

if(!running) { // stop the clock

state = "tocked";

notify(); // notify any waiting threads

return;

}

System.out.println("Tock");

// wait 1/2 second

try {

Thread.sleep(500);

} catch(InterruptedException exc) {

System.out.println("Thread interrupted.");

}

state = "tocked"; // set the current state to tocked

notify(); // let tick() run

try {

while(!state.equals("ticked"))

wait(); // wait for tick to complete

}

catch(InterruptedException exc) {

System.out.println("Thread interrupted.");

}

}

}

 **9. Why can’t you use *suspend( ), resume( ),* and *stop( )* for new programs?**
The *suspend( ), resume( )*, and *stop( )* methods have been deprecated because they can cause serious
 10. What method defined by Thread obtains the name of a thread?

```
getName( )

 11. What does isAlive( ) return?
It returns true if the invoking thread is still running, and false if it has been terminated.
Interface

Med ”interface” du kan fuldkommen separerer en klasses
interface fra ets implantation

For at implementer ”interface”, skal klassen have en krop (implantationer)
for metoderne beskrives af interfacet.
to klasser man implementer det samme interface på forskellige måder, men hver
klasse stadig hjælper det samme sæt af metoder.

a*cces* interface *name {*

*ret-type method-name*1*(param-list);*
ret-type method-name*2*(param-list);

type var*1* = value;

type var*2* = value;

//…

ret-type method-name*N*(param-list);

type var*N* = value;
Event

Event er et begreb der bliver brugt til at beskrive en ønsket handling. I JavaFX er event altså en forekomst af en brugerinteraktion med applikationen (f.eks: når der bliver trykket på en knap). Klik med musen eller trykke på en tast er alle sammen eksempler på events.

Når en event forekommer i et program, vil man typisk udførere et givet styk kode. Eksempel:

```
addBtn.setOnAction(e -> {
 add();
});

```
Variable, metode , objekt

Variable, metode , objekt

En variabel er et sted hvor du kan putte din værdi ind i.

Det er en måde at opbevare date på.

En metode er en procedure eller funktion, som påvirker eller aflæser klassens tilstand

En metode kan ændre på objektets data, når den udføres

Enhver metode skal angive en *returtype*

Et objekt indeholder de data, der er nødvendige
for at beskrive det, som objektet repræsenterer. Et Fil-objekt har oplysninger om den fil, det repræsenterer: Navn, placering, type, dato for oprettelse og indhold. Et Person-objekt har måske variabler for fornavn, efternavn, CPR-nummer.

Et objekt kan også indeholde navngivne programstumper, som kan udføres ved at give objektet besked om det. Disse programstumper kaldes *metoder* og kan opfattes som
spørgsmål eller kommandoer, som man bruger til at undersøge og manipulere indholdet af objektet med.
Agile

Uddybes under 2.6 (side 83 e-bogen, side 27 bogen)

Agile (agil, adræt) består af den iterative tankegang, hvor man har fokus på den adaptive planlægning, så man fremmer fleksibilitet.

Wiki's betegnelse:

"**Agil systemudvikling** er en fællesbetegnelse for en række softwareudviklingsmetodikker, hvor vægten ligger på løbende at levere værdi til kunden gennem iterativ udvikling. Dvs måder at planlægge og kontrollere softwareudvikling, hvor man hurtigt kan levere en ny version af softwaren når der kommer ændringsønsker fra slutbrugerne. Extreme Programming og Scrum er eksempler på agile metodikker mens vandfaldsmodellen er modsætningen til agile metoder. På dansk bruges også ordet adræt udvikling, da agil og adræt er synonymer."

   The Agile Manifesto and Principles bliver uddybet under 2.6 også.

Men det går primært ud på at man tilbage i 2001 satte sig sammen for at få en fælles forståelse/betegnelse på principperne i form af at fange ideen bag de agile metoder.
Casual use case

Laves ligesom Brief Use Case i tidlig fase af krav analyse

Indeholder flere alternative afsnit af hovedscenariet

Eksempel:

VUS-1: Lej videofilm

Salgsassistenten er klar til at ekspedere en ny kunde. En kunde kommer med videofilm der skal lejes. Salgsassistenten angiver kundens id og hver videos id. Systemet oplyser information om hver video. Salgsassistenten beder om en udlejningskvittering. Systemet genererer en udlejningskvittering. Salgsassistenten udleverer udlejningskvittering til kunden sammen med videofilmene.

Hvis en videofilm er reserveret til en anden kunde så viser systemet en advarsel. Salgsassistenten oplyser kunden om at videofilmen ikke kan udlejes og sætter den til side. Herefter fortsætter udlejningen af evt. øvrige film som normalt.
Operationskontrakt

Et tekstbaseret
analyseartefakt der giver os et detaljeret overblik overfor systemoperationer.

Skabelon:
- ID og navn
- Systemoperation inkl. Parametre
- Krydsreferencer (til use cases)
- Forudsætninger (preconditions)
- Slutbetingelser (postconditions)

ID og Navn:
- Et unikt ID i tilfælde af navnet bliver ændret. Formateres som en
overskrift

 Systemoperation:
Fuldstændig betegnelse for systemoperationen inklusiv angivelse af parametre

Krydsreferencer:
Lister alle de use cases hvor systemoperationen finder anvendelse

Forudsætninger:
Angiver alle de forudsætninger som skal være til stede i domænet før
operationen kan kaldes

Slutbetingelser:
Angiver alle de betingelser som skal være til stede i domænet når operationen
er afsluttet (selve "kontrakter")

*Eksempler:*

- John's biludlejningssystem og Gruppe 1's Hotel System
Use cases

Central begreber:

## Hvordan kan man finde brugbare Use Cases?

* The Boss Test:
	+ Hvad har du lavet hele dagen? Du svarer "Logging in". Er din chef tilfreds?
* The EBP (Elementary Business Process) Test:
	+ Tilføjer (Use Casen) handlingen nogen værdi?
	+ Består nomalt af adskillinge trin. Normalt ikke kun 2 trin. ALDRIG kun 1 trin.
* The Size Test:
	+ Beskriver Use Casen flere handlinger eller er det bare en enkel handling?
	+ En Use Case indeholder ofte mange handlinger.
GRASP

Der er 9 GRASP patterns

 Information Expert
 Low Coupling

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
​​​​

   Creator : ( UML s. 291 )

Creator handler om hvem der laver et objekt eller hvem skal lave en ny instance af et objekt.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

   Information Expert : ( UML s. 294 )

Informations eksperten handler om at give ansvar til objekter, og give ansver til de objekter, det giver mest mening

f.eks. VideoStore objekt, har ansvar for alle videoerne.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

Low Coupling (UML s. 299)

Low Coupling handler om at objekter ikke er for afhængige af hinanden,

da
det i fremtiden vil være sværere at ændre i systemet.

Man får lav Coupling, hvis man giver objekterne ansvar.

Det første billede viser dårlig Coupling,

og den anden viser god Coupling.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

Controller: ( UML s. 302 )

Controlleren er den der udeliger opgaverne, fra UI laget. Controlleren kontroller sekvensen af opgaverne.

Der er også Bloated Controllers, som kan ske, hvis Controlleren får for meget ansvar

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

High Cohesion : (UML s. 314)

High Cohesion er lidt ligesom Information Expert, men her uddelegere man de funktionelle ansvar ud.

Det første billede, viser low cohesion, mens nummer 2 billede viser High Cohesion.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

Applying UML and patterns kapittel 17 + 18.

Blog med ekstra information.
Klasser

En klasse er kort sagt en skabelon, som man kan lave objekter af vha. instantiering.

En klasse indeholder instans variable og instans metoder, hvoraf metoderne er de operationer, der skal være på objekterne.

**Eksempel på brug af klasser:**

```
public class HeleTal {
 private int tal;

 //metode til at sætte instansvariablen tal
 public void set (int t) {
 tal = t;
 }

 //metode til at returnere instansvariablen tal
 public int get() {
 return tal;
 }
}

public class Main {
 public static void main(String[] argv) {
 //der laves en instans af klassen HeleTal kaldet detteTal
 HeleTal detteTal = new HeleTal();

 detteTal.set(10);
 System.out.println(detteTel.get());
 }
}

```

*Læs mere om klasser i Java: A Beginner's Guide s. 104*
Vertikal og Horisontal Prototype

**Vertikal Prototype:**

En
lille del af systemet, hvor man går helt i dybden med programmering, for at
være sikker på at den del virker. Oftest bliver det gjort med den del man er
mest usikker på, at det kan lade sig gøre. Det sikrer at vi ikke bruger måneder
på at lave et system, som ikke kan lade sig gøre.

**Horisontal Prototype:**

Et
skærmbillede af hele systemet. Dog er der ikke nogen funktionalitet i det. Det
er kun for at vise kunden hvordan det kan se ud, og hvordan det kommer til at
fungere.
Brief Use Case

Laves under tidlig krav analyse, for at få et overordnet billede af emnet og systemet som skal designes. Laves typisk over hoved scenarie (happy flow).

Eksempel på Brief Use Case

VUS-1: Lej videofilm

Salgsassistenten er klar til at ekspedere en ny kunde. En kunde kommer med videofilm der skal lejes. Salgsassistenten angiver kundens id og hver videos id. Systemet oplyser information om hver video. Salgsassistenten beder om en udlejningskvittering. Systemet genererer en udlejningskvittering. Salgsassistenten udleverer udlejningskvittering til kunden sammen med videofilmene.
Systemudvikling opgaver

Opgaver fra timen. Tilføj efter behov

* + dækker over specifikke "krav" som f.eks. teknisk krav (ressourceforbrug m.m.), lovgivningskrav m.m..
* Mange af de krav vi har specificeret passer meget godt under FURPS beskrivelse af kvalitetstræk inden for software.

### Unified Process overblik

* https://www.youtube.com/watch?v=Pzyhuz38QPI
	+ En lang og udførlig gennemgang af UP på dansk.
* https://www.youtube.com/watch?v=f0SSGl89inQ
	+ En kort gennemgang af UP og Waterfall med fordele og ulemper.
* https://airbrake.io/blog/sdlc/rational-unified-process
	+ En god skriftlig gennemgang som har de meget overfladiske ting.
* https://www.youtube.com/watch?v=YgkhFH8g0J4
	+ Meget kort video om RUP
* https://classroom.udacity.com/courses/ud805
	+ Mange videoer om Software Development Process. Nærmest et helt kursus.

### GRASP overblik

* Gruppe 4:
	+ https://www.youtube.com/watch?v=9Y2mZger8kE
		- Godt overblik over GRASP er god fordi den kobler teori med praktisk.
	+ https://medium.com/omarelgabrys-blog/object-oriented-analysis-and-design-design-principles-part-6-b78e2b9da023
		- Giver et fint overblik over forskellige design principper i OOA/D, det er en del af en serie omkring OOA/D, det kan også være værd at læse de andre posts:
			* https://medium.com/omarelgabrys-blog/object-oriented-analysis-and-design-introduction-part-1-a93b0ca69d36
* Gruppe 1+3

https://study.com/academy/lesson/grasp-design-patterns-in-object-oriented-design.html

### Definition af brugervenlighed

* Gruppe 4
	+ Egen definition: Simple, logisk og nemt at gå til.
	+ "Officiel" definition: "let at anvende og betjene for brugeren" - ordnet.dk
* Gruppe 1+3
	+ Egen definition: "Nem og forståelig brugergrænseflade for et systemet, for visse målgrupper. Der med funktionelt og brugbart."
	+ "Officiel" definition: "i hvor høj grad et produkt kan bruges af en bestemt brugergruppe til at opnå bestemte mål med effektivitet, nemhed og tilfredshed i en bestemt brugskontekst" - copenux.dk
		- ”easy to learn, use, understand, or deal with”
Chapter 9: Exception Handling

**2. Briefly explain how to use try and catch.**
The try and catch statements work together. Program statements that you want to monitor for exceptions
 **3. What is wrong with this fragment?**

```
// ...

vals[18] = 10;

catch (ArrayIndexOutOfBoundsException exc) {

// handle error

}

```

 **4. What happens if an exception is not caught?**
 **5. What is wrong with this fragment?**

```
class A extends Exception { ...

class B extends A { ...

// ...

try {

// ...

}

catch (A exc) { ... }

catch (B exc) { ... }

```

 **6. Can an inner catch rethrow an exception to an outer catch?**
 **7. The finally block is the last bit of code executed before your program ends. True or False? Explain your answer.**
 **8. What type of exceptions must be explicitly declared in a throws clause of a method?**
 9. What is wrong with this fragment?

```
class MyClass { // ... }

// ...

throw new MyClass();

```

 10. In question 3 of the Chapter 6 Self Test, you created a Stack class. Add custom exceptions to your class that report stack full and stack empty conditions.

```
// An exception for stack-full errors.

class StackFullException extends Exception {

int size;

StackFullException(int s) { size = s; }

public String toString() {

return "\nStack is full. Maximum size is " +

size;

}

}

// An exception for stack-empty errors.

class StackEmptyException extends Exception {

public String toString() {

return "\nStack is empty.";

}

}

// A stack class for characters.

class Stack {

private char stck[]; // this array holds the stack

private int tos; // top of stack

// Construct an empty Stack given its size.

Stack(int size) {

stck = new char[size]; // allocate memory for stack

tos = 0;

}

// Construct a Stack from a Stack.

Stack(Stack ob) {

tos = ob.tos;

stck = new char[ob.stck.length];

// copy elements

for(int i=0; i < tos; i++)

stck[i] = ob.stck[i];

}

// Construct a stack with initial values.

Stack(char a[]) {

stck = new char[a.length];

for(int i = 0; i < a.length; i++) {

try {

push(a[i]);

}

catch(StackFullException exc) {

System.out.println(exc);

}

}

}

// Push characters onto the stack.

void push(char ch) throws StackFullException {

if(tos==stck.length)

throw new StackFullException(stck.length);

stck[tos] = ch;

tos++;

}

// Pop a character from the stack.

char pop() throws StackEmptyException {

if(tos==0)

throw new StackEmptyException();

tos--;

return stck[tos];

}

}

 **11. What are the three ways that an exception can be generated?**
 **12. What are the two direct subclasses of Throwable?**
 **13. What is the multi-catch feature?**
 **14. Should your code typically catch exceptions of type Error?**
No.
Chapter 1: Java Fundaments

Bytecode is a highly optimized set of instructions that is executed by the Java Virtual Machine.
 **2. What are the three main principles of object-oriented programming?**
 **3. Where do Java programs begin execution?**
 **4. What is a variable?**
A variable is a named memory location. The contents of a variable can be changed during the execution
 **5. Which of the following variable names is invalid?**
 **6. How do you create a single-line comment? How do you create a multiline comment?**
A single-line comment begins with // and ends at the end of the line. A multiline comment begins with
 **7. Show the general form of the if statement. Show the general form of the for loop.**
The general form of the if:

```
if(condition) statement;

```

The general form of the for:

```
for(initialization; condition; iteration) statement;

 **8. How do you create a block of code?**
 **9. The moon’s gravity is about 17 percent that of the earth’s. Write a program that computes your effective weight on the moon.**

```
/\*
 Compute your weight on the moon.

 Call this file Moon.java.
\*/
class Moon {
 public static void main(String args[]) {
 double earthweight; // weight on earth
 double moonweight; // weight on moon

 earthweight = 165;

 moonweight = earthweight \* 0.17;

 System.out.println(earthweight + " earth-pounds is equivalent to " +
 moonweight + " moon-pounds.");

 }
}

 **10. Adapt Try This 1-2 so that it prints a conversion table of inches to meters. Display 12 feet of conversions, inch by inch. Output a blank line every 12 inches. (One meter equals approximately 39.37 inches.)**

```
/\*
 This program displays a conversion
 table of inches to meters.

 Call this program InchToMeterTable.java.
\*/
class InchToMeterTable {
 public static void main(String args[]) {
 double inches, meters;
 int counter;

 counter = 0;
 for(inches = 1; inches <= 144; inches++) {
 meters = inches / 39.37; // convert to meters
 System.out.println(inches + " inches is " +
 meters + " meters.");

 counter++;
 // every 12th line, print a blank line
 if(counter == 12) {
 System.out.println();
 counter = 0; // reset the line counter
 }
 }
 }
}

 **11. If you make a typing mistake when entering your program, what sort of error will result?**
 **12. Does it matter where on a line you put a statement?**
No, Java is a free-form language.
Exception

En ”exception” bruges når man ved der kommer en fejl, men i
stedet for en fejl meddelelse, kommer det tekst

Hvis man nu har en fejl i starten, og man ikke har en ”exception”,
vil programmet overhovedet ikke køre, men hvis man indsætter en ”exception” kan
programmet godt køre igennem, da en ”exception” er en udtagelse af en fejl

Den måde man arbejder med ”exceptions” på, er med hjælp fra **try, catch, throw, throws** og **finally**.
De her funktioner bliver beskrevet et andet sted
Packages

En ”packages” har to formål:

Det første er at det giver en mekanisme, som relater andre
dele af et program, som kan blive organiseret til en ”unit”. Klasser defineres
inden i en ”package” må give adgang igennem deres ”package” navn, således at en
”package”   søger for en måde at navngive en samling af
klasser

Det andet formål er at gøre sine klasser private, så andre ”packages”
ikke kan se den klasse

Hvis man ikke laver en ”package” for sin klasse, vil klassen
få ”default package”, som er global.
Vandfaldsmodellen

Uddybes i kapitel 5 i bogen og på side 55 i e-bogen.

Vandfaldsmodellen er baseret på store
spekulative forhånds krav og design trin, før programmering.

Succes/fiasko studier viser at vandfaldsmodellen har en

meget stor fiasko procent for projekter.

Wiki's beskrivelse

   **Vandfaldsmodellen** er en model for udvikling af software

 (en proces til at lave software) hvor softwareudvikling betragtes som
konstant flydende nedad (som et vandfald) gennem faserne: kravspecifikation, design, implementation, afprøvning/fejlfinding, integration og vedligeholdelse. Ordet blev introduceret i 1970 af Winston W. Royce; det var dog ironisk at Royce selv var fortaler for en anden model nemlig iterativ softwareudvikling.
 Royce fremførte oprindeligt hvad der nu er kendt som vandfaldsmodellen
som et eksempel på et system som han sagde var "risikabel og inviterer
til fiasko" (se "Why people still believe in the waterfall model").

(1)
System Sekvens Diagram

Informationen er fra (Side 335 i PDF, 173 i Bogen kap. 10) og wiki

SSD er visuelle beskrivelser af Use cases. Man bruger dem på "main succes scenario" for at vise hvordan disse burde forløbe. Man kan også lave det på hyppige og komplekse scenarier.

En SSD skal indeholde:

Aktører

Beskeder (med metoder, fra aktør)

Returbeskeder (tilhørende beskederne fra aktøren)

Indikation af loop eller iterative områder.
Clean code

Capitel 1:

Beskriver hvad god kodning er, og hvad dårlig kodning er f.eks. god kodning skal skrives, som en historie.

Capitel 2:

Snakker om navne der beskriver hvad det er. Så istedet for forkortelser, skal man lave skriver det hele, og man skal ikke lave "joke" navene f.eks. holy hand grenade.

Capitel 3:

Beskriver bogen functions, som skal være små, og skal kun gøre en ting, og gøre den ene ting godt.

Capitel 4:

Snakker bogen om kommenter, hvor det bedste er at man ikke har nogen kommentar, da det let kan forstyr. Da bogen siger at den aldre bedste kommentar, der den du finder en måde ikke at skrive den.

Capitel 5:

Beskriver bogen formatering, hvor det skal se pænt ud, og ikke som en fuld sejler. Når man er i et programmeringteam, skal man aftale hvordan man formater alle programmerne, så det hele er let læseligt
Chapter 4: Introducing Classes, Objects and Methods

**2. How is a class defined?**
 **3. What does each object have its own copy of?**
 **4. Using two separate statements, show how to declare an object called counter of a class called *MyCounter*.**

```
MyCounter counter;

counter = new MyCounter();

 **5. Show how a method called *myMeth( )* is declared if it has a return type of *double* and has two *int* parameters called *a* and *b*.**

```
double myMeth(int a, int b) { // ...

 **6. How must a method return if it returns a value?**
 **7. What name does a constructor have?**
 **8. What does *new* do?**
 **9. What is garbage collection and how does it work?**
Garbage collection is the mechanism that recycles unused objects so that their
 **10. What is *this*?**
The this keyword is a reference to the object on which a method is invoked. It
 **11. Can a constructor have one or more parameters?**
 **12. If a method returns no value, what must its return type be?**
*void*
Obligatorisk opgave

## Obligatorisk opgave 1:

**Emner:**

* Unified process (Jes) (Kasper)
	+ Kontra vandfaldsmodellen (?) (Kristian)
* FURPS+(Nikolaj)
* Iterative and Evolutionary Development, evt + Agile (Sune)
	+ Mit PowerPoint

* Domænemodel (Thomas) (Rasmus PG)
* Operationskontrakt (Lisa) (Frederik)
* Use Cases (Jóhan) (Sakaria)
* OOA/D (søren)
* Vandfaldsmodellen (Silke) (Lasse)
	+ Lasses PowerPoint
	+ Silkes PowerPoint

* Sekvens Diagram (Casper)
	+ Mit PowerPoint
	+ *Husk at slå noter til nede i højre hjørne*
* Klasse Diagram (Jannick) (Frank)
	+ Jannicks PowerPoint
Dataordbog (Glossary)

Dataordbogen er en liste over alle de ord fra use casen, der kræver en forklaring før bedstemor også kan forstå det. Den er i tabelform (2 kolonner) og skal sorteres alfabetisk.

I forklaringen af ordene har man en intensionel definition og en ekstensionel definition:

 Ekstensionel definition
Eksempel: Et tilbud.
Pane

Border Pane

Opdeles i fem forskellige felter: Top, bund, øst, vest og center

Grid Pane

Opdeles som et gitter, og felterne navngives som vist på billedet

   Flow Pane

Her sættes felterne i rækkefølge, enten vertikalt eller horisontal

Box

    Her findes både VBox og HBox

Forskellen på disse, er måden de er listet på

VBox er listet vertikal

HBox er listet horisontal
Chapter 8: Packages and Interfaces

**package, show how to import and use the classes in qpack.**
To put ICharQ and its implementations into the qpack package, you must separate each into its own
file, make each implementation class public, and add this statement to the top of each file.
package qpack;
Once this has been done, you can use qpack by adding this import statement to IQDemo.
 **2. What is a namespace? Why is it important that Java allows you to partition the namespace?**
 **3. Packages are stored in \_\_\_\_\_\_\_\_\_\_.**
 **4. Explain the difference between protected and default access.**
A member with protected access can be used within its package and by a subclass in any package.
 **5. Explain the two ways that the members of a package can be used by other packages.**
 **6. “One interface, multiple methods” is a key tenet of Java. What feature best exemplifies it?**
 **7. How many classes can implement an interface? How many interfaces can a class implement?**
 **8. Can interfaces be extended?**
 **9. Create an interface for the Vehicle class from Chapter 7. Call the interface IVehicle.**

```
interface IVehicle {

// Return the range.

int range();

// Compute fuel needed for a given distance.

double fuelneeded(int miles);

// Access methods for instance variables.

int getPassengers();

void setPassengers(int p);

int getFuelcap();

void setFuelcap(int f);

int getMpg();

void setMpg(int m);

}

 **10. Variables declared in an interface are implicitly static and final. Can they be shared with other parts of a program?**
 **11. A package is, in essence, a container for classes. True or False?**
 **12. What standard Java package is automatically imported into a program?**
 **13. What keyword is used to declare a default interface method?**
 **14. Beginning with JDK 8, is it possible to define a static method in an interface?**
 **15. Assume that the ICharQ interface shown in Try This 8-1 has been in widespread use for'** **several years. Now, you want to add a method to it called reset( ), which will be used to** **reset the queue to its empty, starting condition. Assuming JDK 8 or later, how can this be**
**accomplished without breaking preexisting code?**
To avoid breaking preexisting code, you must use a default interface method. Because you can’t
know how to reset each queue implementation, the default reset( ) implementation will need to report
an error that indicates that it is not implemented. (The best way to do this is to use an exception.
Exceptions are examined in the following chapter.) Fortunately, since no preexisting code assumes
that ICharQ defines a reset( ) method, no preexisting code will encounter that error, and no
 **16. How is a static method in an interface called?**
A static interface method is called through its interface name, by use of the dot operator.
Zähne

{{imagesize|60px}}| | **Die Zeit ist nicht das einzige Hindernis für ein lebendiges Gedächtnis.**

**Zähne** sind das Zahlungsmittel, welches verwendet wird um die Waffen zu upgraden, dies wird mit dem Upgradingsystem Hohler Jahn möglich gemacht. Während ein regulärer weißer Zahn einfach als ein Zahn zählt, zählt ein goldener Zahn als fünf oder zehn Zähne. Wenn Alice das Kleid Hutmacherin trägt verliert sie Zähne anstelle von Rosen.
Statisk og dynamisk modellering

Statisk og Dynamisk modellering

**Statiske modeller** (diagrammer) er modeller som viser en struktur. De er noglelunde stabile og uændret.
Statistiske modeller dækker for det meste interfaces, objekter, componenter, etc.
Klasse diagrammer er et eksempel på statiske modeller.

**Dynamiske modeller** (diagrammer) viser hvordan et program opfører sig. Dette variere, og er derfor dynamisk (ikke fast)
Blandt andet Interaktions diagrammer (Sekvens diagrammer og Kommunikations diagrammer) er dynamiske modeller.
Rosen

**Rosen** repräsentieren den Gesundheitsbalken von Alice Liddell. Die Anzahl der Rosen kommt darauf an, wie viel Gesundheit sie zu einem gewissen Zeitpunkt besitzt, sollte diese auf eine Rose hinabsinken, so ist Alice dazu in der Lage in den Hysteriemodus zu wechseln und wird somit, für eine kurze Zeit, unbesiegbar.

## Regenerationsmethoden

* Das Besiegen von Feinden und das Zerstören von zerbrechlichen Behältnissen und Herzoginnenkörben geben einem manchmal kleine oder große Rosen.

* Im Schrumpfveilchen regeneriert man ebenfalls Gesundheit

## Rosenarten

* **Kleine Rose** - stellen eine viertel Rose wieder her.
* **Große Rose** - stellen eine ganze Rose wieder her.

## Kleider

Bestimmte Kleider haben einen Effekt auf Alices Gesundheitsbalken oder ihre Fähigkeit Rosen einzusammeln.

* Dampf-Kostüm Behältnisse bergen mehr Rosen und Zähne.
* Sirene Feinde lassen doppelt so viele Rosen zurück.
* Royale Robe Gesundheit wird auf maximal vier Rosen begrenzt.
* Grinse-Kluft Das Herunterfallen sämtlicher Rosen von Gegnern wird verhindert.
* Klassisch und Spät aber Froh lassen Alice ihre Gesundheit wieder regenerieren.
* Hutmacherin sorgt dafür, dass Alice Zähne anstelle von Rosen verliert.

## Trivia

* Wenn man den Knechtmahr benutzt regeneriert jeder erfolgreiche Treffer eine viertel Rose von Alice Gesundheit wieder.
* Die Rosen könnten eine Referenz zu dem Herzteil aus der *Zeldareihe* sein, da man durch das Einsammeln von vier Herzteilen ein neues bekommt.
Vernäht

Das Kleid **Vernäht** ist das fünfte und auch letzte Kleid von Alice Liddell in Alice: Madness Returns. Das Kleid basiert auf das Aussehen der Puppenhausdomäne und ist eines von Alices farbenfrohsten und lebhaftesten Kleidern. Es ist aber auch das meist getragene und zerrissene, damit es mit dem Aussehen des Puppenhauses übereinstimmt. Der Effekt des Kleides sorgt dafür, dass die Schrumpfinn-Dauer verdoppelt wird.
Alice: Otherlands

**Alice: Otherlands** ist eine animierte Fortsetzung von *Alice: Madness Returns*. Es handelt sich um eine Serie von zwei Kurzfilmen und Kunstwerken, die von Spicy Horse entwickelt wurden, um die Alice-Serie, die von American McGee als Trilogie ins Auge gefasst wurde, zum Abschluss zu bringen.

American McGee gab jedoch an, dass dies nicht unbedingt bedeutet, dass es keine zukünftigen Alice-Raten geben wird. McGee arbeitet derzeit an einem Vorschlag namens *Alice: Asylum*.
Domäne des Hutmachers

Die **Domäne des Hutmachers** war ein Bereich des Wunderlands und das Zuhause des verrückten Hutmachers, des Märzhasen und der Haselmaus. Es wurde vom Hasen und der Haselmaus übernommen, nachdem sie hereingelegt wurden, somit wurde daraus eine Fabrik, die dazu diente den infernalischen Zug zu bauen. Sie brach jedoch zusammen als der Mecha zerstört wurde. Dies geschah indem der Hutmacher eine gigantische Teekanne aus Metal darauf fallen lies und es somit in Tee getaucht wurde.
Do-while

Do {
     *statements;*
} while *(condition)*;

Så
længe *condition* er sand, bliver *statement* udført. Selvom *condition* er falsk, bliver *statement* udført mindst en gang

Eksempel:

```
throws java.io.IOException {
char ch;
do {
     System.out.print(“Indtast en bogstav og tryk ENTER: ”);
     ch = (char) System.in.read(); //modtag en char
  }
while (ch != ’q’);
}

```
Alice Liddell

{{imagesize|60px}}| | **Die Zeit ist nicht das einzige Hindernis für ein lebendiges Gedächtnis.**

{{imagesize|60px}}| | **Im Rutledge Irrenhaus gewinnen wir unsere Halluzinationen! Und wir haben dafür bezahlt!**

## Biographische Informationen

### Alter

18 (AMA)
19 (AMR)
20 (AO)

## Äußerliche Erscheinung

### Haarfarbe

braun/auburn (AMA)
schwarz (AMR)

## Persönliche Informationen

### Verbündete

Ihre Familie, Nan Sharpe, Grinsekatze, Schildkrötensupperich, Verrückter Hutmacher, Herzkönigin, viele mehr...

### Feinde

Angus Bumby, Jabberwock, Jack Splatter, Herzkönigin (ehemalig), Wilton J. Radcliffe, viele mehr...

### Beschäftigung

Royales Opernhaus (Theater Mitarbeiterin)
Houndsditch Home Maid (ehemalig)

## Weitere Informationen

### Synchronsprecher

Susie Brann (Englisch)

**Alice Liddell** ist die jüngste Tochter von Arthur Liddell und Mrs. Liddell, sowie die kleine Schwester von Lizzie Liddell. Sie ist die alleinige Überlebende des Feuers, welches ihre Familie tötete und für sie ein gewaltiges Trauma verursachte, als sie ein Kind war. Ihr Trauma beeinflusste ihre Realität sowie ihre imaginäre Welt, das Wunderland und seine Bürgerschaft.

Alice kämpfte mit den Fragmenten ihrer Erinnerungen, einer Posttraumatischen Belastungsstörung und einer verschlechterten mentalen Gesundheit nach einem zehnjährigen katatonischen Status im Rutledge Irrenhaus. Somit kehrte sie in das Wunderland zurück um es vor der Herzkönigin zu retten und die Monster in ihrem Kopf zu töten.

## **Geschichte**

### **Kindheit**

Alice Liddell wurde 1856 in England geboren. Sie verbrachte den größten Teil ihrer Kindheit in Oxford im Süden Englands. Sie lebte ein angenehmes, glückliches Leben mit ihrer Familie.

Die Familie besaß eine Katze, Dinah, und zwei ihrer Kätzchen später.

### **Das Feuer**

In einer Winternacht am 5. November 1863 wurde im Liddell-Haushalt auf mysteriöse Weise ein Feuer entfacht.
Cecilian Airways

Logo for Cecilian Airways

Cecilian Airways is an international airline, servicing the St. Cecilia Archipelago. Its headquarters are in Louisville, Altarea.

## Information

The airline serves all the airports in the region; each nation has an airport except Pitcairn & Henderson Isles which is only accessible by sea.

Cecilian Airways was founded in 1956, after runways were first built in the region during World War Two. Initially it served the islands internally before branching out to cover some of the major cities further afield in Oceania.

Domestically, the football per annum at the five airports is approximately 1.32 million.

## Airports served

 Landing Point International Airport | Udintsev | 60,787

## International connections

 Auckland
 Brisbane
 Nuku'alofa
 Sydney
Vorpal Klinge

Die **Vorpal Klinge** ist die primäre Waffe von Alice Liddell, sowie die ikonischste Waffe auf ihrer Reise durch das Wunderland und Jules Vernes Otherland.

## Aussehen

Die Vorpal Klinge ähnelt einem gewöhnlichen Küchenmesser, und sieht nicht im geringsten aus wie das Schwert, das "Jabberwocky" genannt wird. Es besitzt eine lange, silberne Klinge und einen kurzen braunen Holzgriff.