Software Engineering BFH

Software Engineering BFH

Software Engineering BFH

Joris Baiutti

Joris Baiutti

Set of flashcards Details

Flashcards 146
Students 20
Language Deutsch
Category Computer Science
Level University
Created / Updated 23.04.2017 / 10.07.2023
Weblink
https://card2brain.ch/box/20170423_software_engineering_bfh_LEvv
Embed
<iframe src="https://card2brain.ch/box/20170423_software_engineering_bfh_LEvv/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Nenne 5 Typen von Software

- Betriebssysteme

- Micro Controller

- Application Software

- System Software

Welche zwei Software Produkttypen gibt es. Mit Beispielen

- Generische Produkte (BTS Build to Stock)

Beispiele: 

  • PC software such as graphics programs

  • project management tools

  • CAD software

  • software for specific markets such as appointments systems for dentists. 

- Customized Products (BTO Build to Order)

Beispiele:

  • embedded control systems

  • air traffic control software

  • traffic monitoring systems. 

Nenne die 4 Software Engineering Activites

  1. Analyse und Spezifikation
  2. Entwicklung
  3. Validierung
  4. Evolution (Weiterentwicklung)

Was macht eine gute Software aus

Gute Software sollte die gewünschte Funktionalität und Leistung für den Benutzer liefern und sollte Wartbar, zuverlässig und nutzbar sein

Was sind die Kosten von Software Engineering

 

Rund 60% der Softwarekosten sind Entwicklungskosten, 40% testen die Kosten. Für kundenspezifische Software übersteigen Evolutionskosten oftmals die Entwicklungskosten.

Welchen Einfluss haben die Kosten auf die Software Entwicklung?

tbd

Aufgrund von welchen Faktoren werden die Software Engineering Methoden entschieden?

  • Benutzeranforderungen
  • Applikationstyp
  • Hintergrund vom Entwicklerteam

Was ist der Unterschied zwischen Software Engineering und Computer Science?

 

Computer Science konzentriert sich auf Theorie und Grundlagen. Software Engineering beschäftigt sich mit den Praktiken Entwicklung und Bereitstellung von nützlicher Software.

Was ist der Unterschied zwischen System Engineering und Software Engineering?

 

Die Systemtechnik beschäftigt sich mit allen Aspekten der computergestützten Systementwicklung, einschließlich Hardware, Software und Verfahrenstechnik. Software Ingenieurwesen ist Teil dieses allgemeineren Prozesses.

Was sind die wichtigsten Herausforderungen für das Software-Engineering?

Umgang mit zunehmender Vielfalt, Forderungen nach reduzierten Lieferzeiten und Entwicklung vertrauenswürdiger Software.

Was sind die besten Software-Engineering-Techniken und Methoden?

 

Während alle Softwareprojekte professionell verwaltet und entwickelt werden müssen, sind verschiedene Techniken für verschiedene Systemarten geeignet. Zum Beispiel sollten Spiele immer mit einer Reihe von Prototypen entwickelt werden, während sicherheitskritische Steuersysteme eine komplette und analysierbare Spezifikation erfordern. Sie können also nicht sagen, dass eine Methode besser ist als eine andere.

Welche Unterschiede hat das Web für Software Engineering gemacht?

 

Das Web hat zur Verfügbarkeit von Software-Diensten geführt und die Möglichkeit, hochverteilte Service-basierte Systeme zu entwickeln. Die webbasierte Systementwicklung hat zu wichtigen Fortschritten in Programmiersprachen und Softwarewiederverwendung geführt.

Zeichne den Software Egineering Prozess

Weshalb ist die Entwicklung eines Software Produktes, welches alle Anforderungen erfüllen soll, so schwierig?

Weil das Finden und Spezifizieren aller Anforderungen eines System sehr schwierig ist und weitreichende Konsequenzen in die Entwicklung hat. Das Requirements Engineering Process ist dafür da um alle Anforderungen systematisch und umfassend zu finden und zu dokumentieren.

Welche Activities werden sind in allen Software Engineering Prozessen beinhaltet?

  • Analysis – investigating what the system should do;

  • Specification – defining what the system should do;

  • Design – defining the organization of the system;

  • Implementation – implementing the system;

  • Validation – checking that it does what the customer wants;

  • Evolution – changing the system in response to changing customer needs. 

Requirements Engineering ist der Prozess um folgendes Festzulegen:

is the process of establishing

Die Dienste, die der Kunde von einem System benötigt und die Einschränkungen, unter denen sie arbeitet und entwickelt wird

Beschreibe den Plan Driven Process

 

Prozesse, bei denen alle Prozessaktivitäten geplant sind und Fortschritt wird an diesem Plan gemessen.

Beschreibe den Agile Process

 

Die Planung ist inkrementell und es ist einfacher, den Prozess zu ändern, um den sich ändernden Kundenanforderungen gerecht zu werden.

Requirements/Anforderungen im Requirements Engineering sind...

die Beschreibungen der Systemdienste und Einschränkungen, welche während des Requirements Engineering Prozesses bestummen werden.

Nenne die 3 Software Egnineering Process Models

Thewaterfallmodel

  •  Plan-driven model.
  • Separate and distinct phases of specification and development.

Incrementaldevelopment

  • Specification, development and validation are interleaved.

  • May be plan-driven or agile.

Reuse-orientedsoftwareengineering

  • The system is assembled from existing components.

  • May be plan-driven or agile. 

Zeichne das Wasserfall Model

Nenne Pro's und Contra's zum Wasserfall Model

tbd

Zeichne ein Incremental Development Process Model

Nenne Pro's und Contra's zu Incremental Development

+ Designfehler frühzeitig erkennen (Risiko minimieren)

+ flexibel bei neuen Anforderungen

+ früher Gewinn durch Beta-Releases

+ Kundenfeedback fliesst bereits in Implementierung rein

 

- Kein Ende in Sicht

- Erfordert fähiges Entwicklerteam und vollen Einsatz von jedem

- schwieriger zu planen

Zeichne de Reuse-Oriented Prozess

Zeichne den Requirements Eingineering Prozess

Zeichne ein Generisches Model vom Design Prozess

Was ist der Grund für Software Validation and Verification

  • show that a system conforms to its specification and
  • meets the requirements of the system customer.

Welche 3 Stufen von Testing gibt es?

Zeichne den Ablauf auf

  • Development or component testing

    • Individual components are tested independently;

    • Components may be functions or objects or coherent groupings of these entities.

  • System testing

    • Testing of the system as a whole. Testing of emergent properties is particularly important. 

  • Acceptance testing

    • Testing with customer data to check that the system meets the customer’s need

    • Includes usability testing

Nennen Sie die zwei Typen von Requirements, eklären Sie deren Eigenschaften und von wem wird es gelesen:

  • User Requirements
    • Aussagen in der natürlichen Sprache plus Diagramme der Dienstleistungen, die das System bietet und seine operativen Einschränkungen.
    • Geschrieben für Kunden
    • Wird gelesen von: Kundenbetreuer, Endnutzer, Client-Engineers, Vertrags-Manager, System-Architekten
  • System Requirements
    • Ein strukturiertes Dokument, in dem detaillierte Beschreibungen der Funktionen, System-Architekten Dienste und Betriebsbedingungen des Systems beschrieben werden.
    • Definiert, was umgesetzt werden soll, kann ein Teil eines Vertrages zwischen Auftraggeber und Auftragnehmer sein.
    • Die Systemanforderungen können in funktionale und nicht funktionale und Domänenanforderungen gruppiert werden, obwohl diese Gruppen manchmal nicht eindeutig getrennt oder sogar überlappen können.
    • Wird gelesen von: Endnutzer, Client-Engineers, System-Architekten, Software Entwickler

Advances of Modeling (5)?

  1. Solve System and Software development problems methodically
  2. reduction of the system complexity
  3. evaluation before implementation
  4. Decomposition into independet modules (easier to implement)
  5. Reduction of design errors > reduction of dev. Costs

What is System Modeling (5)?

  • The process of developing abstract models of a system, with each model presenting a different view or perspective of that system 
  • A graphical notation of a System
  • A formal, mathematical description (z.B. ER for DB),
  • A universal tool for different stakehoders
  • It focuses on main aspects > incomplete

Welche Modellier Systempersketiven gibt es, nenne 4

  • External: Context or environment of the System
  • Structural: Organization of a System or Structure of the processed data
  • Interaction: System - -Environment or Component -- Component
  • Behavioral: Dynamic behavior of the System, Responds to events

UML elements can be put into 4 categories:

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

Where can UML note be used?

In any UML diagram

5 Diagrams for static aspects (Structural)

  • Class D.
  • Object D.
  • Package D.
  • Component D.
  • Deployment D.

4 Diagrams for dynamic aspects (Behaivoral)

  • Use Case D.
  • Activity D.
  • State D.
  • Sequence D.

What does the UML Collaboration Notation show?

  • Classes, Interfaces and other UML elementw which together realize a higher level task or abstraction.-
  • Only conceptual not physikal

EP: What are Context models for?

  • Illustrate the operational context
    • what is outside the System boundaries 
    • definition of "out of Scope" on system level
    • is based on user and system requirements

EP: What are Architectural Models for?

- Show the system and ist relationship with oder systems