IT-Methoden
Verfahrensweisen, die durch Informationstechnik ermöglicht oder unterstützt, aber auch erst erforderlich werden.
IT-Werkzeuge
In Software umgesetzte Methoden, die durch den Einsatz von Informationstechnik erforderlich sind. Werkzeuge (synonym tools) erfüllen einen oder mehrere Zwecke.
Software Egineering
Definition
zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresysteme
In Software umgesetzte Methoden, die durch den Einsatz von Informationstechnik erforderlich sind. Werkzeuge erfüllen einen oder mehrere Zwecke.
Arten von Software
Branchen-spezifische Software
Brachen-neutrale Software
Standard-Software
Individual-Software
On-Premise
Software-as-a-Service
Meta-Ebene: Produktlebenszyklus
Meta-Ebene: Diffusion of Innovation
Meta-Ebene: Gartner Hype Cycle
ITMW für ITMW
Probleme:
Schnelle Veränderungen
Komplexe Tool-Ökosysteme
Vorherrschende Paradigmen
Geringe Vergleichbarkeit
Unbekannte Anforderungen
Evolution der Werkzeuge
Zweckentfremdung von Werkzeugen
Gegenmittel:
Standardisierung
Visuelle interaktive Analysen
Mitarbeiter-Entwicklung
Zertifizierung
"Train the Trainer" Ansatz
Messen
Co-Development
Beratung
Grundsätzliche Storyline
ITMW-Verständnis
Zusammenspiel von IT-Methoden und Werkzeugen
Bewertung von ITMW
Wie können ITMW entstehen:
Life-Cyccle von ITMW
Method Engineering
ME ist eine Methode zur systematischen Erstellung von Methoden
Wichtige Prinzipien: meta-modeling, reuse, modularity und flexibility
Method Engineering in the fiel of information systems is the “discipline to construct new methods from existing methods.” It focuses on the “design, construction and evaluation of methods, techniques and support tools” for information systems development.
Elemente von Methoden
Aktivität
Planbare Verrichtungseinheit in Ablauffolge, die Ergebnisse erzeugen
Ergebnisse
Input und Output von Aktivitäten, die verändert oder genutzt werden
Rolle
Zusammenfassung von Entwurfsaktivitäten aus Sicht eines Aufgabenträgers
Metamodell
Struktur von Entwurfsdaten über alle Entwurfsergebnisse als Datenmodell
Techniken
Anleitungen, wie Entwurfsergebnisse erzeugt werden können
Vorgehensmöglichkeiten bei der Softwareauswahl
SD
Mustervorgehen für ERP
Projektvorbereitung
Projektziele festlegen
Methodische Vorbereitungen
Organisatorische Vorbereitungen
Ist-Analyse
Soll-Konzeption
Systemevaluation
(Customizing & Installation)
(Schulung)
Vorgehen für ITMW-Auswahl
1. Vorbereitung
Stakeholder-Analyse
Ist-Situation erheben
Vorgehen festlegen
2. Anforderungen erheben
Features
Szenarien
K.O.-Kriterien
Lastenheft erstellen
3. Marktübersicht
Longlist erstellen
Shortlist erstellen
Request for Information (RFI)
Request for Proposal (RFP)
4. Demonstration
2-3 zur Demonstration
1-2 Testinstallation
Stakeholder Feedback
5. Entscheidung
Preisverhandlungen
6. Einführung
Datenmigration
Schulung
Dive-In: Requirements Engineering
Ziel:
Ermittlung der Anforderungen des Auftraggebers an das zu entwickelnde System.
Mittel:
Anforderungen werden schriftlich in einem Dokument (Anforderungskatalog) festgehalten.
Bedeutung:
Entscheidender Einfluss auf den Prozess/Projektverlauf.
Wesentlicher Bestandteil zur Sicherung von Qualität und Produktivität.
Beeinflusst Akzeptanz und Wartbarkeit durch Entwicklung der Anforderungen im direkten Dialog mit Kunden und Anwendern.
Dive-IN: Requirements Engineering
Phasen der Anforderungsanalyse:
Aufnahme und Erfassung
Strukturierung und Abstimmung
Prüfung und Bewertung
Fachbegriffe der Softwaretechnik sind Anwendern/Auftraggebern nicht vertraut.
Fachbegriffe des Kunden sind Entwicklern unbekannt.
Notwendigkeit einer Interpretationsfunktion.
"Übersetzung" der beiden Begriffswelten erforderlich.
Begriffsdefinitionen im Dokument vorsehen.
Dive-In: Lastenheft (nach Knopper)
Ausgangssitation und Zielsetzung
Produkteiinsatz
Produktübersicht
Funktionale Anforderungen, Nichtfunktionale Anforderungen (Funktionalität, Benutzbarkeit, Zuverlässigkeit, Effizienz, Änderbarkeit, Übertragbarkeit)
Risikoakzeptanz
Skizze des Lebenszyklus und der Systemarchitektur
Lieferumfang
Abnahmekriterien
IT-Management:
Worum muss sich das IT-Management noch kümmern?
Probleme für das IT-Management
Innovation
Mehrwert schaffen
Wettbewerbsfaktor
stabiler Betrieb Kosten sparen
Drei Defizite des bestehenden IT-Managements
Der unklare Wertbeitrag der IT
Konzentration auf Informatikmethoden
Die gedankliche und führungstechnische Trennung zwischen Business und IT
Methode: Kostenmanagement
Finanzplanung
Kostencontrolling
Analysen
Benchmarking
Als Ziel wird häufig die “Bill of IT” genannt, d.h. die Aufschlüsselung einzelner Leistung, deren Beitrag und Kosten. (Gemeinsamkeit mit IT-Service-Management)
Probleme des Kostenmanagements:
Schwierige Kostenverteilung aufgrund vielschichtiger IT-Kosten.
IT oft unter den größten Kostenblöcken.
Verhältnis von Betriebs- zu Investitionsausgaben im Schnitt 80% zu 20%.
Ziel: Mehr Geld für Geschäftsziele durch Verlagerung zu Investitionsausgaben.
Vermeidung von Investitionen, die als Betriebsausgaben realisierbar sind (z.B. durch Cloud Computing oder Outsourcing).
Typischer IT-Strategieprozess
Bestandteile der IT-Strategie
Strategie nach Mintzberg
3P-Framework
Praktiker:
Menschen, die Strategien umsetzen.
Praktiken:
Beschreiben Routinen, Normen und Werkzeuge der Strategieumsetzung.
In Sets von (Teil-)Praktiken gebündelt.
Praxis:
Umfasst konkrete soziomaterielle "strategische Handlungen".
Bezieht sich auf geteilte Routinen und angeeignete Artefakte der Strategieumsetzung.
Episoden folgen wiederholten, sequenziellen "Prozess"-Mustern
Probleme bei IT-Strategie:
Strategy Execution Gap:
Lücke zwischen Strategieentwicklung und -umsetzung.
Strategy Awareness:
Mangelnde strategische Bewusstheit und Verständnis.
Methode: BPM
Business Process Management ist ein systematischer Ansatz, um sowohl automatisierte als auch nicht automatisierte Prozesse zu erfassen, zu dokumentieren, zu optimieren, auszuführen. zu messen und zu überwachen.
BPM im Hype Cycle
Enterprise Architecture Management
Unternehmensarchitektur stellt ein aggregiertes Gesamtbild einer Organisation dar mit dem Ziel, die Gesamtzusammenhänge zu strukturieren und gleichzeitig den Korridor für die zukünftige Entwicklung und Gestaltung aufzuzeigen.
EAM im Hype Cycle
Business-IT-Management
Behandelt institutionalisierte Prozesse, Aktivitäten und Rollen.
Umfasst Planung, Entscheidung, Durchführung und Kontrolle des IT-Einsatzes in Unternehmen.
Betont die untrennbare Verbindung von fachlichen und technischen Aspekten.
Werkzeugintegration im Hype Cycle
Software-Entwicklung (SE)
Software-Entwicklung (SE):
Auch bekannt als Software Engineering oder Softwaretechnik.
Zielgerichtete Bereitstellung und systematische Anwendung von Prinzipien, Methoden und Werkzeugen für die ingenieurmäßige Entwicklung und Anwendung umfangreicher Softwaresysteme.
CASE (Computer Aided/Assisted Software Engineering):
Begriff für rechnergestützte Softwareentwicklung.
Betont den wesentlichen Einsatz von Werkzeugen.
Software-Architektur
Umfasst den Bauplan und die Konstruktionsregeln eines Softwaresystems. Sie kann auf unterschiedlichen Granularitätsebenen spezifiziert werden. Konstruktionsregeln für Softwarearchitekturen werden insbesondere durch Architekturmuster bestimmt.
Sichten auf Software-Architektur
Fachliche Sicht
Anforderungen, Kooperation & Benutzbarkeit
Statische Sicht
Subsysteme, Schnittstellen,Beziehungen & Verantwortlichkeiten
Verteilungssicht
Rechner, Prozesse & Netzwerke
Laufzeitsicht
Interaktion, Synchronisation & Performanz
Architektur-Erosion
Verschlechterung der ursprünglichen Struktur einer IT-Lösung.
Entsteht durch unkoordinierte Änderungen oder Vernachlässigung der Designprinzipien.
Kann zu Problemen bei Wartung, Skalierung und Erweiterung führen.
Kosten durch Architektur-Erosion
Software ist schwerer zu verstehen
Erweiterungen verursachen viele Seiteneffekte
Zeit & Kosten steigen
Neue Fehler werden produziert
Erfüllung der Qualitätsmerkmale sinkt
Große Einheiten vermeiden
Bad Smell (“Gott-Klasse”)
enthält 90% des Quelltextes und ist für alles zuständig
Methoden, die mehrere Bildschirmseiten lang sind
sind schlecht wartbar
Klassen mit mehreren hundert Methoden/Exemplarvariablen
sind meist zu groß
—> Gleichmäßig große Klassen, Packages, Subsysteme und Schichten entwerfen
Größenverhältnis und Kopplungsgrad
God Class: Steuerung der Oberfläche, Steuerung der fachlichen Abläufe, Datenbankverbindung
mit Namen {} Manager, {*} Service
Kopplung: Steuerungsklassen benutzen 100-150 andere Klassen
kein objektorientierter sondern ein prozedualer Entwurf
—> Ausgewogene Größenverhältnisse führen zu geringerer Kopplung
Architecture Tradeoff Analysis Method (ATAM)
Zweck:
Bewertung und Analyse von Softwarearchitekturen.
Schwerpunkte:
Identifikation von kritischen Architekturszenarien.
Bewertung von Qualitätsattributen
Ziele:
Früherkennung von Risiken und Schwächen in der Architektur.
Unterstützung bei Entscheidungen durch Trade-off-Analysen.
Ableitung von Handlungsempfehlungen für Architekturverbesserungen.
ATAM-Schritte (2)
Bewertungsmethode
Stakeholder Methode vorstellen, Bedeutung von Qualitätszielen klarstellen
Geschäftsziele vorstellen
wichtigste Projektziele & Faktoren, die für wirtschaftlichen Erfolg notwendig sind
Architektur präsentieren
Mit Bezug auf vorher genannten Geschäftsziele
Architekturansätze identifizieren
Welche Lösungsansätze für welche Einflussfaktoren verwendet, Architekturstile, Muster, keine Analyse
Qualitätsbaum erstellen
Qualitätsmerkmale identifizieren, durch Sezenarien priorisieren
ATAM-Schritte (3)
Architekturansätze analysieren (1)
Zusammenhänge zwischen wichtigsten Szenarien & Architekturenentscheidungen herstellen, um zu belgen dass Architektur die Szenarien erfüllen kann
Szenario-Brainstorming
weitere Szenarien erstellt, mehr Stakeholder einbinden als bei Qualitätsbaumerstellung
Architekturansätze analysieren (2)
wichtigste Szenarien aus vorgängigen Schritt als Grundlage
Ergebniss präsentieren
auch Risikothemen darstellen
ATAM - Typische Ergebnisse
Identifizierte Architekturansätze
Qualitätsbaum
Qualitätsszenarien und deren Anwendungen auf die Architektur
Fragen zu spezifischen Qualitätsmerkmalen, die die Architektur erfüllen soll - und die Antworten darauf
Identifizierte riskante und risikolose Entwurfsentscheidungen
Ein Satz von Top-Risiken, die die Business Ziele gefährden
ATAM - Nutzen
Vor allem: Früh identifizierte Risiken
Eindeutige Qualitätsanforderungen
Verbesserte Architekturdokumentation
Dokumentierte Basis für Architekturentschiedungen
Verbesserte Kommunikation zw. Stakeholdern
—> Höhere Qualität der Softwarearchitektur
Architekturanalyse: Vorgehen
Untersuchung der inneren Struktur eines Software-Produkts
Ziel: Verständnis und Bewertung der Architektur
Aufdecken potenzieller Gefahren für Softwarequalität
Berücksichtigung des zukünftigen (Weiter-)Entwicklungsprozesses
Test- Methode
Tests sind in der SE unerlässlich
Aber auch aufwändig und teuer
Mit Hilfe von Werkzeugen wird eine hohe Testautomatisierung angestrebt.
Test - Einornung
Testen ist die Ausführung eines Programms mit der Absicht, Fehler zu finden
und
Dokumentation der genauen Ausführungsbedingungen wie z.B. Version, Testfälle und Resultate
Testpyramide und dazugehörige Werkzeuge
Test-driven Development and Behaviour-driven Development
TDD (Test Driven Development):
Schreiben eines Tests, der fehlschlägt.
Schreiben einfachsten Codes für den bestandenen Test.
Red-Green-Refactor-Schleife bis zur Fertigstellung.
BDD (Behavior Driven Development):
Erstellen einer fehlschlagenden, ausführbaren Spezifikation.
Schreiben einfachsten Codes für bestandene Spezifikation.
Wiederholung bis Release-Kandidat bereit ist.
Unterschied TDD und BDD:
TDD: Entwicklungspraxis, Tests von Entwicklern.
BDD: Team-Methodik, automatisierte Spezifikationen von Benutzern oder Testern.
Nicht-funktionale Anforderungen: Klassifizierung nach ISO/IEC
Funktionalität: Angemessenheit, Richtigkeit
Zuverlässigkeit: Reife, Fehlertoleranz
Benutzbarkeit: Verständlichkeit, Erlernbarkeit
Effizienz: Zeitverhalten, Verbrauchsverhalten
Wartbarkeit/Änderbarkeit: Analysierbarkeit, Modifizierbarkeit
Übertragbarkeit: Anpassbarkeit, Austauschbarkeit
ITIL - Methode
Sammlung von Best Practices für verschiedene Aufgaben des IT-Betriebs
Im Fokus: Kosten einsparen, Zuverlässigkeit steigern
Besonders bekannt: Incident Management, Configuration Management, Service Level Agreements
IT Operations Control (Steuerung des IT-Betriebs) überwacht und steuert die IT Services und die IT Infrastruktur
ITIL im Hype Cycle
ITMW im IT-Betrieb/Operations: Werkzeuge
Großer Markt; alle großen PLayer sind vertreten
>Ticket-Tool / Request-Tracker
Configuration Management Database (CMDB)
ITSM-Lösungen (Alle ITIL-Prozesse unterstützt)
Virtualisierung
Nutzt spezielle systemnahe Software zur Nachbildung von Hardware als virtuelle Maschine.
Virtualisierungssoftware kann auf vollwertigem Betriebssystem (Typ 2) oder direkt auf Hardware (Typ 1) laufen.
Technische IT-Infrastruktur wird immateriell, Ebenen schwer trennbar.
Vorteile
Nachteile
Vorteile der Virtualisierung:
Höhere Auslastung
Geringere Kosten (Strom, Kühlung, Stellplatz)
Vereinfachte Administration
Nachteile der Virtualisierung:
Geringere Leistung
Overhead
Nicht geeignet für spezielle Hardware-Anforderungen
Virtualisierung im Hype Cycle
Infrastructure as Code
Vorteile von Infrastructure as Code
Versionierung
Testbarkeit
Wiederholbarkeit
Teilen
Updates
Docker im Hype Cycle
Docker:
Containerisierungsplattform
Verpackt Anwendungen in eigenständige Container
Vereinfacht Entwicklung und Bereitstellung
DevOps
DevOps verbessert die Zusammenarbeit zwischen Softwareentwicklung und IT-Betrieb, um den Lebenszyklus der Softwareentwicklung zu optimieren und eine schnellere Bereitstellung von Anwendungen zu ermöglichen.
Vorteile:
Schnelle Bereitstellung
Bessere Zusammenarbeit
Nachteile:
Einführungskomplexität
Sicherheitsbedenken
Vorteile von DevOps:
Entwickler verbringen weniger Zeit in Meetings mit Operations.
Schnellere Kapazitätsprognosen und Implementierung von Änderungen in der Cloud.
Effizientere Kommunikation
Selbständige Umsetzung in der Cloud
Beschleunigte Prozesse
DevOps im Hype Cycle
Monitoring & ITIL
Monitoring:
Methode zur sinnvollen Überwachung von hybriden und Multi-Cloud-IT-Betrieben.
Schlüsselprinzip: "If You Can't Measure It, You Can't Manage It."
ITIL (IT Infrastructure Library):
IT Operations Control: Überwacht und steuert IT-Services und Infrastruktur.
Führt routinemäßige Aufgaben im IT-Betrieb aus.
Enthält Job Scheduling, Backup, Wiederherstellung, Print- und Output-Management, sowie Wartungsarbeiten.
Monitoring und Observability im Hype Cycle
ISO 27001:
Internationale Norm für Informationssicherheit.
Gilt für private, öffentliche und gemeinnützige Organisationen.
Beschreibt Anforderungen an Einrichtung, Realisierung, Betrieb und Optimierung von Informationssicherheits-Managementsystemen.
IT-Security in Unternehmen
Veränderung der Bedrohungslage erfordert bessere Schutzmechanismen.
Schwierigkeiten bei der Umsetzung neuer rechtlicher Anforderungen.
Boom im IT-Sicherheitsmarkt mit vielen Anbietern und neuen Ansätzen.
Herausforderung: Teilaspekte werden oft isoliert betrachtet.
Zunehmender Einsatz einzelner Sicherheitstools führt zu Komplexität.
Schwierigkeiten bei der Integration in einen strategischen Rahmen, insbesondere im Kontext der DSGVO (GDPR).
Reifegradmodelel -Methode-
Bewertung von Arbeitsweisen, besonders in Softwareentwicklung.
Unterteilung in Reifegrade als Benchmark.
Messung von Prozessdefinition und -konsistenz.
Höherer Reifegrad = besser implementierter Prozess.
Besser kann bedeuten: dokumentiert, organisationseinweit genutzt, messbare Kennzahlen.
Reifegradmodelle
OpenSAMM vs. BSIMM
OpenSAMM:
Software Assurance Maturity Model
Von OWASP organisiert, freiwilig, Sponsoren, Experten-Community
Version 1.5, 2.0 angekündigt, bei GitHub veröffentlicht
Nutzer u.a. Dell, HP, ING
BSIMM:
Building Security In Maturity Model
Von Synopsis organisiert, Studien mit verschiedenen Unternehmen
Version 9, als Creative Commons verfügbar nach Registrierung
Definiert 4 Domains, jeweils 3 Practices, 3 Maturity Levels, deskriptiv
Secure Development Life-Cycle -Methode-
Threat Modeling -Deep Drive-
OWASP Top 10
OWASP Top 10:
Open Web Application Security Project (OWASP): Gemeinschaft für sichere Anwendungen und APIs.
Ziel: Organisationen befähigen, vertrauenswürdige Anwendungen und APIs zu entwickeln, kaufen und pflegen.
Ursprüngliches Ziel des OWASP Top 10-Projekts: Bewusstsein bei Entwicklern und Managern schärfen.
De facto Standard für Anwendungssicherheit geworden.
Last changed10 months ago