Grundlagen der Algorithmen und Softwareentwicklung
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 2,64 KB
1. O-Notation (Groß-O-Notation)
Ihr Nutzen liegt darin, eine obere Schranke der Ausführungszeit eines Algorithmus anzugeben (der schlimmste Fall bzw. Worst-Case). Zum Beispiel: Anstatt zu sagen, dass ein bestimmter Algorithmus eine Zeit von 4n-1 in einem Array der Länge n beansprucht, sagen wir, dass er O(n) benötigt.
2. Omega-Notation
Die Omega-Notation dient dazu, die untere Schranke der Ausführungszeit festzulegen.
3. Theta-Notation
Die Theta-Notation wird verwendet, um die genaue Komplexitätsklasse anzugeben (falls vorhanden).
4. Effizienz von Algorithmen
Ein Algorithmus ist effizient, wenn es ihm gelingt, seine erklärten Ziele mit den geringsten Mitteln zu erreichen, d. h. durch Minimierung der Speichernutzung, der Rechenschritte und des menschlichen Aufwands. Ein Algorithmus ist effektiv, wenn er das eigentliche Ziel erreicht.
5. Programmierregeln
Die Regeln für eine gute Planung sind:
- 1. Algorithmen in Etappen entwerfen: vom Allgemeinen zum Besonderen (Top-Down-Ansatz).
- 2. Den Algorithmus in unabhängige Teile (Module) unterteilen.
- 3. Problemlösung mit Methoden der strukturierten Programmierung etablieren und nutzen.
- 4. Besonderen Schwerpunkt auf Datenstrukturen legen.
- 5. Den Algorithmus vollständig beschreiben.
- 6. Jeden Algorithmus verifizieren oder prüfen.
6. Programmiertechniken
- Strukturierte Programmierung
- Modulare Programmierung
- Objektorientierte Programmierung
- Nebenläufige Programmierung (Concurrent Programming)
- Logik-Programmierung
7. Softwarequalität
Für Nutzer: Qualität bedeutet, die Bedürfnisse zu erfüllen und eine einfache Nutzung (Usability) zu gewährleisten.
Für Hersteller: Qualität bedeutet, dass die Software am Markt platziert ist und den Nutzen im Hinblick auf die investierten Mittel maximiert.
Für Implementierer: Es geht um die Menge und Art der Fehler, die Verständlichkeit des Codes und geringe Auswirkungen bei Änderungen.
8. Software-Engineering
Software-Engineering ist die Disziplin oder das Gebiet der Informatik, das Methoden und Techniken für die Entwicklung und Wartung von Qualitätssoftware bietet.
9. Arten von Programmstrukturen
Studie