Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Liebe Leser!
Inhaltsverzeichnis
Vorwort
Teil I Überblick
1 Überblick
1.1 Berufswunsch Softwareentwickler
1.1.1 Der Softwareentwickler – ein ganz besonderer Informatiker
1.1.2 Aktuelle Arbeitsmarktsituation und Verdienstmöglichkeiten
1.2 Über dieses Buch
1.3 Literatur und Links
2 Programmierung als Kern der Softwareentwicklung
2.1 Die Programmierung
2.2 Paradigmen der Softwareentwicklung
2.3 Objektorientierte Programmentwicklung
2.3.1 Objektorientierung im Überblick
2.3.2 Objektorientierte Konzepte im Detail
2.3.3 Objektorientierung und Wiederverwendung
2.3.4 Visualisierung: Objektorientierung und UML
2.4 Programmiersprachen
2.4.1 Historische Entwicklung und sprachliche Vielfalt
2.4.2 Die Systematik der Programmiersprachen
2.5 Essenzielle Sprachmerkmale
2.5.1 Kommentare
2.5.2 Operatoren und Vergleiche
2.5.3 Kontrollstrukturen
2.5.4 Objektorientierung
2.6 Fazit und Ausblick
2.7 Literatur und Links
3 Algorithmen und Datenstrukturen
3.1 Algorithmen als Kernelemente des Programms
3.1.1 Wichtige Klassen von Algorithmen
3.1.2 Komplexität von Algorithmen
3.2 Entwurf von Algorithmen
3.2.1 Vorgehensweise
3.2.2 Visualisierung des Ablaufs von Algorithmen
3.2.3 Fallbeispiele
3.3 Sortieren und Suchen als Basis-Algorithmen
3.3.1 Sortieren – das Wichtigste im Überblick
3.3.2 Such-Algorithmen im Überblick
3.4 Elementare Datenstrukturen
3.4.1 Datenobjekte
3.4.2 Systematik von Datenobjekten und Datentypen
3.5 Zusammenfassung und Ausblick
3.6 Literatur und Links
Teil II Der Softwarelebenszyklus
4 Softwareprojekte professionell planen
4.1 Der Wasserfall – mehr als nur historische Bedeutung
4.1.1 Analyse
4.1.2 Entwurf
4.1.3 Implementierung
4.1.4 Test
4.1.5 Betrieb und Wartung
4.1.6 Kritische Betrachtung
4.2 Iterative Entwicklung – schrittweise zum Ziel
4.3 Das V-Modell – eine Struktur hauptsächlich für Projekte der öffentlichen Hand
4.4 Bessere Risikobeherrschung durch das Spiralmodell
4.5 Agile Ansätze – der Komplexität und Unsicherheit mit Flexibilität begegnen
4.5.1 Extreme Programming
4.5.2 Scrum
4.6 Softwareentwicklung und die Schnittstellen zum Projektmanagement
4.6.1 Personen und Rollen in IT-Projekten
4.7 Ist Agilität heute alternativlos?
4.8 Literatur und Links
5 Die Anforderungsanalyse – Startpunkt der Entwicklung
5.1 Überblick und Zielstellung
5.2 Ausgangssituation und Notwendigkeit
5.3 Anforderungen ermitteln
5.3.1 Quellen von Anforderungen
5.3.2 Anforderungen erforschen
5.3.3 Arten von Anforderungen
5.3.4 Verbindlichkeit und Priorität von Anforderungen
5.4 Anforderungen formulieren und visualisieren
5.4.1 Lastenheft
5.4.2 Pflichtenheft
5.4.3 Grafische Notation als Hilfsmittel
5.5 Tool-Unterstützung
5.6 Diskussion im Kontext agilen Vorgehens
5.7 Fazit
5.8 Literatur und Links
6 Der Entwurf des Softwaresystems
6.1 Die Softwarearchitektur als Basis für Erfolg und Wartbarkeit eines Softwaresystems
6.1.1 Ziele und Auswahlkriterien für eine Architektur
6.1.2 Architekturprinzipien
6.2 Architekturparadigmen
6.2.1 Monolithisches IT-System
6.2.2 Verteilte Architektur
6.2.3 Client-Server-Architektur
6.2.4 Serviceorientierte Architektur
6.2.5 Web-Architektur
6.2.6 Middleware
6.3 Entwurfsmuster als Baupläne
6.3.1 Fassaden-Muster
6.3.2 Model-View-Controller-Muster
6.4 Entwurfsunterstützung durch grafische Modellierung
6.4.1 Das Komponentendiagramm
6.4.2 Das Paketdiagramm
6.4.3 Das Verteilungsdiagramm
6.5 Weitere Entwurfsentscheidungen
6.5.1 Softwaretyp
6.5.2 Technologie
6.6 Erfolgreiche Entwürfe mithilfe von Prototypen
6.6.1 Arten von Prototypen
6.6.2 Wege und Tools zum Prototyp
6.7 Zusammenfassung und Fazit
6.8 Literatur und Links
7 Die Implementierung schafft den Kern der Anwendung
7.1 Die Entwicklung der Benutzerschnittstelle
7.1.1 Benutzeroberflächen in Java
7.1.2 Benutzeroberflächen auf Basis der Beschreibungssprache XAML
7.1.3 Im Turbogang zum User Interface: Rapid Application Development
7.1.4 Web-Technologien
7.2 Die Businesslogik umsetzen
7.3 Die Datenwelt anbinden
7.3.1 Java Database Connectivity
7.3.2 Entity Framework
7.4 Zusammenfassung und Fazit
7.5 Literatur und Links
8 Testen als Voraussetzung für fehlerarme Software
8.1 Zur Notwendigkeit von Softwaretests
8.2 Testgetriebene Entwicklung
8.3 Ein Überblick über wichtige Testarten
8.4 Testmethoden
8.4.1 Statische Tests
8.4.2 Dynamische Tests
8.5 Testebenen
8.5.1 Komponententests
8.5.2 Integrationstests
8.5.3 Systemtests
8.5.4 Abnahme- und Nutzertests
8.6 Technik des Testens
8.6.1 Tools
8.6.2 Test-Automation
8.7 Fazit und Zusammenfassung
8.8 Literatur und Links
9 Distribution – das Produkt muss zum Kunden
9.1 Die Softwaredistribution im Überblick
9.1.1 Die Merkmale von Software und ihre Auswirkungen auf den Vertrieb
9.1.2 Vertragliche und lizenzrechtliche Bestimmungen
9.1.3 Vertriebswege
9.1.4 Erlösmodelle
9.2 Die App-Store-Revolution
9.2.1 Vor- und Nachteile eines App Stores
9.2.2 Programminterne Stores
9.2.3 Vermarkungsstrategien
9.2.4 Präsentation im Store
9.3 DevOps – der Kreis schließt sich
9.3.1 Probleme durch eine künstliche Trennung der Zuständigkeiten
9.3.2 Verbesserte Zusammenarbeit
9.4 Die Technik der Softwarebereitstellung
9.4.1 Software für den Desktop
9.4.2 Apps für mobile Systeme
9.4.3 Automatisierte Softwareverteilung in Unternehmen
9.5 Literatur und Links
10 Vom Altsystem zur zeitgemäßen Anwendung
10.1 Technologien im Wandel
10.2 Notwendigkeit einer Software-Migration
10.3 Ziele einer Software-Migration
10.4 Planung der Migration
10.5 Migrationsstrategien
10.6 Arten der Migration
10.7 Wirtschaftlichkeitsbetrachtungen
10.8 Eine Fallstudie
10.8.1 Der Status quo
10.8.2 Einen technischen Migrationsansatz auswählen
10.8.3 Web-Applikationen mit Wisej
10.9 Literatur und Links
Teil III Technologien und Methoden
11 Kundenzufriedenheit durch Nutzerorientierung
11.1 Der Nutzer im Fokus
11.1.1 Development versus Design
11.1.2 Personas – was sind sie?
11.2 Benutzerschnittstellen im Wandel
11.2.1 Command-line interface
11.2.2 Graphical User Interface
11.2.3 Natural User Interface
11.3 Gestaltung von Benutzeroberflächen
11.3.1 Objektive Merkmale und subjektives Empfinden
11.3.2 Software-Ergonomie
11.3.3 Designrichtlinien als Handlungsrahmen
11.4 Literatur und Links
12 Datensicherheit und Datenschutz
12.1 Begriffe und Angrenzungen
12.2 Dilemma: Globale Technik und lokale Gesetzgebung
12.3 Betrieblicher Datenschutz
12.4 Datenschutz und Mobile Computing
12.5 Datenschutz und Cloud-Computing
12.6 Sichere Kommunikation durch Verschlüsselung
12.6.1 Kryptografie
12.6.2 Digitale Signatur
12.6.3 Digitales Zertifikat
12.7 Fazit
12.8 Literatur und Links
13 Plattform- und geräteübergreifende Entwicklung
13.1 Systemumgebungen im Einsatz
13.1.1 Der Desktop
13.1.2 Der Webserver
13.1.3 Apps für mobile Geräte
13.1.4 Gerätetechnik – vom Smartphone bis zum Desktop
13.2 Ansätze für die geräte- und plattformübergreifende Entwicklung
13.2.1 Java
13.2.2 Universal Windows Platform
13.3 Mobile Computing als Motivationstreiber
13.3.1 App-Arten
13.3.2 Native Technologien
13.3.3 Hybride Technologien
13.3.4 Mit plattformübergreifender Programmierung zur nativen App
13.3.5 Weitere Ansätze
13.4 Fazit
13.5 Literatur und Links
14 Parallelprogrammierung
14.1 Systemtechnische Ebene
14.1.1 Prozesse und Threads
14.1.2 Zustände von Prozessen
14.2 Anwendungsebene
14.2.1 Parallelisierung von Algorithmen
14.2.2 Probleme und Erfolgsbestimmung
14.3 Programmiertechnische Ebene
14.3.1 Konzepte der Task Parallel Library
14.3.2 Reaktionsfähigkeit mithilfe von async und await
14.4 Zusammenfassung
14.5 Literatur und Links
15 Grundlagen der Datenhaltung
15.1 Datenbank – ein Ort, um Ordnung zu halten
15.1.1 Anforderungen an eine Datenbank
15.1.2 Überblick über Datenbanksysteme
15.2 Phasen der Datenbankentwicklung
15.2.1 Das Entity-Relationship-Modell (ER-Modell)
15.2.2 Alles eine Frage des Schlüssels
15.2.3 Normalisierung der Datenbankstruktur
15.3 NoSQL-Datenbanken und Fazit
15.4 Literatur und Links
16 Werkzeugunterstützung
16.1 Die Rolle von Werkzeugen
16.2 Integrierte Entwicklungsumgebungen als Multifunktionswerkzeuge
16.2.1 Bestandteile einer integrierten Entwicklungsumgebung
16.2.2 Wichtige integrierte Entwicklungsumgebungen im Überblick
16.3 Versionsverwaltungen als Voraussetzung für eine erfolgreiche Entwicklung
16.3.1 Varianten der Versionsverwaltung
16.3.2 Vergleich zentrale und verteilte Versionsverwaltung
16.3.3 Git-Grundlagen
16.4 Weitere Softwaretools für die Entwicklung
16.4.1 Tools für die modellgetriebene Entwicklung
16.4.2 Tools für die Datenmodellierung
16.4.3 Einfache Texteditoren
16.4.4 Tools für die Koordination der Zusammenarbeit und fürs Projektmanagement
16.5 Fazit und Ausblick
16.6 Literatur und Links
17 Qualitätssicherung und Clean Code Development
17.1 Das Verständnis von Softwarequalität
17.2 Ansätze zur Bestimmung der Softwarequalität
17.2.1 Qualitätseigenschaften nach Boehm
17.2.2 Quantifizierung der Qualität nach Gilb
17.2.3 Goal Question Metric
17.3 Softwarequalität zwischen Nutzen und Kosten
17.4 Qualität verbessern
17.4.1 Sich stetig weiterentwickeln: kontinuierliche Verbesserung
17.4.2 Prozessqualität über alle Entwicklungsschritte
17.4.3 Regeln als Handlungsleitfaden
17.4.4 Clean Code Development
17.4.5 Lästig und unverzichtbar – die Entwicklungsdokumentation
17.5 Eine gesunde Fehlerkultur
17.5.1 Der Begriff des Fehlers
17.5.2 Umgang mit Fehlern
17.5.3 Fehlermetriken
17.6 Fazit und Zusammenfassung
17.7 Literatur und Links
Teil IV Trends
18 Enterprise Mobile Computing
18.1 Einsatzszenarien
18.1.1 Mobilisierung bestehender digitaler Geschäftsprozesse
18.1.2 Digitale Transformation
18.2 Bring Your Own Device
18.2.1 Bedeutung und Nutzen einer BYOD-Strategie
18.2.2 Problemlage und Anforderungen bei einer BYOD-Strategie
18.2.3 Mögliche Szenarien aus Unternehmenssicht
18.2.4 Umsetzungsstrategie
18.3 Technische Aspekte für Enterprise Mobile Computing
18.3.1 Geräteauswahl
18.3.2 Enterprise Mobile Device Management
18.3.3 Backend as a Service for Enterprise
18.4 Literatur und Links
19 Internet of Things
19.1 Stand heute und Zukunftsszenarien
19.1.1 Vom Eigenbau zum Standard
19.2 IoT-Architekturansätze
19.2.1 Netzwerktopologien
19.2.2 Anwendungsarchitekturen
19.3 Hardware auf kleinstem Raum
19.4 Fallbeispiel: Windows 10 auf dem Raspberry Pi
19.4.1 Anforderungen und Anwendungsarchitektur
19.4.2 Installation von Windows 10 IoT
19.4.3 Konfiguration aus der Ferne per Remote
19.4.4 Entwicklungsumgebung konfigurieren
19.5 Fazit und Ausblick
19.6 Literatur und Links
20 Cloud-Computing
20.1 Grundlagen des Cloud-Computings
20.1.1 Merkmale und Eigenschaften des Cloud-Computings
20.1.2 Modelle des Cloud-Computings
20.1.3 Nutzungsmodelle des Cloud-Computings
20.2 Ökonomische Gesichtspunkte
20.2.1 On-Premises- versus Cloud-Computing
20.2.2 Kostenbasierter Vergleich
20.3 Cloud-Computing als Werkzeug der Softwareentwicklung
20.3.1 Cloud-Lösungen für Kommunikation und Datenaustausch
20.3.2 Projekt- und Quellcodeverwaltung
20.3.3 Entwicklungsumgebungen, Build- und Testsysteme
20.3.4 Monitoring und Bugtracking
20.4 Fazit
20.5 Literatur und Links
Stichwortverzeichnis
Rechtliche Hinweise
Über den Autor
← Prev
Back
Next →
← Prev
Back
Next →