# software entwicklung



## Heyoka955 (3. Mai 2019)

hallo und schönen abend,

wir haben eine aufgabe bekommen wo wir zwei personals entwickeln sollen für ein Software, wo man Hausaufgaben verwaltet und diese abgibt und korrigiert wird.
Wir sollen zwei personas entwickeln für mehrere Nutzergruppe, wie zbs Schüler und Lehrer etc?
und wir sollen das nur dokumentieren mehr nicht. 

Wie stellt man sich sowas vor?
was meint man genau mit personals und wie entwickelt man vorallem sowas, ich weiß dass nab aufjedenfall eine Datenbank braucht


----------



## mrBrown (3. Mai 2019)

Lies bitte noch mal die Aufgabenstellung und guck mal, was genau da gefordert wird, „personals“ sind’s ganz sicher nicht...


----------



## Heyoka955 (3. Mai 2019)

mrBrown hat gesagt.:


> Lies bitte noch mal die Aufgabenstellung und guck mal, was genau da gefordert wird, „personals“ sind’s ganz sicher nicht...


personas sorry, autokorrektur war im spiel.


----------



## mrBrown (3. Mai 2019)

Und jetzt gehst du zu Google und suchst mal nach Personas.

Da du Datenbank erwähnst, bist du bisher zumindest völlig auf dem Holzweg...


----------



## mihe7 (3. Mai 2019)

mrBrown war schneller.


----------



## Xyz1 (3. Mai 2019)

Ich rieche ein beginnendes 50-Seiten-Thema.


----------



## Heyoka955 (3. Mai 2019)

Tobias-nrw hat gesagt.:


> Ich rieche ein beginnendes 50-Seiten-Thema.


Ja denke das wird Spaß machen aber ich weiß nicht wie ich das machen soll.
Soll ich darauf eingehen wie das Programm personas verwalten soll oder einfach erklären was ein Persona ist und wie man es entwickelt ?


----------



## Robat (3. Mai 2019)

Heyoka955 hat gesagt.:


> Soll ich darauf eingehen wie das Programm personas verwalten soll oder einfach erklären was ein Persona ist und wie man es entwickelt ?


Du beantwortest dir die Frage doch quasi selbst 


Heyoka955 hat gesagt.:


> wir haben eine aufgabe bekommen wo wir zwei personals entwickeln sollen für ein Software, wo man Hausaufg


----------



## Heyoka955 (3. Mai 2019)

dann gehe ich so vor für die aufgabe 1, erstmal erkläre ich wie man ein persona entwickelt und dazu habe ich die seite gefunden.









						9 Steps to Create a Persona - A Guide with Examples
					

We'll go through the entire process of persona building step by step. Use it as a reference to make your own personas in the future!




					uxpressia.com
				




nachdem ich das gemacht habe, erwähne ich wie das als Beispiel aussehen kann für die nutzergruppe student und korrektor.

Und dann überlege ich wie ich das in java zu implementieren habe ? oder ist das überflüssig?
und wenn ja würde ich das gerne nach dem solid prnzip gestalten?


----------



## mrBrown (3. Mai 2019)

Heyoka955 hat gesagt.:


> dann gehe ich so vor für die aufgabe 1, erstmal erkläre ich wie man ein persona entwickelt und dazu habe ich die seite gefunden.


Kannst du mal die Aufgabe im Originalwortlaut zeigen?



Heyoka955 hat gesagt.:


> Und dann überlege ich wie ich das in java zu implementieren habe ? oder ist das überflüssig?


Du hast dir aber schon den Link angeguckt, den du gepostet hast?


----------



## Heyoka955 (3. Mai 2019)

Entwickeln Sie zwei Personas aus unterschiedlichen Nutzergruppen der Software. Sie finden weiter unten im Dokument eine Erklärung, was Personas sind und Tom Scheuvens als ein Beispiel für eine Persona. Ihre Persona soll sich klar von Tom unterscheiden.


ImportantBei der Bewertung der Aufgabe werden wir darauf achten, dass das die Personas als Prototypen der jeweiligen Nutzergruppen verwendbar sind. Wir werden darauf achten, dass ausreichend viele Informationen vorhanden sind, aber auch, dass nicht vollkommen irrelevante Details aufgeführt werden.


----------



## mrBrown (3. Mai 2019)

Heyoka955 hat gesagt.:


> Entwickeln Sie zwei Personas aus unterschiedlichen Nutzergruppen der Software. Sie finden weiter unten im Dokument eine Erklärung, was Personas sind und Tom Scheuvens als ein Beispiel für eine Persona. Ihre Persona soll sich klar von Tom unterscheiden.



Und jetzt beantworte dir anhand dieser Aufgabenstellung mal dieses beides:



Heyoka955 hat gesagt.:


> dann gehe ich so vor für die aufgabe 1, erstmal erkläre ich wie man ein persona entwickelt





Heyoka955 hat gesagt.:


> Und dann überlege ich wie ich das in java zu implementieren habe ? oder ist das überflüssig?
> und wenn ja würde ich das gerne nach dem solid prnzip gestalten?


----------



## Heyoka955 (3. Mai 2019)

mrBrown hat gesagt.:


> Und jetzt beantworte dir anhand dieser Aufgabenstellung mal dieses beides:


also das untere was ich sagte ist überflüssig, das heißt ich muss gucken wie man personas hersstellt also die daten herbekomme plus ich muss auch so eine Tabelle angeben für zwei verschiedene nutzergruppen


----------



## mrBrown (3. Mai 2019)

Joa, kommt etwa hin...


----------



## Heyoka955 (3. Mai 2019)

mrBrown hat gesagt.:


> Joa, kommt etwa hin...


was fehlt denn da? soll ich erklären wie das Programm funktionieren soll?


----------



## mrBrown (3. Mai 2019)

Da fehlt nichts. Aber gucken, wo man die Daten herbekommt, ist etwas unglücklich ausgedrückt.

Wie zur Hölle kommst du drauf, dass du in irgendeiner Art und Weise das Programm beschreiben sollst?


----------



## mrBrown (3. Mai 2019)

Angenommen, du hast direkt nach dem erstmaligen Lesen der Aufgabenstellung hier gepostet, hättest die Aufgabe seit etwa 2h fertig sein können...


----------



## Heyoka955 (3. Mai 2019)

mrBrown hat gesagt.:


> Da fehlt nichts. Aber gucken, wo man die Daten herbekommt, ist etwas unglücklich ausgedrückt.
> 
> Wie zur Hölle kommst du drauf, dass du in irgendeiner Art und Weise das Programm beschreiben sollst?


ka weil da stand entwickeln, ich dachte solle beschreiben wie man das in java programmieen soll.


----------



## mrBrown (3. Mai 2019)

Immerhin hast du das Wort "Aufgabe" nicht als Aufforderung zum Aufgeben interpretiert..


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Immerhin hast du das Wort "Aufgabe" nicht als Aufforderung zum Aufgeben interpretiert..


so ich habe meine lösung hier für die aufgabe 1

```
== Aufgabe 1: Personas
    Zu aller erst muss man erklären wie man generell Personas entwickelt und dazu gibt es folgende Schritte an die man sich halten muss.
    Zu aller erst ist es wichtig dass man versteht was ein Personas ist, darunter versteht man eine Mensch-Comeputer-Interaktion, die einen Prototyp für eine Nutzergruppe darstellt.
    Im folgenden werde ich erläutern wie man ein Persona herstellt.

    Als ersten Schritt muss man recherchieren bzw man muss Informationen sammeln wofür die Personas gebraucht werden. In dem Falle brauchen wir Personals für ein Abgabesystem
    und dies beinhaltet folgende Nutzergruppen wie Korrektor, Organisator und Studierende. Es ist wichtg dabei zu beachten wie viele Persona man braucht daher ist die Recherche so notwendig.
    
    
    Nachdem man genung Informationen gesammelt hat, muss man demographsiche Informationen zu den Personas bzgl. ihrer Tätigkeit im Privatem und ihre Tätigkeit für das Abgabesystem hinzufügen.
    Anbei angefügt wäre es passend wenn man ein Foto vom jeweiligen Persona zur Verfügung stellt. Man sollte in dem Fall nur angeben das Alter, Name, Geschlecht und in welcher Semester man sich befindet vielleicht wäre es hier sogar sinnvoll wenn man erwähnt zu welcher Nutzergruppe man gehört ob man Studierender oder Korrektor ist.
    
    
    Nachde man die basic-Informationen über die Personas preisgegeben hat, muss man nun persöhnliche Interessen und Tätigkeiten auch background genannt erwähnen, am besten wäre es wenn man angeben könne was man im privatem gerne macht und seine Leidenschaften erläutert bzgl unserer Nutzergruppen könne man erwähnen wie einem das Studium fällt ider welche Moduel besonders spaßig sind.
    
    
    Als vierten Schritt wäre es essentiel die Ziele und die Motivation jeweiliger Nutzergruppen anzugeben, hier wäre es beduetsam bezüglich sich auf das Studium zu beziehen, bzw was man nachdem Bachelor oder Master machen möchte etc.
    
    
    
    
    Anschließend zeige ich zwei Beispiele für die Nutzergruppen Studierender und Korrektor:
    Bsp : Studierender:
    
    
    |===
    |Name | Hintergrund | Ziel

    a| image::Akin.png[]

    [quote, Akin Hans (23)]
    Ich freue mich so sehr ein neues Abgabesystem zu programmieren! Auas nervt !

    | Ich studiere an der Hhu Informatik und befinde mich im vierten Semester, derzeit belege ich Info 4 und Propra 1.
    
    Ich hatte nie in der Schule informatik aber dennoch habe ich mich dafür stark interesiert vorallem im Ki-Bereich.

    Meine Interessen sind Boxen, Fitness und Musik etc.

    | Mein Ziel ist es die Zulassung für propra zu bekommen ebenfalls möchte ich meinen Master in Ki machen.
    |===
    
    
    
    Bsp : für Korrektor
    |===
    |Name | Hintergrund | Ziel

    a| image::Rudolf.png[]

    [quote, Rudolf Bumi (27)]
    Ich freue mich so sehr im Auas 2.0 die neuen Abgaben zu korrigieren und den Studenten zu helfen.

    | Ich bin Doktorand und schreibe meine Doktorarbeit in Compilerbau
    
    Meine Interesse sind Programmieren, Feiern und chillen.

    Meine Motivation fürs Studium war, dass ich besondere Neigung zu mathematischen Sachverhalte habe.

    | Mein Ziel ist es den Leuten zu helfen, die im Studium Probleme haben mit den Aufgaben.
    |===
    
    
denkt ihr dass das reicht?

ist alles in ascidoc geschrieben
```


----------



## AndiE (5. Mai 2019)

Ich denke, das ist ein halber Kilometer am Ziel vorbei.

So wie ich das verstanden habe, geht es um ein Produkt( einem Abgabe und Ablegesystem für Hausaufgaben), dass von mehreren Nutzergruppen benutzt wird- Studierenden und Korrektoren.

Nun sollst du zwei Persona erstellen, die diese Nutzergruppen lebhaft machen.

Der Persona Studierende steht also für den BWL-Studenten ebenso wie für die KI-Studentin, den ET-Studenten usw.

Ebenso bei den Korrektoren.

Hintergrund wäre für mich eher zu sehen, wie sieht deren Arbeitsalltag derzeit aus( Ist-) und als Ziel, was soll das neue System für sie bringen(Soll).

Evtl. solltest du dir tatsächlich mal klarmachen, wie so ein System funktionieren könnte- Stichpunkt Swimlane.


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> so ich habe meine lösung hier für die aufgabe 1


Alles bis "Bsp : Studierender:" ist überflüssig. Du sollst einfach nur zwei Personas schreiben, nicht erklären, wie man die schreibt.
Du sollst ja auch nicht beschreiben, wie man Kartoffeln züchtet, wenn du einkaufen gehen sollst...


Die erste Persona finde ich etwas unglücklich, grad das "Zitat" würde ich da so nicht sehen - er ist Nutzer des Systems, nicht der Programmierer.
Die zweite sieht schon besser aus.



AndiE hat gesagt.:


> Ich denke, das ist ein halber Kilometer am Ziel vorbei.
> [...]
> Nun sollst du zwei Persona erstellen, die diese Nutzergruppen lebhaft machen.
> 
> ...


Ne, das, was er gemacht hat, sind schon Personas.

Personas sind nicht abstrakt gehalten, es gibt also keinen Persona "Studierende", der mehrere Studenten umfasst.
Personas sind ganz konkrete Personen, in diesem Fall dann ein konkreter Student und ein konkreter Korrektor.


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Alles bis "Bsp : Studierender:" ist überflüssig. Du sollst einfach nur zwei Personas schreiben, nicht erklären, wie man die schreibt.
> Du sollst ja auch nicht beschreiben, wie man Kartoffeln züchtet, wenn du einkaufen gehen sollst...
> 
> 
> ...


ich habe andere Beispiele gemacht und mich auf die aufgabe eher bezogen ich zeige das mal,

```
== Aufgabe 1: Personas
#### Lösung
Zu aller erst muss man erklären wie man generell Personas entwickelt und dazu gibt es folgende Schritte an die man sich halten muss.
Zu aller erst ist es wichtig dass man versteht was ein Personas ist, darunter versteht man eine Mensch-Comeputer-Interaktion, die einen Prototyp für eine Nutzergruppe darstellt.
Im folgenden werde ich erläutern wie man ein Persona herstellt.

* Als ersten Schritt muss man recherchieren bzw man muss Informationen sammeln wofür die Personas gebraucht werden. In dem Falle brauchen wir Personas für ein Abgabesystem
* und dies beinhaltet folgende Nutzergruppen wie Korrektor, Organisator und Studierende. Es ist wichtg dabei zu beachten wie viele Persona man braucht daher ist die Recherche so notwendig.
    
    
* Nachdem man genung Informationen gesammelt hat, muss man demographsiche Informationen zu den Personas bzgl. ihrer Tätigkeit im Privatem und ihre Tätigkeit für das Abgabesystem hinzufügen.
* Anbei angefügt wäre es passend wenn man ein Foto vom jeweiligen Persona zur Verfügung stellt. Man sollte in dem Fall nur angeben das Alter, Name, Geschlecht und in welcher Semester man sich befindet vielleicht wäre es hier sogar sinnvoll wenn man erwähnt zu welcher Nutzergruppe man gehört ob man Studierender oder Korrektor ist.
    
    
* Nachde man die basic-Informationen über die Personas preisgegeben hat, muss man nun persöhnliche Interessen und Tätigkeiten auch background genannt erwähnen, am besten wäre es wenn man angeben könne was man im privatem gerne macht und seine Leidenschaften erläutert bzgl unserer Nutzergruppen könne man erwähnen wie einem das Studium fällt ider welche Moduel besonders spaßig sind.
    
    
* Als vierten Schritt wäre es essentiel die Ziele und die Motivation jeweiliger Nutzergruppen anzugeben, hier wäre es beduetsam bezüglich sich auf das Studium zu beziehen, bzw was man nachdem Bachelor oder Master machen möchte etc.
    
    
    
    
Anschließend zeige ich zwei Beispiele für die Nutzergruppen Studierender und Korrektor:
* Bsp Studierender
    
|===
|Name | Hintergrund | Aufgabe

a| image::Akin.png[]

[quote, Akin Wahr (28)]
Ich bin so motiviert ein neues Abgabesystem zu programmieren.

| Ich studiere Informatik im vierten Semester und belege propra1. Ich finde die Aufgabe sehr spaßig.

In der Schule hatte ich kein Informatik daher muss ich einiges nachholen aber mein Anreiz treibt mich voran.

Meine Interessen sind programmieren, Fitness und Boxen, vorallem interesiiere ich mich für Ki.

Ich möchte ein neues Abgabesystem programmieren wo wir unabhängig sind von allen außerdem will ich korrekte Abgaben machen.
| Meine Aufgabe ist es Module und Übungen zu belegen und die Hausaufgaben fristgerecht abzugeben.
|===
    
    

* Bsp Korrektor

|===
|Name | Hintergrund | Aufgabe

a| image::Sami.png[]

[quote, Sami Wur (27)]
Ich bin ein Korrektor in propra 1 und freue mich auf die Abgaben und auf das neue Abgabesystem.

| Ich bin Doktorand im Bereich Deep Learning und will nach meiner Doktorarbeit in ein Groß-Unternehmen.

In der Schule hatte ich Informatik und zuhause war ich viele Bücher lesen über Ai und Complierbau etc.

Meine Interessen sind Zocken, Spazieren gehen, Leuten zu helfen und Webseiten zu designen.

Ich finde, dass sich das Auas System komplett ändern muss.
| Meine Aufgabe ist es die Abgaben zugewiesen zu bekommen und diese zu bewerten und meinen Kommilitionen zu helfen in progra1.
|===
```

ich kann es aber dennoch so stehen lassen wie man personas herstellt, ich meine es gibt ja keine Minuspunkte. 
Ist es so besser?


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> ich habe andere Beispiele gemacht und mich auf die aufgabe eher bezogen ich zeige das mal,


Den einzigen genannten Kritikpunkt hast du genauso übernommen und es insgesamt eher schlechter gemacht....Glückwunsch.



Heyoka955 hat gesagt.:


> ich kann es aber dennoch so stehen lassen wie man personas herstellt, ich meine es gibt ja keine Minuspunkte.


Ob es Minuspunkte gibt, kommt auf das Bewertungsschema an. Ich würde mich dafür einsetzen, dass es dafür Abzüge gibt.

Wenn du schon irgendwas beliebiges reinschreibst, schreib wenigstens irgendwelche coolen Funfacts oder 'n leckeres Rezept rein, davon hat der Korrektor sicher mehr...



Heyoka955 hat gesagt.:


> Ist es so besser?


Nein, schlechter.


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Den einzigen genannten Kritikpunkt hast du genauso übernommen und es insgesamt eher schlechter gemacht....Glückwunsch.
> 
> 
> Ob es Minuspunkte gibt, kommt auf das Bewertungsschema an. Ich würde mich dafür einsetzen, dass es dafür Abzüge gibt.
> ...


achso ja, kann ich umändern, ich meine ist halt nur ein kleiner fehler. Ansonsten ist alles top. ich änder das um jetzt muss ich die zweite aufgabe bearbeiten, ich hatte überlegt an uml diagram zu basteln?

Eine Kernkomponente der Software wird ein Abgabesystem werden. Ein Workflow in dem Abgabesystem ist:


Studierende laden die Aufgabenbeschreibung herunter und bearbeiten die Aufgaben.
Studierende laden die Lösungen in das Abgabesystem hoch.
Organisatoren starten manuell die faire Verteilung von Abgaben auf Korrektoren.
Organisatoren laden Nachzügler hoch, wenn aus gutem Grund die Abgabefrist verpasst wurde.
Korrektoren bewerten die Abgaben.
Studierende können Ihre Resultate einsehen.

Entwickeln Sie Komponenten, die den Arbeitsfluss implementieren können. Beachten Sie dabei die Konzepte, die Sie in der Vorlesung gelernt haben, insbesondere das Prinzip des Information Hidings nach Parnas. Welche Entscheidungen könnten sich möglicherweise noch ändern? Kapseln Sie diese Entscheidungen in Komponenten.

Beschreiben Sie für jede Komponente die Aufgabe, die die Komponente erfüllt und erklären Sie die Schnittstellen der einzelnen Komponenten. Erklären Sie, warum die Komponente benötigt wird und welche Entscheidung ggf. durch sie gekapselt wird. Erläutern Sie, wie der Workflow mit Ihren Komponenten funktioniert. *Sie brauchen keinen Code zu schreiben!*


ImportantBei der Bewertung der Aufgabe werden wir darauf achten, dass die Aufteilung in die Komponenten schlüssig erklärt wird und sich der Workflow tatsächlich wie beschrieben realisieren ließe. Wir werden auf die Verständlichkeit des Textes achten (inkl. Rechtschreibung und Grammatik). Der Text soll eine klare Linie haben und nicht "schwafeln". Eine stichpunktartige Auflistung reicht uns *nicht* aus.


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> achso ja, kann ich umändern, ich meine ist halt nur ein kleiner fehler. Ansonsten ist alles top.


Wenn du meinst...




Heyoka955 hat gesagt.:


> jetzt muss ich die zweite aufgabe bearbeiten, ich hatte überlegt an uml diagram zu basteln?


Du hast aber die Hinweise zur Aufgabe schon gelesen?!?


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Wenn du meinst...
> 
> 
> 
> Du hast aber die Hinweise zur Aufgabe schon gelesen?!?


dass soll alles schlüssig sein das heißt Wir sollten das Solid Prinzip anwenden sowie eine gute Verkapselung. da steht ja auch kein code. Ansonsten weiß ich nicht was ich astelle machen soll.


----------



## mrBrown (5. Mai 2019)

Du machst das Studium doch als "richtiger" Student und guckst dir nicht einfach ein paar Vorlesungen neben der Grundschule an? 




Heyoka955 hat gesagt.:


> Verständlichkeit des *Textes* [...] Der *Text* [...] stichpunktartige Auflistung reicht uns nicht aus


Auf was für ein Abgabeformat könnte das wohl hindeuten?


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Du machst das Studium doch als "richtiger" Student und guckst dir nicht einfach ein paar Vorlesungen neben der Grundschule an?
> 
> 
> 
> Auf was für ein Abgabeformat könnte das wohl hindeuten?


als text aber ich kann doch vorarbeiten mit einem uml Diagramm udn dann den als text schreiben?


----------



## mrBrown (5. Mai 2019)

Du kannst auch mit Förmchen im Sandkasten vorarbeiten...


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Du kannst auch mit Förmchen im Sandkasten vorarbeiten...


Meine Idee ist es ein interface zu schreiben, public interface Hochladen mit der Methode hochladen und dieses interface wird implementiert von Studierender und und Organisator, da in der aufgabe steht das beide nutzergruppen diese hochladen können, aber ich habe ebenfalls das interface erweitert mit herunterladen, denn es wäre ja Vorteil hafter wenn auch der Organisator von der seite aus die aufgaben herunterladen kann.

Nachdem ich dieses interface implementiert habe wollte ich erstmal zwei Klassen schreiben wie Student und Organisator, die das interface implementieren und in den Klassen existieren flgende Methoden zbs student hat zwei Methoden wie +ansehen und bearbeiten und Organisator hat folgende Methoden wie die Verteilung der Aufgaben.

Danach wollte ich eine klasse schreiben korrektor und die hat eine Methode namens aufgabe bewerten aber hier habe ich das problem dass ich nicht weiß wie die Beziehung sein soll zwischen korrektor und den anderen klassen

so sieht mein uml aus


----------



## mrBrown (5. Mai 2019)

Schmeiß alles weg was du hast, vergiss das alles, und fang noch mal von Vorne an.


----------



## Javinner (5. Mai 2019)

mrBrown hat gesagt.:


> Schmeiß alles weg was du hast, vergiss das alles, und fang noch mal von Vorne an.


Ich konnte nicht widerstehen


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Schmeiß alles weg was du hast, vergiss das alles, und fang noch mal von Vorne an.


mit der zweiten aufgab oder wie? schau ich habe mein uml hochgeladen?


----------



## mrBrown (5. Mai 2019)

Ja was soll ich denn sonst meinen?


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Ja was soll ich denn sonst meinen?


dachte die erste aufgabe? wie soll ich denn da rangehen? für die aufgabe 2


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> dachte die erste aufgabe?


Die solltest du verbrennen, zumindest den ersten Teil.



Heyoka955 hat gesagt.:


> wie soll ich denn da rangehen? für die aufgabe 2


Du wirst doch in den letzten Vorlesungen irgendetwas gelernt haben?


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Die solltest du verbrennen, zumindest den ersten Teil.
> 
> 
> Du wirst doch in den letzten Vorlesungen irgendetwas gelernt haben?


der prof macht nur memes hahaha


----------



## mrBrown (5. Mai 2019)

Dann passt das Niveau ja hahaha


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Dann passt das Niveau ja hahaha


hahahhhhahah ne der macht atürlich gute Infos aber ich weiß ja was information hding ist, ist ja nur datenkapselung.
aber dann war mein ansatz mit der uml richtig?


----------



## mihe7 (5. Mai 2019)

Heyoka955 hat gesagt.:


> der macht atürlich gute Infos aber ich weiß ja was information hding ist


Die Hälfte der Buchstaben im Post wegzulassen?


----------



## Heyoka955 (5. Mai 2019)

mihe7 hat gesagt.:


> Die Hälfte der Buchstaben im Post wegzulassen?


lol


----------



## AndiE (5. Mai 2019)

mrBrown hat gesagt.:


> Ne, das, was er gemacht hat, sind schon Personas.
> 
> Personas sind nicht abstrakt gehalten, es gibt also keinen Persona "Studierende", der mehrere Studenten umfasst.
> Personas sind ganz konkrete Personen, in diesem Fall dann ein konkreter Student und ein konkreter Korrektor.



Das mögen formal gesehen Personas sein. 

In der Aufgabe steht aber, dass diese Personas beispielgebend für den Personenkreis sein, für den sie stehen. Und angelegt werden, weil man damit die Software aus Nutzersicht betrachten will. Und das kann ich beides nicht an den Personas erkennen.


----------



## mrBrown (5. Mai 2019)

AndiE hat gesagt.:


> Das mögen formal gesehen Personas sein.
> 
> In der Aufgabe steht aber, dass diese Personas beispielgebend für den Personenkreis sein, für den sie stehen. Und angelegt werden, weil man damit die Software aus Nutzersicht betrachten will. Und das kann ich beides nicht an den Personas erkennen.


Guck dir das Beispiel in der Aufgabe an.


Wenn ich über „Tom, 25 Jahre, Informatikstudent mit Hobbys XY“ schreibe, ist das ein Beispiel für einen Studenten und aus dessen Sicht kann man die Software betrachten.


Wenn da Stände „Student, 18-27 Jahre, Studiert ein Studienfach“ ist das weder ein Beispiel für Studenten, noch kann man aus dessen Sicht irgendwas machen.


Analog mit was völlig anderem: wenn du eine Beispielhafte Zahl aus N nennen sollst, nennst du auch eine konkrete Zahl (42 ist eine natürliche Zahl) und sagst nicht „eine ganze Zahl über 0“ ist ein Beispiel für einen natürliche Zahl“.


----------



## Heyoka955 (5. Mai 2019)

also zu aufgabe 2, ich glaube was damit gemeint ist, dass man den workflow realisieren soll.

Bsp so

Aufgaben werden hochgeladen vom Organisator --> Aufgaben werden heruntergeladen vom Studenten ---> Aufgaben werden bearbeitet --- > Gespeichert ---> Verteilt --> Korrigiert

ist vllt damit gemeint? wie der Prozess sein soll?


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> Bsp so
> 
> Aufgaben werden hochgeladen vom Organisator --> Aufgaben werden heruntergeladen vom Studenten ---> Aufgaben werden bearbeitet --- > Gespeichert ---> Verteilt --> Korrigiert
> 
> ist vllt damit gemeint? wie der Prozess sein soll?


Ne, das ist sicherlich nicht gemeint.


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Ne, das ist sicherlich nicht gemeint.


dann habe ich keine Ahnung mehr,


----------



## AndiE (5. Mai 2019)

@mrBrown: Dann werde ich mal konkret. Das Aufgabeablagesystem wird von vielen Studenten verschiedener Fachbereiche genutzt. Wie allgemeingültig ist da "ich will ein neues System programmieren", wie es der TE anbietet? 

Da er das aber nicht richtig durchdacht hat, kommt er bei der zweiten etwas ins Schwimmen.


----------



## mrBrown (5. Mai 2019)

AndiE hat gesagt.:


> @mrBrown: Dann werde ich mal konkret. Das Aufgabeablagesystem wird von vielen Studenten verschiedener Fachbereiche genutzt. Wie allgemeingültig ist da "ich will ein neues System programmieren", wie es der TE anbietet?


Die Interessen (EDIT: gemeint ist Beschreibung und andere Angaben, die nicht das Ziel des Projekts beschreiben, sonder der Identifizierung mit der Person dienen, zb Name und "spielt Basketball") der Personen in Personas sind nicht "allgemeingültig", am wenigsten das Zitat. Die sollen durchaus ganz konkret sein, so wie auch "ich will ein neues System programmieren" konkret ist. Das dieses eine Zitat in diesem Kontext wie von mir schon gesagt sehr unglücklich ist, liegt nicht daran, dass es zu konkret und zu wenig allgemeingültig ist.

Das Problem ist, dass es keine Aussage eines studentischen Nutzers ist - dieser eine Studenten baut eben nicht das System, und kann sich daher auch nicht drauf freuen.
Die Aussage aus dem Beispiel ("In meine BA baue ich denen mal ein vernünftiges Abgabesystem") ist nicht weniger konkret, hat aber das Problem, dass es gar nicht möglich ist, nicht mehr - dass kann nämlich durchaus ein gewünschtes BA-Thema seitens des Studenten sein, ob er dafür einen Betreuer findet ist eine andere Frage.



AndiE hat gesagt.:


> Da er das aber nicht richtig durchdacht hat, kommt er bei der zweiten etwas ins Schwimmen.


Ne, dass liegt an vielem, aber sicher nicht daran, dass man dafür Personas bräuchte.


----------



## AndiE (5. Mai 2019)

Heyoka955 hat gesagt.:


> dann habe ich keine Ahnung mehr,


Du hast aber schon mal nachgegoogelt, was eine Komponente im Softwarebereich ist und wie die aufgebaut ist? Unter "component based software engineering sample " kann man sich auch Beispiele zeigen lassen.


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> dann habe ich keine Ahnung mehr,


Wenn die Aufgabe das Entwerfen von benötigten Komponenten fordert, was könnte dann wohl die Aufgabe sein:
1. Den Prozess aufzeichnen
2. Die Komponenten entwerfen

(Hint: 1 war dein letzter Versuch)


----------



## Heyoka955 (5. Mai 2019)

Eien Komponente kann auch eine Klasse sein oder Gruppe etc.

Komponenten entwerfen aber habe ich das im uml nicht gemacht ?


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> Eien Komponente kann auch eine Klasse sein oder Gruppe etc.
> 
> Komponenten entwerfen aber habe ich das im uml nicht gemacht ?


Ja, aber die Komponenten waren halt scheiße.


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Ja, aber die Komponenten waren halt scheiße.


Worauf kommt es an ob es gute Komponente sind ?


----------



## mrBrown (5. Mai 2019)

Heyoka955 hat gesagt.:


> Worauf kommt es an ob es gute Komponente sind ?


Hast du denn schon irgendeine Erklärung gefunden, was eine Komponente ist?


----------



## Heyoka955 (5. Mai 2019)

mrBrown hat gesagt.:


> Hast du denn schon irgendeine Erklärung gefunden, was eine Komponente ist?


Mein Dozent meinte eine Klasse oder Gruppe !


----------



## mrBrown (5. Mai 2019)

Sicher, dass die einzige Definition von Komponente "eine Klasse oder Gruppe" ist?


----------



## Heyoka955 (6. Mai 2019)

mrBrown hat gesagt.:


> Sicher, dass die einzige Definition von Komponente "eine Klasse oder Gruppe" ist?


Ich kenne keine aber schaue mich um. Aber denke interfaces auch etc


----------



## Heyoka955 (6. Mai 2019)

Komponenten sind Klassen,
Bzw man verwendet die Bezeichnung Komponente wenn man mehrere Klassen hat.

Diese Klassen werden jeweils zu einem Komponent.
Am besten wäre es wenn diese sogar zusammen hängen sein können.

In unserem Beispiel könnte man drei Komponenten Bilder und in jedem Komponenten befinden sich mehrere Klassen zbs 

Komponente können sein Studierender und in dieser Komponenten kann man mehrere Klassen bilden wie zbs Studierenderbearbeiten studierenderansehen 
Und dies kann man auch für  Korrektor machen und Organisator. 
Das heißt wir machen mehrere Klassen und diese bezeichnen wir als Komponente!


----------



## Blender3D (6. Mai 2019)

https://de.wikipedia.org/wiki/Enterprise_JavaBeans


----------



## Heyoka955 (6. Mai 2019)

Blender3D hat gesagt.:


> https://de.wikipedia.org/wiki/Enterprise_JavaBeans


Eine Komponente ist im Kontext der Softwarearchitektur ein Teil einer Software, der mit anderen Softwareteilen gemäß den Regeln eines Komponentenmodells zusammenwirken kann.


----------



## Heyoka955 (6. Mai 2019)

Ich habe ein Komponenten Diagramm gebastelt.


----------



## Heyoka955 (6. Mai 2019)

Heyoka955 hat gesagt.:


> Ich habe ein Komponenten Diagramm gebastelt.


Hier ich habe es verbessert


----------



## thecain (6. Mai 2019)

Gut verschlüsselt!


----------



## Heyoka955 (6. Mai 2019)

thecain hat gesagt.:


> Gut verschlüsselt!


Was ?


----------



## kneitzel (6. Mai 2019)

Ich denke, er hat das gleiche Problem wie ich. Ich wollte schon antworten:

Gut, dass ich Deine Schrift nicht lesen kann, sonst müsste ich da jetzt noch im Detail drüber nachdenken.


----------



## Heyoka955 (6. Mai 2019)

kneitzel hat gesagt.:


> Ich denke, er hat das gleiche Problem wie ich. Ich wollte schon antworten:
> 
> Gut, dass ich Deine Schrift nicht lesen kann, sonst müsste ich da jetzt noch im Detail drüber nachdenken.


Hier schöner geschrieben !


----------



## mihe7 (6. Mai 2019)

Ach, "Hochladen" heißt das - ich hatte irgendwas mit Gulasch gelesen.


----------



## mihe7 (6. Mai 2019)

Mal in "schön":


----------



## Heyoka955 (6. Mai 2019)

mihe7 hat gesagt.:


> Mal in "schön":
> 
> Anhang anzeigen 11807


Sitze in der Uni habe kein Laptop zur Verfügung. Ist diese Idee richtig zur Beantwortung der Frage ,


----------



## mihe7 (6. Mai 2019)

Heyoka955 hat gesagt.:


> Ist diese Idee richtig zur Beantwortung der Frage ,


Das kann ich Dir nicht sagen, denn immer, wenn ich Dir inhaltlich antworten will, habe ich seit kurzem plötzlich auftretende Denk- und Schreibblockaden. Schlimm ist das.


----------



## Heyoka955 (6. Mai 2019)

mihe7 hat gesagt.:


> Das kann ich Dir nicht sagen, denn immer, wenn ich Dir inhaltlich antworten will, habe ich seit kurzem plötzlich auftretende Denk- und Schreibblockaden. Schlimm ist das.



Sorry


----------



## kneitzel (6. Mai 2019)

mihe7 hat gesagt.:


> Das kann ich Dir nicht sagen, denn immer, wenn ich Dir inhaltlich antworten will, habe ich seit kurzem plötzlich auftretende Denk- und Schreibblockaden. Schlimm ist das.


Das ist ganz schlimm. So schaffen wir die #500 nicht ... Das ist wirklich kaum zu verantworten! 



Heyoka955 hat gesagt.:


> Sitze in der Uni habe kein Laptop zur Verfügung. Ist diese Idee richtig zur Beantwortung der Frage ,


Meinst Du denn, dass Du die Aufgabenstellung richtig verstanden hast? Oder hast Du Probleme mit dem Verständnis?
Wenn Du die Aufgabe verstanden hast: Hast Du den Lösungsweg verstanden? Gibt es fachlich Dinge diesbezüglich, die Du nicht verstanden hast?
Wenn Du in dem Bereich meinst, dass Du ein genaues Verständnis von der Aufgabe, den notwendigen fachlichen Dingen und dem Lösungsweg:
Dann kannst Du selbst schauen, ob Deine Lösung eine Lösung für die genannte Aufgabe ist.


----------



## Heyoka955 (6. Mai 2019)

kneitzel hat gesagt.:


> Das ist ganz schlimm. So schaffen wir die #500 nicht ... Das ist wirklich kaum zu verantworten!
> 
> 
> Meinst Du denn, dass Du die Aufgabenstellung richtig verstanden hast? Oder hast Du Probleme mit dem Verständnis?
> ...


Ich habe die Aufgabe nicht wirklich verstanden.
Ich habe gedacht wir sollen ein Diagramm anfertigen.


----------



## mihe7 (6. Mai 2019)

kneitzel hat gesagt.:


> Das ist ganz schlimm. So schaffen wir die #500 nicht ... Das ist wirklich kaum zu verantworten!


Ja, tut mir auch echt leid. Vermutlich ist das der Schock, den ich zu Beginn dieses Threads erlitt, da nach nur einer Seite nichts mehr kam. Ich meine, das muss man erst mal verkraften. Mein gesamtes Weltbild drohte einzustürzen. Panik machte sich breit, ich konnte hier nur noch mit schwitzenden Händen tippen. Aber, Gott sei Dank, kam nach ein paar Tagen doch noch die Erlösung.


----------



## AndiE (6. Mai 2019)

Heyoka955 hat gesagt.:


> Ich habe die Aufgabe nicht wirklich verstanden.
> Ich habe gedacht wir sollen ein Diagramm anfertigen.


Du sollst Komponenten angeben. Wenn du nicht weißt, was das ist, und wie die funktionieren, könnte etwas experimentieren helfen. 

Nimm dir eine einfach Klasse, z.B. "Name", die einen Namen speichert. Wie würde das Interface dazu aussehen? Welchen Vorteil hat es, mit dieser Klasse über dieses Interface zu kommunizieren? Nun kann man sagen, so eine Klasse mit einem Interface ist eine Komponente. Da sich das Interface anbietet, ist es ein "Lollypop". Um dies zu Nutzen benötigen die anderen Komponenten offensichtlich grafisch "Sockets", oder müssen dieses Interface implementieren. Im einfachsten Fall also die main-Methode das Interface IName, um auf Inhalte der Klasse "Name" zugreifen zu können.


----------



## Heyoka955 (6. Mai 2019)

AndiE hat gesagt.:


> Du sollst Komponenten angeben. Wenn du nicht weißt, was das ist, und wie die funktionieren, könnte etwas experimentieren helfen.
> 
> Nimm dir eine einfach Klasse, z.B. "Name", die einen Namen speichert. Wie würde das Interface dazu aussehen? Welchen Vorteil hat es, mit dieser Klasse über dieses Interface zu kommunizieren? Nun kann man sagen, so eine Klasse mit einem Interface ist eine Komponente. Da sich das Interface anbietet, ist es ein "Lollypop". Um dies zu Nutzen benötigen die anderen Komponenten offensichtlich grafisch "Sockets", oder müssen dieses Interface implementieren. Im einfachsten Fall also die main-Methode das Interface IName, um auf Inhalte der Klasse "Name" zugreifen zu können.


Also könnte man eine
Komponente bilden namens hochladen und in dieser Komponente existiert ein Interface hochladen und dieses Interface wird dann für Studierender und Organisatior Verwendet? 
Das wäre ein Beispiel ?


----------



## mihe7 (6. Mai 2019)

Guckst Du hier: https://de.wikipedia.org/wiki/Komponente_(UML)


----------



## Heyoka955 (6. Mai 2019)

mihe7 hat gesagt.:


> Guckst Du hier: https://de.wikipedia.org/wiki/Komponente_(UML)


Jo da habe ich verstanden aber ich weiß immernoch nicht was die Frage will bzw ob meine Lösung richtig ist


----------



## AndiE (6. Mai 2019)

Eine Komponente ist wie eine Klasse ein Kommunikationsobjekt. Daher wird es mit einem Substantiv bezeichnet: Customer, Person, Item usw. am besten natürlich in Englisch, oder in Deutsch ohne Umlaute (ÄÖÜ). Offensichtlich hat das Interface meist im Namen einen Bezug zu dieser Komponente (IPerson). In so einem Interface befinden sich eine Anzahl Methoden, die man typischerweise mit Verben(Tätigkeitswörtern) oder im CamelCase bezeichnet(HoseAnziehen).

Überprüfe deinen Entwurf mal danach.


----------



## mrBrown (6. Mai 2019)

AndiE hat gesagt.:


> IPerson


Das 'I' steht übrigens für Igitt.


----------



## Heyoka955 (6. Mai 2019)

mihe7 hat gesagt.:


> Mal in "schön":
> 
> Anhang anzeigen 11807


Du meinst die Zeichnung oder ?

Es ist nur wichtig wie unsere Komponenten den Workflow des Prozesses abbilden können und dass die Komponenten gut gekapselt sind.


----------



## mihe7 (6. Mai 2019)

Heyoka955 hat gesagt.:


> Du meinst die Zeichnung oder ?


Ja, damit andere nicht erst Dein Geschmier Kunstwerk öffnen müssen.


----------



## Heyoka955 (6. Mai 2019)

mihe7 hat gesagt.:


> Ja, damit andere nicht erst Dein Geschmier Kunstwerk öffnen müssen.


Ich anders das um nach dem Essen aber geht das in die richtige Richtung


----------



## Heyoka955 (6. Mai 2019)

bitteschön also habe mich auf die Aufgabenstellung und kernkomponennte bezogen


----------



## Heyoka955 (7. Mai 2019)

Ich ahbe es umgeändert ich denke so ist es jetzt richtig.
Ich habe drei Komponente Student Verwaltung und Korrektor.
Jedes dieser Komponenten behobeltet mindestens ein Interface und diese interfaces werden von den Klassen jeweils implementiert und seine Methoden des interfaces.

Zbs komponent Student beinhaltet drei interfaces namens IStdHochladen mit der Methode hochladen dann haben IStdAnsehen mit der Methode ansehen und IStdBearbeitet mit der passenden Methode und zu den drei interfaces werden drei Klassen implementiert mit den privaten Methoden.
Anhand der
Pfeile sieht man auch den Workflow.
Als erstes lädt der Student seine Aufgabe runter nachdem er die Abgabe hochgeladen hat,
Wird wird Kompoenenntr verwaltung  aufgerufen und dieser gibt die Zuweisung an die jeweiligen Korrektoren  und der Korrektor bewertet die und gibt die zum Studenten zurück.

Der Grund wieso ich das so abgespalten habe ist weil ich mich an das SOLID prinzip halten wollte.


----------



## AndiE (7. Mai 2019)

Ich habe drei Aktoren: Student, Verwaltung, Korrektor. Wo docken diese bei deinem Bild an? Was ist übrigens mit der Aufgabe und der Anzahl der Lösungen?

Wo beginnt der Workflow? Beim Studenten, wenn er die Aufgabe runterlädt?


----------



## Heyoka955 (7. Mai 2019)

AndiE hat gesagt.:


> Ich habe drei Aktoren: Student, Verwaltung, Korrektor. Wo docken diese bei deinem Bild an? Was ist übrigens mit der Aufgabe und der Anzahl der Lösungen?
> 
> Wo beginnt der Workflow? Beim Studenten, wenn er die Aufgabe runterlädt?


Beim Studenten wenn er die Abgabe runterladt ?

Was meinst du mit docken und Anzahl der Lösungen ?


----------



## Heyoka955 (7. Mai 2019)

Heyoka955 hat gesagt.:


> Beim Studenten wenn er die Abgabe runterladt ?
> 
> Was meinst du mit docken und Anzahl der Lösungen ?


Also Verwaltung kann hochladen wenn der Student die Abgabe vergaß und zuweisen an die Korrektoren.
Verwaltung = Organisator 

Und Korrektor korrigiert die jeweiligen Abgaben.
Ich habe zu allen Aufgabenbereichen und Komponenten Interface implementiert zur Abstraktion.

Denke das müsste fast richtig sein


----------



## AndiE (7. Mai 2019)

Du hast den Workflow nicht verstanden:

Prof. Meier erstellt eine Aufgabe. Diese stellt er über das System den Studenten bereit. Einer davon, Max, schaut sich die Aufgabenstellung an und erstellt eine Lösung. Max gibt diese Lösung ab. Prof. Meier sammelt die Lösungen seiner Studenten und verteilt diese an die Korrektoren. Dr. Paul ist einer von ihnen. Er wertet die zugewiesenen Arbeiten aus und trägt die Bewertungen in das System ein. Prof. Meier liest die Bewertungen gegen und gibt die Bewertung an die Studenten weiter. Der gesamte Vorgang wird von ihm archiviert.

So wäre die Use-Story zu dem Beispiel. Meist, aber nicht immer, greifen die Beteiligten über entsprechende Grafische Nutzeroberflächen, auch Graphical User Interfaces zu. Da haben wir wieder das böse I-Wort. Diese Interfaces muss das System und dessen Komponenten bereitstellen, oder erwarten. 

Was ich bewusst vergessen habe, sind Entscheidungen, die in den einzelnen Punkten getroffen werden. Die sollen ja auch eingefügt werden.


----------



## kneitzel (7. Mai 2019)

@AndiE Dich hat er bald soweit, dass Du die Lösung postest, damit das Grauen ein Ende hat 

@Heyoka955 Du tust mir wirklich leid. Als ich früher studiert habe, da gab es Vorlesungen, in denen Professoren / Dozenten ein Thema vermittelt haben. Dabei wurde auf Lehrmaterialien hingewiesen. Und es gab Übungen, in denen der Stoff dann über die Anwendung vertieft wurde.... Das waren noch Zeiten .... Heute bekommt man ganz offensichtlich nur noch die Aufgaben die man dann ohne irgendwelche Wissensvermittlung vorher lösen muss ...

Also wenn Du denkst: "das müsste fast richtig sein" - Dann denkt noch einmal drüber nach!
a) Außerhalb der Prüfung: Wie kannst Du feststellen, ob es richtig ist? Wo kannst Du nachlesen? Was fehlt Dir um sicher zu sein?
b) In der Prüfung: denk  noch einmal drüber nach, wenn es die Zeit zulässt. Wenn Du meinst, dass es richtig ist: Ok. Wenn Du meinst, dass es falsch ist: Wieso? Was wäre deine Erwartungshaltung? Wenn es offensichtlich falsch ist: Schreib auf, wieso! Das kann Dir ggf. auch noch einen Punkt einbringen, weil der Prof / Dozent da erkennen kann, dass Du doch etwas verstanden hast. Das ist besonders dann wichtig, wenn du eigentlich durchgefallen bist und der Prof schaut, ob er die evtl. nur fehlenden 1 oder 2 Punkte noch irgendwo finden kann.

Also b ist vor allem in Mathe wichtig. Ein dummer Rechenfehler, den man auf Anhieb nicht findet und man kommt zu einem Ergebnis, das nicht stimmen kann. (Die 5m lange Leite, die in einem 60 Grad Winkel an eine Mauer gelehnt wurde, trifft die Mauer nicht in 7,1 m Höhe ... Sollte man dann kurz schreiben. Zumindest bei uns war der GMV, der Gesunde Menschen Verstand, immer wichtig und konnte von einer Aufgabe mit mehreren Punkten durchaus noch einen Punkt retten!)

Aber was rede ich ... ich habe ja schon erkannt, dass meine Uni Zeit (aus dem letzten Jahrtausend!) nicht auf die heutige, moderne Welt angewendet werden kann .....


----------



## Heyoka955 (7. Mai 2019)

AndiE hat gesagt.:


> Du hast den Workflow nicht verstanden:
> 
> Prof. Meier erstellt eine Aufgabe. Diese stellt er über das System den Studenten bereit. Einer davon, Max, schaut sich die Aufgabenstellung an und erstellt eine Lösung. Max gibt diese Lösung ab. Prof. Meier sammelt die Lösungen seiner Studenten und verteilt diese an die Korrektoren. Dr. Paul ist einer von ihnen. Er wertet die zugewiesenen Arbeiten aus und trägt die Bewertungen in das System ein. Prof. Meier liest die Bewertungen gegen und gibt die Bewertung an die Studenten weiter. Der gesamte Vorgang wird von ihm archiviert.
> 
> ...


Für mein work Flow wäre dies so;

Die Aufgabe wird runter geladen vom Studenten, die Aufgabe wird bearbeitet und anschließend hochgeladen.
Die Verwaltung sorgt dazu dass die Abgabe auf die jeweilige Korrektor verteilt wird und nachdem sie verteilt wird, korrigiert der Korrektor die Abgabe und anschließend kann der Student die Abgabe ansehen.


----------



## flopalko (7. Mai 2019)

Heyoka955 hat gesagt.:


> Beim Studenten wenn er die Abgabe runterladt ?


Wieder geht es mal um das ewig leidige Thema mit dir: deine Rechtschreibung. Meinst du damit jetzt, dass du es so siehst oder stellt du genau die gleiche Frage, die dir gestellt wurde, zurück?

Bemühe dich wirklich mal mit deiner Rechtschreibung, in 90% der Fälle versteht niemand, was du eigentlich brauchst. Komm jetzt auch nicht wieder mit deiner Ausrede, dass du zu schnell schreibst. Ich schreibe auch schnell und schaffe es dabei verständliche und richtige Sätze zu konstruieren. Außerdem: dann musst du halt langsamer schreiben, wenn dir das hilft. Merkregel: Schreibe immer langsamer als (oder maximal gleich schnell wie) du auch denken kannst.

Bei dir Frage ich mich ernsthaft wie du eigentlich eine Zulassung zu einem Studium erhalten hast...


----------



## Heyoka955 (7. Mai 2019)

flopalko hat gesagt.:


> Wieder geht es mal um das ewig leidige Thema mit dir: deine Rechtschreibung. Meinst du damit jetzt, dass du es so siehst oder stellt du genau die gleiche Frage, die dir gestellt wurde, zurück?
> 
> Bemühe dich wirklich mal mit deiner Rechtschreibung, in 90% der Fälle versteht niemand, was du eigentlich brauchst. Komm jetzt auch nicht wieder mit deiner Ausrede, dass du zu schnell schreibst. Ich schreibe auch schnell und schaffe es dabei verständliche und richtige Sätze zu konstruieren. Außerdem: dann musst du halt langsamer schreiben, wenn dir das hilft. Merkregel: Schreibe immer langsamer als (oder maximal gleich schnell wie) du auch denken kannst.
> 
> Bei dir Frage ich mich ernsthaft wie du eigentlich eine Zulassung zu einem Studium erhalten hast...


Junge Nerv nicht wenn du nicht klar kommst dann ciao


----------



## AndiE (7. Mai 2019)

Heyoka955 hat gesagt.:


> Für mein work Flow wäre dies so;
> 
> Die Aufgabe wird runter geladen vom Studenten, die Aufgabe wird bearbeitet und anschließend hochgeladen.
> Die Verwaltung sorgt dazu dass die Abgabe auf die jeweilige Korrektor verteilt wird und nachdem sie verteilt wird, korrigiert der Korrektor die Abgabe und anschließend kann der Student die Abgabe ansehen.


Fragen:
Wo kommt die Aufgabe her?
Wo wird aus der Aufgabe eine Abgabe?
Wann verteilt die Verwaltung die Abgabe? Ist das nur eines, das zerteilt wird?
Warum soll der Student die Abgabe hinterher ansehen wollen, die er eingereicht hat?
Bekommt der Student keine Bewertung zur eingereichten Antwort?
Wie viele Leute bekommen gleichzeitig so eine Aufgabe gestellt?

Wo sind die Sonderfälle? Welche gibt es?


----------



## mihe7 (8. Mai 2019)

Heyoka955 hat gesagt.:


> Junge Nerv nicht wenn du nicht klar kommst dann ciao


So genau wollte @flopalko die Gedanken Deines Profs jetzt wahrscheinlich auch nicht wissen.


----------



## Heyoka955 (8. Mai 2019)

AndiE hat gesagt.:


> Fragen:
> Wo kommt die Aufgabe her?
> Wo wird aus der Aufgabe eine Abgabe?
> Wann verteilt die Verwaltung die Abgabe? Ist das nur eines, das zerteilt wird?
> ...


Ich gebe dir Dir Antwort. Ich schreibe jetzt einen langen Text dazu


----------



## AndiE (10. Mai 2019)

Ich bin sauer. Der TO hat die 2. Aufgabe nicht abgegeben. Wozu der Aufwand?


----------



## Heyoka955 (10. Mai 2019)

AndiE hat gesagt.:


> Ich bin sauer. Der TO hat die 2. Aufgabe nicht abgegeben. Wozu der Aufwand?


Weil die Zeit knapp war sonst hätte ich es


----------



## kneitzel (10. Mai 2019)

Also ich weiß nicht, wo du was studierst. Diese Aufgaben sind aber in der Regel so gestaltet, da es problemlos machbar ist.

Ich weiß, was ich sage ist unbequem, kostet Zeit und es ist alles eine Wiederholung, weil ich und auch andere es dir mehrfach schon gesagt haben:
Es gibt keinen bequemen, schnellen Weg! Studium bedeutet, seine Zeit mit studieren zu verbringen. Wenn man sich einmal schlau macht, woher das Wort kommt, dann versteht man evtl. auch die Erwartungshaltung:




__





						studieren – Wiktionary
					






					de.m.wiktionary.org
				



Ich hoffe, dass Du die Herkunft selbst auf der Seite finden und lesen kannst. Und was daraus folgt, darüber kannst Du Dir für Dich selbst Gedanken machen.

Was Du dringend brauchst ist eine Selbsterkenntnis: was weißt du wirklich? Was kannst du? Wie hast Du nachgewiesen, dass Du etwas wirklich kannst?

Und dann musst Du, so Du Erfolg haben willst, an Dir arbeiten. Schwächen ausmerzen ... geht nicht immer in allen Bereichen, aber fachliche Lücken lassen sich aufarbeiten!

Selbständigkeit ist existenziell. Dazu gehört, dass man eine Aufgabe als Ganzes liest. Mir fehlt zumindest komplett das Verständnis, wenn jemand die Aufgabe bringt, dabei einen Begriff nicht versteht und dann stellt sich heraus, dass dieser Begriff auch noch erläutert wird! (Sorry, aber das war Standard schon an der Schule: Aufgabe immer erst ganz lesen und dann erst starten. Idealerweise liest man alle Aufgaben von Anfang bis Ende ehe man anfängt, diese zu lösen.)

Also noch mal zurück zur ersten Aussage:
Es gibt keinen einfachen, bequemen Weg! Studieren bedeutet, sich intensiv mit Themen zu beschäftigen. Und das in eigenständiger Arbeit. Wenn Du das nicht willst, dann mach etwas anderes! Mach z.B. eine Ausbildung. Muss noch nicht einmal in der It sein. Was macht Dir Spaß? Was für Hobbies hast Du? Handwerk sucht Leute. Wenn du mit Menschen arbeiten willst: da gibt es viele Möglichkeiten..... Aber mach etwas, was Dir liegt! Und wenn du meinst, dass du das nicht willst, weil es ja in der IT dann nach dem Studium 100k+ € im Jahr als Einstiegsgehalt gibt: hör auf zu träumen! Und wenn Dir etwas nicht liegt, dann wirst du den Job nicht gut machen, du wirst neue Dinge nicht schnell erfassen u.s.w., d.h. die 100k wirst Du auch nicht nach mehreren Jahren haben .... Wurde aber wohl alles schon gesagt ....

Was ich erwarte:
Hinweise, die man bekommt, verfolgt man! Ansonsten hilft dir bald niemand mehr. So lernt man dann auch schnell Neues dazu und dann klappt es auch mit den Abgaben... (Aber das ist mir egal. Es ist Dein Studium und nicht meins!)
Du musst es nicht gleich alles meistern, aber das sollte Dein langfristiges Ziel sein!

Ok, ich bin da evtl. eine Ausnahme. Siehe mein Thread bezüglich Java Zertifizierung. Ich will Java richtig meistern, d.h. die Spezifikationen der Sprache und der VM gehören zum Basiswissen. Die Zertifizierung ist z.B. mein Weg, zu erkennen, ob ich es kann oder ob meine Selbsteinschätzung falsch war. Aber ohne auswendig lernen! Das ist sinnlos aber ich will alles im Detail kennen. Da habe ich mir z.B, diese Function<...> angesehen. Hat das hier schon einmal jemand genutzt? (Indirekt bei Lambdas ist klar, aber wirklich Code wie Function<Typ1, Typ2> myFunc = p -> doSomething(p); ???) Aber ich will es meistern, d.h. Ich will es kennen und nutzen können. Also suche ich alles, was mir was zeigen könnte, was mir noch fehlt (Dazu nutze ich derzeit diese Fragen zur Prüfungsvorbereitung ... das finde ich ganz interessant um Anregungen zu bekommen um mit Code zu spielen, Dinge nachzulesen u.s.w.)
Aber so weit musst Du nicht gehen. Du bekommst doch die Anregungen im Studium. Klare Aufgaben. Da musst du sicher gehen, dass du alles weißt, um diese Aufgaben bearbeiten zu können. Also folge Hinweisen, vertiefe Dinge, die Dir fehlten! Das ist in meinen Augen existentiell für ein erfolgreiches Studium ...

Damit bin ich jetzt aber wieder weit genug abgeschweift... und ich bezweifle, dass es die Zeit wert war...



AndiE hat gesagt.:


> Ich bin sauer. Der TO hat die 2. Aufgabe nicht abgegeben. Wozu der Aufwand?


@AndiE Nicht ärgern oder so. Das liegt halt ganz beim TO. Wir können nur versuchen, etwas zu helfen. Lass uns dabei Spaß haben und gut ist es.


----------



## Heyoka955 (10. Mai 2019)

Du hast recht mich interessiert das aber das Problem ist ich hbe weitere Module. Ich würde mich auf das komplett fokussieren aber geht nicht wegen den anderen Fächern.

Als aofzware Entwickler hast du nur deine Aufgabe zu programmieren aber ich habe noch andere Sachen wie Module und Abgaben.

Sonst haste recht


----------



## mrBrown (10. Mai 2019)

Heyoka955 hat gesagt.:


> Du hast recht mich interessiert das aber das Problem ist ich hbe weitere Module. Ich würde mich auf das komplett fokussieren aber geht nicht wegen den anderen Fächern.


Überraschung: Das geht allen Studenten so, das ist den Veranstaltern bekannt und die Aufgaben sind auch entsprechend ausgelegt.



Heyoka955 hat gesagt.:


> Als aofzware Entwickler hast du nur deine Aufgabe zu programmieren aber ich habe noch andere Sachen wie Module und Abgaben.


Du wirst in der echten Welt noch eine ziemliche Überraschung erleben...

Programmieren macht nur einen Teil der Arbeit aus, man hat genauso viele andere Dinge zu tun.
Und statt "andere Sachen wie Module und Abgaben" hat man dann X Projekte gleichzeitig, die alle eine härtere Deadline als deine Abgaben haben.

Software-Entwicklung ist eine ganze Ecke härter als das, was du im Studium machst nicht schaffst.


----------



## Heyoka955 (10. Mai 2019)

Ich habe eine Verständnisfrage, wie stellt man sich die Parameter Übergabe vor und was soll mit der zweiten Parameter passieren?

Denke das ist mein Problem.


----------



## kneitzel (10. Mai 2019)

Genau, man hat nichts anderes zu tun, als Software Entwicklung. Das ist ja auch nur ein kleines Bisschen Sprache ...

Also wenn du wirklich Mal in die Software Entwicklung einsteigen solltest, dann bekommst du mit, was dazu gehört (wer bei uns ins Team bekommen ist, der hat direkt einen Stapel eBooks bekommen nur damit er was hat zum Nachlesen):
- Tooling - da gehört alles dazu, was man so braucht. IDE, Build Tools,....
- Sprache und Code libs (da kommt ja ständig was neues)
- Frameworks und Libs, die man braucht oder brauchen könnte
- weitergehende Sprachen und Frameworks (Nur die web Technologien sind Wahnsinn. HTML und CSS geht ja noch, aber dann JavaScript und Co mit Frameworks, die gefühlt täglich neue Versionen raus bringen ...
- Methodik (da wird dann auch jedes Jahr eine neue Kuh durch das Dorf getrieben .. oder hat jemand keinen Manager der was von continuous Integration schwafelt ohne zu wissen, was das genau ist?)
- QA - ein Thema für sich, Code Qualität, Testing, ....
- Datenbanken ... Riesen Bereich für sich ...
- ....

Aber ja: beruflich habe ich nur Software Entwicklung .....

Bezüglich der Auslastung: das geht doch Anderen auch nicht anders. Warum hast du da mehr Probleme? Gründe analysieren und abstellen. Und wenn Vorwissen fehlt: dann Plan das abzustellen. So es das ist, was du willst, kostet das evtl ein oder zwei Semester ... Aber geh es richtig an. Ziel darf nicht sein, irgendwie die Aufgabe abzugeben, sondern Ziel muss sein, dass du sowas gut kannst! Da musst du hin!

Und zur Not bedeutet das auch, dass man ein Jahr massiv arbeiten muss. Ich arbeite mind. 8h auf Arbeit, 2h Fahrt und dann lerne ich auch noch für meine Job. Und im Alter fällt mir das schwerer als früher... (So Wechsel ich gerade beruflich von .Netz zu Java .... Daher meine großen Aufwände, das zu meistern! Also glaub mir: ich weiss, wovon ich rede!)


----------



## Heyoka955 (10. Mai 2019)

kneitzel hat gesagt.:


> Genau, man hat nichts anderes zu tun, als Software Entwicklung. Das ist ja auch nur ein kleines Bisschen Sprache ...
> 
> Also wenn du wirklich Mal in die Software Entwicklung einsteigen solltest, dann bekommst du mit, was dazu gehört (wer bei uns ins Team bekommen ist, der hat direkt einen Stapel eBooks bekommen nur damit er was hat zum Nachlesen):
> - Tooling - da gehört alles dazu, was man so braucht. IDE, Build Tools,....
> ...



Ich setzt mich ran und gucke was ich machen kann.

Nein Probleme steht oben geschrieben.

Ich will in Richtung Consulting oder Data Scientist.


----------



## mihe7 (11. Mai 2019)

Heyoka955 hat gesagt.:


> Ich will in Richtung Consulting


Ja, die Kosmetikbranche sucht immer Berater/innen.


----------



## Heyoka955 (11. Mai 2019)

das ist mein ansatz code, zu aller erst will ich die Datei filtern so dass immer jedes Wort einzeln in der zeile steht.
Mein Ansatz wäre so für den zweiten parameter.





```
/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package blatt2;

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class App {
    public String getGreeting() {
        return "Hello world.";
    }

    public static void main(String[] args) throws IOException {
        List<String> a = (List<String>) Files.lines(Paths.get("blatt2.txt"));
            filter.(x -> x.split(" ");  //Text filtern nach jeder neuen Zeile Mein Ansatz
            


        a.forEach(x -> System.out.println(x));

    }


}
```


----------



## mrBrown (11. Mai 2019)

Du hast wirklich absolut keine Ahnung, was du da eigentlich machst, oder?

Wie kann man denn seit zwei Semestern Java programmieren, und so einen Müll schreiben?


----------



## Heyoka955 (11. Mai 2019)

mrBrown hat gesagt.:


> Du hast wirklich absolut keine Ahnung, was du da eigentlich machst, oder?
> 
> Wie kann man denn seit zwei Semestern Java programmieren, und so einen Müll schreiben?


Das war der gegebene Code bis auf
        List<String> a = (List<String>) Files.lines(Paths.get("blatt2.txt"));
            filter.(x -> x.split(" ");  //Text filtern nach jeder neuen Zeile Mein Ansatz



        a.forEach(x -> System.out.println(x));


----------



## mihe7 (11. Mai 2019)

Heyoka955 hat gesagt.:


> Das war der gegebene Code


Niemals.


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Niemals.


Bis auf das was ich hinzugefügt habe.
Ich habe das Beispiel aus einem
Video gesehen vom prof das er uns gesendet hat daher habe ich das übernommen.

Ich verstehe was da passiert aber nun frage ich mich wie ich das splitten kann


----------



## mihe7 (11. Mai 2019)

Heyoka955 hat gesagt.:


> Ich verstehe was da passiert aber nun frage ich mich wie ich das splitten kann


Würdest Du auch nur im Ansatz verstehen, was da passiert, dann würdest Du solchen Code überhaupt nicht schreiben. Erst castest Du einen Stream mal eben zur List und die zweite Zeile ist so dermaßen falsch, dass es für eine Erklärung keine Worte gibt.


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Würdest Du auch nur im Ansatz verstehen, was da passiert, dann würdest Du solchen Code überhaupt nicht schreiben. Erst castest Du einen Stream mal eben zur List und die zweite Zeile ist so dermaßen falsch, dass es für eine Erklärung keine Worte gibt.


Der cast sollte nicht da sein.
Das war wegen der ide. Ich habe heute beschlossen mit der ide zu arbeiten und wenn man nicht aufpasst dann irgendwo klickt weil man zu schnell war dann passiert sowas.
Der cast sollte nicht da sein.

Und die zweite Zeile sollte nur eine Idee sein was ich planen will Bzw mein Ziel was ich machen will.

Ich habe eine Fehlermeldung auch bekommen aber ich wollte es Posten damit ihr sieht was ich vorhatte.


----------



## mihe7 (11. Mai 2019)

Das macht es nicht besser. Was soll denn die Idee dahinter sein, einen Filter zu benutzen? Und wie kommst Du auf die Idee, dass split ein Prädikat für den Filter liefern würde?


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Das macht es nicht besser. Was soll denn die Idee dahinter sein, einen Filter zu benutzen? Und wie kommst Du auf die Idee, dass split ein Prädikat für den Filter liefern würde?


Mein Ziel war es den Stream in eine liste zu speichern.

Und dann den String der in der Liste gespeichert ist so zu filtern dass am Ende immer eine neue Zeile bei einem Wort kommt.
Ich hatte intuitiv für Split gedacht aber das macht kein Sinn. Weil er nur den String nach Leerzeichen trennt.


----------



## mihe7 (11. Mai 2019)

Man sieht in jedem Satz, dass Du nicht weißt, was Du da tust. Das meine ich ernst. 

Schon mal darüber nachgedacht, warum die Methode lines() heißt?


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Man sieht in jedem Satz, dass Du nicht weißt, was Du da tust. Das meine ich ernst.
> 
> Schon mal darüber nachgedacht, warum die Methode lines() heißt?


Files ist die Datei. Mit dem Aufruf lines werden sie Zeilen gelesen.


----------



## mihe7 (11. Mai 2019)

Heyoka955 hat gesagt.:


> Mit dem Aufruf lines werden sie Zeilen gelesen.


Die Frage ist nicht, was gelesen wird, sondern was lines() zurückgibt. Woraus besteht der Stream?

EDIT: Und Files ist auch nicht die Datei.


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Die Frage ist nicht, was gelesen wird, sondern was lines() zurückgibt. Woraus besteht der Stream?


Der Stream bestehst aus einer Datei die reingeflossen wird.

Oder wie meinst du das genau


----------



## mihe7 (11. Mai 2019)

Heyoka955 hat gesagt.:


> Der Stream bestehst aus einer Datei die reingeflossen wird.


Und weil der Stream aus einer Datei besteht, heißt die Methode lines()?


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Und weil der Stream aus einer Datei besteht, heißt die Methode lines()?


The lines() method of Java BufferedReader class returns a Stream of elements which are lines read from this BufferedReader.

Was meint man da which are lines?


----------



## mihe7 (11. Mai 2019)

Mal grob übersetzt: Die lines() Methode der Java BufferedReader Klasse gibt einen Stream von Elementen zurück, bei denen es sich um Zeilen handelt, die von diesem BufferedReader gelesen wurden.


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Mal grob übersetzt: Die lines() Methode der Java BufferedReader Klasse gibt einen Stream von Elementen zurück, bei denen es sich um Zeilen handelt, die von diesem BufferedReader gelesen wurden.


Ich weiß aber wie meint man: bei denen es sich um Zeilen handelt ?

Ich verstehe den Satz nicht so wirklich.


----------



## mihe7 (11. Mai 2019)

Die Elemente des Streams sind die Zeilen der Datei.

Kurz: die lines() Methode gibt die Zeilen einer Datei als Stream zurück. Ein Stream<T> ist eine Folge von Elementen des Typs T (das hat nichts mit den I/O-Streams aus dem Paket java.io zu tun).


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Die Elemente des Streams sind die Zeilen der Datei.


Verstehe also eine Zeile ein Element ?
Zbs 
1. ich sehe dich 

Und das wäre ein Element


----------



## mihe7 (11. Mai 2019)

Richtig. Ich habe im Kommentar #124 noch etwas ergänzt.


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Richtig. Ich habe im Kommentar #124 noch etwas ergänzt.


Ah okay das heißt in der Liste wird der Stream so gespeichert 

Erstes Element 1 Hah haha haha hä
Zweites Element hahaha hahah
Drittes Element h h h h h h
.....

Immer wenn neue Zeilen kommen!

Aber dann wäre die Aufgabe 1
Doch geklärt ?
Die wollen dass wir den String nach jeder Zeile Filtern


----------



## mihe7 (11. Mai 2019)

Um zum Beispiel aus einer Datei test.txt alle Zeilen, in denen die Zeichenfolge "wie" vorkommt, zu zählen:

```
long anzahl = Files.lines("test.txt") // Aus einem Stream mit Zeilen
    .filter(zeile -> zeile.contains("wie")) // nur die Zeilen, die "wie" enthalten
    .count(); // zählen
```

Um doppelte Zeilen nicht mitzuzählen:

```
long anzahl = Files.lines("test.txt") // Aus einem Stream mit Zeilen
    .filter(zeile -> zeile.contains("wie")) // nur die Zeilen, die "wie" enthalten
    .distinct() // und jede nur einmal
    .count(); // zählen
```


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Um zum Beispiel aus einer Datei test.txt alle Zeilen, in denen die Zeichenfolge "wie" vorkommt, zu zählen:
> 
> ```
> long anzahl = Files.lines("test.txt") // Aus einem Stream mit Zeilen
> ...


Das verstehe ich aber was wollte dann Die Aufgabe 1 ?


----------



## mihe7 (11. Mai 2019)

Dazu müsste ich erst einmal wissen, wie Aufgabe 1 lautet.


----------



## Heyoka955 (11. Mai 2019)

Schreiben Sie ein Programm, das drei Parameter bekommt. Der erste Parameter ist eine Eingabedatei, der zweite Parameter ist eine Datei mir Filter-Wörtern (je eins pro Zeile) und der dritte Parameter ist eine Ausgabedatei.

Das Programm soll aus dem Inhalt der Eingabedatei einen KWIC Index erzeugen und diesen in der Ausgabedatei speichern. In dem KWIC Index sollen keine Duplikate vorkommen und alle Rotationen, die mit einem Wort aus der Filter-Wort Datei beginnen sollen entfernt werden.

Sie sollen *nicht* die Dekomposition nach Parnas aus der Vorlesung verwenden. Benutzen Sie wo immer es geht Java Streams zur Verarbeitung.

Der folgende Code kann verwendet werden, um eine Wort-Liste input um n Worte zu rotieren:

String rotateListByN(int n, List<String> input) {
  List<String> a = new ArrayList<>();
  a.addAll(input);
  Collections.rotate(a, n);
  return String.join(" ", a);
}


----------



## mihe7 (11. Mai 2019)

Hier https://www.java-forum.org/thema/pfad-finden.184820/#post-1183700 schreibst Du, das wäre Aufgabe 2...



Heyoka955 hat gesagt.:


> aber was wollte dann Die Aufgabe 1 ?


Das steht doch da: Du sollst einen KWIC-Index erstellen. Da gehört ein wenig mehr dazu als einmal Files.lines() aufzurufen. Dazu habe ich Dir im anderen Thread eine entsprechende Frage gestellt, deren Antwort Dir aber zu kompliziert war.


----------



## Heyoka955 (11. Mai 2019)

nur dieses Beispiel gibt es auf wiki, aber der prof hat uns keine wirkichen beispiele gegeben.


----------



## mihe7 (11. Mai 2019)

Heyoka955 hat gesagt.:


> aber der prof hat uns keine wirkichen beispiele gegeben.


Evtl. hat er eine entsprechende Definition des KWIC-Index gegeben. Wie auch immer: wenn Du nicht weißt, wie die Ausgabe aussehen soll, musst Du halt beim Aufgabensteller nachfragen. 

Das Wiki-Beispiel zeigt z. B. fett gesetzte Wörter - das geht in Textdateien schlecht. Und was soll als Index ausgegeben werden? Für die Seitennummer müsstest Du erst einmal wissen, wie viele Zeilen auf eine Seite passen. Also eher ungünstig. Die Zeilennummer wäre denkbar. Solche Anforderungen müssen (ggf. auf Nachfrage) geklärt sein.


----------



## Heyoka955 (11. Mai 2019)

mihe7 hat gesagt.:


> Evtl. hat er eine entsprechende Definition des KWIC-Index gegeben. Wie auch immer: wenn Du nicht weißt, wie die Ausgabe aussehen soll, musst Du halt beim Aufgabensteller nachfragen.
> 
> Das Wiki-Beispiel zeigt z. B. fett gesetzte Wörter - das geht in Textdateien schlecht. Und was soll als Index ausgegeben werden? Für die Seitennummer müsstest Du erst einmal wissen, wie viele Zeilen auf eine Seite passen. Also eher ungünstig. Die Zeilennummer wäre denkbar. Solche Anforderungen müssen (ggf. auf Nachfrage) geklärt sein.


ich zeige dir mal was mein prof im Skript stehen hat hahah


----------



## Heyoka955 (11. Mai 2019)

Verstehst du was


----------



## mihe7 (11. Mai 2019)

Ja. Mal für eine Zeile: erstelle eine Wortliste L := (w_0, w_1, ..., w_n). Betrachte diejenigen i, für die gilt: w_i ist nicht in der Filter-Wort-Datei enthalten und rotiere die Liste um i nach links. 

Das machst Du für alle Zeilen, dann entfernst Du die Duplikate, sortierst das Ergebnis und gibst es aus. 

Beispiel: die Filter-Wort-Datei enthalte die Wörter FÜR, DIE, SIND

Eingabe: 
VERWENDE FÜR DIE LÖSUNG STREAMS
STREAMS SIND DOKUMENTIERT

1. Zeile: 

L_0 = (w_0, w_1, w_2, w_3, w_4) = (VERWENDE, FÜR, DIE, LÖSUNG, STREAMS)

I := {i aus [0, 4] für die gilt: w_i ist kein Element aus Filter-Wort-Datei} = {0, 3, 4}

Für jedes i aus I: rotiere die Liste um i nach links:
i = 0: L_00 = VERWENDE FÜR DIE LÖSUNG STREAMS
i = 3: L_01 = LÖSUNG STREAMS VERWENDE FÜR DIE
i = 4: L_02 = STREAMS VERWENDE FÜR DIE LÖSUNG

2. Zeile:

L_1 = (w_0, w_1, w_2) = (STREAMS, SIND, DOKUMENTIERT)
I := {i aus [0,2] für die gilt: w_i ist kein Element aus Filter-Wort-Datei} = {0, 2}

Für jedes i aus I: rotiere die Liste um i nach links:
i = 0: L_10 = STREAMS SIND DOKUMENTIERT
i = 2: L_11 = DOKUMENTIERT STREAMS SIND

Zwischenstand: L_00, L_01, L_02, L_10, L_11.
Nach dem Entfernen von Duplikaten: L_00, L_01, L_02, L_10, L_11 (weil es gibt keine Duplikate gibt, keine Änderung)
Alphabetisch sortieren: L_11, L_01, L_10, L_02, L_00
Ausgabe:
DOKUMENTIERT STREAMS SIND
LÖSUNG STREAMS VERWENDE FÜR DIE
STREAMS SIND DOKUMENTIERT
STREAMS VERWENDE FÜR DIE LÖSUNG
VERWENDE FÜR DIE LÖSUNG STREAMS


----------



## AndiE (11. Mai 2019)

Die flatMap Methode aus Streams könnte ebenso hilfreich sein, wie IntStream.range(…). Einen String können Sie mit der split Methode in Worte zerlegen.

Steht noch als "important" bei der Aufgabe.


----------



## Xyz1 (11. Jun 2019)

Spam


----------



## mrBrown (11. Jun 2019)

Tobias-nrw hat gesagt.:


> Spam


Beim nächsten Mal melden


----------

