Lernfeld 5 Flashcards
Arten der Softwareanpassung
- Customizing : das Anpassen von Standardsoftware an die individuellen Wünsche des Kunden. Dabei wird der Quellcode nicht verändert. Konfiguration oder Parametrisierung
- Erweiterungsprogrammierung: wird zur Anpassung einer Standardsoftware genutzt, wenn die Möglichkeiten vom Customizing nicht ausreichen. Dabei wird die Software um individuell entwickelte Programmteile erweitert
- Neuentwicklung: Reichen die Möglichkeiten von Customizing und Erweiterungsprogrammierung nicht aus, wird die Software komplett neu als Individualsoftware entwickelt.
- Datenmigration: Bei der Datenmigration wird ein vorhandenes System zur Verwaltung von Daten durch ein neues ersetzt. Dabei müssen die Daten vom Altsystem auf das neue System übertragen werden.
Projektphasen in Softwareentwicklung
- Projektstart: Bedarf und Nutzen des geplanten Projektes werden entschieden
- Projektplannung: . Inhalt, Zeit, Budget, benötigte Ressourcen, Qualität, Kommunikation, Risiko, Stakeholder, Teilprojekte
- Projektdurchführung: realisieren
- Projektkontrolle: erfolgt parallel zur Durchführungsphase und stellt gleichzeitig auch eine eigene Phase dar. Dabei steuert und überwacht der Projektleiter alle relevanten Projektaktivitäten.
- Projektabschluss: allen nötigen Unterlagen, z.B. der Kundendokumentation, dem Kunden übergeben. Wenn dieser die Software abgenommen hat, wird das Projekt beendet.
Gleitkommazahlen nach IEEE 754/IEC 60559
Die Darstellung der Gleitkommazahlen ist in der IEEE 754-2008 für 32, 64 und 128 Bit definiert. Die binäre Form einer Gleitkommazahl entspricht: Vorzeichen (V) + Exponent (E) + Mantisse (M) und ist als Standard festgelegt. Die Genauigkeit der Gleitkommazahl hängtdavon ab, wie viele Bit die Mantisse umfasst.
32-Bit Gleitkommazahl: 1 Bit Vorzeichen – 8 Bit Exponent – 23 Bit Mantisse
64-Bit Gleitkommazahl: 1 Bit Vorzeichen – 11 Bit Exponent – 52 Bit Mantisse
Kenngrößen der digitalen Abbildung von Audiodaten
Die Sampling-Rate gibt die Anzahl der Messungen pro Sekunde an
Die Sampling-Tiefe gibt an, wie viele Bit pro gespeichertem Ton verwendet werden.
Die Anzahl der Tonkanäle bestimmt, ob Raumklänge gespeichert werden oder nicht. Je höher die Anzahl der Kanäle ist, umso realistischer wird das Hörerlebnis.
Unterscheidung der Datenquellen in Primärdaten und Sekundärdaten
- Primärdaten sind Daten, die vom Unternehmen eigenständig erhoben werden. Meistens sind diese Daten noch nicht vorhanden und müssen erst gesammelt werden. sehr zeit- und kostenintensiv. Dafür sind die Daten dann in aller Regel auch sehr aktuell und genau auf die Problemstellung bezogen.
Quellen: * Mündliche oder schriftliche Befragung * Interview * Fragebogen * Computergestützte Befragung * Beobachtung - Sekundärdaten wurden bereits früher für ähnliche oder andere Zwecke erhoben. Sie haben den Vorteil, schnell verfügbar zu sein und sind oft kostengünstiger und von einer Qualität, die eine eigene Analyse nicht erreichen kann. Häufig sind diese Daten jedoch nicht aktuell oder für das Problem nur bedingt geeignet. Auch die Zuverlässigkeit der Daten ist nicht immer einfach zu beurteilen.
Quellen: * Unternehmensinterne Datenquellen * Datenbanken * Vertriebserfolgsanalyse
Bit
Byte
Halb-Byte oder Nibbel
Word
Double Word
Kleinste Einheit ; kann nur zwei Zustände annehmen
Bit-Folge aus 8Bit ; neben dem Bit die gebräuchlichste Dateneinheit
Bit-Folge aus 4Bit oder ein halbes Byte
Entspricht auf den meisten Systemen einer Länge von 2Byte oder 16Bit
Entspricht auf den meisten Systemen einer Länge von 4Byte oder 32Bit
Phasen des Softwareentwicklungsprozesses nach IEEE-Standard 12207
Anforderungsanalyse und Erstellung einer Spezifikation: Ist-Zustände erfasst, Lastenheft, Pflichtenheft
-> Design (Entwurf): die Software mithilfe von Modellen entworfen
-> Umsetzung (Implementierung): die eigentliche Programmierung der Software in der gewählten Programmiersprache
-> Testen: , z.B. Modul-, Integrations-, System- und Akzeptanztests, durchgeführt.
-> Dokumentation: alle notwendigen Dokumente erstellt bzw. geordnet.
-> Auslieferung: die Software dem Auftraggeber bzw. Anwender zur Verfügung gestellt und gegebenenfalls installiert und konfiguriert.
-> Wartung und Support: Fehler zu beheben, die Effizienz zu verbessern oder Anpassungen an neue Anforderungen vorzunehmen.
Wasserfallmodell
Wasserfallmodell ist ein lineares Vorgehensmodell. Es ist in verschiedene Phasen unterteilt, welche nacheinander abgearbeitet werden.
Vorteile * Anforderungen sind präzise definiert. * Phasen sind klar voneinander abgegrenzt. * Relativ einfache Planung und Kontrolle möglich. * Anfallende Kosten und benötigte Zeiten lassen sich relativ einfach kalkulieren. * Entwicklung wird ausführlich dokumentiert.
Nachteile * Komplexe Softwareprojekte lassen sich nur schwer in klar abgegrenzte Phasen unterteilen. * Geringer Spielraum für Anpassungen aufgrund veränderter Anforderungen. * Der Auftraggeber ist nicht in den Entwicklungsprozess eingebunden. * Fehler werden teilweise erst am Ende des Entwicklungsprozesses erkannt.
Das Spiralmodell
ist im Gegensatz zum Wasserfallmodell ein iterativer Prozess, d. h. ein Prozess, in dem sich bestimmte Phasen stets wiederholen. Damit sollen die Projektrisiken minimiert werden.
Vorteile * Es besitzt eine hohe Flexibilität hinsichtlich geänderter Anforderungen. * Eine unabhängige Planung und Budgetierung der einzelnen Zyklen sind möglich. * Es wird eine flexible, rein risikoorientierte und dennoch kontrollierte Reaktion auf den momentanen Projektstand ermöglicht. * Eine integrierte Qualitätssicherung ist gewährleistet.
Nachteile * Auch dieses Modell ist durch die linearen Zyklen schlecht zu parallelisieren. * Die Risikobewertung ist schwierig durchzuführen. * Es besteht ein hoher Managementaufwand.
Das V-Modell
strukturiert den Softwareentwicklungsprozess ähnlich wie das Wasserfallmodell in einer sequenziellen Abfolge von Phasen. Ein wesentlicher Unterschied besteht in der Zusammengehörigkeit von Entwicklungsphasen und Tests.
Vorteile: * Verbesserung der Kommunikation zwischen den Beteiligten * Minimierung der Projektrisiken * Gewährleistung von Qualität * Eindämmung der Gesamtkosten für das gesamte Projekt * Verbesserung der Informationssicherheit * Für große und sehr große Projekte geeignet
Nachteile: * Komplexität und Umfang des Modells * Parallelisierung von Aufgaben ist schwierig * Änderungswünsche lassen sich nicht leicht integrieren * Abgrenzung verschiedener Projektphasen funktioniert schlecht * Überbetonung der Dokumentenerstellung * Für kleine Projekte ungeeignet
Scrum
Die Grundannahme bei diesem Modell ist, dass die Entwicklung einer Softwarenicht von Anfang bis Ende präzise durchgeplant werden kann. Deshalb erfolgt die Produktentwicklung iterativ (= wiederholend) in Feedback-Schleifen von wenigen Wochen, den sog. Sprints.
Vorteile * Wenige Regeln und leicht verständlich * Kurze Kommunikationswege * Hohe Flexibilität * Hohe Effektivität durch Selbstorganisation * Hohe Transparenz durch regelmäßige Meetings und Backlogs * Kontinuierlicher Verbesserungsprozess * Geringer Administrations- und Dokumentationsaufwand
Nachteile * Kein Gesamtüberblick über die komplette Projektstrecke * Hoher Kommunikations- und Abstimmungsaufwand * Wenige konkrete Handlungsempfehlungen * Erschwerte Koordination mehrerer Entwicklungsteams bei Großprojekten * Potenzielle Unvereinbarkeit mit bestehenden Unternehmensstrukturen
DevOps Ansatz und Vor- und Nachteile
Es werden die agilen Methoden der Entwicklung mit den stabilen Methoden des Betriebs von Software vereint.
Vorteile * Schnelleres Time-to-Market * Hohe Liefertreue * Kurze Kommunikationswege * Transparentes Arbeiten * Kürzere Problemlösungszeiten * Erwartungen des Auftraggebers können präzise erfüllt werden * Verbesserter Support
Nachteile * Potenzielle Unvereinbarkeit mit bestehenden Unternehmensstrukturen * Mitarbeiter müssen teilweise massiv umdenken und sich an neue Methoden und Tools gewöhnen
Nichtfunktionale Qualitätsanforderungen
Benutzbarkeit
Effizienz
Zuverlässigkeit
Änderbarkeit
Übertragbarkeit
Vorteile von Funktionen in Programmieren
Übersichtlichkeit: Komplexe Programme werden in kleine Teilprogramme zerlegt, damit die Komplexität heruntergebrochen wird. So ist der Kontrollfluss leichter zu erkennen.
Vermeidung von Redundanzen (Wiederholungen) im Quellcode: WiederkehrendeProgrammteile sollen nicht immer wieder neu programmiert, sondern an einer Stelle angeboten werden. Änderungen an der Funktionalität oder die Suche nach Fehlern lassen sich leichter durchführen.
Hohe Wiederverwendbarkeit von Quellcode: Programmteile, die einmal geschrieben wurden, können auch in andere Programme eingebunden werden. So spart man Entwicklungsaufwand.
Stand-alone-Datenbank vs File-Share-Datenbank vs Cline-Server-Datenbank
Bei einer Stand-Alone-Datenbank befinden sich sowohl die Datenbank als auch das Datenbankprogramm auf einer Workstation.
Bei der File-Share-Datenbank befindet sich die Datenbank auf dem Server, das Datenbankprogramm läuft auf jedem einzelnen Client.
Bei einer Client-Server-Datenbank befinden sich Datenbank und Datenbankmanagementsystem auf dem Server, während auf den Clients nur ein Programm als Zugriffsoberfläche ausgeführt wird.
Datenredundanz
Datenkonsistenz
Normalisierung Begriffe
Datenredundanz besteht, wenn dieselbe Information mehrfach in einer Datenbank vorhanden ist.
Als Datenkonsistenz wird die Korrektheit der Daten bezeichnet. Daten sind konsistent, wenn sie widerspruchsfrei sind.
Normalisierung ist ein Verfahren zur Verringerung von Datenredundanz in relationalen Datenmodellen, verbunden mit den Zielen Anomalien zu vermeiden und die Datenkonsistenz zu erhöhen.
Änderungsanomalie
Einfügeanomalie
Löschanomalie
Ändert etwa ein Mitarbeiter seinen Namen, muss diese Änderung an allen Stellen vorgenommen werden.
Soll beispielsweise ein Mitarbeiter erfasst werden, muss ihm auch eine Abteilung zugewiesen werden.
Eine Löschanomalie tritt auf, wenn beim Löschen bestimmter Daten ungewollt andere Daten gelöscht werden.
Data Definition Language (DDL)
Data Manipulation Language (DML)
Data Control Language (DCL)
Transaction Control Language (TCL)
umfasst alle Anweisungen, die verwendet werden, um Datenstrukturen und verwandte Elemente zubeschreiben, zu ändern oder zu entfernen. Zum Beispiel können damit Tabellen erzeugt oder vorhandene Tabellenstrukturen verändert werden. Zu den SQL- Befehlen der DDL gehören u. a. CREATE TABLE oder DROP TABLE.
alle Anweisungen an das Datenbanksystem, die dazu dienen, grundlegende Operationen an Datensätzen auszuführen, z.B. das Auswählen von Datensätzen aus einer Tabelle: UPDATE oder INSERT INTO.
Befehle, um an Nutzer der Datenbank Berechtigungen zu vergeben oder ihnen Berechtigungen zu entziehen. Typische Befehle der DCL sind u. a. GRANT und REVOKE.
stellen die Datenintegrität sicher, indem logisch zusammenhängende Anweisungen entweder komplett oder gar nicht ausgeführt werden. Zu den SQL-Befehlen der TCL gehören u. a. COMMIT oder ROLLBACK.