software- entwicklungswerkzeuge …fallingleaves.de/k83z/data/sew_summary_slides.pdf · 6-nach sgml...
TRANSCRIPT
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