Software Engineering - Architektur-Design und Prozessorientierung

Software Engineering - Architektur-Design und Prozessorientierung

von: Gustav Pomberger, Wolfgang Pree

Carl Hanser Fachbuchverlag, 2004

ISBN: 9783446227880

Sprache: Deutsch

278 Seiten, Download: 9088 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Software Engineering - Architektur-Design und Prozessorientierung



  Inhaltsverzeichnis 6  
  Vorwort 10  
  Dank 12  
  1 Gegenstandsbestimmung – Einführung und Überblick 14  
     1.1 Was ist Software? 14  
     1.2 Was ist Software Engineering? 16  
     1.3 Inhalt und Aufbau des Buches 18  
  Teil I Prozessorientierte Sicht – Organisation von Software-Projekten 22  
     2 Prozessmodelle 24  
        2.1 Das klassische sequenzielle Phasenmodell 24  
        2.2 Das V-Modell 31  
        2.3 Das Prototyping-orientierte Prozessmodell 39  
           2.3.1 Begriffe und Abgrenzung 39  
           2.3.2 Prozessmodell 42  
        2.4 Das Spiralmodell 45  
           2.4.1 Das Spiralmodell von Boehm 45  
           2.4.2 Das Spiralmodell von Pomberger und Pree 48  
        2.5 Der Unified Process 52  
        2.6 Ein objektorientiertes Phasenmodell 55  
        2.7 Leichtgewichtige (agile) Prozessmodelle 58  
     3 Software-Qualitätsmanagement 64  
        3.1 Was ist Softwarequalität? 64  
        3.2 Wo und wie entstehen Softwarequalität bzw. Qualitätsmängel 68  
        3.3 Grundzüge des Software- Qualitätsmanagements 70  
           3.3.1 Hauptaufgaben des Qualitätsmanagements 71  
           3.3.2 Objekte und Sichten des Qualitätsmanagements 71  
           3.3.3 Prinzipien des Qualitätsmanagements 73  
           3.3.4 Konstruktive und analytische Qualitätsmaßnahmen 74  
  Teil II Konstruktions- und Architektur-orientierte Sicht 78  
     4 Elementare Konzepte und Konstrukte 80  
        4.1 Der Algorithmenbegriff 80  
        4.2 Datenobjekte, Datentypen und elementare Aktionen 81  
        4.3 Schnittstellen und Aktivierung von Algorithmen 83  
        4.4 Systematischer Entwurf von Algorithmen 85  
        4.5 Grundlegende Konzepte der objektorientierten Programmierung 89  
           4.5.1 Klassen, Objekte (= Instanzen von Klassen), Instanzvariablen, Methoden 90  
           4.5.2 Vererbung, Polymorphismus, statischer Variablentyp, dynamischer Variablentyp und dynamische Bindung 92  
     5 Konstruktion anpassbarer Software 98  
        5.1 Konfigurationsparameter als Basis für anpassbare Software 98  
           5.1.1 Parametereinstellungen über globale, statische Variable 98  
           5.1.2 Callback-Style of Programming – Funktionen und Prozeduren als Parameter 100  
        5.2 Konzepte und Konstruktionsprinzipien für anpassbare, objektorientierte Produktfamilien 102  
           5.2.1 Das Konzept der abstrakten Kopplung 104  
           5.2.2 Das Konzept der Template- und Hook-Methoden 110  
           5.2.3 Das Hook-Method-Konstruktionsprinzip 113  
           5.2.4 Das Hook-Object-Konstruktionsprinzip 116  
           5.2.5 Das Composite-Konstruktionsprinzip 122  
           5.2.6 Das Decorator-Konstruktionsprinzip 129  
           5.2.7 Zusammenfassung der Merkmale der Konstruktionsprinzipien 138  
        5.3 Konstruktionsprinzipien und Entwurfsmuster 138  
     6 Modularisierung und Software-Architekturen 144  
        6.1 Software-Module 145  
        6.2 Erwünschte Eigenschaften von Modulen 147  
           6.2.1 Stabile und verständliche Modulschnittstellen durch Information Hiding 148  
           6.2.2 Balance zwischen Kopplung und Kohäsion 150  
        6.3 Ausprägungen von Modulen 153  
           6.3.1 Modul als Abstrakte Datenstruktur (ADS) 153  
           6.3.2 Modul als Abstrakter Datentyp (ADT) 154  
           6.3.3 Module und Komponentenstandards 158  
        6.4 Beispiele für ausgewogene Modularisierungen 160  
           6.4.1 Kohäsionsverbesserung durch Aufteilung von Modulen 160  
           6.4.2 Module für die Simulation diskreter Ereignisse 162  
        6.5 Beschreibung von Software-Architekturen 169  
           6.5.1 Datenzentrierung 170  
           6.5.2 Datenflussorientierung 171  
           6.5.3 Call&Return 172  
           6.5.4 Virtuelle Maschine 173  
           6.5.5 Unabhängige Komponenten 174  
           6.5.6 Vor- und Nachteile der Architekturmuster 175  
        6.6 Analyse von Software-Architekturen 175  
           6.6.1 Die Software-Architektur-Analyse-Methode (SAAM) 175  
           6.6.2 Beispiel einer Anwendung der SAAM 180  
           6.6.3 Was ist bei einer Anwendung der SAAM zu beachten? Was sind die Vorteile und Risiken? 185  
        6.7 Mehrdimensionale Modularisierung durch Aspektorientierte Programmierung (AOP) 186  
           6.7.1 Das Problem einer einzigen, statischen Modularisierung 187  
           6.7.2 Grundlegende Sprachkonzepte und -konstrukte von AOP 189  
        6.8 Zusammenfassung wichtiger Modularisierungsprinzipien 193  
  Teil III Ausgewählte Gebiete und Fallbeispiele 194  
     7 Transformationsorientierte Software1 196  
        7.1 Grundlegende Konzepte 196  
           7.1.1 Kontextfreie Grammatiken 197  
           7.1.2 Konstruktion eines Sprachanalysators (Scanner und Parser) 199  
           7.1.3 Attributierte Grammatiken 205  
        7.2 Fallbeispiel: Transformation strukturierter Texte 209  
           7.2.1 Entwurf einer attributierten Grammatik mit Coco/R 212  
        7.3 Zusammenfassung 228  
     8 Web-Service-basierte Software1 230  
        8.1 Was sind Web-Services 230  
        8.2 Vergleich mit anderen Technologien 232  
           8.2.1 CORBA 233  
           8.2.2 Java RMI 235  
           8.2.3 .NET Remoting Framework 235  
        8.3 Entwicklungsprozess für Web-Service-basierte Software 236  
        8.4 Grundlegende Konzepte und Standards 237  
           8.4.1 SOAP 237  
           8.4.2 Web-Service Description Language (WSDL) 239  
        8.5 Fallbeispiel: Elektronisches Telefonbuch 242  
           8.5.1 Ausgangssituation im Fallbeispiel 242  
           8.5.2 Beteiligte Komponenten 243  
           8.5.3 Schnittstelle des Web-Services 243  
           8.5.4 Implementierung des Web-Services mit Microsoft Visual Studio 244  
           8.5.5 Implementierung der Anwendungssoftware 245  
           8.5.6 Interaktionen zwischen Anwendungssoftware und Web-Service 247  
        8.6 Zusammenfassung 249  
     9 Eingebettete Echtzeitsoftware 250  
        9.1 Grundlegende Konzepte und Voraussetzungen 250  
           9.1.1 Charakteristika von Echtzeitsoftware 251  
           9.1.2 Logische versus tatsächliche Ausführungszeiten von Echtzeitsoftware 252  
        9.2 Fallbeispiel: Echtzeitsoftware eines autonom fliegenden Helikopters 254  
           9.2.1 Das OLGA-System 256  
           9.2.2 Die TDL-Spezifikation des Zeit- und Kommunikationsverhaltens 257  
           9.2.3 Die Übersetzung der TDL-Spezifikation in ein ausführbares Programm 260  
           9.2.4 Simulation eines TDL-basierten Regelungssystems 261  
        9.3 Zusammenfassung 263  
  Literaturverzeichnis 264  
  Stichwortverzeichnis 268  

Kategorien

Service

Info/Kontakt