Zum Inhalt springen

Projektantrag - Neuimplementierung PSD-Library


derBiggi

Empfohlene Beiträge

Moin,

wie schon in dem anderen Unterbereich geschrieben habe ich heute meine Zulassung zur Abschlussprüfung bekommen. Da ich das ganze als externer Prüfling mache, fehlt mir so ein bisschen die Vergleichsmöglichkeit mit anderen. Ich poste einfach mal meinen bisherigen Entwurf, für Kritik und Ratschläge bin ich auf jeden Fall dankbar.

Projektbezeichnung

Neuimplementierung und Erweiterung einer Java-Bibliothek zum einlesen von Adobe Photoshop .psd-Dateien

Konkrete Projektbeschreibung

Die XXX GmbH entwickelt eine Software mit Namen YYY zum Erstellen von Menüstrukturen und Applikationen im BluRay- und Kabel-TV-Umfeld auf Basis der Eclipse RichClientPlatform (RCP). Um eine einfache Integration der Software in vorhandene Abläufe und Strukturen bei Kunden zu ermöglichen, wurde eine Funktion zum Importieren von Photoshop PSD-Dateien implementiert. Mit dieser Funktion ist es möglich, eine PSD-Datei zu importieren, die eine definierte Layer-Struktur enthält, und daraus ein komplettes Menü zu erzeugen, das nur noch mit Scripten funktionsfähig gemacht werden muss. Die aktuelle Implementierung ist allerdings langsam, wenig dokumentiert und vor allem schlecht erweiterbar.

Geplant ist eine Neuimplemtierung der Bibliothek mit stabiler API, erweiterter Fehlerbehandlung, zuverlässiger Fortschrittsanzeige und Unit-Tests. Weiterhin ist die Erweiterung der Funktionalität um das Einlesen von Layermasken geplant.

Inhalt der Projektdokumentation

- Inhaltsübersicht

- Persönliche Angaben zum Prüfungsbewerber

- Betriebliches Umfeld des Auftraggebers

- Ausgangssituation

- Projektziel

- Soll/Ist-Vergleich

- Beschreibung des Auftrags

- Programmablauf

- Testfälle

Anlagen zur Projektdokumentation

- Pflichtenheft

- PSD-Fileformat Documentation Version 6 (oder so. Mal nachkucken)

Projektplanung

Analyse: (4h)

- Datenstrukturen der PSD-Datei analysieren ( 1h )

- Aktuellen Code auf wiederverwendbarkeit prüfen ( 1h )

- Erstellung Pflichtenheft ( 2h )

Design: ( 8h )

- API definieren ( 3h )

- Private Datenstrukturen definieren ( 5h )

Tests: (10h)

- Definition von möglichen Grenz- und Testfällen ( 2h )

- Erstellung von Test-Files in Photoshop ( 4h )

- Erstellung von Unit-Tests ( 4h )

Realisierung ( 34h )

- Implementation ( 32h )

- Build-Prozess ( 2h )

Dokumentation:

- Projektbericht, JavaDoc ( 14h )

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

ja, PSD ist ein proprietäres Format. Ich habe allerdings eine "offizielle" ( also von Adobe veröffentlichte) Dokumentation des Formats gefunden, (wenn auch etwas älter, ca. Version 6.0 ), d.h. kein Reverse Engineering.

Des weiteren gibt es bereits diverse andere Programme, die PSD-Dateien lesen können ( Gimp, diverse Bildbetrachter ).

Und nicht zuletzt ist diese Funktionalität bereits in unserer Software implementiert und wird auch schon so ausgeliefert. Ich glaube mich zu erinnern, das wir das damals auch mit dem Legal Department geklärt hatten.

Eine kurze Google-Recherche hat zumindest erbracht, das - solange ein Dokument nicht durch Verschlüsselung geschützt ist - Reverse Engineering bzw. der Import proprietärer Formate kein Problem darstellt.

Gruß, Andreas

P.S.:

Ich habe grad die Docs von Adobe wiedergefunden: In der Section "Audience" steht: "This document is provided for 3rd parties to read and write the Photoshop native file format."

Damit dürften legal issues kein Problem sein.

http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/

Bearbeitet von derBiggi
Found PSD Documentation
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

Naja, ich würde das ganze auch lieber "nur" erweitern und Features hinzufügen. Leider ist der aktuelle Stand so, das der Code extrem unwartbar ist, z.B. 10 Seiten lange Funktionen, Verschachtelungstiefen von 15, keine Interfaces, keine Trennung von internen/externen Datenstrukturen, etc.

Ich könnte die benötigten Features zwar irgendwie in die vorhandene Code-Basis reinfrickeln, aber das wäre nichts, was ich guten Gewissens irgendjemand präsentieren möchte, daher komme ich um eine Neuimplementierung nicht herum.

Ich kann aber in der Projektbeschreibung und bei der Aufgabe selbst sicherlich noch mehr Fokus auf neue Features und Erweiterungen legen. Beispiele wären:

- Schnellere Implementierung ( Java NIO/MemoryMappedFiles)

- Duplicate Content Detection

- LayerMasks mit duplicate Content Detection/Content Merge

- Schnelle Abbruchsmöglichkeiten

- Verlässliche Fortschrittsanzeige

Die einzelnen Punkte würde ich dann natürlich noch genauer Beschreiben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau, das du den Fokus mehr auf die neuen Features legst habe ich gemeint. Du kannst die API im Rahmen deines Projektes immer noch ändern und verbessern. Aber der Fokus liegt auf den neuen Features. Und wenn du die komplette Überarbeitung der API nicht im Projekt schaffst lagerst du es aus.

Das eine API hin und wieder mal überarbeitet werden muss kommt vor aber ich würde das nicht zum Hauptthema einer Projektarbeit machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, ich habe den Fokus jetzt etwas verändert und mehr auf neue Features gelegt. Ich poste es hier der Vollständigkeit halber noch einmal, vielleicht gibt es ja noch etwas, was ich übersehen habe.

Gruß, Andreas

Projektbezeichnung

Erweiterung und Refaktorisierung einer Java-Bibliothek zum Einlesen von Adobe Photoshop .psd-Dateien

Konkrete Projektbeschreibung

Die XXX GmbH entwickelt eine Software mit Namen YYY zum Erstellen von Menüstrukturen und Applikationen im BluRay- und Kabel-TV-Umfeld auf Basis der Eclipse RichClientPlatform (RCP). Um eine einfache Integration der Software in vorhandene Abläufe und Strukturen bei Kunden zu ermöglichen, wurde eine Funktion zum Importieren von Photoshop PSD-Dateien implementiert. Mit dieser Funktion ist es möglich, eine PSD-Datei zu importieren, die eine definierte Layer-Struktur enthält, und daraus ein komplettes Menü zu erzeugen, das nur noch mit Scripten funktionsfähig gemacht werden muss. Die aktuelle Implementierung ist allerdings langsam, nicht vom Hauptprojekt separiert, wenig dokumentiert und vor allem schlecht erweiterbar.

Geplant ist die Refaktorisierung der Funktionalität in eine eigene Bibliothek stabiler API und die Erweiterung der Funktionalität um folgende Features:

- Schnellere Implementierung ( Java NIO/MemoryMappedFiles)

- Duplicate Content Detection

- LayerMasks mit duplicate Content Detection/Content Merge

- Schnelle Abbruchsmöglichkeiten

- Verlässliche Fortschrittsanzeige

- UnitTests

Inhalt der Projektdokumentation

- Inhaltsübersicht

- Persönliche Angaben zum Prüfungsbewerber

- Betriebliches Umfeld des Auftraggebers

- Ausgangssituation

- Projektziel

- Soll/Ist-Vergleich

- Beschreibung des Auftrags

- Programmablauf

- Testfälle

Anlagen zur Projektdokumentation

- Pflichtenheft

Projektplanung

Analyse: (4h)

- Datenstrukturen der PSD-Datei analysieren ( 1h )

- Aktuellen Code auf wiederverwendbarkeit prüfen ( 1h )

- Erstellung Pflichtenheft ( 2h )

Design: ( 10h )

- API definieren ( 4h )

- Private Datenstrukturen definieren ( 6h )

Tests: (10h)

- Definition von möglichen Grenz- und Testfällen ( 2h )

- Erstellung von Test-Files in Photoshop ( 4h )

- Erstellung von Unit-Tests ( 4h )

Realisierung ( 32h )

- Implementation ( 32h )

Dokumentation:

- Projektbericht, JavaDoc ( 14h )

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke, das könnte ich noch machen.

Mal eine etwas andere Frage:

1.) Ich bin bei der IHK Schleswig-Holstein, genauer IHK Kiel. Die IHK bietet auf Ihrer Homepage ein Formular als .doc an ( http://www.ihk-schleswig-holstein.de/linkableblob/731334/data/projektarbeit-data.doc ), welches 1. nicht wirklich viel Platz bietet, vor allem für die Projektplanung, und 2. ein Word-Dokument ist. 3. Formatierungsfehler enthält.

Ich bin heute extra in die Firma gefahren, um an einen Windows-Rechner zu kommen, und dieses Formular mehr oder weniger gut auszufüllen, und würde den Antrag eigentlich viel lieber in Latex neu machen. Könnte das ein Problem sein, wenn nicht das vorgegebene Formular genutzt wird, oder ist das egal, solange alle nötigen Informationen vorhanden sind?

2.) In dem Formular ist eine Sektion "Projektumfeld" enthalten. Da kann ich mir momentan nicht so viel drunter vorstellen. Ich habe dort erstmal nur eine kurze Firmen- und Produktbeschreibung hingeschrieben, das Formular lässt ja auch nicht mehr Platz als max. 3 Zeilen. Gibt es da eine genauere Definition von "Projektumfeld"?

Gruß, Andreas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin heute extra in die Firma gefahren, um an einen Windows-Rechner zu kommen, und dieses Formular mehr oder weniger gut auszufüllen, und würde den Antrag eigentlich viel lieber in Latex neu machen. Könnte das ein Problem sein, wenn nicht das vorgegebene Formular genutzt wird, oder ist das egal, solange alle nötigen Informationen vorhanden sind?

Anrufen und fragen. Ich würde aber mal behaupten, dass das kein größeres Problem ist. Dann bist Du noch so nett und gibst der IHK Deine TeX Vorlage + PDF und alle sind glücklich.... :P

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...