Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Handbuch für Softwareentwickler
Das Standardwerk für professionelles Software Engineering
Buch von Veikko Krypczyk (u. a.)
Sprache: Deutsch

49,90 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

auf Lager, Lieferzeit 1-2 Werktage

Kategorien:
Beschreibung

Das Standardwerk für professionelles Software Engineering. Jeder Entwickler weiß, dass es mit der Kenntnis von Sprachen und Programmierplattformen nicht getan ist. Wer erfolgreich Software entwickeln möchte, sollte mit vielen Fachgebieten und Methoden vertraut sein - von der Architektur über Datenhaltung, Anforderungsmanagement, Sicherheitsfragen bis zum Projektmanagement. Hier finden Sie eine umfassende Behandlung dieser Themenvielfalt. Das Autorenteam gibt praktische Empfehlungen zu grundlegenden und aktuellen Fragen der professionellen Softwareentwicklung. Das theoretische Fundament und die gut erläuterten Fachbegriffe sind dabei niemals Selbstzweck, sondern stehen im Dienst der Kunst, für Ihre Kunden gute Software zu entwickeln

Aus dem Inhalt:

  • Grundlagen: Algorithmen und Datenstrukturen
  • Anforderungsanalyse, Planung und Entwurf
  • Gelungene User Interfaces
  • Kundenzufriedenheit und Benutzerfreundlichkeit
  • Migration - vom Altsystem zur zeitgemäßen Anwendung
  • Datensicherheit, Datenschutz und Verschlüsselung
  • Guter Code und Qualitätsmaßstäbe
  • Plattformübergreifende Entwicklung
  • Parallelprogrammierung
  • Softwaretesting
  • Mobile Computing im Enterprise-Umfeld
  • Überblick über Werkzeuge wie Entwicklungsumgebungen und Versionsverwaltung

Das Standardwerk für professionelles Software Engineering. Jeder Entwickler weiß, dass es mit der Kenntnis von Sprachen und Programmierplattformen nicht getan ist. Wer erfolgreich Software entwickeln möchte, sollte mit vielen Fachgebieten und Methoden vertraut sein - von der Architektur über Datenhaltung, Anforderungsmanagement, Sicherheitsfragen bis zum Projektmanagement. Hier finden Sie eine umfassende Behandlung dieser Themenvielfalt. Das Autorenteam gibt praktische Empfehlungen zu grundlegenden und aktuellen Fragen der professionellen Softwareentwicklung. Das theoretische Fundament und die gut erläuterten Fachbegriffe sind dabei niemals Selbstzweck, sondern stehen im Dienst der Kunst, für Ihre Kunden gute Software zu entwickeln

Aus dem Inhalt:

  • Grundlagen: Algorithmen und Datenstrukturen
  • Anforderungsanalyse, Planung und Entwurf
  • Gelungene User Interfaces
  • Kundenzufriedenheit und Benutzerfreundlichkeit
  • Migration - vom Altsystem zur zeitgemäßen Anwendung
  • Datensicherheit, Datenschutz und Verschlüsselung
  • Guter Code und Qualitätsmaßstäbe
  • Plattformübergreifende Entwicklung
  • Parallelprogrammierung
  • Softwaretesting
  • Mobile Computing im Enterprise-Umfeld
  • Überblick über Werkzeuge wie Entwicklungsumgebungen und Versionsverwaltung
Über den Autor
Prof. Dr. Veikko Krypczyk lehrt u. a. Informatik und Wirtschaftsinformatik. Darüber hinaus ist er Softwareentwickler mit Leidenschaft und begeistert sich für moderne Technologien und Vorgehensweisen. Er publiziert regelmäßig in Fachzeitschriften und spricht auf IT-Konferenzen.
Zusammenfassung
Mit realen Beispielen, vielen Grafiken und Best Practices
Inhaltsverzeichnis
Materialien zum Buch ... 20

Vorwort ... 21

TEIL I. Überblick ... 23
1. Überblick ... 25

1.1 ... Berufswunsch Softwareentwickler ... 25

1.2 ... Über dieses Buch ... 32

1.3 ... Quellen der zitierten Statistiken ... 37

2. Programmierung als Kern der Softwareentwicklung ... 39

2.1 ... Die Programmierung ... 39

2.2 ... Paradigmen der Softwareentwicklung ... 43

2.3 ... Objektorientierte Programmentwicklung ... 44

2.4 ... Programmiersprachen ... 66

2.5 ... Essenzielle Sprachmerkmale ... 76

2.6 ... Fazit und Ausblick ... 106

2.7 ... Literatur und Links ... 107

3. Algorithmen und Datenstrukturen ... 109

3.1 ... Algorithmen als Kernelemente des Programms ... 110

3.2 ... Entwurf von Algorithmen ... 115

3.3 ... Sortieren und Suchen als Basisalgorithmen ... 128

3.4 ... Elementare Datenstrukturen ... 148

3.5 ... Zusammenfassung und Ausblick ... 170

3.6 ... Literatur und Links ... 172

TEIL II. Der Softwarelebenszyklus ... 175
4. Softwareprojekte professionell planen ... 177

4.1 ... Der Wasserfall ... 178

4.2 ... Iterative Entwicklung -- schrittweise zum Ziel ... 183

4.3 ... Das V-Modell -- eine Struktur hauptsächlich für Projekte der öffentlichen Hand ... 185

4.4 ... Bessere Risikobeherrschung durch das Spiralmodell ... 186

4.5 ... Agile Ansätze -- der Komplexität und Unsicherheit mit Flexibilität begegnen ... 187

4.6 ... Softwareentwicklung und die Schnittstellen zum Projektmanagement ... 199

4.7 ... Ist Agilität heute alternativlos? ... 207

4.8 ... Literatur und Links ... 209

5. Die Anforderungsanalyse -- Startpunkt der Entwicklung ... 211

5.1 ... Überblick und Zielstellung ... 211

5.2 ... Ausgangssituation und Notwendigkeit ... 214

5.3 ... Anforderungen ermitteln ... 218

5.4 ... Klassische Anforderungsanalyse ... 237

5.5 ... Agile Anforderungsanalyse ... 248

5.6 ... Toolunterstützung ... 252

5.7 ... Fazit ... 256

5.8 ... Literatur und Links ... 256

6. Der Entwurf des Softwaresystems ... 259

6.1 ... Die Softwarearchitektur als Basis für Erfolg und Wartbarkeit eines Softwaresystems ... 260

6.2 ... Architekturparadigmen ... 266

6.3 ... Entwurfsmuster als Baupläne ... 291

6.4 ... Entwurfsunterstützung durch grafische Modellierung ... 297

6.5 ... Weitere Entwurfsentscheidungen ... 301

6.6 ... Erfolgreiche Entwürfe mithilfe von Prototypen ... 304

6.7 ... Zusammenfassung und Fazit ... 312

6.8 ... Literatur und Links ... 313

7. Die Implementierung schafft den Kern der Anwendung ... 315

7.1 ... Die Entwicklung der Benutzerschnittstelle ... 316

7.2 ... Die Businesslogik umsetzen ... 346

7.3 ... Die Datenwelt anbinden ... 348

7.4 ... Zusammenfassung und Fazit ... 351

7.5 ... Literatur und Links ... 351

8. Testen als Voraussetzung für fehlerarme Software ... 353

8.1 ... Zur Notwendigkeit von Softwaretests ... 354

8.2 ... Testgetriebene Entwicklung ... 355

8.3 ... Ein Überblick über wichtige Testarten ... 357

8.4 ... Testmethoden ... 361

8.5 ... Testebenen ... 369

8.6 ... Technik des Testens ... 387

8.7 ... Fazit und Zusammenfassung ... 391

8.8 ... Literatur und Links ... 391

9. Distribution -- das Produkt muss zum Kunden ... 393

9.1 ... Die Softwaredistribution im Überblick ... 394

9.2 ... Automatisierte Softwareverteilung ... 405

9.3 ... Verbesserte Zusammenarbeit durch DevOps ... 408

9.4 ... Die Nutzung der App Stores ... 411

9.5 ... Die Technik der Softwarebereitstellung ... 417

9.6 ... Fazit ... 437

9.7 ... Literatur und Links ... 437

10. Vom Altsystem zur zeitgemäßen Anwendung ... 439

10.1 ... Technologien im Wandel ... 440

10.2 ... Notwendigkeit einer Softwaremigration ... 442

10.3 ... Ziele einer Softwaremigration ... 444

10.4 ... Planung der Migration ... 444

10.5 ... Migrationsstrategien ... 447

10.6 ... Arten der Migration ... 451

10.7 ... Wirtschaftlichkeitsbetrachtungen ... 453

10.8 ... Stolpersteine ... 454

10.9 ... Eine Fallstudie ... 455

10.10 ... Literatur und Links ... 473

TEIL III. Technologien und Methoden ... 475
11. Webtechnologien ... 477

11.1 ... Einführung ... 477

11.2 ... Zusammenspiel von HTML, CSS und JavaScript ... 478

11.3 ... Die Struktur einer Webseite mit HTML ... 480

11.4 ... HTML Basics ... 481

11.5 ... Das Layout und das Design einer Webseite mit CSS ... 487

11.6 ... Logik und Interaktion mit JavaScript ... 504

11.7 ... Klassenbibliotheken und Frameworks ... 519

11.8 ... Fazit ... 529

11.9 ... Literatur und Links ... 529

12. Apps für mobile Systeme ... 531

12.1 ... Arten von Apps ... 533

12.2 ... Native Apps ... 535

12.3 ... Web-Apps ... 553

12.4 ... Hybride Apps ... 555

12.5 ... Plattformübergreifende Ansätze ... 557

12.6 ... Auswahlkriterien ... 571

12.7 ... Sensoren ... 577

12.8 ... Emulation und Simulation ... 584

12.9 ... Backend as Service ... 591

12.10 ... Fazit ... 599

12.11 ... Literatur und Links ... 599

13. Plattform- und geräteübergreifende Entwicklung ... 601

13.1 ... Nutzerinnen und Nutzer im Fokus ... 602

13.2 ... Ansätze für die plattformübergreifende Entwicklung ... 604

13.3 ... Ein Beispiel mit RAD Studio ... 614

13.4 ... Fazit ... 617

13.5 ... Literatur und Links ... 618

14. Parallelprogrammierung ... 619

14.1 ... Systemtechnische Ebene ... 620

14.2 ... Anwendungsebene ... 626

14.3 ... Programmiertechnische Ebene ... 634

14.4 ... Zusammenfassung ... 638

14.5 ... Literatur und Links ... 638

15. Kundenzufriedenheit durch Nutzerorientierung ... 641

15.1 ... Die Nutzer im Fokus ... 644

15.2 ... Benutzerschnittstellen im Wandel ... 648

15.3 ... Gestaltung von Benutzeroberflächen ... 660

15.4 ... Literatur und Links ... 668

16. Datensicherheit und Datenschutz ... 671

16.1 ... Begriffe und Angrenzungen ... 674

16.2 ... Überblick über die Datenschutz-Grundverordnung ... 676

16.3 ... Datenschutz und Cloud-Computing ... 679

16.4 ... Technischer Datenschutz ... 681

16.5 ... Fazit ... 697

16.6 ... Literatur und Links ... 697

17. Grundlagen der Datenhaltung ... 699

17.1 ... Datenbank -- ein Ort, um Ordnung zu halten ... 699

17.2 ... Phasen der Datenbankentwicklung ... 708

17.3 ... Relationale Datenbanken ... 711

17.4 ... NoSQL-Datenbanken ... 726

17.5 ... Fazit und Ausblick ... 735

17.6 ... Literatur und Links ... 735

18. Werkzeugunterstützung ... 737

18.1 ... Die Rolle von Werkzeugen ... 738

18.2 ... Integrierte Entwicklungsumgebungen als Multifunktionswerkzeuge ... 739

18.3 ... Versionsverwaltungen als Voraussetzung für eine erfolgreiche Entwicklung ... 744

18.4 ... Weitere Softwaretools für die Entwicklung ... 754

18.5 ... Fazit und Ausblick ... 758

18.6 ... Literatur und Links ... 759

19. Qualitätssicherung und Clean Code Development ... 761

19.1 ... Das Verständnis von Softwarequalität ... 761

19.2 ... Ansätze zur Bestimmung der Softwarequalität ... 764

19.3 ... Softwarequalität zwischen Nutzen und Kosten ... 769

19.4 ... Qualität verbessern ... 771

19.5 ... Eine gesunde Fehlerkultur ... 786

19.6 ... Fazit und Zusammenfassung ... 793

19.7 ... Literatur und Links ... 793

TEIL IV. Trends ... 795
20. Enterprise Mobile Computing ... 797

20.1 ... Einsatzszenarien ... 798

20.2 ... Bring Your Own Device ... 807

20.3 ... Technische Aspekte für Enterprise Mobile Computing ... 817

20.4 ... Fazit und Ausblick ... 829

20.5 ... Literatur und Links ... 829

21. Internet of Things ... 831

21.1 ... Stand heute und Zukunftsszenarien ... 832

21.2 ... IoT-Infrastruktur ... 841

21.3 ... Hardware auf kleinstem Raum ... 850

21.4 ... Fallbeispiel: Windows 10 auf dem Raspberry Pi ... 854

21.5 ... Fazit und Ausblick ... 866

21.6 ... Literatur und Links...
Details
Erscheinungsjahr: 2021
Fachbereich: Programmiersprachen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 896 S.
ISBN-13: 9783836279772
ISBN-10: 3836279770
Sprache: Deutsch
Herstellernummer: 459/07977
Einband: Gebunden
Autor: Krypczyk, Veikko
Bochkor, Elena
Auflage: 2. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 242 x 188 x 55 mm
Von/Mit: Veikko Krypczyk (u. a.)
Erscheinungsdatum: 23.12.2021
Gewicht: 1,768 kg
Artikel-ID: 120565044
Über den Autor
Prof. Dr. Veikko Krypczyk lehrt u. a. Informatik und Wirtschaftsinformatik. Darüber hinaus ist er Softwareentwickler mit Leidenschaft und begeistert sich für moderne Technologien und Vorgehensweisen. Er publiziert regelmäßig in Fachzeitschriften und spricht auf IT-Konferenzen.
Zusammenfassung
Mit realen Beispielen, vielen Grafiken und Best Practices
Inhaltsverzeichnis
Materialien zum Buch ... 20

Vorwort ... 21

TEIL I. Überblick ... 23
1. Überblick ... 25

1.1 ... Berufswunsch Softwareentwickler ... 25

1.2 ... Über dieses Buch ... 32

1.3 ... Quellen der zitierten Statistiken ... 37

2. Programmierung als Kern der Softwareentwicklung ... 39

2.1 ... Die Programmierung ... 39

2.2 ... Paradigmen der Softwareentwicklung ... 43

2.3 ... Objektorientierte Programmentwicklung ... 44

2.4 ... Programmiersprachen ... 66

2.5 ... Essenzielle Sprachmerkmale ... 76

2.6 ... Fazit und Ausblick ... 106

2.7 ... Literatur und Links ... 107

3. Algorithmen und Datenstrukturen ... 109

3.1 ... Algorithmen als Kernelemente des Programms ... 110

3.2 ... Entwurf von Algorithmen ... 115

3.3 ... Sortieren und Suchen als Basisalgorithmen ... 128

3.4 ... Elementare Datenstrukturen ... 148

3.5 ... Zusammenfassung und Ausblick ... 170

3.6 ... Literatur und Links ... 172

TEIL II. Der Softwarelebenszyklus ... 175
4. Softwareprojekte professionell planen ... 177

4.1 ... Der Wasserfall ... 178

4.2 ... Iterative Entwicklung -- schrittweise zum Ziel ... 183

4.3 ... Das V-Modell -- eine Struktur hauptsächlich für Projekte der öffentlichen Hand ... 185

4.4 ... Bessere Risikobeherrschung durch das Spiralmodell ... 186

4.5 ... Agile Ansätze -- der Komplexität und Unsicherheit mit Flexibilität begegnen ... 187

4.6 ... Softwareentwicklung und die Schnittstellen zum Projektmanagement ... 199

4.7 ... Ist Agilität heute alternativlos? ... 207

4.8 ... Literatur und Links ... 209

5. Die Anforderungsanalyse -- Startpunkt der Entwicklung ... 211

5.1 ... Überblick und Zielstellung ... 211

5.2 ... Ausgangssituation und Notwendigkeit ... 214

5.3 ... Anforderungen ermitteln ... 218

5.4 ... Klassische Anforderungsanalyse ... 237

5.5 ... Agile Anforderungsanalyse ... 248

5.6 ... Toolunterstützung ... 252

5.7 ... Fazit ... 256

5.8 ... Literatur und Links ... 256

6. Der Entwurf des Softwaresystems ... 259

6.1 ... Die Softwarearchitektur als Basis für Erfolg und Wartbarkeit eines Softwaresystems ... 260

6.2 ... Architekturparadigmen ... 266

6.3 ... Entwurfsmuster als Baupläne ... 291

6.4 ... Entwurfsunterstützung durch grafische Modellierung ... 297

6.5 ... Weitere Entwurfsentscheidungen ... 301

6.6 ... Erfolgreiche Entwürfe mithilfe von Prototypen ... 304

6.7 ... Zusammenfassung und Fazit ... 312

6.8 ... Literatur und Links ... 313

7. Die Implementierung schafft den Kern der Anwendung ... 315

7.1 ... Die Entwicklung der Benutzerschnittstelle ... 316

7.2 ... Die Businesslogik umsetzen ... 346

7.3 ... Die Datenwelt anbinden ... 348

7.4 ... Zusammenfassung und Fazit ... 351

7.5 ... Literatur und Links ... 351

8. Testen als Voraussetzung für fehlerarme Software ... 353

8.1 ... Zur Notwendigkeit von Softwaretests ... 354

8.2 ... Testgetriebene Entwicklung ... 355

8.3 ... Ein Überblick über wichtige Testarten ... 357

8.4 ... Testmethoden ... 361

8.5 ... Testebenen ... 369

8.6 ... Technik des Testens ... 387

8.7 ... Fazit und Zusammenfassung ... 391

8.8 ... Literatur und Links ... 391

9. Distribution -- das Produkt muss zum Kunden ... 393

9.1 ... Die Softwaredistribution im Überblick ... 394

9.2 ... Automatisierte Softwareverteilung ... 405

9.3 ... Verbesserte Zusammenarbeit durch DevOps ... 408

9.4 ... Die Nutzung der App Stores ... 411

9.5 ... Die Technik der Softwarebereitstellung ... 417

9.6 ... Fazit ... 437

9.7 ... Literatur und Links ... 437

10. Vom Altsystem zur zeitgemäßen Anwendung ... 439

10.1 ... Technologien im Wandel ... 440

10.2 ... Notwendigkeit einer Softwaremigration ... 442

10.3 ... Ziele einer Softwaremigration ... 444

10.4 ... Planung der Migration ... 444

10.5 ... Migrationsstrategien ... 447

10.6 ... Arten der Migration ... 451

10.7 ... Wirtschaftlichkeitsbetrachtungen ... 453

10.8 ... Stolpersteine ... 454

10.9 ... Eine Fallstudie ... 455

10.10 ... Literatur und Links ... 473

TEIL III. Technologien und Methoden ... 475
11. Webtechnologien ... 477

11.1 ... Einführung ... 477

11.2 ... Zusammenspiel von HTML, CSS und JavaScript ... 478

11.3 ... Die Struktur einer Webseite mit HTML ... 480

11.4 ... HTML Basics ... 481

11.5 ... Das Layout und das Design einer Webseite mit CSS ... 487

11.6 ... Logik und Interaktion mit JavaScript ... 504

11.7 ... Klassenbibliotheken und Frameworks ... 519

11.8 ... Fazit ... 529

11.9 ... Literatur und Links ... 529

12. Apps für mobile Systeme ... 531

12.1 ... Arten von Apps ... 533

12.2 ... Native Apps ... 535

12.3 ... Web-Apps ... 553

12.4 ... Hybride Apps ... 555

12.5 ... Plattformübergreifende Ansätze ... 557

12.6 ... Auswahlkriterien ... 571

12.7 ... Sensoren ... 577

12.8 ... Emulation und Simulation ... 584

12.9 ... Backend as Service ... 591

12.10 ... Fazit ... 599

12.11 ... Literatur und Links ... 599

13. Plattform- und geräteübergreifende Entwicklung ... 601

13.1 ... Nutzerinnen und Nutzer im Fokus ... 602

13.2 ... Ansätze für die plattformübergreifende Entwicklung ... 604

13.3 ... Ein Beispiel mit RAD Studio ... 614

13.4 ... Fazit ... 617

13.5 ... Literatur und Links ... 618

14. Parallelprogrammierung ... 619

14.1 ... Systemtechnische Ebene ... 620

14.2 ... Anwendungsebene ... 626

14.3 ... Programmiertechnische Ebene ... 634

14.4 ... Zusammenfassung ... 638

14.5 ... Literatur und Links ... 638

15. Kundenzufriedenheit durch Nutzerorientierung ... 641

15.1 ... Die Nutzer im Fokus ... 644

15.2 ... Benutzerschnittstellen im Wandel ... 648

15.3 ... Gestaltung von Benutzeroberflächen ... 660

15.4 ... Literatur und Links ... 668

16. Datensicherheit und Datenschutz ... 671

16.1 ... Begriffe und Angrenzungen ... 674

16.2 ... Überblick über die Datenschutz-Grundverordnung ... 676

16.3 ... Datenschutz und Cloud-Computing ... 679

16.4 ... Technischer Datenschutz ... 681

16.5 ... Fazit ... 697

16.6 ... Literatur und Links ... 697

17. Grundlagen der Datenhaltung ... 699

17.1 ... Datenbank -- ein Ort, um Ordnung zu halten ... 699

17.2 ... Phasen der Datenbankentwicklung ... 708

17.3 ... Relationale Datenbanken ... 711

17.4 ... NoSQL-Datenbanken ... 726

17.5 ... Fazit und Ausblick ... 735

17.6 ... Literatur und Links ... 735

18. Werkzeugunterstützung ... 737

18.1 ... Die Rolle von Werkzeugen ... 738

18.2 ... Integrierte Entwicklungsumgebungen als Multifunktionswerkzeuge ... 739

18.3 ... Versionsverwaltungen als Voraussetzung für eine erfolgreiche Entwicklung ... 744

18.4 ... Weitere Softwaretools für die Entwicklung ... 754

18.5 ... Fazit und Ausblick ... 758

18.6 ... Literatur und Links ... 759

19. Qualitätssicherung und Clean Code Development ... 761

19.1 ... Das Verständnis von Softwarequalität ... 761

19.2 ... Ansätze zur Bestimmung der Softwarequalität ... 764

19.3 ... Softwarequalität zwischen Nutzen und Kosten ... 769

19.4 ... Qualität verbessern ... 771

19.5 ... Eine gesunde Fehlerkultur ... 786

19.6 ... Fazit und Zusammenfassung ... 793

19.7 ... Literatur und Links ... 793

TEIL IV. Trends ... 795
20. Enterprise Mobile Computing ... 797

20.1 ... Einsatzszenarien ... 798

20.2 ... Bring Your Own Device ... 807

20.3 ... Technische Aspekte für Enterprise Mobile Computing ... 817

20.4 ... Fazit und Ausblick ... 829

20.5 ... Literatur und Links ... 829

21. Internet of Things ... 831

21.1 ... Stand heute und Zukunftsszenarien ... 832

21.2 ... IoT-Infrastruktur ... 841

21.3 ... Hardware auf kleinstem Raum ... 850

21.4 ... Fallbeispiel: Windows 10 auf dem Raspberry Pi ... 854

21.5 ... Fazit und Ausblick ... 866

21.6 ... Literatur und Links...
Details
Erscheinungsjahr: 2021
Fachbereich: Programmiersprachen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 896 S.
ISBN-13: 9783836279772
ISBN-10: 3836279770
Sprache: Deutsch
Herstellernummer: 459/07977
Einband: Gebunden
Autor: Krypczyk, Veikko
Bochkor, Elena
Auflage: 2. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 242 x 188 x 55 mm
Von/Mit: Veikko Krypczyk (u. a.)
Erscheinungsdatum: 23.12.2021
Gewicht: 1,768 kg
Artikel-ID: 120565044
Warnhinweis

Ähnliche Produkte

Ähnliche Produkte