Sie sind auf Seite 1von 28

SOFTWARE ENGINEERING

Einfhrung, Grundbegriffe zum Software Engineering


Prof. Dr.-Ing. habil. Reiner R. Dumke Otto-von-Guericke-Universitt Magdeburg Fakultt fr Informatik, Institut fr Verteilte Systeme AG Softwaretechnik http://ivs.cs.uni-magdeburg.de/sw-eng/agruppe/

R. Dumke, Uni MD, FIN, IVS

1-1

Software Engineering
- Literatur -

weiterhin: Sommerville: Software Engineering Balzert: Software-Entwicklung usw.

R. Dumke, Uni MD, FIN, IVS

1-2

Software Engineering
- Infos im Web http://ivs.cs.uni-magdeburg.de/sw-eng/agruppe/lehre/

R. Dumke, Uni MD, FIN, IVS

1-3

Software Engineering
- Infos im Web -

R. Dumke, Uni MD, FIN, IVS

1-4

Software Engineering
- Web-Untersttzung -

http://se.cs.uni-magdeburg.de

R. Dumke, Uni MD, FIN, IVS

1-5

Software Engineering
- LV-Inhalt -

1.

Grundlagen des Software Engineering

1.1 Einfhrung und grundlegende Begriffe 1.2 Der Software-Lebenszyklus 1.2.1 Die Phasen im Software-Lebenszyklus

R. Dumke, Uni MD, FIN, IVS

1-6

1.1 Grundlegende Begriffe


- Der IEEE Standard -

The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

R. Dumke, Uni MD, FIN, IVS

1-7

1.1 Grundlegende Begriffe


- Fachgebiete -

Broy,Rombach, 2002

R. Dumke, Uni MD, FIN, IVS

1-8

1.1 Grundlegende Begriffe


- Komponenten -

R. Dumke, Uni MD, FIN, IVS

1-9

1.1 Grundlegende Begriffe


- Bedeutung -

aufgelistete Strungen, Schden oder Katastrophen durch Software verursacht:

R. Dumke, Uni MD, FIN, IVS

1-10

1.1 Grundlegende Begriffe


- Software-Produktentwicklung -

Ein Software-Produkt (software product) ist die Gesamtheit von Software-komponenten (Programmen, Dokumentationen, Daten), die als Ganzes entwickelt, vertrieben, angewendet und gewartet werden.

R. Dumke, Uni MD, FIN, IVS

1-11

1.1 Grundlegende Begriffe


- Software-Produktentwicklung -

Standards Masystem Erfahrungen

Anforderungen (requirements)

Prozess (Projekt)

SoftwareProdukt

Ressourcen: Personal Software Hardware

Anwendungsgebiet

R. Dumke, Uni MD, FIN, IVS

1-12

1.1 Grundlegende Begriffe


- Software (-Produkt/-System) -

Anwenderhandbuch Referenz-Handbuch (Demo) Setup-Routinen Tutorials Entwicklerdokumentation - Programme - Qualittsberichte - Test Reports - Charts & Diagramme - nderungsdokumentation - Hilfsprogramme
Produktbeispiele: Freeware Shareware Groupware Componentware Firmware Safeware Middleware Teachware Fatware

R. Dumke, Uni MD, FIN, IVS

1-13

1.1 Grundlegende Begriffe


- Software-Entwicklungsprozess Der Software-Entwicklungsprozess (software development process) ist der gesamte Prozess der Aufgabenstellung, Planung, Realisierung und Bewertung einer Software-/Hardware-Anwendung einschlielich der verwendeten Hilfsmittel und Methoden und dem erforderlichen Personal.

R. Dumke, Uni MD, FIN, IVS

1-14

1.1 Grundlegende Begriffe


- Prozessverlauf ? -

Problem der Erfassung der Kundenwnsche

Problem der Informationsweitergabe bei der Entwicklung

Problem der blichen (zumeist unter Zeitdruck entstandenen) Ergebnisse

R. Dumke, Uni MD, FIN, IVS

1-15

1.1 Grundlegende Begriffe


- Software-Entwicklungsmethoden -

Ein Projekt (project) ist der konkrete Prozess zur Entwicklung eines konkreten Software-Produktes mit den dafr notwendigen Ressourcen.

R. Dumke, Uni MD, FIN, IVS

1-16

1.1 Grundlegende Begriffe


- Software-Prozess-Ressourcen -

Als Ressourcen (resources) fassen wir alle fr die Software-Entwicklung aufgewendeten bzw. aufzuwendenden personellen, Software- und Hardware-Mittel zusammen.

Die Software-Ressourcen fr den Entwicklungsprozess bilden alle programmtechnischen Hilfsmittel und Systeme, die die Entwicklung untersttzen, (teilweise) automatisieren und dokumentieren. Werkzeuge dieser Art bezeichnen wir als CASE-Tools (als Akronym fr Computer-Aided Software Engineering). Die Software-Ressourcen fr das Software-Produkt sind alle Programm- und Dokumentationsbestandteile, die bereits vorhanden sind und durch das Beschaffen (Akquirieren), Bereitstellen, Hinzufgen oder Anpassen in das knftige Produkt mit eingehen. Wir bezeichnen diese Ressourcen als Software-Komponenten (software components).

R. Dumke, Uni MD, FIN, IVS

1-17

1.1 Grundlegende Begriffe


- Software-Prozess-Ressourcen -

R. Dumke, Uni MD, FIN, IVS

1-18

1.1 Grundlegende Begriffe


- Software-Prozess-Ressourcen -

Personal: Analytiker Entwickler Programmierer Tester Administrator

Software: CASE: Computer-Aided Software Engineering vs. Komponenten (COTS, Libraries etc.)

Hardware

R. Dumke, Uni MD, FIN, IVS

1-19

1.1 Grundlegende Begriffe


- Anwendungs-Bereich/-Domne Ein Anwendungsgebiet (application domain) ist ein spezieller wirtschaftlicher oder gesellschaftlicher Bereich mit den dazugehrenden technologischen und soziologischen Strukturen und Prozessen, die durch kulturelle Besonderheiten, ein vorhandenes industrielles Niveau und gesetzliche Regelungen geprgt oder bestimmt sind.

Allgemeines:

Spezifika: Umgebung

(soziale) Gesetze kulturelle Bedingungen Communities

Authentifikation Autorisierung Sicherheit Usability Zuverlssigkeit


R. Dumke, Uni MD, FIN, IVS 1-20

1.1 Grundlegende Begriffe


- Software-Entwicklungs-Standards Ein Standard (standard) im Software Engineering ist eine Regelung bzw. Vorschrift zu einem Aspekt oder einer Komponente der Software-Entwicklung, die von einem speziellen Standardisierungskonsortium herausgegeben wird und Grundlage einer Prfung der Einhaltung oder einer Zertifizierung sein kann.

Community-basierte: Standard-Organisationen: IEEE ANSI (North America) ACM ISO (international) W3C CEN (European) COSMIC DIN (German) GI (Gesellschaft fr Informatik)
R. Dumke, Uni MD, FIN, IVS 1-21

1.1 Grundlegende Begriffe


- Masystem -

Ein Masystem (system of measures) ist eine Menge von Software-Maen, die sich auf alle wesentlichen Aspekte der Software-Entwicklung bezieht und die Bewertung bzw. die damit verbundene Prfung der Einhaltung von Vorgabekriterien gewhrleistet.

Mae aus der Physik: Lnge Gewicht Gre Zeit usw.

Software-Mae: Programmumfang Usability Zuverlssigkeit MTTF Korrektheit

R. Dumke, Uni MD, FIN, IVS

1-22

1.1 Grundlegende Begriffe


- Software-Entwicklungserfahrungen Die Erfahrung (experience) im Bereich der Software-Entwicklung und -Anwendung ist das durch Praxis, Fallstudien und Experimente gewonnene Wissen zur Entwicklung und Anwendung von Software-Produkten einschlielich der dabei zugrunde liegenden Prozesse und verwendeten Ressourcen.

R. Dumke, Uni MD, FIN, IVS

1-23

1.1 Grundlegende Begriffe


- Software-Entwicklungserfahrungen -

Beispiele: Erfahrungsarten: No big bang Daumenregel Frankenstein-Prinzip Trendanalyse Expertise Gesetze Leitlinien No Whiskey (Why in the H isnt Someone Koding everything yet?) Moores Gesetz 1$ Entwicklung kostet 2$ Wartung 1KLOC professionell entwickelte Software enthlt immer noch etwa 3 Fehler

R. Dumke, Uni MD, FIN, IVS

1-24

1.1 Grundlegende Begriffe


- Software-Entwicklungsbersicht -

Anwendungsbereich Gesellschaft Prozess Business IT Produkt

Anforderungen

Resourcen Personal Software (COTS, CASE) Hardware

R. Dumke, Uni MD, FIN, IVS

1-25

1.2 Der Software-Lebenszyklus

Der Software-Lebenszyklus (software life cycle) ist der Prozess der Entwicklung von SoftwareProdukten und kennzeichnet alle Phasen und Stadien dieser Produkte von ihrer Entwicklung, Einfhrung und Wartung bis zu ihrer Ablsung oder Beseitigung.

Eine Lebenszyklus-Phase (life cycle phase) innerhalb des Software-Entwicklungs-, Anwendungs- und Wartungsprozesses ist ein zeitlich begrenzter Abschnitt mit relativ eigenstndigen Ressourcen, fr den eine Anfangssituation und ein bewertbarer Endzustand bestimmt werden knnen.

R. Dumke, Uni MD, FIN, IVS

1-26

1.2.1 Phasen im Software-Lebenszyklus


- Phasenverbindungen und Korrektheit -

Problemdefinition

Problemdefinition

Anwendung/ Wartung

Anforderungsanalyse

Anwendung/ Wartung

Anforderungsanalyse

Erprobung

Spezifikation

Erprobung

Spezifikation

Implementation

Entwurf

Implementation

Entwurf

theoretisch

praktisch

Unter Verifikation (verification) ist die Prfung der Korrektheit einer Entwicklungsphase zu ihrer vorangegangenen zu verstehen. Mit Validation (validation) wird die Prfung der Korrektheit des sich in irgendeiner Entwicklungsphase befindlichen Produktes zu den Anforderungen des Auftraggebers oder Nutzers bezeichnet.

R. Dumke, Uni MD, FIN, IVS

1-27

Fragen, Bemerkungen !!!

R. Dumke, Uni MD, FIN, IVS

1-28

Das könnte Ihnen auch gefallen