Software Engineering Die Entwicklung von Software mit professionellen Methoden

Soft­ware Engi­nee­ring ist die Dis­zi­plin, die ver­schie­de­ne Teil­be­rei­che zur Ent­wick­lung von Soft­ware­sys­te­men beschreibt.

Wo kann ich Sie unter­stüt­zen?
Falls Ihr Soft­ware­pro­jekt auf­ge­setzt oder gestar­tet wer­den muss, so steht kann ich mein Know-how rund um die Ent­wick­lung von Soft­ware­sys­te­men ein­brin­gen, ins­be­son­de­re was den kon­kre­ten Ein­satz von Vor­ge­hens­mo­del­len oder den Ein­satz von Sys­tem-Model­lie­run­gen (bei­spiels­wei­se mit der BPMN oder der → UML) anbe­trifft.

1. Einleitung und Grundlagen

Hier wer­den zunächst eini­ge Defi­ni­tio­nen zur Soft­ware­ent­wick­lung vor­ge­stellt. Der Begriff Soft­ware­ent­wick­lung wird zumeist durch den (über­ge­ord­ne­ten) Begriff Soft­ware­tech­nik ersetzt, da die Soft­ware­ent­wick­lung (zunächst) kei­ne (sys­te­ma­ti­sche) Vor­ge­hens­wei­se vorgibt.

1.1 Definition Softwaretechnik

Bei Bal­zert wird defi­niert /Balzert08/:
“Die Soft­ware­tech­nik beschäf­tigt sich mit der ziel­ori­en­tier­ten Bereit­stel­lung und sys­te­ma­ti­schen Ver­wen­dung von Prin­zi­pi­en, Metho­den und Werk­zeu­gen für die arbeits­tei­li­ge, inge­nieur­mä­ßi­ge Ent­wick­lung und Anwen­dung von umfang­rei­chen Softwaresystemen.” 

Die Soft­ware­tech­nik umfasst eine gro­ße Anzahl von Teil­ge­bie­ten (auch aus ande­ren Dis­zi­pli­nen), die auf die­ser Web­site vor­ge­stellt wer­den, wie das → Geschäfts­pro­zess­ma­nage­ment, das → Pro­jekt­ma­nage­ment oder auch das → Requi­re­ments Engi­nee­ring.

1.2 Generelles Vorgehen in der Softwaretechnik

In der Soft­ware­tech­nik wird in der Regel das Vor­ge­hen anhand der vier Prozessschritte …

  • Ana­ly­se,
  • Design,
  • Ent­wick­lung / Imple­men­tie­rung und
  • Test

beschrie­ben. Fügt man noch die Pro­jekt­in­iti­ie­rung und das Deploy­ment / den Betrieb hin­zu, so ergibt sich bereits ein Gesamt­bild (Abbil­dung 1.1) für das Vor­ge­hen bei der Erstel­lung von Software.

Von der Analyse zum Betrieb, (C) Peterjohann Consulting, 2006-2024

Abbil­dung 1.1: Von der Ana­ly­se zum Betrieb

1.3 Die Softwaretechnik und Softwareprojekte

Bei Pro­jekt wird häu­fig das “→ magi­sche Drei­eck des Pro­jekt­ma­nage­ments” ein­ge­setzt, um den Zusam­men­hang von Leis­tung, → Dau­er und Kos­ten zu visua­li­sie­ren. Durch Auf­tei­len der Leis­tung in → Qua­li­tät und Quan­ti­tät ergibt sich das “Teu­fels­qua­drat nach Sneed” (Abbil­dung 1.2).

Das Teufelsquadrat nach Sneed, (C) Peterjohann Consulting, 2006-2024

Abbil­dung 1.2: Das Teu­fels­qua­drat nach Sneed

2. Vorgehensmodelle

Vor­ge­hens­mo­del­le defi­nie­ren die Her­an­ge­hens- und Bear­bei­tungs­wei­se an ein → Pro­blem (zur Erstel­lung eines Soft­ware­sys­tems). Je nach Grö­ße oder Schwie­rig­keits­grad wer­den bei der Soft­ware­tech­nik unter­schied­li­che Vor­ge­hens­mo­del­le ver­wen­det – fol­gen­de Soft­ware-Vor­ge­hens­mo­del­le sind in der Pra­xis zu finden:

  • Das → Was­ser­fall­mo­dell
  • Das → V‑Modell (in der neu­es­ten Fas­sung XT)
  • Inkre­men­tel­le Modelle
  • Ite­ra­ti­ve Model­le (wie RUP)
  • Evo­lu­tio­nä­re Modelle
  • Model­le unter Ein­satz agi­ler Methoden

In der kon­kre­ten Umset­zung fin­den Sie dann wie­der­um Misch­for­men aus den Vor­ge­hens­mo­del­len, ange­rei­chert mit Spe­zi­al­merk­ma­len und oft­mals wie­der­um mit eige­nen Begriff­lich­kei­ten ver­se­hen (aspekt­ori­en­tiert, OO-Modelle).

Ein (ein­fa­ches) Was­ser­fall­mo­dell ist in Abbil­dung 2.1 dar­ge­stellt. Es wer­den fünf Ein­zel­schrit­te nach­ein­an­der durch­lau­fen, begin­nend mit der Ana­ly­se und endend mit dem Betrieb.

Das Wasserfallmodell, (C) Peterjohann Consulting, 2006-2024

Abbil­dung 2.1: Das Wasserfallmodell

Wel­ches Vor­ge­hens­mo­dell ist nun am bes­ten ein­zu­set­zen? Die­se Fra­ge kann nur bei der Betrach­tung der Auf­ga­ben­stel­lung beant­wor­tet wer­den. Wäh­rend bei gro­ßen kom­ple­xen Sys­te­men ohne­hin umfang­reich doku­men­tiert wer­den muss, ist eine Steue­rung über die Doku­men­te sinn­voll – hier bie­ten sich dann das → Was­ser­fall- (rein sequen­ti­ell) oder das V‑Modell (sequen­ti­ell mit Inkre­men­ten) an.

Zeit und Tätigkeiten bei einigen Vorgehensmodellen, (C) Peterjohann Consulting, 2006-2024

Abbil­dung 2.2: Zeit und Tätig­kei­ten bei eini­gen Vorgehensmodellen

Grad der Formalisierung bei Vorgehensmodellen, (C) Peterjohann Consulting, 2006-2024

Abbil­dung 2.3: Grad der For­ma­li­sie­rung bei Vorgehensmodellen

In Abbil­dung 2.4 sind ver­schie­de­ne Vor­ge­hens­mo­del­le in Bezug zu den Anfor­de­run­gen gesetzt.

Vorgehensmodelle und Anforderungen, (C) Peterjohann Consulting, 2006-2024

Abbil­dung 2.4: Vor­ge­hens­mo­del­le und Anfor­de­run­gen (nach /Ebert19/)

3. Softwarearchitektur

Die → Soft­ware­ar­chi­tek­tur eines Soft­ware­sys­tems ist ent­schei­dend für die Lauf­fä­hig­keit und Akzep­tanz eines Sys­tems. Nur “gute Soft­ware­ar­chi­tek­tu­ren” tra­gen ein Sys­tem durch den gesam­ten Lebenszyklus.

Nach /Gharbi16/ kann der Archi­tek­tur­ent­wurf in vier gleich­be­rech­tig­ten Tätig­kei­ten erfol­gen, die nicht unbe­dingt hin­ter­ein­an­der, son­dern jeder­zeit durch­ge­führt können:

  1. Anfor­de­run­gen und Rand­be­din­gun­gen analysieren
  2. Archi­tek­tur­sich­ten und tech­ni­sche Kon­zep­te entwerfen
  3. Archi­tek­tur- und Ent­wurfs­ent­schei­dun­gen bewerten
  4. Umset­zung beglei­ten und → prü­fen

4. Testen von Softwaresystemen

Ein erheb­li­cher Teil des Gesamt­auf­wands zur Erstel­lung von Soft­ware wird für das → Tes­ten ver­wen­det: Unter­su­chun­gen gehen von 20 bis 50 % des Gesamt­auf­wands aus. Daher soll­te ein sys­te­ma­ti­sches Vor­ge­hen für das Tes­ten von Soft­ware / den → Soft­ware­test selbst­ver­ständ­lich sein, denn nur so kann der ein gutes Kos­ten-Nut­zen-Ver­hält­nis gewähr­leis­tet werden.

Die Beschrei­bung des Soft­ware­tests erfolgt hier auf einer eige­nen Webseite.

A. Präsentationen, Literatur und Weblinks

A.1 Meine öffentliche SE-Präsentation

Inhalt Ver­si­on Stand Sei­ten Grö­ße Typ
Requi­re­ments Engi­nee­ring: Spe­zi­fi­ka­tio­nen – Eine Übersicht
1.50 12/2016 44 0,3 MB pdf

A.2 Literatur

Alle Bücher zum Soft­ware Engi­nee­ring / zur Soft­ware­tech­nik auf­zu­füh­ren wür­de zu einer sehr lan­gen → Lis­te füh­ren; daher wer­den hier nur eini­ge “Stan­dard­wer­ke” genannt.

  1. /Balzert08/ Hel­mut Bal­zert: Lehr­buch der Soft­ware­tech­nik: Soft­ware­ma­nage­ment, Spek­trum Aka­de­mi­scher Ver­lag, Hei­del­berg 2. Auf­la­ge 2008, ISBN 978–3‑8274–1161‑7
  2. /Balzert09/ Hel­mut Bal­zert: Lehr­buch der Soft­ware­tech­nik: Basis­kon­zep­te und Requi­re­ments Engi­nee­ring, Spek­trum Aka­de­mi­scher Ver­lag, Hei­del­berg 3. Auf­la­ge 2009, ISBN 978–3‑8274–1705‑3
  3. /Balzert11/ Hel­mut Bal­zert: Lehr­buch der Soft­ware­tech­nik: Ent­wurf, Imple­men­tie­rung, Instal­la­ti­on und Betrieb, Spek­trum Aka­de­mi­scher Ver­lag, Hei­del­berg 3. Auf­la­ge 2011, ISBN 978–3‑8274–1706‑0
  4. /Broy21/ Man­fred Broy, Mar­co Kuhr­mann: Ein­füh­rung in die Soft­ware­tech­nik, Sprin­ger, Ber­lin 2021, ISBN 978–3‑662–50262‑4
  5. /Ebert19/ Chris­tof Ebert: Sys­te­ma­ti­sches Requi­re­ments Engi­nee­ring. Anfor­de­run­gen ermit­teln, doku­men­tie­ren, ana­ly­sie­ren und ver­wal­ten, dpunkt, Hei­del­berg 6. Auf­la­ge 2019, ISBN 978–3‑86490–562‑9
  6. /Krypczyk21/ Veik­ko Kryp­c­zyk, Ele­na Bochkor: Hand­buch für Soft­ware­ent­wick­ler: Das Stan­dard­werk für pro­fes­sio­nel­les Soft­ware Engi­nee­ring, Rhein­werk, Bonn 2. Auf­la­ge 2021, ISBN 978–3‑8362–7977‑2
  7. /Ludewig13/ Jochen Lude­wig, Horst Lich­ter: Soft­ware Engi­nee­ring. Grund­la­gen, Men­schen, Pro­zes­se, Tech­ni­ken, dpunkt, Hei­del­berg 3. Auf­la­ge 2013, ISBN 978–3‑864–90092‑1
  8. /Ludewig23/ Jochen Lude­wig, Horst Lich­ter: Soft­ware Engi­nee­ring. Grund­la­gen, Men­schen, Pro­zes­se, Tech­ni­ken, dpunkt, Hei­del­berg 4. Auf­la­ge 2022, ISBN 978–3‑86490–598‑8
  9. /Metzner20/ Anja Metz­ner: Soft­ware-Engi­nee­ring – kom­pakt, Han­ser, Mün­chen 2020, ISBN 978–3‑446–45949‑6
  10. /Moore06/ James W. Moo­re: The Road Map to Soft­ware Engi­nee­ring: A Stan­dards-Based Gui­de, John Wiley & Sons, Hobo­ken, New Jer­sey 2006, ISBN 978–0‑471–68362‑9
  11. /Pressman19/ Roger Press­man, Bruce Maxim: ISE Soft­ware Engi­nee­ring. A Practitioner’s Approach, McGraw-Hill Edu­ca­ti­on, New York 9th Edi­ti­on 2019, ISBN 978–1‑260–54800‑6
  12. /Sommerville15/ Ian Som­mer­ville: Pear­son Edu­ca­ti­on, Lon­don, 10th Edi­ti­on 2015, ISBN 978–1‑292–09613‑1
  13. /Sommerville18/ Ian Som­mer­ville: Soft­ware Engi­nee­ring , Pear­son Stu­di­um, Mün­chen 10. Auf­la­ge 2018, ISBN 978–3‑86894–344‑3
  14. /Sommerville19/ Ian Som­mer­ville: Engi­nee­ring Soft­ware Pro­ducts: An Intro­duc­tion to Modern Soft­ware Engi­nee­ring, Pear­son, Lon­don 2019, ISBN 978–0‑13–521064‑2
  15. /Sommerville20/ Ian Som­mer­ville: Moder­nes Soft­ware-Engi­nee­ring: Ent­wurf und Ent­wick­lung von Soft­ware­pro­duk­ten, Pear­son Stu­di­um, Mün­chen 2020, ISBN 978–3‑86894–396‑2
  16. /SWEBOK14/ Pierre Bour­que, Richard E. Fair­ley: Gui­de to the Soft­ware Engi­nee­ring Body of Know­ledge, IEEE Com­pu­ter Socie­ty Press, Los Ala­mi­tos, Cali­for­nia 3rd Edi­ti­on 2014, ISBN 978–0‑7695–2330‑9
  17. /Winter05/ Mario Win­ter: Metho­di­sche objekt­ori­en­tier­te Soft­ware­ent­wick­lung: Eine Inte­gra­ti­on klas­si­scher und moder­ner Ent­wick­lungs­kon­zep­te, dpunkt, Hei­del­berg 2005, ISBN 978–3‑89864–273‑6

A.2.1 Literatur zum Schätzen und Messen von Software(projekten)

Nach­dem das → Schät­zen und Mes­sen in den 80er Jah­ren nicht die erhoff­ten Erfol­ge brach­te, erlebt die­ses Gebiet seit eini­gen Jah­ren wie­der eine Renais­sance. Hier sind daher eini­ge Bücher aufgeführt.

  1. /Bundschuh04/ Man­fred Bund­schuh, Axel Fabry: Auf­wand­schät­zung von IT-Pro­jek­ten, mitp, Bonn 2. Auf­la­ge 2004, ISBN 978–3‑8266–0864‑3
  2. /Bundschuh08/ Man­fred Bund­schuh, Carol Dek­kers: The IT Mea­su­re­ment Com­pen­di­um: Esti­mat­ing and Bench­mar­king Suc­cess with Func­tion­al Size Mea­su­re­ment, Sprin­ger, Hei­del­berg 2008, ISBN 978–3‑540–68187‑8
  3. /Cohn05/ Mike Cohn: Agi­le Esti­mat­ing and Plan­ning, Pren­ti­ce Hall Inter­na­tio­nal, Upper Sadd­le River, New Jer­sey 2005, ISBN 978–0‑13–147941‑8
  4. /DeMarco08/ Tom DeMar­co: Was man nicht mes­sen kann … kann man nicht kon­trol­lie­ren, mitp, Bonn 2. Auf­la­ge 2008, ISBN 978–3‑8266–1488‑0
  5. /Ebert04/ Chris­tof Ebert, Rei­ner Dum­ke, Man­fred Bund­schuh, Andre­as Schmie­ten­dorf: → Best Prac­ti­ces in Soft­ware Mea­su­re­ment: How to Use Metrics to Impro­ve Pro­ject and Pro­cess Per­for­mance, Sprin­ger, Hei­del­berg 2004, ISBN 978–3‑540–20867‑9
  6. /Ebert07/ Chris­tof Ebert, Rei­ner Dum­ke: Soft­ware Mea­su­re­ment: Estab­lish, Extra­ct, Eva­lua­te, Exe­cu­te, Sprin­ger, Ber­lin 2007, ISBN 978–3‑540–71648‑8
  7. /Hummel11/ Oli­ver Hum­mel: Auf­wands­schät­zun­gen in der Soft­ware- und Sys­tem­ent­wick­lung kom­pakt, Spek­trum Aka­de­mi­scher Ver­lag, Hei­del­berg 2011, ISBN 978–3‑8274–2751‑9
  8. /Hürten04/ Robert Hür­ten: Func­tion-Point Ana­ly­sis – Theo­rie und Pra­xis. Die Grund­la­ge für moder­nes Soft­ware­ma­nage­ment, Expert Ver­lag, Renn­in­gen 2004, ISBN 978–3‑8169–2398‑5
  9. /McConnell06/ Ste­ve McCon­nell: Auf­wand­schät­zung bei Soft­ware­pro­jek­ten, Micro­soft Press, Mün­chen 2006, ISBN 978–3‑86645–612‑9
  10. /Parthas07/ M. A. Par­tha­sa­ra­thy: Prac­ti­cal Soft­ware Esti­ma­ti­on. Func­tion Point Methods for Insour­ced and Out­sour­ced Pro­jects, Addi­son-Wes­ley Long­man, Bos­ton, Mas­sa­chu­setts 2007, ISBN 978–0‑321–43910‑9
  11. /Plewan11/ Hans-Jür­gen Ple­wan, Ben­ja­min Poens­gen: Pro­duk­ti­ve Soft­ware­ent­wick­lung: Bewer­tung und Ver­bes­se­rung von Pro­duk­ti­vi­tät und Qua­li­tät in der Pra­xis, dpunkt, Hei­del­berg 2011, ISBN 978–3‑89864–686‑4
  12. /Poensgen12/ Ben­ja­min Poens­gen: Die Func­tion-Point-Ana­ly­se. Ein Pra­xis­hand­buch, dpunkt, Hei­del­berg 2. Auf­la­ge 2012, ISBN 978–3‑89864–762‑5

A.2.2 Literatur zur Softwarearchitektur

  1. /Gharbi16/ Mah­bou­ba Ghar­bi, Arne Koschel, Andre­as Rausch, Ger­not Star­ke: Basis­wis­sen für Soft­ware­ar­chi­tek­ten. Ein Über­blick, dpunkt, Hei­del­berg 2. Auf­la­ge 2016, Art-Nr. 077.95735
  2. /Gharbi20/ Mah­bou­ba Ghar­bi, Arne Koschel, Andre­as Rausch, Ger­not Star­ke: Basis­wis­sen für Soft­ware­ar­chi­tek­ten. Aus- und Wei­ter­bil­dung nach iSAQB-→ Stan­dard zum Cer­ti­fied Pro­fes­sio­nal for Soft­ware Archi­tec­tu­re – Foun­da­ti­on Level, dpunkt, Hei­del­berg 4. Auf­la­ge 2020, ISBN 978–3‑86490–781‑4
  3. /Hruschka17/ Peter Hrusch­ka, Ger­not Star­ke: Knig­ge für Soft­ware­ar­chi­tek­ten – Rel­oa­ded, entwickler.press, Frank­furt 3. Auf­la­ge 2017, ISBN 978–3‑86802–806‑5
  4. /Lilienthal20/ Caro­la Lili­en­thal: Lang­le­bi­ge Soft­ware-Archi­tek­tu­ren. Tech­ni­sche Schul­den ana­ly­sie­ren, begren­zen und abbau­en, dpunkt, Hei­del­berg 3. Auf­la­ge 2020, ISBN 978–3‑86490–729‑6
  5. /Starke22/ Ger­not Star­ke, Peter Hrusch­ka: arc42 in Akti­on. Prak­ti­sche Tipps zur Archi­tek­tur­do­ku­men­ta­ti­on, Han­ser, Mün­chen 2. Auf­la­ge 2022, ISBN 978–3‑44646380–6
  6. /Toth20/ Ste­fan Toth: Vor­ge­hens­mus­ter für Soft­ware­ar­chi­tek­tur. Kom­bi­nier­ba­re Prak­ti­ken in Zei­ten von → Agi­le und Lean. Ide­al für das ISAQB Modul AGILA, Han­ser, Mün­chen 2. Auf­la­ge 2020, ISBN 978–3‑446–46004‑1
  7. /Zörner15/ Ste­fan Zör­ner: Soft­ware­ar­chi­tek­tu­ren doku­men­tie­ren und kom­mu­ni­zie­ren. Ent­wür­fe, Ent­schei­dun­gen und Lösun­gen nach­voll­zieh­bar und wir­kungs­voll fest­hal­ten, Han­ser, Mün­chen 2. Auf­la­ge 2015, ISBN 978–3‑446–44348‑8

A.2.3 Literatur zum Softwaretest / Testen von Software(projekten)

Dem Tes­ten kommt in der Soft­ware­ent­wick­lung eine enor­me Bedeu­tung zu. Aus der Viel­zahl der Bücher zu die­sem Gebiet hier eine Auswahl.

  1. /Crispin08/ Lisa Crispin, Janet Gre­go­ry: Agi­le Test­ing: A Prac­ti­cal Gui­de for Tes­ters and Agi­le → Teams, Addi­son-Wes­ley Long­man, Ams­ter­dam 2008, ISBN 978–0‑321–53446‑4
  2. /Crispin14/ Lisa Crispin, Janet Gre­go­ry: More Agi­le Test­ing: Lear­ning Jour­neys for the Who­le Team, Addi­son-Wes­ley Long­man, Ams­ter­dam 2014, ISBN 978–0‑321–96705‑3
  3. /Linz16/ Tilo Linz: Tes­ten in → Scrum-Pro­jek­ten. Leit­fa­den für Soft­ware­qua­li­tät in der agi­len Welt. Aus- und Wei­ter­bil­dung zum → ISTQB Cer­ti­fied Agi­le Tes­ter – Foun­da­ti­on Exten­si­on, dpunkt, Hei­del­berg 2. Auf­la­ge 2016, ISBN 978–3‑86490–414‑1
  4. /Spillner17/ Andre­as Spill­ner, Mario Win­ter, Andrej Pietsch­ker: Test, Ana­ly­se und Veri­fi­ka­ti­on von Soft­ware – ges­tern, heu­te, mor­gen, dpunkt, Hei­del­berg 2017, ISBN 978–3‑86490–470‑7
  5. /Spillner19/ Andre­as Spill­ner, Tilo Linz: Basis­wis­sen Soft­ware­test: Aus- und Wei­ter­bil­dung zum Cer­ti­fied Tes­ter – Foun­da­ti­on Level nach IST­QB-Stan­dard, dpunkt, Hei­del­berg 6. Auf­la­ge 2019, ISBN 978–3‑86490–583‑4
  6. /Stauffer13/ Her­bert Stauf­fer, Beat Hon­eg­ger, Hans­pe­ter Gisin: Tes­ten von Data-Warehouse- und Busi­ness-Intel­li­gence-Sys­te­men: Vor­ge­hen, Metho­den und Kon­zep­te, dpunkt, Hei­del­berg 2013, ISBN 978–3‑86490–072‑3
  7. /Thaller02/ Georg Erwin Thal­ler: Soft­ware-Test: Veri­fi­ka­ti­on und Vali­da­ti­on, Hei­se, Han­no­ver 2. Auf­la­ge 2002, ISBN 978–3‑88229–198‑8

A.3 Weblinks

Fol­gen­de Web­links lie­fern wei­te­re hilf­rei­che Infor­ma­tio­nen zum Soft­ware Engineering:

Legen­de zu den Weblinks
/ / Ver­weis auf eine Web­site (all­ge­mein)
/*/ Ver­weis auf eine Web­site, die als Ergän­zung zu einem Buch dient
/#/ Ver­weis auf ein ein­zel­nes The­ma auf einer Website
/#V/ Ver­weis auf ein Video auf einer Website