Vorlesung 2 Flashcards
Software und ihre Entwicklung
Programme
Befehlsfolgen, die von 1 Computer abgearbeitet werden; beschreiben abgeschlossenen Verarbeitungsvorgang
von Menschen geschrieben => an Computer gerichteten Programme verstehen
höhere Programmiersprachen
Anweisungen über mächtigere Befehle, die sich an der menschlichen Logik orientieren; Lösgelöst vom konkreten Prozessor
Maschinensprache
direkte Anweisungen an den Prozessor in Maschinencode
Assemblersprache
Anweisungen an den Prozessor über Befehlskürzel
imperative Programmiersprachen
durch eine Folge von Anweisungen wird beschrieben, wie das Programm seine Ergebnisse erzeugt
deklarative Programmiersprachen
durch Anweisungen wird beschrieben, welche Bedingungen die Ausgabe des Programms erfüllen muss; bei Übersetzung wird festgelegt wie die Ergebnisse konkret erzeugt werden
prozedurale Programmiersprachen
die verarbeitenden Prozeduren stehen im Fokus, Prozeduren verarbeiten Daten
objektorientierte Programmiersprachen
Die zu verarbeitenden Objekten stehen im Fokus, Objekte bestehen aus Daten und Methoden zu deren Manipulation
übersetzung mit einem Interpreter (höhere Programmiersprachen)
Programmcode wird aufgerufen, Programmcode wird durchlaufen und direkt während des Ablaufs in Maschinencode übersetzt
Übersetzung mit einem Compiler (Höhere Programmiersprachen)
Programmcode wird im Zuge eines Übersetzungsvorgangs in Maschinencode übertragen und in eine Datei geschrieben; Datei mit dem Maschinencode wird aufgerufen und vom Computer ausgeführt
textbasierter Quellcode
im syntax einer Programmiersprache
abstraktion richtet sich an Menschen
Menschen können Quellcode lesen und verändern
kann von Maschine nicht verarbeitet werden
ausführbarer Maschinencode
in Maschinensprache eines Prozessors
Code kann von Maschine verarbeitet werden
Menschen können nicht einfach lesen und verändern
Lizenzen
erlauben Nutzung der Software durch Lizenznehmer
schliessen Weitergabe der Software durch Lizenznehmer aus
Veränderungen nur im Quell-Code möglich
Proprietäre Software
anbieter Entwickelt Software und verkauft Nutzungslizenz
Quellcode wird nicht offengelegt
Dateien in ausführbaren Maschinencode ausgeliefert
Kopierschutz oder für Aktivierung ein Lizenzschlüssel erforderlich
Anwender kann Software gemäss Lizenzbestimmungen nutzen; Software nicht an andere weitergeben
Open-Source-Lizenzen (1)
Anbieter ist häufig Community, die Software entwickelt
Quellcode offen zur Verfügung gestellt
Software kostenlos; jedoch an bestimmte Lizenzen gebunden
Open-Source-Lizenzen (vorgaben)
quellcode ist zugänglich
beliebig eingesetzt werden
beliebig kopiert und verbreitet werden
Software darf verändert und in veränderter Form weitergeben
Wirtschaftlichkeit von Open-Source-Software
stark Netzeffekte; wenn damit erzeugte Daten/Dokumente weitergegeben werden
TCO können höher sein; Vorsichtsmotiv spricht gegen Open-Source
TCO (total cost of ownership)
ganzheitliche Erfassung der Informatikkosten (alle Kosten, die in Zusammenhang mit der Anschaffung und dem Betrieb eines Informationssystem entstehen)
direkte Kosten (Hard-Software, Operations, Verwaltung) + indirekte Kosten (End-user-Operations, Downtime)
Anwendungssoftware
muss bestimmten funktionalen und nicht-funktionalen Anforderungen entsprechen
Anforderungen können spezifisch für Betrieb/Aufgabe sein => Individuelle Software
Anforderungen können allgemeiner für unterschiedliche Betriebe in ähnlicher Form relevant sein => Standardisierte Software
Individual-Software
wird spezifisch für einen bestimmten Anwender und seine Bedürfnisse entwickelt
Vorteil: Entspricht genau Anforderungen der Anwender
Wettbewerbsvorteil durch individuelle Entwicklung; Abhängigkeit von externen Anbietern reduzieren
Nachteil: Entwicklungsaufwand relativ hoch
Standard-Software
wird zur Erfüllung bestimmter funktionaler Anforderungen für einen breiten Kreis von Anwendern entwickelt
Vorteil: Kosten auf mehrere Anwender verteilt
profitieren von Weiterentwicklungen für andere Anwender, rascher eingeführt, weniger Risiko
Nachteil: Anforderungen der einzelnen Nutzer nicht genau abgedeckt
Skaleneffekte bei Software
Software = immaterielles Gut
Hauptteil der Kosten entsteht in der Entwicklung; Entwicklungskosten lassen sich über Fixkostendegression auf verschiedene Nutzer verteilen
ungleich höhere Kostenvorteile durch Skaleneffekte als bei materiellen Gütern
Probleme der Standardisierung (Eignung)
hängt davon ab, ob unterschiedliche Nutzer die grundsätzlich gleichen Anforderungen an Software haben
Systemsoftware eignet sich gut zur Standardisierung; Anwendungssoftware von betriebsindividuellen Besonderheiten geprägt
Probleme der Standardisierung (Anpassung)
Standardsoftware Nachteil: nicht auf spezifische Anwenderbedürfnisse hin konzipiert; bei allgemeinen Problemstellungen relativ unerheblich
bei spezifischen Problemstellungen problematisch
um besondere betriebliche Gegebenheiten abzubilden braucht es unter Umständen Anpassungen