Vorgehensmodelle Flashcards
Wie lautet die Definition für Rechnerprogramm?
Menge von Anweisungen und Vereinbarungen für einen realen oder erdachten Computer.
Wie lautet die Definition für Software?
Gesamtheit aller Programme und der dazugehörigen Daten.
Wie lautet die Definition für Software-System?
Zusammengehörende Programme zur Erreichung eines Zieles.
Wie lautet die Definition für Software-Produkt?
Kommerziell verfügbares Software-System.
Nennen sie Merkmale von Software.
- immateriell
- kein Verschleiß
- keine physikalische Begrenzung
- leicht änderbar
- keine Ersatzteile
- schneller Alterungsprozess
- schwer messbar
Was ist Anwendersoftware?
Programme die dem Benutzer helfen, seine Aufgaben leichter und schneller zu Lösen.
In welche Bereiche kann Anwendungssoftware aufgeteilt werden? Nennen sie jeweils zwei Beispiele.
- Branchenspezifische Anwendungssoftware z.B. Bankingprogramme, Industrieprogramme
- Branchenübergreifende Anwendungssoftware z.B. Büroprogramme, Grafikprogramme
Wie kann Anwendungssoftware erstellt werden?
• Individual-Software
o Eigenentwicklung z.B. Kundenverwaltung
Selbst programmieren
o Fremdentwicklung z.B. online Banking-Portal
Auftragsvergabe an ein Softwarehaus
• Standard-Software
o Schlüsselfertig z.B. Word
im Laden kaufen
o Werkzeugkasten z.B. Dokumentenmanagementsysteme
Firmenspezifische Zusammenstellung und Anpassung
Nennen Sie Beispiele für branchenübergreifende Andwendungssoftware
- Bürosoftware und Publishing-Software
- Graphik- und Multimedia-Software
- Datenbanken
- Kooperations-Software
- Mathematik-Software
- Projektmanagement-Software
- Lern-Software
Nennen Sie Beispiele für branchenspezifische Anwendungssoftware.
- Industrie-Software
- Handels-Software
- Medizin-Software
- Banken-Software
- Handwerks-Software
- Versicherungs-Software
- Logistik-Software
In welche Bereiche lässt sich przessunterstützende Maschinenbau Software unterscheiden?
- Funktionsunterstützende Anwendungssoftware
* Prozessübergreifende Integrationssoftware
Nennen Sie Bereiche für Funktionsunterstützende Anwendungssoftware und nennen Sie jeweils ein Beispiel.
• Rechnerunterstützte Konstruktion o CAD – Computer Aided Design • Rechnerunterstützte Berechnung/ Produktionssimulation o CAE – Computer Aided Engineering • Rechnerunterstützte Produktionsplanung o CAP – Cpmputer Aided Planning • Rechnerunterstützte Fertigung o CAM – Computer Aided Manufacturing • Numerische Steuerung von Werkzeugmaschinen o NC – Numeric Control • Rechnerunterstützte Fabrikplanung
Nennen Sie Bereiche für Prozessübergreifende Integrationssoftware und nennen Sie jeweils ein Beispiel.
• Rechnerunterstützte Qualitätsicherung o CAQ – Computer Aided Quality Assurance • Engineering Dokumentverwaltung o EDM – Engineering Data Management • Produktdaten Management o PDM – Product Data Management • Engineering-Kooperationssoftware • Elektronische Engineering-Marktplätze
Nennen Sie Maschinenbauprodukte mit hhen Software-Anteilen.
- Auto
- Roboter
- Flugzeug
- mechatronic Systems/ Embedded Systems Vernetzte komplexe Systeme
Wie ist die Bedeutung von „smart“?
clever, intelligent, agile, modern, simple, …
Nennen Sie Software zur virtuellen Produktentwicklung.
- 3D-CAD Konstruktion
- Digitale Crash Simulation
- Virtueller Prüfstand
- Interdisziplinäres Collaborative Engineering
Nennen Sie Software zur virtuellen Produktionsplanung.
• Virtuelle Fabrikplanung
Nennen Sie Software für den Online-Vertrieb
• Online Produkt-Konfiguration
Nennen Sie Software zur computer-basierten Wartung / Instandhaltung
• Augmented Reality – Unterstützung für Reparatur und Wartung
Wie ist die Entwicklungsgeschichte der Software?
- Generation: Unabhängige Programmier-Dienstleister
- Generation: Erste Software-Produkte
- Generation: Unternehmens-Standardsoftware-Lösungen
- Generation: Massen-Software-Pakete
- 5.Generation: Browserbasierte Software, Web Services
Warum nimmt die Bedeutung der Software zu?
- Über 80% aller Industrie-Arbeitsplätze werden mit Software unterstützt
- Software ist Innovationsmotor in der Industrie
- Software ist Nervensystem der Wirtschaft
Wie hat sich Software in den letzten 30 Jahren verändert?
• Merkmale:
o Wachsende Komplexität
o Zunehmende Kunden-Qualifikationsanforderungen
o Zunehmende Standardsoftware
o Zunehmende „Außer-Haus“-SW-Entwicklung
o Engpass bei qualifizierten Mitarbeitern
• Das führte zu folgenden Problemschwerpunkten:
o sehr hoher Entwicklungsaufwand
o höhere Komplexität
o geringe Entwicklungseffizienz
o ungenaue Kostenschätzung und unverbindliche Zeitplanung
o geringe SW-Qualität
o geringe SW-Benutzerfreundlichkeit
o aufwendige Wartung/Änderung
Wer stellt Anforderungen an die Software?
- Auftaggeber
- Benutzer
- Softwareentwickler
Welche Anforderungen stellt der Auftraggeber an die Software?
- Wirtschaftlichkeit
- Anpassungsfähigkeit
- Zuverlässigkeit
- Wartbarkeit
- Kompatibilität
Welche Anforderungen stellt der Benutzer an die Software?
- Benutzerfreundlichkeit
- Robustheit/ Stabilität
- Korrektheit
- Selbsterklärung
- Hilfen
- Dokumentation
Welche Anforderungen stellt der Softwareentwickler an die Software?
- Funktionstreue
- Qualitätstreue
- Termintreue
- Kostentreue
- Wiederverwendbarkeit
Wie lautet die Definition von Software-Technik?
- Software Engineering = Software-Technik = Zielorientierte, systematische, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen.
- Dies beinhaltet die Anwendung von Prinzipien, Vorgehensmodellen, Methoden und Werkzeugen während des gesamten Softwarelebenszyklus.
Wie lauten die Entwicklungsstufen der Software-Technik?
- Entwicklung konventioneller Programmiersprachen
- Aufbau einer Software-Entwicklungsmethodik
- Entwicklung von Werkzeug- und Programmierumgebungen
- Entwicklung von Spezifikationssprachen und erster CASE-Ansätze
- Entwicklung integrierter Software-Entwicklungsumgebungen
Nennen Sie die Aktivitäten in der Planungsphase.
- Grobe Problemanalyse
- Prüfen der fachlichen/technischen Machbarkeit
- Prüfen der organisatorischen/personellen Machbarkeit
- Prüfen von verschiedenen Realisierungsalternativen
- Grobe Aufwands- und Terminschätzung
- Grobe Wirtschaftlichkeitsrechnung
Nennen Sie die Teilnehmer der Planungsphase und die Dokumente die ein- und rausgehen.
• Teilnehmer: o Auftraggeber o Projektleiter o Anwendungsspezialist (intern/extern) • eingehende Dokumente: o Vorgaben des Auftraggebers • rausgehende Dokumente: o Lastenheft (Grobes Pflichtenheft) o Grobes Glossar (Begriffserklärungen) o Grobe Projektkalkulation o Projektplan
Welche Aktivitäten werden in der Definitionsphase durchgeführt?
- Detaillierte Problemanalyse
- Ermitteln und beschreiben der Anforderungen
- Analysieren der Anforderungen
- Anforderungen fachlich Modellieren
- Abstimmung/Simulation der anforderungen
- Anforderungen verabschieden/festschreiben
Wer ist an der Definitionsphase beteiligt und welche Dokumente gehen ein und aus?
• Teilnehmer: o Auftraggeber o Projektleiter o Anwendungsspezialist o Systemanalytiker • eingehende Dokumente: o Glossar o Lastenheft • ausgehende Dokumente: o Detailliertes Glossar o Pflichtenheft o grobes Benutzerhandbuch • weitere ausgehende Dinge: o Softwaremodell o Oberflächen-Prototyp oder Pilotsystem
Welche Aktivitäten finden in der Entwurfsphase statt?
- Ermitteln und festlegen der Umgebungs- und Randbedingungen
- Festlegung der Softwaremodule des Softwaresystems
- Make or buy Entscheidung
- Spezifikation des Funktions- und Lösungsumfangs jedes Softwaremoduls
- Beschreibung der Schnittstellen und Wechselwirkungen zwischen den Softwaremodulen des Softwaresystems
Was geht in die Entwurfsphase ein und was geht raus. Wer sind die Teilnehmer?
• Eingehend: o Glossar o Pflichtenheft o Softwaremodell o Oberflächen-Prototyp oder Pilotsystem o Benutzerhandbuch + Hilfekonzept • Ausgehend: o Software-Architektur o Spezifikation der Systemkomponenten • Teilnehmer: o Projektleiter o Systemanalytiker o Entwerfer/Designer o Implementierer/Entwickler
Welche Aktivitäten finden in der Implementierphase statt und wonach können diese unterschieden werden?
• Eigenentwicklung:
o Konzipieren der Datenstrukturen und Algorithmen
o Strukturieren des Programmes durch Verfeinerungsebenen
o Ausführliche, entwicklungsgerechte Programmdokumentation
o Programmierung in einer Programmiersprache
o Testen oder Verifizieren des entwickelten Programmes
• Nutzung von Standardsoftware:
o Verfeinerung des Software-Pflichtenheftes
o Standard-Software-Vorauswahl
o Standard-Software-Bewertung
o Auswahl einer Standard-Software
o Firmenspezifische Installation und Anpassung der Standard-Software
Nennen Sie die Teilnehmer der Implementierungsphase sowie die Eingänge und Ausgänge.
• Teilnehmer: o Projektleiter o Entwerfer/Designer o Implementierer/Entwickler • Eingänge: o Software-Architektur o Spezifikation der Systemkomponenten • Ausgänge: o Quellprogramme einschl. Dokumentation u. Benutzeroberfläche o Objektprogramme o Testplanung und Testprotokoll bzw. Verifikationsdokumentation
Welche Aktivitäten finden in der Test-,Abnahme- und Einführungsphase statt?
- Software-Installation
- Software-Schulung
- Software-Inbetriebnahme
- Software-Abnahmetests
- Software-Probebetrieb
Nennen Sie Eingänge, Ausgänge sowie Teilnehmer der Test-, Abnahme-, Einführungsphase.
• Eingänge: o Alle Dokumente über die Software o Objektprogramm o Alle Modelle über die Software • Ausgänge: o Installierte Software o Gesamtdokumentation o Abnahmeprotokoll o Einführungsprotokoll o Archivierte Gesamtsoftware • Teilnehmer: o Projektleiter o Implementierer/Entwickler o Installationsentwickler / Deployment Planung
Was sind die Aufgaben der Betriebsphase?
- Wartung (Behebung von Fehlerursachen, Updating)
* Pflege (Lokalisierung und Durchführung von Softwareänderungen und –erweiterungen)
Nennen Sie Ursachen für Programmänderungen und Erweiterungen.
- Fehler im Betrieb
- Änderung der Umgebungsbedingungen
- Neue Anwenderwünsche und –anforderungen
Wie ist die typische Aufwandsverteilung im Lebenszyklus eines Software-Produkts?
- 20% Entwicklung
* 80% Wartung und Pflege
Welche Kategorien der Wartungs- und Pflegeaktivitäten gibt es?
- Stabilisierung
- Optimierung
- Anpassung
- Erweiterung
- korrigierend
- anpassend
- perfektionierend
Wie lauten die Ziele des Qualitätsmanagement in der Softwareentwicklung?
- Planen
- Steuern
- Überwachen/ Sichern aller Qualitätsanforderungen an die Software entlang des gesamten Software-Lebenszykluses
Welche Aufgaben hat das Projektmanagement in der Softwareentwicklung?
- Planung und Organisation von Ressourcen
- Planung und Überwachung der Teilprojektziele
- Planung und Überwachung der Projekt-Kosten
- Auswahl des geeignetsten Vorgehensmodells für die Softwareentwicklung
Was beschreiben Vorgehensmodelle allgemein und unabhängig von konkreten Aufgaben?
- einzelne Arbeitsschritte
- die Arbeitsschritt-Reihenfolge
- die Zuordnung von Personen/Rollen zu den Arbeitsschritten
- Ein- / Ausgangsinformationen der Arbeitsschritte
- die eingesetzten Methoden / Werkzeuge zur Bearbeitung einer Menge ähnlicher Aufgaben
Was ist der Nutzen von Vorgehensmodellen?
- (verbesserte) Planbarkeit
- Kontrollierte und (weitestgehend) einheitliche Durchführung des Projekts
- Verbesserte Kommunikation im Projekt
- Senkung von Aufwänden durch Rückgriff auf Erfahrungswerte
- Höhere Qualität der Projektergebnisse
- Minimierung von Projektrisiken
- Möglichkeit, Erfahrungen zum Vorgehensmodell zu sammeln und zu verbessern, bzw. an die eigene Situation anzupassen
- insgesamt höhere Wahrscheinlichkeit, dass das Projekt innerhalb festgelegter Qualität, verfügbaren Budget und zum gesetzten End-Termin fertig wird
Welche Vorgehensmodelle gibt es?
- Klassisches sequenzielles Software Life Cycle Modell
- Wasserfallmodell
- Evolutionäres Modell
- V-Modell
- Inkrementelles Modell
- Agile Vorgehensmodelle (XP, SCRUM
Beschreiben Sie das klassische sequenzielle „Software-Life-Cycle-Modell“
• sequenzieller Phasendurchlauf • Rücksprünge nicht möglich • geeignet für kleine Projekte • Im Kreis angeordnete Phasen: o Problemstellung o Planungsphase o Definitionsphase o Entwurfsphase o Implementierungsphase o Test-, Abnahme- und Einführungsphase o Betriebsphase
Definieren sie das Software-Life-Cycle-Modell
Sequentielles Modell, bei dem in einer starren Abfolge jede Phase einmal durchlaufen wird.
Nenne Sie Vor- und Nachteile des Software-Life-Cycle-Modells.
• Vorteile:
o Softwareplanung unabhängig vom Anwendungsgebiet, von der Projektgröße und –komplexität
o Bessere Strukturierung der Software als bei der herkömmlichen Softwareentwicklung ohne Vorgehensmodell
o Ermöglicht einen arbeitsteiligen Software-Entwicklungsprozess
o Ermöglicht eine genauere Abschätzung der Entwicklungskosten als bei der herkömmlichen Softwareentwicklung ohne Vorgehensmodell
• Nachteile:
o Beruht auf der (falschen) Annahme, dass der Entwicklungsprozess in der Regel sequenziell ausgeführt werden kann
o Die wirklichen, komplexen Wechselwirkungen zwischen den Phasen werden nicht berücksichtig
o Eine Phase darf erst dann begonnen werden, wenn die vorhergehende vollständig abgeschlossen ist.
o Hoher Änderungsaufwand
Beschreiben Sie das Wasserfallmodell.
- Streng sequentielles Vorgehensmodell
- Rücksprünge sind möglich
- Partizipation der Anwender ist vorgesehen
- geeignet für kleinere Software-Projekte
Wie ist das Wasserfallmodell definiert?
Weitgehend sequentielles Modell, das die Möglichkeit vorsieht, Rücksprünge von einer Phase auf die vorangegangene Phase vorzunehmen.
Was sind Vor- und Nachteile des Wasserfallmodells?
• Vorteile: o Sehr einfach und übersichtlich o Rücksprünge möglich • Nachteile: o Für nachträgliche Änderungen an Anforderungen ungeeignet o Sichtbare Ergebnisse erst sehr spät im Entwicklungsprozess o zu lange Durchlaufszeiten o Unflexibel
Beschreiben sie das evolutionäre Modell (Spiralmodell)
- Schrittweise Konkretisierung
- Starke Einbeziehung von Anwendern
- Permanente Zieländerungen sind möglich
- geeignet für große, komplexe Software-Projekte
- spiralförmige Anordnung, immer wieder durchlaufen von Festlegung der Ziele, Beurteilung von Alternativen und Risiken, Entwicklung und Test und Planung der nächsten Phase
Wie lautet die Definition des Spiralmodells?
Modell, bei dem der Entwicklungsprozess in iterativer Weise vollzogen wird, indem die Aktivitäten Zielbestimmung, Risikoanalyse, Entwicklung/Test und Planung des nächsten Zyklus in jeder Phase durchlaufen werden.
Nennen Sie Vor- und Nachteile des Spiralmodells.
• Vorteile:
o Begrenzung der Risiken
o Geeignet für sehr große und langwierige Projekte mit unklaren Anforderungen
o Höhere Flexibilität und stetige Annäherung an die Anforderungen
• Nachteile:
o Zeit- und Kostenplanung der gesamten Softwareentwicklung ist sehr schwierig
Beschreiben sie das V-Modell
- Weiterentwicklung des Wasserfallmodells
- Gegenüberstellung von spezifizierenden und umsetzenden Aktivitäten
- Berücksichtigung des Projektdatenmanagements und der Qualitätssicherung
- Anwender-Rollenkonzept ist vorgesehen
Wie lautet die Definition des V-Modells?
Sequentielles Modell, bei dem die spezifizierten und umsetzenden Aktivitäten gegenübergestellt werden (hierdurch ergibt sich eine v-förmige Anordnung der Phasen)
Nennen sie Vor- und Nachteile des V-Modells.
• Vorteile:
o Bessere Abstimmung zwischen Softwareentwicklung und –Tests
o Beschreibung von Software-Produktzuständen
o Zuschnitt des Vorgehensmodells auf die jeweilige Projektgröße
• Nachteile:
o Für kleinere Projekte zu komplex
Beschreiben sie das inkrementelle Modell.
- geeignet, wenn Kunden Anforderungen am Anfang noch nicht ganz klar sind
- Stufenweise Entwicklung von Software-Produkten
- Bei jeder neuen Version werden weitere Kunden-Anforderungen erfüllt
Definieren sie das inkrementelle Modell.
Im Gegensatz zum V-Modell wird bei diesem Modell, sobald eine ausreichende Anzahl an Kernanforderungen beschrieben ist, für diese ein Entwurf und die Implementierung gestartet. Je mehr Anforderungen hinzukommen, desto mehr zusätzliche Inkremente werden gestartet.
Nennen Sie Vor- und Nachteile des inkrementellen Modells.
• Vorteile:
o Teilweise Entwicklung und Einführung von Software-Modulen
o Bessere Reaktion auf Anforderungsänderungen
o Viele überschaubare Schritte
• Nachteile:
o Die Gesamtarchitektur kann erst im Laufe der fortschreitenden Entwicklung auf Eignung geprüft werden
Beschreiben Sie XP – Extreme Programming
- Die Funktionalität des Systems wird in User Stories zusammengefasst
- Jeweils zwei Entwickler programmieren gemeinsam
- Vor der Entwicklung werden Tests erstellt
- Auf unnötige Features wird verzichtet
- Kunde ist bei der gesamten Entwicklung dabei
- Extrem kurze Zyklen für Anforderungsanalyse, Design, Implementierung und Test. Ergebnis pro Zyklus ist immer ein lauffähiges Programm
- Insgesamt entsteht keine oder nur sehr wenig Dokumentation
Definieren sie XP.
XP definiert fest Regeln und Practices zu Planung, Design, Kodierung und Testen, auf deren Einhaltung bestanden wird. Über allen Regeln stehen die fünf Werte: Kommunikation, Einfachheit, Feedback, Mut und Respekt.
Nennen Sie Vor- und Nachteile von XP.
• Vorteile:
o Schnell ändernde Spezifikationen können eingearbeitet werden
o Unterstützt hohe Produktivität ohne Bürokratie
o Hochriskante Projekte können bearbeitet werden
o Automatisierte Tests werden unterstützt
o jedes Release ist „vorzeigbar“
• Nachteile:
o Permanente Ansprechbarkeit des Kunden ist Grundvoraussetzung
o Nur für sehr kleine Teams geeignet
o Projektablauf nur sehr schwer nachvollziehbar
o Der Erfolg ist stark personenabhängig
o Planbarkeit und Kostenkontrolle ist kaum gegeben
Welche Rollen gibt es bei SCRUM? Beschreiben sie diese.
• Product Owner:
o Definiert Produkt-Features
o Bestimmt Auslieferungsdatum und Inhalt
o Ist verantwortlich für den Gewinn des Projektes (ROI)
o Priorisiert Features anhängig vom Marktwert
o Passt Features und Prioritäten nach Bedarf für jede Iteration an
o Akzeptiert oder weist Arbeitsergebnisse zurück
• Team:
o Typischerweise fünf bis zehn Personen
o funktionsübergreifend
o Mitglieder sollten Vollzeitmitarbeiter sein
o Teams organisieren sich selbst
o Mitgliedschaft kann sich nur zwischen Sprints verändern
• ScrumMaster:
o Repräsentiert das Management gegenüber dem Projekt
o Verantwortlich für die Einhaltung von Scrum-Werten und –Techniken
o Stellt sicher, dass das Team vollständig funktional und produktiv ist
o Unterstützt die enge Zusammenarbeit zwischen allen Rollen und Funktionen
o Schützt das Team vor äußeren Störungen
Aus welchen Phasen besteht SCRUM?
- Pregame
- Sprint
- Postgame
Beschreiben sie die Pregamephase von SCRUM.
- Im Pregame erfolgt die Festlegung der wesentlichen Produkteigenschaften und der grundlegenden Architektur, sowie die Projektplanung
- Alle Eigenschaften und gewünschten Features werden gemeinsam mit dem Kunden in einem Produkt-Backlog gesammelt und priorisiert
- In diesem Produkt-Backlog werden auch geänderte Anforderungen gesammelt
Beschreiben sie die Sprintphase von Scrum.
• Die eigentliche Entwicklungsarbeit wird in einem Sprint durchgeführt.
• Vor einem Sprint werden Features aus dem priorisierten Produkt-backlog ausgewählt und in das Sprint-Backlog übernommen. Die Auswahl und Planung umfasst nur so viele Features, wie das Team im nächsten Sprint auch tatsächlich umsetzen kann.
• Die eigentliche Entwicklung in einem Sprint umfasst vier wesentliche Schritte, die zyklisch durchlaufen werden:
1. Entwicklung eines Stücks neuer Software (Develop & Test)
2. Integration der entwickelten Komponenten (Wrap)
3. Review des integrierten Produkts (Review)
4. Anpassung und Verbesserung der vorliegenden Lösung (Adjust)
Was ist ein Daily Scrum?
• Parameter tägliche Meetings
• 15 Minuten
• Drei Kernfragen:
1. Was wurde seit dem letzten Daily Scrum erledigt?
2. Sind während der Entwicklung Probleme aufgetreten und – falls ja – welche waren das?
3. Was ist das Ziel beim nächsten Daily Scrum?
Was ist das Sprint-Review-Meeting?
- Team präsentiert, was es während eines Sprints erreicht hat.
- Typischerweise in Form einer Demo von neuen Features oder der zugrunde liegenden Architektur
- Informelles Meeting
- Teilnehmer: Kunden, ScrumMaster, Product Owner, ander Entwicklungsteams
Beschreiben sie die Postgamephase von SCRUM.
- Die abschließende Phase umfasst die Bereitstellung und Auslieferung neuer Funktionalität in Form von (neuen) Releases
- Der Product Owner entscheidet über Annahme oder Ablehnung
Wie lautet die Definition von SCRUM
Scrum ist ein agiler Prozess, der es erlaubt, auf die Auslieferung der wichtigsten Geschäfts-Anforderungen innerhalb kürzester Zeit zu fokussieren. Scrum gestattet es, schnell und in regelmäßigen Abschnitten (2-4 Wochen) tatsächlich lauffähige Software zu inspizieren. Selbstorganisierte Entwicklungsteams legen das beste Vorgehen zur Auslieferung der höchstpriorisierten Features fest.
Nennen Sie Vor- und Nachteil von SCRUM
• Vorteile:
o Priorisierung und Modularisierung von Funktionalitäten in kleinen Teilprojekten (Sprintphasen)
o Der Kunde erhält eine funktionierende Teillösung pro Sprint
o Qualitätssicherung ist ein integraler Bestandteil des Sprints
• Nachteile:
o Für bessere Skalierbarkeit (mehr als 10 Entwickler) werden SCRUMS von SCRUMS gebildet, was den Verwaltungsaufwand erhöht.