Studienarbeit Informatik: Kapitel "Entwurf" soll technologieunabhängig sein ?
-
tawa schrieb:
Hmm, danach habe ich nicht gefragt.
Die Frage war: Darf ich konkrete Technologien wie LDAP im Kapitel "Entwurf" verwenden und erwähnen?
Unterteile Deine Arbeit nach CIM, TIM, TSM und der Konfiguration.
In der SW-Technik auch bekannt unter MDA - CIM, PIM, PSM und Konfiguration.
http://de.wikipedia.org/wiki/Model_Driven_ArchitectureIch finde den Aufbau der wissenschaftlichen Arbeit obsolete.
Da merkt man das die Hochschulen mit den Stand der Entwicklung nicht mithalten können, weil ihr Domain Scoping nur auf eine lehrstuhlspezifische Sichtweise eingestellt ist.
Die Zauberwörter heißen Requirements & Systems Engineering. Da sowas Profs nicht wirklich beherrschen und intuitiv oder fachstandardisiert alles managen, mache ich es mal vor:Titel:
Schlechter: Zu jenen Thema gebe ich diesen Senff ab. Weil so die Bedeutung Deiner Arbeit schwer zu erfassen ist und die Traceability zum Gesamtkontext nur von den "Besten" erfasst werden kann, wenn diese gewillt seien würden, sich mit der Arbeit einen unbekannten und "unbedeutenden" Newcomers zu befassen.
Guter:
a) Zu diesem Problem entwickelte ich folgende Lösung
b) Aus der Konfiguration jener Erkenntnisse und Konzepte habe ich jene Idee, Theorie, These entwickelt (abgeleitet)
c) Aus der Konfiguration jener Lösungen ergeben sich folgende Probleme und Hindernisse und insistieren folgende Anforderungen (später Ziele)
d) Fortschrittsbericht: Für das jenen Topzielen angesetztes Konzept haben wir folgende Unterziele befriedigt (und getestet)
e) Folgende Ergebnisse wurden von mir wie folgt bestätigt
f) Folgende Ergebnisse werden von mir wie folgt bewertet (Diagnose)
g) Bei diesen Objekten (Subjekten) machte ich folgende Beobachtung, erhielt folgende Daten.
h) Aus der folgenden bestehende Konfiguration (Gesamtkonzept) entwickelte ich folgende Sichtweise (Diskussion von Stellenwert/Taxonomie)
g) Leitfaden für folgende AnwendungGute wissenschaftliche Überschriften sind wie Teaser für das Marketing. Eine möglichst breite Masse der Zielgruppe soll sich kernig angesprochen fühlen.
Vermeide Low-Level-Fachchinesisch!
Über einen die Erzeugung und Verwandlung des Lichts betreffenden heuristischen Gesichtspunkt
Eine neue Bestimmung der Moleküldimensionen
Über die von der molekularkinetischen Theorie der Wärme geforderte Bewegung von in ruhenden Flüssigkeiten suspendierten Teilchen
Zur Elektrodynamik bewegter Körper
Ist die Trägheit eines Körpers von seinem Energieinhalt abhängig?Abstract:
- Niemals mehr als eine Seite; empfehle halbe Seite.
- Grundsätzlich zuerst in Englisch. Ist das Dokument anderssprachig, Übersetzung anschließen.
- Die Struktur des Abstracts:
a) Untertitel: Hier wird die 2-3 wichtigsten Ergebnisse in den Fordergrund gehoben. 2-3 Sätze, wenn es geht OHNE Nebensätze. (Ist nicht leicht, muss aber sein).
b) Ein aus allgemeinen Fachbegriffen (aka Buzzwords) assozierten Modell - Konfiguration dabei beachten - hat folgende Ziele.
c) An dem Blättern des AST (abstract syntax tree) des übergeordneten Konzepts - lowest level features - aggretierten Anforderungen haben zu folgenden Problemen und Aufgaben (Hindernissen) geführt. Daraus habe ich mir folgende Topziele (maximal 4-5) für eine Lösung (Top Features) abgeleitet. (Der detaillierte Zielbaum sollte später die Struktur Deines Dokuments wiedergeben.)
d) Nach Design, Implementierung haben die Tests zu folgenden Ergebnissen geführt. (Eine Detaillierung von a. Soviel zu keine Technik)
e) Dein Fazit (Validierung, Verifcation & Assessment) und Deine Empfehlung (Idee, Theorie, These und Aufgaben).
Einleitung, Grundlagen und State-of-Art etc. - Vergiß es!
Bereits vor über 20 Jahren habe ich mich darüber beschwert, dass wir Studenten wie in Klosterschule des 12. Jahrhunderts noch die Standardwerke handschriftlich kopieren. Ok, um kein Plagiat zu begehen geben wir vielleicht noch die Quellenangabe an und formulieren die Sätze neu oder fassen zusammen. Aber in Prinzip ist es nichts anderes als Copy & Paste. Die typische standardmässige Diplomarbeit/Dissertaion über 200-300 Seiten enthält 97-98% merkelische Allgemeinplätzchen anderer Autoren und nur 2-3% eigene wissenschaftliche Arbeit/Gedanken. Aber Hauptsache man hat Centimeter geschaffen. Deshalb bin ich auch später zu einen progressiven Prof gegangen, bei dem man auch mit acht Seiten Diplomarbeit eine Eins bekommen konnte.
"...measure poetry. - No longer!"
"Club der toten Dichter" ab 1:02 min: http://www.youtube.com/watch?v=-XOUjDXTKNE&feature=relatedGlücklicherweise wurde ich jetzt erhört...
Statt dessen nehmen wir:A) Für wissenschaftliche Veröffentlichungen:
AST Gliederungen nach der WBS (work breakdown structure := WP (Produktbaum X Process-(bricks))):
Du gehst davon aus, dass Dein Erstellungsprozess ein Wasserfall-Modell ist. Was ist aber mit V-Modell oder Spiral-Modell. Hypermoderne Erstellungsprozesse kennen sogar nur Fuzzy-Projektphasen. Auch in der Konzeptionierungs- und Design-Phasen müssen Tests betrieben werden, wie z.B. Machbarkeitsstudien, Zuverlässikeitsstudien, Verfügbarkeit etc. Dabei die technische Seite zu droppen, insb. in der Informatik, reduziert radikal die Glaubwürdigkeit des Ergebnisses. Ich habe auch den Eindruck, dass ist von der wissenschaftlichen Gemeide bewußt so veranschlagt, damit man sich auf irgendwelchen "Urlaubstagungen" gegenseitig mardig machen kann, um sich zu produzieren, seine Repotation polieren und ja nichts beweisen muss. Beweise ohne physikalischen Bezug existieren nur in der Mathematik und dann ist es auch nur Mathe und keine Informatik. Die gesamte PSM - Konstruktion, Implementierung, Verifikation (Tests), Validierung würde in der Arbeit nie betrachtet werden. - Absoluter Schwachsinn!
Die Traceability in der WBS - Produktbaum (inkl. Zielbaum) und Prozesse - müssen aufrecht erhalten werden. Die Grundlagen, die ich als Anhang packen würde, werden durch eine Konfigurations- /Kalibrationsdatei beschrieben - Anwendungs-/Implementierungssicht - und damit steht das Dokument direkt im Bezug zu deiner SW!
Entscheidungsmodelle und Begründung nicht vergessen.Bericht für wissenschaftlichen Betrieb:
AST Gliederungen nach der PLM (Product X Configuration- X Project Lifecycle [Process]) / [Change Management] & Release Management:
Hier wird das Feature Modell um das Projekt- und Releasemanagement erweitert. Wichtig, wenn man unterschiedliche Forschungsprojekte an einer Anlagen miteinander in Bezug setzen will.Das Domain Engineering ist hierbei ganz hilfreich.
Auswertung und Zusammenfassung:
- Basis ist hierfür die Validierung (Falsfizierung, Verifizierung) der Ziele, Antiziele, Anforderungen, Hindernisse, Theorien, Thesen, Ideen, Probleme, Lösungsansätze, Tests, Beurteilungen etc nach geschaffen Fakten!
- Daraus ergibt sich folgende Beurteilung.
- Gültigkeitsbereich der Aussage, Konfiguration, Eindeutigkeit, Konfidenz etc.
- Nächste Ziele, Ausblicke und Vorschläge
Anhang:
- Grundlagen, Techniken und State-of-Art
- Quellennachweiß
- Messdaten und Ergebnisse
- Low-level-Technik-Beschreibung
- Projektverzeichnis (url)
-
allerunterste schublade
-
@Prof84
Du hast Deine Zeit geopfert und einiges dazu geschrieben.
Aber leider muss ich Dir sagen, dass ich deine Buzzword-Beiträge dermaßen lächerlich und peinlich finde, dass ich hoffe, in der späteren Berufswelt niemals mit Leuten wie Dir arbeiten zu müssen.So etwa 90% deiner Beiträge sind eine Ansammlung alberner Trendbegriffe ohne fundierten Inhalt oder Hintergrund.
Will mich aber hier nicht mit Dir streiten.
Antworte einfach nicht auf meine Beiträge.
-
tawa schrieb:
Zum Beispiel habe ich in der Software ein LDAP-Verzeichnis zur Benutzerauthentisierung verwendet. Das spielt auch für diverse Schnittstellen mit anderen Tools eine Rolle.
Soll ich jetzt wirklich nur um den heißen Brei herum reden und von LDAP oder gar Verzeichnisdiensten garnichts erwähnen?genau, es gibt schliesslich viele wege bzw tools ein problem zu loesen. beschreib einfach das grundlegende system.
Dann müsste ich das alles im Kapitel Implementierung nochmal aufrollen und in die praktischen Details gehen.
ist es nicht genau dafuer da? jemand anderes haette das vielleich auch mit anderen mitteln geloest.
Ist meine erste "wissenschaftliche" Arbeit und komme mit dem Schreiben nicht so gut voran. Vielleicht habt ihr ja ein paar Erfahrungswerte.
vielleicht bist du zu biased
klingt als wuestest du ohne nachzudenken was du nutzen moechtest. aber stell es dir aus der sicht jemanden vor der in diesem gebiet nicht bewandert ist. der wuerde sich wohl erstmal allgemein einen loesungsansatz denken und dann nach den noetigen werkzeugen suchen das zu kompletieren.natuerlich hat sowohl routine als auch ein voellig vorurteilsloser ansatz vorteile, darueber streit ich garnicht ;), aber fuer deinen text will man wohl den zweiten.
my2cent
-
+fricky schrieb:
allerunterste schublade
der echte verwendet *immer* den lächel-smiley. ist es wirklich so schwer, mich zu faken?
-
+fricky schrieb:
+fricky schrieb:
allerunterste schublade
der echte verwendet *immer* den lächel-smiley. ist es wirklich so schwer, mich zu faken?
Jeder Idiot kann +fricky sein!
-
+fricky schrieb:
Jeder Idiot kann +fricky sein!
das war wieder nix. der echte schreibt *immer klein*
-
+fricky schrieb:
+fricky schrieb:
allerunterste schublade
der echte verwendet *immer* den lächel-smiley. ist es wirklich so schwer, mich zu faken?
-
^^leider auch daneben. der echte schreibt immer text dazu, auch wenn's nur zwei wörter sind.
-
tawa schrieb:
Zum Beispiel habe ich in der Software ein LDAP-Verzeichnis zur Benutzerauthentisierung verwendet. Das spielt auch für diverse Schnittstellen mit anderen Tools eine Rolle. Soll ich jetzt wirklich nur um den heißen Brei herum reden und von LDAP oder gar Verzeichnisdiensten garnichts erwähnen? Dann müsste ich das alles im Kapitel Implementierung nochmal aufrollen und in die praktischen Details gehen.
tawa schrieb:
Hmm, danach habe ich nicht gefragt.
Die Frage war: Darf ich konkrete Technologien wie LDAP im Kapitel "Entwurf" verwenden und erwähnen?Kann man pauschal so nicht sagen, da das quasi von deinen "Anforderungen" abhängt. Wenn es z.B. wichtig ist, dass du deine Software möglichst technologie-unabhängig schreibst, dann ist dein Entwurf an sich wohl schon falsch, denn du legst dich ja quasi schon definitiv auf LDAP fest. Normal würde man das Thema Benutzerverwaltung in einer eigenen Schicht kapseln, und je nach Implementierung dann eben LDAP oder eine Datenbank oder Textfiles usw. benutzen (d.h. du würdest im Entwurf diese Schicht beschreiben und dann eben als Beispiel LDAP kurz erwähnen).
Du meintest aber weiter oben dass LDAP für Schnittstellen mit anderen Tools eine Rolle spielt. D.h. so wie ich das verstehe kommst du um LDAP gar nicht rum, wegen anderen externen Anforderungen. Dann finde ich persönlich es schon okay, wenn du das im Entwurf nennst (und eben begründest warum gerade LDAP verwendet wird). LDAP nochmal von vorne bis hinten zu erklären macht keinen Sinn, das ist ja etwas prinzipiell bekanntest (=> externe Verweisquellen).
-
nep schrieb:
Kann man pauschal so nicht sagen, da das quasi von deinen "Anforderungen" abhängt. Wenn es z.B. wichtig ist, dass du deine Software möglichst technologie-unabhängig schreibst, dann ist dein Entwurf an sich wohl schon falsch, denn du legst dich ja quasi schon definitiv auf LDAP fest. Normal würde man das Thema Benutzerverwaltung in einer eigenen Schicht kapseln, und je nach Implementierung dann eben LDAP oder eine Datenbank oder Textfiles usw. benutzen (d.h. du würdest im Entwurf diese Schicht beschreiben und dann eben als Beispiel LDAP kurz erwähnen).
Du meintest aber weiter oben dass LDAP für Schnittstellen mit anderen Tools eine Rolle spielt. D.h. so wie ich das verstehe kommst du um LDAP gar nicht rum, wegen anderen externen Anforderungen. Dann finde ich persönlich es schon okay, wenn du das im Entwurf nennst (und eben begründest warum gerade LDAP verwendet wird). LDAP nochmal von vorne bis hinten zu erklären macht keinen Sinn, das ist ja etwas prinzipiell bekanntest (=> externe Verweisquellen).Ne um LDAP komme ich nicht rum.
Es war von Anfang an festgelegt, dass LDAP im Rahmen der Arbeit zu verwenden ist.
-
Dann benutz es im Entwurf. Wär ja sonst irgendwie ziemlich blöd, wenn das eine konkrete fokussierte Anforderung ist und du ständig drum rum redest. Das spielt ja dann letztlich für den Entwurf im Zusammenspiel mit anderen Komponenten eine Rolle.
-
nur so aus interesse: wo genau ist der wissenschaftliche aspekt deiner arbeit zu finden?
-
Wenn du eine Software entwickelst, stehen die Technologien, mit denen du das realisierst erst einmal absolut im Hintergrund und haben keine Bedeutung.
Den Anwender interessiert es nicht, ob dein Programm in Java, C++ oder Brainfuck geschrieben ist oder ob du Mysql, Sqlite oder Postgres benutzt, ihn interessiert was die Software können soll.
Entscheidest du dich im Vorfeld für irgendwelche Technologien, stellen die sich im Nachhinnein oftmals als suboptimal heraus, wenn der volle Funktionsumfang der zu entwickelnden Software bekannt ist, daher sollte das so weit wie irgend möglich vermieden werden.
Im Vordergrund steht das Pflichten/Lastenheft, in dem du feststellst, wo die Software laufen soll, welche Zielgruppe sie anspricht, welche Anforderungen sie erfüllen muss etc.
Auch die Frage nach Erweiterbarkeit, Flexibilität, Fehlerfreiheit(wie viel Zeit soll da reingesteckt werden) etc muss sich gestellt werden.
Im Anschluss kannst du noch eine Benutzeroberfläche gestalten, die auf diesen Anforderungen basiert und auch die kannst du mit Paint, Excel oder sonstwas machen, völlig egal.
Dieser Prozess läuft unter Definitonsphase, welche du auch mit jedem Kunden besprechen kannst, da er kein Technikwissen voraussetzt, denn es geht um das WAS und nicht um das WIE.
Inwieweit du diese Sachen anwenden musst bei deiner Arbeit sei mal dahingestellt.Im Anschluss erfolgt die Entwurfsphase, in der es unter Anderem notwendig ist ins technische zu gehen und sich für eine Programmiersprache/Datebank/Sonstwas zu entscheiden und zwar angepasst auf die vorherigen Anforderungen.
Kommt heraus, die Zielgruppe besteht aus jugendlichen Heimanwendern -> evtl eine Webanwendung?
Sollen viele Daten gespeichert werden -> eine Datenbank?
Wieviele Daten und wie oft wird darauf zugegriffen? -> welche Datenbank?
Flexibilität gefordert(potentieller Datenbankenwechsel etc) -> diverse Abstrahierungsschichten einbauen
Wegwerfanwendung mit Lebenszeit von 2 Monaten? -> nichts abstrahierenUnd erst wenn das alles feststeht, sollte man sich um die Implementierung Gedanken machen und hierbei auch erst einmal die wichtigsten Komponenten durchplanen, wie sie denn grob implementiert werden sollen, mit welchen Algorithmen, welchen Schnittstellen etc.
Das ist wohl das, was als Entwurf gefordert wird, die Notwendigkeit sich auf ein bestimmes verwendetes Produkt festzulegen hatte ich bisher noch nicht, das mag aber auch mal notwendig sein, wenn die Lösung selbst davon stark beeinflusst wird.Hast du die Technik einserseits und eine genaue Vorlage, was du entwickeln willst andererseits liegen, ist die Programmierung dann ein eher stumpfsinniger und schnell zu erledigender Job.
Was ich nicht ganz verstehe, du scheint den Kram schon fertigprogrammiert zu haben und machst im Nachheinnein nun einen Entwurf? Das klingt eher nach sinnlosem Fleiß, denn wirklicher geplanter Vorgehensweise...
*edit*
für näheres solltest du die Bibliothek beispielsweise mal nach diesem Buch durchwühlen, auch wenn der Einband stinkt und es inzwischen schon etwas unter Altersschwäche leidet:
http://www.amazon.de/Lehrbuch-Software-Technik-Software-Entwicklung-mit-CD-ROM/dp/3827404800/ref=sr_1_1?ie=UTF8&s=books&qid=1236651265&sr=8-1*edit2* Hmpf, wer lesen kann ist klar im Vorteil und spart sich viel Schreibkrams, habe das mal korregiert, ist jetzt zwar immer noch viel OT, aber nicht mehr so falsch
-
dreaddy schrieb:
Wenn du eine Software entwickelst, stehen die Technologien, mit denen du das realisierst erst einmal absolut im Hintergrund und haben keine Bedeutung.
Den Anwender interessiert es nicht, ob dein Programm in Java, C++ oder Brainfuck geschrieben ist oder ob du Mysql, Sqlite oder Postgres benutzt, ihn interessiert was die Software können soll.
Entscheidest du dich im Vorfeld für irgendwelche Technologien, stellen die sich im Nachhinnein oftmals als suboptimal heraus, wenn der volle Funktionsumfang der zu entwickelnden Software bekannt ist.
Im Vordergrund steht das Pflichten/Lastenheft, in dem du feststellst, wo die Software laufen soll, welche Zielgruppe sie anspricht, welche Anforderungen sie erfüllen muss etc.
Auch die Frage nach Erweiterbarkeit, Flexibilität, Fehlerfreiheit(wie viel Zeit soll da reingesteckt werden) etc muss sich gestellt werden.
Im Anschluss kannst du noch eine Benutzeroberfläche gestalten, die auf diesen Anforderungen basiert und auch die kannst du mit Paint, Excel oder sonstwas machen, völlig egal.
Und genau dieser Prozess stellt den Entwurf dar, den du auch mit jedem Kunden besprechen kannst, da er kein Technikwissen voraussetzt, denn es geht um das WAS und nicht um das WIE.Erst danach ist es notwendig ins technische zu gehen und sich für eine Programmiersprache/Datebank/Sonstwas zu entscheiden und zwar angepasst auf die vorherigen Anforderungen.
Kommt heraus, die Zielgruppe besteht aus jugendlichen Heimanwendern -> evtl eine Webanwendung?
Sollen viele Daten gespeichert werden -> eine Datenbank?
Wieviele Daten und wie oft wird darauf zugegriffen? -> welche Datenbank?
Flexibilität gefordert(potentieller Datenbankenwechsel etc) -> diverse Abstrahierungsschichten einbauen
Wegwerfanwendung mit Lebenszeit von 2 Monaten? -> nichts abstrahierenUnd erst wenn das alles feststeht, sollte man sich um die Implementierung Gedanken machen und hierbei auch erst einmal die wichtigsten Komponenten durchplanen, wie sie denn grob implementiert werden sollen, mit welchen Algorithmen, welchen Schnittstellen etc.
Hast du die Technik einserseits und eine genaue Vorlage, was du entwickeln willst andererseits liegen, ist die Programmierung dann ein eher stumpfsinniger und schnell zu erledigender Job.
Was du gemacht hast, ist wohl drauflos zu programmieren und im Nachhinnein dann ein Problem damit zu haben, einen Entwurf erstellen zu müssen ohne zu wissen was das überhaupt ist oder was der Sinn darin ist, sehe ich das richtig?
*edit*
für näheres solltest du die Bibliothek beispielsweise mal nach diesem Buch durchwühlen, auch wenn der Einband stinkt und es inzwischen schon etwas unter Altersschwäche leidet:
http://www.amazon.de/Lehrbuch-Software-Technik-Software-Entwicklung-mit-CD-ROM/dp/3827404800/ref=sr_1_1?ie=UTF8&s=books&qid=1236651265&sr=8-1Was hat das jetzt mit der Frage zu tun? In seinem Pflichtenheft steht unter Anforderungen "Authentifizierung per LDAP", so einfach.
-
dreaddy schrieb:
Wenn du eine Software entwickelst, stehen die Technologien, mit denen du das realisierst erst einmal absolut im Hintergrund und haben keine Bedeutung.
Das stimmt nur, wenn du auf der grünen Wiese anfängst und ein komplettes System nach Anwenderanforderungen erstellst, ist aber falsch, wenn du eine Komponente für ein bestehendes System entwickelst.
Und genau dieser Prozess stellt den Entwurf dar, den du auch mit jedem Kunden besprechen kannst, da er kein Technikwissen voraussetzt, denn es geht um das WAS und nicht um das WIE.
Der Entwurf geht den Kunden nichts an. Vielleicht benutzt du das Wort auch falsch und meinst eigentlich etwas anderes.
-
den kunden geht der ganze prozess sehr wohl etwas an, schließlich bezahlt er dafür
-
Argh, jetzt hab ich tatsächlich zu später Stunde Entwurf mit Definition verwechselt, ich nehm alles zurück und behaupte das Gegenteil =[ *schäm*
Natürlich kann im Pflichtenheft auch "Authentifizierung per LDAP" stehen, aber auf Auftraggeberwunsch bzw weil die Rahmenbedingungen nichts anderes zulassen und nicht weil man in Eigeninitiative meint, dass das da grad super für geeignet ist.
-
besserwisser schrieb:
nur so aus interesse: wo genau ist der wissenschaftliche aspekt deiner arbeit zu finden?
Nirgendwo.
Ist nur ein blödes Programm.