SoED
-
-
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”
analysis and design view (logical view)
Zeigt die Grund Abstraktionen, als Objekte oder Klassen, auf.
Für funktionale Anforderungen.
process view
Zeigt auf wie das System sich währen der Laufzeit verhält
shows how, at run-time, the system is composed of interacting processesFür nicht funktionale Anforderungen
implementation view (development view)
Zeigt auf wie die Software aufgebaut und aufgeteilt ist für die Entwicklung
Für das Projekt Management
deployment view (physical view)
Zeigt auf wie die Komponenten auf die Hardware verteilt wird
Für die Entwicklung und verteilung der Software
relation of all views to use cases or scenarios (+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
- BTS: Produkt wird hergestellt unabhängig davon ob ein Kundenstamm besteht
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