Software Engineering



Ähnliche Dokumente
Jochen Ludewig Horst Lichter. Software Engineering. Grundlagen, Menschen, Prozesse, Techniken. dpunkt.verlag

Software Engineering

Inhaltsverzeichnis. Teil I Grundlagen 1

Basiswissen Software-Projektmanagement

Basiswissen Software-Projektmanagement

Qualitätsmanagement. Andreas Bäuml SWT-Projekt WS 07/08

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung II / Software Engineering II Modulnummer

Agile Softwareentwicklung

Software Engineering

Basiswissen Software- Projektmanagement

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

Inhalt. 1 Einleitung 1. 2 Grundkonzepte Erfahrungen systematisch nutzen 39

17 Architekturentwurf Vorgehen und Dokumentation

Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie

Methodische objektorientierte Softwareentwicklung

Datenqualität erfolgreich steuern

IT-Projekt-Management

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Software- Qualitätssicherung

Projektplan. Software Engineering Projekt. November 11 Fachbereich Informatik Software Engineering Projekt Sebastian Proksch 1

1 Einleitung zum Thema Softwaremigration 1

Softwareentwicklung bei KMU - Ergebnisse einer Studie zum Entwicklungs-, Projekt- und Qualitätsmanagement

Das Wasserfallmodell - Überblick

Dokumentation für die Software-Wartung

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

Übungsaufgaben zum Software Engineering: Management

Didaktik der Informatik

Einführung in das Software-Qualitätsmanagement

Anforderungsmanagement

Comparison of Software Products using Software Engineering Metrics

Prozess-Modelle für die Softwareentwicklung

Entwicklung von Data-Warehouse-Systemen

2. Workshop: Vorgehensmodelle in der Praxis Reife und Qualität

Mehr Selbstständigkeit für Menschen mit Autismus

DIN DVS. Schweißtechnik 7. Schweißtechnische Fertigung Schweißverbindungen. DIN-DVS-Taschenbuch 284. Normen

MyProcess AG Kurzprofil

Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering

Software-Evolution im Staged Lifecycle Model

Taxonomy of Evolution and Dependability. Integration Engineering SS 2009 Andreas Landerer

Qualitätsmanagement nach ISO/TS 16949

Entwicklungsprozesse und -werkzeuge

Requirements Engineering Research Group!

Lernziele zur Vorlesung Software Engineering I

9.6 Korrekturmaßnahmen, Qualitätsverbesserung

Inhaltsverzeichnis. Grundlagen und Begriffsbildung

Praxiswissen Softwaretest Test Analyst und Technical Test Analyst

xiii Inhaltsverzeichnis 1 Einleitung 1

Funktionale Sicherheit in der Praxis

Mit einem Geleitwort von Prof. Dr. Helmut Krcmar

Software Engineering. 3. Analyse und Anforderungsmanagement

Gradle. Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Der Rational Unified Process

SPI - Software Process Improvement mit CMMI, PSP/TSP und ISO 15504

Entwicklungs-Prozess

Führung durch Motivation

Software- Entwicklungsaktivitäten und Vorgehensmodelle. Lebenszyklusmodell

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Geschäftsprozessmanagement in der Praxis

WSR Softwarewartung und Prozessmodelle in Theorie und Praxis. Urs Kuhlmann Andreas Winter

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Softwaretechnik. Fomuso Ekellem WS 2011/12

Comparing Software Factories and Software Product Lines

Informationstechnik in der Kreditwirtschaft

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

3D-Architektur-Visualisierung

Workflowmanagement in der Produktionsplanung und -steuerung

16 Architekturentwurf Einführung und Überblick

Potenziale und Nutzungsmöglichkeiten von Workflow-Management-Systemen im Krankenhaus

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn Inhaltsverzeichnis.

WPM - Wertstromorientiertes Prozessmanagement

Kapitel 2: Der Software-Entwicklungsprozess

Angepasste Software Standards für DLR- Eigenentwicklungen - Die DLR Software Basisstandards -

Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Integriertes Marketing für professionelle Fußballvereine

NBD-Prognosemodelle im Kundenbeziehungsmanagement

Fachlogik umsetzen. Business Rules zwischen Konzept und IT-System. Dirk Ziegemeyer

2 Begriffliche und theoretische Grundlagen... 9

Datenbank-Programmierung mit Visual Basic 2012 (Buch + E-Book)

Beck-Wirtschaftsberater im dtv Rating. Wie Sie Ihre Bank überzeugen. von Prof. Dr. Ottmar Schneck

Benötigen wir einen Certified Maintainer?

Managementprozesse und Performance

Perfektes IT-Projektmanagement

Microsoft Windows SharePoint Services v3 - Das offizielle Trainingsbuch

Projektmanagement in der Automobilindustrie

Basiswissen Software-Projektmanagement

Übungen Softwaretechnik I

Enterprise Architecture Management - einfach und effektiv

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

CMMI und SPICE im Automotive Umfeld

Die Zulässigkeit von Service Level Agreements - am Beispiel der Verfügbarkeitsklausel Braun

Entwicklung domänenspezifischer Software

Transkript:

Software Engineering Grundlagen, Menschen, Prozesse, Techniken von Jochen Ludewig, Horst Lichter 1. Auflage Software Engineering Ludewig / Lichter schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung: Objekt-Orientiertes Software-Engineering dpunkt.verlag 2006 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 89864 268 2

xv Inhaltsverzeichnis Teil I Grundlagen 1 1 Modelle und Modellierung 3 1.1 Modelle, die uns umgeben.................................. 3 1.2 Modelltheorie........................................... 5 1.3 Ziele beim Einsatz von Modellen............................. 6 1.4 Entwicklung und Validierung von Modellen.................... 9 1.5 Modelle im Software Engineering........................... 11 1.6 Theoriebildung......................................... 12 1.7 Modellierung durch Graphen und Grafiken.................... 13 1.8 Modellierung durch Zahlen: Skalen und Skalentypen............ 19 1.9 Übergänge zwischen verschiedenen Skalentypen................ 22 2 Grundbegriffe 29 2.1 Kosten................................................ 29 2.2 Engineering und Ingenieur................................. 31 2.3 Software.............................................. 34 2.4 Arbeiten, die an Software ausgeführt werden................... 39 2.5 Weitere Grundbegriffe.................................... 40 3 Software Engineering 43 3.1 Fortschritte in Hardware und Software....................... 43 3.2 Grundideen des Software Engineerings....................... 47 3.3 Probleme und Chancen des Software Engineerings.............. 51 3.4 Lehrbücher und andere Basisliteratur........................ 53

xvi Inhaltsverzeichnis 4 Software-Nutzen und -Kosten 57 4.1 Ziele und Nutzen eines Software-Projekts..................... 57 4.2 Kostenfaktoren eines Software-Projekts....................... 59 4.3 Der Aufwand in den einzelnen Phasen des Software-Projekts und in der Wartung...................................... 59 4.4 Risiken durch Qualitätsmängel............................. 60 4.5 Die Beziehung zwischen Fehlerentstehung und -entdeckung....... 61 5 Software-Qualität 63 5.1 Qualität............................................... 63 5.2 Taxonomie der Software-Qualitäten......................... 64 Teil II Menschen und Prozesse 69 6 Menschen im Software Engineering 71 6.1 Software-Leute und Klienten............................... 71 6.2 Rollen und Verantwortlichkeiten............................ 72 6.3 Die Produktivität des Projekts.............................. 74 6.4 Motivation und Qualifikation.............................. 78 6.5 The Personal Software Process.............................. 82 6.6 Moralische und ethische Aspekte............................ 84 7 Das Software-Projekt Begriffe und Organisation 87 7.1 Begriffsbildung......................................... 87 7.2 Software-Projekte....................................... 90 7.3 Projekttypen........................................... 91 7.4 Formen der Teamorganisation.............................. 93 7.5 Die interne Organisation der Software-Hersteller............... 97 8 Projektleitung und Projektleiter 101 8.1 Ziele und Schwerpunkte des Projektmanagements.............. 101 8.2 Die Initialisierung des Projekts............................. 102 8.3 Aufwands- und Kostenschätzung........................... 114 8.4 Projektkontrolle und -steuerung........................... 129 8.5 Termindrift-Diagramme (Meilenstein-Trend-Analyse)........... 133 8.6 Der Projektabschluss.................................... 135

Inhaltsverzeichnis xvii 8.7 Die Fähigkeiten des Projektleiters.......................... 136 8.8 Gängige Führungsprobleme............................... 139 8.9 Regeln für das Projektmanagement......................... 140 9 Vorgehensmodelle 143 9.1 Code and Fix und der Software Life Cycle.................... 143 9.2 Schwierigkeiten mit dem Wasserfallmodell................... 148 9.3 Die Klassifikation der Programme nach Lehman............... 151 9.4 Prototyping........................................... 153 9.5 Nichtlineare Vorgehensmodelle............................ 159 9.6 Das Spiralmodell....................................... 168 10 Prozessmodelle 171 10.1 Begriffe und Definitionen................................ 172 10.2 Das Phasenmodell...................................... 174 10.3 Das V-Modell......................................... 178 10.4 Der Unified Process..................................... 190 10.5 Cleanroom Development................................. 200 10.6 Extreme Programming und andere agile Prozesse.............. 207 11 Bewertung und Verbesserung des Software-Prozesses 219 11.1 Voraussetzungen hoher Software-Qualität.................... 219 11.2 CMMI, das Reifegradmodell für Software-Prozesse............. 220 11.3 SPICE / ISO 15504..................................... 233 11.4 Prozessverbesserung.................................... 236 Teil III Daueraufgaben im Software-Projekt 239 12 Dokumentation in der Software-Entwicklung 241 12.1 Begriff und Einordnung.................................. 241 12.2 Ziele und Wirtschaftlichkeit der Dokumentation............... 242 12.3 Die Form der Dokumente, Normen......................... 244 12.4 Taxonomie der Dokumente............................... 245 12.5 Die Qualität der Dokumente.............................. 246 12.6 Dokumentation in der Praxis.............................. 247 12.7 Die gefälschte Entstehungsgeschichte........................ 249

xviii Inhaltsverzeichnis 13 Software-Qualitätssicherung und -Prüfung 251 13.1 Software-Qualitätssicherung.............................. 251 13.2 Prüfungen............................................ 255 13.3 Mängel und Fehler..................................... 256 13.4 Software Engineering und Software-Prüfung.................. 258 13.5 Prüfungen im Überblick.................................. 258 13.6 Reviews.............................................. 262 13.7 Varianten der Software-Inspektion......................... 273 14 Metriken und Bewertungen 277 14.1 Metriken, Begriff und Taxonomie.......................... 278 14.2 Objektive Metriken, Messung............................. 283 14.3 Subjektive Metriken, Beurteilung........................... 287 14.4 Pseudometriken........................................ 293 14.5 Die Suche nach der geeigneten Metrik....................... 303 14.6 Ein Beispiel für die Entwicklung einer Metrik................. 306 14.7 Hinweise für die praktische Arbeit.......................... 310 15 Werkzeuge und Entwicklungsumgebungen 313 15.1 Bewertung von Methoden und Werkzeugen.................. 313 15.2 Computer-Aided Software Engineering...................... 315 15.3 Offene integrierte Software-Engineering-Umgebungen........... 317 15.4 Code-Generierung aus Modellen........................... 322 15.5 Die Auswahl eines Werkzeugs............................. 327 15.6 Ein Blick in die Praxis................................... 330 Teil IV Techniken der Software-Bearbeitung 333 16 Analyse und Spezifikation 335 16.1 Die Bedeutung der Spezifikation im Entwicklungsprozess........ 335 16.2 Die Analyse........................................... 339 16.3 Begriffslexikon und Begriffsmodell......................... 346 16.4 Anforderungen........................................ 348 16.5 Die Spezifikation....................................... 353 16.6 Grafische, formale und natürlichsprachliche Spezifikation........ 364

Inhaltsverzeichnis xix 16.7 Spezifikation und Entwurf Probleme der Abgrenzung.......... 368 16.8 Normen und Vorlagen................................... 369 16.9 Regeln für Analyse und Spezifikation....................... 370 17 Entwurf 373 17.1 Die Bedeutung des Entwurfs im Entwicklungsprozess........... 374 17.2 Begriffe.............................................. 377 17.3 Prinzipien des Architekturentwurfs......................... 384 17.4 Konzepte des objektorientierten Entwurfs.................... 393 17.5 Architekturmuster...................................... 399 17.6 Entwurfsmuster........................................ 407 17.7 Bibliotheken und Rahmenwerke........................... 414 17.8 Qualität und Dokumentation der Architektur................. 418 18 Codierung 421 18.1 Programmiersprachen als Werkstoffe....................... 422 18.2 Regeln für die Codierung................................. 424 18.3 Die Dokumentation des Codes............................ 427 18.4 Realisierungen des Information Hiding...................... 431 18.5 Robuste Programme.................................... 437 18.6 Das Vertragsmodell..................................... 438 18.7 Werkzeuge zur Codierung................................ 443 19 Programmtest 445 19.1 Begriffe und Grundlagen des Tests.......................... 445 19.2 Einige spezielle Testbegriffe............................... 455 19.3 Testdurchführung...................................... 459 19.4 Die Auswahl der Testfälle................................ 464 19.5 Der Black-Box-Test..................................... 470 19.6 Der Glass-Box-Test..................................... 480 19.7 Testen mit Zufallsdaten.................................. 487 19.8 Beispiele zum Test...................................... 488 19.9 Ausblick............................................. 503

xx Inhaltsverzeichnis 20 Integration 505 20.1 Einbettung der Integration in die Software-Entwicklung......... 505 20.2 Integrationsstrategien................................... 506 20.3 Probleme der Integration................................. 510 20.4 Planung und Dokumentation der Integration.................. 511 20.5 Grundsätze für die Integration............................. 512 Teil V Verwaltung und Erhaltung der Software 515 21 Konfigurationsverwaltung 517 21.1 Grundlagen der Konfigurationsverwaltung................... 517 21.2 Die Aufgaben der Konfigurationsverwaltung.................. 522 21.3 Identifikation und Benennung von Software-Einheiten.......... 523 21.4 Arbeitsbereiche für die Software-Verwaltung.................. 526 22 Software-Wartung 529 22.1 Begriff und Taxonomie der Software-Wartung................ 529 22.2 Inhalt und Ablauf der Wartung............................ 534 22.3 Risiken, Probleme und Grundsätze der Wartung............... 537 22.4 Die Wartungsorganisation................................ 540 23 Reengineering 547 23.1 Software-Evolution..................................... 547 23.2 Reengineering......................................... 550 23.3 Refactoring........................................... 555 23.4 Erblasten, Legacy Software............................... 559 24 Wiederverwendung 563 24.1 Die alltägliche Wiederverwendung.......................... 564 24.2 Terminologie und Taxonomie der Wiederverwendung.......... 565 24.3 Kosten und Nutzen der Wiederverwendung................... 569 24.4 Chancen und Probleme der Wiederverwendung................ 571 24.5 Rahmenbedingungen für die Wiederverwendung............... 572 24.6 Entwicklungstechniken für die Wiederverwendung............. 574 24.7 Von der Codierung zur Komposition........................ 576

Inhaltsverzeichnis xxi Teil VI Nachwort, Literatur und Index 579 25 Nachwort: Die Schule der Software-Ingenieure 581 25.1 Software Engineering in der Praxis......................... 581 25.2 Stand der Technik und Stand der Praxis..................... 582 25.3 Der Studiengang Softwaretechnik.......................... 583 25.4 Nachfrage und Angebot auf dem Ausbildungsmarkt............ 585 26 Literaturangaben 587 26.1 Hinweise zu den Literaturangaben.......................... 587 26.2 Literaturangaben, nach Verfassern geordnet.................. 588 26.3 Verzeichnis der Normen und Standards...................... 608 Index 611