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

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…

Finance & Ethics

E-Book Finance & Ethics
Das Potential von Islamic Finance, SRI, Sparkassen Format: PDF

Die globale Finanzkrise 2007 fand ihren Ausdruck zunächst in der Bankenkrise. Dadurch wurde die Ausbreitung dieser auf andere Branchen unumgänglich. Diese Krise machte unmissverständlich klar, dass…

Die Schatztruhe für Finanzdienstleister

E-Book Die Schatztruhe für Finanzdienstleister
101 Ideen für Ihren Verkaufserfolg Format: PDF

Jürgen Hauser verfügt über einen reichhaltigen Erfahrungsschatz als Versicherungskaufmann und als Verkaufstrainer. Das 'Best of' dieser Verkaufshilfen präsentiert dieses Buch - 101 Tipps, thematisch…

Handbuch Automobilbanken

E-Book Handbuch Automobilbanken
Finanzdienstleistungen für Mobilität Format: PDF

Auf dem Markt der automobilen Finanzdienstleistungen nehmen die herstellerverbundenen Automobilbanken eine führende Stellung ein. Mit innovativen Finanzierungskonzepten stärken sie die Loyalität der…

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

Archiv und Wirtschaft

Archiv und Wirtschaft

Fachbeiträge zum Archivwesen der Wirtschaft; Rezensionen Die seit 1967 vierteljährlich erscheinende Zeitschrift für das Archivwesen der Wirtschaft "Archiv und Wirtschaft" bietet Raum für ...

Ärzte Zeitung

Ärzte Zeitung

Zielgruppe:  Niedergelassene Allgemeinmediziner, Praktiker und Internisten. Charakteristik:  Die Ärzte Zeitung liefert 3 x pro Woche bundesweit an niedergelassene Mediziner ...

AUTOCAD & Inventor Magazin

AUTOCAD & Inventor Magazin

FÜHREND - Das AUTOCAD & Inventor Magazin berichtet seinen Lesern seit 30 Jahren ausführlich über die Lösungsvielfalt der SoftwareLösungen des Herstellers Autodesk. Die Produkte gehören zu ...

Baumarkt

Baumarkt

Baumarkt enthält eine ausführliche jährliche Konjunkturanalyse des deutschen Baumarktes und stellt die wichtigsten Ergebnisse des abgelaufenen Baujahres in vielen Zahlen und Fakten zusammen. Auf ...

BIELEFELD GEHT AUS

BIELEFELD GEHT AUS

Freizeit- und Gastronomieführer mit umfangreichem Serviceteil, mehr als 700 Tipps und Adressen für Tag- und Nachtschwärmer Bielefeld genießen Westfälisch und weltoffen – das zeichnet nicht ...

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 ...

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 ...

Deutsche Hockey Zeitung

Deutsche Hockey Zeitung

Informiert über das internationale, nationale und internationale Hockey. Die Deutsche Hockeyzeitung ist Ihr kompetenter Partner für Ihr Wirken im Hockeymarkt. Sie ist die einzige ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...