software engineering 1 - inso.tuwien.ac.at · swebok. se1 2005w | vorlesung 1 12 ... software...
TRANSCRIPT
SE1 VO Einheit 1
MARIO [email protected][email protected]
WS0506 - 13. Oktober 2005
INSO - Industrial SoftwareInstitut für Rechnergestützte Automation | Fakultät für Informatik | Technische Universität Wien
Software Engineering 1
2SE1 2005W | Vorlesung 1
Agenda
Geschichte2
Risikoelemente3
Definitionen4
Code of Ethics6
Entwicklung der Disziplin5
Herausforderungen in Software Engineering7
Motivation1
3SE1 2005W | Vorlesung 1
Motivation Software Engineering
Geringe Qualität von Software (Ende der 50er)
¬ SOFTWARE-KRISE.
Keine Methoden, um Projekte wiederholbar erfolgreichdurchführen zu können.
2 NATO-Konferenzen 1968 und 1969.
4SE1 2005W | Vorlesung 1
Gescheiterte Projekte
„Software Runaway“ (Glass 1998):▪Projekt mit mind. doppelten Kosten oder doppelter Dauer
„Crunch Mode“ (Boddi 1987):▪Projekt unter massivem Termindruck
„Death March“ (Yourdon 1997):▪Projekt mit nahezu unmöglichen Terminvorgaben
5SE1 2005W | Vorlesung 1
Top Ten Liste der Risikoelemente im SE
Personalmängel
Unrealistische Zeit- und Kostenpläne
Entwicklung der falschen Funktionalität
Unpassende Benutzerschnittstelle
„Vergolden“ eines Systems
Häufige Änderungen der Anforderungen
Qualitätsmängel bei extern vergebenen Komponenten
Qualitätsmängel bei extern vergebenen Aufgaben
Unzureichende Produktionsleistungen
Projektziele an der Grenze des „State-of-the-Art“
6SE1 2005W | Vorlesung 1
Keine Software Krise ?
Robert Glass:
„I do not believe in the existence of a softwarecrisis.“
▪Falsche Statistiken▪Berater und Hersteller von Tools erhalten Mythos▪Keine wirkliche allgemein gültige Definiton von „Gescheitertem
Projekt“ vorhanden
7SE1 2005W | Vorlesung 1
Was ist Software Engineering NICHT ?
Programmierkurs, Programmier-Know-How
AwenderInnen-Kurs
abstrakte Wissenschaft
„A fool with a tool is still a fool“
8SE1 2005W | Vorlesung 1
Software Engineering Definition
Boehm 1979▪ “The practical application of scientific knowledge in the design
and construction of computer programs and the associateddocumentation required to develop, operate, and maintainthem.”
IEEE Computer Society:▪ (1) The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance ofsoftware; that is, the application of engineering to software.▪ (2) The study of approaches as in (1).
11SE1 2005W | Vorlesung 1
Die Profession Software Engineering
Software Engineering Curriculum
Code of Ethics
SWEBOK
12SE1 2005W | Vorlesung 1
Software Engineering Curriculum (1)
Grundlagen der Computertechnologie: Grundlagen der Informatik,Konstruktionstechnologien, Konstruktionswerkzeuge, FormaleKonstruktionsmethoden.
Mathematische & Ingenieurwesen Grundlagen: MathematischeGrundlagen, Ingenieurwesen Grundlagen, WirtschaftlicheGrundlagen des Ingenieurwesens.
Professionelle Praktiken: Gruppendynamik und –psychology,Kommunikationstechniken, Grundlagen einer Profession.
Software Modellierung & Analyse: Grundlagen der Modellierung,Modeltypen, Grundlagen der Analyse, Grundlagen derAnforderungsanalyse, Anforderungsfindung, Spezifikation undDokumentation von Anforderungen, Validierung von Anforderungen.
Software Entwurf: Entwurfskonzepte, Entwurfsstrategien,Architekturentwurf, Entwurf von Anwenderschnittstellen,Detailentwurf, Entwurfswerkzeuge und Evaluierung des Entwurfs.
13SE1 2005W | Vorlesung 1
Software Engineering Curriculum II
Software Verifikation & Validierung: V&V Terminologie undGrundlagen, Reviews, Testen, Anwenderschnittstellen testen undevaluieren, Problemanalyse und –bericht.
Software Evolution: Evolutionsprozess, Evolutionsaktivitäten.
Software Prozess: Prozesskonzepte, Prozessimplementierung.
Software Qualität: Software Qualität Konzepte und Kultur, SoftwareQualität Standards, Software Qualität Prozesse,Prozesssicherung, Produktsicherung.
Software Management: Management Konzepte, Projektplanung,Projekt Personal und Organisation, Projektkontrolle, SoftwareKonfigurationsmanagement.
14SE1 2005W | Vorlesung 1
Software engineers shall commit themselves to
making the analysis, specification, design,
development, testing and maintenance of
software a beneficial and respected profession.
In accordance with their commitment to the
health, safety and welfare of the public,
software engineers shall adhere to the
following Eight Principles:
Code of Ethics (1)
15SE1 2005W | Vorlesung 1
Code of Ethics (2)
1 PUBLIC - Software engineers shall act consistently withthe public interest.
2 CLIENT AND EMPLOYER - Software engineers shall act ina manner that is in the best interests of their client andemployer, consistent with the public interest.
3 PRODUCT - Software engineers shall ensure that theirproducts and related modifications meet the highestprofessional standards possible.
4 JUDGMENT - Software engineers shall maintain integrityand independence in their professional judgment.
16SE1 2005W | Vorlesung 1
Code of Ethics (3)
5 MANAGEMENT - Software engineering managers andleaders shall subscribe to and promote an ethical approach tothe management of software development and maintenance.
6 PROFESSION - Software engineers shall advance theintegrity and reputation of the profession consistent with thepublic interest.
7 COLLEAGUES - Software engineers shall be fair to andsupportive of their colleagues.
8 SELF - Software engineers shall participate in lifelonglearning regarding the practice of their profession and shallpromote an ethical approach to the practice of the profession.
17SE1 2005W | Vorlesung 1
Teilaspekte in Software Engineering
Formale Aspekte in Software Engineering
Technische Aspekte in Software Engineering
Ingenieursaspekte in Software Engineering
Gestalterische Aspekte in Software Engineering
Ökonomische Aspekte in Software Engineering
18SE1 2005W | Vorlesung 1
Was ist ein Software-Entwicklungsprojekt?
Was geschieht in einem Projekt?
Wozu brauche ich einen dokumentierten Software-Entwicklungsprozeß?
Was ist wenigstens erforderlich, um ein vernünftiges Produktzu erstellen?
Was ist der Unterschied zwischen strukturierten undobjektorientierten Ansätzen?
Wie können neue Technologien und Methoden in einenexistierenden Software-Entwicklungsprozeß eingebrachtwerden?
Zentrale Fragen
19SE1 2005W | Vorlesung 1
Ein grundlegendes Modell
AAnalyse
EEntwurf
IImplem.
TTest
Qualitätssicherung QS
Projektmanagement PM
Arbeitsorganisation AO
Produkt
Problem
Betrieb und Wartung
A
QS
E I T
PM
AO
22SE1 2005W | Vorlesung 1
ZeitProjektendeProjektstart
Projektverlauf mit SE Prozessmodellen
Software Engineering
24SE1 2005W | Vorlesung 1
PraktischPraktisch
TheoretischTheoretisch
Gesam
tsicht
Gesam
tsicht
Ori
enti
eru
ng
Ori
enti
eru
ng
au
f a
uf
Pro
gra
mie
run
gP
rog
ram
ieru
ng
Sommerville
Ghezzi
Bruegge
Zuser
Einordnung
25SE1 2005W | Vorlesung 1
Key Challenges in Software Engineering
Heterogeneity Challange
Delivery Challange
Trust Challange
(aus Sommerville 7)
26SE1 2005W | Vorlesung 1
Heterogeneity Challenge
Distributed Systems
Other Applications / EAI
Software / Hardware heterogeneity
Agile System Architechtures
27SE1 2005W | Vorlesung 1
Delivery Challenge
Less time and money for more output
More direct requirement implementation
Business responsive and change quickly
No compromise on quality