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 ,…

Managed Care

E-Book Managed Care
Neue Wege im Gesundheitsmanagement Format: PDF

Das deutsche Gesundheitswesen befindet sich in einem radikalen Umbruch. Ansätze zur Bewältigung dieser Herausforderungen finden sich in den vielfältigen Managementinstrumenten und Organisationsformen…

888 Weisheiten und Zitate für Finanzprofis

E-Book 888 Weisheiten und Zitate für Finanzprofis
Die passenden Worte für jede Situation im Beratungsgespräch Format: PDF

'888 Weisheiten und Zitate für Finanzprofis' bietet allen Finanzprofis, die noch besser verkaufen wollen, die 'schlagenden Argumente' für Präsentationen, Verhandlungen und Beratungsgespräche. Dieses…

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…

Gabler Kompakt-Lexikon Bank und Börse

E-Book Gabler Kompakt-Lexikon Bank und Börse
2.000 Begriffe nachschlagen, verstehen, anwenden Format: PDF

Das Gabler Kompakt-Lexikon Bank und Börse definiert die 2.000 wichtigsten Begriffe aus dem Bank- und Börsenwesen. Die Stichwörter sind verständlich erklärt und auf eine praktische Anwendung des…

Weitere Zeitschriften

BONSAI ART

BONSAI ART

Auflagenstärkste deutschsprachige Bonsai-Zeitschrift, basierend auf den renommiertesten Bonsai-Zeitschriften Japans mit vielen Beiträgen europäischer Gestalter. Wertvolle Informationen für ...

Correo

Correo

 La Revista de Bayer CropScience para la Agricultura ModernaPflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und am Thema Interessierten mit umfassender ...

DGIP-intern

DGIP-intern

Mitteilungen der Deutschen Gesellschaft für Individualpsychologie e.V. (DGIP) für ihre Mitglieder Die Mitglieder der DGIP erhalten viermal jährlich das Mitteilungsblatt „DGIP-intern“ ...

rfe-Elektrohändler

rfe-Elektrohändler

rfe-Elektrohändler ist die Fachzeitschrift für die CE- und Hausgeräte-Branche. Wichtige Themen sind: Aktuelle Entwicklungen in beiden Branchen, Waren- und Verkaufskunde, Reportagen über ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...

FileMaker Magazin

FileMaker Magazin

Das unabhängige Magazin für Anwender und Entwickler, die mit dem Datenbankprogramm FileMaker Pro arbeiten. In jeder Ausgabe finden Sie praxiserprobte Tipps & Tricks, die Ihnen sofort die ...