56
25. Februar 2008 SOFTWARE- ENTWICKLUNGSWERKZEUGE ZUSAMMENFASSUNG Vorlesung von Prof. Liskowsky im WiSem 2007/2008 Zusammengestellt von Dietrich Kammer

SOFTWARE- ENTWICKLUNGSWERKZEUGE …fallingleaves.de/k83z/data/SEW_Summary_Slides.pdf · 6-nach SGML aufgeteilt in Struktur+Inhalt+Layout. Grundlagen ... -System als Zustandsautomat-Endliche,

Embed Size (px)

Citation preview

25. Februar 2008

SOFTWARE-ENTWICKLUNGSWERKZEUGEZUSAMMENFASSUNG

Vorlesung von Prof. Liskowsky im WiSem 2007/2008Zusammengestellt von Dietrich Kammer

INHALT

- Grundlagen

- Taxonomie / Basistechniken / Architektur / Benutzungsoberfläche

- Technologien

- Repository / Prozessintegration / Anforderungsanalyse / Prototyping

- Spezielle Methoden

- Strukturierter Entwurf / OO-Entwurf

- Sonstige Werkzeuge

- Programmüberführung / Test / Dokumentation / Konfigurationsmanagement / Wartung u. Re-Engineering

- Zusammenfassung

- Klassifikation / Bewertung / Erfahrungen

2

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

MOTIVATION

- Notwendigkeiten:

- Steigende Produktionskosten, große Wertschöpfung

- Steigender Software-Anteil in Telekommunikation/Maschinen- und Anlagenbau

- Mehr als 65% d. Berufstätigen arbeitet am PC

- Wartungskosten 60% d. Softwarekosten

- Fehler schon in Analysephase

- Uneinheitliche Methoden/wenig Wiederverwendung

- Späte Qualitätssicherung

3

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

GESCHICHTE

- Historie

- 1965 - Assembler Core Dump Analyzer

- 1970 - Compiler, Interpreter, Execution Profilers

- 1980 - Symbolic Debuggers, Subroutine Packages

- 1990 - Spezfische SEU

- bis 2000 - Universelle Anforderungsanalyse- und Entwurfsspezifikations-Interfaces

- nächste Generation: Entscheidungsstützende SEU

4

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

TAXONOMIE I

- Werkzeug:

- Programme, die Vorgehensweisen, Prinzipien, Methoden und Sprachkonzepte rechnergestützt umsetzen

- Software-Entwicklungsumgebung:

- Strukturierte Menge integrierter Werkzeuge und Bausteine, die ein Team bei allen anfallenden Tätigkeiten unterstützen soll, mit einheitlicher Methodik für Nutzung

- Tool und Material Metapher

- Werkzeuge zur Umgestaltung, Veränderung eines Materials (Objekt eines Arbeitsresultats)

- Spannbreite von SEU:

- Auswahl bestimmter Modellierungs- oder Arbeitsumgebung, Werkzeuge, Programmbausteine, CASE-Plattform (Koordination, Speicher, Kommunikation)

- Meta-Umgebung zum Bauen von SEU

5

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

TAXONOMIE II

- Prinzipieller Aufbau

- Ursprünglich Compiler, Editor, Testhilfen als Werkzeuge

- Spezialisierte Entwicklungs- und Administrations-Werkzeuge

- Dokumentenverarbeitung, Konsistenzprüfung, Produktverwaltung, Methoden-, Phasen-, Vorgangsmodellunterstützung

- Architektursichten

- Logische Sicht (Nutzer), Entwicklungssicht, Prozesssicht, Physikalische Sicht

- Wirkungsschema

- Eingabe -> Verarbeitung+Validation (Werkzeug und Datenbank) -> Ausgabe

- Dokumente

- nach SGML aufgeteilt in Struktur+Inhalt+Layout6

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

TAXONOMIE III

- Werkzeuggetriebene SW-Entwicklung

- Dokumentenorientiert (ganzheitlich, eindimensional, flexible Methodik)

- Transaktionsorientiert (Methodik vorgegeben, Grafiken, einzelne Elemente)

- Entwicklungsaufgaben

- Phasenspezifisch (Planung, Analyse, Entwicklung, ...)

- Phasenneutral (Dokumentation, Konfigurationsmanagement, QS, Projektplanung)

- Klassen von CASE-Tools

- Editor, Visualisierer, Programmierwerkzeuge, Test und Prüfwerkzeuge, Konfigurationsmanagement, Dokumentationswerkzeuge, Multimediale Werkzeuge (GUI-Builder), Wartungswerkzeuge

7

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

TAXONOMIE IV

- Werkzeug-Landschaft nach HESSE

- Abstraktionsgrad

- Low Level, High Level, Very High Level, Super Very High Level

- Formalisierungsgrad

- Ideen, Prosa, Bild, Text, Pseudocode, Code

- Glaube, Stichprobe, Beweis

- Automatisierungsgrad

- Textverwaltung, Textaufbereitung, Produktverwaltung

- Informationsaufbereitung, Syntaktische Prüfung, semantische Überprüfung

- Produktgenerierung, Entscheidungshilfe, Entscheidungsübernahme

8

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

BASISTECHNIKEN I

- Prinzipien: Grundsätze für Handeln

- Methode: Planmäßig angewandte, begründete Handlungsweisen

- Vorgehensweisen: Führen zu etwas hin

- Aktivität: Durchführen konkreter Aktion

- Basistechniken: Gekapselte, unterschiedliche Methoden

- Methoden definieren Ketten von Aktivitäten im Vorgehensmodell, dieses beschreibt Reihenfolgen, bzw. Regeln zur Abarbeitung von Aktivitäten, die isoliert Basistechniken benutzen.

9

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

BASISTECHNIKEN II

- Entity-Relationship-Diagramme

- System als Datenstruktur

- Entitytyp, Beziehungstyp, Attribute, Kardinalitäten

- Data Dictionary

- Hierarchische Zusammensetzung der Datenstrukturen

- Vereinfachte Backus-Naur-Form

- Datenflussdiagramme

- Hierarch. Zerlegung der Systemfkt. in Teilfunktionen

- Essentielle Zerlegung, Prozesse, Datenflüsse, Speicher, Terminatoren (nur im Kontextdiagramm)

10

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

BASISTECHNIKEN III

- Minispezifikation

- Pseudocode

- Formale Elemente und freisprachlicher Text, Referenzierung von Datenflüssen und Attributen

- Zustandsgraph

- System als Zustandsautomat

- Endliche, deterministische Automaten, sequentielle Maschine (STD) oder Entscheidungstabelle (DT)

- Mealy-Automat (Ereignis und Bedingung auf Transition)

- Moore-Automat (alles im Zustand)

- Real-Time-Modelling (SA/RT)

- Erweiterung von SA (datengetrieben, kontextfrei) um Systemzustände, Kontrollflüsse und Ereignisse, Prozess- und Kontrollmodell, Prozessaktivierungstabelle11

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

BASISTECHNIKEN IV

- Objektorientierte Diagramme

- System als Kollektion interagierender Objekte

- Klassendiagramm, Aktivitätsdiagramm, Anwendungsfalldiagramm, Zustandsdiagramm, Sequenzdiagramm

- (Timing-, Kommunikations-, Interaktionsübersichtsdiagramm)

- Real-Time-Erweiterung UML (SysML)

- System Modeling: UML-Profil mit Erweiterung um Systemaspekte, Kontextdiagramm, Constraints-Diagramm (Anforderungen im Modell)

- Kompositionsstrukturdiagramm (Zusammenwirken von Strukturen, Verhalten an Interaktionsports), etc.

- Real-Time Object-Oriented Modeling Language (ROOM) mit Klassenmodell, Instanzmodell, Rollenmodell 12

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

ARCHITEKTUR I

- Werkzeugintegration:

- Zusammenarbeit mehrere Werkzeuge mit gleicher Präsentation, Verhalten und Interaktionsformen

- Interprozess-Steuerung (Austausch direkt unter Werkzeugen)

- Unterstützung eines definierten Prozesses/Vorgehen

- Datenintegration (Austausch, Verbindung, Teilung)

- Interoperabilität, Redundanzfreiheit, Konsistenz, Synch.

- Austauschformate

- XMI (Nutzung von MOF)

- CDIF (Meta-Modelle für DFD, DD, STD, OO, ...)

- ECMA-Referenzmodell

- Externe Sicht, Konzeptionelle Sicht, Interne Sicht

- Sicht auf Operationen, Typen, Regeln, zw. Diensten13

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

ARCHITEKTUR II

- Struktur von ECMA-Referenzmodell

- UI-Services (konsistene Bedienung, Profile, Internationalisierung)

- Process-Management-Services (Definition/Organisation der Werkzeuge und Aktivitäten d. SW-Entwicklungspr.)

- Tool-Services (einzige Schnittstelle für Toolmenge, diese soll horizontal und vertikal d. SW-Entw. abdecken)

- Object-Management-Services (Definition/Speicherung/Handhabung/Verwaltung/Zugriff auf Objekte u. Dok.)

- Communication-Services (zw. Werkzeugen u. Basisdiensten)

- Policy-Enforcement-Services (Sicherheitsaspekte, Integrität)

- Framework-Adminstration (Installation, Pflege d. SEU, Registration von Werkzeugen)

14

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

BENUTZUNGSOBERFLÄCHE I

- Application Services (Datenautausch mit Anwendung)

- Dialog Service (Aufruf von Aktivitäten anhand von Nutzereingaben)

- Presentation Services (Gestaltung)

- Betriebssystem -> GUI-Fenstersystem -> UI-Toolkit -> UI-Builder -> UIMS (Dialogbeschreibungssprache) -> Automatische Erzeugung

- IFIP-Modell (International Federation for Information Processing)

- Organisatorischer Bereich der Arbeitswelt (Soziologische/technische Organisationsschnittstelle)

- Benutzer und Rechner (EA-, Dialog-, Anwendungs-Komponenten und Schnittstellen)

15

Grundlagen

Taxonomie

Basistechniken

Architektur

Benutzungsoberfläche

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

BENUTZUNGSOBERFLÄCHE II

- Organisationsschnittstelle

- Integration des Nutzers, Mensch-Mensch-Funktionsverteilung, Gestaltung der Nutzeraufgaben

- Technisch: Mensch-Maschine-Informationsaustuasch, Datenschutz/Datensicherung

- E/A-Schnittstelle

- Darstellung und Eingabe

- Werkzeugschnittstelle

- Zugriff auf Anwendungsfunktionen, Antwortzeit, Durchsatz, Fehlertoleranz

- Dialogschnittstelle

- Unterschiedliche Formen (Makros, Menüs, ...), Meldungen, Statusinformationen, Fehlerbehandlung, Hilfen16

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

REPOSITORY I

- Ablage aller Informationen eines Systems

- Passive und aktive Komponenten zur Handhabung der Basisinformationen der Werkzeuge

- Zielstellung

- Persistente Dokumentenspeicherung

- Datenmodell transparent/leicht handhabbar

- Entkopplung von konzeptioneller Repräsentation

- Externe Schemata definiert/Änderungen erhalten Datenbasis

- Transaktionen für temporär inkonsistente Zustände

- Leistungsfähigkeit/Schnittstellen/Verteilung/Administration/Versionen/Portabilität/Usability

- Komplexe Objekte mit versch. Sichten (Rollen, Mixin)

17

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

REPOSITORY II

- Architektur, Integrationsstufen

- Black-Box (Datenbereitstellung, Check-In, Check-Out)

- Grey-Box (Zugriffsmodul/Dienste, Integrität, Interoperabilität)

- White-Box (Einheitliches Datenschema für alle Werkzeuge)

- Beschreibung durch Meta-Meta-Modell, Meta-Modell, Modell, Daten

- Entwurfsentscheidungen

- Dateien (Lokale Bauteile, autonome Entwickler, Neuprogrammierung)

- Datenbanken (fertige Produkte, Primat der Daten)

- Meta-Datenbanken (Evolutionäre Systeme, objektorientiert, ganzheitliche Standardsoftware-Entw.)

18

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

REPOSITORY III

- Realisierung auf Basis von SQL-DBS

- Neutral, gut verfügbar, viele Hilfsmittel

- Tabellenorganisation für hierarchische Daten nicht sehr geeignet

- Beispiele

- IBM Repository Manager (offene Architektur), WebSphere Repository Database, SAP R/3 System, Master Data Management SAP NetWeaver, Repository CVS-Konzept (Versionsverwaltung)

- CASE-Austauschformate

- Stream-based Model Interchange Format (SMIF) herstellerunabhängig, MOF-basiert, auch CWM

- CDIF (einfacher, transparenter Aufbau)

- XMI (MOF, UML, für Metadaten und Modelle)

19

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

REPOSITORY IV

- Frameworks zur Werkzeugintegration

- Auf Achse der Daten, Präsentation (Look&Feel), Kontrolle (CORBA, RPC)

- Portable Common Tool Environment (PCTE)

- Schnittstellenstandard für systemunabhängigen Zugriff auf Werkzeuge (Implementierung von Emeraude)

- Menge hochintegrierter Basisdienste (verteilte DBMS, exklusive Ausführungsschicht für Prozesskommunikation und Prozesshierarchie)

- Verteilte Dienste, erweiterbare Sicherheitsmerkmale, OMS-Modell (Objekte, Links, Attribute)

- Datentyp-/Datenspeicherungsmöglichkeiten, Concurrency-Control

- Weiterer Ansatz: Common APSE Interface Set (CAIS) für Toolintegration (ADA Program Support Environment)

- Ontologie-basierte Meta-Modell-Integration vorantreiben

20

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

PROZESSINTEGRATION I

- Modelle in der Software-Technik

- Phasenmodelle

- Definieren Tätigkeiten und ihre Verknüpfung bei großen Vorhaben

- Vorgehensmodelle

- Unterschiedliche Aktivitäten und Ergebnisse (Dokumente, Produkte)

- Anwendungsmodelle

- Beschreiben Problembereich in der Analyse

- Software-Strukturmodelle

- Aufbau der Software-Strkutur im Lösungsbereich, Entwurf (UML)

- Architekturmodelle

- Verteilung der Software-(Modell-)Bestandteile

- Meta-Modelle

- Instanzen sind selber Modelle21

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

PROZESSINTEGRATION II

- Anwendung der Meta-Modellierung

- Vier-Schichten-Hierarche (MOF, UML, Modell, Runtime)

- Überführung von objektorientierten Beschreibungssprachen

- Schrittweise Verfeinerung des semantischen Konzepts

- MOF-Instanzen austauschbar über XMI

- Notwendigkeit: prägnante, präzise Definition, Beweise der Korrektheit eines Modells (Selbstbeschreibung, Überprüfbarkeit)

- Metamodelle für CASE

- Textuelle, graphische Beschreibung einer Methode

- Generierung, Konfiguration von CASE-Werkzeugen

- z.B. MetaEdit+, IPSYS ToolBuilder, Meta-Tool

22

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

PROZESSINTEGRATION III

- Vorgehensmodelle für Prozesssteuerung

- Prozessmodelle

- Architekturorientiert (Vier-Ebenen-Metamodell)

- Phasenmodelle (Phasen)

- Vorgehensmodelle (Aktivität, Rollen, Dokumente)

- Evolutionäre Modelle (Partizipatives Vorgehen, XP)

- Modelle zur inkrementellen SW-Entwicklung (Agiles Vorgehen)

- Vier-Ebenen-Metamodell (Benutzer, Fachlicher Entwurf, Technischer Entwurf, Implementierung)

- Vorlageschablonen für Process Control Service von ECMA

- Tätigkeitstypen und Ergebnistypen (Dokumentenvorlagen etc.), Netz gegenseitiger Abhängigkeiten, interaktive Bearbeitung mit Werkzeugen

- Computergestützte Anleitung, Erzeugung von Dokumenten, automatische Vorgabe von Dokument-/Produktmustern, Prüfung, Speicherung, Verwaltung, QS, Projektmanagement23

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

ANFORDERUNGSANALYSE I

- Problembereich -> Anforderungen

- Lösungsbereich -> Entwurfsmodell

- Techniken

- Analyse der Stakeholder (Nutzer, Entwickler, Experten, Entscheidungsträger)

- Funktionale (Test mit Ja/Nein), Nicht-funktionale (Metriken), Semi-Funktionale

- Lastenheft (Aufgabenstellung), Pflichtenheft (zusätzliche Systemarchitektur)

- Werkzeugunterstützung

- Text-/Grafikeingabe, Editor und Eingabeanalyse

- Datenbank und Workflow, Anfrage (Simulation), Erfüllung (Berichte), (Code-Erzeugung), Dokumentenerzeugung24

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

ANFORDERUNGSANALYSE II

- RequisitePro

- Sammlung und hierarchische Verfeinerung der Anforderungen

- Attribute (Schwierigkeit, Priorität, Status, Kosten, Stabilität)

- Abhängigkeiten, Verknüpfungen

- Unterschiedliche Sichten, Gruppenorientierung

- Integration in SEU (Rational Rose, MS Project, ClearCase)

25

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

PROTOTYPING I

- Software-Prototyp: leicht herstellbar/änderbar

- Ablauffähiges Modell des geplanten SW-Produkts

- Unvollkommen, zur Erprobung wesentlicher Eigenschaften

- Kriterien

- Vollständig (alle wesentlichen Funktionen, selten)

- Unvollständig (Brauchbarkeit einzelner Aspekte)

- Wiederverwendbare (wesentliche Teile in Zielsystem)

- Wegwerprototypen (für Zwischenphasen)

- Horizontal (wesentl. Systemfunktionen einer Schicht)

- Vertikal (Ausschnitt über Gesamtsystem, alle Schichten)

- Explorativ (Erforschung, Problemanalyse), Experimentell (Nachweis von Tauglichkeit), Evolutionär (zum Produkt)

26

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

PROTOTYPING II

- Werkzeuge

- Allgemeine Anforderungen

- einfache Datenverbindung mit Analysetools

- Spezifikation der Benutzeroberfläche einfach (graphisch)

- Dynamische Dialogablaufbeschreibung (Analyse, Prüfung der Prototyp-Spezifikation)

- Inkrementelle Fertigstellung, Erweiterbarkeit, Ausbau zum Produkt

- Aufbau

- Editor (textuell, semi-graphisch, graphisch) -> Spezifikation (Oberfläche, Dialogablauf)

- Generator -> Generierter Prototyp

- Interpreter oder

- Compiler -> Code für Wiederverwendung

- Laufzeitystem, Simulator

27

Grundlagen

Technologien

Repository

Prozessintegration

Anforderungsanalyse

Prototyping

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

PROTOTYPING III

- User Interface Management System (UIMS)

- Janus (Festlegung Fenster, Aufbau, Ereignisse, Dialogkonzept, Integration in ObjectiF, aus Klassenmodell und Transformationsregeln 80-95% der Benutzungsschnittstelle, lauffähiger Code)

- ShortCut (CSE Salzburg, graphische UI, Verknüpfung mit Datenflüssen aus SA/RT-Modell, Dialog-Ablauflogik durch Pseudo- und Real-Code)

- Borland Delphi (visueller Formulardesigner)

- JBuilder Foundatoin (visueller Designer mit Wizards)

- Jigloo Gui Builder (Eclipse, Swing/Swt-Komponenten)

- Schnelle Verfügbarkeit, Vermeidung von Entwurfsfehlern, Einbeziehung des Kunden

- Nicht zu spät, schwer eingrenzbar, Code&Fix28

Grundlagen

Technologien

Spezielle Methoden

Strukturierter Entwurf

OO-Entwurf

Sonstige Werkzeuge

Zusammenfassung

STRUKTURIERTER ENTWURF I

- Prüf- und Verwaltungswerkzeuge

- Modularer Entwurf

- Adäquate Zerlegung des Gesamtsystems in Module

- Anforderungen an Module ergeben Modulschnittstelle

- Entwurf der Algorithmen für Funktionalitäten

- Modularisierung für Wiederverwendung und Strukturierung der Architektur

- Sammlung von Modellelementen in Modul/Komponente/Paket

- Abstrakte Datenstruktur (ADS), inneres geheim, Menge von Prozeduren nach außen exportiert

29

Grundlagen

Technologien

Spezielle Methoden

Strukturierter Entwurf

OO-Entwurf

Sonstige Werkzeuge

Zusammenfassung

STRUKTURIERTER ENTWURF II

- Strukturiertes Design

- Analyse-Ergebnisse an Implementierungs-Technologie angepasst -> Entwurf von Modulen

- Äußere Sicht mit Structure-Chart (Hierarchie, Organisation der Module)

- Formale Transaktionsanalyse: ein Modul als Transaktionszentrum, Verzweigung zum entsprechenden Prozess

- Obere Module sind Logik, untere Module physikalische Eigenschaften, mehr Wiederverwendung (Zwiebelmodell)

- AutoTracer in ProMod

- Erstellen, Löschen, Dokumentation von Querverweisen zwischen SD/RT, SD, Task Design

- Links zwischen Modellelementen30

Grundlagen

Technologien

Spezielle Methoden

Strukturierter Entwurf

OO-Entwurf

Sonstige Werkzeuge

Zusammenfassung

STRUKTURIERTER ENTWURF III

- DraftDesigner in ProMod

- Ableitung Designvorschlag aus SA/RT, vollautomatisch mit vordefinierten Regeln, vollständige Abbildung der Analyseergebnisse, noch bearbeitungsbedürftig, fehleranfällig und arbeitsintensiv

- Modellprüfung SELECT Enterprise

- Konsistenz mit gleichbenannten Diagrammobjekten, zwischen Service-Classes

- Prüfung im Innovator

- Syntaktische, methodische Korrektheit, verschiedene Prüfroutinen

- Vollständigkeit, Typkonflikte, Unreferenzierte Objekte (Isoliertheit), Beschreibungsvorschriften, Kontrollflussprüfung, Hierarchische Analyse und Konsistenz

31

Grundlagen

Technologien

Spezielle Methoden

Strukturierter Entwurf

OO-Entwurf

Sonstige Werkzeuge

Zusammenfassung

OBJEKTORIENTERTER ENTWURF I

- Modell-Transformationen

- Attribute für Objektassoziationen

- Attribute für Objektaggregationen

- Ableitbare Attribuge oder zusätzliche Objektverbindungen

- Abstimmung der Objekte, nebenläufige Prozesse

- Klassen für Persistenz

- Zentrales/verteiltes System

- Ausnahme- und Fehlerbehandlung

- Benutzungsschnittstelle/Kommunikation mit Infrastruktur

- Modulstruktur/Abhängigkeiten

32

Grundlagen

Technologien

Spezielle Methoden

Strukturierter Entwurf

OO-Entwurf

Sonstige Werkzeuge

Zusammenfassung

OBJEKTORIENTERTER ENTWURF II

- OMT-Modellkonstruktion

- Information Hiding (Änderungen nicht auf andere Objekte Einfluss)

- Methodenaufrufe für Zugriffe

- Kohärenz von Entitäten (alle Teile auf gemeinsames Ziel)

- Modulkonstruktion (Schnittstellen)

- OBJECTORY 3.7 auf Smalltalk setzt Analyseelemente in Designelemente um

- Model Driven Architecture (MDA)

- CIM (Fachkonzept) -> PIM (UML, OCL, XMI) -> PSM * (Java, EJB, .NET, COM)

- Mit Mappings und Transformationen zum Code

- ArcStyler,AndroMDA,OpenArchitectureWare,openMDX33

Grundlagen

Technologien

Spezielle Methoden

Strukturierter Entwurf

OO-Entwurf

Sonstige Werkzeuge

Zusammenfassung

OBJEKTORIENTERTER ENTWURF III

- Komponentenbibliotheken/Frameworks

- Klassenbibliotheken (Bausteinklassen für Programmkonstruktion)

- Frameworks (Menge von Klassen für abstraktes Design, Kollaborationsrahmen für Komponenten)

- Beispiele: EMF, MacApp, Smalltalk-MVC, JFace-API

- Komponentebasierte Software-Entwicklung

- Kapselung, Interfaces, Aggregierbarkeit (Hotspots für Anpassung)

- Basiskomponenten (z.B. GUI), Steuerungskomponenten (Workflow), Infrastrukturkomponenten (Transaktionen, Zugriffsschutz), Anwendungskomponenten (Web Services)

- COM, DCM, CORBA, EJB

- Eclipse

- Application Framework (wiederverwendbare SW-Komponenten, JFace für GUI, auf Basis von Swing, Plugin-Architektur)

34

Grundlagen

Technologien

Spezielle Methoden

Strukturierter Entwurf

OO-Entwurf

Sonstige Werkzeuge

Zusammenfassung

OBJEKTORIENTERTER ENTWURF IV

- SELECT Enterprise und Component Manager

- Verwaltung, Publikation, Wiederverwendung von Komponenten

- Specific vs. Generic Business Requirements

- Source-Code Engineering SNIFF+

- Multi-Entwickler-Projekte, Cross-Plattform

- Schnelles Erfassen, Verstehen, Analysieren von Code

- Project Editor (Projekt-Dateien, Attribute)

- Hierarchy Browser (Klassen-Vererbungshierarchie)

- Class Browser, Symbol Browser, Cross-Referencer

- Integration in unterschiedliche Werkzeuge, offene graphische Benutzerschnittstelle

35

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

PROGRAMMÜBERFÜHRUNG I

- CASE-Codegeneratoren

- Quelldiagramm (UML, SD, ERD)+textuelle Spezifikation (OCL, PML), Zielsprache

- Übersetzer, Generator (Spezifizierung des Übersetzungsvorgangs)

- Zielprogramm (Codegerüst, vollständig/lauffähig)

- Phasen:

- lexikalische Analyse (reguläre Ausdrücke, Scanner)

- syntaktische Analyse (kontextfrei, Parser)

- semantische Analyse (Attribuierte Grammatiken)

- Zwischencode (Bäume, Listen, Tabellen)

- Codeoptimierung (Speicher, Effizienz)

- Codegenerierung (Zielsprache)36

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

PROGRAMMÜBERFÜHRUNG II

- Single-Source-Prinzip

- Absolute Konsistenz zwischen Modell/Code/Dokumentation

- Ausgangspunkt des Roundtrip-Engineerings

- z.B. Together, ergibt vereinfachte Qualitätssicherung

- Programmüberführungsarten

- Code-Umwandlung

- Manuell (aus graph. Spezifikation und Dokumentation)

- Codeumwandlung (terminale Codeteile, autom. Generierung)

- Code-Selektion (Allg. Ersetzungsteile, Insert-Technologie, Dekompositionsteile, Code-Teile dominant)

- Programmvorschlag (anhand CASE-Spez., Pseudocode)

- Rückführung (geänderter Source in CASE-Spezifikation)

- Together, SELECT Enterprise aus Diagramm/Modell37

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

TEST I

- Fehlerhafte Software erzeugt in Deutschland Kosten in Höhe von 80 Millarden Euro

- Testwerkzeuge:

- Software-Systeme, die Analyse von Programmen hinsichtlich ihrer Qualitätsmerkmale (Korrektheit, Performance, Wartbarkeit, Usability) oft auf Basis mehrerer Test-Methoden unterstützen

- Verifikation (mathematischer Beweis)

- Validation (Test, Simulation, Inspektion)

- Black-Box (Funktionsabdeckung m. Äquivalenzklassen)

- Grey-Box (Test spezieller Werte, zustandsbasierte Tests)

- White-Box (Strukturabdeckung, Anweisungs-/Pfads-/Entscheidungsabdeckung)

38

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

TEST II

- QS-Maßnahmen

- Konstruktive (Methoden, Fehlervermeidung)

- Analytische (Test, Fehlerfindung)

- Testberg: Entwicklertests, Funktionstests, Anwendungstests, Integrationstests

- Werkzeuge:

- Automatisierungsgrad

- Testfall-Ermittlung, Testdaten-Generierung, Sollwertbestimmung, Testdurchführung, Monitoring, Testauswertung

- Tessy

- Durchgängige Unterstützung, Automatisierung für die letzten drei

- Kombination von funktions- und strukturorientierten Testfällen

39

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

TEST III

- Weitere Werkzeuge

- Sotograph

- komplette statische, metrikbasierte Analysen

- Matrix für Zustände/Methodenaufrufe, Abdeckungen

- Logiscope

- Entwicklung, Test, Wartung

- Code-/Rule-Checker, Test-Checker

- JUnit, Coverlipse, Sotograph, GDB, Bugzilla

40

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

DOKUMENTATION I

- Zweck:

- Know-How-Transfer zwischen AG/AN/Entwicklerteam

- Quelle des Wissens für Weiterentwicklung

- Integrierte Dokumentation (Kommentare im Code)

- Seperate Dokumentation

- Standards DIN 66230, ISO 18019

- Aufbau der Werkzeuge zur Erstellung von Dokumenten

- Aus Ergebnissen/Objekten d. Software-Entwicklung

- Verschiedene Quellen (Repository, Quellprogramme)

- Generieren, Verbinden, Strukturieren mit Standards

- Analysierbarkeit und Gestaltbarkeit, Schutz und Wiederverwendung

41

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

DOKUMENTATION II

- Taxonomie:

- Benutzerdokumentation (Bedienhandbuch, Online-Hilfe)

- Systemdokumentation (Installation, Testfälle, Code)

- Projektdokumentation (Entwicklerdokumentation, Projektplan, Status, Abnahmedokumentation)

- Qualitätsdokumentation (Test, Audit, Review, Qualtitätsparameternachweis)

- Prozessdokumentation (Vorgehensmodelle, Standards, Richtlinien)

- Werkzeuge

- JavaDoc

- HTML-Dokumentationsdateien aus Quellcode-Kommentaren, Bestandteil von JDK

42

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

DOKUMENTATION III

- Weitere Werkzeuge

- SELECT

- Document-Generator: Grundgerüst für Word

- Aktualisierung durch selektive Synchronisierung mit Select-Modell

- Teamwork

- Dokumentationstool für variable Zusammenstellung von Modellkomponenten (Graphiken, Texte) mit Structure-Chart

- Innovator

- Aus Modellspezifikation wird Modelldokumentation generiert

- In Dokumentationsrepository wird Dokumentationsstruktur angelegt, Layout nach Wunsch

- Gewählte Dokumentationsinhalte durch Dokumentationsgene-rator erzeugt und in eigentliche Doku überführt (PS, Word, ASCII)

43

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Engineering

Zusammenfassung

DOKUMENTATION IV

- Dokumentenproduktion:

- Definitionsphase

- Dokumentenvorschrift

- Layoutvorschrift

- Repository (Single-Source)

- Produktionsphase

- Dokumentengenerator

- Generierte Dokumentation

44

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanag.

Wartung u. Re-Engineering

Zusammenfassung

KONFIGURATIONSMANAGEMENT I

- Verwaltung von Software-Einheiten

- große Software in Komponenten strukturiert

- vielfache Variationen (funktional erforderliche Erweiterungen, Adaption)

- komponentenweise Entwicklung/Wartung, versch. Teilaufgaben mit untersch. Bearbeitungsständen

- komplexe Integritätsbedingungen verhindern beliebige Kombination

- Systeme durch Gruppe von Entwicklern erstellt/gewartet mit Werkzeugen

- make, sccs: für Auswahl von Versoinen und Versionspflege

- Ant: ein Projekt aus mehreren Komponenten für versch. Ziele

45

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanag.

Wartung u. Re-Engineering

Zusammenfassung

KONFIGURATIONSMANAGEMENT II

- Konfigurationsmanagement:

- Versionen- und Konfigurationsverwaltung zur Wahrung der Systemintegrität

- Zustand des Systems eineindeutig beschrieben

- Kennzeichnung von Komponenten, Varianten, Versionen

- Konfiguration (formal freigegebene Menge von Komponenten)

- Baseline (gesichertes Zwischenergebnis)

- Release (für Nutzung freigegebene Version)

- Versionsverwaltung:

- persistente Verwaltung der Komponenten

- Abspeicherung, Wiederauffinden von Versionen, Kennzeichnung von Änderungen, Zugriffsrechte (sccs)46

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanag.

Wartung u. Re-Engineering

Zusammenfassung

KONFIGURATIONSMANAGEMENT III

- Konfigurationsverwaltung:

- Repository mit allen Komponentenversionen und Beschreibung der strukturellen Zusammenhänge

- in V-Modell-XT Aktivitäten "Produktbibliothek verwalten" und "Produktkonfiguration verwalten"

- Werkzeugsysteme:

- teamorientierte Bearbeitung, Katalogisierung, Dokumentation, Fehlererfassung, Änderungsbearbeitung

- Subversion

- ClearCase (Build-Management, Workflow-Unterstützung)

- KM-Groupware-Lösung der TU-Dresden (Fehler-, Änderungsbewertung)

47

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Eng.

Zusammenfassung

WARTUNG U. RE-ENGINEERING I

- Software-Wartung

- Modifikatoin d. SW-Produkts nach Auslieferung mit dem Zweck

- Fehlerkorrektur (korrektiv)

- Verbesserung von Performance+Systemattributen (perfektiv)

- Adaptierung an geänderte Umgebung (adaptiv)

- Pro: Programme robust und zuverlässig, Neuentwicklung teuer

- Kontra: Entwicklerfluktuation, fehlende Dokumentation und Spezifikation

- Kategorien des Re-Engineerings:

- Forward-Engineering (Analyse, Design, Impl.), Reverse-Engineering (Design-Recovery, Analyse-Recovery), Restrukturierung, (Software-Rekonstruktion), Recodierung (Software-Sanierung)48

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Eng.

Zusammenfassung

WARTUNG U. RE-ENGINEERING II

- Re-Engineering := Reverse-Engineering + Delta + Forward-Engineering

- Problemgruppen

- Systemstrukturprobleme (hohe Komplexität der Komponenten)

- Datenstrukturprobleme (unverträgliche Datentypen)

- Oberflächenprobleme (Übergang zu neuen Toolkits)

- Basissystemprobleme (Hardware/OS-Wechsel unverträglich)

- Ziele

- Steigerung der Produktivität

- Portabilität

- Wiederverwendung49

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Programmüberführung

Test

Dokumentation

Konfigurationsmanagement

Wartung u. Re-Eng.

Zusammenfassung

WARTUNG U. RE-ENGINEERING III

- Schichtenmodell

- Ebene des Anwendungscodes (Strukturierung)

- Ebene der Programmsteuerung (Trennung Definitionen und Anweisungen)

- Ebene der Datendienste (kontrollierte Erstellung der Datenstruktur)

- Ebene der Präsentationsschicht (Listen, Masken, Präsentationsobjekte)

- Ebene der Dialog-/Hauptsteuerung (Programmablauffolge)

- Werkzeuge

- COREM: von klassischer zu OO-Software

- Computer Aided Reverse Engingeering (CARE), Rose C++ Analyzer, SELECT C++ Rev.E., SHORE (sd&m f. Doku)

50

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

Klassifikation

Bewertung

Erfahrungen

KLASSIFIKATION I

- Grobklassifikation

- Produktbindung (speziell, universell)

- Basismaschinenbindung (systemgebunden, portabel)

- Methodenbindung (methodenorientiert, neutral)

- Sprachenbindung (sprachgebunden, nicht gebunden)

- Arbeitsweise (transaktionsorient., dokumentenorient.)

- Spezielle SEU (Oracle Designer, Ingres/4GL)

- Basisystemorientierte Werkzeugkästen (UNIX/PWB, HP-Workbench)

- Lower CASE, Programmierumgebung, Backend

- Borland C++, Delphi, Smalltalk

- Lower CASE, Syntaxorientierte Umgebung, inkrementell

- Gandalf, Mentor, APSE

- Upper CASE, universelle SEU, Frontend (Rose, Select, ObjectiF, ...)51

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

Klassifikation

Bewertung

Erfahrungen

KLASSIFIKATION II

- Verwendung für

- Anforderungsanalyse (UI-Prototyping, SA, OOA, ...)

- Entwurfsspezifikation (OOD, Data-Modelling)

- Implementierung, Wartung (Code-Generation, Compiler, Debugger, sccs)

- Eigenschaften

- Einfachheit (Dekomposition komplexer Anforderungen, Entwurfsentscheidungen)

- Zweckmäßigkeit (E/A verständlich, effektiv)

- Kosten-/Zeitersparnis (gegenüber Verzicht auf Werkz.)

- Quantifizierbare/überprüfbare Erstellung (eindeutig)

- Änderungsunterstützung (Programm-/Dokugen.)

- Visualisierung (grafische Repräsentation)52

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

Klassifikation

Bewertung

Erfahrungen

KLASSIFIKATION III

- Anforderungen

- Integrierte Datenhaltung (Erweiterbarkeit, Offenheit, Transparenz, Teamfähigkeit, Portabilität)

- Integrierbarkeit (Koppelbarkeit über Schnittstellen)

- Vollständigkeit (Vorgehensmodell, Methoden, Funktionen)

53

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

Klassifikation

Bewertung

Erfahrungen

BEWERTUNG

- Nach unterstützten Diagrammen und Basistechniken

- Entsprechend der Anforderungen an CASE nach Balzert

- Nach Anzahl und Umsetzung von Methodenkomponenten

- Vollständigkeit von Werkzeugfunktionen (Prüfungen, Dokumentation)

54

Grundlagen

Technologien

Spezielle Methoden

Sonstige Werkzeuge

Zusammenfassung

Klassifikation

Bewertung

Erfahrungen

ERFAHRUNGEN

- Akzeptanz über Zeit gut

55

ENDE