Informatik (Fach) / AI1 (Lektion)

In dieser Lektion befinden sich 53 Karteikarten

.

Diese Lektion wurde von Tahl erstellt.

Lektion lernen

Diese Lektion ist leider nicht zum lernen freigegeben.

  • Abstraktion Fähigkeit, Details zu ignorieren, um den Fokus der Betrachtung auf eine höhere Ebene lenken zu können
  • Modularisierung der Prozess der Zerlegung eines Ganzen in wohl definierte Teile, die getrennt erstellt und untersucht werden können und die in wohl definierter Weise interagieren
  • Schwerwiegende Programmierfehler Absturz Ariane 5 Therac 25 (Medizinisches Bestrahlungsgeraät) Mars Climate Orbiter (Falsches Maßsystem bei der Triebwerksteuerrung; Sonde geht verloren)   --> Teuer
  • Fehlerarten Lexikalische Fehler Syntac Fehler Laufzeitfehler Ausführung/logische Fehler
  • Lexikalische Fehler Auftreten von Begriffen, die nicht definiert sind (Tippfehler, vertauschte Buchstaben, fehlende Namen, unbekannte Methoden, Groß- Kleinschreibung)
  • Syntax Fehler Nicht-Einhalten festgelegter Regeln der Programmiersprache   Definition außerhalb von Klammern Klammern fehlen Punkte, Semikolon vergessen oder zuviel Falsche Reihenfolge von Parametern
  • Laufzeitfehler Fehler, die zur Laufzeit erkannt werden (doppeltes Löschen eines Elements, Zugriff auf Index außerhalb eines Arrays)
  • Ausführungsfehler Fehler in der Logik des Programmablaufs. Das Programm tut etwas aber nicht das was es soll
  • Wieso ist Prävention von Fehlern wichtig? Einen Fehler in der Wartung zu finden und zu beheben ist 100 mal so teuer wie im Design. Deshalb Fehlerwk verringern (Kapselung, systematische Fehlersuche) Fehlererkennung erhöhen(Modularisierung, Dokumentation, ...
  • Methoden der systematischen Fehlersuche Manuelle Ausführung Mündlische Ausführung Objektzustand tabellieren Ausgabeanweisungen Debugger
  • Wichtige Funktionen eines Debugger sprachen- und umgebungsspezifisch 1) Steuerung Programmablauf: Programm kann angehalten werden(Haltepunkt); Durchschreiten des Programmtextes in Einzelschritte (Schritt über/hinein) 2) Inspizieren von ...
  • Grundsätze vom Testen Vertrag festlegen Suche nach Vertragsverletzung durch positives und negatives Testen Testen von Grenzberreichen
  • Wieso sollten Tests automatisiert werden Regressionstests: Wiederholung von bereits erfolgreichen Testfällen um Auswirkungen von Modifikation in bereits getesteten Teilen der Software aufzuspüren   --> mehrmals wdhl --> manuell fehleranfällig ...
  • Was umfasst eine Dokumentation Name der Klasse allgemeine Beschreibung K Versionsnummer, Autor Liste Konstruktoren +Methoden (Ereignistypen+Parameter+Beschreibung Zweck) Dokumentation jedes Konstruktors jeder Methode Name Zweck+Arbeitsweise ...
  • Wie sieht Kommentierung aus? /** @ {inheritDoc} @author @version @param @return */
  • Wozu benötigt man einen guten Klassenentwurf? Wartung Anpassung Veränderung (zukünftige sollen erleichtert werden) Erweiterung ...von Code durch unterschiedliche Programmierer
  • Kohäsion Anzahl und Vielfalt der Aufgaben, die die eine einzelne Einheit einer Anwendung verantwortlich ist. Das Prinzip bezieht sich auf Klassen (sollten ein Typ Objekt modellieren) und Methoden (eine logische ...
  • Vorteil hoher Kohäsion Wiederverwendbarkeit (der Einheit in anderen Kontexten) Stellen, die von Änderungen betroffen sind lassen sich leichter lokalisieren Lesbarkeit Besseres Verständnis über Funktion einer Einheit
  • Kopplung bezieht sich darauf, wie separate Einheiten eines Programms miteinander verknüpft sind (Grad der Abhängigkeit zweier Klassen) lose Kopplung d.h. jede Klasse arbeitet weitgehend unabhängig und kommuniziert ...
  • Vorteile loser Kopplun Änderung lokal halten Klasse verstehen ohne andere Klassen verstehen zu müssen bessere Wartbarkeit
  • Kapselung Informationen über die Implementierung verbergen. Interessant ist was ein Objekt macht, nicht wie (Geheimnisprinzip) Ermöglicht Änderung von Implementierung ohne andere Klassen zu beeinträchtigen ...
  • Entwurf nach Zuständigkeit Jede Klasse ist für den Umgang mit ihren Daten verantwortlich. Methoden, die Daten verarbeiten sollten deshalb zu der Klasse gehören, die für diese Daten verantwortlich sind
  • Refactoring Restruckturierung eines bestehenden Entwurfs, um die Qualität des Klassenentwirfs zu erhalten   Wenn Klasse erweitert wird kommt meist neuer Code hinzu Refactoring getrennt von anderen Änderungen Testen ...
  • Wobei hilft Vererbung Vermeidung von Code Duplizierung Wiederverwendung von Code Einfachere Wartung Erweiterbarkeit
  • Statischer vs. dynamischer Typ Statischer Typ: Typ der Variable mit der sie im Quelltext deklariert wird. Bestimmt welche Werte zugewiesen werden können, welche Methoden ausgeführt werden können Im Gültigkeitsberreich ihrer Deklaration ...
  • Methodensuche Auf Variable wird zugegriffen In Variabel gespeichertes Objekt wird aufgerufen Klasse des Objekts gefunden und nach übereinstimmender Methode durchsucht Wird keine Übereinstimmung gefunden, wird die ...
  • Methoden Polymorphie Derselbe Methodenaufruf kann zu unterschiedlichen Zeitpunkten verschiedene Methoden aufrufen, abhängig vom dynamischen Typ der Variablen, mit der der Aufruf durchgeführt wird
  • Zugriffsrechte private: nur innerhalb KLasse public: gesamtes Programm protected: Zugriff innerhalb einer Vererbungshierachie
  • Identität vs. Gleichheit Identität: == Verweis auf die selbe Instanz im Hauptspeicher Gleichheit: equals:Verweis auf verschiedene Instanzen mit identischen Parametern Identische Objekte sind Gleich. (Umgekehrt muss dies nicht ...
  • Prozess Ein Prozess beschreibt die Ausführung eines oder mehrerer Programme und gibt Aufschluss darüber welche Aktivitäten in einem System stattfinden z.B.: welche ZUgriffsrechte ein Programm zur Zeit hat, ...
  • Betriebssystem Definition Menge von Programmen, die Programmen, Anwendungen Benutzer assistieren Ausführung von Programmen steuern und Bewachen den Rechner für eine Anwendungsklasse betreiben eine abstrakte Maschine implementieren ...
  • Betriebsmittelarten wiederverwendbar (teilbar, unteilbar) (CPU Speicher, Geräte) konsumierbar (Daten, Signale, Nachrichten
  • Konflikt Betriebsmittelzuteilung Wenn auf begrenzte Anzahl gemeinsamer Betriebsmittel, die unteilbar und von der selben Art sind durch zwei Prozesse gleichzeitig zugegriffen wird
  • Streit Betriebsmittel Ein Prozess fordert ein Betriebsmittel an, das ein anderer Prozess bereits besitzt
  • Ziele Betriebsmittelverwaltung konfliktfreie Abwicklung korrekte Bearbeitung in endlicher Zeit gleichmäßige, maximierte Auslastung der Betriebsmittel hoher Durchsatz, kurze Durchlaufzeit, hohe Ausfallsicherheit Betriebsmittelanforderung ...
  • Aufgabe Betriebsmittelverwaltung Buchführung über im Rechnersystem vorhandene BM Art, Klasse, Zugriffsrechte,Prozesszuordnung, Nutzungszustand- dauer   Steuerung der Verarbeitung von BManforderungen engegennahme, Überprüfung Zugangsrechte ...
  • Voraussetzung Verklemmung notwendig exklusive Belegung (unteilbar nutzbar) Nachforderung kein Entzug hinreichend zirkulares Warten
  • Wie entwickeln sich Betriebssysteme Dienstleister, die Rechnerhardeware nutzbar machen soll Betriebssystem abhängig von Anwendungszweck und Hardeware Fertigkeiten des Entwicklungspersonals
  • Multiprogrammbetrieb und Simultanbetrieb Multiplexen CPU zwischen mehreren Programmen Nebenläufigkeit Abschottung der sich in Ausführung befindlicher Prozesse (Adressraumschutz) Wartezeit von x wird für y verwendet aktives warten vermeiden ...
  • Dialogbetrieb Benutzereingabe und Verarbeitung wechseln sich ab E/A intensive Anwendungen interagieren mit Benutzer über Dialogstationen(Tastatur, Maus) Einplanung bevorzugt interaktive Prozesse (Benutzerfreundlicher) ...
  • Teilnehmerbetrieb Dialogstationen können Dialogprozesse absetzten--> wirkt Monopolisierung vor Zeitscheibe: Jeder Prozess bekommt CPU für Zeitspanne zugeteilt Zeitgeber sorgen für zyklische Programmunterbrechung (Intervall ...
  • TTeilhaberbetrieb Dialogstationen teilen sich gemeinsamen Dialogprozess gleichartige Vorgänge an Datenstationen Endbenutzerdienst mit festem, definierten Funktionsangebot Transaktionssysteme Kassen Bankschalter Klient/Anbieter ...
  • Cloud Computing Selbstzuweisung von Ressourcen auf Anfrage Ortsunabhängigkeit Skalierbarkeit Elastizität Abrechenbare Dienstnutzung   SDienstmodelle Cloud Software as a service platform Infrastruktur
  • Spezialzweckbetriebssystem Betriebssystem+ Anwendungsprogramm bilden geschlossene Einheit maßgeschneidert Quelltext Bibliothek Auto, Kraftwer, Flugzeug
  • Virtueller Adressraum Illusion von einem eigenen Adressraum für jedes im Arbeitsspeicher ggf. unvollstänfig vorliegende Programm Programm-->logischer Adressraum (das braucht er) logischer Adressraum--> virtueller Adressraum ...
  • Vordergrundspeicher Bereich im physikalischen Adressraum Zentralspeicher zur Programmausführung kurzfristige Speicherung im ns
  • Hintergrundspeicher Massenspeicher (Band, Platte,CD,DVD) über Rechnerperipherie angeschlossen Datenablage und Implementierung virtueller Adressräume größer als phy. adressraum (Petabytes) mittel- bis langfristige Speicherung ...
  • Datei Sammlung von Daten zusammenhängende, abgeschlossene Einheit, eindimensional adressierte bytes Dauerhaftigkeit abhängig von Speichermedium nicht flüchtig: Platte, Band, CD flüchtig: Ram Kommunikationsmittel ...
  • Bezeichnung Dateien symbolische Adresse(Dateiname) der nach innen durch numerische Adresse abgebildet wird systemdef. Kennung einer Datenstruktur der Dateiverwaltung identifiziert den Dateikopf (Inode) Inode enthält Dateiattribute(Eigentümer,Typ,Rechte, ...
  • Namensraum ordnen Namen Bedeutung zu flache Struktur: def. nur einen einzigen Kontext hierarchische Struktur:def. mehrere Kontexte (Kontextname als Präfix) Seperatoren Schrägstrich Name einer Datei= Blatt des ...