Informatik ist viel mehr als Delphi-Programmierung !
description
Transcript of Informatik ist viel mehr als Delphi-Programmierung !
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Informatik ist viel mehr als Delphi-Programmierung !
• Bedeutung der Informationstechnik
• Disziplinen der Informatik
• Programmiersprachen
• Softwaretechnologie
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Wirtschaftliche Bedeutung von Informations- und Kommunikationstechnik
0
500
1000
1500
2000
2500
3000
3500
Militär &
Verteid
igung
Masch
inenbau
Autoind
ustrie
Chem
ieindustrie
Textilin
dustrie
Inform. - und
Kom
m.-technik
Tourism
us
WeltweiteLeitindustrien
(Umsatz 1994 in Milliarden US-$)
ICT =Information andCommunicationTechnologyQuelle: Balzert, Bd. 1
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Dynamik des IT-Marktes
02468
10121416
Hardware Software Services
1997199819992000
Jährliche Wachstumsraten im westeuropäischen IT-Markt (Angaben in%):
Quelle: EITO
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Teilgebiete der Informatik
• Theoretische Informatik– Theoretische Grundlagen der Informationsverarbeitung
– Komplexität, Berechenbarkeit, Modellbildung, ...
• Technische Informatik– Konstruktion von informationsverarbeitenden Maschinen (Hardware)
• Praktische Informatik– Konstruktion von Algorithmen und Programmen (Software)
– Softwaretechnologie
– Betriebssysteme, Rechnernetze, Datenbanken, Compilerbau, Computergrafik, ...
• Angewandte Informatik– Einsatz maschineller Informationsverarbeitung
– Interdisziplinarität
• Künstliche Intelligenz– Lernende Maschinen, Sprach- und Bildverstehen, log. Schliessen
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Theoretische Informatik - Highlights
• Theorie der Berechenbarkeit:– Man kann beweisen, daß manche Aufgaben nicht durch Algorithmen
lösbar sind !
– Beispiel: Programm zur Analyse von Programmen auf die Möglichkeit von endlosen Abläufen
• Komplexitätsklassen:– Man kann von manchen Problemen beweisen, daß ihre Lösung für
größere Datenmengen exponentiell großen Zeit- oder Speicheraufwand benötigt.
• Kodierungstheorie:– Theorie der "Redundanz" und optimaler Codierungen ermöglicht
Kompression - spart Speicherplatz und Übertragungszeit.
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Praktische Informatik - Highlights
• Automatische Generierung von Sprachübersetzer (Compiler) aus Beschreibung von Programmiersprache
• Datenbanksysteme mit praktisch unbegrenztem Speichervermögen und zehntausenden gleichzeitiger Zugriffe
• Realistische dreidimensionale Grafik-Animationen
• Zuverlässige, störfallresistente und dynamisch erweiterbare globale Computernetzwerke
• Entwicklungsmethodik für systematische Konstruktion von komplexen, anpassungsfähigen Softwaresystemen
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
"Stammbaum" von Programmiersprachen
ALGOL
Simula
CLOS
LISP
SmalltalkEiffel
C
C++
VisualC++
Java
Pascal
Turbo Pascal
ObjectPascal/ Delphi
Ada
Ada-95
UCSD Pascal
FORTRAN
BASIC
VisualBasic
COBOL
PL/I
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
"Generationen" von Programmiersprachen
• 1. Generation: Maschinensprachen– rein binär
• 2. Generation: Assemblersprachen– bequemer handhabbare Darstellung der Maschinensprache
• 3. Generation: "höhere Programmiersprachen"– z.B. ALGOL, ObjectPascal, Java
• 4. Generation: Baukästen für Anwendungssysteme– z.B. CSP, QMF, Natural, z.T. auch Delphi
• (5. Generation: Intelligente selbstlernende Systeme)
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Programmiersprachen: Schnappschuß 1998
• In deutschen Softwarehäusern überwiegend verwendete Sprachen (Mehrfachnennungen möglich)
• Quelle: Universität Köln, nach Computerzeitung 36/1998
1419
22
44 45 47
05
101520253035404550
PL/1 Java VisualBasic
COBOL C C++
Nennungen %
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
"Hello World" in Java
class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello, World!");
}
}
Definierte Klasse
Definierte Methode
Resultat-Typ Argument-Typ
VerwendeteKlasse
VerwendetesObjekt
VerwendeteMethode
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Definition einer Klasse
class Point {
public double x, y;
public void clear(); {
x = 0; y = 0;
}
public double distance (Point that) {
double xdiff, ydiff;
xdiff = x - that.x;
ydiff = y - that.y;
return Math.sqrt(xdiff*xdiff+ydiff*ydiff);
}
}
Point
xy
cleardistance
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Erzeugen von Objekten, Methodenaufruf
Point p1 = new Point();
Point p2 = new Point();
p1.clear();
p2.x = 3.0;
p2.y = 4.0;
System.out.println(p1.distance(p2));
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Vererbung, Redefinition von Methoden
class ColorPoint extends Point {
Color color;
public void clear() {
super.clear();
color = null;
}
}
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Die permanente Softwarekrise ?
• 1965: Der Begriff der Softwarekrise etabliert sich in Industrie und Wissenschaft.
– Fehler in Computersystemen sind fast immer Softwarefehler.
– Software wird nicht termingerecht und/oder zu höheren Kosten als geschätzt fertiggestellt.
– Software entspricht oft nicht den Anforderungen ihrer Benutzer.
• 1979: Studie zu Softwareprojekten (USA), insges. ca. 7 Mio US-$. 75% der Ergebnisse nie eingesetzt; 19% der Ergebnisse stark überarbeitet. 6% benutzbar.
• 1981: US Air Force Command&Control Software überschreitet Kostenvoranschlag fast um den Faktor 10 (3,2 Mio US-$)
• 1996: Absturz der 'Ariane 5' wegen eines Software-Fehlers.
• November 1997: Entwicklung des Informationssystems SACSS für den Staat Kalifornien abgebrochen. Aufgelaufene Kosten 300 Mio US-$ (200 % des Voranschlags)
• 1999: Absturz einer Mars-Sonde wegen eines Software-Fehlers
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Ungefähre Verteilung des Arbeitsaufwandes
Analyse
Entwurf
Implementierung
Test,Integration
Wartung
10 %
20 %
50 %20 %
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Arbeitsalltag eines Software-Ingenieurs
• Anteil an der Arbeitszeit:
– Schreiben von Programmen: 15 %– Kommunikation (Kollegen, Kunden): 30 %
– Diverse weitere Aufgaben:
» Analyse
» Spezifikation
» Dokumentation
» Test
» Wartung
Technische Universität Dresden Prof. Hußmann Informatik II (Maschinenwesen)
Daten
• Die typische Dauer eines Softwareprojekts ist 1-2 Jahre.Zykluszeit bis zur Freigabe einer neuen Version sinkt, derzeit oft bei 6-9 Monaten.
• Nur 70 - 80 % aller Projekte werden erfolgreich abgeschlossen.
• Das Kostenverhältnis von Hard- zu Software lag– 1955 bei 4 : 1
– 1985 bei 1 : 4
• Die Siemens AG bezieht 50 % ihrer Wertschöpfung aus Software.
• Die Entwicklungskosten für technische Produkte bestehen zu ca. 50% (große PKWs) bis 80% (Meß- und Regeltechnik) aus Kosten für die Softwareentwicklung.