Sie sind hier
E-Book

111 Thesen zur erfolgreichen Softwareentwicklung

Argumente und Entscheidungshilfen für Manager. Konzepte und Anleitungen für Praktiker

AutorRainer Gerlich
VerlagSpringer-Verlag
Erscheinungsjahr2006
Seitenanzahl522 Seiten
ISBN9783540273448
FormatPDF
KopierschutzDRM
GerätePC/MAC/eReader/Tablet
Preis52,99 EUR
Ziel dieses Buches ist es, Managern Argumente und Entscheidungshilfen für die Einführung effizienter Techniken der Softwareentwi- lung zu geben, und Praktiker von der Notwendigkeit effizienter Softwaree- wicklung zu überzeugen und Wege zur erfolgreichen - wendung aufzuzeigen. Unter 'effizienter Softwareentwicklung' verstehen wir die - setzung von Anforderungen in 'qualitativ hochwertige' Software zu 'angemessenem' Preis innerhalb 'angemessener' Zeit. 'Qualitativ hochwertig' steht für fehlerfrei, zuverlässig, robust und voll den Anforderungen entsprechend. Unter 'angemessen' verstehen wir minimale Komplexität bei voller Abdeckung der - forderungen, bezahlbar und kurzfristig verfügbar. Im ersten Teil dieses Buches (Kap. 2 - 5) führen wir den Leser hin zum 'automatischen Softwareproduktionsprozess', durch P- sentation von Thesen und Analysen. Anleitungen und Beispiele folgen im zweiten Teil (Kap. 6 und 7). Wir schließen mit Betra- tungen zur gesellschaftspolitischen Relevanz einer Technologie, die auf Automation beruht (Kap. 8). Wie in anderen Bereichen, in denen Automation bereits an- wendet wird, haben automatische Softwareproduktionsprozesse Einfluss auf die Arbeitsplätze. Präziser ausgedrückt, es fallen - stimmte Arten von Arbeitsplätzen weg, während andere entstehen. Für Manager und Entwickler, aber auch Ausbilder, ist es wichtig, sich frühzeitig auf die Möglichkeiten und Folgen dieser Technologie einzustellen. Zur Zeit wird durch 'Outsourcing', 'Nearshoring' oder 'Offs- ring' versucht, die Softwareentwicklungskosten zu senken. 'Au- mation' in der Softwareentwicklung geht darüber hinaus. Nicht nur Kosten sinken, auch Entwicklungszeit und -risiken, die Flexibilität ? Vorwort VII ? ? erhöht sich, und Know-how muss nicht nach außen weitergegeben werden.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
3.2 Professionelle Softwareentwicklung – die Herausforderung (S.91)

Software entwickeln kann jeder, so könnte man denken. Man kauft sich einen Computer, besorgt sich (eventuell sogar kostenlos) einen Compiler, und schon kann man ein Programm entwickeln. Mit den heute zur Verfügung stehenden Ressourcen für CPU und Speicher werden weder Programmgröße noch Komplexität Grenzen gesetzt.

Bei der Fertigung von Hardware dagegen werden Hilfsmittel benötigt, die nicht leicht zu beschaffen sind und auch spezielle Vorrichtungen für die Benutzung erfordern. Zum Bau von Möbeln werden bereits Werkzeuge benötigt, die sachgemäße Bedienung und Vorkenntnisse erfordern.

Zwar kann die sich jeder – je nach Geschick – aneignen, aber man erkennt schnell, dass ohne Übung kein professionelles Ergebnis entsteht. Bei Hardware erkennt man schnell Mängel, funktionale – wenn ein Stuhl wackelt oder kippt, und nicht-funktionale – wenn er zu schwach ist oder die Lackierung fehlerhaft ist.

Dagegen verhält sich Software wie ein Gas

- denn sie nimmt jeden verfügbaren Raum ein, Zeit und Geld, Speicher und Rechnerleistung

- denn sie ist unsichtbar, wir können ihre Eigenschaften nicht sehen wie eine Chemikalie

- denn bei unsachgemäßer Handhabung kommt es zur Katastrophe, die Eigenschaften der verwendeten Substanz und ihre Wirkung sind unbekannt

Mit diesen für die Entwickler so problematischen Eigenschaften haben wir bei der Entwicklung von Software zu kämpfen. Während wir für Hardware "Sensoren" wie Augen, Nase, Ohren und Tastsinn haben, fehlen uns die geeigneten Sensoren für Software. Die Eigenschaften von Software, die positiven und die negativen – wie Fehler, können wir erst dann erkennen, wenn sie für uns sichtbar werden durch Hilfsmittel wie Drucker, Monitor, Datendisplays oder akustische Signale.

3.2.1 Risiken durch Informationsmangel

Wird nicht genügend für die "Visualisierung" der Eigenschafen in einer für Menschen leicht verständlichen Präsentation gesorgt (im übertragenen Sinn zählen wir zur Visualisierung nicht nur die Wahrnehmung durch Augen, sondern auch durch Ohren sowie den Tast- und Riechsinn), dann werden Abweichungen von den Vorgaben – also Fehler – nicht frühzeitig genug wahrgenommen.

Visualisierung der Software ist mit Aufwand verbunden. Zur Minimierung der Kosten wird man sich daher erst einmal auf das unbedingt Notwendige beschränken, wodurch ein nicht unerhebliches Risiko entstehen kann, da man dann möglicherweise nicht alle Eigenschaften des entstehenden oder fertigen Produkts erfährt. Denn mangelhafte Visualisierung impliziert fehlende Information, fehlende Information führt zur falschen Einschätzung der Situation, und bei der Softwareentwicklung in der Regel zur Unterschätzung oder zum Ignorieren eines Problems.

Ein typisches Beispiel hierfür sind Schnittstellen zwischen Softwarekomponenten wie Funktionen oder Teilprogrammen. Hier treten Probleme auf, wenn wegen mangelnder Visualisierung Inkompatibilitäten übersehen werden. Dann werden Probleme zu spät erkannt, was zu erheblichen Zusatzkosten und meistens auch zu Terminverzug führt.

Die bei der Softwareentwicklung auftretenden Probleme sind vergleichbar mit einer in ihren Auswirkungen nicht abschätzbaren chemischen Reaktion beim Mischen zweier unbekannter Chemikalien. Während in der Chemie strenge Regeln existieren, um Katastrophen zu verhindern, sind entsprechende Vorsichtsmaßnahmen in der Softwareentwicklung meistens nicht realisierbar, weil zu aufwändig.

In der Chemie ist die Mischung unbekannter Chemikalien aus Sicherheitsgründen verboten, in der Softwareentwicklung die Integration von Code mit unzureichend bekannten Eigenschaften nicht.
Inhaltsverzeichnis
Danksagung6
Vorwort7
Inhaltsverzeichnis17
1 Thesen23
1.1 Einführung in das Konzept23
1.2 Mehr Chancen durch bessere Strategien27
1.2.1 Optimale Arbeitsteilung29
1.2.2 Arbeitsplätze im Wandel31
1.2.3 Synergie muss organisiert werden32
1.2.4 Offen sein für Problemlösungen35
1.2.5 Helfen, nicht beschränken36
1.2.6 Probleme richtig verstehen37
1.2.7 Simplifizieren durch Organisieren38
1.2.8 Mehr erreichen durch strategische Entscheidungen43
1.2.9 Interdisziplinäre Kooperation – eine effektive Strategie45
1.2.10 Mehr Zuverlässigkeit und Effizienz durch Automation49
1.2.11 Ohne richtige Dimensionierung geht nichts51
1.2.12 Komplexität – weniger ist mehr52
1.2.13 Mensch-Maschine-Schnittstelle55
1.2.14 Ohne Zusatzaufwand unendlich viele Fälle abdecken58
1.2.15 Qualitätssicherung59
1.2.16 Schnittstellenanpassung62
1.2.17 Dokumentation63
1.3 111 Thesen zur effizienten Softwareentwicklung64
1.3.1 Stand der Technik64
1.3.2 Wettbewerb64
1.3.3 Softwareentwicklung64
1.3.4 Organisation65
1.3.5 Schnittstellen66
1.3.6 Information67
1.3.7 Automation67
1.3.8 Strategie68
1.3.9 Kostenschätzung69
1.3.10 Projektmanagement69
1.3.11 Management70
1.3.12 Qualitätssicherung70
2 Strategische Ausrichtung73
2.1 Wann ist man effizient und erfolgreich?74
2.2 Mehr Effizienz durch Automatische Softwareproduktion75
2.3 Software korrekt produzieren durch Automation77
2.3.1 Anforderungen korrekt umsetzen78
2.3.2 Verifikation und Validierung – was Softwareentwickler und Bäcker brauchen79
2.3.3 Synergien erzeugen80
2.3.4 Vom Compiler zum Systemcompiler82
2.3.5 Selbstkontrolle83
2.3.6 Ist Selbstkontrolle sinnvoll?84
2.4 Entwickeln impliziert Projektmanagement85
2.5 Organisation der Entwicklung87
2.6 Wie groß ist das Einsparungspotenzial?89
2.7 Welcher Weg ist der beste?90
2.8 Automatisierung effizient einsetzen96
2.9 Weniger ist mehr - durch Einschränkungen mehr erreichen98
2.10 Effizient Entwicklungsrisiken meistern101
2.11 Komplexität meistern104
2.12 Effiziente Wartung108
3 Risiken und Chancen in der Softwareentwicklung111
3.1 Rollenverteilung111
3.2 Professionelle Softwareentwicklung – Herausforderung113
3.2.1 Risiken durch Informationsmangel114
3.2.2 Risiken durch Managementfehler115
3.2.3 Der Kampf gegen das Chaos116
3.3 Fehlentscheidungen118
3.3.1 Viel Code, wenig Qualität118
3.3.2 Wie zuverlässig sind Ergebnisse?119
3.3.3 Der Anwender ist nicht König124
3.4 Risiken130
3.4.1 Interne Risiken130
3.4.2 Externe Risiken138
3.5 Softwareentwicklungswerkzeuge148
3.5.1 Anwendungsprofil und Parametrisierbarkeit148
3.6 Geringeres Risiko durch schnellere Umsetzung?151
3.7 Durch Tests Fehler erkennen153
3.8 Qualität159
3.9 Organisation der Automation162
3.10 Komplexität165
3.10.1 Große Mengen, große Komplexität166
3.10.2 Unübliche Regeln, hohe Komplexität166
3.10.3 Gegenmaßnahmen168
3.11 Das Potenzial der Automation170
4 Entwicklungsgrundlagen173
4.1 Manuelle Softwareentwicklung173
4.2 Entwicklungsansätze174
4.3 Anforderungen an automatische Prozesse180
4.3.1 Grenzen der Teilautomation180
4.3.2 Einfluss auf Korrektheit, Konsistenz und Vollständigkeit180
4.4 Qualitätssicherung183
4.4.1 Qualitätsmerkmale183
4.4.2 Qualitätssicherungsstandards185
4.4.3 Zertifizierung188
4.4.4 Klassifizierung von Werkzeugen190
4.4.5 Verifikation und Validierung190
4.5 Zuverlässigkeit194
4.5.1 Pragmatische Ansätze zur Bestimmung der Zuverläsigkeit194
4.5.2 Aktive Qualitätssicherung: Maßnahmen gegen Fehler196
4.6 Betriebssysteme – Effizienz und Risiken218
4.6.1 Softwarequalität hängt vom Betriebssystem ab219
4.6.2 Klassifikationskriterien220
4.7 Hilfen für die Softwareentwicklung227
4.7.1 Methoden228
4.7.2 Generatoren231
4.7.3 Sprachen234
4.7.4 Unterstützung der Fehlerprävention und Fehlererkennung durch Sprachen240
5 Managementaspekte248
5.1 Das Rationalisierungspotenzial248
5.2 Was lässt sich ändern?251
5.3 Argumente und Gegenargumente253
5.3.1 Der indifferente Ansatz253
5.3.2 Der "Mengen"-Ansatz254
5.4 Wo lohnt es sich?256
5.4.1 Kosten vs. Entwicklungsphasen257
5.4.2 Kosten der Fehlerbeseitigung261
5.4.3 Sparen bei Wartung und Pflege / Legacy Software265
5.4.4 Strategie zur Kostensenkung266
5.5 Organisatorische Maßnahmen269
5.5.1 Das Baukastensystem270
5.5.2 Spezifikation273
5.5.3 Test, Verifikation und Validierung277
5.5.4 Die Abnahme278
5.5.5 Wartung und Legacy Systeme280
5.5.6 Vertragliche Aspekte und Projektorganisation281
5.5.7 Hindernisse wegräumen284
5.5.8 Qualitätssicherung durch Standards287
5.6 Wettbewerbsvorteile287
5.7 Managementaufgaben288
5.7.1 Kostenanalyse289
5.7.2 Erfolgsanalyse291
5.7.3 Risikoanalyse und Risikominimierung292
5.7.4 Fehleranalysen294
5.7.5 Empfehlungen zur Optimierung295
5.8 Checkliste297
6 Automatische Softwareproduktionsprozesse311
6.1 Ziele des vollautomatischen Produktionsprozesses311
6.2 Voraussetzungen für die Prozessdefinition313
6.3 Entwicklerprofile315
6.4 Die Prozessdefinition316
6.5 Produktionsprozesse – im wesentlichen nichts Neues318
6.5.1 Anwendungsorientierte Produktionsprozesse318
6.5.2 Spezialisierung vs. Vereinheitlichung321
6.5.3 Der konfigurierbare Produktionsprozess323
6.5.4 Vollautomatische Produktionsprozesse325
6.5.5 Prozessparameter326
6.5.6 Typen von Produktionsprozessen332
6.5.7 Identifizierung von Abhängigkeiten341
6.5.8 Konstruktionsregeln343
6.5.9 Metamodelle353
6.5.10 Eigenschaften vollautomatischer Produktionsprozesse353
6.5.11 Verifikation von Prozessen und Qualitätssicherung359
6.5.12 Validierung und automatische Testfallerzeugung368
6.5.13 Kontinuierliche Wartung369
6.5.14 Systemcompiler370
6.5.15 Teilprodukte und vertragliche Aspekte371
6.6 Der automatische Entwicklungszyklus376
6.7 Die Vorteile für ein einzelnes Projekt380
6.8 Merkmale eines vollautomatischen Produktionsprozesses382
6.9 Weitere Ansätze auf dem Gebiet der Automation387
7 Vollautomation als Realität389
7.1 Über die Einführung und Optimierung neuer Methoden389
7.2 Durchgängig von der Spezifikation bis zum Betrieb393
7.2.1 Von der Spezifikation zum Produkt394
7.2.2 Die Realisierung402
7.2.3 Ergebnisse404
7.3 Reengineering und n-Version- Development408
7.3.1 Vom Reengineering zu n-Version-Development411
7.4 Redundanzreduktion bei Parsern415
7.4.1 Formale Beschreibung von Sprachen416
7.4.2 Transformation von Grammatiken417
7.4.3 Die Entstehung von Redundanzen419
7.4.4 Die Risiken von Redundanzen und ihre Eliminierung420
7.5 Algorithmen421
7.5.1 Datenkonvertierung422
7.5.2 Ausnutzung theoretischer Möglichkeiten in der Praxis427
7.6 Verteilte Echtzeitsysteme429
7.6.1 Master-Slave Struktur432
7.6.2 Echtzeitinfrastruktur436
7.6.3 Spezifikation und Erzeugung der MSL-Datenbank440
7.7 Ein synchrones verteiltes System443
7.8 Client-Server Anwendungen, Datenbanken und GUIs445
7.8.1 SQL-Datenbanken aus einem Guss450
7.8.2 Grafische Oberflächen aus C-Typdefinitionen457
7.9 Schnittstellenanpassung459
7.10 Automatische Testumgebungen460
7.10.1 Funktionstests460
7.10.2 Test des Verhaltens462
7.11 Effizienzanalyse463
7.12 Rückblick und Ausblick469
8 Gesellschaftliche Aspekte471
8.1 Sozialpolitische Relevanz472
8.1.1 Innovation und die Folgen473
8.1.2 Sozialverträglichkeit474
8.1.3 Konkurrenzfähigkeit475
8.1.4 Der Softwareentwickler, zuerst geschützt, dann gehetzt476
8.2 Das Arbeitsumfeld478
8.2.1 Rückblick478
8.2.2 Ausblick479
8.2.3 Kooperation ist notwendig480
8.2.4 Der Anpassungsprozess480
8.3 Wirtschaftliche Relevanz484
8.3.1 Mehr Synergie durch neue Produktionsmethoden484
8.3.2 Egalisieren vs. Spezialisieren486
8.3.3 Automatische Produktion vs. Fremdentwicklung488
8.4 Ausbildungspolitische Relevanz489
8.4.1 Der Kunde ist König489
8.4.2 Automation impliziert Qualifikation491
8.5 Zusammenfassung493
9 Schlussbemerkungen und Ausblick495
Abkürzungen und Synonyme498
Begriffe502
Literatur517
Sachverzeichnis528

Weitere E-Books zum Thema: Management - Wirtschaft - Coaching

Versicherungen im Umbruch

E-Book Versicherungen im Umbruch
Werte schaffen, Risiken managen, Kunden gewinnen Format: PDF

Die Bedeutung von Versicherungen und Einrichtungen kapitalgebundener Altersvorsorge für unsere Gesellschaft ist immens und nimmt weiter zu. Es ist deshalb äußerst wichtig, dass die Institutionen ,…

bAV erfolgreich verkaufen

E-Book bAV erfolgreich verkaufen
So überwinden Sie alle Hürden der Entgeltumwandlung Format: PDF

Die Situation der gesetzlichen Rentenversicherung ist bekanntlich katastrophal. Daher ist es unbedingt erforderlich, für das Alter vorzusorgen. Versicherungsvermittler haben das Know-how und die…

Asset Securitization im Gesundheitswesen

E-Book Asset Securitization im Gesundheitswesen
Erfahrungen in den USA und anderen Ländern als Basis einer Abwägung von Einsatzmöglichkeiten in Deutschland Format: PDF

Ulrich Franke geht auf die Schwierigkeiten des Kapitalmarktzugangs für Non-Profit-Unternehmen ein und analysiert, inwieweit ABS als Eigenkapital schonende Finanzierungsform eingesetzt werden kann.…

MiFID-Kompendium

E-Book MiFID-Kompendium
Praktischer Leitfaden für Finanzdienstleister Format: PDF

Zum 1. November 2007 trat die europäische Richtlinie 'Markets in Financial Instruments Directive' (MiFID) in Kraft, eine der umfangreichsten Gesetzesmaßnahmen für Finanzmärkte in den letzten…

Outsourcing in Banken

E-Book Outsourcing in Banken
Mit zahlreichen aktuellen Beispielen Format: PDF

Ausgewiesene Outsourcing-Experten beschreiben in diesem Buch, welche technischen, rechtlichen und steuerlichen Aspekte Kreditinstitute beachten müssen, um die Schnittstellen sauber zu definieren und…

bAV erfolgreich verkaufen

E-Book bAV erfolgreich verkaufen
So überwinden Sie alle Hürden der Entgeltumwandlung Format: PDF

Die Situation der Gesetzlichen Rentenversicherung ist bekanntlich katastrophal: Die Alterspyramide steht kopf, es fehlt der Nachwuchs und wir werden immer älter. Daher ist es unbedingt notwendig, für…

Informationsmanagement

E-Book Informationsmanagement
Format: PDF

Das Internet hat in den letzten Jahren ohne Zweifel erhebliche Veränderungen in der gesamten Ökonomie bewirkt. E-Business gehört heute zur Unternehmensrealität und konfrontiert das…

Weitere Zeitschriften

aufstieg

aufstieg

Zeitschrift der NaturFreunde in Württemberg Die Natur ist unser Lebensraum: Ort für Erholung und Bewegung, zum Erleben und Forschen; sie ist ein schützenswertes Gut. Wir sind aktiv in der Natur ...

caritas

caritas

mitteilungen für die Erzdiözese FreiburgUm Kindern aus armen Familien gute Perspektiven für eine eigenständige Lebensführung zu ermöglichen, muss die Kinderarmut in Deutschland nachhaltig ...

Computerwoche

Computerwoche

Die COMPUTERWOCHE berichtet schnell und detailliert über alle Belange der Informations- und Kommunikationstechnik in Unternehmen – über Trends, neue Technologien, Produkte und Märkte. IT-Manager ...

dental:spiegel

dental:spiegel

dental:spiegel - Das Magazin für das erfolgreiche Praxisteam. Der dental:spiegel gehört zu den Top 5 der reichweitenstärksten Fachzeitschriften für Zahnärzte in Deutschland (laut LA-DENT 2011 ...

Gastronomie Report

Gastronomie Report

News & Infos für die Gastronomie: Tipps, Trends und Ideen, Produkte aus aller Welt, Innovative Konzepte, Küchentechnik der Zukunft, Service mit Zusatznutzen und vieles mehr. Frech, offensiv, ...

die horen

die horen

Zeitschrift für Literatur, Kunst und Kritik."...weil sie mit großer Aufmerksamkeit die internationale Literatur beobachtet und vorstellt; weil sie in der deutschen Literatur nicht nur das Neueste ...

ea evangelische aspekte

ea evangelische aspekte

evangelische Beiträge zum Leben in Kirche und Gesellschaft Die Evangelische Akademikerschaft in Deutschland ist Herausgeberin der Zeitschrift evangelische aspekte Sie erscheint viermal im Jahr. In ...

e-commerce magazin

e-commerce magazin

PFLICHTLEKTÜRE – Seit zwei Jahrzehnten begleitet das e-commerce magazin das sich ständig ändernde Geschäftsfeld des Online- handels. Um den Durchblick zu behalten, teilen hier renommierte ...