lehrerbibliothek.deDatenschutzerklärung
Lehr- und Übungsbuch Softwareentwicklung  WWW mit Website
Lehr- und Übungsbuch Softwareentwicklung


WWW mit Website

Peter Forbrig, Immo O. Kerner

Carl Hanser Verlag , Fachbuchverlag Leipzig
EAN: 9783446225787 (ISBN: 3-446-22578-1)
358 Seiten, hardcover, 17 x 25cm, Mai, 2004

EUR 29,90
alle Angaben ohne Gewähr

Umschlagtext
Das Lehr- und Übungsbuch Softwareentwicklung



• ist für Studenten der Informatik-Studiengänge konzipiert



• unterstützt mit seinen Inhalten auch die Ausbildung zur Informatik in anderen Studiengängen



• vermittelt wichtige Aspekte der modernen Softwaretechnik:

- Lebenszyklusmodelle

- Anforderungsanalyse

- Objektorientierter Entwurf und Entwurfsmuster (Design Patterns)

- Qualitätssicherung, Testen und Verifizieren

- Modularisierung

- Verteilte objektorientierte Systeme

- Java 2 Enterprise Edition

- Entwicklungsumgebungen, Case-Tools, CVS, JUnit und Ant

- GUI-Entwicklung und Softwareergonomie



• ist methodisch studentenfreundlich aufbereitet



• vermittelt den Lehrstoff nach dem Prinzip „learning by doing" mit vielen Beispielen, Aufgaben, Kontrollfragen und Referatsthemen.



Internet-Ergänzungen unter:

www.inf.tu-dresden.de/~fachbuch
Rezension
Das "Lehr- und Übungsbuch Softwareentwicklung" präsentiert anschaulich den aktuellen Status Quo des Software-Engineerings. Vorgehensmodelle, Requirements-Engineering, der objektorientierte Entwurf, Qualitätssicherung (mit seinen Verifikations-Kalkülen) und die Modularisierung kommen ebensowenig zu kurz wie die Vorstellung grundlegender Programmierwerkzeuge und aktueller Technologien, wie z.B. J2EE. Zusätzlich bietet der Autor in eigenen Kapiteln einen Überblick über verteilte objektorientierte Systeme und das oft vergessene Thema Softwareergonomie.

Ein äußerst hilfreiches (Lehr-)Buch, das in diesem Umfang (358 Seiten) natürlich nicht jeden kleinen Aspekt der modernen Softwaretechnik abdecken kann, dennoch einen reichhaltigen Überblick verschafft. Es glänzt zum Einen durch ausführlichen Listen von Verweisen auf weiterführende und ergänzende Literatur und zum Zweiten durch die vielen, in jedem Kapitel vorhandenen, Verständnis- und Kontrollfragen, durch die das Augenmerk auf die wichtigen Inhalte gelenkt wird.

Florian Schimandl, lehrerbibliothek.de
Verlagsinfo
Das Lehr- und Übungsbuch vermittelt die wichtigsten Kenntnisse zur Erarbeitung von Softwareprojekten. Es stellt eine Verbindung der Programmiertechniken im Kleinen, wie Ansätze zu Problemanalyse, Entwurf und Qualitätssicherung, zu Problemen der Programmierung im Großen, wie Softwarelebenszyklus, Modularisierung, Entwurfsmuster, Softwarearchitekturen, Werkzeuge dar. Damit wird den Studenten der Weg von kleinen Problemstellungen bis zu größeren Anwendungen gezeigt. Moderne Komponentensysteme werden eingeführt und die neuesten Werkzeuge der Softwareentwicklung präsentiert. Zahlreiche Beispiele mit Lösungen vertiefen die Lehrinhalte.

Das Buch begleitet Einführungsvorlesungen wie allgemeine Informatik, Programmiertechnik, Softwaretechnologie und Werkzeuge der Softwareentwicklung.

Im Internet:
Lösungen zu den Aufgaben, weiterführende Informationen, Linksammlung
Inhaltsverzeichnis
1 Einleitung

1.1 Einleitung
1.1.1 Begriffsbestimmungen
1.1.2 Eigenschaften von Software
1.1.3 Klassifi zierung von Softwaresystemen
1.1.4 Kontrollfragen
1.2 Softwareentwicklung früher und heute
1.2.1 Die frühen Jahre
1.2.2 Entstehung der Disziplin Software Engineering
1.2.3 Überlegungen zu den Kosten von Software
1.2.4 Aktueller Stand
1.2.5 Kontrollfragen
1.3 Software Engineering
1.3.1 Vorgehensmodelle
1.3.1 Werkzeuge
1.3.2 Kontrollfragen
1.4 Qualität
1.4.1 Qualitätsmerkmale für Software
1.4.1 ISO 9000 und ähnliche Konzepte
1.4.2 Kontrollfragen
1.5 Wirtschaftlichkeit
1.5.1 Projektmanagement
1.5.2 Planung, Organisation und Kontrolle
1.5.3 Konzepte der Wiederverwendung
1.5.4 Kontrollfragen
1.6 Psychologische, soziale, rechtliche Einfl üsse
1.6.1 Wechselwirkungen bei der Softwareentwicklung
1.6.2 Kontrollfragen
1.7 Literatur

2 Lebenszyklusmodelle

2.1 Einführung und Überblick
2.2 Phasen und Verantwortungsbereiche im Lebenszyklusmodell
2.3 Klassische Lebenszyklusmodelle
2.3.1 Wasserfallmodell
2.3.2 V-Modell
2.3.3 Schwächen klassischer Lebenszyklusmodelle
2.4 Aspekte neuerer Lebenszyklusmodelle
2.4.1 ETVX: Ein Elementarprozessschema
2.4.1 Das objektorientierte Modell
2.4.2 Prototyping
2.5 Inkrementelle Softwareentwicklung
2.6 Aktuelle Schlagworte
2.6.1 Der Unifi ed Process
2.6.2 Agile Methoden: Extreme Programming
2.7 Übungen
2.7.1 Kontrollfragen
2.7.2 Aufgaben
2.7.3 Referate
2.8 Zusammenfassung und Ausblick
2.9 Literatur

3 Analyse

3.1 Was ist Systemanalyse?
3.1.1 Ziele des IT-Einsatzes
3.1.2 Veränderung der Arbeitswelt
3.1.3 Ergonomie
3.1.4 Architektur
3.1.5 Organisation und Systemarchitektur
3.1.6 Inhalt der Systemanalyse
3.1.7 Kontrollfragen
3.2 Probleme konventioneller Ansätze
3.2.1 Einbindung der Analyse in Vorgehensmodelle
1.1.2 Requirements Engineering
3.2.3 Funktionsorientierte Projektplanung
3.2.4 Geschäftsprozessanalyse und Workfl ow-Management
3.2.5 Bewertung: typische Probleme dieser Ansätze
3.2.6 Kontrollfragen
3.3 Anwendungsorientierte Softwareent wicklung
3.3.1 Kundenorientierung
3.3.2 Aufgabenorientierung
3.3.3 Strukturähnlichkeit durch Objektorientierung (OO)
3.3.4 Gestaltung des Systems: Leitbilder und Metaphern
3.3.5 Arbeitsplatztypen helfen, Monopole zu vermeiden
3.3.6 Wechselseitiger partnerschaftlicher Kommunikations- und Lernprozess
3.3.7 Kontrollfragen
3.4 Softwarearchitektur
3.4.1 Bedeutung der Architektur
3.4.2 Eine anwendungsorientierte Modellarchitektur nach dem Werkzeug & Material-Ansatz
3.4.3 Bebauungsplan
3.4.4 Kernsystem und Spezialsysteme
3.4.5 Muster und Rahmenwerke
3.4.6 Kontrollfragen
3.5 Vorgehensweise im Projekt
3.5.1 Vorgehen nach Autor-Kritiker-Zyklus
3.5.2 Projektmanagement
3.5.3 Etappenplanung
3.5.4 Kontrollfragen
3.6 Fachliche Analyse
3.6.1 Rekonstruktion der Fachsprache
3.6.2 Anwendungsorientierte Dokumenttypen
3.6.3 Schwergewichtige vs. leichtgewichtige Prozesse
3.6.4 Prototyping und Evolution
3.6.5 Kontrollfragen
3.7 Die Dokumente der Analyse
3.8 Literatur

4 Objektorientierter Entwurf

4.1 Einführung
4.2 Konzepte und Notation
4.2.1 Notation
4.2.2 Systemarchitekturen
4.3 Vorgehensweise
4.3.1 Architektur
4.3.2 Anwendungsfälle
4.3.3 Klassen
4.3.4 Subsysteme
4.3.5 Zusammenfassung Tätigkeiten
4.3.6 Aufgaben
4.4 Entwurfsmuster
4.4.1 Einführendes Entwurfsmuster: Filter (Pipes and Filters)
4.4.2 Struktur der Beschreibung eines Entwurfsmusters
4.4.3 Entwurfsmuster Kategorien
4.4.4 Singleton
4.4.5 Strategie
4.4.6 Beobachter (Observer)
4.4.7 Model-View-Controller MVC
4.4.8 Brücke
4.4.9 Ausblick
4.4.10 Übungen
4.5 Literaturverzeichnis

5 Qualitätssicherung

5.1 Grundlagen
5.1.1 Begriffe und Motivation
10 Inhaltsverzeichnis
5.1.2 Psychologie des Testens
5.1.3 Prüfen und Testen im Softwarelebenszyklus
5.2 Statisches Prüfen
5.2.1 Strukturierte Gruppenprüfungen
5.2.2 Statische Analyse
5.3 Testen
5.3.1 Testprozess
5.3.2 Soll-Werte und Testorakel
5.3.3 Priorisierung des Tests
5.3.4 Teststufen
5.4 Dynamisches Testen
5.4.1 Black-box-Verfahren
5.4.2 White-box-Verfahren
5.4.3 Weitere Verfahren und prinzipielles Vorgehen
5.4.4 Übungen
5.5 Verifi kation
5.5.1 Allgemein
5.5.2 Was bedeutet Korrektheit?
5.5.3 Hoare-Kalkül, Hoare-Tripel und Hoare-Klauseln
5.5.4 Anwendung des Hoare-Kalküls – was ist nun zu tun?
5.5.5 Der Hoare-Kalkül – ein Prädikatenkalkül
5.6 Handwerkszeug – die Hoare-Regeln
5.6.1 Was durch die Regeln abgedeckt ist und was fehlt
5.6.2 NOP-Axiom – Regel der leeren Anweisung, NA
5.6.3 Zuweisungsaxiom (auch: Regel für Ergibt-Anweisungen,), ZA
5.6.4 Regel der sequenziellen Komposition (auch: Regel für Anweisungsfolgen, Sequenzregel), SK
5.6.5 Implikationsregeln, IR
5.6.6 Regel der Fallunterscheidung (auch: Regel der bedingten Anweisung, Verzweigungsregel), RF
5.6.7 Iterationsregel (auch: Schleifenregel, Regel für While-Schleifen), IR
5.6.8 Terminierungsregel, TR
5.6.9 Grenzen und Nachteile
5.6.10 Übungen
5.7 Zusammenfassung
5.8 Literatur

6 Modularisierung

6.1 Einführung
6.1.1 Eigenschaften eines Moduls
6.1.2 Aspekte eines Moduls
6.1.3 Vorteile eines Moduls
6.2 Einfacher Modul
6.3 Datenkapsel
6.4 Abstrakter Datentyp
6.5 Klasse
6.6 Bean
6.7 Komponente
6.8 Übungen
6.8.1 Kontrollfragen
6.8.2 Aufgaben
6.8.3 Referate
6.9 Zusammenfassung
6.10 Literatur

7 Verteilte objektorientierte Systeme

7.1 Einführung
7.1.1 Verteilte Systeme
7.1.2 Kommunikationsprotokolle
7.1.3 IP-Netze
7.1.4 Anwendungsbeispiel
7.2 Sockets
7.2.1 Verbindungsorientierte Socket-Kommunikation
7.2.2 Socket-basierte Realisierung des Anwendungsbeispiels
7.2.3 Kommunikation von Objekten
7.2.4 Übungen
7.3 Java RMI
7.3.1 Stubs und Skeletons
7.3.2 Entwicklung einer Java-RMI-Anwendung
7.3.3 Schritte zum Starten der Anwendung
7.3.4 Aufrufsemantik
7.3.5 Dynamisches Laden von Klassen
7.3.6 Übungen
7.4 CORBA
7.4.1 Object Management Architecture
7.4.2 Verteiltes Objektmodell
7.4.3 Interface Defi nition Language
7.4.4 IDL-Compiler
7.4.5 CORBA-Aufrufsemantik
7.4.6 CORBA-Version des Buchladenbeispiels
7.4.7 Schritte zum Starten der Anwendung
7.4.8 Übungen
7.5 Zusammenfassung
7.6 Literatur
7.7 Online-Referenzen

8 Java Enterprise (J2EE)

8.1 Einführung und Überblick
8.1.1 Anwendungsbeispiel Online-Buchhandlung
8.1.2 Entwicklungsumgebung
8.1.3 Übungen
8.2 Enterprise JavaBeans
8.2.1 Entity Beans
8.2.2 Session Beans
8.2.3 Message-Driven Beans
8.2.4 Transaktionssteuerung und Zugriffssicherheit
8.2.5 Übungen
8.3 Servlets
8.3.1 Überblick über die Servlet-Programmierung
8.3.2 HTTP-Sessions
8.3.3 Übungen
8.4 JavaServer Pages
8.4.1 Überblick über die JSP-Programmierung
8.4.2 Übungen
8.5 Zusammenfassung und Ausblick
8.5.1 Übungen
8.6 Literatur

9 Werkzeuge

9.1 Historischer Überblick
9.2 Basiswerkzeuge
9.2.1 Editoren
9.2.2 Assembler
9.2.3 Compiler
9.2.4 Interpreter
9.2.5 Linker
9.2.6 Lader
9.2.7 Debugger
9.3 Programmierwerkzeuge
9.3.1 Blue J
9.3.2 Übungen
9.3.3 Andere Programmierwerkzeuge
9.4 Programmierumgebungen
9.4.1 JBuilder
9.4.2 Delphi/Kylix
9.4.3 Visual Studio
9.4.4 Übungen
9.5 Case-Werkzeuge
9.5.1 Überblick
9.5.2 Argo-UML/Poseidon
9.5.3 Together
9.5.4 Rational Rose
9.5.5 Rhapsody
9.5.6 ObjectiF
9.5.7 USE
9.5.8 Übungen
9.6 Integrierte Entwicklungsumgebungen
9.7 Verwaltungssysteme
9.7.1 Ant
9.7.2 CVS
9.7.3 Verwaltung von Testfällen durch JUnit
9.7.3 Übungen
9.8 Case-Plattformen
9.9 Literatur

10 Softwareergonomie

10.1 Einleitung
10.2 Grundlagen
10.2.1 Allgemeine Grundbegriffe
10.2.2 Dialogbetrieb
10.2.3 Oberfl ächenobjekte
10.2.4 Übungen
10.3 Richtlinien zur Informationsgestaltung
10.3.1 Style Guides
10.3.2 Anordnung von Fenstern
10.3.3 Kommunikation zwischen Fenster und Anwender
10.3.4 Menge der notwendigen Fensteroperationen
10.3.5 Fensteranordnung
10.3.6 Farben
10.3.7 Einsatzmöglichkeiten von Farben
10.3.1 Helligkeitseffekte
10.3.2 Platzierung und Reihenfolge von Informationen
10.3.3 Textdarstellung
10.3.11 Gestaltungsgesetze
10.3.12 Einbinden von Grafi ken
10.3.13 Menüleiste
10.3.14 Menü
10.3.15 Bilder auf Knöpfen und Piktogramme
10.3.16 Übungen
10.4 Richtlinien zur Dialoggestaltung
10.4.1 Aufgabenangemessenheit
10.4.2 Selbsterklärungsfähigkeit
10.4.3 Steuerbarkeit
10.4.4 Erwartungskonformität
10.4.5 Fehlerrobustheit
10.4.6 Individualisierbarkeit
10.4.7 Erlernbarkeit
10.4.8 Übungen
10.5 Entwicklung von Benutzeroberfl ächen
10.5.1 Entwurfsphasen
10.5.2 Entwicklungswerkzeuge
10.5.1 Übungen
10.6 Acht goldene Regeln des Dialogdesigns
10.7 Richtlinien für Website-Gestaltung
10.7.1 Einführung
10.7.2 Richtlinien und Prioritäten
10.7.3 Übungen
10.8 Literatur

Sachwortverzeichnis