Studienarbeit Informatik: Kapitel "Entwurf" soll technologieunabhängig 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 abstrahieren

    Und 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 abstrahieren

    Und 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-1

    Was 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.


Anmelden zum Antworten