-


Fichier Détails

Cartes-fiches 56
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 29.06.2017 / 09.07.2017
Lien de web
https://card2brain.ch/box/20170629_soed
Intégrer
<iframe src="https://card2brain.ch/box/20170629_soed/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Scrum: Sprint cycles

  • Starting point for sprint planning is the Product backlog.
  • Then the team selects the features and functionality to be developed during the sprint: Sprint Backlog.
  • In each sprint cycle, team develops software in self-organized way. Sprints are fixed length, normally 2-4 weeks.
  • At the end of the sprint, the work is delivered and reviewed.
  • Then the next sprint cycle starts 

Design Thinking

Design Thinking ist ein Software Engineering Prozess welcher auf Requirements Engineering und Prototyping fokussiert ist.

Ziele von Requirements Engineering

Eine funktionale Beschreibung des System aus der User Perspektive mit folgenden Informationen:

  • Funktionell & nicht funktionale Requirements

  • Domain Requirements

  • Erste Ideen Sammeln für das UI

UML elemente in 4 Kategorien

  • Structural elements (class, object, use case)
  • Annotational elements (note)
  • Grouping elements (package, module)
  • Behavioral elements (activity, state)

External Perspective: Context Models

Sie zeigen, was außerhalb der Systemgrenzen liegt. Definition von "out of scope" auf Systemebene

Generalization

Wird verwendet um komplexität zu verringern.

Verwendung von Vererbungen (Inheritance)

 

Polymorphismus

Beudeutet dass ein object attribut oder methode während laufzeit verscheidene varianten haben kann

Abstrakte Klassen

Von dieser Klassen kann keine Instanz (Konstruktor) erstellt werden. Dient als Oberklasse von der dann geerbt wird. Z.B. Pizza wäre die Oberklasse und Margherita, Procuitto die Unterklassen die von Pizza erben. Public abstract class BLABLA

4 + 1 Ansicht “Software Architektur Model”

  1. analysis and design view (logical view)

    1. Zeigt die Grund Abstraktionen, als Objekte oder Klassen, auf.

    2. Für funktionale Anforderungen.
       

  2. process view

    1. Zeigt auf wie das System sich währen der Laufzeit verhält
      shows how, at run-time, the system is composed of interacting processes

    2. Für nicht funktionale Anforderungen
       

  3. implementation view (development view)

    1. Zeigt auf wie die Software aufgebaut und aufgeteilt ist für die Entwicklung

    2. Für das Projekt Management
       

  4. deployment view (physical view)

    1. Zeigt auf wie die Komponenten auf die Hardware verteilt wird

    2. Für die Entwicklung und verteilung der Software
       

  5. relation of all views to use cases or scenarios (+1)

    1. Für User und System Anforderungen

Object-Oriented Design (OOD)

OOD modelliert das System als zusammengesetzte Objekte. Das Informationsmodell (Systemzustand) wird somit auf verschiedene Objekte verteilt

UML Prinzipien

1) Use Cases zu System Inhalt

2) System Inhalt zu Architektur

3) Architektur zu Klassen model

4) Klassen zu Design Model

5) Design Model zu Implementation

Vergleichen Sie die beiden Arten von Softwareprodukten

  • Generische Produke (Build to stock, BTS) vs. Kunden spezifische („angepasste“) Produkte (Build to order, BTO)
    • BTS: Produkt wird hergestellt unabhängig davon ob ein Kundenstamm besteht
      • Lizenzen werden verkauft
      • SW Hersteller besitzt alle Lizenzrechte
        • Analogie: Automobil
    • BTO: Produkt wird für, und in Absprache mit Kunden hergestellt
      • Arbeitszeit wird verkauft
      • Kunde besitzt alle Lizenzrechte
        • Analogie: Bauvorhaben

Nennen Sie die Gründe für Softwarevalidierung und -verifikation.

Verifikation: Zeigen dass das System den Spezifikationen entspricht

Validation: Zeigen/Sicherstellen dass das System den Anforderungen des Verwenders entspricht

Welche beiden Faktoren sind relevant damit die kosteneffiziente Änderung an einem Softwareprodukt gewährleistet werden kann?

  • Change anticipation: Entwicklungsprozess beinhaltet Aktivitäten die eine Prognose zu den geplanten Änderungen erzeugt (e.g. Erstellung eines Prototyps mit Hauptfunktionen)
  • Change tolerance: Die Prozesse sind so implementiert, dass Änderungen zu relativ geringen Kosten (= Zeit) umgesetzt werden können. Setzt einen inkrementellen Entwicklungsprozess voraus.

Beschreiben Sie den Begriff Prototyp in der Softwareentwicklung. In welchen Phasen des Entwicklungsprozesses werden Prototypen eingesetzt? Was sind Gefahren und Möglichkeiten eines Prototyps?

  • Ein Prototyp ist eine initiale Version eines verwendeten Systems benutzt um bestimmte Konzepte und neue design Optionen zu demonstrieren. Meist werden eigene Sprachen und Tools fürs schnelle Prototyping verwendet. Ein Prototyp umfasst nicht alle Funktionalitäten des Endprodukts (Meist nur Prozesse die man besser verstehen möchte).
    • Vorteile: Kostengünstige Tests und Kundenfeedback für neue Konzepte, Denken „Out of the Box“ (e.g. starke Umstrukturierung, neue Libraries) möglich
    • Nachteile: Gefahr des Abschweifens vom Wesentlichen, (= unproduktive Zeit) Kundenfeedback kann unwesentlich sein („Dieser Button geht nicht“ etc.)
    • Anwendung: Prototypen werde in den folgenden Phasen eingesetzt:
      • Requirements engineering: Besseres Verständnis der Anforderungen
      • Design: Design Optionen und UI Designs ausprobieren
      • Test: Interface Integration Tests (?)

Wieso ist es sinnvoll Prototypen nach deren Verwendung zu verwerfen?

  • Prototypen können meist nicht so verändert werden, dass alle non-funktionalen Anforderungen getroffen werden
  • Prototypen sind in der Regel nicht dokumentiert
  • Die Struktur des Prototyps ist meist schlecht, weil schnelle Resultate zählen