Skip to content
Eine einfache, absatzbasierte Textverarbeitung mit Ein- und Ausgabe über die Konsole.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
Group_5_text-editor.iml
README.md

README.md

Group_5_text-editor

Allgemeines

(Version 1.0)

Entwickler:

🐲 Luca Archidiacono

💂 Fabio Büsser

👽 Josip Garvanic

👷 Sri Saiharan Sivarajah

Projektbeschreibung

Aufgabe

Programmieren Sie eine einfache, absatzbasierte Textverarbeitung mit Ein- und Ausgabe über die Konsole. Diese soll standalone laufen (nicht nur in BlueJ) und folgende Funktionalität besitzen:

  • Sie können Text beliebiger Länge verarbeiten.

  • Auf Kommando einen hardcodierten Blindtext (bsp. entnommen Lorem Ipsum, https://lipsum.com/, andere sind möglich) einfügen.

  • Unformatierte, absatzweise Ausgabe des Textes mit Angabe der Absatznummer

  • Einfügen und Löschen ganzer Absätze; Globales Suchen und Ersetzen von Text innerhalb eines Absatzes. (Wir sehen hier von einer Suchfunktion nach dem jeweils nächsten Treffer ab.)

  • Ausgabe eines Indexes (Wortverzeichnisses) aller Worte, die öfter als zweimal auftreten mit Angabe des Absatzes

  • Formatierte Ausgabe von Text mit einer einstellbaren maximalen Spaltenbreite Zeichen, Zeilenumbruch jeweils auf dem letzten Lehrzeichen (bei zu langen Wörtern an beliebiger Stelle innerhalb des Wortes)

Vorgehen

Gehen Sie stufenweise vor:

  • Stellen Sie die grundlegenden Anforderungen zusammen.

  • Einigen Sie sich in der Gruppe auf ein Klassenmodell. Dokumentieren Sie dieses.

  • Vereinbaren Sie Zuständigkeiten und einen groben Plan.

  • Erarbeiten Sie die Klassendefinition und setzen Sie diese um.

  • Definieren Sie Test Cases und führen Sie diese aus. Dokumentieren Sie die Tests.

Randbedingungen

  • Sie dürfen alle in der Vorlesung bis zur SW9 durchgenommenen Konstrukte benutzen, jedoch nur diese. Dies schliesst insbesondere ein: Allen Stoff im BlueJ-Buch bis und mit Kapitel 9, JUnit Testing, Packages zur Verwaltung Ihres Codes. Es schliesst insbesondere aus: Vererbung, Einbindung von Paketen ausserhalb java.util.*

  • Das Einlesen und Abspeichern von Dateien ist in diesem Projekt nicht notwendig.

  • Neben Javadoc und Kommentaren zur Funktionalität wo nötig, sind die zur Übersetzung und Start nötigen Aufrufe und die Benutzerkommandos separat zu dokumentieren.

  • Wenden Sie die relevanten Abschnitte im Clean-Code-Handbuch an. (Die Kapitel sind dort bereits mit den jeweiligen Abschnitten markiert.)

Hinweise

  • Inhalt der Kap. 5, 9.5, 9.11 im BlueJ-Buch kam zwar in Musterlösungen am Rande vor, wurden aber in der Vorlesung nicht behandelt. Sie werden ihn für dieses Projekt nicht benötigen.

  • Fehlervermeidung und JUnit wird in SW9 durchgenommen. Planen Sie genügend Zeit ein, um Ihre Tests zu definieren und umzusetzen und allfällige Fehler zu korrigieren.

  • Für Management und Dokumentation von Arbeitsschritten empfehlen wir das Issue Tracking in GitHub, andere Lösungen sind denkbar.

Ablauf

Das Projekt dauert von SW7 bis SW9. Ihre Dozierenden halten ein Kick-Off für das Projekt zum normalen Termin für das Modul "Software-Projekt 1" in SW7 und geben den für Ihre Klasse gültigen Abgabetermin bekannt.


Architektur

Klassendiagramm

Klassenbeschreibung

You can’t perform that action at this time.