Grundlagen der Informatik Software-Entwicklung

Ähnliche Dokumente
Softwaretechnik (Allgemeine Informatik) Überblick

Klausur Software-Engineering SS 2005 Iwanowski

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Kapitel 2: Der Software-Entwicklungsprozess

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Die Softwareentwicklungsphasen!

Übungsklausur vom 7. Dez. 2007

Some Software Engineering Principles

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Software Engineering

Übungen zur Softwaretechnik

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fragebogen ISONORM 9241/110-S

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

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

Maintenance & Re-Zertifizierung

Zeichen bei Zahlen entschlüsseln

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang


Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Konzepte der Informatik

Techniken der Projektentwicklungen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Leseauszug DGQ-Band 14-26

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Urlaubsregel in David

16 Architekturentwurf Einführung und Überblick

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

1 Mathematische Grundlagen

Qualitätssicherung. Was ist Qualität?

Konzentration auf das. Wesentliche.

BSV Ludwigsburg Erstellung einer neuen Internetseite

Objektorientierte Programmierung

Professionelle Seminare im Bereich MS-Office

Forschen - Schreiben - Lehren

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Das Warenwirtschaftswunder

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Arbeiten mit UMLed und Delphi

SEP 114. Design by Contract

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

ER-Modell. Entity-Relationship-Model

Software Engineering Interaktionsdiagramme

Was ist clevere Altersvorsorge?

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

SEO Erfolg mit themenrelevanten Links

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Softwaretechnik. Fomuso Ekellem WS 2011/12

Hochschule Karlsruhe Klausur EAI Prof. Dr. Christian Pape. Klausur EAI WS 05/06. Note: Bearbeitungszeit 90 Minuten Keine Hilfsmittel

JetSym. Programmierung in Hochsprache ST nach IEC We automate your success.

Data Mining-Projekte

SWE5 Übungen zu Software-Engineering

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

GeFüGe Instrument I07 Mitarbeiterbefragung Arbeitsfähigkeit Stand:

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Übungsaufgaben zum Software Engineering: Management

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

Gruppenrichtlinien und Softwareverteilung

1. Grundbegriffe des Software-Engineering

Kapiteltests zum Leitprogramm Binäre Suchbäume

ARCO Software - Anleitung zur Umstellung der MWSt

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

PIERAU PLANUNG GESELLSCHAFT FÜR UNTERNEHMENSBERATUNG

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Internet Explorer Version 6

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Ishikawa-Diagramm. 1 Fallbeispiel 2. 2 Was ist ein Ishikawa-Diagramm 2. 3 Vorgehen bei der Erstellung eines Ishikawa-Diagramms 2.

Was meinen die Leute eigentlich mit: Grexit?

SWT MN Vorlesung Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster

Whitebox-Tests: Allgemeines

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

Das Handwerkszeug. Teil I

Abschnitt 16: Objektorientiertes Design

Einführung in Eclipse und Java

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Unified Modeling Language (UML)

Software-Engineering

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

1 topologisches Sortieren

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Sicher auf Erfolgskurs. Mit Ihrem Treuhand-Betriebsvergleich

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

Transkript:

Grundlagen der Informatik Software-Entwicklung Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer

Inhalt Software-Entwicklung 8-2 Prof. Dr. Bernhard Schiefer

Software-Entwicklung Entwicklung von Software ist ein hoch komplizierter Prozess. Umso umfangreicher die Software, umso problematischer auch die Entwicklung. Wie kann die Komplexität (Umfang) eines Software-Programms gemessen werden? Es gibt kein exaktes Maß dafür., einige Beispiele sind: Anzahl der Quelltextzeilen des Programms, Line of Codes (LOC). Entwicklungszeit, die zur Erstellung des Programms benötigt wurde, z.b. Mann-Jahre. Software-Komplexität ist keine exakte Wissenschaft, beide Maße sind offensichtlich nicht sehr genau. 8-3 Prof. Dr. Bernhard Schiefer

Software-Entwicklung Die folgende Tabelle gibt einen groben Einblick in die Klassifikation von Software-Projekten hinsichtlich ihrer Komplexität Software-Klasse Codezeilen (LOC) Bearbeitungsaufwand (PJ) Sehr klein 0 1.000 0-0,2 Klein 1.000 10.000 0,2-2 Mittel 10.000 100.000 2-20 Groß 100.000 1.000.000 20-200 Sehr groß 1 Mio. - 200 - LOC Lines of code PJ Personenjahre 8-4 Prof. Dr. Bernhard Schiefer

Hauptprobleme bei der Software-Entwicklung Ein Hauptproblem der Software-Entwicklung ist die Zuverlässigkeit bzw. Fehlerfreiheit: Zuverlässigkeit: Programm verhält sich im Betrieb so wie es soll (wie in den Spezifikationen beschrieben) Je umfangreicher das Programm, desto unwahrscheinlicher ist es, dass es sich zuverlässig verhält und immer fehlerfreie Ergebnisse/Abläufe garantiert Man geht davon aus, dass es im allgemeinen unmöglich ist, umfangreiche Software-Produkte vollständig fehlerfrei zu entwickeln 8-5 Prof. Dr. Bernhard Schiefer

Hauptprobleme bei der Software-Entwicklung Ein weiteres Problem besteht darin, die Software so zu entwickeln, dass spätere (noch unbekannte) Änderungen eingefügt werden können Konkreter Entwickler möchte sein Programm so schnell wie möglich beenden Software-Entwicklung ist jedoch ein evolutionärer Prozess, der oft sehr lange andauert, und dessen Ende womöglich noch nicht abzusehen ist Schwer zu entscheiden, wie viel Programmieraufwand (Zeit & Kosten) in die Entwicklung der Ausbaufähigkeit gesteckt werden soll zu Beginn ist noch unklar ob/wie oft die Software in Zukunft eingesetzt werden wird (und Umsatz bringt). Was sind die Gründe für notwendige Software-Änderungen? 8-6 Prof. Dr. Bernhard Schiefer

Gründe für spätere Software-Änderungen es werden Fehler entdeckt diese müssen für einen begrenzten Zeitraum in der Regel kostenlos entfernt werden es werden neue Anforderungen an die Software gestellt z.b. bei Änderung gesetzlicher, betrieblicher oder organisatorischer Rahmenbedingungen Änderung in der Gesetzgebung implizieren immer wieder Anpassungen in entsprechenden Software Für diese können, je nach Wartungsvertrag, separat Kosten anfallen Software soll/muss in neuer Hardware-Umgebung eingesetzt werden Software will/muss zusätzliche Hardware-Komponenten nutzen weil z.b. über neue Schnittstellen neue Geräte angeschlossen werden sollen 8-7 Prof. Dr. Bernhard Schiefer

Lösungen: Methoden und Werkzeuge Seit Ende der 60er beschäftigt man sich in der Informatik mit der Frage, wie die Entwicklung von qualitativ hochwertiger Software ablaufen sollte Software Engineering Wichtige Kriterien für die Qualität solcher Software sind: Zuverlässigkeit und Korrektheit (also Fehlerfreiheit) Modifizierbarkeit, Wartbarkeit, Testbarkeit und Wiederverwendbarkeit Effizienz Kosten Eine ideale Software-Lösung, die völlig fehlerfrei, kostengünstig ist und die man später leicht ändern kann, gibt es nicht. 8-8 Prof. Dr. Bernhard Schiefer

Lösungen: Methoden und Werkzeuge Wie kann das Ziel, qualitative möglichst gute Software zu schreiben, systematisch unterstützt werden? Durch ein systematisches Vorgehen im Projekt. Durch die geeignete Berücksichtigung entsprechender Faktoren zur Produktivität. Durch die Einführung geeigneter Methoden zur Software-Entwicklung. 8-9 Prof. Dr. Bernhard Schiefer

Vorgehensmodelle Die entsprechenden Vorgehensmodelle wurden bereits in Kapitel Grundlagen der Programmierung beschrieben. Im wesentlichen unterscheidet man die Phasen: Sammeln der Anforderungen Entwurf Codierung Test und Integration (Modul-Test und Gesamt-Test) Alle Modelle sind iterativ und bieten die Möglichkeit des Feedbacks, so dass beispielsweise in der Phase der Codierung ein Fehler im Entwurf festgestellt wird und daher wieder zu Entwurfs-Phase gesprungen werden muss. Die einzelnen Modelle unterscheiden sich in der Frage, wie innerhalb der Phasen gesprungen werden darf. 8-10 Prof. Dr. Bernhard Schiefer

Produktivität Für die Produktivität sind viele Faktoren von Bedeutung. Dazu gehören: Ausstattung mit leistungsstarken Rechner und Bereitstellung von ausreichenden Netzverbindungen. Ausstattung mit geeigneten Programmierumgebungen, auch Software- Entwicklungs-Umgebungen genannt. Peopleware Mitarbeiterführung im Sinne von Menschenführung Auswahl geeigneter Mitarbeiter Förderung der Teambildung Angemessene Gestaltung der Büroumgebung Erhaltung der Work-Life-Balance 8-11 Prof. Dr. Bernhard Schiefer

Methoden der Software-Entwicklung Die traditionellen Methoden zur Programmentwicklung wurden von Dijkstra, Hoare, Wirth, Mills, Parna und viele anderen bereits ab 1970 propagiert. Sie sind so grundlegend und allgemein gültig, dass sie sich auch in den späteren Methoden und Ansätzen wiederfinden: Strukturierte Programmierung Schrittweise Verfeinerung und Top-Down-Entwurf. Die Methoden der ersten Generation sind für größere Systeme nicht mehr gut geeignet. Ab Ende der 70er Jahre wurde daher einen neue, zweite Generation von Methoden zunehmend industriell eingesetzt: Modularisierung von Software nach dem Daten-Abstraktionsprinzip zusätzlich zur bisherigen funktionsorientierten Entwicklung. 8-12 Prof. Dr. Bernhard Schiefer

Neue Methode: Objektorientierung Seit Beginn der 80er Jahre hat sich die Objektorientierung in der Softwaretechnik kontinuierlich ausgebreitet und ist heute beherrschend. Dahinter verbirgt sich zunächst einmal eine neue Denkweise in der Programmierung Die Anwendung wird als Menge miteinander agierender Objekte modelliert 8-13 Prof. Dr. Bernhard Schiefer

Strukturierte Programmierung Wesentliches Ziel der strukturierten Programmierung: Verbesserung von Lesbarkeit und auch Verbesserung der Korrektheit von Software. Dazu werden u.a. die folgenden Regeln empfohlen: Verwende nur strukturierte Anweisungen wie Fallunterscheidung- und Schleifen-Anweisungen, aber keine goto-anweisungen. Baue das Programm so auf, dass einzelne Teile leicht abtrennbar (und damit separat leicht verifizierbar) sind, z.b. durch ausgiebige Verwendungen von Prozeduren/Funktionen (Methoden). Verwende klar aufgebaute (und separat vereinbarte) Datenstrukturen und Konstantenvereinbarungen statt über das Programm verteilte Codeschlüssel. Verwende selbsterklärende und programmspezifische Bezeichner. 8-14 Prof. Dr. Bernhard Schiefer

Strukturierte Programmierung Aktuelle Programmiersprachen unterstützen durch die angebotenen bzw. weggelassenen Sprachelemente das strukturierte Programmieren. In erster Linie hängt es aber von der Fertigkeiten und der Disziplin des Programmierers ab, wie gut seine Programme strukturiert sind. Des weiteren gibt es in den meisten Firmen bindende Richtlinien zur Programmierung, die in der Regel durch Werkzeuge unterstützt werden und somit die Einhaltung der Regeln erzwingen. 8-15 Prof. Dr. Bernhard Schiefer

Schrittweise Verfeinerung und Top-Down Entwurf Die strukturierte Programmierung gibt Regeln für das Programmieren im Kleinen" an: Sie beschreibt die innere Gestaltung kleinerer Programme. Für die Erstellung mittlerer bis großer Programmsysteme wurde das Konzept der schrittweisen Verfeinerung entworfen, das bereits im Kapitel Algorithmen und Techniken aus algorithmischer Sicht erläutert wurde. Aus großen, schwer überschaubaren Problembereichen werden kleinere Teilprobleme herausgelöst und gesondert bearbeitet. Dieser Schritt kann mehrfach wiederholt werden und hat die schrittweise Verfeinerung ganzer Programmteile zur Folge 8-16 Prof. Dr. Bernhard Schiefer

Grafische Darstellung: Top-Down-Entwurf Die grafische Darstellung dieses Prozesses liefert einen Baum: 8-17 Prof. Dr. Bernhard Schiefer

Daten- und Funktionsorientierte Methoden Methoden der ersten Generation wie die strukturierte Programmierung reichen als methodischer Wegweiser nicht mehr aus, wenn es um die Probleme des Programmierens im Großen" geht. Also wenn man große Programmieraufgaben in separat zu behandelnde Teilaufgaben zerlegen will und dabei Daten und Funktionen gemeinsam in geeigneter Weise strukturieren will. Die zweite Generation von Methoden hat dazu Ende der 70er zeitgleich verschiedene Ansätze vorangetrieben: Parnas hat das Geheimnisprinzip mit Hilfe der Daten-Abstraktion und der Modularisierung eingeführt. Die strukturierte Programmierung wurde durch geeignete Hilfsmittel (Datenfluss-Diagramm) ausgebaut zur Strukturierten Analyse. Aus dem Datenbank-Entwurf wurde die Entity/Relationship-Modellierung nach kurzer Zeit auch in der Software-Technik übernommen. 8-18 Prof. Dr. Bernhard Schiefer

Maßnahmen zur Qualitätssicherung Unabhängig von der Einführung des Konzepts zur Datenstrukturierung wurden auf Grund der hohen Komplexität der zu lösenden Software- Projekte Maßnahmen zur Qualitätssicherung notwendig: Systematische Test-, Review und Inspektionsverfahren wurden daher zunehmend etabliert. 8-19 Prof. Dr. Bernhard Schiefer

Information Hiding (Geheimnisprinzip) Bei der Entwicklung großer Software-Systeme stellt die Kommunikation zwischen den Entwicklern eines der größten Probleme dar: Jede Person bearbeitet einzelne Programmbausteine oder auch Module genannt Verknüpft sind diese miteinander sowohl über Kontroll- als auch Datenstrukturen Diese Module müssen so definiert und gegeneinander abgegrenzt werden, dass jeder Kollege (Co-Entwickler) das für ihn Notwendige über diese erfährt. Aber nicht mit Detailwissen über die Module der anderen überfrachtet wird 8-20 Prof. Dr. Bernhard Schiefer

Information Hiding (Geheimnisprinzip) Parnas schlug 1972 dazu das Geheimnisprinzip vor, welches besagt, dass beim Entwurf eines großen Systems jedes Modul in zwei Teilen zu beschreiben ist: Alle Vereinbarungen, die für die Benutzung des Moduls durch andere Module notwendig sind. Der sogenannte Visible Part" oder auch Spezifikation genannt. Alle Vereinbarungen und Anweisungen, die für die Benutzung des Moduls durch andere Module nicht benötigt werden. Der sogenannte Private Part" oder auch Konstruktion genannt. Das war der Grundstein für das wenige Jahre später definierte Prinzip der Datenabstraktion. 8-21 Prof. Dr. Bernhard Schiefer

Prinzip der Datenabstraktion/Datenkapselung Daten und darauf operierende Funktionen (Operationen) müssen immer gemeinsam in einem unmittelbaren Zusammenhang definiert werden. Datenstrukturen sind so in Module zu verpacken (verkapseln), dass auf sie von anderen Modulen nur über ihre Operationen zugegriffen werden kann. Die Beschreibung (Schnittstelle bzw. Signatur) dieser Operationen macht die Spezifikation des Moduls aus, die für alle anderen sichtbar ist. Die Programmierung der konkreten Datenzugriffe erfolgt im privaten Konstruktionsteil und damit im alleinigen Verantwortungsbereichs des damit befassten Entwicklers 8-22 Prof. Dr. Bernhard Schiefer

Grafische Darstellung: Datenkapselung Diese Abbildung beschreibt den Aufbau eines Software-Systems nach dem Prinzip der Datenkapselung (Data Encapsulation), was zu einer Modularisierungsstruktur führt 8-23 Prof. Dr. Bernhard Schiefer

Strukturierte Analyse Im Vordergrund stehen grafische Dokumentationsformen. Ein Datenfluss-Diagramm (data flow diagram) ist ein einfacher gerichteter Graph, dessen Knoten Tätigkeiten, Aktionen oder Vorgänge und dessen Kanten für zwischen diesen transferierte Informationseinheiten stehen, den sogenannten Datenflüssen. Spezialsymbole für interne Datenspeicher und für externe Quellen und Senken von Informationen vervollständigen das grafische Vokabular. 8-24 Prof. Dr. Bernhard Schiefer

Beispiel: Datenflussdiagramm Beispiel zeigt ein einfaches Datenflussdiagramm für die Depoteinrichtung bei einer Bank: 8-25 Prof. Dr. Bernhard Schiefer

Entity/Relationship-Modellierung 1976 veröffentlichte Peter Chen seine Arbeit über das E/R-Modell Gedacht als Entwurfstechnik für komplexe Datenbank-Strukturen Bei der Entwicklung größerer Software-Systeme wird häufig die Datenmodellierung als erster Entwurfsschritt vorangestellt Die Datenmodellierung erlaubt die Konzentration auf die konzeptionellen Zusammenhänge der zu speichernden Informationen und zwar unabhängig von einer späteren Implementierung. 8-26 Prof. Dr. Bernhard Schiefer

Entity/Relationship-Modellierung Die E/R-Technik ermöglicht beim Entwurf großer Software-System, zunächst einmal die Abstraktion von funktionalen Zusammenhängen und damit von der Systemdynamik. Natürlich ist damit keine vollständige Systembeschreibung zu erreichen. Doch lasen sich E/R-Diagramme relativ leicht mit Darstellungen funktionaler Zusammenhänge wie z.b. Datenfluss-Diagrammen kombinieren. Ein E/R-Datenmodell lässt sich als Graph (E/R-Diagramm) veranschaulichen. Die Knoten werden als Rechtecke oder Rauten dargestellt, je nachdem ob sie Entitäten oder Beziehungen darstellen. Falls ein Entitätstyp im entsprechenden Beziehungstyp enthalten ist, wird zwischen den beiden Knoten eine Kante gezogen. Die Kante besitzt als Markierung die Kardinalität, die der Entitätstyp in dem Beziehungstyp besitzt. 8-27 Prof. Dr. Bernhard Schiefer

E/R-Beispiel: Mini-Unternehmen 8-28 Prof. Dr. Bernhard Schiefer

Objektorientierte Software- Entwicklungsmethoden Seit der Programmiersprache Smalltalk zu Beginn der 80er Jahre hat sich der Begriff objektorientiert in der Softwaretechnik kontinuierlich verbreitet und ist heute beherrschend. Insbesondere werden durch die OO-Analyse die Inhalte der herkömmlichen Daten- und Funktionsmodelle zusammengefasst. Zur Beschreibung der OO-Modellierung über diese Phasen hinweg wird die Modellierungssprache UML (Unified Modelling Language) eingesetzt: UML ist grafikbasiert und bietet verschiedene Diagramm-Typen zur Darstellung der verschiedenen Aspekte an. UML hat sich als Standard zur einheitlichen Modellierung eines OO- Systems etabliert. 8-30 Prof. Dr. Bernhard Schiefer

UML: Unified Modelling Language UML ist eine sehr mächtige Sprache zum Beschreiben objektorientierter Softwaremodelle Wird genutzt zur Spezifikation, Visualisierung, Konstruktion und Dokumentation der Bestandteile eines Softwaresystems UML besteht aus drei Hauptelementen: Grundbestandteile Regeln zum Zusammensetzen Allgemeine Mechanismen UML ist keine visuelle Programmiersprache, jedoch lassen sich ihre Modelle in vielen Programmiersprachen abbilden 8-31 Prof. Dr. Bernhard Schiefer

Diagrammtypen der UML UML hat verschiedene Diagrammtypen, um ein System mit mehreren Schichten darzustellen: Klassendiagramm Zeigt eine Menge von Klassen und ihre Beziehungen Objektdiagramm Zeigt eine Menge von Objekten und ihre Beziehungen Sequenzdiagramm Kollaborationsdiagramm Zustandsdiagramm.-diagramm 8-32 Prof. Dr. Bernhard Schiefer

Prinzipien der Objektorientierung Prinzipiell kann jede speicherbare Größe als Objekt aufgefasst werden, das nicht nur passiven Charakter hat wie eine herkömmliche Variable, sondern zugleich aktiv werden kann durch eigene Operationen (in Java Methoden genannt), die z.b. Nachrichten an andere Objekte versenden oder selbst welche empfangen und darauf reagieren können. Merkmale eines Objektes sind: Attribute (Variablen) Methoden (Operationen, welche Dynamik beschreiben) Weitere wichtige Konzepte der OO-Technik: Vererbung Polymorphie Dynamisches Binden 8-33 Prof. Dr. Bernhard Schiefer

Software-Qualitätssicherung Bei der Betrachtung der Methoden zur Software-Entwicklung stehen oft die frühen Phasen von der Analyse über den Entwurf zur Programmierung im Vordergrund. Ebenso wichtig (und oft noch kostenintensiver) sind die Tätigkeiten zur Überprüfung der Software in Bezug auf stabilen und zuverlässigen Einsatz. Unter Software-Qualitätssicherung (Software-QS) versteht man die Gesamtheit der konstruktiven und analytischen Maßnahmen, um die geforderte Qualität zu erhalten. Die Qualität eines Produkts (auch einer Software) kann nur in Relation zu geforderten Qualitätszielen oder Qualitätsanforderungen überprüft werden, möglichst in quantifizierbarer Form. 8-35 Prof. Dr. Bernhard Schiefer

Software-Qualitätssicherung Daher beginnt der QS-Prozess zu Beginn des Projekts und nicht am Ende nur zur Überprüfung. Solche Anforderungen könnten beispielsweise sein: Die Antwortzeit darf im Normalbetrieb nicht länger als 2 Sekunden betragen, oder Der Speicherbedarf des Gesamtsystems darf im laufenden Betrieb 50 MB Hauptspeicher nicht übersteigen, oder Der Code ist zu 100% C1- getestet. C1 beschreibt ein Testüberdeckungsmaß (jeder Programmzweig wurde im Test mindestens einmal durchlaufen) Diese wenigen Beispiele zeigen bereits die große Bandbreite von Qualitätskriterien. 8-36 Prof. Dr. Bernhard Schiefer

Software-Qualitätssicherung: Maßnahmen Kategorien für mögliche Maßnahmen zur Qualitätssicherung : konstruktive Maßnahmen analytische Maßnahmen Konstruktive Maßnahmen: Qualitätsplan aufstellen mit Qualitäts-Kriterien, entsprechender Relevanz und die daraus abgeleiteten Anforderungen. Zeitplan für Reviews, Inspektionen und sonstige QS-Prüfmaßnahmen erstellen. Richtlinien, Standards aber auch Muster für die zu erstellenden Ergebnisse verbreiten und sicherstellen, dass Entwickler diese auch verwenden. Entwicklungsprozess begleiten, dokumentieren und ggf. Qualitäts- und Zeitplan anpassen. 8-37 Prof. Dr. Bernhard Schiefer

Software-Qualitätssicherung: Maßnahmen Analytische Maßnahmen: Reviews, Inspektionen und sonstige QS-Prüfmaßnahmen durchführen und dokumentieren. Aktionen, die als Ergebnis oben erwähnter Prüfmaßnahmen beschlossen wurden, in Gang setzen und verfolgen bzw. Einhaltung überprüfen. 8-38 Prof. Dr. Bernhard Schiefer