Softwareentwicklung in jungen Internetunternehmen | 1 |
Inhaltsverzeichnis | 3 |
Abbildungsverzeichnis | 6 |
Tabellenverzeichnis | 7 |
1 Einführung und Motivation | 8 |
2 Net Economy | 9 |
2.1 Definitionen | 9 |
2.1.1 Net Economy | 9 |
2.1.2 E-Buisness | 10 |
2.1.3 Junge Internetunternehmen | 10 |
2.2 Die Entwicklung der Net Economy | 11 |
2.3 Die elektronische Wertschöpfung | 11 |
2.4 Das Unternehmensumfeld in der Net Economy | 14 |
2.4.1 Das technologische Umfeld | 14 |
2.4.2 Das ökonomische Umfeld | 16 |
2.4.3 Das soziale Umfeld | 17 |
2.4.4 Das politische Umfeld | 18 |
2.5 Wettbewerbsvorteile in der Net Economy | 19 |
2.5.1 Anpassungsfähigkeit | 19 |
2.5.2 First Mover Advantage | 20 |
2.5.3 Informationen als Wettbewerbsvorteil | 20 |
2.5.4 Das Alleinstellungsmerkmal | 21 |
2.6 Sondersituation Unternehmensgründung | 21 |
2.6.1 Gründungsablauf | 22 |
2.6.2 Merkmale von Gründungsunternehmen | 23 |
2.7 Zusammenfassung | 24 |
3 Ansätze des Software Engineering | 25 |
3.1 Definitionen | 27 |
3.1.1 Entwicklungsprozess | 27 |
3.1.2 Software Engineering | 28 |
3.2 Planungsgetriebene Softwareentwicklung | 29 |
3.2.1 Das klassische sequenzielle Phasenmodell | 30 |
3.2.2 Evolutionäre Prozessmodelle | 31 |
3.2.3 Inkrementelle Prozessmodelle | 33 |
3.2.4 Ratinal Unified Process | 34 |
3.3 Agile Softwareentwicklung | 37 |
3.3.1 Das Agile Manifest | 37 |
3.3.2 Die Prinzipien der agilen Softwareentwicklung | 38 |
3.3.3 Der Faktor Mensch | 40 |
3.3.4 Einfachheit | 41 |
3.3.5 Änderungskosten | 43 |
3.3.5 Grenzen | 45 |
3.3.6 Beispiele für agile Methoden | 46 |
3.4 Web Engineering | 48 |
3.4.1 Charakteristika von Web-Anwendungen | 49 |
3.4.2 Ansätze des Web Engineering | 51 |
4 Softwarearchitektur | 53 |
4.1 Architekturdesign | 53 |
4.2 Einflüsse auf die Softwarearchitektur | 54 |
4.2.1 Organisatorische Einflussfaktoren | 55 |
4.2.2 Technologishe Faktoren | 56 |
4.2.3 Produktfaktoren | 56 |
4.2.4 Zusammenfassung | 57 |
4.3 Kriterien für einen korrekten Architekturentwurf | 58 |
4.4 Architekturmuster | 59 |
4.4.1 Die Client/Server-Architektur | 59 |
4.4.2 Die 3-Schichten-Architektur | 60 |
4.4.3 Service-Orientierte Architekturen (SOA) | 60 |
4.4.4 REpresentational State Transfer (REST) | 61 |
4.5 Modellierungsziele einer Softwarearchitektur | 62 |
5 Internetprojekte in Gründungsunternehmen | 64 |
5.1 Definition Internetprojekt | 64 |
5.2 Traditionelle Projekteigenschaften | 64 |
5.2.1 Der Projektumfang | 65 |
5.2.2 Die Projektdauer | 66 |
5.2.3 Die Projektbesonderheit | 66 |
5.2.4 Die Projektkomplexität | 66 |
5.2.5 Die Projektschwierigkeit | 67 |
5.2.6 Die Projektbedeutung | 67 |
5.2.7 Das Projektrisiko | 67 |
5.2.8 Die Projektkosten | 67 |
5.2.9 Die Projektkontinuität | 68 |
5.2.10 Die Projektintensität | 68 |
5.2.11 Der Abhängigkeitsgrad | 68 |
5.2.12 Zusammenfassende Betrachtung der Eignung traditioneller Projekteigenschaften | 68 |
5.3 Existierende Ansätze zur Klassifikation von Softwareprojekten | 69 |
5.3.1 Die Crystal Methodenfamilie (Cockburn) | 69 |
5.3.2 Der Polar Chart (Boehm/Turner) | 72 |
5.3.3 Die Houston Matrix (Little) | 78 |
5.4 Eigenschaften von Internetprojekten | 83 |
5.4.1 Die Anzahl der beteiligten Personen | 85 |
5.4.2 Die räumliche Verteilung des Teams | 86 |
5.4.3 Die Fähigkeiten der Entwickler | 87 |
5.4.4 Das Verhältnis zum Kunden | 87 |
5.4.5 Die Unsicherheit durch Technik | 88 |
5.4.6 Die Unsicherheit durch den Markt | 89 |
5.4.7 Der Abhängigkeitsgrad des Projekts | 90 |
5.4.8 Das Domänenwissen der Entwickler | 91 |
6 Softwareentwicklung in jungen Internetunternehmen | 92 |
6.1 Anforderungen an das Architekturdesign | 92 |
6.1.1 Beachtung des Client/Server Paradigmas | 94 |
6.1.2 Ausrichtung auf die Entwicklerfähigkeiten | 95 |
6.1.3 Evaluation der technischen Möglichkeiten | 95 |
6.1.4 Fokus auf nichtfunktionale Kernanforderungen | 96 |
6.1.5 Unsicherheiten beachten | 96 |
6.1.6 Beachtung von Entwurfskriterien | 96 |
6.1.7 Validation der Softwarearchitektur | 96 |
6.1.8 Verfügbarkeit | 97 |
6.1.9 Aktualität | 97 |
6.2 Anforderungen an den Entwicklungsprozess | 97 |
6.2.1 Iterativ und Inkrementell | 98 |
6.2.2 Ausrichtung auf das Architekturdesign | 99 |
6.2.3 Ständige Anpassung | 99 |
6.2.4 Berücksichtigung der Teamgröße | 100 |
6.2.5 Berücksichtigung der Verteilung des Teams | 101 |
6.2.6 Ausrichtung auf die Entwicklerfähigkeiten | 102 |
6.2.7 Einbindung des Kunden | 102 |
6.2.8 Berücksichtigung von Unsicherheitsfaktoren | 103 |
6.2.9 Berücksichtigung von Abhängigkeiten | 103 |
6.2.10 Berücksichtigung des Domänenwissens der Entwickler | 103 |
7 Zusammenfassung und Ausblick | 105 |
Literaturverzeichnis | 108 |