Uploaded by ibra.26_9

Formelsammlung IT (1)21

advertisement
Programmiersprachen: Editor: dient zur Eingabe des Programmcodes !! Compiler: übersetzt Programmiersprache in
Assembler-Code !! Assembler: übersetzt Assembler-Sprache in Maschinencode, erzeugt Objektdatei !! Linker: verknüpft
Objektdatei, verwendet Funktionen aus Bibliotheken, erzeugt ausführbare Datei !! Bibliothek: Sammlung von fertigen
Funktionen !! Debugger: Unterstützt den Entwickler bei der Fehlersuche, in dem er Einblick in den Programmzustand zur
Laufzeit
gewährt
!!
Abstraktionsebenen:
1.Hochsprache(Hardware
unabhängig,
menschenlesbar),
2.
Assembler(Menschenlesbare Repräsentation der Sprache des Rechners(Maschinenbefehle)), 3.Maschinencode(Folge aus 0en
und 1en) !! Globale Variablen: V: kann überall in Quelldatei genutzt werden, N: belegt ständig Speicherplatz, Verlust der
Übersicht bei größeren Programmen !! Lokale Variablen: V: Speicherplatz nur dann verbraucht, wenn es benötigt wird,
Zugriffskontrolle, N: Variablen/Werte müssen übergeben werden, wenn sie in anderen Funktionen verwendet werden !!
Pointer: wichtig für Hardware Zugriff, da mit Adressen von Registern gearbeitet werden kann, können Null sein !!
Referenzen: verweisen auf dieselbe Variable, können nicht Null sein !! Call by value: N: Variable muss in eine neue kopiert
werden, Kostet Speicher und Rechenzeit, Funktion kann die übergebenen Variablen nicht verändern, weil sie Kopien enthält,
V: komplette Trennung der Variablen beim Funktionsaufruf !! Call by Reference: N:Evtl unbabsichtigte Veränderung von
Variablen, Bei einer Veränderung ist der ursprüngliche Wert überschrieben, V: Kostet keinen Speicher und keine Rechenzeit
für Kopie, Funktion kann die übergebenen Variablen verändern, Übergabe komplexer Strukturen !! Call by pointer: N:
Umständlicher Zugriff über Zeiger, V: Kostet keinen Speicher und keine Rechenzeit, Funktion kann die übergebenen
Variablen verändern, Zeiger kann verändert werden, Übergabe komplexer Strukturen !! Vergleich: Call by Reference und
Pointer sind effizient, wenn Parameter keine primitiven Datentypen sind !! Datentypen: short->-32768 bis 32767, char->128 bis 127, float hat 6 Nachkommastellen, double 15 !! Bitweise Und(&): beide Operanden haben eine 1 an der Position
=>1, Bitweise Oder: zwei bits 0=>0 !! Programmierparadigmen: Imperativ(Assembler), Prozedural(Prozeduren berechnen
Werte nach einem Algorithmus und geben diese zurück, C), Funktional(Funktionen, die einem Vektor von Parametern einen
Wert zuordenen, LISP), Logikbasiert(Logische Aussagen, PROLOG), Objektorientiert(C++)
Objektorientierung: Objekt=Exemplar eines bestimmten Datentyps oder einer bestimmten Klasse(selbstdefinierter Datentyp
erzeugt durch Zusammensetzen von elementaren Datentypen)=hat Attribute und Methoden(spezielle Funktionen, deren
Aufruf stets unter Angabe eines Objekts der Klasse erfolgen muss) !! Prinzipien Objektorientierung: 1.Kapselung: Es wird
bei der Definition einer Klasse festgelegt, welche Elemente vor einem Zugriff von außen geschützt werden(private) und
welche Elemente öffentlich verfügbar sind(public), 2.Wiederverwendbarkeit: Einmalige Definition wie die Klasse
funktioniert und das immer wieder, auch für neue Typen von Objekten verwenden, 3.Datenabstraktion: Dinge und Vorgänge
werden auf das Wesentliche reduziert !! Sichtbarkeit: 1.Private(-): nur in der aktuellen Klasse sichtbar, für Aufrufer von
Objekten der Klasse als auch für abgeleitete Klassen unsichtbar(nur innerhalb der Klasse zugreifbar), 2.Protected(#): in der
aktuellen Klasse und in abgeleiteten Klassen sichtbar, Methoden von abgeleiteten Klassen können auf sie zugreifen, aber von
außerhalb der Klasse nicht zugreifbar, 3.Public(+): überall sichtbar, können in der eigenen Klasse und von Methoden anderer
Klassen verwendet werden !! Vererbung=Superklassen vererben Eigenschaften an ihre Kindklassen, die Subklassen
heißen(V: reduzierter Programmieraufwand, verständlicher Quellcode, Effizienz, Performanzmaximierung) ! Public
Vererbung: public Elemente der Basisklasse auch in der Kindklasse öffentlich ! Protected Vererbung: Basisklasse public
Elemente als auch protected vererbt ! Private Vererbung: public und protected Elemente als private vererbt !! Header-Datei:
Deklaration von Klasssen, Definition von Methoden !! Quelldatei: Implementierung der Funktionalität !! Jede Klasse hat 3
Standardmethoden: Default-Konstruktor, Destruktor(Speicher/Ressourcen freigegeben, der zuvor von dem zugehörigen
Objekt alloziert wurde), Kopier-Konstruktor !! Polymorphie: Ein Pointer vom Typ einer Basisklasse mit einer definierten
Schnittstelle kann auf Objekte beliebiger abgeleiteter Klasse mit kompatiblem Interface verweisen, ohne dass die abgeleitete
Klasse vorher bekannt sein muss=> wir überschreiben oder überladen die Methode in der Subklasse ! 1.Earlybinding(Compile-Zeit Polymorphismus): Zum Zeitpunkt der Kompilierung ist klar, welche Methode aufgerufen wird und die
Fuktion wird also überladen ! 2.Late-binding(Runtime Polymorphismus): Erst zur Laufzeit wird bestimmt, welche Methode
aufgerufen wird und die Funktion wird überschrieben(virtual vor Methode schreiben und Objekt als Pointer) !! Probleme
beim Casting: Dezimal- zu Ganzzahl->Verlust von Nachkomastellen, Von großen in kleinere Datentypen-> Programmfehler
!! Klassenbeziehungen: !Assoziation(vollausgemalener Pfeil): Objekte kommunizieren (un)gerichtet !Aggregation(leere
Raute, ausgemalener Pfeil):spezielle Assoziation, Überordnung und Einbeziehung der Klassen untereinander, drückt TeilGanzes-Beziehung aus !Komposition(volle Raute, ausgmalener Pfeil):wie Aggregation, Existenz ohne Wechselwirkung
unmöglich !Generalisierung bzw. Spezialisierung: leere Pfeile, verdeutlichen Eltern-Kind-Beziehung
Rechnerarchitektur: John von Neumann: !CPU(Steuerwerk: Befehlsdekodierung, -adressierung und Ansteuerung der
anderen Komponenten, Rechenwerk: Führt arithmetisch-logische Operationen, die in Maschinenbefehlen enthalten sind, aus)
!Speicher=speichert Maschinenbefehle und zugehörige Daten, !Systembus=verbindet Komponenten, überträgt Daten,
Befehle, Steuersignale, ! Ein-/Ausgabewerk: Schnittstelle zur Ansteuerung von Peripherie !! Arbeitsweise von Neumann:
1.FETCH(Befehl aus dem Speicher in den Prozessor holen), 2.DECODE(Befehl im Steuerwerk dekodieren), 3.FETCH
OPERANDS(Operanden aus dem Speicher oder der Peripherie in den Prozessor holen), 4.Execute(Befehl im Rechenwerk
ausführen), 5.WRITE BACK(Ergebnis in den Speicher oder die Peripherie schreiben) !! Befehlstypen: Transportbefehl,
Verarbeitungsbefehle(in der ALU), Steuerbefehle
!! Prozessorarten:1.General-Purpose Processors(CISC,RISC), 2.Special-Purpose Processors(µC,DSP,ASIP,GPU),
3.Programmable Hardware(FPGA), 4.Application Specific Integrated Circuit(ASIC) !! CISC(Complex instruction set
computer): !Schwerpunkt auf Hardware, !Benötigt mehr Transistoren zum Speichern komplexer Instruktionen, !Mehrere
Taktzyklen pro Instruktion, !Memory-to-Memory-Architektur(Load/Store eingebaut)->viele MOVE !! RISC(Reduced…):
!Schwerpunkt auf Software, !Mehr Transistoren für Speicherregister, !Nur ein Taktzyklus pro Instruktion, !Load-StoreArchitektur(Load/Store unabhängig)->viele LOAD/STORE !! Vergleich: CISC-viele komplexe Befehle, also kleinere
Programme, aber Befehlskodierung aufwändig, RISC-viele einface Befehle, Befehlskodierung einfach !! Interne
Architektur des Prozessors: Definiert die interne Hardware-Architektur des Rechners !! Externe Archiktektur:
Maschinenbefehlssatz bzw. Instruction Set Architecture (ISA) !! Register: schnellste Speichermöglichkeit, wird mit FlipFlops realisiert !! Hauptspeicher: (Unten-Oben) 6.Text(Instruktionen, Konstanten), 5.Data(Initialisierte Daten),
4.BSS(Keine explizite Initialisierung im Code), 3.Heap(zur Laufzeit allokierter Speicher-new Befehl), 2.Frei(vefügbarer
nicht allokierter Speicher), 1.Stack(Unterprogrammen,Funktionen) !! Hierarchie Speicher: Platten-Speicher (extern),
Hauptspeicher, Cache (LN-L1), Register des Prozessors
Lokälität bei Speicherhierarchie: Zeitlich(benutzte Daten/Befehle werden bald wieder benutzt), Räumlich(Auf
Daten/Befehle, die im Adressraum nahe zu gerade benutzten liegen, wird wahrscheinlicher verwiesen) !! HarvardArchitektur: !Problem: Ein Speicher sowohl für Programm-Daten als auch Daten-Daten führt zu einem PerformanceFlaschenhals, da Befehlsausführung um ein Vielfaches schneller als Speicherzugriff., !Lösung 1: Parallelisierung des Zugriffs
durch Aufteilung in Daten- und Befehlsspeicher, !Lösung 2: Cache alls schneller Puffer in den Prozessor einbauen !!
Cacheorganisation: 1.Direct Mapped(Ein Block kann nur an einer Adresse mod m geschpeichert werden, wobei m die
Cache-Größe ist) m=S*N, S=m, N=1, 2.N-Wege Assoziativ(Ein Block kann in einem von N Cache-Blöcken geschpeichert
werden, bei denen die Hauptspeicheradresse mod S gleich der Cache-Adresse mod S ist), 3.Voll-Assoziativ(Jeder Block kann
an allen Adressen geschpeichert werden)!! Vor- und Nachteile: 1.Direct Mapped: V:Finden des Eintrags(Hit/Miss) sehr
schnell, N:Verdrängung auch bei quasi leerem Cache möglich, 2.N-Wege Assoziativ: V:Flexibler als direkt-abbildend und
somit weniger Verdrängungen, N:Höherer Hardwareaufwand und größere Chipflache, 3.Voll-Assoziativ: V:Genauso wie bei
2., N: m − 1 mehr Komparatoren als bei direkt-abbildenden Caches benötigt werden und damit mehr Fläche verbraucht !!
Verdrängungsstrategien(eine Methode, die entscheidet, welcher Block im Cache ersetzt wird, falls ein neuer Block für neue
Daten gebraucht wird): LRU(least recently used): Die Daten, die am längsten aus den Cache von der CPU nicht benutzt
wurden, werden verdrängt, LFU (last freqently used): Die Daten, die am seltensten aus den Cache von der CPU benutzt
wurden, werden verdrängt, FIFO (first in first out): Die Daten die sich schon am längsten im Cache befinden werden
verdrängt, Random: Zufällig ausgewählter Block wird verdrängt !! Cache Hit: Benötigtes Datenwort ist im Cache und kann
direkt von dort geholt werden !! Cache Miss: Benötigtes Datenwort ist nicht im Cache und muss aus dem Speicher geholt
werden !! Offset=adressiert ein Datenwort !! Index=adressiert ein Set !! Tag=Hit feststellen !! Valid-Bit=Gibt an ob der
Block in Benutzung ist, oder ob der Block frei ist !! Dirty-Bit=Inkonsistenz markieren(Daten im Cache neuer als im
Hauptspeicher)
!!
Cacheaddressenrechnung:
!Offset=ld(Blockgröße)
!Index=ld(Cachegröße/(Blockgröße*N))
!Tag=Addressbreite-Index-Offset !! Pipelining(Zeitliche Überlappung der Befehlsausführungsphasen resultiert in einer
höheren Taktrate und einem höheren Durchsatz) Phasen: IF(Instruction Fetch), ID(Instruction Decode), EX(Execute),
ME(Memory Access), WB(Write Back) !! Ausführungszeit einzelne Instruktion: Einzeltakt>Pipelining, InstruktionsDurchsatz:Pipelining>Einzeltakt !! Superpipelining=Pipeline in noch merh Stufen zerlegen !! Superskalarität= Einsatz von
mehreren Ausführungseinheiten und deren dynamische Befehlszuweisung zur parallelen Ausführung mehrerer Befehle, was
im Idealfall zur Vervielfachung der Leistung führt (mehr ALUS) !! VLIW=Parallelisierung durch Compiler !! Zeitliche
Parallelität: Abarbeitung einer Instruktion wird in einzelne Phasen aufgeteilt. Mehrere Befehle werden bzgl. der Phasen
überlappend abgearbeitet(Pipelining) !! Räumliche Parallelität: Es existieren mehrere Funktionseinheiten, die voneinander
unabhängige Befehle parallel bearbeiten können(Supersklarität) !! Polling(das Programm prüft zyklisch, ob es
Veränderungen in der Hardware/Peripherie gab und reagiert dementsprechend):einfach, keine zusätliche Hardware nötig,
beleht ständig CPU-Leistung, !! Interrupt(stellt eine Unterbrechung des normalen Programmablaufs dar und wird durch ein
Hardware-Event ausgelöst. In der Interrupt-Service-Routine (ISR) kann auf Veränderungen in der Hardware zeitnah reagiert
werden): Laufzeiteffizient, zusätliche Hardware notwendig ! Schritte: Prozessor wird unterbrochen—Prozessor hält den
laufenden Thread an—Prozessor speichert Thread-Status—Prozessor führt ISR aus—Prozessor führt den vorher
unterbrochenen Thread aus ! ISR=Programmstück, das vom CPU ausgeführt wird, wenn es durch eine
Unterbrechungsanforderung(IRQ) gezweungen wird, den Interrupt auszuführen !! Write through=Änderungen werden in
den Cache geschrieben und im selben Schreibvorgang auchin den Hauptspeicher übertragen(V: Daten im Cache und im
Hauptspeicher sind immer konsistent, N: höhere Belastung des Systembuses) !! Volatile: Wenn externe Hardware den Wert
in einem Register ändern kann, dann schreiben wir volatile vor der Variable und diese wird aus Hardware-Register geladen,
nicht aus Cache oder Hauptspeicher(Ohne volatile könnte es passieren, dass ein gelesener oder geschriebener Variablenwert
nicht dem Wert des Peripherieregisters, das von der Hardware asynchron aktualisiert wird, entspricht) !! Big/Little Endian:
niederwertigste Byte an höchsten/kleinsten Adresse speichern
Betriebssysteme: Betriebssystem Hauptaufgaben: 1.Abstraktion: !Schnitstelle für Zugriff auf Hardware des Rechners,
!HW-unabhängiges Anwendungsprogramm, kein Assembler-Code nötig, 2.Virtualisierung: Mehrere Anwendungsprogramme
können eine Ressource gemeinem nutzen, als ob jede Anwendung die Ressource alleine besitzen würde, 3.Trennung der
Anwendungsprogramme voneinander: !Daten separiert(Anwendung kann die Daten einer anderen nicht schreiben/lesen),
!Eine Anwendung darf einer anderen Anwendung die Ressourcen nicht entziehen) !! Echtzeitsysteme: 1.Hard-Real-Time:
Wenn eine Aufgabe nicht innerhalb der Deadline abgeschlossen wird, kann es zu katastrophalen Ergebnissen
kommen(Temperaturmessung im Kernkraftwerk), 2.Soft-Real-Time: Wird eine Aufgabe nicht innerhalb der Deadline
erledigt, reduziert sich die Nutzbarkeit(Messungen im Wetterstation)
!! Prozesse(Programm, das gerade in einem Rechner ausgeführt wird(Instanz eines Programms)), !! MultiTasking=Prozessse in rascher Folge abwechseln, um so die Illusion paralleler Ausführung zu erwecken ! Dem
Kontext(Zustand des Prozesses) wird vom OS ein Prozess-ID zugewiesen(enthält Speicher-zugewiesene Bereich des
Speichers, E/A-zum Prozess zugeordnete Geräte, Prozessor-Register-Notwendig um Prozess nach Wechsel wiederherstellen
zu können, Status-Prozesszustand) !! Prozesszustand: 1.Bereit(Alle Voraussetzungen für Ausführung erfühllt, wartet auf
Zuteilung des Prozessors), 2.Aktiv(Programmbefehle des Prozesses werden aktuell ausgeführt), 3.Blockiert(Prozess wartet
auf das Freiwerden eines Betriebsmittels)
!! Threads: !Multithreading=Multitasking innerhalb eines Prozesses, !Thread gehört zu einem Prozess und wird im Kontext
des Prozesses ausgeführt, !Kein Scheduling(Aufteilung&Zuweisung der verfügbaren Zeit der Betriebsmittel) durch
Betriebssystem, sondern durch Nutzer(aufwändiger, fehleranfälliger), !Vorteil:Bei einzelnen blockierten Threads ist noch
nicht der gesamt Prozess blockiert=>Reduktion von Kontext-Wechseln
Datenstrukturen: Liste: 1.Einfach verkettet(Jedes Element hat einen Zeiger auf Nachfolger, Start- und Ende-Zeiger),
2.Doppelt verkettet (Jedes Element hat einen Zeiger auf das nachfolgende und vorherige Element) !! Stack(LIFO-Prinzip,
Operationen: Einfügen am Ende, Entfernen und Rückgabe am Ende, Endelement lesen ohne zu entfernen) !! Queue(FIFOPrinzip, Operationen: Einfügen am Anfang, Entfernen am Ende, Anfangselement lesen ohne zu entfernen !! Hash-Tabelle:
!Hash-Funktion h(k) liefert Hashwert zu jedem Schlüssel, !Einsatz, wenn Anzahl der tatsächlich auftretenden Schlüssel klein
ist im Vergleich zur Anzahl möglicher Schlüssel, !Kollisionsauflösung durch doppeltes Hashing oder verkettete Liste !Gute
Hash-Funktion: geringe Kolissionswahrscheinlichkeit, schnell berechenbar, Jeder Ergebniswert möglich(Surjektivität),
Hashwert viel keliner als Eingabedaten(Kompression) !! Baum(zusammenhängender, zyklenfreier Graph): !Wurzel(Knoten,
das keine Vorgänger hat), !Blatt(Knoten ohne Nachfolger), !Tiefe(Abstand von der Wurzel zu den Blättern)
!Binärbaum=Jeder Knoten außer den Blättern hat genau 2 Nachfolger !! Datenbanken: 1.OODBMS: !Daten werden als
Obkelte geschpeichert und sind über ihr Object ID eindeutig identifizierbar, ! verarbeitet große und komplexe Daten, !Eine
Klasse bezieht sich auf eine Gruppe von Objekten mit gemeinsamen Beziehungen und Eigenschaften !Ziel ist das
Zusammenfassen von Objekten mit gleichem Aufbau und Verhalten(Einsatz von Vererbung) 2.RDBMS: !Daten werden als
Entitäten geschpeichert.Ein Primärschlüssel identifiziert ein Objekt in einer Tabelle eindeutig, !verarbeitet einfache Daten,
!Eine Entität bezieht sich auf eine Sammlung ähnlicher Elemente mit derselben Definition, !Ziel ist die Unabhängigkeit von
Anwendungen !! Dynamische Speicherverwaltung: Spicherbereich für lokale Variablen ist der Stack(V:Variablen werden
automatisch verwaltet, N: Platz auf dem Stack für große Datenmengen nicht ausreichend), Speicher für Variablen kann
dynamisch auf den Heap reserviert und wieder freigegeben werden(V: Heap bietet mehr Speicherplatz als Stack,
N:Entwickler muss Speicherplatz Anlegen/Löschen) !! Unterschiede Datenstrukturen: Liste: Suche ist aufwändig, aber
Elemente können effizient gelöschtt oder eingefügt werden, Array: Suche schnell über Index, aber dynamisches Wachstum
teuer, viel Speicher notwendig bei dünn besetzten Arrays, Hash: mittlere Zeit zum Auffinden eines Elements in einer HashTabelle ist unter realistischen Annahmen konstant (bei Array oder Liste linear abhängig von Anzahl der Elemente) !!
Operationen Datenstrukturen: Search(S,k), Insert(S,x), Delete(S,x), Minimum(S) !! Operationen STL: push, pop, assign,
insert, swap !! Sequenzielle Container: Array, Deque, List(doppelt verkettet), Vector, Forward_List(einfach verkettet) !!
Assoziative Container: Set, Bitset, Multiset, Map, Multimap !! Container Adapter: Stack, Queue, Priority_queue !!
Ungeordnete Assoziative Container: Unordered Map, Unordered Multimap, Unordered Set, Unordered Multiset !!
Iterator=Objekt, welches zum Zugriff auf ein Elememt innerhalb einer Datenstruktur dient(V: Die Zugriffe können dabei
ohne Kenntnis der Datenstruktur erfolgen)
Softwareentwicklung:
Merkmale
guter
Software:
1.Zuverlässigkeit(Betriebssicher,
Zugriffsschutz),
2.Wartungsfreundlichkeit(Softwareveränderung,
Weiterentwicklung),
3.Effizienz(Kosteneffizienz,
keine
Ressourcenverschwendung),
4.Benutzerfreundlichkeit(Nutzbar
ohne
Anstrengung),
5.Nützlichkeit(Erfüllung
Benutzeranforderungen) !! Phasenmodelle: PI: 1.Creativity(Kundengeschpräche, Marktanalysen)-Es werden
Kreativitätstechniken verwendet, 2.Requirments(Lastenheft-Wird vom Auftraggeber erstellt. Enthält die Anforderungen aus
Sicht des Auftraggebers, Pflichtenheft-Wird vom Auftragnehmer auf Basis des Lastenhefts erstellt. Darin enthalten ist eine
Detaillierung der Kundenanforderungen aus Sicht des Auftragnehmers)-Warum braucht der Kunde diese Lösung, Wo liegen
die Herausforderungen bei der Umsetzung, 3.Design(System/SW-Architektur, Schnittstellen-Definitionen)-Wie lässt sich das
Problem gliedern, Passt das Design zum Problem, 4.Implementation(Code) 5.Test(Erfüllungsgrad der Anforderungen,
funktionsfähiges Produkt)—PII(V):(Analysis anfängt)System Requirments Analysis(Akzeptanztest-Das finale Prdukt gegen
die initialen Anforderungen validieren), System Design(Validierung-Richtiges Produkt wird gebaut), SW/HW Req Ana,
(Design anfängt), Preliminary Software Design(Verifikation-Produkt wird richtig gebaut), Detailed Software Design,
(Unten)(Design endet und Implementation startet) Software Implementation, Software Integration(VE), (Test startet)System
Integration(VA), Transition to Utilization(AT) !! Teste: 1.Unit-Test(Einzelne isolierte Komponente z.B. Methode),
2.Module-Test(Mehrere Komponenten z.B. Klasse), 3.Subsystem(Interoperabilität zwischen verknüpften Modulen),
4.Funktionstest(Korrektes Verhalten der Funktion), 5.Systemtest(Gesamtsystem), 6.Akzeptanztest(Initiale Anforderungen) !!
Testautomatisierung: Simuliertes Syst-Sim Umgebung(Software in the Loop)-Reale Umg(Rapid Prototyping=Einsatz von
prototypischen Softwarekomponenten mit dem Ziel "schnelles Testen"), Reales Syst- Sim Umgebung(Hardware in the Loop),
Reale Umg(On Board Test) !! Statischer Test=Software-Testverfahren bei dem die Software nicht ausgeführt wird !!
Dynamischer Test=Software-Testverfahren bei dem die Software ausgeführt wird !! Black-Box-Tests: Test von Modulen
ohne Wissen über die innere Struktur !! White-Box-Tests: Test mit Wissen über die innere Struktur des Moduls
Projektmanagement: Dokumente: 1.Zusammenfassen der Ideen und Konzepte->Rahmenheft, Anforderungsdokument,
2.Aktivitäten des Projekts und Zusammenfassung zu Arbeitspaketen->Projektstrukturplan, 3.Logische Abhängigkeiten
zwischen den einzelnen Arbeitspaketen->Projektablaufplan, 4.Festlegung von Terminen->Gantt-Chart/Meilensteinplan,
5.Genaue
Terminplanung
und
Bestimmen
des
kritischen
Pfades->Kritische
Pfadanalyse/CPM
!!
Projektstrukturplan(gliedert das Projekt in plan- und kontrollierbare Elemente. Im Rahmen dessen, wird das Projekt in
Teilaufgaben und Arbeitspakete unterteilt): (Oben-Unten) Projekt, Teilprojekt(zur groben Strukturierung), Teilaufgabe(zur
Untergliederung), Arbeitspaket(Abgegrenzte Teilaufgabe mit eindeutiger Bezeichnung, Terminierung, Budget und
Verantwortlichkeit, kleinste Einheit des PSP) !! Ebenen des PSP: (Oben-Unten) Gesamtprojektebene, Teilprojekt /Teilaufgabenebene, Arbeitspakete/Arbeitspaketebene !! Gantt-Chart=Diagramm, mit dem ein PAP dargestellt werden
kann, V:Einfache Darstellung des ganzen Projektablaufes, Schnelle Übersicht über Projektfortschritt, Kosten und Termine
bleiben übersichtlich und können eingehalten werden, N: Reaktion auf Veränderungen schwierig, Zeitenschätzung subjektiv,
Überscätzung des Kritischen Pfades !! PAP: definiert hauptsächlich den zeitlichen Ablauf eines Projekts - auf Basis der im
PSP definierten Arbeitspakete !! Vergleich PAP vs PSP: Im PAP wird den zeitlichen Ablauf enthalten und im PSP nicht !!
Implementierung und danach Unit-Test !! Kritischer Pfad=bezeichnet die Folge von Arbeitspaketen, welche die
Gesamtdauer des Projekts bestimmt. Die Verzögerung eines Arbeitspakets, das auf dem kritischen Pfad liegt, führt sofort zu
einer Verzögerung des Gesamtprojekts !! V-Diagram: 1.linker Analysis-Block: System Requirements Analysis, System
Design, SW/HW Requirement Analysis 2.linker Design-Block: Preliminary SW Design, Detailed SW Design, SW
Implementation 3.rechter Implementation-Block: SW Implementation, SW Integration 4.rechter Test-Block: System
Integration, Transition to Utilization!! Tests beim V-Diagram:Verifikation zwischen Preliminary SW Design und SW
Integration, Validierung zwischen System Design und System Integration, Acceptance Test zwischen System Requirement
Analysis und Transition to Utilization, Modultest im Bereich 3 und Systemtest im Bereich 4
Eingebettete Systeme: Bestandteile: Sensoren, Aktoren, Leistungselektronik, Komm mit anderen Systemen(?System
Control, Power Electronics, Data Processing, Special Interfaces, Power Supply?) !Meist µC oder DSP eingesetzt !!
Watchdog: Komponente, die in regelmäßigen Abständen überprüft, ob die wichtigsten Programmmodule in einem
vorgegebenen Zeitrahmen korrektausgeführt werden. Falls nicht, führt der Watchdog einen Reset aus !! ADC: Wandelt
Analogsignale zu Digitalsignalen, da Prozessor nur Digital rechnen kann. Zeit und Wertdiskret
!! Besonderheiten DSP: Hardware Architektur, Zero Overhead Schleife, Multiply Accumulate(MAC) Befehl->in einem
Taktschritt ausgeführt !! Eng mit ihrer Umgebung gekoppelt=>Echtzeit-Anforderungen: notwendige maximale Latenz,
notwendige Präzision einer Berechnung, notwendige Verarbeitungszeit(werden durch den Einsatz eines Betreibssystems
erfüllt), !Mehrere Anwendungsprogramme gleichzeitig=>Ressourcen-Zuweisung muss priotisiert werden
Download