Mathematik Informatik Philosophie Diverses Kontatkt FAQ
Benutzername:
Passwort:
 Home > News
Mittwoch, 26. April 2017 00:13 
Artikel zur Kategorie: Informatik

11 Artikel (3 Seiten, 5 Artikel pro Seite)

zu Seite: 1 1 2 3 zu Seite: 3


Software-Engineering im Überblick (Informatik)
mehr... (37 mehr Zeichen) Druckoptimierte Version Diesen Artikel an einen Freund senden 2631 mal gelesen
Die Gesamtheit aller Aktivitäten die zu einem lauf- und leistungsfähigen Softwaresystem führen bezeichnet man als Software Engineering.

Dabei ist das englische Wort "Engineering" nicht ohne Grund gewählt worden, um diese Disziplin der Informatik zu titulieren. Viele Vorgehensweisen erinnern an Methoden oder Werkzeuge der klassischen "Ingenieurskunst". Natürlich bestehen auch gravierende Unterschiede darin beispielsweise ein Haus zu bauen oder ein (großes) Software-System zu entwickeln. Will man bei einem Bauprojekt den Fortschritt ermitteln, so kann man dies relativ einfach tun. Dies ist dagegen bei Software-Projekten mitnichten so, um nur einen wesentlichen Unterschied zu nennen.

Dieses erste Dokument aus dem Bereich der praktischen Informatik, soll einen Überblick über den Bereich des Software Engineerings geben - mehr nicht. D.h. insbesondere, dass hier nicht auf Detail bspw. der Aktivitäten (Anforderungsermittlung, Analyse, Entwurf, Implementierung, Einführung) eingegangen wird.

 

Es sei auch ausdrücklich konstatiert, dass dies ein Vorschlag bzw. eine Bewertung für ein mögliches Vorgehen in der Software-Entwicklung darstellt. Insbesondere existiert kein Königsweg zur Erstellung eines großen Software-Systems.

Im Einzelnen werden behandelt:

  • Allgemeine Aspekte:
    Was ist Software Engineering? - ein Definitionsversuch. Aktivitäten, Arten von Aktivitäten, prozessbezogene und produktbezogene Aktivitäten, Methoden und Werkzeuge des Software Engineering, Anwendungssysteme, Kategorien von Anwendungssystemen (Individualsoftware, Standardsoftware, Systemsoftware), Workflow-Modelle, Aspekte eines Workflow-Modells, Geschäftsprozess.
  • Software-Qualität:
    Eigenschaften von Software, Definitionsversuch des Begriffes "Software-Qualität", Einteilung in Produktqualität und Gebrauchsqualität, Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit, Übertragbarkeit.
  • Aktivitäten:
    Überblick über die Anforderungsermittlung, den Entwurf, die Implementation, das Testen und die Systemeinführung.
  • Anforderungsermittlung:
    funktionale und nicht-funktionale Anforderungen, Extraktion, Verhandeln, Spezifizieren, Validieren und Verifizieren.
  • Entwurf:
    Bewältigung der Komplexität und Schaffung der inneren Struktur. Evtl. Zwischenaktivität der Analyse, Merkmale einer guten Entwurfsspezifikation (starke Kohäsion, schwache Kopplung, Funktionalität jedes Moduls, Geheimnisprinzip), Rahmenwerk (framework), Programmbibliothek, Komponenten.
  • Implementation, Testen und Systemeinführung
  • Vorgehensmodelle: (iteratives) Wasserfallmodell, Phasen eines Vorgehensmodells, Rational Unified Process (RUF), Extreme Programming (XP) - Erläuterungen und Eigenschaften.

 

Geschrieben von Alexander am Montag, 23. Oktober 2006 mehr...

HeapSort - wie man mit einem "Haufen" sortieren kann! (Informatik)
mehr... (9 mehr Zeichen) Druckoptimierte Version Diesen Artikel an einen Freund senden 2700 mal gelesen
Der Heap-Sort ist ein grundlegender Algorithmus der in (fast) keiner Vorlesung "Datenstrukturen und Algorithmen" ausgelassen wird.

Dieses Sortierverfahren wird meist im Kontext binärer Bäume eingeführt; dies ist dadurch begründet, dass der natürliche Definitionsbereich der besonderen Datenstruktur "Heap" ein binärer Baum ist. Dennoch wendet man in der Praxis den Sortieralgorithmus Heapsort für gewöhnlich auf normalen Arrays an.

Die Methode des Sortierens durch direkte Auswahl beruht auf dem wiederholten Auslesen des kleinsten Schlüssels aus (den restlichen) n Elementen. Auf einem ähnlichen Prinzip basiert der Haepsort, doch die zu Grunde gelegte Datenstruktur Heap (zu deutsch Haufen) behält mehr Informationen und ist deshalb deutlich schneller als die 'normale' Variante des Sortierens durch direkte Auswahl.

Der Inhalt dieses Dokuments behandelt überwiegend die heuristische Vorgehensweise des Algorithmus. Es werden viele Beispiele durchexerziert und erklärt. Am Rande wird auf die Kosten und evtl. Beweis der Korrektheit eingegangen. Die notwendigen Algorithmen für eine mögliche Implementation werden ausführlich dargestellt und hinterleuchtet.

Im Einzelnen werden behandelt:

  • Vergleich mit naiven Sortierverfahren: Einfügen, Löschen, Suchen
  • Definition, Heap-Bedingung, Minimums-Heap und Maximums-Heap, Alternative Formulierung der Heap-Bedingung für binäre Bäume, Beispiele
  • Algorithmen: StelleHeapBedingungHer(), ShiftDown() ["versickern"], EntferneExtrema(), ErzeugeHeap() - konkrete Beispiele zu allen Algorithmen.
  • Analyse des Heap-Sorts
Geschrieben von Alexander am Donnerstag, 29. Juni 2006 mehr...

AVL-Bäume: Ausgeglichene binäre Suchbäume (Informatik)
mehr... (9 mehr Zeichen) Druckoptimierte Version Diesen Artikel an einen Freund senden 3031 mal gelesen

Das Suchen, Einfügen und Entfernen eines Schlüssels in einem zufällig erzeugten binären Suchbaum mit N Schlüsseln ist zwar im Mittel O(log(N)) Schritten ausführbar. Im schlechtesten Fall kann jedoch ein Aufwand von der Ordnung Theta(N) zur Ausführung dieser Operation erforderlich sein, weil der gegebene Baum mit N Schlüsseln zu einer Liste degeneriert ist. Es ist daher natürlich, durch zusätzliche Bedingungen an die Struktur der Bäume ein Degenerieren zu verhindern. Die Operationen zum Einfügen und Entfernen werden dann allerdings komplizierter als für natürliche Bäume.

Im Einzelnen werden behandelt:
  • Kosten für das Einfügen (insert), Löschen (delete) und Suchen (member) in AVL-Bäumen
  • Definitionen: AVL-Baum als spezieller binärer Suchbaum, Balancefaktor, bal(v), linker Teilbaum, rechter Teilbaum, Algorithmus isbalanced, Beispiele
  • Operationen auf AVL-Bäumen, 4 elementaren Operationen auf AVL-Bäumen, Doppelrotation, einfache Rotation, wann welche Operation?, Schema für die Doppelroation und die einfache Rotation, Doppelrotation = zwei einfache Rotationen
  • Löschoperationen
Geschrieben von Alexander am Samstag, 27. Mai 2006 mehr...

Hashing in der Informatik (Informatik)
mehr... (29 mehr Zeichen) Druckoptimierte Version Diesen Artikel an einen Freund senden 2728 mal gelesen
Hashing ist eine Methode zur dynamischen Verwaltung von Daten, die durch einen eindeutigen Schlüssel angesprochen (gesteuert) werden:
  • Suchen nach einem Datensatz,
  • Einfügen eines neuen Datensatzes,
  • Löschen eines Datensatzes.
Gehen wir davon aus, dass zu jedem Zeitpunkt nur eine (kleine) Teilmenge K aller möglichen Schlüssel U (und die zugehörigen m Datensätze) gespeichert sind, so kann versucht werden, die Datensätze in einem Array a der Länge m zu speichern, also a[0..m–-1]. Das Array a[0..m–-1] bezeichnen wir als Hashtabelle und die Größe der Hashtabelle wird durch m festgelegt.

Die grundsätzlich Idee ist nun den Speicherplatz eines jeweiligen Datensatzes mit Hilfe des eindeutigen Schlüsselwertes zu berechnen. Dazu benötigen wir natürlich eine Funktion, welche auf einer Teilmenge der natürlichen Zahlen definiert ist - die Hashfunktion. Diese muss um den praktischen Anforderungen zu genügen gewisse Eigenschaften aufweisen.

Im Einzelnen werden behandelt:
  • Grundlagen des Hashings, Behälter, Array, Datensätze, Datenstrukturen zur Verwaltung von Dictionaries, dynamische Datenmengen - Einfügen, Löschen, Verändern
  • Kosten, Platz, Zeit, O(n), Komplexität
  • Hashfunktion, Auswahl der Hashfunktionen, totale Abbildung, surjektiv, injektiv, effizient berechenbar, Kollision, Beispiele
  • Wahrscheinlichkeit einer Kollision, Beispiel
  • Klassifizierung der Hashverfahren, Verkettung der Überläufer, offener Adressierung, offenes Hashing, geschlossenes Hashing
  • Sondierfolge, Sondierungsarten, Lineares Sondieren, quadratisches Sondieren, Doppel-Hashing, Beispiel
  • Divisionsmethode, Multiplikationsmethode, Mittelquadratmethode
Geschrieben von Alexander am Freitag, 12. Mai 2006 mehr...

Rekursion in der praktischen Informatik (Informatik)
mehr... (5005 mehr Zeichen) Druckoptimierte Version Diesen Artikel an einen Freund senden 4723 mal gelesen
Das Ziel dieses Artikels besteht darin, die Rekursion als praktisch verwertbare Methode der Programmierung zu untersuchen. Insbesondere werden Themen wie Primitiv-Rekursion o.ä. in diesem Artikel nicht behandelt - dies sei der theoretischen Informatik vorbehalten. In diesem Dokument wollen wir das Zeichen stets als die natürlichen Zahlen (inklusive der 0) verstehen.

Die Rekursion ist ein fundamentales Prinzip in der Mathematik und Informatik:
In der Mathematik spricht man von der rekursiven Definition einer Funktion, wenn diese „durch sich selbst definiert wird“. Eines der bekanntesten Beispiele der Mathematik ist die Fibonacci-Folge: Es sei f: eine Funktion (genauer eine Folge) definiert durch

  • f(0) := 1
  • f(1) := 1
  • f(n) := f(n-1) + f(n-2) [für n>1]
Es ist also f(2) = f(2-1) + f(2-2) = f(1) + f(0) = 2. Das (n+1)-te Folgenglied ergibt sich also stets durch Addition des n-ten und des (n-1)-ten Folgengliedes. Die ersten Folgenglieder sind also {1, 1, 2, 3, 5, 8, 13, 21, 34, ...}.
Auch in der Mathematik ist das wesentliche der Rekursion die Möglichkeit, eine unendliche Menge von Objekten durch eine endliche Aussage zu definieren. Auf die gleiche Art kann eine unendliche Zahl von Berechnungen durch ein endilches rekursives Programm beschrieben werden, ohne dass das Programm explizit Schleifen enthält. Natürlich können nur endlich viele Berechnungen auf Rechenmaschinen durchgeführt werden, doch zumind. die Beschreibung ist in diesem Sinne vollständig.

Geschrieben von alexander am Montag, 13. Februar 2006 mehr...


11 Artikel (3 Seiten, 5 Artikel pro Seite)

zu Seite: 1 1 2 3 zu Seite: 3


Umfrage
Ganz klar, das schönste Ressort der Mathematik ist die

Zahlentheorie
(Lineare) Algebra
Topologie, Maßtheorie, Integrationstheorie
Statistik, Wahrscheinlichkeitstheorie, Stochastik
Analysis, Funktionalanalysis
Funktionentheorie
Kombinatorik, Graphentheorie
Diskrete Mathematik
Lineare Optimierung

Ergebnisse
Stimmen: 662
Kommentare: 0
Umfragen

Login
Benutzername:

Passwort:



Alle Logos und Warenzeichen auf dieser Seite sind Eigentum der jeweiligen Besitzer und Lizenzhalter.
Im übrigen gilt Haftungsausschluss. Weitere Details finden Sie im Impressum.
Die Inhalte dieser Seite sind als RSS/RDF-Quelle verfügbar.
Die Artikel sind geistiges Eigentum des/der jeweiligen Autoren,
alles andere © 2004 - 2017 by mathematik-netz.de

Seitenerstellung in 0.0765 Sekunden, mit 52 Datenbank-Abfragen