Programm vs. Software - Wirtschaftsinformatik - Ruhr

Werbung
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
1. Einführung
1.1 Programmierung & Software
1.2 Programmiersprachen
Wirtschaftsinformatik II
Folie 9
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Grundbegriffe:
Programm vs. Software
Eine zur Lösung einer Aufgabe vollständige Anweisung zusammen
mit allen erforderlichen Vereinbarungen heißt PROGRAMM.
Ein PROGRAMM setzt sich aus Befehlen zusammen, die von der
Zentraleinheit in logischer Reihenfolge abgearbeitet werden.
Die Menge von PROGRAMMEN, zugehörigen DATEN und notwendigen DOKUMENTATIONEN, die zusammengefasst erlauben,
mit Hilfe eines Computers Aufgaben zu erledigen, nennt man
SOFTWARE.
SOFTWARE-ENGINEERING:
Zielorientierte Bereitstellung und systematische Verwendung von
Prinzipien, Methoden, Konzepten, Notationen und Werkzeugen für
die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung
von umfangreichen SOFTWARE(-Systemen).
Wirtschaftsinformatik II
Folie 10
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Software - Charakteristika
Software ist ein immaterielles Produkt
Software ist schwer zu bewerten
Software unterliegt keinem Verschleiß
Software ist im allgemeinen leichter und schneller
änderbar als ein technisches Produkt
Software benötigt keine Ersatzteile
Software altert
Wirtschaftsinformatik II
Folie 11
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Software - Tendenzen
Zunehmende Bedeutung im
Verhältnis zur Hardware
Wachsende Komplexität
Nachfragestau
9 Euro-Einführung
9 Jahr 2000-Problematik
60 MOI
50 MOI
SPACE
SCHUTTLE
40 MOI
APOLLO
20 MOI
GEMINI
MERCURY
10 MOI
1960
1970
1980
1990
Strategischer Wettbewerbsfaktor
Zunahme der Standardsoftware im Vergleich zur Individualsoftware
Zunehmende Fremdentwicklung im Vergleich zur Eigenentwicklung
Zunehmende Altlasten
Zunehmende Qualitätsanforderungen
Wirtschaftsinformatik II
Folie 12
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Software - Systematisierung
Software
Software
Systemsoftware
Systemsoftware
Anwendungssoftware
Anwendungssoftware
(Basissoftware)
(Basissoftware)
(application
(application software)
software)
Betriebssysteme
Betriebssysteme
Technisch/Wissenschaftliche
Technisch/Wissenschaftliche
Programme
Programme
Steuerprogramme
Steuerprogramme
Übersetzungsprogramme
Übersetzungsprogramme
Kommerzielle
Kommerzielle Programme
Programme
(auf
(auf betriebliche
betriebliche Fkt.
Fkt. bezogen)
bezogen)
Dienstprogramme
Dienstprogramme
Systemnahe
Systemnahe Software
Software
Branchenprogramme
Branchenprogramme
(z.B.
(z.B. Datenbankverwaltungssysteme,
Datenbankverwaltungssysteme,
Kommunikationsprogramme)
Kommunikationsprogramme)
Programmiersprachen,
Programmiersprachen,
ProgrammentwicklungsProgrammentwicklungssysteme
systeme (CASE-Systeme)
(CASE-Systeme)
Wirtschaftsinformatik II
Folie 13
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Softwareschichten
Benutzer
Benutzeroberfläche
Benutzer
Anwendungssoftware
Kommunikation
CASE
DBMS
Branchenpakete
BetriebsDienstsystem
programme
Assembler
Interpreter
Funktional
orientierte
Pakete
Compiler
Individuell entwickelte
Programme
Benutzer
Wirtschaftsinformatik II
Folie 14
Apr-05
Benutzer
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
1. Einführung
1.1 Programmierung & Software
1.2 Programmiersprachen
Wirtschaftsinformatik II
Folie 15
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Programmiersprachen
Eine PROGRAMMIERSPRACHE ist eine Künstliche
Sprache zum Abfassen von Computerprogrammen
(DIN 44300).
Programmiersprachen sollen es ermöglichen, den
Lösungsweg (Algorithmus) für eine spezielle
Problemstellung in einer der Maschine verständlichen
Sprache zu formulieren.
Wirtschaftsinformatik II
Folie 16
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Programmierumgebung
Eine PROGRAMMIERUMGEBUNG ist ein Softwaresystem, das eine Sammlung von Werkzeugen, die zur
Entwicklung von Software dient, zur Verfügung stellt.
Wesentliche Komponenten:
9 TEXTEDITOR: zur Erfassung des Quelltextes
9 ÜBERSETZUNGSPROGRAMME: Programm, das
Anweisungen in einer höheren Sprache liest, analysiert und in
bedeutungsgleiche Maschinenbefehle umwandelt
9 DEBUGGER: ermöglicht ein schrittweises Abarbeiten des
Programms zu Testzwecken
9 HILFESYSTEM: erlaubt die kontextsensitive Abfrage von
Informationen zur Programmsyntax u.ä.
9 GUI-BUILDER: Modellierung der Benutzeroberfläche
Wirtschaftsinformatik II
Folie 17
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Programmierumgebung Visual Basic
Übersetzungsprg.
Debugger
Wirtschaftsinformatik II
Folie 18
Apr-05
Texteditor
Hilfesystem
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Programmiersprachenstammbaum
Wirtschaftsinformatik II
Folie 19
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Sprachgenerationen
Maschinensprache
Sprachen der ersten Generation:
MASCHINENSPRACHEN
Sprachen der zweiten Generation:
ASSEMBLERSPRACHEN
Assemblersprachen
Sprachen der dritten Generation:
HÖHERE PROGRAMMIERSPRACHEN
Höhere Programmiersprachen
Sprachen der vierten Generation:
4GL-Systeme
4GL-SYSTEME
Alternative Sprachrichtungen
Alternative Sprachrichtungen:
9 SPRACHEN DER KÜNSTLICHEN INTELLIGENZ
(Sprachen der fünften Generation)
9 OBJEKTORIENTIERTE PROGRAMMIERSPRACHEN
9 VISUELLE PROGRAMMIERSPRACHEN
Wirtschaftsinformatik II
Folie 20
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Maschinensprachen (1. Generation)
Maschinenorientierte Sprache
Jeder Befehl besteht aus einer Folge der Binärzeichen
0 und 1 entsprechend dem Befehlssatz des jeweiligen
Prozessors.
Beispiel: Addiere 3+4 (Großrechner)
9 Befehl ´Addition´, Operanden 3, 4: 00011010 0011 0100
4
Befehls- 3
wort
unmittelbare Hardware-Orientierung, unverständlich,
unübersichtlich, fehleranfällig
Wirtschaftsinformatik II
Folie 21
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Assemblersprachen (2. Generation)
maschinenorientierte Sprache, die den Aufbau der Befehle der Maschinensprache beibehält, die Instruktionsteile jedoch nicht primär verschlüsselt, sondern durch
Symbolik (mnemotechnische Abkürzungen) ausdrückt
Beispiel: Addiere 3+4
9 Assemblerbefehl: ADD 3, 4
Die Übersetzung in Maschinensprache erfolgt mit Hilfe
eines ASSEMBLIERERS (1:1-Übersetzung).
optimale Speicherausnutzung und
Verarbeitungsgeschwindigkeit
enge Hardware-Orientierung, unübersichtlich,
fehleranfällig
Wirtschaftsinformatik II
Folie 22
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Höhere / Prozedurale
Programmiersprachen (3. Generation)
Weitgehend genormte Sprachen, die für einen speziellen
Anwendungsbereich konzipiert (problemorientiert) sind
und nahezu unabhängig von einem bestimmten Rechnertyp sind.
Die Programmierung erfolgt durch die Formulierung von
Algorithmen (Algorithmus = Abfolge von Operationen, die
jeweils Daten bearbeiten).
Beispiel: Addiere 3+4: Operation SUMME = 3 + 4
Übersetzung in Maschinensprache erfolgt durch einen
Compiler/Interpreter (1:n-Übersetzung)
schlechtere Performance
Wirtschaftsinformatik II
Folie 23
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Übersetzungsprogramm I
Ein Programm, das nicht in Maschinensprache
abgefasst ist, wird QUELLPROGRAMM
(QUELLCODE/SOURCECODE) genannt.
Ein in Maschinensprache vorliegendes Programm
(=Zielprogramm des Übersetzungsvorgangs) heißt
OBJEKTPROGRAMM (OBJEKTCODE).
Unter einem ÜBERSETZUNGSPROGRAMM
(TRANSLATOR) versteht man ein Programm, das
Anweisungen in einer höheren Sprache oder in
Assemblersprache liest, analysiert (Optimierung) und in
bedeutungsgleiche Maschinenbefehle umwandelt.
Wirtschaftsinformatik II
Folie 24
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Übersetzungsprogramm II
QUELLCODE:
QUELLCODE:
PROGRAM
PROGRAMtest;
test;
BEGIN
BEGIN
WriteLN
WriteLN('Hallo!');
('Hallo!');
...
...
ÜBERSETZUNGSÜBERSETZUNGSPROGRAMM
PROGRAMM
(Assemblierer,
(Assemblierer,
Compiler,
Compiler,Interpreter)
Interpreter)
OBJEKTCODE:
OBJEKTCODE:
0101000100111
0101000100111
0110010011111
0110010011111
1110110001100
1110110001100
1100011...
1100011...
Hallo!
Wirtschaftsinformatik II
Folie 25
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Compiler vs. Interpreter
Compiler
9 Ein Übersetzungsprogramm, das in einer höheren Programmiersprache abgefassten Quellcode komplett in Zielanweisungen einer
maschinenorientierten Programmiersprache umwandelt (kompiliert).
9 Das erzeugte Objektprogramm kann für spätere Verarbeitungsläufe
abgespeichert werden, so dass vor der (erneuten) Ausführung keine
Übersetzung mehr nötig ist.
Interpreter
9 Ein Programm zur schrittweisen Übersetzung von Quellcode in
lauffähigen Maschinencode, welcher sofort (zeilenweise) ausgeführt
wird.
9 Im Unterschied zum Kompilieren entsteht kein vollständiges,
aufbewahrungsfähiges Objektprogramm.
9 Bei jedem Programmstart erfolgt ein erneuter
Übersetzungsvorgang
Wirtschaftsinformatik II
Folie 26
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Assemblierer – Compiler – Interpreter
Assemblierer
Assemblierer
Maschinensprache
Compiler
Compiler/ /Interpreter
Interpreter
00011010 0011 0100
Assemblersprachen
Höhere Programmiersprachen
4GL-Systeme
Alternative Sprachrichtungen
ADD 3, 4
SUMME = 3 + 4
Wirtschaftsinformatik II
Folie 27
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Beispiele für 3-GL-Sprachen I
COBOL (COmmon Business Oriented Language)
9
9
9
9
Entwicklung in den 50er Jahren
betriebswirtschaftliche Anwendungen (Verarbeitung umfangreicher Datenbestände)
meistgenutzte Programmiersprache auf Großrechnern
Standard: ANSI-COBOL-85
FORTRAN (FORmula TRANslator)
9 Entwicklung in den 50er Jahren von IBM
9 technisch-wissenschaftliche Anwendungen (effiziente Programme für komplexe
mathematische Algorithmen)
9 Standard: FORTRAN 90
BASIC (Beginners All-Purpose Symbolic Instruction Code)
9 Entwicklung in den 60er Jahren als ´vereinfachtes´ FORTRAN
9 fehlende Unterstützung der strukturierten Programmierung führte zu
´Spaghetticode´
9 Weiterentwicklung (MICROSOFT) zur professionellen Makro- und
Programmiersprache VISUAL BASIC (Visuelle Programmierung)
Wirtschaftsinformatik II
Folie 28
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Beispiele für 3-GL-Sprachen II
C
9 Entwicklung in den 70er Jahren in den Bell Laboratories des amerikanischen
Telekommunikationskonzerns AT&T
9 effizientes Laufzeitverhalten
9 eng mit dem Betriebssystem UNIX verbunden (UNIX zu 90% in C geschrieben)
9 universell einsetzbar auf allen gängigen Rechnern
9 objektorientierte Nachfolger: C++
Makrosprachen
9 Automatisierung von wiederkehrenden Abläufen innerhalb von Anwendungen
(z.B. Textverarbeitung, Tabellenkalkulation)
9 Proprietär: Der Befehlsumfang wird ausschließlich von einem einzigen
Hersteller definiert bzw. weiterentwickelt
9 zumeist herstellerspezifische Dialekte der Programmiersprache BASIC
9 z.B. Visual Basic for Application (VBA) von MICROSOFT, LotusScript von
LOTUS
Wirtschaftsinformatik II
Folie 29
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Beispiele für 3-GL-Sprachen III
PASCAL
Niklaus Wirth
9 1971 von Prof. Niklaus Wirth an der ETH Zürich entwickelt
9 benannt nach französischen Mathematiker und Philosophen
Blaise Pascal (1623-1662)
9 unterstützt die strukturierte Programmierung
9 durch leichte Erlernbarkeit für Ausbildungszwecke geeignet
9 geringe Verbreitung im Bereich kommerzielle Anwendungsentwicklung
durch unkomfortable Ein- und Ausgabeanweisungen und
unzureichende Dateiverarbeitung
9 Nachfolger:
• MODULA 2 (modulare Programmierung)
• ObjectPascal (objektorientierte Programmierung)
• Delphi (visuelle Programmierung)
Blaise Pascal
(1623-1662)
Wirtschaftsinformatik II
Folie 30
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Nicht-prozedurale Sprachen
4GL-Systeme (4. Generation)
Deskriptive Programmierung
Der Programmierer muss nicht mehr angeben, auf welche Weise ein
Problem Schritt für Schritt gelöst werden soll, sondern er legt in
beschreibender Form das Resultat fest, was geschehen soll.
Prozedurale
Beispiel:
Prozedurale Variante:
Variante:
1.
1. Gehe
Gehe zum
zum ersten
ersten Datensatz
Datensatz in
in der
der Tabelle
Tabelle
Sortieren einer Kundenliste
Kunde
Datenbanksprache
Structured Query Language (SQL)
SELECT
Vorname, Nachname
FROM
Kunden
WHERE
Ort = ´Bochum´
ORDER BY Nachname
Kunde
2.
2. Solange
Solange noch
noch nicht
nicht am
am Ende
Ende der
der Tabelle
Tabelle
Kunde
Kunde
2.1.
2.1. Wenn
Wenn Ort
Ort von
von jeweiligen
jeweiligen Datensatz
Datensatz
== ´Bochum´
´Bochum´
2.1.1.
2.1.1. Dann
Dann Markiere
Markiere den
den Datensatz
Datensatz
2.2.
2.2. Gehe
Gehe zum
zum nächsten
nächsten Datensatz
Datensatz
3.
3. Kopiere
Kopiere von
von markierten
markierten Datensätzen
Datensätzen
Vorname,
Vorname, Nachname
Nachname in
in eine
eine temporäre
temporäre
Tabelle
Tabelle
4.
4. Sortiere
Sortiere Datensätze
Datensätze der
der temporären
temporären
Tabelle
Tabelle nach
nach Nachnamen
Nachnamen
Proprietär, hohe Inanspruchnahme der Hardwareressourcen bei
Umsetzung, beschränkter Anwendungsbereich
Wirtschaftsinformatik II
Folie 31
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Alternative Richtungen:
Sprachen der künstlichen Intelligenz
Sprachen der 5. Generation
Anwendungsgebiete: Expertensysteme, Robotersteuerung,
Data Mining
Funktionale Programmiersprachen
9 mathematische Funktionen auf Basis von Basisfunktionen
(Aneinanderkettung, Iteration, Rekursion)
9 LISP (LISt-Processing Language):
• 1958 am MIT (Massachusetts Institute of Technology) entwickelt
• grundlegende Struktur der Liste für Programme und Daten
Logische Programmiersprachen
9 Prinzipien der mathematischen Logik: aus Fakten und Regeln werden
mit Hilfe der Prädikatenlogik neue Fakten gewonnen
9 PROLOG (PROgramming LOGic):
• 1972 in Marseille entwickelt
• kaum Ablaufsteuerung, Verwendung von Deduktionsverfahren
Wirtschaftsinformatik II
Folie 32
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Alternative Richtungen:
Objektorientierte Programmierspr.
Objekt
9 Daten: beschreiben den Zustand des Objekts
9 Methoden: beschreiben das Verhalten des Objekts
Klassen: Objekte mit gemeinsamer Struktur und
gemeinsamen Verhalten
weitere Konzepte: einfache/mehrfache Vererbung,
Polymorphismus
Objektorientierte Programmiersprachen (OOP)
9 Simula (1967), Smalltalk (1972), Eiffel (1988), Java (1995)
Hybridsprachen
9 C++ (1985), ObjectPascal (1985), Modula-3 (1985)
Wirtschaftsinformatik II
Folie 33
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Alternative Richtungen:
Visuelle Programmiersprachen
objekt- und ereignisorientierte Modellierung des
optischen Erscheinungsbildes des Programms
Kontroll-/Steuerelemente besitzen Eigenschaften
(z.B. Farbe) und Ereignisse (z.B. Mausklick)
den Ereignissen werden Ereignisprozeduren
zugeordnet
VISUAL BASIC von MICROSOFT
DELPHI von BORLAND
Wirtschaftsinformatik II
Folie 34
Apr-05
Ruhr-Universität Bochum
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Gefragte Softwaretechnologien
bei den IT-Kernberufen
Softwareentwicklung /
Programmierung
IT-Organisation / IT-Projekte
Netzwerke / Betriebssysteme
Service / Support
Datenbanken
[CDI, Sept 2001]
Wirtschaftsinformatik II
Folie 35
Ruhr-Universität Bochum
Apr-05
Lehrstuhl für Wirtschaftsinformatik
Prof. Dr. Roland Gabriel
Gefragte Softwaretechnologien
bei den IT-Mischberufen
Multimedia
E-Business / E-Commerce
SAP
CAD
Kaufmännische
Sachbearbeitung
[CDI, Sept 2001]
Wirtschaftsinformatik II
Folie 36
Apr-05
Ruhr-Universität Bochum
Herunterladen