Zusammenfassung Software Engineering.pdf PDF

Title Zusammenfassung Software Engineering.pdf
Course Software Engineering I - Methodische Entwicklung objektorientierter Desktop-Applikationen
Institution FernUniversität in Hagen
Pages 57
File Size 1.6 MB
File Type PDF
Total Downloads 513
Total Views 914

Summary

Download Zusammenfassung Software Engineering.pdf PDF


Description

Summary - Kurs 1793 Software Engineering 1

Werner Zeindl-Nagele

Summary Kurs 1793

Software Engineering 1 Grundkonzepte der objektorientierten Softwareentwicklung Version SoSe 2005

1793-Summary.doc

1/57

Summary - Kurs 1793 Software Engineering 1

Werner Zeindl-Nagele

Inhaltsverzeichnis

I SOFTWARE ENGINEERING IM ÜBERBLICK 5 1. SOFTWAREENTWICKLUNG HEUTE ........................................................................5 2. ALLGEMEINE ASPEKTE .............................................................................................5 2.1 W AS IST SOFTWARE ENGINEERING.................................................................................5 2.2 E IGENSCHAFTEN VON SOFTWARE...................................................................................5 2.3 ANWENDUNGSSYSTEME UND WORKFLOW MANAGEMENT SYSTEME ...............................6 3. TECHNISCHE ASPEKTE ..............................................................................................6 3.1 KRITERIEN FÜR SOFTWAREQUALITÄT .............................................................................6 3.2 AKTIVITÄTEN ................................................................................................................7 4. VORGEHENSMODELLE...............................................................................................8 4.1 W ASSERFALLMODELL....................................................................................................8 4.2 E INSCHUB: PROTOTYPING..............................................................................................9 4.3 E INSCHUB: ITERATIVE, INKREMENTELLE UND EVOLUTIONÄRE VORGEHENSWEISEN.........9 4.4 RATIONAL UNIFIED PROCESS .......................................................................................11 4.5 EXTREME PROGRAMMING............................................................................................13 KAPITEL 5 BIS 15 SIEHE SKRIPT! ............................................................................... 14

IV. ANFORDERUNGSERMITTLUNG................................ 15 16. ZIELE UND VORGEHENSWEISE............................................................................ 15 17. EINSTIEG .................................................................................................................... 16 18. ANWENDUNGSFALLMODELLIERUNG ................................................................16 18.1 VORGEHENSWEISE .....................................................................................................16 18.2 SZENARIEN................................................................................................................17 18.3 AKTEURE ..................................................................................................................17 18.4 ANWENDUNGSFÄLLE .................................................................................................17 18.5 BEZIEHUNGEN ZWISCHEN ANWENDUNGSFÄLLEN ........................................................18 18.6 PAKETE .....................................................................................................................18 19. DOMÄNEN-KLASSENMODELLIERUNG............................................................... 18 19.1 VORGEHENSWEISE .....................................................................................................18 19.2 KLASSEN UND ASSOZIATIONEN ..................................................................................19 19.3 GENERALISIERUNGSBEZIEHUNGEN .............................................................................19 19.4 MODELLBEREINIGUNG ...............................................................................................19 19.5 TEXTUELLE SPEZIFIKATION .......................................................................................19 19.6 PAKETE .....................................................................................................................20 20. BENUTZUNGSOBERFLÄCHE .................................................................................20 21. VERHALTENSMODELLIERUNG............................................................................ 20 21.1 ABLAUFORIENTIERTES VERHALTEN VON ANWENDUNGSFÄLLEN .................................20 21.2 ZUSTANDSORIENTIERTES VERHALTEN........................................................................21 22. VALIDIERUNG UND VERIFIKATION.................................................................... 21 1793-Summary.doc

2/57

Summary - Kurs 1793 Software Engineering 1

Werner Zeindl-Nagele

V. ANALYSE ......................................................................................................22 24. ZIELE UND VORGEHENSWEISE............................................................................ 22 25. KLASSENMODELLIERUNG: HEURISTIKEN .......................................................22 25.1 1:1 ASSOZIATION ODER EINE KLASSE? .......................................................................22 25.2 ATTRIBUTE ODER GENERALISIERUNG? .......................................................................23 26. KLASSENMODELLIERUNG ....................................................................................24 26.1 E INLEITUNG ..............................................................................................................24 26.2 E NTITÄTSKLASSEN ...........................................................................................24 26.3 SCHNITTSTELLENKLASSEN ..............................................................................24 26.4 KONTROLLKLASSEN ..........................................................................................24 26.5 OPERATIONEN ...........................................................................................................24 26.6 MODELLBEREINIGUNG ...............................................................................................24 26.7 PAKETE .....................................................................................................................24 27. VERHALTENSMODELLIERUNG ......................................................................................25 28. VERIFIKATION..........................................................................................................26 28.1 INTRA-MODELL VERIFIKATION ..................................................................................26 28.2 INTER -MODELL VERIFIKATION ..................................................................................27

VI. ARCHITEKTURENTWURF .................................................28 31. ARCHITEKTURENWURF – ZIELE UND VORGEHENSWEISE..........................28 32. SCHICHTENARCHITEKTUREN .............................................................................28

VII. GRUNDLAGEN DES ENTWURFS.............................. 29 34. ZIELE UND VORGEHENSWEISE............................................................................ 29 35. GRUNDKONZEPTE ...................................................................................................29 35.1 GEHEIMNISPRINZIP ....................................................................................................29 35.2 KOPPLUNG UND KOHÄSION........................................................................................29 35.3 KONFORMITÄT ..........................................................................................................31 35.4 ENTWURF MIT VERTRÄGEN........................................................................................33 35.5 INTERFACES ..............................................................................................................34 36. BERÜCKSICHTIGUNG VON JAVA IM ENTWURF .............................................. 35 36.1 SICHTBARKEITEN.......................................................................................................35 36.2 ABSTRAKTE KLASSEN UND INTERFACES .....................................................................35 36.3 POLYMORPHISMUS UND DYNAMISCHES BINDEN..........................................................35 37. ENTWURFSMUSTER.................................................................................................36 37.1 E INFÜHRUNG.............................................................................................................36 37.2 ERZEUGENDE MUSTER...............................................................................................37 37.3 STRUKTURMUSTER ....................................................................................................38 37.4 VERHALTENSMUSTER ................................................................................................39 37.5 AUSWAHL VON ENTWURFSMUSTERN..........................................................................41

VIII. GROBENTWURF.......................................................................... 42 1793-Summary.doc

3/57

Summary - Kurs 1793 Software Engineering 1

Werner Zeindl-Nagele

38. ZIELE UND VORGEHENSWEISE............................................................................ 42 39. 3-SCHICHTENARCHITEKTUR................................................................................ 42 40. EXTERNE SCHNITTSTELLEN ................................................................................ 43 40.1 BENUTZUNGSSCHNITTSTELLE ....................................................................................43 40.2 EXTERNE SYSTEME....................................................................................................43 41. ANWENDUNGSKERN................................................................................................44 41.1 KONTROLLKLASSEN ..................................................................................................44 41.2 ENTITÄTSKLASSEN ....................................................................................................44 42. MODELLVERFEINERUNG....................................................................................... 44 42.1 ENTITÄTS- UND KONTROLLKLASSEN ..........................................................................44 42.2 SCHNITTSTELLENKLASSEN .........................................................................................45 42.3 PAKETE .....................................................................................................................45 43. VERHALTENSMODELLIERUNG............................................................................ 45 43.1 ANWENDUNGSFÄLLE .................................................................................................46 43.2 KOMPLEXE OPERATIONEN .........................................................................................46

IX. FEINENTWURF .................................................................................. 47 45. ZIELE UND VORGEHENSWEISE............................................................................ 47 46. BENUTZERSCHNITTSTELLE ................................................................................. 48 46.1 FENSTER UND AUSWAHLMENÜS .................................................................................48 46.2 HAUPT- UND AKTEUR-SCHNITTSTELLENKLASSEN ......................................................48 46.3 SICHT-SCHNITTSTELLENKLASSEN ..............................................................................49 47. ANWENDUNGSKERN................................................................................................49 47.1 ZUGRIFFE AUF DIE DATENHALTUNGSSCHICHT ............................................................49 47.2 SYSTEMDETERMINIERTES ABLAUFORIENTIERTES VERHALTEN.....................................49 48. TRANSFORMATIONEN ............................................................................................ 50 48.1 ASSOZIATIONEN: STANDARDFÄLLE ............................................................................50 48.2 SPEZIELLE ASSOZIATIONEN UND ASSOZIATIONSKLASSEN ...........................................51 48.3 ECHTE GANZES-KLASSEN ..........................................................................................52 48.4 INCLUDE- UND EXTEND-BEZIEHUNGEN ........................................................................52 48.5 ZUSTANDSDIAGRAMME..............................................................................................53 49. PAKETE ....................................................................................................................... 54

ZUSAMMENFASSUNG DER REGELN UND HEURISTIKEN ...............................................................................................55 18.7 ZUSAMMENFASSUNG DER MERKREGELN ZUR ANWENDUNGSFALLMODELLIERUNG ......55 19.7 ZUSAMMENFASSUNG DER MERKREGELN ZUR (DOMÄNEN-) KLASSENMODELLIERUNG .55 25.3 ZUSAMMENFASSUNG DER HEURISTIKEN ZUR KLASSENMODELLIERUNG .......................56 35.6 ZUSAMMENFASSUNG DER REGELN UND HEURISTIKEN FÜR DEN ENTWURF...................56

1793-Summary.doc

4/57

Summary - Kurs 1793 Software Engineering 1

I

Werner Zeindl-Nagele

Software Engineering im Überblick

1. Softwareentwicklung heute siehe Skript

2. Allgemeine Aspekte 2.1 Was ist Software Engineering Software Engineering befasst sich mit der systematischen Entwicklung großer Softwaresysteme, wobei die Anwendungsentwicklung im Vordergrund steht. Es beschäftigt sich mit Methoden, Techniken und Werkzeugen zur Entwicklung großer Software mit dem Ziel • Software hoher Qualität, • kostengünstig innerhalb eines festen Budgetrahmens und • zum geplanten Zeitpunkt zu produzieren. Als Softwareentwicklung bezeichnet man die Gesamtheit aller Aktivitäten, die zu einem lauffähigen Softwaresystem führen. Software Engineering befasst sich damit, einzelne Aktivitäten zu identifizieren und zu beschreiben, ihre Ergebnisse festzulegen und in einem Vorgehensmodell einzuordnen. Dabei finden produktbezogene Aktivitäten z.B. bei der Anforderungsermittlung und der Implementierung statt (ihre Ergebnisse – definierende Dokumente bzw. kompilierbarer Code – gehen direkt in das Produkt ein), und prozessbezogene Aktivitäten, welche den Organisations- und Managementrahmen für die produktbezogenen Aktivitäten bilden.

2.2 Eigenschaften von Software Grundsätzliche Merkmale: • Software ist nicht sinnlich wahrnehmbar. Zugang zum Verständnis bieten nur die definierenden Texte. • Software ist Text. Er kann verändert werden und deshalb besteht die Erwartung, dass SW an veränderliche Bedürfnisse angepasst werden kann. • Software ist digital. Die formale Behandlung beruht auf der diskreten Mathematik und Logik (im Gegensatz zur kontinuierlichen Ingenieursmathematik). Wegen der ungeheuren Zahl an möglichen Systemzuständen und Interaktionen sind die entsprechenden Verfahren nur eingeschränkt praktikabel. Eigenschaften großer Software sind • Komplexität • sie besteht aus umfangreichen Artefakten (Spez., Programmen,...) • sie hat eine lange Lebensdauer (oft > 10 Jahre) => Wartung, Updates, sich ändernde Plattformen, ... • sie verfestigt Sichtweisen => Verständnis und Interessen der Beteiligten schlagen sich in der Software nieder, umgekehrt prägt die Software die Rahmenbedingungen für Arbeitsabläufe.

1793-Summary.doc

5/57

Summary - Kurs 1793 Software Engineering 1

Werner Zeindl-Nagele

2.3 Anwendungssysteme und Workflow Management Systeme Workflow-Modelle dienen als Grundlage zur Automatisierung von Geschäftsprozessen. ein Workflow ist die Unterstützung oder Automatisierung eines Geschäftsprozesses durch ein Computersystem. Zur Unterstützung von Workflows gibt es kommerzielle Systeme wie z.B. ERP, CRM oder auch SCM-Systeme. Systeme mit denen man Geschäftsprozesse zunächst als Workflow-Modell spezifizieren und dann auch ausführen kann, nennt man Workflow Management Systeme.

3. Technische Aspekte 3.1 Kriterien für Softwarequalität [nach DIN55350] „Softwarequalität ist die Gesamtheit der Eigenschaften oder Merkmale, welche die Software in Verwendung und (Weiter-)Entwicklung aufweist, um die gegebenen Anforderungen zu erfüllen.“ Unterscheidung zwischen • Produktqualität: zielt auf die inneren Qualitätsmerkmale, wie z.B. o Korrektheit der SW bez. Spezifikation o Verständlichkeit o Änderbarkeit und Wiederverwendbarkeit • Gebrauchsqualität: bezieht sich auf die Erfüllung der gestellten Anforderungen (äußere Qualitätsmerkmale), wie z.B. o Korrektheit bez. des realen Einsatzkontexts o Zuverlässigkeit o Effizienz o Aufgabenangemessenheit o Erwartungskonformität o Fehlerrobustheit Qualitätsmodell nach [ISO9126-1] unterscheidet folgende Qualitätsmerkmale: • Funktionalität: o Angemessenheit und Richtigkeit bez. Anforderungen o Interoperabilität o Ordnungsmäßigkeit bez. anwendbarer Normen und Gesetze o Sicherheit bez. Daten und Zugriff • Zuverlässigkeit: Fähigkeit, ein Leistungsniveau unter festgelegten Bedingungen über einen definierten Zeitraum zu bewahren. • Benutzbarkeit: der Aufwand bez. auf die jeweilige Benutzergruppe für die Benutzung des Systems 1793-Summary.doc

6/57

Summary - Kurs 1793 Software Engineering 1

• •



Werner Zeindl-Nagele

Effizienz: benötigte Zeit und Verbrauch an Betriebsmittel für die Erfüllung der geforderten Funktionalität Änderbarkeit: o Analysierbarkeit o Modifizierbarkeit o Prüfbarkeit o Stabilität Übertragbarkeit: o Anpassbarkeit o Installierbarkeit o Konformität o Austauschbarkeit

Dabei ist auch die Qualität der Dokumentation zu beachten, da sich die Benutzerdokumentation letztlich auf die Gebrauchsqualität und die Systemdokumentation auf die Produktqualität auswirkt.

3.2 Aktivitäten Je nach Vorgehensmodell (siehe Kap. 4) kann sich eine Aktivität auf das gesamte Anwendungssystem oder nur auf einen bzw. mehrere Teile beziehen. Anforderungsermittlung In der Anforderungsermittlung werden die spezifischen Anforderungen an das Anwendungssystem ermittelt und in der Anforderungsspezifikation festgehalten. In dieser wird der Leistungsumfang der Software möglichst exakt beschrieben. Die Anforderungsspezifikation soll nur beinhalten, was die Software leisten soll, nicht aber wie diese Leistung erbracht wird. Die Endabnahme der Software erfolgt nach den Vorgaben der Anforderungsspezifikation. (Details siehe Kap. 16ff). Entwurf Beim Entwurf wird auf Grundlage der Anforderungsspezifikation die innere Struktur der Software festgelegt. Leitthema ist dabei die Bewältigung der Komplexität durch Zerlegung des Softwareprodukts in kleinere, besser beherrschbare Module (Divide & Conquer Strategie). Ergebnis ist die Entwurfsspezifikation, in der die Funktionalität jedes Moduls, seine Verwendung und das Zusammenspiel der Module beschrieben wird. Programmiertechnische Details sind nicht Gegenstand des Entwurfs. Er liefert aber die Vorgaben, auf deren Basis die Implementierung durchgeführt werden kann und bestimmt darüber hinaus auch entscheidend die Wartbarkeit der Software (Produktqualität!). (Details siehe Kap. 34ff). Implementierung Ist die Ausprogrammierung (Codierung) der Modulinterna auf Basis der Entwurfsspezifikation. Das Ergebnis ist eine Ansammlung von Quelltexten der verschiedenen Module, die zusammen aber i.A. noch kein funktionsfähiges Programm ergeben. Test Aufgabe ist die Überprüfung, ob der Prüfgegenstand seine Spezifikation erfüllt. Der Test wird unterteilt in • Modultest: Einzeltest der Module • Integrationstest: sukzessives Hinzufügen der Module zu immer größeren Programmteilen und Testen dieser Programmteile 1793-Summary.doc

7/57

Summary - Kurs 1793 Software Engineering 1

• •

Werner Zeindl-Nagele

Systemtest: Test des Gesamtsystems, der sicherstellt, dass die Software die Anforderungsspezifikation erfüllt. Abnahmetest: Das ausführbare Programmsystem wird zunächst hinsichtlich nichtfunktionaler Anforderungen (z.B. Effizienz) geprüft, dann in seine...


Similar Free PDFs