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

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…

Einkaufsverhandlungen

E-Book Einkaufsverhandlungen
Format: PDF

Jeder Einkäufer muss vor allem eins können: gut verhandeln. Nicht umsonst sind Seminare zu diesem Thema echte "Dauerbrenner". Dieser Band zeigt, welche Strategien und Techniken bessere…

Jahrbuch Entrepreneurship 2005/06

E-Book Jahrbuch Entrepreneurship 2005/06
Gründungsforschung und Gründungsmanagement Format: PDF

Das Jahrbuch Entrepreneurship bietet einen umfassenden Überblick über den aktuellen Stand der Gründungsforschung. Es informiert ausführlich und kompetent über die wichtigsten Entwicklungen in Theorie…

Handbuch Mitarbeiterbefragung

E-Book Handbuch Mitarbeiterbefragung
Format: PDF

Zufriedene Mitarbeiter gestalten bessere und intensivere Kundenkontakte, und zufriedene Kunden sind die wichtigsten Garanten für den wirtschaftlichen Gesamterfolg von Unternehmen. Es ist somit…

Competitive Intelligence

E-Book Competitive Intelligence
Strategische Wettbewerbsvorteile erzielen durch systematische Konkurrenz-, Markt- und Technologieanalysen Format: PDF

Das vorliegende Buch ist eine praxisorientierte Einführung in Konzepte, Techniken und Anwendung der Competitive Intelligence. Durch 24 Fallstudien und Fachbeiträge, u.a. von Unternehmen wie BMW AG, E…

Erfolgsfaktor Innovation

E-Book Erfolgsfaktor Innovation
Format: PDF

Innovationen stellen einen entscheidenden Erfolgsfaktor für eine gesamte Volkswirtschaft, eine Branche sowie für jedes Unternehmen dar. Innovationen können zunächst aus neuartigen Produkten, Marken…

Die Rückkehr der Samurai

E-Book Die Rückkehr der Samurai
Japans Wirtschaft nach der Krise Format: PDF

Chinaboom. Doch Japan holt auf. Sein Markt ist sieben Mal größer als der Chinas. Dieses Buch schildert die historischen und strukturellen Grundlagen der japanischen Wirtschaft: Organisation der…

Weitere Zeitschriften

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

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

Berufsstart Bewerbung

Berufsstart Bewerbung

»Berufsstart Bewerbung« erscheint jährlich zum Wintersemester im November mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

BMW Magazin

BMW Magazin

Unter dem Motto „DRIVEN" steht das BMW Magazin für Antrieb, Leidenschaft und Energie − und die Haltung, im Leben niemals stehen zu bleiben.Das Kundenmagazin der BMW AG inszeniert die neuesten ...

elektrobörse handel

elektrobörse handel

elektrobörse handel gibt einen facettenreichen Überblick über den Elektrogerätemarkt: Produktneuheiten und -trends, Branchennachrichten, Interviews, Messeberichte uvm.. In den monatlichen ...