software engineering 1. einführung und...
TRANSCRIPT
SoftwareEngineering1.EinführungundBegriffe
Prof.Dr.KlausOstermann
1 SoftwareEngineering
Agenda
SoftwareEngineering2
} Organisatorisches} Begriffsklärung:Softwaretechnik} AufbauderVorlesung
Organisatorisches
SoftwareEngineering3
OrganisationderLV
SoftwareEngineering4
} Umfang:2SWSmit~8Vorlesungen} BegleitendzumTeamprojekt} Termine:
} VL:Mi14.15–15.45Uhrhier} Klausur:27.06.2018,14:00Uhr,HörsaalN6
} Scheinkriterien} Abschlussklausur} MusszumAbschlussdesProgrammierprojektsbestandenwerden} FliesstindieNoteein(Detailsfolgen)
} HomepagederLV:} http://ps.informatik.uni-tuebingen.de/teaching/ss18/se/
KopienderFolien,Literaturhinweise,...
Lehrveranstaltungsstil
SoftwareEngineering5
} KonzeptvermittlungdurchFolien} FolienkopiensindaufderHomepageverfügbar,Abweichungen(insb.Korrekturen)sindmöglich
} BeispielehäufiganderTafel} ZwischenfragenundKommentarewährendderVorlesungsindgrundsätzlicherwünscht.
} „EinsatzinderPraxis“imPraktikum} GastvorträgevonhochkarätigenDozentenausderIndustrie
} KommenSiezurVorlesung!} UndwerdenSienichtzurBelastungfürIhreTeampartner
Inhalt
SoftwareEngineering6
} SoftwareEngineering:} Systeme,Projekte,Fachgebiet
} Vorgehens-undProzessmodelle} Anforderungsanalyse} Softwareentwurf:ModellierenvonSoftwaresystemen} Systementwurf:
} SW-Architekturen,EntwurfsmusterundKomponenten} OO-KonzeptefürFortgeschrittene} Software-Qualitätssicherung:
} speziellTestenvonSoftwaresystemen} Projektmanagement
BegriffeundKontext
SoftwareEngineering7
Vorgehen?
SoftwareEngineering8
} WoherkommtdieProblembeschreibung?} BeschreibtsiewirklichdasProblemdesNutzers?} WelcheStruktursolldasfertigeProgrammhaben?} LöstdasProgrammwirklichdasProblem?Funktionierteskorrekt?
} WaspassiertmitneuenAnforderungendesBenutzers?} WieteiltmandieArbeitbeimehrerenEntwicklern?
ProblembeschreibungeinesBenutzers
Programmierer FertigesProgram
Softwaretechnik(engl.SoftwareEngineering)
SoftwareEngineering9
} EtabliertesTeilgebietderInformatik} Anforderungsanalsyse} EntwurfundEntwicklungvonSoftware,undWerkzeugedafür} OrganisationundStrukturierungderEntwicklung,Projektmanagement
} Qualitätssicherung} BetriebundWartungvonSystemen} uvm.
Software-Krise
SoftwareEngineering10
} Mitte1960erJahre} MitschnellererHardwarewurdeSoftwarewichtiger} SteigendeAnforderungen,aber
} QualifiziertesPersonalfehlte} Softwareentwicklungdurch“Bastelei”} Softwarewarunzuverlässig,ständigeWartung} BestehendeSystemeintransparentundunübersichtlich,kaumänderbar
} KostenundDauerüberstiegenErwartungen} Anforderungenoftnichterfüllt
} SoftwarekostenüberstiegenHardwarekosten} GroßeSoftwareprojektescheiterten
Software-KriseII
DieSoftware-Krisevonmorgen
SoftwareEngineering12
FehlgeschlageneSoftwareprojekte(Beispiele)
SoftwareEngineering13
} SAGE-Systemvon1951zurAufspürungvonBombern;beiInbetriebnahme1963überflüssig;neueGefahrRaketen
} TollCollect:GeplanterStart31.Aug2003,tatsächlicherStart1.Jan2006;3.5MilliardenEUREinnahmeausfälle
} KaliforniensFührerscheinstellestopptProjektnach6Jahrenund45M$
} FBIVirtualCaseFilein2005gestoppt,nach3Jahrenund170M$
} LondonerBörsebeendetTaurusProjekt1993nach11JahrenundBudgetüberschreitungum13200%(800M£)
ExtremeKomplexität(Beispiel)
SoftwareEngineering14
} DDXU-Boot} VieleeingebetteteSysteme} Zusammen30.000.000.000ZeilenCode(Schätzung)} In142Programmiersprachen
Woranliegtes?
SoftwareEngineering15
} unzureichendspezifizierteAnforderungen} häufigesÄndernderAnforderungenwährenddesProjekts
} MangelanRessourcen} inkompetenteMitarbeiter} wenigBenutzer-Einbeziehung} fehlendeUnterstützungdurchdasManagement} zugroßeErwartungen} falscheSchätzungderZeit/Kosten} Managementfehler} ObsoleteProjekte(inzwischenbessereLösungen)
Kommunikation?
SoftwareEngineering16
Engineering?
DerNeidaufdieIngenieure…} Autoproduktion
} KalkulierbareKostenundRisiken} VorhersehbaresErgebnis} HoheQualität
} Softwareproduktion} Kostenkönnennichtzuverlässigvorhergesagtwerden} VieleProjekteendenwährendoderkurznachderProduktionalsFehlschlag
} QualitätssicherungsmaßnahmengarantierenkeinequantifizierbareQualität
• KlareTrennungzwischenPlanungundProduktioneinesProdukts• QualitätskontrolledurchMessungen• MöglichkeitderAutomatisierung,„Industrialisierung“
SoftwaretechnikalsLösungsidee
SoftwareEngineering19
} Begriff1968geprägt} SystematischesHerangehen} PublikationvonbewährtemVorgehenundErfahrung} Entwurf,Teile-und-Herrsche} Wiederverwendung} Qualitätssicherung
} Begriff“SoftwareEngineering”provokativgewählt
SoftwareEngineering:„TheEstablishmentanduseofsoundengineeringprinciplesinordertoobtaineconomicallysoftwarethatisreliableandworksefficientlyonrealmachines.”[Bauer1975,S.524]
SoftwaretechnikinderInformatik
Informatik(computerscience)
Softwaretechnik(softwareengineering)
SoftwareEngineering20
} TheorienundMethodenfürComputerundSoftwaresysteme
} PraktischeErstellungvonSoftware
GrundlageundFundierung
SoftwareEngineering=Engineering?
SoftwareEngineering21
Software=Design=Plan!ProgrammierenistEntwerfen,nichtProduktionSimulationvonSoftwareistnichtnotwendig.AgileTechnikensindmöglich,“Wasserfallmodell”istnichtadäquat
Ingenieursprodukt Software§ ProduktisteinphysikalischesObjekt§ GebautdurchMenschenundWerkzeuge§ Konstruktion
§ istteuer§ erfordertArbeitundMaterial§ istlangsam§ teuerzuwiederholen
§ PräziseMessungderQualität
§ DasProduktistdaslaufendeProgramm§ KonstruktiondurchBetriebssystem§ Konstruktion
§ istextrembillig§ automatisch,keinMaterialeinsatz§ sehrschnell§ leichtzuwiederholen
§ WenigsinnvolleMetrikenzurMessung
Requirements
Design
Product
Designing
Building
Schlussfolgerungen
AufbauderVorlesung
SoftwareEngineering22
AufbauderVorlesung
SoftwareEngineering23
} 1.Anforderungsanalyse} WaswillderKunde?} EntwickelnwirdasRichtige?
} 2.Vorgehensmodelle} WieplantmandasVorgehen?} WiegehtmanaufgeänderteAnforderungenein?} ZumBeispiel:WannundwieTesten?
} 3.TeamworkundProjektmanagement} Versionsverwaltung:TechnischeZusammenarbeit} Projektmanagement:Arbeitsteilung,Zeitplanung} Risikomanagement
AufbauderVorlesungII
SoftwareEngineering24
} 4.SoftwaretechnikimKleinen} WartbarerQuelltext} Modellierung,UML} Entwurfsmuster,TrennungvonBelangen} Refactoring
} 5.SoftwaretechnikimGroßen} Systementwurf,Modellierung} Modularität
} 6.Qualitätssicherung} Metriken} Testen} JenseitsvonTesten
Literatur
SoftwareEngineering25
} VieleSoftwaretechnikbücheraufdemMarkt,z.B.} SoftwareEngineering.IanSommerville.Addison-WesleyPubCo
} KeinekonkreteEmpfehlungfürdiegesamteVorlesung} ZujedemAbschnittweiterführendeLiteratur