Softwaretechnik

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/15

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

16 Terms

1
New cards

Definition von Softwaretechnik

Softwaretechnik zählt auf die ingenieurmäßige Entwicklung Wartung, Anpassung und Weiterentwicklung, großer Softwaresysteme unter Verwendung bewährter systematischer Vorgehensweisen, Prinzipien, Methoden und Werkzeuge

Berücksichtigung der folgenden drei Aspekte:

  • Kosten

  • Termine

  • Qualität

(Korrektheit, Zuverlässigkeit, Performanz, Sicherheit, Nutzbarkeit, Verständlichkeit, Weiterentwickelbarkeit, Anpassbarkeit, Wartbarkeit)

2
New cards

Softwaresystem | Softwareprodukt

  • Softwaresystem - ein System (oder Teilsystem), dessen Komponenten aus Software bestehen

  • Software-Produkt - ein in sich abgeschlossenes, i.A. für einen Auftraggeber bestimmtes Ergebnis eines erfolgreich durchgeführten Projekts oder Herstellungsprozesses.

Als Teilprodukt oder Komponente bezeichnen wir einen abgeschlossenen Teil eines Produkts.

3
New cards

Besonderheiten von Software

  • Software ist immateriell

  • Software wird nicht durch physikalische Gesetze begrenzt

  • Software unterliegt keinem Verschließ

  • Defekte sind immer Konstruktionsfehler

  • Software ist schwer zu vermessen

  • Software gilt als relativ leicht äbderbar (im Vergleich zu materiellen technischen Produkten)

  • Software unterliegt einem ständigen Anpassungsdruck

  • Software veraltet

4
New cards

Wichtige angestrebte Eigenschaften von Software

Zuverlässigkeit:

  • Software darf im Fall das Versagens keine physischen oder ökonomischen Schäden verursachen

Benutzbarkeit:

  • Software muss sich nach den Bedürfnissen der Benutzer richten

  • Die Benutzerschnittstelle muss ergonomisch und selbsterklärend sein.

  • Dokumentation muss in allen Detallierungsgraden ausreichend zur Verfügung stellen

Wartbarkeit:

  • Software muss anpassbar an neue Anforderungen sein

  • Software muss möglichst plattformunabhängig sein

Effizienz:

  • Software muss ökonomischen Gebrauch von Ressourcen des unterliegenden Systems machen.

5
New cards
6
New cards
7
New cards
8
New cards
9
New cards

Wasserfal-Modell: Welche Aktivität nimmt viel zu viel Zeit?

Analyse (10%) → Entwurf (20%) → Implementierung (20%) → Test, Integration → Wartung (50%)

<p>Analyse (10%) → Entwurf (20%) → Implementierung (20%) → Test, Integration → Wartung (50%)</p>
10
New cards

RUP

Der Ratonal Undefined Process hat vier Phasen:

  • Entstehung (Inception) - definiert den Rahmen des Projekts

  • Ausarbeitung (Elaboration) - Planung des Projekts, Spezifikation der Features, Grundlegende Architektur

  • Erstellung (Construction) - Erstellung des Produkts

  • Übergang (Transition) - Einführung des Produkts in der Endbenutzer-Community

11
New cards

eXtreme Programming: Beschreibung der Methode

Agile Methode, folgende Eigenschaften:

  • Konsequente evolutionäre Entwicklung in sehr kleinen Inkrements

  • Code wird permanent lauffähig gehalten

  • Tests + Programmcode: das Analyseergebnis, das Entwurfsdokument und die Dokumentation

Zugleich:

  • Diszipliniertes und automatisiertes Testen als Qualitätssicherung

  • Paar-Programmierung als QS-Maßnahme

  • Refactoring zur evolutionären Weiterentwicklung

  • Codierungsstandards

Aber auch:

  • Weglassen einiger traditioneller Aktivitäten

  • Kein explizites Design, ausführliche Dokumentation, Reviews

"Test-First"-Ansatz:

  • Zuerst Anwendertests definieren, dann Code dazu entwickelnNur für kleinere Projekte geeignet

  • Nur für kleiner Projekte geeignet

<p>Agile Methode, folgende Eigenschaften: </p><ul><li><p>Konsequente evolutionäre Entwicklung in sehr kleinen Inkrements</p></li></ul><ul><li><p>Code wird permanent lauffähig gehalten</p></li><li><p>Tests + Programmcode: das Analyseergebnis, das Entwurfsdokument und die Dokumentation</p></li><li><p></p></li></ul><p>Zugleich:</p><ul><li><p>Diszipliniertes und automatisiertes Testen als Qualitätssicherung</p></li><li><p>Paar-Programmierung als QS-Maßnahme</p></li><li><p>Refactoring zur evolutionären Weiterentwicklung</p></li><li><p>Codierungsstandards</p></li></ul><p></p><p>Aber auch:</p><ul><li><p>Weglassen einiger traditioneller Aktivitäten</p></li><li><p>Kein explizites Design, ausführliche Dokumentation, Reviews</p></li></ul><p></p><p><span><span>"Test-First"-Ansatz: </span></span></p><ul><li><p><span><span>Zuerst Anwendertests definieren, dann Code dazu entwickeln</span></span>Nur für kleinere Projekte geeignet</p></li><li><p>Nur für kleiner Projekte geeignet</p></li></ul><p></p>
12
New cards

Scrum: Reduktion der Komplexität

Komplexität durch drei Prinzipien reduzieren:

  • Transparenz: Fortschritt / Probleme täglich festhalten

  • Überprüfung: iterativ werden Funktionen geliefert und beurteilt

  • Anpassung: flexibel Anforderungen bewerten und ändern

Drei Rollen:

  • Product Owner, Entwicklerteam, Scrum Master

Aktivitäten:

  • Sprint Planning, Sprint Review, Sprint-Retrospektive, Daily Scrum

  • Alle Aktivitäten in Scrum sind zeitlich fest beschränkt (“timeboxed”) also keine klassischen Meilensteine

Artefakte:

  • Product Backlog, Sprint Backlog, auslieferbares Produktinkrement

Sprint:

  • zeitlich begrenzte Phase, um das Produkt zu entwickeln

Sprint Backlog:

  • Liste der zu realisierenden User Stories

<p><strong>Komplexität durch drei Prinzipien reduzieren</strong>:</p><ul><li><p>Transparenz: Fortschritt / Probleme täglich festhalten</p></li><li><p>Überprüfung: iterativ werden Funktionen geliefert und beurteilt</p></li><li><p>Anpassung: flexibel Anforderungen bewerten und ändern</p></li></ul><p></p><p><strong>Drei Rollen</strong>:</p><ul><li><p>Product Owner, Entwicklerteam, Scrum Master</p></li></ul><p></p><p><strong>Aktivitäten</strong>:</p><ul><li><p>Sprint Planning, Sprint Review, Sprint-Retrospektive, Daily Scrum</p></li><li><p>Alle Aktivitäten in Scrum sind zeitlich fest beschränkt (“timeboxed”) also keine klassischen Meilensteine</p></li></ul><p></p><p>Artefakte:</p><ul><li><p>Product Backlog, Sprint Backlog, auslieferbares Produktinkrement</p></li></ul><p></p><p><strong>Sprint</strong>:</p><ul><li><p>zeitlich begrenzte Phase, um das Produkt zu entwickeln</p></li></ul><p></p><p><strong>Sprint Backlog</strong>:</p><ul><li><p>Liste der zu realisierenden User Stories</p></li></ul><p></p>
13
New cards

Continuous Integration: Ziele & Gestalt

  • Ständiges, automatisiertes Integrieren und Testen des Systems

  • Zerlegung der großen Integrationsaufgabe in kleine Einheiten

Ziele

  • Build-Stabilität

  • Modul-Integration

  • Automatisiertes Testen in kurzen Test-Zyklen

  • Qualitäts-Analysen: Code-Smells, Commit-Historie

  • Reporting - Benachrichtigung im Fehlerfall

  • Automatisierte Verteilung auf Testsysteme

Turnus:

  • Nightly Build

  • Build on Commit

  • manuell

Möglich dank:

  • Versionsverwaltung

  • Build-Automatisierung

  • Automatischer Testfallausführung

System muss nach jedem Einchecken:

  • zu kompilieren sein

  • Tests bestehen

14
New cards

DevOps: Rollen

  • Software Development + Software Operations

  • “A process of putting into use, and supporting end users in the use of software production in operational environment. Its activities include: installation, upgrade, migration, operational control, monitoring, configuration management, alerting, availability and support.”

  • Getrennten Rollen wie Entwicklung, IT-Betrieb, Qualitätstechnik und Sicherheit, müssen zusammenarbeitemn

Methoden:

  • CI/CD

  • Versionskontrolle

  • Agile Softwareentwicklung

  • Infrastruktur als Code (IaC)

  • Konfigurationsverwaltung

  • Continuous Monitoring

15
New cards

Klassische vs. Agile Prozesse

Wasserfall Modell (V-Modell, RUP):

  • Aktivitäten sind chronologisch in Phasen unterteilt

  • 70% Fortschritt, 0% verwendbar

Agile Prozesse:

  • Aktivitäten sind kurze Sprints/Intervalle

  • Leben von vielen kleinen Iterationen

  • 30% Fortschritt, 30% verwendbar

16
New cards