Einführung in die Informatik Flashcards

1
Q

Was besagt das Moore´sches Gesetz?

A

Die Leistung der Microprozessoren verdoppelt sich alle 18 Monate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

was sind Embedded Systems?

A

eingebettete Systeme ( Systeme die die Steuerung für einen Übernehmen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

5 Systeme die nicht ohne Embedded Systems funktionieren

A

Motor/ Flugzeugsteuerung, Herzschrittmacher, Telefon, Heizung, Digitalkameras

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

In Welchem Jahr liegen die Ursprünge der Informatik?

A

in den 1960er Jahren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Die 4 Hauptgebiete der Informatik

A

Angewandte Informatik, Technische Informatik, Praktische Informatik, Theoretische Informatik

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Angewandte Informatik Erklären

A

Ist das Resultat aus Technischer, praktischer, Theoretischer Informatik ( Dieser sind Hardware +Software zuzurechnen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Technische Informatik Erklären

A

Bezieht sich auf die Hardwareseitigen Grundlagen wie z.B.
Microprozessortechnik, Rechnerarchitektur
und Rechnerkommunikation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Praktische Informatik Erklären

A

Beschäftig sich mit den Programmen die ein System Steuern. z.B(Programmiersprachen, Compi
ler und Interpreter, Algorithmen und Datenstrukturen, Betriebssystemen so
wie Datenbanken.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Theoretische Informatik Erklären

A

bildet die Grundlage für die anderen Kernbereiche und ist das Fundament für die technische und praktische Informatik
und unterteilt sich ihrerseits in die folgenden Teilgebiete Automatentheorie
und formale Sprachen, Berechenbarkeitstheorie und Komplexitätstheorie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

kann man Informatik im Gesellschatflichen und wissenschaftlichen Bereichen Isoliert betrachten?

A

Nein da sie eng mit vielen Aspekten der Gesellschaft und Wissenschaft verknüpft ist z.B. Wirtschaftsinformatik, KI, Bioinformatik

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

welche Zahlensysteme gibt es in der Informatik?

A

Dual, Oktal, Hexadezimal,Dezimal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

wie wird der Speicher eines Computers unterteilt (Name der Speichereinheit) ?

A

1xByte -> 8x Bit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was bedeutet Bit?

A

Binary Diget

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

A2 in Binärdarstellung

A

Jede Stelle der Zahl hat den Wert der entsprechenden Potenz von 16;
die rechte Ziffer entspricht 16º=1, die zweite von rechts 16¹=16 usw.
Nimm jede Ziffer bzw. ihren Zahlenwert (A=10, B=11, … )
mal mit der entsprechenden Potenz und summiere.
Gehe am besten von rechts nach links vor:

 2:   2 ·   1 =    2
 A:  10 ·  16 =  160
                ————
                 162

Die Dezimalzahl 162 wird ins 2er-System umgewandelt

Gehe nach folgendem Verfahren vor:
(1) Teile die Zahl mit Rest durch 2.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

 162 : 2 =  81  Rest: 0
  81 : 2 =  40  Rest: 1
  40 : 2 =  20  Rest: 0
  20 : 2 =  10  Rest: 0
  10 : 2 =   5  Rest: 0
   5 : 2 =   2  Rest: 1
   2 : 2 =   1  Rest: 0
   1 : 2 =   0  Rest: 1

 Resultat: 10100010
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

was ist das Oktalsystem?

A

dieses gibt die Zahlen an die dann in Binärdarstellung zurück geführt werden können.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

die Oktalzahl 4752 ist was im Dualsystem?

A

Die Zahl 1001010010000 (2er-System) wird ins Dezimalsystem umgewandelt

Jede Stelle der Zahl hat den Wert der entsprechenden 2er-Potenz.
Die der ersten Ziffer von rechts entsprechende Potenz ist 2º = 1.
Nimm jede Ziffer mal mit der entsprechenden Potenz und summiere.
Gehe am besten von rechts nach links vor:

 0 ·    1 =     0
 0 ·    2 =     0
 0 ·    4 =     0
 0 ·    8 =     0
 1 ·   16 =    16
 0 ·   32 =     0
 0 ·   64 =     0
 1 ·  128 =   128
 0 ·  256 =     0
 1 ·  512 =   512
 0 · 1024 =     0
 0 · 2048 =     0
 1 · 4096 =  4096
            —————
             4752
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Die Dualzahl 101 101 010 ist was im Oktalsystem?

A

Die Zahl 101101010 (2er-System) wird ins Dezimalsystem umgewandelt

Jede Stelle der Zahl hat den Wert der entsprechenden 2er-Potenz.
Die der ersten Ziffer von rechts entsprechende Potenz ist 2º = 1.
Nimm jede Ziffer mal mit der entsprechenden Potenz und summiere.
Gehe am besten von rechts nach links vor:

 0 ·   1 =    0
 1 ·   2 =    2
 0 ·   4 =    0
 1 ·   8 =    8
 0 ·  16 =    0
 1 ·  32 =   32
 1 ·  64 =   64
 0 · 128 =    0
 1 · 256 =  256
           ————
            362

Die Dezimalzahl 362 wird ins 8er-System umgewandelt

Gehe nach folgendem Verfahren vor:
(1) Teile die Zahl mit Rest durch 8.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

 362 : 8 =  45  Rest: 2
  45 : 8 =   5  Rest: 5
   5 : 8 =   0  Rest: 5

 Resultat: 552
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Dezimalzahl 345 in Hexadezimalzahl

A

Die Dezimalzahl 345 wird ins Hexadezimalsystem umgewandelt

Gehe nach folgendem Verfahren vor:
(1) Teile die Zahl mit Rest durch 16.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
Für Reste > 9 nimm die Buchstaben A, B, C, D, E, F
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

 345 : 16 =  21  Rest:  9   --> Ziffer: 9
  21 : 16 =   1  Rest:  5   --> Ziffer: 5
   1 : 16 =   0  Rest:  1   --> Ziffer: 1

 Resultat: 159
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

erklären sie das Wasserfallmodell

A

Das Wasserfallmodell ist eine bekannte und bewährte Methode im Rahmen
des Systementwicklungslebenszyklus (SDLC) für die Softwaretechnik. Als lineares und sequenzielles Modell zeichnet es sich dadurch aus, dass eine Entwicklungsphase erst dann beginnen kann, wenn die vorherige abgeschlossen ist. Überlappungen von Phasen sind im Wasserfallmodell nicht möglich. Wie bei einem Wasserfall folgt nach dem Abschluss einer Entwicklungsphase der Übergang zur nächsten, ohne dass eine Rückkehr zur vorherigen Phase möglich ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

die Stufen des Wasserfallmodells

A

1.) Anforderungsphase
2.) Entwurfphase
3.) Implementierungsphase
4.) Verifezierungsphase
5.) Wartungsphase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

4 Vorteile des Wasserfallmodells

A

1.) Einfachheit und leichte Verständlichkeit.
2.) Besonders nützlich für kleine Projekte.
3.) Einfache Verwaltbarkeit.
4.) Frühe Festlegung des Endziels.
5.) Jede Phase ist gut definiert.
6.) Strukturierte Vorgehensweise.
7.) Basis für nachfolgende SDLC-Modelle, die darauf aufbauen und
Schwächen adressieren.
8.) Keine Überlappung der Phasen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

4 Nachteile des Wasserfallmodells

A

1.) Erfordert vollständige und exakte Anforderungen zu Beginn.
2.) Arbeitsfähige Software steht erst sehr spät im Entwicklungszyklus
zur Verfügung.
3.) Rückkehr zu vorherigen Phasen ist nicht möglich, was
Änderungen schwierig macht.
4.) Risiken und Unsicherheiten werden nicht bewertet, was ein hohes
Risiko bedeutet.
5.) Testphase setzt sehr spät ein.
6.) Sequenzielle Natur ist in der heutigen schnelllebigen Welt oft
unrealistisch.
7.) Nicht geeignet für große und komplexe Projekte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Erklären sie das V Modell

A

Das V-Modell ist ein bewährtes Modell im Softwareentwicklungs-Lebenszyklus (SDLC) und wird auch als Verifizierungs- und Validierungsmodell bezeichnet. Es ist besonders geeignet für Projekte, in denen eine klare Definition der
Anforderungen und eine strukturierte Vorgehensweise erforderlich sind.
Das V-Modell zeichnet sich durch seine sequenzielle Vorgehensweise aus:
Jede Phase beginnt erst, nachdem die vorherige abgeschlossen ist. Es bildet einen V-förmigen Prozess, wobei jeder Entwicklungsschritt mit einem entsprechenden Testschritt verbunden ist. Auf der linken Seite des “V” befinden sich die Entwicklungsschritte, auf der rechten die Testphasen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Stufen des V modells

A

Anforderungsanalyse<-> Akzeptanzphase
Systemdesgin<->Systemtests
Architekturentwurf <->Integrationstests
Modulentwurf<->Unit Tests
Kodierungsphase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Vorteile des V modells
1.) Klare Struktur und leichte Anwendbarkeit. 2.) Frühzeitige Planung und Testentwicklung, auch vor der Kodierungsphase. 3.) Frühe Fehlererkennung und effiziente Entwicklung für kleinere und mittlere Projekte.
26
Nachteile des V modells
1.) Weniger geeignet für komplexe oder sich schnell ändernde Projekte. 2.) Höheres Risiko und Unsicherheit bei unklaren Anforderungen.
27
Erkläre das Inkrementelles Modell
Ein "Inkrement" bezieht sich in der Softwareentwicklung auf einen abgrenzbaren Teil des Gesamtprodukts, der in einem Entwicklungszyklus erstellt wird. Jedes Inkrement repräsentiert eine erweiterbare und verbesserte Version der Software, die auf dem vorherigen Stand aufbaut und neue Funktionen oder Verbesserungen hinzufügt.
28
Stufen des Inkrementellen Modells
1. Kommunikation: Persönliches Gespräch mit dem Kunden zur Erfassung seiner wesentlichen Anforderungen. 2. Planung: Unterteilung der Anforderungen in Module und deren Planung. 3. Modellierung: Entwurf jedes Moduls und Speicherung in der Design Dokumentation. 4. Entwicklung: Umsetzung des Moduldesigns in Code und anschließende Testphase. 5. Einsatz: Nach erfolgreichem Testen wird das Modul der Kundin bereitgestellt. Dieser Prozess wiederholt sich für jedes weitere Modul.
29
Vorteile des Inkrementellen Modells
1.) Frühzeitige Entwicklung von wichtigen Modulen/Funktionen. 2.) Schnelle Bereitstellung arbeitsfähiger Software. 3.) Flexibilität bei Änderungen von Anforderungen. 4.) Regelmäßiges Feedback des Kunden. 5.) Messbarer Projektfortschritt. 6.) Einfachere Tests und Fehlerbehebung in kurzen Iterationen.
30
Nachteile des Inkrementellen Modells
1.) Kontinuierliches Management erforderlich. 2.) Klare Definition der Gesamtanforderungen notwendig. 3.) Höhere Gesamtkosten im Vergleich zu anderen Modellen.
31
Erkläre das RAD Modell
Das RAD-Modell, bekannt als Modell für schnelle Anwendungsentwicklung, ähnelt in seiner Methodik den inkrementellen oder Wasserfallmodellen. Es wird vorrangig für kleine Projekte eingesetzt. Bei größeren Projekten wird das Vorhaben in mehreren kleinen Projekten unterteilt, die dann einzeln geplant und abgeschlossen werden. Durch die Fertigstellung der einzelnen kleineren Projekte wird das Gesamtprojekt rasch abgeschlossen.
32
Stufen des RAD modell
1. Geschäftsmodellierung: In dieser Phase wird das Geschäftsmodell auf Basis der Funktionen des Unternehmens entworfen. Technisch gesprochen, entwerfen wir das Geschäftsmodell für das Produkt auf Basis des Informationsflusses und der Informationsverteilung zwischen verschiedenen Geschäftskanälen. Hierbei bedeutet Informationsfluss, welche Art von Informationen das Geschäft antreibt, woher sie kommen, wohin sie gehen, wer sie generiert usw. Diese Phase beinhaltet eine komplette Geschäftsanalyse. 2. Datenmodellierung: Basierend auf dem vorbereiteten Geschäftsmodell werden die für das Geschäft erforderlichen Datenobjekte definiert. 3. Prozessmodellierung: Die in der Datenmodellierungsphase definierten Datenobjekte werden umgewandelt, um den Informationsfluss im Unternehmen zu etablieren. Dies ist notwendig, um spezifische Geschäftsziele zu erreichen. 4. Anwendungsgenerierung: In dieser Phase beginnen wir mit der Erstellung der Software, basierend auf den Ergebnissen der vorherigen drei Phasen und unter Verwendung von Automatisierungstools. Die Benennung ist etwas irreführend, da es sich eher um die Entwicklung von Prototypen handelt. Diese Prototypen sind jedoch nicht nur ein fache Modelle, sondern funktionale Versionen der Software, die einen wesentlichen Teil des Entwicklungsprozesses darstellen. 5. Testen und Übergabe: In dieser Phase werden die erstellten Prototypen sowie alle Komponenten und Schnittstellen getestet. Da Prototypen in jeder Iteration separat getestet werden, reduziert sich die Gesamttestzeit im schnellen Anwendungsentwicklungsmodell.
33
Vorteile des RAD Modell
1.) Reduziert die Entwicklungszeit. 2.) Komponenten können wiederverwendet werden. 3.) Es ist flexibel und Änderungen sind leicht durchführbar. 4.) Einfacher Transfer, wie bei Skripten, da hochstufige Abstraktion und Zwischencodes verwendet werden. 5.) Wenige Fehler aufgrund der prototypischen Natur. 6.) Produktivitätssteigerung in kürzerer Zeit mit weniger Personen möglich. 7.) Kosteneffizient. 8.) Geeignet für kleine Projekte.
34
Nachteile des RAD Modell
1.) Erfordert hochqualifizierte Entwickler und Designer. 2.) Schwierig zu managen. 3.) Ungeeignet für komplexe und langwierige Projekte. 4.) Benötigt kontinuierliches Kundenfeedback in jeder Entwicklungsphase. 5.) Automatisierte Codegenerierung ist sehr kostspielig. 6.) Nur geeignet für komponentenbasierte und skalierbare Systeme.
35
Iteratives Modell
Im iterativen Modell beginnt die Entwicklung der Software basierend auf einigen Anforderungen. Sobald diese entwickelt ist, wird sie überprüft. Falls Änderungen erforderlich sind, wird eine neue Version der Software basierend auf diesen Anforderungen entwickelt. Dieser Prozess wiederholt sich mehrmals, bis das Endprodukt erreicht ist. Eine Iteration bedeutet, dass der Entwicklungsprozess immer wieder durchlaufen wird. Zum Beispiel wird die erste Version der Software gemäß dem SDLC-Prozess mit einigen Softwareanforderungen entwickelt. Dies nennt man Iteration 1.
36
Phasen des Iterativen Modells
1. Anforderungserhebung und - Analyse: In dieser Phase werden alle Softwareanforderungen der Kundin gesammelt und analysiert, ob diese erfüllt werden können. Zudem wird geprüft, ob das Projekt das Budget nicht überschreitet. 2. Design: In dieser Phase wird das Software-Design vorbereitet. Dazu werden verschiedene Diagramme wie Datenflussdiagramme, Klassendiagramme, Aktivitätsdiagramme, Zustandsübergangsdiagramme usw. verwendet. 3. Implementierung: Nun wird das Software-Design in verschiedenen Programmiersprachen codiert. Diese Phase wird auch als Codierungsphase bezeichnet. 4. Testen: Nach der Codierung der Software wird diese getestet, um Fehler und Bugs zu identifizieren. Dazu werden verschiedene Testtechniken wie Leistungstests, Sicherheitstests, Anforderungstests, Stresstests usw. durchgeführt. 5. Deployment: Schließlich wird die Software dem Kunden übergeben. Danach beginnt die Kundin, die Software in ihrer Arbeitsumgebung zu nutzen. 6. Überprüfung: Nachdem die Software in ihrer Arbeitsumgebung eingesetzt wurde, wird sie überprüft. Wenn Fehler/Bugs gefunden werden oder neue Anforderungen auftreten, werden diese Phasen mit einer neuen Iteration wiederholt und eine neue Version entwickelt. 7. Wartung: In dieser Phase wird Kundenfeedback betrachtet, Prob leme gelöst, Fehler behoben, Software aktualisiert usw.
37
Vorteile des iterativen Modells
1.) Fehler und Bugs können schnell identifiziert werden. 2.) Software wird schnell mit einigen Spezifikationen erstellt. 3.) Testen und Debuggen der Software wird während jeder Iteration einfacher. 4.) Zuverlässiges Feedback von Benutzern sowie Entwürfe werden er halten. 5.) Leichte Anpassung an ständig wechselnde Bedürfnisse. 6.) Mehr Zeit für die Entwicklung und weniger Zeit für die Dokumentation während des Softwareentwicklungsprozesses. 7.) Risiken werden während der Iteration identifiziert und gelöst.
38
Nachteile des Iterativen Modells
1.) Nicht geeignet für kleine Projekte. 2.) Mehr Ressourcenbedarf aufgrund vieler Iterationen im Entwicklungsprozess. 3.) Häufige Änderungen an der Software aufgrund ständig wechselnder Anforderungen. 4.) Erhöhtes Projektbudget und längere Fertigstellungsdauer aufgrund ständiger Änderungen. 5.) Komplizierte Kontrolle des gesamten Softwareentwicklungsprozesses. 6.) Schwierigkeit bei der Festlegung eines genauen Fertigstellungsdatums für die komplette Software.
39
Erkläre das Spiralmodell
Das Spiralmodell ist ein Prozessmodell zur Softwareentwicklung, das Eigenschaften sowohl des iterativen als auch des Wasserfallmodells aufweist. Es wird in großen und komplexen Projekten verwendet. Das Modell wurde als Spiralmodell bezeichnet, weil es in seiner grafischen Darstellung wie eine Spirale aussieht, bei der eine lange, gebogene Linie vom Mittelpunkt ausgeht und mehrere Schleifen um diesen zieht. Die Anzahl der Schleifen in der Spirale wird nicht im Voraus festgelegt, sondern hängt von der Größe des Projekts und den sich ändernden Anforderungen des Benutzers ab. Jede Schleife der Spirale entspricht einer Phase des Softwareentwicklungsprozesses.
40
Phasen des Spiralmodells
1.) Ziele festlegen und alternative Lösungen bestimmen: In der ersten Phase werden die Anforderungen des Kunden an die Software gesammelt. Basierend darauf werden Ziele identifiziert und analysiert sowie verschiedene alternative Lösungen vorgeschlagen. 2. Risiken identifizieren und lösen: In dieser Phase werden alle vorgeschlagenen Lösungen bewertet und die beste Lösung ausgewählt. Diese Lösung wird dann analysiert und die damit verbundenen Risiken identifiziert. Anschließend werden die identifizierten Risiken mit der besten Strategie gelöst. 3. Entwickeln und Testen: Jetzt beginnt die Entwicklung der Software. In dieser Phase werden verschiedene Funktionen implementiert, d.h. codiert. Anschließend werden diese Funktionen durch Tests verifiziert. 4. Überprüfen und Planung für die nächste Phase: In dieser Phase wird die entwickelte Version der Software dem Kunden übergeben, der sie bewertet. Er gibt sein Feedback und teilt neue Anforderungen mit. Schließlich wird die Planung für die nächste Phase (nächste Spirale) gestartet.
41
Vorteile des Spiralmodells
1.) Wenn zusätzliche Funktionalitäten hinzugefügt oder Änderungen an der Software vorgenommen werden müssen, ist dies auch in späteren Stadien möglich. 2.) Das Spiralmodell eignet sich für große und komplexe Projekte. 3.) Es ist leicht, die Kosten des Projekts abzuschätzen. 4.) In jeder Phase dieses Modells wird eine Risikoanalyse durchgeführt. 5.) Der Kunde kann bereits in den frühen Phasen des Entwicklungsprozesses das Aussehen seiner Software sehen. 6.) Da kontinuierlich Feedback vom Kunden während des Entwicklungsprozesses eingeholt wird, steigen die Chancen auf Kundenzufriedenheit.
42
Nachteile des Spiralmodells
1.) Es ist das komplexeste Modell des SDLC, weshalb es recht schwierig zu verwalten ist. 2.) Das Modell ist nicht für kleine Projekte geeignet. 3.) Die Kosten für dieses Modell sind ziemlich hoch. 4.) Es erfordert mehr Dokumentation als andere Modelle. 5.) Erfahrene Experten sind erforderlich, um das Projekt von Zeit zu Zeit zu bewerten und zu überprüfen. 6.) Der Erfolg des Projekts hängt bei diesem Modell stark von der Risikoanalysephase ab.
43
Erkläre das Prototypmodell
Beim Prototyp-Modell wird zunächst ein Prototyp entwickelt, auf dessen Grundlage dann das endgültige Produkt gefertigt wird. Dieses Modell wurde entwickelt, um die Schwächen des Wasserfallmodells zu überwinden. Es wird eingesetzt, wenn die Anforderungen an die Software noch nicht gut bekannt sind. Ein besonderes Merkmal dieses Modells ist, dass es sowohl eigenständig als auch in Kombination mit anderen Modellen verwendet wer den kann. Ein Problem dieses Modells besteht darin, dass, wenn die Endbenutzer mit dem Prototyp nicht zufrieden sind, ein neuer Prototyp erstellt werden muss, was viel Zeit und Geld kostet.
44
Phasen des Prototypmodells
1.) Anforderungserhebung: Der erste Schritt besteht darin, die Anforderungen zu sammeln. Obwohl der Kunde möglicherweise nicht viel über die Anforderungen weiß, werden die Hauptanforderungen detailliert definiert. 2. Erstellung des Anfangsprototyps: In dieser Phase wird der initiale Prototyp entwickelt. Hierbei werden einige grundlegende Anforderungen berücksichtigt und die Benutzeroberfläche zur Verfügung gestellt. 3. Überprüfung des Prototyps: Nach Fertigstellung wird der Prototyp den Endbenutzern oder Kunden präsentiert und Feedback eingeholt. Dieses Feedback dient zur weiteren Verbesserung des Systems und mögliche Änderungen am Prototyp werden vorgenommen. 4. Überarbeitung und Verbesserung des Prototyps: Basierend auf dem Feedback von Endbenutzern und Kundinnen wird der Prototyp verbessert. Ist die Kundin mit dem Prototyp nicht zufrieden, wird ein neuer Prototyp erstellt. Dieser Prozess setzt sich fort, bis die Kundin einen zufriedenstellenden Prototyp erhält.
45
Vorteile des Prototypmodells
1.) Das Prototyp-Modell wird empfohlen für Anwendungen, deren Prototyp einfach zu erstellen ist und die immer Mensch-Maschine- Interaktionen beinhalten. 2.) Wenn nur das allgemeine Ziel der Softwareerstellung bekannt ist, aber Details zu Eingaben, Verarbeitung und Ausgabe unklar sind, eignet sich das Prototyp-Modell. 3.) Wenn sich ein Softwareentwickler über die Leistungsfähigkeit eines Algorithmus oder dessen Anpassungsfähigkeit an ein Betriebssystem unsicher ist, kann die Verwendung eines Prototyp- Modells eine bessere Option sein.
46
Nachteile des Prototypmodells
1.) Oft wünscht sich der Kunde bei der ersten Version des Prototyps kleinere Anpassungen statt eines kompletten Neuentwurfs, obwohl ein Neuentwurf eine höhere Qualität gewährleisten könnte. 2.) In der ersten Version des Prototyp-Modells können viele Kompromisse sichtbar werden. 3.) Manchmal geht ein Softwareentwickler Kompromisse bei der Implementierung ein, nur um den Prototyp schnell funktionsfähig zu machen. Mit der Zeit kann er sich an solche Kompromisse gewöhnen und vergessen, dass dies völlig unangemessen ist.
47
Erkläre das Agile Modell
Im Entwicklungsteam gibt es einen Kundenvertreter, der während der Softwareentwicklung den Kontakt zum Kunden hält und die Anforderungen versteht. Nach Abschluss einer Iteration überprüfen Stakeholder und Kundenvertreter diese und bewerten die Anforderungen neu. * Um die Anforderungen des Kunden zu verstehen, wird eine Demo der funktionierenden Software gezeigt. Das heißt, es wird sich nicht nur auf Dokumentation verlassen. * Inkrementelle Versionen der Software müssen nach einigen Wochen dem Kundenvertreter geliefert werden. * In diesem Modell wird empfohlen, dass die Größe des Entwicklungsteams klein ist (5 bis 9 Personen), damit die Teammitglieder persönlich kommunizieren können. * Das Agile Modell konzentriert sich darauf, dass Änderungen an der Software schnell umgesetzt werden sollen. * Bei der agilen Entwicklung arbeiten zwei Programmierer zusammen. Ein Programmierer codiert, während der andere den Code überprüft. Beide Programmierer wechseln ihre Aufgaben, d.h., manchmal codiert einer, manchmal überprüft der andere.
48
Erkläre die Entwicklungsmethoden des Agilen Modells
. Scrum: Scrum ist ein Rahmenwerk für agiles Projektmanagement, das sich besonders für Projekte mit schnell ändernden oder hoch komplexen Anforderungen eignet. Es basiert auf Sprints, die normalerweise zwei bis vier Wochen dauern. In jedem Sprint wird ein fertiges Produktinkrement erstellt. Scrum betont Teamarbeit, regelmäßige Fortschrittsbewertungen und Anpassung an sich ändernde Anforderungen. 2. Crystal-Methoden: Diese Methodenfamilie legt einen starken Fokus auf Menschen und ihre Interaktionen im Entwicklungsprozess. Crystal betont die Bedeutung von Kommunikation und bietet Flexibilität in der Prozessgestaltung, angepasst an die Größe und Prioritäten des Projekts. Der Ansatz ist weniger formalisiert und strukturiert als andere agile Methoden. 3. Dynamic Systems Development Method (DSDM): DSDM ist eine agile Methode, die schnelle Lieferung von Software in regelmäßigen Versionen betont. Sie setzt eine aktive Nutzereinbindung und die Bereitschaft voraus, nur diejenigen Funktionen zu liefern, die wirklich benötigt werden. DSDM besteht aus verschiedenen Phasen wie Machbarkeitsstudie, Geschäftsstudie, funktionales Modell, Design und Implementierung. 4. Feature-Driven Development (FDD): FDD konzentriert sich auf das Er stellen von Software durch das Definieren und Vervollständigen spezifischer Features. Jedes Feature ist in der Regel in wenigen Wochen umsetzbar. Diese Methode betont die Wichtigkeit von Design und baut auf bestehenden Best Practices auf, um eine effiziente Softwareentwicklung zu gewährleisten. 5. Lean Software Development: Inspiriert von den Lean-Produktionspraktiken von Toyota, fokussiert sich dieser Ansatz auf die Minimierung von Verschwendung und die Maximierung des Wertes für den Endkunden. Lean Software Development betont Prinzipien wie das Eliminieren unnötiger Aktivitäten, das Verstärken des Lernens und das Verzögern von Entscheidungen bis sie fundiert getroffen werden können. 6. Extreme Programming (XP): XP ist eine Methode, die sich auf technische Aspekte der Softwareentwicklung konzentriert und agile Prinzipien wie kontinuierliches Feedback, kontinuierliche Verbesserung, und Anpassungsfähigkeit hervorhebt. Zu den Praktiken gehören Pair Programming, umfassende Code-Reviews, Test-Driven Development (TDD), regelmäßige Releases und eine enge Zusammenarbeit mit der Kundin.
49
Vorteile des Agilen Modells
1.) Zwei Programmierer arbeiten zusammen, wodurch der Code fehlerfrei ist und es sehr wenige Fehler gibt. 2.) Das Softwareprojekt wird in sehr kurzer Zeit abgeschlossen. 3.) Der Kundenvertreter hat eine Vorstellung von jeder Iteration, sodass er die Anforderungen leicht ändern kann. 4.) Es ist ein sehr realistischer Ansatz zur Softwareentwicklung. 5.) Der Fokus liegt auf Teamarbeit. 6.) Es gibt sehr wenige Regeln und auch die Dokumentation ist vernachlässigbar. 7.) Es besteht kein Bedarf an Planung. 8.) Es kann leicht verwaltet werden. 9.) Es bietet Entwicklern Flexibilität.
50
Nachteile des Agilen Modells
1.) Es kann komplexe Abhängigkeiten nicht handhaben. 2.) Aufgrund des Mangels an formaler Dokumentation gibt es Verwirrung in der Entwicklung. 3.) Es hängt meistens vom Kundenvertreter ab; gibt dieser falsche Informationen, kann die Software fehlerhaft werden. 4.) Nur erfahrene Programmierer können Entscheidungen treffen. Neue Programmierer können keine Entscheidungen treffen. 5.) Zu Beginn der Softwareentwicklung ist nicht bekannt, wie viel Aufwand und Zeit erforderlich sein werden, um die Software zu erstellen.
51
erkläre Interpretierte Programmiersprachen
Bei der Interpretation wird jeder Befehl des Programms einzeln in Maschinenbefehle übersetzt und sofort ausgeführt. Diese Methode erzeugt kein separates Maschinenprogramm, sondern führt Befehle direkt in der höheren Programmiersprache aus. Der Vorteil liegt in der Flexibilität und Einfachheit der Fehlersuche, da Änderungen sofort wirksam werden. Jedoch ist die Ausführungsgeschwindigkeit oft langsamer im Vergleich zu kompilierten Sprachen.
52
erkläre Kompilierte Programmiersprachen
Bei der Kompilierung wird das gesamte Programm, das in einer höheren Programmiersprache geschrieben ist, in ein Maschinenprogramm übersetzt. Dieses übersetzte Programm besteht ausschließlich aus Maschinenbefehlen und wird direkt vom Computer ausgeführt. Der Vorteil liegt in der Schnelligkeit der Ausführung, da das Programm bereits in der Maschinensprache vorliegt. Allerdings ist der Code für Menschen schwer lesbar und Änderungen erfordern eine erneute Kompilierung des gesamten Codes.
53
Was ist ein Compiler
Die Bedeutung eines Compilers in der Softwareentwicklung liegt in seiner Fähigkeit, den oft komplexen und für Menschen lesbaren Quellcode in eine Form zu übersetzen, die von Computern effizient verarbeitet werden kann. Diese Übersetzung ermöglicht es Entwicklern, Software in einer höheren, menschenverständlicheren Sprache zu schreiben, während sie gleichzeitig die Kompatibilität mit der Hardware sicherstellt. Der Compiler ist somit ein Ausführung schlägt. unverzichtbares Werkzeug in der modernen Softwareentwicklung, welches die Brücke zwischen menschlicher Kreativität und maschineller, effizienter
54
was ist ein Linker
Der Linker spielt eine entscheidende Rolle in der Softwareentwicklung, insbesondere bei der Übersetzung eines Programms in ausführbaren Maschinencode. Nachdem der Compiler den Quellcode in Maschinencode übersetzt hat, tritt der Linker in Aktion, um verschiedene Programmbestandteile zusammenzufügen und ein ausführbares Programm zu erstellen. Der Linker hat dabei unterschiedliche Funktionen.
55
was ist ein Lader und Locator
Lader und Locator sind unerlässlich für das Laden und Ausführen von Programmen in Computersystemen, während der Bootstrap-Mechanismus grundlegend für das Verständnis des Selbststart-Prozesses eines Systems ist, sei es beim Hochfahren eines Computers oder in der Entwicklung komplexer Software. Der Lader ist primär verantwortlich für das Laden des ausführbaren Programms vom Speichermedium, wie der Festplatte, in den Hauptspeicher (RAM) des Computers. Nachdem das Programm ins RAM geladen wurde, stellt der Lader es zur Ausführung bereit, indem er den Startpunkt des Programms identifiziert und die Kontrolle an das Programm übergibt. Der Locator hingegen spielt eine wichtige Rolle in der Zuweisung von Adressen im Speicher. Er ist oft Teil des Linkers oder Laders und ordnet dem Programm spezifische Adressen im Speicher zu. Dies geschieht bei statischem Linking während der Link-Phase und bei dynamischem Linking teilweise zur Laufzeit durch den Loader. Der Locator ist außerdem für die Relokation zuständig, bei der er die Adressen im Programm anpasst, um sicherzustellen, dass das Programm unabhängig von seinem Speicherort korrekt auf seine Daten und Befehle zugreifen kann. Beim Prozess des Hochfahrens eines Computers, initiiert ein einfaches Programm, der sogenannte Bootstrap-Loader, den Start des komplexeren Betriebssystems. Dieser Prozess, der im ROM (Read-Only Memory) gespeichert ist, lädt das Betriebssystem von einem Speichermedium in den Hauptspeicher. Bootstrap wird auch metaphorisch verwendet, um Prozesse oder Werkzeuge zu beschreiben, die mit minimalen Ressourcen starten und sich zu etwas Größerem entwickeln. Ein Beispiel hierfür ist ein in einer einfacheren Sprache geschriebener Compiler, der verwendet wird, um komplexere Versionen von sich selbst zu kompilieren.
56
Erkläre was ein Debugger ist
Ein Debugger ist ein mächtiges Werkzeug, das die Entwicklung effizienter und robuster Software unterstützt. Durch die Bereitstellung detaillierter Informationen über die Ausführung eines Programms und die Möglichkeit, die Ausführung in Echtzeit zu überwachen und zu steuern, spielt der Debugger eine entscheidende Rolle im Softwareentwicklungsprozess.
57
was ist ein Algorythmus
Ein Algorithmus ist eine Verarbeitungsvorschrift, die von einem mechanisch oder elektronisch arbeitenden Gerät oder auch von einem Menschen durchgeführt werden kann. Dabei muss die Abfolge der einzelnen Verarbeitungsschritte sprachlich präzise und eindeutig aus der Beschreibung hervorgehen. Wenn es für einen Verarbeitungsschritt Wahlmöglichkeiten gibt, so muss genau festgelegt werden, wie die Auswahl einer Möglichkeit erfolgen soll, d.h. unter welcher Bedingung welcher Verarbeitungsschritt durchgeführt werden soll. Werden die Verarbeitungsvorschriften des Algorithmus exakt befolgt, so erhält man bei gleichen Eingaben bzw. Ausgangsvoraussetzungen immer genau dieselben Ausgaben bzw. Endzustände.
58
woran erkennt man eine Neumannarchitektur
1.) Gemeinsamer Speicher: Daten und Programme werden im selben Speicher abgelegt. 2.) Sequentielle Ausführung: Befehle werden nacheinander ausgeführt. 3.) Zentrale Verarbeitungseinheit (CPU): Die CPU führt arithmetische und logische Operationen aus. 4.) Eingabe-/Ausgabesysteme: Es gibt separate Systeme für die Eingabe und Ausgabe von Daten. 5.) Speicheradressierung: Der Speicher ist in Adressen unterteilt, die direkt angesprochen werden können
59
Was hat Ada Lovelace zur Informatik beigetragen?
Ada Lovelace erkannte das Potenzial von Babbages Analytical Engine über reine Berechnungen hinaus. Sie schrieb den ersten Algorithmus, der speziell für die Ausführung auf einer Maschine entwickelt wurde, und spekulierte über die Fähigkeit von Computern, Musik und Kunst zu erzeugen
60
Charakteristiken eines Algorythmus
Algorithmus SummeNatürlicherZahlen(n) Eingabe: n (eine natürliche Zahl) Ausgabe: Summe der ersten n natürlichen Zahlen summe ← 0 für i von 1 bis n summe ← summe + i ende für Rückgabe summe Ende Algorithmus
61
typische Charakteristiken für einen Algorythmus
1.) Eindeutigkeit: Jeder Schritt des Algorithmus muss klar und unmissverständlich sein. 2.) Endlichkeit: Ein Algorithmus muss nach einer endlichen Anzahl von Schritten zum Abschluss kommen. 3.) Ausführbarkeit: Jeder Schritt muss praktisch ausführbar sein, d.h., er muss von einem Computer oder einer Person durchgeführt werden können. 4.) Eingaben: Ein Algorithmus kann null oder mehr Eingaben haben. 5.) Ausgaben: Ein Algorithmus liefert mindestens eine Ausgabe, die das Ergebnis der Verarbeitung ist. 5.) Determinismus: Bei gleichen Eingaben liefert der Algorithmus immer die gleichen Ausgaben. 6.) Effizienz: Ein Algorithmus sollte in Bezug auf Zeit und Speicherplatz möglichst effizient sein
62
Wer war Konrad Zuse
Erfinder der ersten Rechenmaschine (Die Z3) fertiggestellt im jahr 1941
63
Wofür wurde der ENIAC verwendet
Ballistik Berechnungen , Wettervorhersage, wissenschaftliche Simulationen
64
65
Erste de Morgansche Regel lautet ?
Nicht(A und B) = nicht A oder nicht B
66
Rheinenfolge der Präzedenzfall in der booleschen algebra
NOT AND OR
67