Die Mathe-Redaktion - 14.12.2019 14:07 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 697 Gäste und 16 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 

Antworte auf:  Fragen zu Software Engineering von Chlorel
Forum:  Programmieren, moderiert von: matph

[Zur Forum-Gliederung] [Wie man Fragen beantwortet]

  Alle registrierten Mitglieder können Mitteilungen schreiben.
Benutzername:
Passwort:
Nachricht-Icon:                     
                    
                  
Nachricht:


 
 


Eingabehilfen (JavaScript): [Link extern intern] [MathML?] [$$?]
[fed-Bereich] [LaTeX-inline] [LaTeX-display] [Tikz] [hide-Bereich][show-Bereich] [Quelltext [num.]][?]
 Zeige Vorschau      Schreibe im fedgeoFormeleditor oder mit Latex.

Wähle Smilies für Deine Nachricht: :-) :-( :-D ;-) :-0 8-) :-? :-P :-|
Optionen: Deaktiviere HTML in dieser Nachricht
Deaktiviere MATHML in dieser Nachricht. Wenn Dein Text $-Zeichen enthält, die nicht LaTeX-Formeln begrenzen.
Deaktiviere Smilies in dieser Nachricht
Zeige die Signatur (Kann in 'Mein Profil' editiert werden.)
    [Abbrechen]
 
Beachte bitte die [Forumregeln]


Themenübersicht
kostja
Senior
Dabei seit: 29.12.2004
Mitteilungen: 5432
Herkunft: Stuttgart
 Beitrag No.6, eingetragen 2019-08-24 10:22    [Diesen Beitrag zitieren]

Hallo zusammen,

ich denke ein großer Vorteil eine Objekt-Bibliothek zu bekommen, wurde noch nicht genannt. Der Konsument muss die Bibliothek nicht selbst kompilieren. Das ist in der Praxis in der Regel nicht trivial. Linken ist schon hart genug.

Für die Übergabeparameter würde ich char const* verwenden. Wenn C++ im interface ok ist, dann std::string_view.

Für den Rückgabewert ist bool unter Umständen nicht ok. Das kann in Zukunft nicht erweitert werden um Fehlercodes anzuzeigen. Ich würde ein enum deklarieren für den Rückgabe wert.

Statt inverse include-guards würde ich “pragma once“ empfehlen.

Der Name der Implementierungsdatei ist völlig irrelevant. Den Header würde ich in einen include Unterordner parallel zum Quellcode legen. Mögliche Endung ist auch .hpp.

Man sollte sich auch Gedanken machen ob Makros vorbereiten möchte um die Symbole zu exportieren, sollte man eine dll oder shared-object Bibliothek anbieten wollen in Zukunft.

Grüße

Konstantin


Chlorel
Aktiv
Dabei seit: 13.09.2002
Mitteilungen: 99
Herkunft:
 Beitrag No.5, eingetragen 2010-06-16 16:09    [Diesen Beitrag zitieren]

Hallo Roland.

2010-06-15 11:29 - rlk in Beitrag No. 3 schreibt:
Ich finde, dass diese Fragen sich auf praktische Probleme beziehen. Im Vergleich zu oft sehr vagen Begriffen wie "Modularität", "Kopplung" usw. wie sie im Software Engineering verwendet werden, sind diese Fragen ja noch angenehm konkret.

Also ich muss sagen, dass ich gar keinen großen Bezug dazu habe. Für mich sind diese Begriffe oft einfach ohne wirklichen Inhalt. Liegt vielleicht auch gerade an den 35 A4 Seiten die ich für dieses Fach auswendig lernen muss. Eine wirkliche Beschäftigung mit der theoretischen Seite kommt da so gut wie nicht in Frage (Zeitdruck). Die praktische Seite finde ich wiederum sehr interessant.


Du musst keine Datei implementieren, um den Typ string verwenden zu können. Meinst Du vielleich inkludieren?

Exakt. Das ist wieder eine Begrifflichkeit für die ich keinen direkten Unterschied gesehen habe. :)


Zum Glück kann man solche Dinge ja nachsehen: laut dieser Seite ist bool ein in C++ vordefinierter Typ, es muss nichts inkludiert (und schon gar nicht implementiert) werden.
Deine Begründung ist richtig, der erste und der dritte Vorteil unterscheiden sich aber kaum voneinander.

Ich sehe oft den Wald vor lauter Bäumen nicht. Habe hier 3 verschiedene "Informatik für Ingenieure" Bücher rumzuliegen.


Hier ist mir nicht ganz klar, welche beiden Fälle Du hier vergleichst. Ich bin stillschweigend davon ausgegangen, dass das Sicherheitsmodul entweder als Quellcode oder als Objektcode zur Verfügung gestellt wird. Im ersten Fall ist das Risiko für den Anbieter, dass sein geistiges Eigentum in unerwünschter Weise verwendet wird, grösser als im zweiten.

Ich hätte in beiden Fällen jetzt keinen großen Unterschied gesehen. Oft fehlt eben das Verständnis für die feinen Unterschiede zwischen den Definitionen.

Danke nocheinmal. Du hast mir sehr geholfen - vor allem auch beim Verständnis und bei der Übersetzung der Informatiksprache.

@fejety:
Danke. Das wusste ich nicht.

Also nocheinmal vielen Dank für die schnelle und kompetente Hilfe.

Liebe Grüße
"Chlorel"


fejety
Senior
Dabei seit: 13.02.2007
Mitteilungen: 786
Herkunft:
 Beitrag No.4, eingetragen 2010-06-15 15:41    [Diesen Beitrag zitieren]

Hallo,

übrigens brauchen bool und int im Normalfall gleich viel Speicherplatz (4 Byte bei 32Bit-Systemen, 8 Byte bei 64Bit-Systemen). Das liegt daran, dass der Prozessor nicht direkt einzelne Bits auslesen kann, und das Auslesen in größeren Einheiten daher Geschwindigkeitsvorteile bietet.

Gruß, fejety


rlk
Senior
Dabei seit: 16.03.2007
Mitteilungen: 10602
Herkunft: Wien
 Beitrag No.3, eingetragen 2010-06-15 11:29    [Diesen Beitrag zitieren]

Hallo Chlorel,
es freut mich, dass ich Dir helfen konnte.
2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:
Doch natürlich. Der letzte Kontakt damit liegt aber schon fast 3 Jahre hinter mir. Ich kann mich kaum daran erinnern. Wir sind damals auch eher auf die Praxis eingegangen und nicht so sehr auf die Theorie.
Ich finde, dass diese Fragen sich auf praktische Probleme beziehen. Im Vergleich zu oft sehr vagen Begriffen wie "Modularität", "Kopplung" usw. wie sie im Software Engineering verwendet werden, sind diese Fragen ja noch angenehm konkret.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:
Ich bin leider in meiner bisherigen Informatik-Karriere auch zu sehr zwischen den verschiedenen C Typen gesprungen (C, C++, C#) weshalb sich irgendwann Verwirrung auftat. :)


2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.

Das ist mein Fehler. Eigtl. wollte ich einen String-Array angeben im Sinne von:
C++
char name[20], char passwort[20]

alternativ:
C++
string name, string name 

Ich vergesse leider immer wieder welche Datei ich implementieren muss um den Befehl string zu nehmen. Vorteil am String ist, dass die Länge nicht so statisch ist wie beim Array. Das ermöglicht eine dynamischere Länge der Namen. Einen direkten Vorteil bei der Verwendung von einem Char-Array kann ich nicht entdecken, außer es ist gewollt, dass der Name bzw. das Passwort eine feste Länge erhalten.

Du musst keine Datei implementieren, um den Typ string verwenden zu können. Meinst Du vielleich inkludieren?
Nach einem
C++
#include <string>
kennt der Compiler den Datentyp string und die dazugehörenden Methoden, deren Beschreibung Du zum Beispiel in dieser C++ Referenz findest.

Wenn Du den Typ string nicht verwenden willst, kannst Du auch Arrays char[] nehmen, die Länge kann in diesem Beispiel durchaus variabel sein, weil das Ende durch ein Nullzeichen '\0' angezeigt wird. Für kompliziertere Operationen ist aber string praktischer.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

Der Typ int des Funktionswertes gibt keinen Hinweis auf den binären Charakter des Ergebnisses. Welcher Typ wäre hier besser und warum?"

Blicke ich 5 Jahre zurück (meiner C++ Zeit) würde ich den Typ bool nehmen. Auch hier weiß ich leider nicht mehr, welche Datei ich für diesen Befehl implementieren muss.
Der Vorteil am Typ "bool" wäre die klar vorgegebenen 2 Zustände und der niedrigere Speicherverbrauch. Auch ist besser ersichtlich, dass es sich hier nur um 2 Zustände handeln kann.
Zum Glück kann man solche Dinge ja nachsehen: laut dieser Seite ist bool ein in C++ vordefinierter Typ, es muss nichts inkludiert (und schon gar nicht implementiert) werden.
Deine Begründung ist richtig, der erste und der dritte Vorteil unterscheiden sich aber kaum voneinander.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!

Also würde ich schreiben:
C++
/*
Sicherheits-Modul
Beschreibung:
Ein- und Ausgabeparameter:
Rückgabewert:
Einschränkungen:
*/
 
bool safety(string name, string passwort);

Ist das soweit okay und ausreichend?
Unter der Annahme, dass unter den Überschriften noch Text kommt, ist es ein guter Anfang. Weitere Informationen zum Autor, Datum der letzten Änderung, Hinweise zu der Lizenz usw. wären hilfreich. Bei komplizierteren Headerdateien ist ein Schutz gegen mehrfaches Inkludieren in der Form
C oder C++
#ifndef SAFETY_H
  // hier kommen Deklarationen und Definitionen
#define SAFETY_H 1
#endif
üblich. Oft wird die Form solcher Beschreibungen in einem Projekt festgelegt, als Beispiel kannst Du Dir etwa die GNU Coding Standards ansehen.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses Objekt in das Programmsystem ein?

Also ist "Linker" die richtige Antwort?
Ja, wobei der Linker oft mit dem selben Kommando wie der Compiler aufgerufen wird, zum Beispiel der GNU C++ Compiler:
shell
  1. g++ safety.cpp -o safety.o
  2. g++ hauptprogramm.cpp -o hauptprogramm.o
  3. g++ safety.o hauptprogramm.o -o hauptprogramm
In den Zeilen 1 und 2 wird der Compiler aufgerufen, um die  Quelldateien (.cpp) in Objektdateien (.o) zu übersetzen, in der Zeile 3 werden die beiden Objekdateien und die verwendeten Standardfunktionen aus der C++ Bibliothek zu der ausführbaren Datei hauptprogramm zusammengesetzt, dafür wird der Linker vom compiler driver g++ aufgerufen.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)
Danke für die Definition! Hat mir sehr geholfen.

Ganz klar die Vererbung (Wiederverwendung von Methoden etc. und dadurch Einsparung der Zeit). Ein Objekt von dem geerbt wird ist in aller Regel schon im Einsatz gewesen. So ist es durchschnittlich "fehlerfreier". Mensch spart Zeit bei der Programmierung und auch bei der evtl. Erweiterung des Moduls.

Hier verwechselst Du die Objektdatei (also das Ergebnis des Übersetzungsvorgangs) mit dem Objektbegriff aus der objektorientierten Programmierung. Dieser ist hier nicht gemeint, Deine Erklärungen dazu sind aber richtig.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:
Nachteilig für den Anbieter könnte sein, dass er geistiges Eigentum preisgibt und so evtl. einen Einblick in die Lösung komplexer Aufgaben ermöglicht. Dies könnte sich (betriebswirtschaftlich) nachteilig für den Anbieter auswirken.
Nachteilig für den Anwender könnte sein, dass er die evtl. eigenen Konventionen im Unternehmen so nicht einhalten kann. Möchte er oder eine andere Person des Unternehmens dieses Modul jetzt erweitern, könnte es zu Problemen kommen.

Ein weiterer Nachteil gerade im Hinblick auf ein Sicherheitsmodul wäre, dass sich mit einer Veröffentlichung der Sicherheitsroutinen evtl. auch Schwachstellen für Angreifer klar hervortun.

Hier ist mir nicht ganz klar, welche beiden Fälle Du hier vergleichst. Ich bin stillschweigend davon ausgegangen, dass das Sicherheitsmodul entweder als Quellcode oder als Objektcode zur Verfügung gestellt wird. Im ersten Fall ist das Risiko für den Anbieter, dass sein geistiges Eigentum in unerwünschter Weise verwendet wird, grösser als im zweiten.

Ich hoffe, das hilft Dir,
Roland


Chlorel
Aktiv
Dabei seit: 13.09.2002
Mitteilungen: 99
Herkunft:
 Beitrag No.2, eingetragen 2010-06-14 00:12    [Diesen Beitrag zitieren]

Hallo Roland,

danke für deine Antwort. Ich bin ziemlich erschlagen von diesem Informatik-Deutsch. Besonders 2.4 hat bei mir nur Fragezeichen hinterlassen. :)


wenn Du selbst schon programmiert hast, sind Dir dann Begriffe wie Headerdatei, Schnittstelle usw. nicht untergekommen?

Doch natürlich. Der letzte Kontakt damit liegt aber schon fast 3 Jahre hinter mir. Ich kann mich kaum daran erinnern. Wir sind damals auch eher auf die Praxis eingegangen und nicht so sehr auf die Theorie.

Ich bin leider in meiner bisherigen Informatik-Karriere auch zu sehr zwischen den verschiedenen C Typen gesprungen (C, C++, C#) weshalb sich irgendwann Verwirrung auftat. :)


2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.
C++
int safety(char name, char passwort);

Die Parameter name und passwort sind keine Buchstaben, daher ist der Typ char nicht geeignet. Welche Datentypen bieten sich hier an, welche Vor- und Nachteile haben die verschiedenen Möglichkeiten?

Das ist mein Fehler. Eigtl. wollte ich einen String-Array angeben im Sinne von:
C++
char name[20], char passwort[20]

alternativ:
C++
string name, string name 

Ich vergesse leider immer wieder welche Datei ich implementieren muss um den Befehl string zu nehmen. Vorteil am String ist, dass die Länge nicht so statisch ist wie beim Array. Das ermöglicht eine dynamischere Länge der Namen. Einen direkten Vorteil bei der Verwendung von einem Char-Array kann ich nicht entdecken, außer es ist gewollt, dass der Name bzw. das Passwort eine feste Länge erhalten.



Der Typ int des Funktionswertes gibt keinen Hinweis auf den binären Charakter des Ergebnisses. Welcher Typ wäre hier besser und warum?"

Blicke ich 5 Jahre zurück (meiner C++ Zeit) würde ich den Typ bool nehmen. Auch hier weiß ich leider nicht mehr, welche Datei ich für diesen Befehl implementieren muss.
Der Vorteil am Typ "bool" wäre die klar vorgegebenen 2 Zustände und der niedrigere Speicherverbrauch. Auch ist besser ersichtlich, dass es sich hier nur um 2 Zustände handeln kann.


2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!

Als absolutes Minimum reicht für den Inhalt des Headerfiles die Deklaration der Funktion aus 2.1 aus, aber es sollte zumindest eine Beschreibung der Funktion mit Erklärungen zu den Ein- und Ausgabeparametern, dem Rückgabewert und Einschränkungen (z.B. minimale und maximale Länge von name und passwort, in diesen erlaubte Zeichen).

Also würde ich schreiben:
C++
/*
Sicherheits-Modul
Beschreibung:
Ein- und Ausgabeparameter:
Rückgabewert:
Einschränkungen:
*/
 
bool safety(string name, string passwort);

Ist das soweit okay und ausreichend?


2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses         Objekt in das Programmsystem ein?

Compiler (?)
Der Compiler erzeugt Objektcode aus dem Quellcode, der Linker setzt den Objektcode aller verwendeten Module zu einer ausführbaren Datei zusammen.

Also ist "Linker" die richtige Antwort?


2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)

Ein Modul (das meist mehr als eine Funktion enthält) stellt eine in der Headerdatei definierte Schnittstelle zur Verfügung, wenn diese ausreichend beschrieben ist (siehe 2.4), kann man das Modul verwenden, ohne über die Details der Implementierung Bescheid wissen zu müssen.

Welche anderen Vor- und Nachteile fallen Dir ein? Versetze Dich dazu in die Lage eines Modulanbieters und des Anwenders.

Danke für die Definition! Hat mir sehr geholfen.

Ganz klar die Vererbung (Wiederverwendung von Methoden etc. und dadurch Einsparung der Zeit). Ein Objekt von dem geerbt wird ist in aller Regel schon im Einsatz gewesen. So ist es durchschnittlich "fehlerfreier". Mensch spart Zeit bei der Programmierung und auch bei der evtl. Erweiterung des Moduls.

Nachteilig für den Anbieter könnte sein, dass er geistiges Eigentum preisgibt und so evtl. einen Einblick in die Lösung komplexer Aufgaben ermöglicht. Dies könnte sich (betriebswirtschaftlich) nachteilig für den Anbieter auswirken.
Nachteilig für den Anwender könnte sein, dass er die evtl. eigenen Konventionen im Unternehmen so nicht einhalten kann. Möchte er oder eine andere Person des Unternehmens dieses Modul jetzt erweitern, könnte es zu Problemen kommen.

Ein weiterer Nachteil gerade im Hinblick auf ein Sicherheitsmodul wäre, dass sich mit einer Veröffentlichung der Sicherheitsroutinen evtl. auch Schwachstellen für Angreifer klar hervortun.


Ich weiß gar nicht wie ich mich für deine Antwort bedanken soll! Das Fach ist für mich ein absolutes Kauderwelsch... Wir müssen um die 35 A4 Seiten Definitionen auswendig lernen. Das hier die Verständlichkeit leidet, ist logisch. :(

Also vieeelen vielen Dank noch einmal!

Liebe Grüße
"Chlorel"


Edit: Formatierung verbessert.
[ Nachricht wurde editiert von Chlorel am 14.06.2010 00:30:26 ]


rlk
Senior
Dabei seit: 16.03.2007
Mitteilungen: 10602
Herkunft: Wien
 Beitrag No.1, eingetragen 2010-06-13 23:20    [Diesen Beitrag zitieren]

Hallo Chlorel,
wenn Du selbst schon programmiert hast, sind Dir dann Begriffe wie Headerdatei, Schnittstelle usw. nicht untergekommen?

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
Definition einer Modulschnittstelle
Sie benötigen ein Sicherheitsmodul, das den Namen und das Passwort als Eingabewert erhält und ein „ok“ (Wert 0) und ein „Nicht-Ok“ (Wert 1) zurückgibt.

2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.
C++
int safety(char name, char passwort);


Die Parameter name und passwort sind keine Buchstaben, daher ist der Typ char nicht geeignet. Welche Datentypen bieten sich hier an, welche Vor- und Nachteile haben die verschiedenen Möglichkeiten?

Der Typ int des Funktionswertes gibt keinen Hinweis auf den binären Charakter des Ergebnisses. Welcher Typ wäre hier besser und warum?

2010-06-13 21:37 - Chlorel im Themenstart schreibt:

2.2: Diese Funktion ist die externe Schnittstelle des Moduls safemod, das in Zukunft in allen Ihren Programmen integriert werden soll. Welchen Namen sollte der HeaderFile dieses Moduls tragen?

safemod.h
Ja, das ist die übliche Konvention.

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.3: Welchen Namen sollte das Implementierungsfile tragen?

safemod.cpp
Das ist die mir am geläufigste Variante für C++, auch
safemod.cc
safemod.cp
safemod.cxx
safemod.cpp
safemod.c++
safemod.C

sind möglich und werden vom GNU C++ Compiler g++ unterstützt.

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!

Als absolutes Minimum reicht für den Inhalt des Headerfiles die Deklaration der Funktion aus 2.1 aus, aber es sollte zumindest eine Beschreibung der Funktion mit Erklärungen zu den Ein- und Ausgabeparametern, dem Rückgabewert und Einschränkungen (z.B. minimale und maximale Länge von name und passwort, in diesen erlaubte Zeichen).

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses         Objekt in das Programmsystem ein?

Compiler (?)
Der Compiler erzeugt Objektcode aus dem Quellcode, der Linker setzt den Objektcode aller verwendeten Module zu einer ausführbaren Datei zusammen.

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)

Ein Modul (das meist mehr als eine Funktion enthält) stellt eine in der Headerdatei definierte Schnittstelle zur Verfügung, wenn diese ausreichend beschrieben ist (siehe 2.4), kann man das Modul verwenden, ohne über die Details der Implementierung Bescheid wissen zu müssen.

Welche anderen Vor- und Nachteile fallen Dir ein? Versetze Dich dazu in die Lage eines Modulanbieters und des Anwenders.

Ich hoffe, das hilft Dir,
Roland


Chlorel
Aktiv
Dabei seit: 13.09.2002
Mitteilungen: 99
Herkunft:
 Themenstart: 2010-06-13 21:37    [Diesen Beitrag zitieren]

Hallo!

Ich bin Student der Elektrotechnik im "Endstadium" sozusagen und habe ein Fach, welches mir ein paar Probleme bereitet: "Software Engineering". Im Programmieren bin ich eigentlich immer sehr gut gewesen (durchgängig einsen), jedoch geht es in diesem Fach massiv um theoretische Grundlagen, für die wir die Basis noch nicht einmal haben.

Ich habe mir von der Probe-Klausur folgende Fragen aufgeschrieben, da ich dafür nur bedingt antworten hatte. Vielleicht könnt ihr mir dabei weiterhelfen. Wenn es möglich ist nicht nur mit Lösungen, sondern auch mit kurzen Erklärungen dazu, also ein "warum". Die Lösungen die ich gefunden habe, habe ich bereits hingeschrieben.


Definition einer Modulschnittstelle
Sie benötigen ein Sicherheitsmodul, das den Namen und das Passwort als Eingabewert erhält und ein „ok“ (Wert 0) und ein „Nicht-Ok“ (Wert 1) zurückgibt.

2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.
C++
int safety(char name, char passwort); 



2.2: Diese Funktion ist die externe Schnittstelle des Moduls safemod, das in Zukunft in allen Ihren Programmen integriert werden soll. Welchen Namen sollte der HeaderFile dieses Moduls tragen?
C++
safemod.h


2.3: Welchen Namen sollte das Implementierungsfile tragen?
C++
safemod.cpp


2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!


2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses         Objekt in das Programmsystem ein?

Compiler (?)


2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)


Das sind die Fragen, die mir Kopfschmerzen bereiten. So ziemlich die Einzigen in der gesamten Klausur, da der Rest logisch ist. Nur diesen Teil konnte ich einfach nicht entziffern. Das ist sozusagen chinesisch für mich.

Vielen Dank schon einmal für das lesen.

Liebe Grüße
"Chlorel"
[ Nachricht wurde editiert von Chlorel am 14.06.2010 00:28:15 ]


 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]