• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/50

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

50 Cards in this Set

  • Front
  • Back
Grundlegende Qualitätsanforderungen.
Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit, Übertragbarkeit, Schutz von Systemumgebung
Eigenschaften von Entscheidungstabellen?

WICHTIG?
Vollständigkeit
Wenn alle notwendigen Kombinationen von Bedingungen und Aktionen als Regeln vorhanden sind. Bei n Bedingungen erhält man 2^n Regeln.

Konsolidierung
Sind in einer Entscheidungstabelle mehrere Regeln vorhanden, die zu ein und derselben Aktion führen, und haben diese Regeln mindestens eine Bedingung, die bei allen gleich ist und mindestens eine Bedingung in der sich die Regeln unterscheiden, dann kann man diese Regeln zusammenfassen.

Redundanz
Wenn zwei oder mehr Regeln mit gleichen Bedingungen und Aktionen vorhanden sind.

Konsistenz
Zur Inkonsistenz kann es kommen, wenn man zwei ähnliche Regeln hat, bei denen der Bedingungsteil gleich ist, diese aber zu verschiedenen Aktionen führen.
Entscheidungstabellen, was ist das?

WICHTIG
Entscheidungstabellen dienen der Darstellung von komplexen Entscheidungsregeln.

Bei n Bedingungen erhält man 2^n Kombinationsmöglichkeiten

In der Tabelle werden Bedingungs- und Aktionszeiger verwendet. Der Bedingungsanzeiger ist dabei
der Wert, den eine Bedingung bei einer Regel haben muss, und steht im oberen rechten Bereich. Der
Aktionszeiger ist analog dazu der Wert, der anzeigt, welche Aktion bei einer Regel ausgeführt wird,
und steht im unteren rechten Bereich (vgl. Titelbild)
Petri-Netze, was ist das?
Bei Petri-Netzen handelt es sich um formale Konstrukte, die graphisch ausgestaltet sind und sich für die Modellierung und Analyse von Systemen und Prozessen eignen.

Auf die Graphen-Theorie bezogen implementiert ein Petri-Netz einen gerichteten Graphen.
Petri-Netze, die Komponenten?
Plätze
Repräsentieren Bedingungen und werden als Kreise dargestellt. Ein Platz kann einen oder mehrere Token enthalten. (Im Token lässt sich der aktuelle Zustand ablesen)

Transitionen
Beschreiben den Übergang von einem Token zu einen oder mehreren Plätzen.

Knoten
Platz+Transition

Kanten
Müssen gerichtet sein und verbinden Knoten.
Nennen Sie Bestandteile eines Petri-Netzes.
Ein Petri-Netz besteht aus den Komponenten Platz, Kante, und Transition.
Was gehört zur OOA?
Systemidee und Zielsetzung entwickeln
--> Stakeholder identifizieren
--> Systemkontext modellieren
==========v==============
Nichtfunktionale Anforderungen identifizieren
--> NF Anforderungen modellieren

Anwendungsfälle identifizieren
--> Anwendungsfälle modellieren

Glossar erstellen

Fachklassen modellieren
==========v==============
Analysemodell
Objektorientiertes Design, was ist das?
OOD ist einer der wichtigsten Schritte der OOS. OOD ist die Implementation/Umsetzung von Objektorienterter Analyse.

Ziele:
Eine Systemidee entwickeln, die systemabhängig modelliert wird.

Hauptziele:
Übersichtlichkeit, Flexibilität und Erweiterungsmöglichkeiten.

Übersichtlichkeit:
Vermeidung von Missverständnissen und Unklarheiten bei späteren Implementierungen.

Flexibilität:
Änderungen müssen mit kleinen Zeit- und Arbeitsaufwand umgesetzt werden können.

Erweiterungsmöglichkeit:
Die Grundstruktur sollte leichte Erweiterbarkeit ermöglichen und Redundanzen vermeiden/verhindern.
Kohäsion und Kopplung
Kohäsion: Beschreibt den Grad des Zusammenhalts einer Klasse.
Kopplung: Beschreibt den Grad der Abhängigkeit verschiedener Klassen.

Teil des OOD
SOLID-Prinzip
Single Respsonsibility Prinzip:
Jede Klasse sollte nur eine einzige Verantwortung haben. Es wird kein Alleskönner implementiert. (Hohe Kohäsion, keine Kopplung)

Open-Closed-Prinzip:
Offen für Erweiterungen, geschlossen für Modifikation. Vererbung ist ein Beispiel dafür.

Liskovsches Substitutionsprinzip:
LSP gibt an, wie man bei der Implementierung einer Vererbung vorzugehen hat. Eigenschaften der Basisklassen müssen auf die Subklassenübertragen werden.

Interface Segregation Prinzip:
Eine Klasse, die ein Interface implementiert, muss alle Methoden implementieren.

Dependency Inversion Prinzip:
Abhängigkeiten sollten immer in eine Richtung verlaufen. Von konkret zum abstrakten. Subklasse sollte nur von einer Superklasse erben.
Was ist ein Strukturdiagramm und welche Bestandteile hat es?
Strukturdiagramme sind eine Hauptgruppe von UML-Diagrammen und beschreiben den strukturellen
Aufbau eines Systems.
Nennen Sie die Design Pattern die vorgestellt wurden.
Strategie (Strategy)
Kompositum (Composite)
Fabrikmethode (Factory Method)
Konfigurationsmanagement, was ist das?
Ist der Versuch, Ergebnisse sicher zu verwalten und Teammitgliedern jeder Zeit kontrollierten Zugriff
auf diese zu gewähren.
Konfigurationsmanagement, Ziele?
Änderungen Kontrollieren,
Qualität sicherstellen,
Transparenz verbessern,
Produktivität steigern
Java EE
Ist ein Standard für die Umsetzung und Ausführung von Web- und Business-Anwendungen.
Entwickelt für den Einsatz in Verteilten Systemen. Basiert auf Client-Server.
Reverse Engineering, was ist das?
Als Reverse Engineering bezeichnet man den Weg vom fertigen Produkt zurück zu dem ursprünglichen Konzept.

Werkzeuge:
Disassembler und Decompiler

Disassembler:
Ermöglich es die Binärkodierten Befehle aus einem ausführbaren Programm in
Assembler Befehle zurück zu wandeln.

Decompiler:
Wandelt das ausführbare Programm wieder in Source Code um
Web-Applikationen
Eine Web-Applikation ist ein Softwaresystem, das auf einem Webserver läuft und von dem Benutzer in einem Webbrowser gestartet und ausgeführt wird.

Status-Codes:
1xx – Information
2xx – Erfolgreiche Operation
3xx – Umleitung
4xx – Client-Fehler
5xx – Server-Fehler
Wodurch zeichnet sich die Spielentwicklung aus?
Im Vorfeld wird im Designdokument das Spielkonzept detailliert ausgearbeitet. Dazu zählen wesentliche Aspekte wie z.B. zentrale Spielmechaniken, Umfang, Kulisse, Grafikstil und Geschichte. Im Gegensatz zum Lastenheft wird das Designdokument während der
Entwicklung häufig noch überarbeitet und angepasst.

Die Entwicklung erfolgt Top-Down und stützt sich für gewöhnlich auf Prototypen. Agile Methoden bieten sich sehr gut an, wenn die Kernmechanik des Spiels in kleinen Schritten um weitere Aspekte erweitert wird.
Was zeichnen einen Publisher in der Spielentwicklung aus?
Ein Publisher ist zuständig für die Herstellung, das Marketing und eventuell den Vertrieb. Er finanziert die interne oder externe Entwicklung des Spiels (intern = eigenes Studio, extern = selbstständige Spielentwickler), verlangt dabei oft aber ein gewisses Mitspracherecht, bis hin zum Markenrecht.
Was ist Crowdfunding?
Beim Crowdfunding wird ein Projekt von Kunden vorfinanziert. Der Hersteller bzw. Anbieter legt einen Zeitraum (in der Regel 30 Tage) und den benötigten Betrag fest. Jeder Interessent kann dann einen beliebigen Betrag zur Verfügung stellen. Erreicht das Projekt bis zum Stichtag den Betrag oder mehr, fließt das Geld an den Hersteller. Abhängig vom zur
Verfügung gestellten Betrag können dem Unterstützer noch Prämien zugesprochen werden. Üblich sind u.a. eine Danksagung, das fertige Produkt oder ein Treffen mit dem Hersteller. Das fertige Produkt wird für gewöhnlich anschließend normal vertrieben, d.h. auch Nicht-Unterstützer können es erwerben.
Embedded Systems, Einsatzgebiete?
Kommunikationstechnik, Autoindustrie
Embedded Systems, Architektur?
Regelschleife:
Werden eingesetzt, wenn Systeme regelmäßig Berechnungen aufgrund von eingehenden Signalen machen.

Reaktive Systeme:
Verbringen die meiste Zeit im Ruhemodus und reagieren bei auftretenden Aktionen, wie z.B. einem Tastendruck.
Embedded Systems, Platformen und OS?
Plattformen:
ARM, AVR, x86

Betriebssysteme:
Windows Embedded, Embedded Linux, On Time RTOS-32 (Echtzeitbetriebssystem für x86 Systeme, stellt eine Win32-Kompatible Programmierschnittstelle). Besteht auch die Möglichkeit ohne Betriebssystem zu realisieren.
Software-Agenten, Definition und Arten?
Ein Software-Agent ist in der Lage Entscheidungen zu treffen und selbstständig zu agieren.

Die Entscheidungen der Agenten werden in Abhängigkeit von Umweltzuständen getroffen, die über Sensoren wahrgenommen werden. Abhängig von den wahrgenommenen Zuständen werden festgelegte Aktionen ausgeführt.


Reaktiver Agent
Setzt kein internes Umweltmodell voraus. Aktionsregeln bestehen aus Paaren von
Aktionen und Zuständen.

Deliberativer Agent
Erfordert ein Modell der zugrundeliegenden Umwelt. Menge von möglichen
Aktionen von der Umwelt abhängig.

Hybrid
Kombination aus Reaktiven und Deliberativen.

Belief-Desire-Interest Agent
Ahmen den menschlichen Entscheidungsprozess nach.
Software-Agenten, Eigenschaften?
Eigenschaften:
Autonomität:
Trifft Entscheidungen weitgehend selbstständig, ohne die Erlaubnis/Eingriff einer höheren Instanz zu benötigen

Reaktivität:
Reagiert auf Änderungen von Umgebungszuständen

Kooperativität:
Mehrere Agenten arbeiten zusammen um kollektives Ziel zu erreichen

Mobilität:
Kann zur Laufzeit auf andere Rechner im Netzwerk wechseln, sofern dies die Umgebung ermöglicht.

Lernfähigkeit:
Besitzt die Fähigkeit anhand gesammelter Daten Entscheidungen zu variieren.

Kommunikativität:
Kommuniziert zur Erfüllung seiner Aufgaben mit anderen Systemen
Software Ergonomie
Die Schnittstelle zwischen Mensch und Maschine sollte so gestaltet werden, dass sie dem Mensch bei
seiner Arbeit unterstützt und nicht behindert.
Datawarehouse
Themenortientiert: Daten können einem Thema bzw. Geschäftsobjekt zugeordnet werden.
Dieser Aufbau ermöglicht Bereichsübergreifende Auswertungen bezogen auf
Geschäftsobjekte.
Integrierte Datenbasis: Daten stammen aus verschiedene (intern/extern) Quellen.
Nicht-flüchtige Datenbasis: Daten werden dauerhaft gespeichert. Einmal ins DW geladen,
werden diese nicht mehr entfernt/geändert.
Zeitbezogene Daten: Daten haben einen Zeitbezug und werden langfristig gespeichert.
Datamining
Ist der Prozess des Entdeckens bedeutsamer, neuer Zusammenhänge, Muster und Trends durch die
Analyse großer Datensätze mittels Mustererkennung, sowie statistischer und mathematischer
Verfahren.
Was sind die Prinzipien der agilen Softwareentwicklung?
Vorhandene Ressourcen mehrfach verwenden
Einfach und leicht verständlich
Zweckmäßig
Kundennah
Motivierte Individuen einsetzen
Gespräche Angesicht zu Angesicht bevorzugen
Technische Exzellenz und gutes Design
Was sind die Methoden der agilen Softwareentwicklung?

WICHTIG
Paarprogrammierung
Testgetriebene Entwicklung
Refactoring
Story Cards
Was ist .Net?
Eine von Microsoft entwickelte Anwendungsplattform, die das Erstellen und Ausführen von Web-Services und Internetanwendungunden ermöglicht. Die Programme werden in eine Zwischensprache, den MSIL-Code, übersetzt und sind somit bedingt plattformunabhängig. MSIL-Programme werden
zur Laufzeit in der CLR (Common Language Runtime) in Maschinencode übersetzt (Just-In-Time-Compiler) und ausgeführt.
Was ist der Unterschied zwischen einem Dienst- und einem Werkvertrag?
Ein Dienstvertrag sieht keine Nachbesserung oder Minderung der Vergütung bei Mängeln vor,
während beim Werkvertrag ein Erfolg der Bemühungen erwartet wird. Beispiel: Nachhilfestunden im
Gegensatz zum Anfertigen eines Portraits.
Was ist ein SW-Entwicklungsvertrag aus rechtlicher Sicht?
Ein SW-Entwicklungsvertrag ist ein Werkvertrag, d.h. Vertragsgegenstand ist eine Dienst- bzw.
Werkleistung.
Ein Werkvertrag beinhaltet die Vereinbarung, ein bestimmtes Werk zu einem bestimmten Zeitpunkt
für eine festgesetzte Vergütung herzustellen. Der Auftragnehmer schuldet dem Auftraggeber mit
dem Abschluss des Vertrages einen Erfolg, z.B. in Form einer fertigstellten Software, die den
Anforderungen des Auftraggebers entspricht.
SCRUM
?
Beschreiben sie den zu einem SW-Entwicklungsvertrag zugehörigen Ablauf.
Es wird ein Lastenheft angefertigt, um Missverständnissen vorzubeugen. Lasten- und
Pflichtenheft werden in den Vertrag aufgenommen.

Der Auftragsteller erklärt sich zum Mitwirken bereit, was unter anderem das Anerkennen
eines Ansprechpartners und die rechtzeitige Bereitstellung von Informationen, Daten, etc.
beinhaltet.

Die Nutzungs- und Urheberrechte werden im Vertrag festgelegt.

Der Auftraggeber erhält für gewöhnlich den Quellcode, der vom Auftragnehmer dann auch
nicht weiter verwendet werden darf.

Bei Mängeln haftet der Auftragnehmer, die Verjährungsfrist für Mängelansprüche beträgt bei
Software 3 Jahre.

Der Auftraggeber kann bis zur Vollendung des Werkes jederzeit kündigen, während der
Auftragnehmer ein Kündigungsrecht bei Vernachlässigung der Mitwirkungspflichten hat.

Der Auftraggeber ist zur Abnahme verpflichtet und kann sich wegen unwesentlicher Mängel
nicht weigern.

Nach der Abnahme wechselt die Beweislast vom Auftragnehmer zum Auftraggeber und die
Vergütung wird fällig.
Was versteht man unter AJAX?
AJAX steht für "Asynchronous JavaScript + XML" und beschreibt AJAX eine Herangehensweise an die
Client-Server-Kommunikation von Webapplikationen. Die Vorgehensweise ist nicht unbedingt auf
Javascript und XML geschränkt (heutzutage wird meist JSON verwendet). Durch AJAX können gezielt
einzelne Inhalte einer Webseite dynamisch nachgeladen werden (=> weniger Traffic, schnellere
Interaktion, höhere Usability da ähnlich zu Desktopanwendung).
Was versteht man unter Prototyping?
Es handelt sich um ein iteratives Entwicklungsmodell, das in der frühen Entwicklungsphase
angesiedelt ist. Die Entwicklung eines Prototyps soll Klarheit über Design, Funktionen,
Realisierbarkeit, Usability und eventuelle Probleme bringen sowie frühes Feedback vom Kunden
ermöglichen. In der Softwareentwicklung beschränkt sich ein solcher Prototyp für gewöhnlich auf
eine Attrappe („Mockup“), die auf das GUI und bestimmte Funktionen reduziert ist, sodass zumindest
eine gewisse Interaktion gegeben ist.
Was versteht man unter Rapid Prototyping?
Beim Rapid Prototyping werden Software-Attrappen möglichst schnell modelliert. Diese sollen
Auskunft über die Realisierbarkeit, das Aussehen und der Usability des GUIs geben. Eventuelle
Mängel im Design können so im Vorfeld erkannt und behoben werden. Wird meist mit Stift und
Papier oder spezieller Software umgesetzt.
Was kann man mit PN modellieren?
z.B. Produktionsprozesse
Auf welchen Stadien des Softwareentwicklung kann mann die Petri Netze einsetzen?
Um Grobentwurf in Feinentwurf zu überführen.
Erklären Sie den unterschied zwischen Aufwand und Dauer eines Projektes.
Der Aufwand sind die Kosten bzw. Ressourcen für ein Projekt in Personentage. 2 Wochen sind z.B. 10 Personentage.

Die Dauer eines Projekts ist die Anzahl der Personentage durch die Zahl der Mitarbeiter.

Daher
Was heißt 80% des geplanten Aufwandes ist verbraucht und was heißt es nicht?
Das bedeutet 80% der zur Verfügung stehenden Mittel sind aufgebraucht. Dies bedeutet nicht, dass 80% des Projekts fertig gestellt sind.
Was ist CMM/CMMI
CMM (Capability Maturity Model) ist ein Reifegradmodell zur Beurteilung der Qualität(Reife)
des Softwareprozesses von Organisationen.
2003 wurde es durch CMMI (Capability Maturity Model Integration) ersetzt.
CMMI ist eine Familie von Referenzmodellen(Produktentwicklung, Produkteinkauf und
Serviceerbringung). Ein CMMI-Modell ist eine systematische Aufbereitung bewährter Praktiken,
dient dazu, die Arbeit einer Organisation zu verbessern.

1.Stufe adhoc (Initial): Grundzustand, erreicht jede Organisation, ohne Def. Von Prozessen
2.Stufe wiederholbar (Repeatable): grundlegende Planung
3.Stufe definiert (defined): typische Entwicklungs- und Wartungsarbeiten eingeführt
4.Stufe verwaltet (managed): es werden quantitative Ziele zur Prozessgüte form. Und überwacht
5.Stufe optimierend (optimizing): gesamte Org. richtet sich auf Verbesserung der Proz. aus
Was ist Produktivität?
Volkswirtschaftlich: Output/Input = erbrachte Leistung / Aufwand.

Kostenarten (also auch Aufwand):
Personal
Gemeinkosten
Hardware, Arbeitsmittel
Lizenzen
Warum kann man einen Mitarbeiter nie zu 100% einplanen?
Weil zur Arbeit auch immer ein vom Mitarbeiter zu erledigender Verwaltungsaufwand anfällt. Bei einem 8h Arbeitstag rechnet man für Kommunikationswege und sonstige Tätigkeiten mit 1-2 Stunden. Entsprechend arbeitet ein MItarbeiter nur ca. 7 h Pro Tag.

Um das Mitarbeiterpotential langfristig einzuschätzen, rechnet man wie folgt:

52 Wochen, davon 6 Wochen Urlaub (30 Tage) und ca 2 Wochen Krankheitszeit sowie 2 Wochen Fortbildungen. Macht 42 Wochen, also 42 * 5 * 6-7h Leistungserbringung.

Also 1260-1470h arbeitet ein Mitarbeiter pro Jahr.

Folglich ist ein Mitarbeiter pro Tag zwischen 75 und 87,5% einplanbar.
Zeichne das V-Modell!
Im Ernst! Das muss man können!
Was ist Black-Box bzw. White-Box Testing und wie bezeichnet man diese Methoden noch?
Black-Box Testing ist ein äußerer Test, ein Funktionstest. Dieser testet ein Modul von außen über Schnittstellen ohne Kenntnis des Moduls selbst.

White-Box Testing ist ein innerer Test, ein Strukurtest. Die interne Implementierung des Moduls ist bekannt. Man testet auf Methodenüberdeckung, Zweigüberdeckung und Pfadüberdeckung.
Auf welchen Stadien des Softwareentwicklung kann man die ET einsetzen?
ETs kann man beim Feinentwurf verwenden. Insbesondere dort kommen komplexe Abhängigkeiten zwischen mehreren Bedingungen und dem jeweils auszuführenden Code zusammen. Hier kann man (versuchen^^) mit ETs die Übersicht behalten.
Was ist ein kritischer Pfad?
Der kritische Pfad beschreibt den Weg in einem Projekt, der vom ersten bis zum letzten Vorgang führt und bei dem jede Verzögerung auch den Endtermin verzögert.
Unterscheid Pflichten- und Lastenheft?
Lastenheft ist ergebnis-orientiert und dokumentiert die Gesamten Forderungen des Auftraggebers an die Lieferungen und Leistungen des Auftragnehmers. (Kann auch die Ausschreibung sein!)

Pflichtenheft ist detailliert und vertraglich bindend. Ist vom Auftragnehmer erarbeitetes Realisationsvorhaben mit Anforderungsspezifikation.