Warum hat sich die agile Entwicklung etabliert?
Weil klassische Modelle oft aufwendig sind, viel Zeit kosten und umfangreiche Dokumentation erfordern. Agile Methoden setzen auf schnelle, flexible Entwicklung mit bewährten Praktiken.
Was ist Work in Progress (WIP) in Kanban?
Work in Progress (WIP) bezeichnet die Anzahl der gleichzeitig bearbeiteten Aufgaben, die begrenzt werden sollte.
Was bedeutet Kaizen im Zusammenhang mit Kanban?
Kaizen steht für kontinuierliche Verbesserung, die in Kanban durch regelmäßige Meetings und Prozessoptimierungen angestrebt wird.
Wie hilft die Beschränkung der Aufgaben in Kanban?
Durch die Begrenzung der Aufgaben pro Spalte wird sichergestellt, dass nicht zu viele Arbeiten gleichzeitig begonnen werden und Engpässe erkannt werden können.
Wie unterscheidet sich Kanban von Scrum?
Kanban hat weniger feste Regeln als Scrum, setzt auf kontinuierliche Verbesserungen und erlaubt eine flexible Arbeitsweise ohne festgelegte Rollen oder Zeitintervalle.
Welche weiteren Prinzipien gibt es für die praktische Umsetzung von Kanban?
Es werden klare Regeln definiert.
Der Arbeitsablauf wird visualisiert.
Der Arbeitsablauf wird verwaltet.
Die Menge der Aufgaben wird beschränkt.
Es wird nach kontinuierlicher Verbesserung gestrebt.
Was bedeutet das Holprinzip in Kanban?
Beim Holprinzip fordert ein nachgelagerter Arbeitsschritt erst dann Material von einem vorgelagerten Arbeitsschritt an, wenn es benötigt wird.
Welche grundlegenden Prinzipien beschreibt David Anderson für Kanban
Dort beginnen, wo man sich aktuell befindet.
Inkrementelle und evolutionäre Änderungen anstreben.
Bestehende Prozesse, Rollen und Verantwortlichkeiten respektieren.
Führungsverantwortung fördern.
Wie werden Aufgaben in Kanban verwaltet?
Aufgaben werden durch ein Kanban-Board visualisiert, das die Entwicklungsphasen wie "Start", "In Bearbeitung" und "Erledigt" darstellt.
Woher stammt der Kanban-Ansatz ursprünglich?
Der Kanban-Ansatz stammt aus der Produktionssteuerung und wurde 1947 von Taiichi Ohno bei Toyota entwickelt.
Wer hat Kanban auf den IT-Bereich übertragen?
David Anderson hat Kanban im Jahr 2007 auf die IT-Welt übertragen.
Welche Meetings gibt es in Scrum?
Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospektive, Product Backlog Refinement.
Was ist das Product Backlog in Scrum?
Eine Liste mit allen Anforderungen an die Software, die regelmäßig aktualisiert wird.
Was ist das Sprint Backlog in Scrum?
Eine Liste mit den Aufgaben, die im aktuellen Sprint umgesetzt werden sollen.
Was ist das Product Increment in Scrum?
Die Summe aller fertiggestellten Backlog-Einträge nach einem Sprint, also der aktuelle Stand des Produkts.
Was sind agile Prozesse?
Agile Prozesse sind flexible Methoden zur Softwareentwicklung, die schnelle Anpassungen an sich ändernde Anforderungen ermöglichen. Beispiele sind Extreme Programming (XP), Scrum und Kanban.
Was ist Extreme Programming (XP)?
Extreme Programming (XP) ist eine agile Entwicklungsmethode, die auf kleinen, schnellen Entwicklungszyklen basiert. Sie wurde von Kent Beck, Ward Cunningham und Ron Jeffries entwickelt.
Welche Werte gibt es im Extreme Programming (XP)?
Kommunikation, Einfachheit, Feedback, Mut, Respekt.
Welche Prinzipien gibt es im Extreme Programming (XP)?
Menschlichkeit, Wirtschaftlichkeit, beidseitiger Vorteil, Verbesserungen, Vielfältigkeit, Reflexion, Fluss, Fehlschläge hinnehmen, Gelegenheiten wahrnehmen, akzeptierte Verantwortung, Qualität, Redundanzen vermeiden, kleine Schritte.
Welche Praktiken gibt es im Extreme Programming (XP)?
Paarprogrammierung, testgetriebene Entwicklung, Refactoring, Planungsspiel, einfaches Design, kurze Iterationen mit kleinen Releases, Einbeziehen des Kunden, ständige Integration, kollektives Eigentum, feste Programmierrichtlinien, keine Überstunden.
Was ist Scrum?
t: Scrum ist ein agiles Vorgehensmodell mit iterativen Entwicklungszyklen (Sprints), die maximal 30 Tage dauern. Es gibt feste Rollen, Artefakte und Meetings zur Organisation des Prozesses.
Welche Rollen gibt es in Scrum?
Product Owner, Scrum Master, Entwicklungsteam.
Welche Artefakte gibt es in Scrum?
Product Backlog, Sprint Backlog, Product Increment.
Wozu dienen User Stories in agilen Methoden?
Sie beschreiben Anforderungen aus Anwendersicht in einfacher Sprache, um die Bedürfnisse des Nutzers klarzustellen.
Welchen allgemeinen Aufbau sollte eine User Story haben?
**Als **** möchte ich ****, damit ich **.
Beispiel: Als Kunde möchte ich Restaurants suchen können, damit ich weiß, welche in meiner Nähe sind.
Welche Herausforderungen kann die Paarprogrammierung mit sich bringen?
Mögliche Blockaden durch unpassende Partnerwahl, längere Entwicklungsdauer, ungleiche Wissensstände können hinderlich sein.
Was wird bei der testgetriebenen Entwicklung zuerst erstellt – der Code oder der Test?
Der Test wird zuerst erstellt. Erst danach wird der Code geschrieben, bis der Test bestanden wird.
Welche drei Schritte umfasst der Entwicklungsprozess bei TDD?
Test schreiben (der Test schlägt fehl)
Code schreiben und anpassen (bis der Test bestanden wird)
Code aufräumen (Refactoring) (ohne neue Funktionalität hinzuzufügen)
Warum ist testgetriebene Entwicklung vorteilhaft?
Führt zu weniger Fehlern, verständlicherem Code, ermöglicht schnelle Rückmeldung und kontinuierliche Verbesserung.
Was steht bei agilen Methoden im Vordergrund?
Das Erreichen des Ziels, nicht das Abarbeiten eines festen Plans. Agile Methoden sollen den Aufwand in einem Prozess möglichst gering halten.
Was sind die wesentlichen Prinzipien der Paarprogrammierung?
Zwei Programmierer arbeiten gemeinsam an einem Rechner. Einer (Driver) schreibt den Code, der andere (Observer/Navigator) überprüft ihn und denkt über das Problem nach. Die Rollen wechseln regelmäßig.
Welche Vorteile bietet die Paarprogrammierung?
Bessere Software-Qualität, weniger Fehler, schnellerer Wissensaustausch, höhere Teamstimmung.
Was ist Refactoring?
Beim Refactoring wird der Code strukturell verbessert, ohne seine Funktionalität zu verändern, um Lesbarkeit, Wartbarkeit und Erweiterbarkeit zu optimieren.
Was ist Code Review?
Beim Code Review wird der Code auf Fehler geprüft. Dabei liegt der Fokus nicht auf der Struktur (wie beim Refactoring), sondern auf der Fehlererkennung.
Was sind typische „Code-Smells“?
Mehrfach vorhandener Code
Nicht genutzter Code
Zu umfangreiche oder zu kleine Klassen
Klassen ohne Funktionalität
Zu enge Verflechtungen zwischen Klassen
Änderungen an einer Stelle erzwingen Änderungen an anderen Stellen
Nichtssagende oder zu lange Namen
Tiefe Verschachtelungen
Übermäßige Kommentare als Indiz für unklaren Code
Was ist Unit-Testing?
Unit-Tests überprüfen einzelne Module (Units) einer Software und werden oft im Rahmen der testgetriebenen Entwicklung eingesetzt.
e: Welche Tools werden häufig für Unit-Tests verwendet?
Java: JUnit (https://junit.org/junit5/)
PHP: PHPUnit (https://phpunit.de/)
Welche Vorteile bietet Paarprogrammierung?
Höhere Software-Qualität durch sofortige Fehlererkennung
Vermeidung von Wissensmonopolen
Förderung des Lernens innerhalb des Teams
Verbesserung der Teamstimmung (sofern die Partner harmonieren)
Was ist testgetriebene Entwicklung (Test-Driven Development, TDD)?
TDD ist eine Methode, bei der zuerst Tests für eine noch nicht existierende Funktionalität geschrieben werden. Erst danach wird der Code entwickelt, bis der Test erfolgreich ist.
Welche drei Schritte umfasst die testgetriebene Entwicklung?
Erstellen des Tests – Ein Test für die noch nicht existierende Funktionalität wird geschrieben.
Erstellen und Anpassen des Codes – Minimaler Code wird geschrieben, um den Test zu bestehen.
Aufräumen des Codes – Der Code wird verbessert, ohne neue Funktionalität hinzuzufügen.
Welche Vorteile bietet testgetriebene Entwicklung?
Höhere Code-Qualität
Weniger Fehler
Bessere Wartbarkeit
Schnellere Entwicklung durch frühzeitige Fehlererkennung
Was sind agile Methoden?
Agile Methoden sind Techniken, die den Entwicklungsaufwand gering halten und das Erreichen des Ziels priorisieren, statt starr einem Plan zu folgen.
Worin unterscheiden sich agile Methoden und agile Prozesse?
Agile Methoden beziehen sich auf spezifische Techniken wie Paarprogrammierung oder testgetriebene Entwicklung, während agile Prozesse (z. B. Scrum oder Extreme Programming) umfassendere Rahmenwerke zur Softwareentwicklung sind.
Was ist Paarprogrammierung?
Bei der Paarprogrammierung arbeiten zwei Entwickler an einem Rechner. Einer schreibt den Code (Driver), der andere überprüft ihn und denkt über Verbesserungen nach (Observer). Die Rollen wechseln regelmäßig.
Was ist der Zweck eines Sponsoringkonzepts?
as Sponsoringkonzept dient der Ansprache und Akquise von Kooperationspartnern und Sponsoren. Es definiert die Erwartungen der Partner und legt fest, was diese an Geld- und/oder Sachmitteln liefern.
Was gehört zur Budgetplanung im Stadt(teil)-Eventmarketing?
Aufstellung der Gelder (Stadt, Handel, Sponsoren)
Identifikation von Refinanzierungsmöglichkeiten
Detaillierte Budgetplanung und Ressourcenaufteilung
Warum sollte Stadt(teil)-Marketing nicht nur als verwalterische Tätigkeit verstanden werden?
Stadt(teil)-Marketing ist ein Teil des Marketingmix, der das Ziel hat, die Infrastruktur zu gestalten und den Standort für Wirtschaft, Bürger und Besucher attraktiver zu machen. Es geht nicht nur um Werbung, sondern um das Binden von verschiedenen Akteuren.
Warum ist Kreativität wichtig im Stadt(teil)-Marketing?
Kreativität hilft dabei, spannende Projekte zu entwickeln, die das Interesse der Bürger und Besucher wecken. Es geht darum, innovative Konzepte zu finden, die die Werte und Visionen der Stadt widerspiegeln.
Welche Herausforderungen gibt es bei der Eventplanung im Stadtmarketing?
Abstimmung mit vielen Beteiligten
Sicherheitskonzepte für Großveranstaltungen
Wetterrisiken und Besucherströme steuern
Budgetierung und Sponsorenfindung
Warum sind Events allein nicht ausreichend für eine erfolgreiche Stadtvermarktung?
Stadtmarketing ist langfristig angelegt. Einzelne Events können Aufmerksamkeit generieren, aber eine nachhaltige Positionierung erfordert kontinuierliche Maßnahmen und eine durchdachte Strategie.
Was ist die erste Phase bei der Realisation von Stadt(teil)-Events?
Die Situationsanalyse. Sie umfasst die Sammlung von Statistiken, Bürgerbefragungen, Standortbewertung, Imagebewertung und die Analyse des Entwicklungspotenzials der Stadt/Region.
Welche Aspekte werden in der Situationsanalyse berücksichtigt?
Sammlung von Statistiken und Bürgerbefragungen
Standortbewertung und Imagebewertung
Analyse des Entwicklungspotenzials der Stadt/Region
Analyse erfolgreicher vergangener Projekte und Events
Was sind die wichtigsten Arbeitsschritte in der Konzepterstellung?
Definition der Zielsetzung (kurz-, mittel-, langfristig)
Künftige Positionierung der Stadt/Region
Abgrenzung gegenüber benachbarten Städten
Erstellung einer Themenliste und Festlegung der Schwerpunkte
Erstellung eines Projektplans für den Gesamtkommunikationsmix (Werbung, Events, Pressearbeit)
Welche Akteure müssen bei der Konzepterstellung berücksichtigt werden?
Politik
Verwaltung
Unternehmen
Einzelhandel
Dienstleister
Relevante Verbände/Organisationen
Welche Zielgruppen gibt es im Stadtmarketing?
Einwohner: Identifikation mit der Stadt stärken
Unternehmen: Standort attraktiv halten
Externe Besucher: Touristen, Investoren, Veranstaltungsteilnehmer
Warum sind Events ein wichtiger Bestandteil des Stadtmarketings?
Sie schaffen neue kulturelle Ereignisse
Sie ziehen Publikum an und stärken die Kaufkraft
Sie vermitteln Botschaften (z. B. Umweltbewusstsein, Stadtleitbild)
Sie fördern Sympathie für die Stadt
Welche Phasen umfasst die Umsetzung von Stadtmarketing-Projekten?
Situationsanalyse (Statistiken, Wettbewerbsanalyse)
Strategie- und Konzeptphase (Ziele, Maßnahmen, Budget)
Umsetzungsphase (Veranstaltungen, Kommunikation)
Ergebniskontrolle (Erfolgsmessung, Strategieanpassung)
Was bedeutet iterative und inkrementelle Entwicklung?
oftware wird in kurzen Zyklen weiterentwickelt. Jede Iteration liefert eine funktionierende Version des Produkts.
Karte 7
Welche Rolle spielen Prozesse und Dokumentation in der agilen Entwicklung?
Sie sind wichtig, aber zweitrangig im Vergleich zu funktionierender Software und Zusammenarbeit.
Was bedeutet Agilität in der Software-Entwicklung?
Schnelle, flexible Entwicklung mit kurzen Feedbackschleifen und enger Zusammenarbeit.
Was ist Stadtmarketing?
Stadtmarketing ist ein strategischer Ansatz zur gezielten Gestaltung und Vermarktung einer Stadt. Es basiert auf Kundenorientierung und dient der Steigerung der Lebensqualität der Bürger sowie der Attraktivität der Stadt im Standortwettbewerb.
Welche zentralen Akteure sind im Stadtmarketing involviert?
Politik, Verwaltung, Unternehmen, Vereine, Kulturschaffende, Sponsoren, Stadtteil- und Straßenwerbegemeinschaften sowie Bürger.
Welche vier Elemente umfasst der Marketing-Mix im Stadtmarketing?
Produktmix: Städtische Angebote, Dienstleistungen, Ambiente
Distributionsmix: Informationsverbreitung, Verkehrsanbindung
Kontrahierungsmix: Preispolitik, Steuern, Subventionen
Kommunikationsmix: Werbung, PR, Events
Definition Hardware
Die Hardware – wörtlich übersetzt „Eisenwaren“ – umfasst sämtliche Geräte der elektronischen Datenverarbeitung.
Welche Begriffe gibt es für Entwicklungs- und Testversionen?
Alpha-Version: Frühzeitige, unfertige Entwicklungsstufe für interne Tests.
Beta-Version: Fortgeschrittene Testversion für eine größere Gruppe von Testern.
Release Candidate (RC): Fast fertige Version zur finalen Fehlerbehebung.
RTM (Ready to Manufacturing): Endgültige Version, die veröffentlicht wird.
: Welche Begriffe gibt es für Software-Updates und -Erweiterungen?
Patch: Allgemeine Fehlerkorrektur oder essenzielle Ergänzung.
Hotfix: Schnelle Fehlerkorrektur für kritische Probleme.
Update: Behebt Fehler oder bringt kleinere Verbesserungen.
Upgrade: Fügt größere neue Funktionen hinzu.
Welche Aufgaben übernehmen Werkzeuge für das Konfigurationsmanagement?
Werkzeuge unterstützen unter anderem bei:
Anlegen neuer Versionen
Zuordnung von Versionsnummern
Automatischem Vergleich und Zusammenführen von Änderungen
Dokumentation von Unterschieden zwischen Versionen
Beispiel für ein solches Werkzeug: RCS (Revision Control System)
Wie wird eine Versionsnummer typischerweise aufgebaut?
Eine Versionsnummer besteht aus drei Zahlen:
Hauptversion (z. B. 2) → Große Neuerungen oder grundlegende Änderungen
Größere Änderungen (z. B. 1) → Wichtige Anpassungen oder neue Funktionen
Kleinere Änderungen (z. B. 6) → Kleine Fehlerkorrekturen oder Verbesserungen
Was bedeutet eine Versionsnummer mit einer führenden Null, z. B. 0.1.2?
Versionsnummern unter 1.0 (z. B. 0.1.2) kennzeichnen in der Regel Testversionen, die sich noch in der Entwicklungs- oder frühen Testphase befinden.
Was ist der Unterschied zwischen geplanter Wartung und einem Schnellschuss?
Geplante Wartung: Änderungen werden systematisch geplant, priorisiert und in eine zukünftige Version integriert. Es gibt einen Zeitplan.
Schnellschuss: Eine kurzfristige, ungeplante Korrektur eines schwerwiegenden Fehlers, die sofort umgesetzt wird.
Warum ist eine Versionsverwaltung notwendig?
Eine Versionsverwaltung ist notwendig, um Änderungen an einer Software nachvollziehbar zu machen, parallele Entwicklungen zu ermöglichen und Fehler durch das Überschreiben von Code zu vermeiden. Sie stellt sicher, dass ältere Versionen erhalten bleiben und Änderungen gezielt dokumentiert werden.
Welche Elemente gehören zu einer Version einer Software?
Eine Version einer Software umfasst nicht nur den Quellcode, sondern auch:
Dokumentationen
Diagramme
Testfälle
Weitere relevante Dateien
Faktoren Regressionstests und deren Bedeutung
Regressionstests sind Tests, die nach einer Änderung erneut durchgeführt werden, um sicherzustellen, dass keine neuen Fehler entstanden sind.
Diese Tests sind besonders wichtig, werden aber oft aus Zeitgründen vernachlässigt.
Faktoren Wartbarkeit und Wartungskosten
Die Wartbarkeit der Software kann über die Zeit abnehmen, wenn Wartungsmaßnahmen nicht gründlich durchgeführt werden.
Mit zunehmendem Aufwand für Wartung steigen auch die Kosten und der Bedarf an qualifiziertem Personal.
Problem 3 in der Softwareentwicklung
Fehlerkorrekturen müssen schnell durchgeführt werden, um die Software in Betrieb zu halten.
Oft werden nur die Symptome des Fehlers behoben, nicht die Ursache.
Regressionstests werden aus Zeitgründen ausgelassen, was zu neuen Fehlern führen kann.
Die Dokumentation der Korrekturen wird häufig vernachlässigt, was die Dokumentation unbrauchbar machen kann.
Problem 4 der Software-Entwicklung
– Der "Titanic-Effekt"
Entwickler unterschätzen Wartung und Fehler, weil das System grundsätzlich funktioniert.
Änderungen können unerwartete Auswirkungen auf das gesamte System haben.
Der „Titanic-Effekt“: Leichtsinn führt zu unvorhergesehenen Problemen, ähnlich der Katastrophe der Titanic.
Was ist der "Titanic-Effekt"?
Bezeichnet die Leichtsinnigkeit, Wartung als weniger wichtig zu erachten.
Ähnlich dem Verhalten vor dem Untergang der Titanic: „Das System ist stabil, es kann nichts passieren.“
Kann dazu führen, dass Änderungen die Software verschlechtern, anstatt sie zu verbessern.
Problem 1 in der Softwarewartug
– Fehlende Entwickler im Wartungsteam
Entwickler, die die Software erstellt haben, sind oft nicht mehr im Wartungsteam.
Wartung wird von Personen ohne Detailkenntnisse durchgeführt.
Neue Fehler können leicht entstehen, die ebenfalls behoben werden müssen.
Problem 2 in der Software-Wartung
Was ist der Unterschied zwischen Software und Pflege?
Wartung: Behebung von Fehlern und Optimierung der Software.
Pflege: Anpassungen und Erweiterungen der Software.
Oft wird der Begriff „Wartung“ verwendet, um beide Tätigkeiten zu beschreiben.
Weitere Unterteilungen der Wartung
Präventive Wartung: Vorbeugung von Fehlern.
Korrigierende Wartung: Behebung von Fehlern.
Adaptierende Wartung: Anpassungen und Änderungen an neue Anforderungen.
Perfektionierende Wartung: Optimierung der Software.
Wertsteigernde Wartung: Weiterentwicklung des Systems mit neuen Funktionen.
Probleme bei der Wartung
Der Wartungsaufwand wird oft unterschätzt.
Nach dem Übergang in den Realbetrieb wird die Wartung als abgeschlossen betrachtet, aber sie erfordert oft noch 30-80% des gesamten Projektaufwands.
Komplexe Software erfordert viel Wartung über die Jahre hinweg.
Warum muss Software gewartet werden?
Fehler, die erst im Realbetrieb entdeckt werden.
Tests decken nicht alle Fehler auf, besonders bei komplexen grafischen Benutzeroberflächen.
Fehler können durch unzählige Kombinationen von Benutzereingaben entstehen, die schwer alle zu testen sind.
Faktoren Alterung der Software
Software kann theoretisch unendlich lange leben, aber aufgrund von Änderungen in der Umgebung und den Einsatzbedingungen muss sie regelmäßig angepasst werden.
Beispiele: Jahrtausendwechsel, Euroeinführung, neue Betriebssystemversionen.
Auch kleine Änderungen (z.B. neue Rechtsvorschriften) erfordern Anpassungen.
Faktoren Veränderung der Software im Rahmen der Wartung
Software führt durch Weiterentwicklungen oft zu neuen Wünschen der Anwender.
Diese Änderungswünsche können die Software immer weiter anpassen und zu einer „Alterung“ der Anwendung führen, wenn sie nicht regelmäßig gepflegt wird.
Was versteht man unter Spiegelung in der Softwareeinführung?
Spiegelung bezeichnet das Erstellen einer 1:1-Kopie von Daten aus einem alten System in das neue System, um sicherzustellen, dass beide Systeme gleichzeitig aktuelle Informationen enthalten.
Was sind die Nachteile des Parallelbetriebs während der Softwareeinführung?
Der Parallelbetrieb erhöht den Aufwand erheblich, da beide Systeme gleichzeitig betrieben und verwaltet werden müssen und zusätzliche Hardware erforderlich ist.
Was passiert nach der Auslieferung der Software beim Kunden?
Nach der Auslieferung erfolgt bei Individualsoftware eine Installation, anschließend Tests und die Einführung der Software beim Kunden.
Was wird in der Zusammenfassung des Textes erwähnt?
In der Zusammenfassung wird betont, dass nach dem Abschluss der Entwicklung die Software ausgeliefert wird, bei Individualsoftware jedoch nach der Installation Tests und eine Einführung beim Kunden erfolgen.
Was sind Aufgaben zur Selbstüberprüfung in diesem Kapitel?
Die Aufgaben zur Selbstüberprüfung umfassen Fragen zur Übergabe von Quelltexten, zu Tests bei der Abnahme, zur Verantwortung des Abnahmetests, zum Rollout und zur Übernahme von Daten bei der Einführung einer neuen Software.
Was versteht man unter dem Realbetrieb einer Software?
Der Realbetrieb beginnt, wenn die Software produktiv gesetzt wird, d.h., sie wird nach den Schulungen und der Datenübernahme tatsächlich genutzt.
Was ist der Unterschied zwischen direkter Ablösung und Parallelbetrieb bei der Einführung einer neuen Software?
Bei der direkten Ablösung wird das alte System nach der Datenübernahme stillgelegt, während im Parallelbetrieb beide Systeme eine Zeitlang parallel laufen, sodass bei Problemen auf das alte System zurückgegriffen werden kann.
Was sind die Risiken einer direkten Ablösung eines alten Systems durch ein neues?
Bei der direkten Ablösung können neue Fehler auftreten, die Datenverluste verursachen oder betriebliche Abläufe blockieren. Eine Rückkehr zum alten System ist schwierig, da zwischenzeitlich neue Daten im neuen System erfasst wurden.
Wann kommen Images bei der Softwareverteilung zum Einsatz?
: Images werden eingesetzt, wenn auf vielen Computern eine Erstinstallation durchgeführt oder Rechner regelmäßig auf eine Standardinstallation zurückgesetzt werden sollen, z.B. nach einem Seminar in einem Schulungszentrum.
Warum sind Images für die Installation einer einzigen Anwendung oder für eine Aktualisierung ungeeignet?
Bei der Installation über ein Image werden alle bestehenden Dateien überschrieben, was dazu führt, dass alle Einstellungen und Dokumente auf dem Zielrechner verloren gehen.
Was ist eine Mischform bei der Installation von Software mit einem Image?
Eine Mischform besteht darin, zunächst eine Grundinstallation des Betriebssystems über ein Image abzubilden. Dieses Image wird auf weitere Computer übertragen, wo eine individuelle Installation, oft über ein Skript, durchgeführt wird.
Wann funktioniert die Verteilung über Images oder Software Management Systeme problemlos?
Die Verteilung funktioniert ohne größere Probleme, wenn sich die Zielrechner nicht oder nur geringfügig unterscheiden.
Images werden eingesetzt, wenn auf vielen Computern eine Erstinstallation durchgeführt oder Rechner regelmäßig auf eine Standardinstallation zurückgesetzt werden sollen, z.B. nach einem Seminar in einem Schulungszentrum.
Was ist Branchensoftware?
Branchensoftware ist eine Mischung zwischen Standardsoftware und Individualsoftware. Sie ist speziell für die Anforderungen einer bestimmten Branche entwickelt, jedoch nicht auf die Bedürfnisse eines einzelnen Unternehmens zugeschnitten.
Was ist ein EULA?
EULA steht für "End User License Agreement" (Endanwenderlizenzvereinbarung). Es regelt die Nutzungsrechte der Software und ist eine vertragliche Vereinbarung zwischen dem Softwareanbieter und dem Nutzer.
Wie erfolgt die Installation von Software beim Kunden?
Die Installation erfolgt oft automatisch oder halbautomatisch mit speziellen Installationsroutinen. Diese ermöglichen es, die Software an einem bestimmten Ort zu installieren und gegebenenfalls bestimmte Teile der Software auszuwählen. Bei komplexer Software kann auch eine manuelle Installation erforderlich sein.
Welche Tests werden nach der Installation von Individualsoftware beim Kunden durchgeführt?
Nach der Installation führt der Kunde Tests wie Akzeptanztests, Funktionstests und Lasttests durch. Diese Tests überprüfen, ob die Software unter realen Bedingungen funktioniert und die Anforderungen erfüllt.
Was wird in einem Abnahmeprotokoll festgehalten?
Im Abnahmeprotokoll werden entweder aufgetretene Fehler dokumentiert oder die Software wird vom Kunden freigegeben. Es ist wichtig, die Abnahme schriftlich zu bestätigen, um spätere Streitigkeiten zu vermeiden.
Was sind die Hauptaufgaben in der Einführungsphase einer Software?
Zur Einführungsphase gehören die Schulung der Anwender und Administratoren, die Übernahme von Altdaten und gegebenenfalls die Installation der Software auf allen Arbeitsplatzrechnern.
Was ist der Unterschied zwischen Stammdaten und Bewegungsdaten?
: Stammdaten sind langlebige Informationen wie Kundendaten oder Artikeldaten. Bewegungsdaten sind eher kurzlebige Informationen, die Vorgänge wie Kundenanfragen oder Rechnungen betreffen.
Was ist ein Software Management System?
Ein Software Management System wird verwendet, um Software automatisch auf mehreren Arbeitsplatzrechnern zu installieren. Dabei wird eine Referenzinstallation durchgeführt und alle Änderungen in einem Skript festgehalten, das dann auf alle Rechner verteilt wird.
Was bedeutet „Klonen“ bei der Softwareinstallation?
Klonen bedeutet, eine 1:1-Kopie eines Systems zu erstellen. Diese Kopie wird dann auf andere Computer verteilt, sodass alle Rechner identische Software und Einstellungen haben.
Was passiert nach dem Abschluss der Softwareentwicklung?
Nachdem die Software alle Tests beim Produzenten bestanden hat und die Fehler korrigiert wurden, ist die Entwicklung abgeschlossen. Die Software wird dann an den Kunden ausgeliefert. Es erfolgt jedoch noch eine schrittweise Einführung und Tests durch den Kunden.
Was wird bei der Auslieferung von Standardsoftware an den Kunden übergeben?
Bei Standardsoftware erhält der Käufer Datenträger mit dem ausführbaren Programm und allen notwendigen Dateien sowie eine Dokumentation. In einigen Fällen erfolgt die Auslieferung über das Internet, z.B. als Download oder in der Cloud.
Was ist der Unterschied zwischen Standardsoftware und Individualsoftware?
Standardsoftware ist für einen breiten Markt und allgemeine Funktionen (z.B. Textverarbeitung) entwickelt und ist nicht an eine Branche oder spezielle Unternehmensfunktionen gebunden. Individualsoftware wird speziell für einen Auftraggeber entwickelt und ist auf dessen Bedürfnisse zugeschnitten.
Warum sind Regressionstests nach einer Fehlerkorrektur notwendig?
Um sicherzustellen, dass die Korrektur keine neuen Fehler verursacht hat und frühere Funktionalität erhalten bleibt.
Warum werden Regressionstests oft eingeschränkt durchgeführt?
Aus Zeit- und Kostengründen werden oft nur die direkt betroffenen Testfälle geprüft, was das Risiko unerkannt neuer Fehler erhöht.
Was ist der Zweck eines Testprotokolls?
: Es dokumentiert Fehler, hilft bei deren Analyse und dient als Grundlage für die Fehlerkorrektur.
Wie werden Testprotokolle verarbeitet?
Sammlung und Bewertung – Prüfung, ob es sich um einen bekannten Fehler oder Änderungswunsch handelt.
Weiterleitung an Programmierer – Fehler wird im Quelltext gesucht und behoben.
Nachtest – Überprüfung, ob der Fehler tatsächlich behoben wurde.
Abschluss – Falls behoben, wird die Fehlermeldung geschlossen.
: Was ist ein Nachtest?
Ein erneuter Test nach der Fehlerkorrektur, um zu prüfen, ob der Fehler wirklich behoben wurde.
: Was ist ein Debugger?
Ein Werkzeug, das den Quelltext zeilenweise ausführt und die aktuellen Inhalte von Datenobjekten anzeigt, um Fehler zu lokalisieren.
Woher kommt der Begriff „Bug“ für einen Softwarefehler?
Der Begriff stammt aus den Anfangszeiten der Computertechnik, als ein Insekt („bug“) einen Kurzschluss verursachte.
Was ist ein Dummy (Teststumpf)?
in Platzhalter, der fehlende Teilsysteme simuliert und bei der Top-Down-Strategie verwendet wird.
Was ist ein Testtreiber?
Ein Programm, das ein Testobjekt mit Daten versorgt, häufig in der Bottom-Up-Strategie genutzt.
Was sind Regressionstests?
Tests, die sicherstellen, dass frühere Funktionalitäten nach Änderungen weiterhin korrekt funktionieren.
Was ist das Ziel der Fehlerbehebung?
: Die Korrektur von in Tests gefundenen Fehlern, um die Software fehlerfrei und funktionsfähig zu machen.
Welche Informationen sollten in einem Testprotokoll festgehalten werden?
Ort des Fehlers – In welcher Komponente, Klasse oder Eingabemaske?
Auswirkungen des Fehlers – Was ist passiert?
Schwere des Fehlers – Hat er den Testablauf unterbrochen?
Beteiligte Testfälle – Welche Daten führten zum Fehler?
Reproduzierbarkeit – Tritt er immer oder nur unter bestimmten Bedingungen auf?
Was ist der Vorteil der Bottom-Up-Strategie?
✅ Kein Aufwand für Dummies, da untere Ebenen vollständig vorhanden sind.
Was ist ein Nachteil der Bottom-Up-Strategie?
❌ Das Gesamtverhalten des Systems wird erst spät getestet, sodass größere Änderungen nachträglich nötig sein können.
Was ist die inkrementelle Strategie?
Wichtige Teilsysteme werden zuerst integriert.
Danach werden schrittweise weitere Teile ergänzt.
Nach jeder Erweiterung erfolgen Regressionstests.
: Was sind die Vor- und Nachteile der Big Bang-Strategie?
✅ Kein schrittweises Testen nötig.
❌ Fehler schwer zu lokalisieren, da das gesamte System getestet werden muss.
❌ Hoher Aufwand zur Fehlerbehebung.
Wie funktioniert die Top-Down-Strategie?
Zuerst werden die oberen Teilsysteme integriert.
Fehlende untergeordnete Teilsysteme werden durch Dummies (Teststümpfe) simuliert.
Danach erfolgt die Integration der unteren Ebenen.
Wie funktioniert die Bottom-Up-Strategie?
Die unteren Teilsysteme werden zuerst integriert.
Testtreiber simulieren den Aufruf aus übergeordneten Schichten.
Danach erfolgt die Integration der oberen Ebenen.
Was ist der Zweck eines Integrationstests?
Der Integrationstest prüft das Zusammenspiel verschiedener Teilsysteme und Komponenten eines Systems nach deren Zusammenführung.
Was sind typische Herausforderungen beim Integrationstest?
Häufig bestehen Abhängigkeiten zwischen Teilsystemen, die noch in der Entwicklung oder Testphase sind und daher nicht vollständig geprüft werden können.
Welche Strategien gibt es für den Integrationstest?
Big Bang – Alle Teile werden gleichzeitig integriert und getestet.
Top-Down – Die oberen Ebenen werden zuerst integriert, fehlende untere Ebenen durch Dummies ersetzt.
Bottom-Up – Die unteren Ebenen werden zuerst integriert, Testtreiber simulieren fehlende obere Ebenen.
Inkrementelle Strategie – Wichtige Teile werden zuerst integriert, nach und nach weitere ergänzt.
Wie wird eine Klasse getestet?
Beim Testen einer Klasse wird eine Instanz der Klasse erstellt, dann werden alle Methoden getestet, die den Zustand nicht verändern, gefolgt von denen, die den Zustand verändern. Zum Schluss werden abhängige Methoden getestet.
Was ist ein Testling?
Ein Testling ist das System oder Programm, das getestet wird.
Was ist eine Äquivalenzklasse?
Eine Äquivalenzklasse ist eine Menge von Eingabewerten, die das gleiche Verhalten eines Programms erwarten lassen, sodass nur ein Wert aus dieser Klasse für einen Test benötigt wird.
Was ist der Nachteil der strukturorientierten Testverfahren?
Strukturorientierte Testverfahren können keine fehlenden Funktionalitäten im Code aufdecken, da sie nur bestehende Strukturen testen.
Was kann die Kantenüberdeckung nicht feststellen?
Die Kantenüberdeckung kann nicht feststellen, ob z.B. eine Schleife korrekt durchlaufen wird oder ob der Wert einer Variablen korrekt verändert wird, wie bei einem Fehler in der Schleifenbedingung.
Nenne zwei weitere Testdeckungsgrade, die bei kontrollflussorientierten Tests verwendet werden.
Bedingungsüberdeckung und Pfadüberdeckung. Bei der Bedingungsüberdeckung muss jede Teilbedingung einmal „wahr“ und einmal „falsch“ sein. Bei der Pfadüberdeckung muss jeder mögliche Weg durch das Kontrollflussdiagramm durchlaufen werden.
Was muss bei der Bedingungsüberdeckung getestet werden?
Jede Teilbedingung einer Kontrollflussbedingung muss mindestens einmal den Wert „wahr“ und einmal den Wert „falsch“ annehmen.
Was wird bei der Pfadüberdeckung getestet?
Bei der Pfadüberdeckung muss jeder mögliche Weg durch das Kontrollflussdiagramm mindestens einmal durchlaufen werden, was in komplexen Systemen jedoch oft kaum möglich ist.
Was ist der Hauptunterschied zwischen funktions- und strukturorientierten Testverfahren?
Funktionsorientierte Tests prüfen das Verhalten des Systems aus der Sicht des Benutzers und berücksichtigen keine internen Abläufe, während strukturorientierte Tests sich auf die interne Struktur und den Code konzentrieren.
Wie werden struktur- und funktionsorientierte Testverfahren in der Praxis kombiniert?
Zuerst werden funktionsorientierte Tests durchgeführt, um das Verhalten des Systems zu prüfen, und anschließend werden strukturorientierte Tests durchgeführt, um interne Fehler im Code zu finden, die bei den ersten Tests übersehen wurden.
Was sind strukturorientierte Testverfahren?
Strukturorientierte Tests konzentrieren sich auf die interne Logik und den Ablauf des Testobjekts.
Der Quelltext des Programms muss bekannt sein, da Testfälle auf der Grundlage des Codes und seiner Logik erstellt werden.
Dies wird auch als „white box“ bezeichnet.
Was ist ein Kontrollflussdiagramm?
Ein Kontrollflussdiagramm visualisiert den Ablauf einer Funktion oder Methode.
Es zeigt, wie die einzelnen Anweisungen des Codes miteinander verbunden sind und welche Entscheidungen getroffen werden.
Solche Diagramme werden genutzt, um kontrollflussbasierte Tests zu erstellen und sicherzustellen, dass alle Pfade im Code abgedeckt sind.
Frage: Was wird in einem Kontrollflussdiagramm dargestellt?
Antwort: Ein Kontrollflussdiagramm stellt den Ablauf eines Programms dar, indem es die verschiedenen Zustände und Übergänge (Knoten und Kanten) visualisiert.
Frage: Was beschreibt der Testdeckungsgrad C1?
Antwort: Der Testdeckungsgrad C1 (Kantenüberdeckung) bedeutet, dass jede Kante im Kontrollflussdiagramm mindestens einmal ausgeführt werden muss.
Frage: Was ist die Anwendungsüberdeckung (C0-Test)?
Antwort: Bei der Anwendungsüberdeckung muss jeder Knoten im Kontrollflussdiagramm mindestens einmal ausgeführt werden.
Frage: Was muss bei der Kantenüberdeckung (C1-Test) mindestens einmal ausgeführt werden?
Antwort: Jede Kante im Kontrollflussdiagramm muss mindestens einmal durchlaufen werden.
Was ist der Unterschied zwischen der Anwendungsüberdeckung und der Kantenüberdeckung?
: Bei der Anwendungsüberdeckung wird jeder Knoten mindestens einmal ausgeführt, während bei der Kantenüberdeckung jede Kante mindestens einmal durchlaufen wird. Kantenüberdeckung schließt Anwendungsüberdeckung ein.
Was sind Äquivalenzklassen?
Äquivalenzklassen fassen ähnliche Testfälle zusammen, die zu denselben Ergebnissen führen.
Sie ermöglichen es, die Anzahl der notwendigen Testfälle zu reduzieren, indem nur representative Fälle ausgewählt werden.
Beispiel: Für eine Eingabe, die Zahlen von 0 bis 99 akzeptiert, wären nur vier Testfälle nötig, um alle wesentlichen Eingaben zu testen.
Was ist eine Grenzwertanalyse?
Grenzwertanalysen suchen nach Fehlern, die an den Übergängen zwischen gültigen und ungültigen Eingabebereichen auftreten (z.B. Off-by-one-Fehler).
Beispiel: Für eine Funktion, die Zahlen ab 10 akzeptiert, müssen die Testfälle die Werte 9, 10 und 11 prüfen.
Was sind dynamische Testverfahren?
Dynamische Testverfahren arbeiten mit der echten Anwendung und testen die tatsächliche Einsatzfähigkeit des Systems.
Im Gegensatz zu statischen Tests, die sich auf Dokumente konzentrieren, werden beim dynamischen Testen Testobjekte ausgeführt oder deren Ausführung simuliert.
Es gibt zwei grundlegende Verfahren:
Funktionsorientierte Testverfahren (black box)
Strukturorientierte Testverfahren (white box)
Was sind funktionsorientierte Testverfahren?
Funktionsorientierte Tests betrachten das Testobjekt von außen, ohne sich um die interne Struktur zu kümmern.
Es wird überprüft, ob die Ausgabedaten mit den erwarteten Ergebnissen übereinstimmen, die das System liefern soll.
Beispiel: Ein Test für eine Funktion, die den größeren Wert aus zwei Zahlen zurückgibt.
Wird auch als „black box“ bezeichnet, weil das Innenleben des Testobjekts keine Rolle spielt.
Warum ist es wichtig, Testsystematisch durchzuführen?
Unsystematische Tests führen oft zu Fehlinterpretationen und unvollständigen Ergebnissen.
Ein Beispiel aus der Praxis: Wenn ein Tester Eingabedaten nicht dokumentiert, kann er keine reproduzierbaren Ergebnisse liefern.
Was sind Testfälle und warum sind sie wichtig?
Testfälle beschreiben spezifische Eingaben und die erwarteten Ausgaben.
Sie sind notwendig, um die Funktionsweise und die Fehleranfälligkeit des Systems gezielt zu testen.
Testfälle sollten auch ungültige Eingaben und Grenzwerte abdecken, um Fehler unter verschiedenen Bedingungen zu entdecken.
Warum sind werkzeuggestützte statische Testverfahren allein nicht ausreichend?
Sie erkennen hauptsächlich syntaktische Fehler, können aber keine inhaltlichen (semantischen) Fehler finden. Eine manuelle oder dynamische Prüfung ist nötig.
Was sind werkzeuggestützte statische Testverfahren?
Verfahren, bei denen Software-Tools Quelltexte nach vordefinierten Regeln analysieren, z. B. Programmcode-Analysatoren.
Welche Fehler können werkzeuggestützte Testverfahren finden?
: Typische Programmierfehler wie:
Nicht initialisierte oder ungenutzte Variablen
Falsche Einrückungen im Code
Was ist ein Walkthrough?
Eine unstrukturierte Prüfung, bei der der Autor das Dokument präsentiert und Gutachter Fragen stellen. Fehlerkorrekturen liegen allein beim Autor.
Was sind Vor- und Nachteile eines Schreibtischtests?
✅ Einfach durchführbar, nützlich für kleine Projekte.
❌ Zeitaufwendig, hohe Fehleranfälligkeit durch Konzentrationsverlust.
Welche manuellen statischen Testverfahren gibt es?
Inspektion: Strukturierte Prüfung durch ein Team nach festgelegten Regeln.
Review: Ähnlich wie Inspektion, aber weniger formal, ohne feste Vorgehensweise.
Walkthrough: Der Autor präsentiert das Dokument, Gutachter geben direkt Feedback.
Schreibtischtest: Prüfer geht Quelltext Zeile für Zeile durch.
Wie läuft eine Inspektion ab?
Freigabe durch den Autor.
Eingangsprüfung durch den Moderator.
Einführungsveranstaltung für Gutachter.
Individuelle Prüfung durch Gutachter.
Gemeinsame Sitzung zur Besprechung der Ergebnisse.
Entscheidung: Freigabe oder Überarbeitung.
Worin unterscheiden sich Inspektion und Review?
Eine Inspektion folgt festen Regeln und hat einen strukturierten Ablauf mit offizieller Freigabe. Eine Review ist weniger formal, ohne feste Vorgehensweise und ohne offizielle Freigabe.
Was ist das Hauptziel beim Testen von Software?
Das Finden von Fehlern, nicht der Nachweis der Fehlerfreiheit.
Was ist der Unterschied zwischen Verifikation und Validierung?
Verifikation prüft, ob die Software korrekt umgesetzt wurde.
Validierung stellt sicher, dass die Software den Nutzeranforderungen entspricht.
Welche Fragen sollten vor einem Softwaretest beantwortet werden?
Warum wird der Test durchgeführt?
Was wird getestet?
Wie und womit wird getestet?
Wer führt den Test durch?
Wann beginnt und endet der Test?
Wann gilt der Test als erfolgreich?
Warum reicht es nicht aus, nur die Codierung zu überprüfen?
Qualitätssicherung umfasst nicht nur den Code, sondern auch Benutzerfreundlichkeit, Effizienz und Zuverlässigkeit der Software.
Warum kann die Fehlerfreiheit einer Software nicht nachgewiesen werden?
Aufgrund der hohen Komplexität von Software gibt es unendlich viele mögliche Abläufe, die nicht alle getestet werden können.
Warum sollte der Entwickler nicht allein seine eigene Software prüfen?
Weil er von der Korrektheit seiner Arbeit überzeugt ist und Fehler daher oft nicht erkennt. Externe Prüfer sind notwendig.
Welche verschiedenen Teststufen gibt es in der Software-Qualitätsprüfung?
Komponententest – Test einzelner Software-Komponenten.
Teilsystemtest – Prüfung eines bestimmten Teilsystems.
Integrationstest – Überprüfung des Zusammenspiels aller Komponenten.
Abnahmetest – Test durch den Kunden zur finalen Freigabe.
Warum ist die Qualitätsprüfung von Produkten wichtig?
Die Qualitätsprüfung identifiziert Fehler in Produkten, um deren Qualität zu verbessern. Ein gezieltes Suchen nach Fehlern führt zu besseren Ergebnissen als nur die Überprüfung auf Fehlerfreiheit.
Warum ist ein guter Prüfer nicht gleich ein guter Entwickler?
Entwickler sind konstruktiv und glauben an die Korrektheit ihres Produkts. Prüfer müssen hingegen destruktiv denken und gezielt nach Fehlern suchen.
Was versteht man unter einer „self-fulfilling prophecy“ in der Qualitätssicherung?
Der Glaube, dass ein Produkt Fehler hat, führt dazu, dass diese gefunden werden. Entwickler gehen oft von der Korrektheit ihrer Arbeit aus und übersehen daher Fehler.
Was bedeutet „Qualitätsprüfung ist ein destruktiver Prozess“?
Sie dient nicht dem Aufbau, sondern dem gezielten Suchen und Finden von Fehlern.
Welche Testarten gibt es in der Software-Qualitätssicherung?
Komponententests – Test einzelner Module oder Klassen
Teilsystemtests – Test bestimmter Software-Teilsysteme
Integrationstests – Test des Zusammenspiels aller Komponenten
Abnahmetests – Prüfung durch den Kunden
Warum sind konstruktive Maßnahmen in der Qualitätssicherung wichtig?
Sie helfen, typische Fehler durch geeignete Methoden und Werkzeuge von vornherein zu vermeiden.
Warum sollte eine Qualitätsprüfung durch unabhängige Dritte erfolgen?
Entwickler sind oft überzeugt, dass ihr Produkt fehlerfrei ist.
Eine unabhängige Prüfung ist objektiver und deckt mehr Fehler auf.
Warum muss Qualität kontinuierlich geprüft werden?
Fehler, die früh erkannt werden, sind leichter und kostengünstiger zu beheben. Ohne kontinuierliche Prüfung können sich Fehler durch das gesamte Projekt ziehen.
Was besagt das Teufelsquadrat von Sneed?
Es beschreibt vier Faktoren der Software-Entwicklung: Qualität, Quantität, Dauer und Kosten. Änderungen an einem Faktor beeinflussen automatisch einen anderen.
Was bedeutet ROFOC und MTBF?
ROFOC (Rate of Failure Occurrence): Quote des Fehlervorkommens
MTBF (Mean Time Between Failures): Mittlere Zeit zwischen Fehlern
In welcher Phase der Software-Entwicklung treten die meisten Fehler auf?
ber 80 % der Fehler entstehen in frühen Phasen (Analyse & Entwurf), nicht in der Codierung.
Welche grundlegenden Prinzipien der Qualitätssicherung gibt es?
Qualitätsziele müssen vorher eindeutig und möglichst messbar festgelegt werden.
Qualität muss kontinuierlich geprüft werden.
Qualitätssicherung muss konstruktive Maßnahmen enthalten.
Qualität sollte von unabhängigen Dritten geprüft werden.
Warum sollten Qualitätsziele messbar sein?
Messbare Qualitätsziele ermöglichen eine objektive Prüfung der Qualität, was insbesondere in der Software-Entwicklung schwierig sein kann (z. B. Benutzerfreundlichkeit).
Warum ist eine Qualitätssicherung erforderlich?
Qualitätssicherung überprüft, ob die festgelegten Qualitätsmerkmale eines Produkts oder einer Leistung erreicht wurden. Falls nicht, werden Maßnahmen zur Verbesserung der Qualität ergriffen.
Warum reicht es nicht aus, Software nur mit dem Vorsatz hoher Qualität zu entwickeln?
Ohne strukturierte Qualitätssicherung entstehen oft Fehler, da Qualität nicht automatisch durch gute Absichten erreicht wird.
Was versteht man unter Ereignisverarbeitung?
Die Reaktion eines Programms auf bestimmte Eingaben oder Ereignisse, z. B. Mausklicks oder Tastatureingaben.
Wie viel Prozent des Quelltextes sollten mindestens für Kommentare vorgesehen werden?
Es gibt keine feste Regel, aber Kommentare sollten sparsam und gezielt eingesetzt werden.
Nenne drei Möglichkeiten, die Lesbarkeit von Quelltexten zu verbessern.
Gut strukturierte Einrückungen.
Sinnvolle Variablennamen.
Logische Trennung von Codeblöcken durch Leerzeilen.
Warum ist Code-Formatierung wichtig?
Gut formatierter Code ist leichter zu lesen, zu verstehen und zu warten.
Welche drei grundlegenden Programmstrukturen gibt es?
Sequenz: Anweisungen werden der Reihe nach ausgeführt.
Selektion: Bestimmte Anweisungen werden je nach Bedingung ausgeführt (if-else).
Iteration: Anweisungen werden wiederholt ausgeführt (Schleifen).
Warum sollte man die Zeilenlänge begrenzen?
Damit der Code auf dem Monitor und beim Ausdruck übersichtlich bleibt.
Warum ist eine tief geschachtelte if-else-Konstruktion problematisch?
Sie erschwert das Verständnis des Codes. Eine switch-case-Struktur ist oft besser lesbar.
Wie kann man die Lesbarkeit von Quelltexten zusätzlich verbessern?
Schlüsselwörter farblich hervorheben.
Maximal 80 Zeichen pro Zeile verwenden.
Wenig Schachtelung bei Bedingungen und Schleifen.
Warum sollten Variablennamen nicht zu kurz sein?
Kurze Namen wie „x“ oder „y“ sagen nichts über ihre Bedeutung aus. Aussagekräftige Namen helfen, den Code schneller zu verstehen.
Warum sollten automatisch vergebene Namen in Entwicklungsumgebungen angepasst werden?
Standardnamen wie „textbox1“ sind wenig aussagekräftig und erschweren die Übersicht in größeren Programmen.
Was bedeuten vorangestellte Buchstaben bei Variablen?
Sie können den Datentyp angeben, z. B. „i“ für Integer oder „c“ für char.
Welche Regeln verbessern die Lesbarkeit von Quelltexten?
Jede Anweisung in eine eigene Zeile schreiben.
Einrückungen für bessere Strukturierung nutzen.
Klare Abstände zwischen logischen Einheiten einhalten.
Wie wird eine Methode zur Ereignisverarbeitung in C# automatisch erstellt?
Durch Doppelklick auf ein Element im Formular; Visual Studio generiert dann den Methodenrumpf.
Wie können Programme auf eine Datenbank zugreifen?
Durch vordefinierte Schnittstellen (Datenquellen), die mit einem Assistenten in das Programm eingefügt werden.
Warum sind Kommentare im Quelltext wichtig?
Sie erleichtern das Verständnis des Codes, indem sie Abläufe und Besonderheiten erläutern.
Welche Probleme können durch zu viele Kommentare entstehen?
Wenn der Quelltext geändert wird, müssen auch die Kommentare aktualisiert werden. Vergessene oder falsche Kommentare können Verwirrung stiften.
Was ist ein sinnvoller Kommentarstil?
ommentare sollen gezielt für komplexe oder unerwartete Anweisungen eingesetzt werden, aber nicht jede einzelne Zeile erklären.
Warum sollten nicht alle Anweisungen im Code kommentiert werden?
Weil sich viele Anweisungen selbst erklären. Überflüssige Kommentare blähen den Code auf und erschweren die Wartung.
Warum ist eine zu ausführliche Kommentierung problematisch?
Wenn der Code geändert wird, müssen auch die Kommentare aktualisiert werden. Falsche oder veraltete Kommentare können zu Verwirrung führen.
Wann sollten Kommentare eingesetzt werden?
Kommentare sollten gezielt für komplexe oder ungewöhnliche Anweisungen sowie für größere Codeblöcke und Methodenbeschreibungen genutzt werden.
Was sollte ein Kommentar zu einer Methode enthalten?
Eine Beschreibung der Methode, ihre Wirkung, erwartete Argumente und die Rückgabe.
Warum sind sprechende Bezeichner vorteilhaft?
Sie machen den Code auch ohne Kommentare verständlich und erleichtern das Lesen und Verstehen.
Welche Arten von Schleifen gibt es?
Schleifen mit Bedingungsprüfung vor der Ausführung
Schleifen mit Bedingungsprüfung nach der Ausführung
Schleifen mit fester Wiederholungsanzahl
Was versteht man unter Ereignisverarbeitung in der Programmierung?
Programme reagieren auf externe Ereignisse wie Mausklicks oder Tasteneingaben, anstatt Befehle in einer festen Reihenfolge abzuarbeiten.
Was ist der Zweck der automatischen Codeerzeugung?
Die automatische Generierung von Klassendefinitionen und teilweise Methoden aus Diagrammen, um Entwicklungszeit zu sparen.
Was ist das Hauptproblem der automatischen Codeerzeugung?
Sie liefert meist nur ein Gerüst; die eigentliche Funktionalität muss manuell ergänzt werden.
Welche Bestandteile einer Klasse können automatisch erzeugt werden?
Klassendefinitionen, Attribute und Methodengerüste.
Wie erfolgt das Erstellen einer grafischen Oberfläche in Visual Studio?
Durch das Platzieren von Bedienelementen (z. B. Schaltflächen) auf einem Formular mithilfe der Maus.
Was ist das Ziel der Codierung in der Softwareentwicklung?
Die Umsetzung der Entwurfsergebnisse in ein ablauffähiges Programm.
Welche Rolle spielt die Codierung in der modernen Softwareentwicklung?
Sie hat an Bedeutung verloren, da viele Strukturen bereits durch Analyse und Entwurf festgelegt werden und teilweise automatisiert generiert werden können.
Was sind Programmiersprachen, und warum werden sie benötigt?
Programmiersprachen dienen dazu, Anweisungen für die Lösung eines Problems in eine für den Computer verständliche Form zu bringen.
Nenne vier Beispiele für Programmiersprachen.
C++, Java, C# und Visual Basic.
Warum können Anweisungen einer Programmiersprache nicht direkt ausgeführt werden?
Sie müssen zuerst in ein für den Computer verständliches Format übersetzt werden, oft durch einen Compiler.
Was bedeutet "to compile"?
Es bedeutet „zusammentragen“ und bezeichnet die Übersetzung von Quelltext in ausführbaren Code.
Die Folge (Sequenz)
Die Auswahl (Verzweigungen)
Die Wiederholung (Schleifen)
Was versteht man unter einer Auswahlstruktur?
Eine Auswahlstruktur erlaubt die bedingte Ausführung von Anweisungen, z. B. durch einfache, alternative oder Mehrfachverzweigungen.
Was ist ein Primärschlüssel?
Ein Attribut oder eine Attributkombination, die einen Datensatz eindeutig identifiziert (z. B. Kundennummer).
Wozu dient ein Fremdschlüssel?
Ein Fremdschlüssel stellt eine Verbindung zwischen zwei Tabellen her, indem er auf den Primärschlüssel einer anderen Tabelle verweist.
Wie können mehrere Tabellen im relationalen Modell verbunden werden?
Durch Fremdschlüssel, die auf den Primärschlüssel einer anderen Tabelle verweisen.
Welche Tabellen gibt es in der Leihbücherei-Datenbank?
Kunde (Kundennummer, Name, Adresse, Telefon)
Vertrag (Vertragsnummer, Ausleihdatum, Rückgabedatum, Kundennummer als Fremdschlüssel)
Medium (Mediennummer, Titel, Typ, Standort)
Reservierung (Reservierungsnummer, Gültigkeit, Medien- und Kundennummer als Fremdschlüssel)
Warum kann der Primärschlüssel einer Tabelle in einer anderen Tabelle nicht mehr als Primärschlüssel dienen?
Weil er dort mehrfach vorkommen kann (z. B. wenn ein Kunde mehrere Verträge hat). In dieser Tabelle wird er stattdessen als Fremdschlüssel genutzt.
Ist ein Datenbankmodelldiagramm dasselbe wie ein UML-Diagramm?
Nein, ein Datenbankmodelldiagramm ist eine eigene Darstellung zur Strukturierung von Tabellen und Beziehungen.
arum werden Datenbank-Management-Systeme (DBMS) verwendet?
DBMS ermöglichen eine strukturierte Speicherung von Daten und erlauben schnellen, direkten Zugriff auf Informationen.
: Was ist das relationale Datenmodell?
Ein Modell, das Daten in Tabellenform speichert. Diese Tabellen nennt man Relationen.
Welche Bestandteile hat eine Relation im relationalen Datenmodell?
Spalten (Attribute): Beschreiben die Eigenschaften der Daten (z. B. Name, Vorname, Straße).
Zeilen (Tupel): Enthalten die Werte der Attribute und repräsentieren einen vollständigen Datensatz.
Welche zwei grundsätzlichen Möglichkeiten gibt es zur Speicherung von Daten?
Unstrukturierte Speicherung in einer Datei
Strukturierte Speicherung in einer Datenbank
Welche Vorteile und Nachteile hat die Speicherung von Daten in einer Datei?
✅ Vorteil: Sehr flexibel, da beliebige Informationen in nahezu beliebiger Größe gespeichert werden können.
❌ Nachteil: Umständlicher Zugriff auf einzelne Informationen, da die gesamte Datei durchsucht werden muss.
Was sind Entwurfsmuster in der Software-Entwicklung?
Entwurfsmuster sind wiederverwendbare Lösungen für häufig auftretende Probleme in der Software-Entwicklung.
Wie wird im Klassendiagramm eine Beziehung zwischen einem Vertrag und mehreren Medien dargestellt?
Durch eine 1..*-Assoziation, die zeigt, dass ein Vertrag mit mehreren Medien verbunden sein kann.
Welche vier Sichtbarkeiten kennt die UML?
public (+) → für alle sichtbar
+
private (-) → nur für die Klasse sichtbar
-
protected (#) → für die Klasse und Unterklassen sichtbar
#
package (~) → innerhalb des gleichen Pakets sichtbar
~
Wozu dienen Multiplizitäten in einem Klassendiagramm?
Multiplizitäten geben an, wie viele Instanzen einer Klasse mit einer anderen Klasse in Beziehung stehen können (z. B. 1..5, 0..*).
1..5
0..*
Was bedeutet der Begriff "Pattern" in der Software-Entwicklung?
"Pattern" ist ein anderes Wort für Entwurfsmuster und beschreibt bewährte Lösungsansätze für häufige Software-Probleme.
Wann sollte eine Methode private sein?
private
Wenn sie nur innerhalb der eigenen Klasse genutzt wird.
Wie wird eine Generalisierung im Klassendiagramm dargestellt?
Eine Generalisierung wird durch einen Pfeil mit einer geschlossenen Spitze dargestellt, der zur übergeordneten Klasse weist.
Was ist eine Aggregation in einem Klassendiagramm?
Eine Aggregation beschreibt, dass eine Klasse in einer anderen enthalten ist, aber auch eigenständig existieren kann. Sie wird durch eine nicht ausgefüllte Raute dargestellt.
Was ist eine Komposition in einem Klassendiagramm?
Eine Komposition ist eine strengere Form der Aggregation, bei der eine Klasse nur existiert, wenn die übergeordnete Klasse existiert. Sie wird durch eine ausgefüllte Raute dargestellt.
Was unterscheidet eine Aggregation von einer Komposition?
Bei einer Aggregation können die beteiligten Klassen auch unabhängig existieren. Bei einer Komposition hängt die Existenz der enthaltenen Klasse von der übergeordneten Klasse ab.
Wie wird eine Methode im Klassendiagramm dargestellt, die ein Argument Nr vom Typ Integer erhält und öffentlich sichtbar ist?
Nr
Integer
Die Methode wird folgendermaßen dargestellt:+ suchen(Nr: Integer): RückgabetypDas + steht für öffentliche Sichtbarkeit.
+ suchen(Nr: Integer): Rückgabetyp
Wie kann ein Standardwert für ein Argument festgelegt werden?
Durch = Wert nach der Typangabe, z. B. sucheKunde(kNr: Integer = 0).
= Wert
sucheKunde(kNr: Integer = 0)
Welche Sichtbarkeit sollten Attribute in der Regel haben?
private (-), um direkten Zugriff von außen zu verhindern.
private (-)
Wie wird ein Rückgabewert im UML-Klassendiagramm dargestellt?
Durch : Typ nach den runden Klammern, z. B. sucheKunde(kNr: Integer): Boolean.
: Typ
sucheKunde(kNr: Integer): Boolean
Welche Sichtbarkeiten gibt es in UML?
private (-), public (+), protected (#), package (~).
public (+)
protected (#)
package (~)
Was wird im Kapitel „Verfeinerung des Klassendiagramms“ gemacht?
Es werden Methoden präzisiert, Sichtbarkeiten von Attributen und Methoden festgelegt sowie Klassenbeziehungen genauer untersucht.
Wo werden Methoden im UML-Klassendiagramm dargestellt?
Methoden werden im unteren Teil des Rechtecks einer Klasse aufgeführt und durch runde Klammern () von Attributen unterschieden.
Warum ist es vorteilhaft, Methoden mit Argumenten zu versehen?
Dadurch können Methoden flexibler und einfacher genutzt werden, indem sie mit Daten „gefüttert“ werden.
Wie werden Argumente einer Methode im UML-Klassendiagramm dargestellt?
In runden Klammern hinter dem Methodennamen in der Form name: typ.
name: typ
Was ist der Unterschied zwischen der Methodendeklaration und dem Methodenaufruf?
Die Deklaration legt fest, welche Argumente verarbeitet werden können, der Aufruf übergibt konkrete Werte.
Wie werden Komponenten in der UML dargestellt?
Mit einem Rechteck, das oben rechts das Symbol «component» trägt.
Was zeigt ein Verteilungsdiagramm (Deployment-Diagramm)?
Die Verteilung der Software-Komponenten auf verschiedene Rechner.
Welche Vorteile hat das Modell der entfernten Präsentation?
Zentrale Datenhaltung sichert eine einheitliche Datenbasis.
Änderungen an der Applikationsschicht müssen nur am Server durchgeführt werden.
Welche Verteilungsmodelle gibt es für Software-Schichten?
Entfernte Datenhaltung
Entfernte Präsentation
Dreistufiges Konzept
Mehrstufiges kooperatives Client-Server-Computing
Was ist der Vorteil eines Client-Server-Systems?
Daten sind zentral verfügbar, und Änderungen an der Applikation müssen nur am Server vorgenommen werden.
Was ist der Unterschied zwischen einem dicken und einem dünnen Client?
Dicker Client: Führt Präsentations- und Applikationsschicht lokal aus.
Dünner Client: Führt nur die Präsentationsschicht aus und nutzt Server für Berechnungen.
Welche drei Schichten umfasst moderne Software?
Präsentationsschicht, Applikationsschicht, Datenhaltungsschicht
Warum ist eine zentrale Datenhaltung notwendig?
Damit alle Nutzer mit denselben aktuellen Daten arbeiten und Dateninkonsistenzen vermieden werden.
Was ist ein Client-Server-System?
Wie werden Pakete in einem Diagramm dargestellt?
Pakete werden durch ein Rechteck mit einem kleineren Rechteck in der oberen linken Ecke dargestellt.
Wie stellt man Abhängigkeiten zwischen Paketen dar?
Durch gestrichelte Linien mit Pfeilspitzen, die auf das abhängige Paket zeigen.
Was bedeutet eine Abhängigkeit zwischen Paketen?
Eine Abhängigkeit bedeutet, dass Änderungen an einem Paket möglicherweise Änderungen an einem anderen Paket erfordern.
Warum werden große Software-Systeme in Teilsysteme zerlegt?
Große Software-Systeme werden in Teilsysteme zerlegt, um die Übersichtlichkeit zu verbessern, Verantwortlichkeiten klar zu definieren und parallele Entwicklung durch verschiedene Teams zu ermöglichen.
Was versteht man unter Paketen in der Software-Entwicklung?
Pakete sind Teilsysteme eines Software-Systems, die eng zusammenarbeiten und eine logische oder funktionale Einheit bilden.
Welche Rolle spielen Klassendiagramme bei der Paketbildung?
Klassendiagramme helfen dabei, funktional zusammenhängende Klassen zu identifizieren, die in gemeinsamen Paketen gebündelt werden können.
Wie kann man Pakete anhand funktionaler Gesichtspunkte bilden?
Man fasst thematisch verwandte Klassen in Pakete zusammen, z. B. die Klassen „Vertrag“ und „Reservierung“ in einem Paket „Verträge“.
Was ist eine paketübergreifende Assoziation?
Eine paketübergreifende Assoziation liegt vor, wenn eine Klasse aus einem Paket eine Beziehung zu einer Klasse in einem anderen Paket hat.
Welche verschiedenen Blickwinkel gibt es bei der Paketbildung?
Entwicklerperspektive: Pakete wie „Verträge“, „Kunden“ und „Medien“.
Anwenderperspektive: Pakete wie „Verwaltung“, „Ausleihe“ und „Rückgabe“.
Prioritätsbasierte Sichtweise: Pakete für Kernfunktionen, Zusatzfunktionen und Komfortfunktionen.
Wie kann man Pakete in einer hierarchischen Struktur organisieren?
Untergeordnete Pakete können in übergeordnete Pakete integriert oder durch Verbindungslinien dargestellt werden.
Was ist die Hauptaufgabe des Entwurfsmodells?
Das Entwurfsmodell beantwortet die Frage „Wie?“ und liefert eine detaillierte Beschreibung der technischen Umsetzung der Software.
Was wird im Kapitel „Verfeinerung des Klassendiagramms“ behandelt?
Die Methoden der Klassen werden präzisiert, die Sichtbarkeiten der Attribute und Methoden festgelegt und die Klassenbeziehungen genauer untersucht.
Wie werden Methoden in einem UML-Klassendiagramm dargestellt?
Methoden stehen im unteren Bereich einer Klasse und werden durch runde Klammern () hinter dem Methodennamen von Attributen unterschieden.
Wie wird ein Argument in einer Methode angegeben?
Ein Argument wird innerhalb der runden Klammern als name: typ angegeben, z. B. sucheKunde(kNr: Integer).
sucheKunde(kNr: Integer)
Was ist der Unterschied zwischen einem Parameter und einem Argument?
Parameter werden in der Methodendeklaration definiert, während Argumente konkrete Werte sind, die beim Aufruf übergeben werden.
Wie wird ein Rückgabewert in UML notiert?
Der Rückgabetyp steht hinter den runden Klammern und wird durch einen Doppelpunkt getrennt, z. B. sucheKunde(kNr: Integer): Boolean.
Welche Sichtbarkeiten gibt es in UML und welche Symbole werden verwendet?
private (-): Nur innerhalb der Klasse sichtbar
public (+): Für alle sichtbar
protected (#): Für die Klasse und Unterklassen sichtbar
package (~): Für Klassen innerhalb desselben Pakets sichtbar
Warum sollten Attribute niemals öffentlich sichtbar sein?
Damit Datenkapselung gewährleistet ist. Attribute sollten nur über Methoden geändert oder gelesen werden.
Was ist eine Methode mit einem Vorgabewert?
: Eine Methode, bei der ein Standardwert für ein Argument definiert ist, z. B. sucheKunde(kNr: Integer = 0).
Wie kann eine Methode den Status eines Mediums als ausgeliehen markieren?
Durch eine Methode setzeAusgeliehen(status: Boolean), die den Wert des Attributs ausgeliehen setzt.
setzeAusgeliehen(status: Boolean)
ausgeliehen
Was ist der Hauptzweck der Methode erzeugeMNr()?
erzeugeMNr()
Sie ermittelt die letzte vergebene Mediennummer und erhöht sie um 1 für das nächste Medium.
Welche Sichtbarkeiten setzen viele UML-Werkzeuge automatisch für Attribute und Methoden?
Attribute werden automatisch auf private, Methoden auf public gesetzt.
: Was beschreibt eine Assoziation im Klassendiagramm?
Eine Assoziation ist eine Beziehung zwischen Klassen oder Objekten.
Wie wird die Multiplizität bei Assoziationen dargestellt?
Die Multiplizität wird an den Enden der Assoziationslinie notiert und gibt an, wie viele Objekte einer Klasse mit Objekten einer anderen Klasse verbunden sein können.
Was bedeutet die Multiplizität „1..*“ bei einer Assoziation?
Ein Objekt der ersten Klasse kann mit mindestens einem und beliebig vielen Objekten der zweiten Klasse in Beziehung stehen.
Welche drei Sonderformen von Assoziationen gibt es?
Generalisierung (Vererbung)
Aggregation (schwache Ganzes-Teil-Beziehung)
Komposition (starke Ganzes-Teil-Beziehung)
Durch einen Pfeil mit einem nicht ausgefüllten Dreieck, das zur übergeordneten Klasse zeigt.
: Was ist der Unterschied zwischen Aggregation und Komposition?
Aggregation: Die enthaltene Klasse kann auch unabhängig existieren.
Komposition: Die enthaltene Klasse kann nur existieren, wenn die übergeordnete Klasse existiert.
Wie werden Aggregation und Komposition im Klassendiagramm dargestellt?
Aggregation: Nicht ausgefüllte Raute
Komposition: Ausgefüllte Raute
Was sind Entwurfsmuster?
Wiederverwendbare Lösungsansätze für häufig auftretende Probleme in der Softwareentwicklung.
Warum sind Entwurfsmuster nützlich?
Sie ermöglichen eine effiziente und bewährte Lösung für wiederkehrende Probleme, ohne das Rad neu erfinden zu müssen.
Worin unterscheiden sich das Analysemodell und das Entwurfsmodell?
Analysemodell: Beantwortet die Frage „Was?“ und stellt das System aus Sicht des Anwenders dar.
Entwurfsmodell: Beantwortet die Frage „Wie?“ und beschreibt das System aus Sicht des Entwicklers unter technischen Gesichtspunkten.
Welche technischen Gesichtspunkte werden im Entwurfsmodell betrachtet?
Umsetzung der Klassen mit Attributen und Methoden
Notwendige zusätzliche Methoden
Zerlegung des Systems in Teilsysteme
Verteilung des Systems auf mehrere Rechner
Speicherung der Anwendungsdaten
Welche zusätzlichen Anforderungen müssen im Entwurfsmodell berücksichtigt werden?
Schutz der Daten vor unbefugtem Zugriff (z. B. Benutzeranmeldung)
Schutz gegen Datenverlust (z. B. automatische Backups)
Anforderungen an die Ausführungsgeschwindigkeit
Anforderungen an die Ausfallsicherheit (z. B. redundanter Aufbau)
Was ist das Ergebnis des Entwurfsmodells?
Ein detaillierter Bauplan für die Software – die Software-Architektur.
Welche Rolle spielt das Pflichtenheft im Entwurfsmodell?
Das Pflichtenheft liefert die Grundlage für das Entwurfsmodell. Beispielsweise werden Klassendiagramme übernommen und um technische Details erweitert.
Warum können Prototypen der grafischen Oberfläche bereits bei der Analyse sehr wichtig sein?
Prototypen der grafischen Oberfläche werden in der Regel von den Anwendern sehr viel leichter verstanden als UML-Diagramme und sprachliche Beschreibungen.
In einer Anwendung befindet sich direkt unterhalb der Titelleiste die Statusleiste. Unterhalb der Statusleiste wird dann das Menüband angezeigt. Wogegen wird hier verstoßen?
Die Reihenfolge der Elemente ist sehr ungewöhnlich. Damit wird gegen die Erwartungshaltung des Anwenders verstoßen. Er geht davon aus, dass die Statusleiste unten im Fenster angezeigt wird.
Sie möchten einem Anwender drei verschiedene Einstellungen zur Auswahl anbieten. Von den drei Möglichkeiten kann aber nur eine gleichzeitig aktiviert werden. Welches Standardbedienelement eignet sich hier?
Hier eignen sich Optionsfelder. Sie geben mehrere Möglichkeiten vor, erlauben aber nur die Auswahl einer Möglichkeit gleichzeitig
Ein Anwender soll einen numerischen Wert in einer beliebigen Größe eingeben können. Eignet sich ein Schieberegler für diese Eingabe? Begründen Sie bitte Ihre Antwort, und nennen Sie Alternativen.
Nein, ein Schieberegler eignet sich nicht. Er hat einen minimalen sowie einen maximalen Wert und erlaubt auch nur die Auswahl auf einer festen Skala. Optimal für eine freie Eingabe ist ein Eingabefeld geeignet.
Was ist der Unterschied zwischen einer Menüleiste und einer Symbolleiste?
Eine Menüleiste enthält Befehle in einer Liste, die erst nach einem Klick sichtbar wird. Eine Symbolleiste zeigt ständig Symbole für häufig genutzte Funktionen an.
Was sind Dialogfenster und wofür werden sie genutzt?
: Dialogfenster dienen zur Eingabe von Informationen oder zur Auswahl von Einstellungen. Beispiele sind Speichern- und Druckdialoge.
Nenne fünf wichtige Bedienelemente einer grafischen Oberfläche.Antwort:
Schaltfläche – Startet eine Aktion per Klick.
Eingabefeld – Ermöglicht die Eingabe von Daten.
Listenfeld – Zeigt eine Liste mit auswählbaren Werten.
Optionsfelder – Erlauben eine einzige Auswahl aus mehreren Optionen.
Kontrollkästchen – Erlauben das Aktivieren mehrerer Optionen.
Was ist ein GUI-Generator?
Ein GUI-Generator ist ein Werkzeug zur Erstellung von grafischen Benutzeroberflächen. Er erlaubt das Einfügen und Anordnen von Elementen per Maus und kann Prototypen direkt ausführbar machen.
Welche Vorteile bieten GUI-Generatoren?
Einfaches Erstellen von Prototypen ohne Programmieraufwand
Intuitive Gestaltung der Benutzeroberfläche
Wiederverwendbarkeit des Designs für die spätere Programmierung
Was sollte ein Prototyp einer Benutzeroberfläche enthalten?
Ein Prototyp sollte die wichtigsten Bedienelemente und Eingabefelder enthalten, aber keine echte Funktionalität implementieren.
Was sollte man bei der Gestaltung der Benutzeroberfläche beachten?
Die Oberfläche sollte sich an die Gestaltungsmerkmale des Betriebssystems anpassen, um die Erwartungen der Nutzer zu erfüllen und eine intuitive Bedienung zu ermöglichen.
: Was ist Software-Ergonomie?
Software-Ergonomie befasst sich mit der Anpassung von Software an den Menschen, um die Nutzung möglichst einfach und effizient zu gestalten.
Welche Hauptbestandteile hat ein typisches Anwendungsfenster?
Titelleiste (enthält Name der Anwendung und Steuerungssymbole)
Menüband (Befehle und Funktionen nach Gruppen geordnet)
Statusleiste (zeigt Zusatzinformationen, z. B. Fehlermeldungen)
Worauf basiert das Entwurfsmodell?
Es basiert auf dem Analysemodell bzw. dem Pflichtenheft, das durch technische Details erweitert wird (z. B. Klassendiagramme).
Wie kann die Software-Architektur eines Systems dargestellt werden?
Durch Klassendiagramme, die um technische Details ergänzt werden.
Warum sind grafische Prototypen wichtig?
Grafische Prototypen helfen Anwendern, sich eine konkrete Vorstellung von einer Anwendung zu machen, da UML-Diagramme und abstrakte Beschreibungen oft schwer verständlich sind.
Welche zusätzlichen Aspekte müssen im Entwurfsmodell berücksichtigt werden?
Schutz der Daten vor unbefugtem Zugriff
Maßnahmen gegen Datenverlust (z. B. automatische Backups)
Einhaltung von Antwortzeiten für Performance
Ausfallsicherheit durch Redundanz
Ein detaillierter Bauplan für die Anwendung, also die Software-Architektur.
Wodurch zeichnet sich das Analysemodell aus?
Das Analysemodell beschreibt das System aus Sicht des Anwenders und liefert die Antwort auf die Frage „Was?“.
Wodurch zeichnet sich das Entwurfsmodell aus?
Das Entwurfsmodell beschreibt das System aus Sicht des Entwicklers und liefert die Antwort auf die Frage „Wie?“.
Welche technischen Gesichtspunkte werden im Entwurfsmodell berücksichtigt?
Zusätzliche Methoden für die Umsetzung
Verteilung auf mehrere Rechner
Was bildet das Entwurfsmodell vor allem ab?
Das Entwurfsmodell bildet ein System aus technischer Sicht ab
Als Ergebnis liefert das Entwurfsmodell einen detaillierten Bauplan der Software – die Software-Architektur.
Was sind die beiden zentralen Fragen der Software-Modellierung?
Die Fragen sind:
„Was?“ – Beantwortet durch das Analysemodell (Sicht des Anwenders).
„Wie?“ – Beantwortet durch das Entwurfsmodell (Sicht des Entwicklers).
Hier eignen sich Optionsfelder. Sie geben mehrere Möglichkeiten vor, erlauben aber nur die Auswahl einer Möglichkeit gleichzeitig.
Was ist ein GUI-Generator und welche Vorteile bietet er?
Ein GUI-Generator ist ein Werkzeug zum Erstellen grafischer Oberflächen mit der Maus. Vorteile:
Erleichtert die Erstellung von Prototypen.
Prototypen können für die spätere Kodierung wiederverwendet werden.
Welche Elemente enthält ein typisches Windows-Anwendungsfenster?
Titelleiste (enthält Systemmenü, Dokument- und Anwendungsname, Steuerungssymbole)
Menüband (Registerkarten mit Befehlen)
Statusleiste (zeigt zusätzliche Informationen oder Fehlermeldungen)
Was ist der Unterschied zwischen einem Menüband und einer Symbolleiste?
Menüband: Enthält Registerkarten mit Befehlen, die erst nach Auswahl angezeigt werden.
Symbolleiste: Zeigt Symbole für häufig verwendete Funktionen dauerhaft an.
Welche Arten von Fenstern gibt es in einer grafischen Benutzeroberfläche?
Anwendungsfenster: Zeigen die Hauptinhalte der Anwendung.
Dialogfenster: Ermöglichen Nutzereingaben oder Einstellungen (z. B. Speichern-Dialog).
Welche Bedienelemente gibt es in Dialogfenstern?
Schaltflächen: Starten Aktionen.
Eingabefelder: Ermöglichen die Eingabe von Daten.
Kombinationsfelder: Lassen Nutzer aus einer Liste wählen.
Listenfelder: Zeigen mehrere auswählbare Einträge.
Drehfelder: Verändern Werte schrittweise.
Optionsfelder: Erlauben die Auswahl von genau einer Option.
Kontrollkästchen: Erlauben die Auswahl mehrerer Optionen.
Schieberegler: Stellen Werte auf einer Skala ein.
Wann verwendet man Aktivitätsdiagramme?
✔️ Zur Verfeinerung von Prozessen mit mehreren Schritten
✔️ Wenn die Reihenfolge von Aktionen wichtig ist
✔️ Um Bedingungen und Entscheidungen in Prozessen darzustellen
✔️ Besonders nützlich für komplexe Abläufe
Warum sollten Prototypen für die grafische Oberfläche erstellt werden?
Weil sie es Laien erleichtern, sich die Anwendung vorzustellen, und die wichtigsten Anwendungsfälle visuell darstellen.
🔹 Was ist ein Aktivitätsdiagramm?
➡️ Ein UML-Diagramm zur Darstellung von Aktivitäten in einem Prozess.
➡️ Zeigt die Reihenfolge von Aktionen durch Pfeile.
➡️ Aktionen werden durch Rechtecke mit abgerundeten Ecken dargestellt.
Welche Symbole gibt es in einem Aktivitätsdiagramm?
In einem UML-Diagramm werden verschiedene Rechtecke dargestellt. Oben in jedem Rechteck steht ein unterstrichener Name. Handelt es sich um ein Objekt- oder um ein Klassendiagramm?
Es handelt sich um ein Objektdiagramm. Bei einem Klassendiagramm würde der Name fett und nicht unterstrichen dargestellt.
Welche Techniken für das Ermitteln von Klassenkandidaten kennen Sie?
Es gibt drei wesentliche Techniken: • Übernahme aus den Produktdaten im Lastenheft,
• Dokumentanalyse und
• Analyse der Produktbeschreibung.
Was ist eine Assoziation zwischen Klassen?
Eine Assoziation ist eine Beziehung zwischen Klassen
Müssen Sie in jedem Fall ein Objektdiagramm erstellen?
Nein, ein Objektdiagramm muss nicht in jedem Fall erstellt werden.
Was wird im ersten groben Klassendiagramm dargestellt: Die Attribute einer Klasse oder die Methoden beziehungsweise Operationen einer Klasse?
Im ersten groben Klassendiagramm werden nur die Attribute dargestellt.
Was versteht man unter einem konzeptuellen (Domänen-)Datenmodell?
Ein konzeptuelles Datenmodell beschreibt die Daten, die ein System verarbeiten soll, und deren Beziehungen zueinander – ohne sich um die konkrete Speicherung (z. B. in einem Datenbanksystem) zu kümmern.
Welche vier Schritte werden bei der Erstellung des ersten groben statischen Modells typischerweise durchlaufen?
Ermittlung von Objekt-/Klassenkandidaten
Bestimmung der Beziehungen (Assoziationen) zwischen den Klassen
Festlegung der Attribute der Klassen
Darstellung in UML-Diagrammen (z. B. Klassendiagramm)
Welche Arten von Elementen können als Kandidaten für Objekte oder Klassen in einem System in Betracht gezogen werden?
Konkrete Gegenstände (z. B. ein Buch)
Abstrakte Begriffe (z. B. Adresse)
Personen und Rollen (z. B. Kunde, Mitarbeiter)
Schriftliche Dokumente (z. B. Verträge)
Ereignisse (z. B. ein Unfall)
Transaktionen (z. B. Bezahlung)
Nenne die vier Klassen, die im Beispiel der Leihbücherei als notwendig ermittelt
Kunde
Medium
Vertrag
Reservierung
Wie unterstützt die Dokumentanalyse bei der Modellierung eines Systems?
Die Dokumentanalyse hilft, relevante Klassenkandidaten und deren Attribute zu identifizieren, indem man bestehende Dokumente (z. B. alte Leihverträge) genau analysiert, um festzuhalten, welche Daten verarbeitet werden müssen.
Welche Informationen können aus der Analyse der Produktbeschreibung gewonnen werden?
Durch Markierung der Substantive in der Produktbeschreibung erhält man eine erste Liste von Klassenkandidaten und Hinweisen auf mögliche Attribute, die anschließend durch Zusammenstreichen und Sortieren verfeinert wird.
Warum werden im konzeptuellen Datenmodell vorerst keine Methoden (das Verhalten der Objekte) erfasst?
Im ersten groben statischen Modell konzentriert man sich ausschließlich auf die Erfassung der Daten (Attribute) und deren Beziehungen. Die Methoden werden zu einem späteren Zeitpunkt ergänzt.
Welche Attribute wurden für die Klasse Medium im Beispiel definiert?
Nummer
Titel
Typ (zur Unterscheidung des Medientyps)
Standort (Position in der Bücherei)
ausgeliehen (Status, ob gerade verliehen)
Präsenzbestand (ob es überhaupt ausgeliehen werden kann)
Wie werden Klassen und Attribute in einem UML-Klassendiagramm benannt?
Klassen: Werden als Substantive im Singular benannt; erster Buchstabe wird groß geschrieben.
Attribute: Werden meist als Substantive oder Adjektive benannt; erster Buchstabe klein, und bei zusammengesetzten Namen wird die Großschreibung zur Trennung genutzt (CamelCase).
Was stellt ein Objektdiagramm im Vergleich zu einem Klassendiagramm dar?
Ein Objektdiagramm zeigt konkrete Instanzen (Objekte) und deren aktuelle Attributwerte – es ist eine Momentaufnahme der realen Objekte, während das Klassendiagramm die abstrakte Struktur (Klassen, Attribute, Beziehungen) des Systems darstellt.
Welche Fragen können helfen, Assoziationen (Beziehungen) zwischen Klassen zu identifizieren?
Ist eine Klasse Bestandteil einer anderen Klasse?
Benutzt eine Klasse eine andere Klasse?
Verweist eine Klasse auf eine andere Klasse?
Besitzt eine Klasse eine andere?
Kommuniziert eine Klasse mit einer anderen?
Wie kann der Medientyp im System modelliert werden, ohne für jeden Medientyp eine eigene Klasse zu erstellen?
Der Medientyp wird als Attribut (z. B. „Typ“) in der Klasse Medium erfasst, sodass alle Medientypen in einer einzigen Klasse zusammengefasst werden.
Was ist das konzeptionelle Datenmodell?
Das konzeptionelle Datenmodell beschreibt die Daten, die ein System verarbeiten soll, und ihre Beziehung untereinander.
Was ist der Unterschied zwischen einem Klassendiagramm und einem Objektdiagramm?
Klassendiagramm: Zeigt abstrakte Klassen mit Attributen und Beziehungen.
Objektdiagramm: Zeigt konkrete Objekte mit spezifischen Attributwerten.
Welche Methoden helfen bei der Ermittlung von Klassenkandidaten?
Analyse vorhandener Formulare und Dokumente (z. B. Leihverträge).
Analyse der Produktbeschreibung durch Markierung relevanter Substantive.
Welche Beziehungen bestehen zwischen den Klassen im Modell „Buch 2030“?
Ein Kunde hat einen Leihvertrag.
Ein Leihvertrag verweist auf mindestens ein Medium.
Ein Kunde kann eine Reservierung vornehmen.
Eine Reservierung verweist auf mindestens ein Medium.
Welche Attribute besitzt die Klasse „Medium“?
Typ
Standort
Ist ausgeliehen
Präsenzbestand
Welche Attribute besitzt die Klasse „Kunde“?
Name
Vorname
Anschrift
Telefon
Welche Konventionen sollten bei der Benennung von Klassen und Attributen beachtet werden?
Klassen: Substantiv im Singular, erster Buchstabe groß.
Attribute: Substantiv oder Adjektiv, erster Buchstabe klein, keine Leerzeichen (CamelCase).
Was ist das Ziel des ersten groben statischen Modells?
Das Ziel ist, die Produktdaten des Software-Projekts „Buch 2030“ zu abstrahieren und über Objekt- bzw. Klassendiagramme als konzeptionelles Datenmodell darzustellen.
Welche Schritte sind zur Erstellung des ersten groben statischen Modells notwendig?
Bestimmung der Kandidaten für Objekte bzw. Klassen.
Ermittlung der Beziehungen zwischen den Objekten bzw. Klassen.
Ermittlung der Attribute für die Objekte bzw. Klassen.
Dokumentation in UML-Diagrammen.
Was beschreibt das konzeptionelle Datenmodell?
Es beschreibt die Daten, die das System verarbeiten soll, und ihre Beziehungen. Die Speicherung der Daten wird dabei nicht berücksichtigt.
Welche Kategorien von Elementen kommen als Objekt- und Klassenkandidaten in Frage?
Konkrete Gegenstände (z. B. Buch)
Personen und Rollen (z. B. Kunde)
Schriftliche Dokumente (z. B. Vertrag)
Ereignisse (z. B. Unfall)
Welche vier Klassen sind für das Software-Projekt „Buch 2030“ notwendig?
Kunde, Medium, Vertrag, Reservierung.
Welche Informationen enthält die textliche Beschreibung eines Anwendungsfalls?
Akteur, Zweck, Eingangsbedingungen, Beschreibung, Ausnahmen, Auswirkungen und andere beteiligte Anwendungsfälle.
Warum ist eine Kategorisierung der Anwendungsfälle wichtig?
Sie hilft, Prioritäten festzulegen und zu entscheiden, wann ein Anwendungsfall technisch umgesetzt werden soll.
Welche Anwendungsfälle haben in einem Bibliothekssystem höchste PWelche Anwendungsfälle haben in einem Bibliothekssystem höchste Priorität?riorität?
Kundendaten pflegen
Mediendaten pflegen
Medien ausleihen
Medien zurückgeben
Was verstehen Sie unter den Systemgrenzen? Wie werden die Systemgrenzen im Anwendungsfalldiagramm dargestellt?
Die Systemgrenzen sind die Stellen, an denen das System mit der Umwelt kommunizieren muss. Die Darstellung im Anwendungsfalldiagramm erfolgt als Rechteck
Wird jeder Akteur aus dem Lastenheft auch im Anwendungsfalldiagramm dargestellt? Begründen Sie bitte kurz Ihre Antwort.
Nein. Es werden nur die Akteure dargestellt, die auch tatsächlich am System den Anwendungsfall ausführen.
2.3 Was unterscheidet eine extend- und eine include-Beziehung?
Eine extend-Beziehung stellt einen Sonderfall eines anderen Anwendungsfalls dar. Der Anwendungsfall wird nur unter bestimmten Bedingungen ausgeführt. Bei der include-Beziehung greift ein Anwendungsfall auf einen anderen Anwendungsfall zu beziehungsweise ein Anwendungsfall ist Teil eines anderen Anwendungsfalls.
Wie wird eine extend-Beziehung im Anwendungsfalldiagramm dargestellt?
Die Darstellung erfolgt mit einem gestrichelten Pfeil und der Kennzeichnung <>. Die Pfeilspitze weist zu dem Anwendungsfall, der erweitert wird.
Wie werden Anwendungsfälle in einem Anwendungsfalldiagramm dargestellt?
Als Ellipsen mit einer kurzen textlichen Beschreibung (Substantiv + Verb).
Wo befinden sich Akteure und Anwendungsfälle im Diagramm?
Akteure sind außerhalb der Systemgrenzen, Anwendungsfälle innerhalb.
Was bedeutet eine „include“-Beziehung in einem Anwendungsfalldiagramm?
Eine „include“-Beziehung zeigt an, dass ein Anwendungsfall ein Teil eines anderen Anwendungsfalls ist.
Wie wird eine „include“-Beziehung dargestellt?
Mit einem gestrichelten Pfeil und der Bezeichnung «include», wobei der Pfeil auf den enthaltenen Anwendungsfall zeigt.
Was bedeutet eine „extend“-Beziehung in einem Anwendungsfalldiagramm?
Eine „extend“-Beziehung zeigt an, dass ein Anwendungsfall ein Sonderfall eines anderen ist und nur unter bestimmten Bedingungen ausgeführt wird.
Wie wird eine „extend“-Beziehung dargestellt?
Mit einem gestrichelten Pfeil und der Bezeichnung «extend», wobei der Pfeil auf den erweiterten Anwendungsfall zeigt.
Warum sollte ein Anwendungsfalldiagramm auch in Textform beschrieben werden?
Damit Kunden und Anwender die dargestellten Prozesse besser verstehen und überprüfen können.
Was stellt ein Anwendungsfalldiagramm dar?
Ein Anwendungsfalldiagramm stellt die Beziehungen zwischen Akteuren und Anwendungsfällen dar.
Welche Elemente enthält ein Anwendungsfalldiagramm?
Akteure, Anwendungsfälle, Systemgrenzen und Verbindungen zwischen Akteuren und Anwendungsfällen.
Wie werden Akteure in einem Anwendungsfalldiagramm dargestellt?
Als Strichmännchen mit einer kurzen textlichen Beschreibung darunter.
Wie wird die Systemgrenze bestimmt?
Durch Identifikation der Kommunikation des Systems mit Anwendern (Kunden, Mitarbeiter) und externen Systemen.
Warum ist die direkte Kommunikation mit dem Universitätssystem nicht erforderlich?
Weil die Software nur die entsprechende Internetseite aufrufen soll, aber nicht direkt mit dem System der Universität interagiert.
elche Benutzergruppen erfordert die Software und warum?
Kunden (Listen abrufen) und Mitarbeiter (Ausleihe, Rückgabe, Kundendaten, Mediendaten, Reservierung), da sie unterschiedliche Funktionen nutzen.
Welche wesentlichen Produktfunktionen ergeben sich aus der Produktbeschreibung der Leihbücherei?
Ausleihen, Rückgabe, Reservieren, Listen abrufen sowie das Erfassen und Pflegen der Kunden- und Mediendaten.
Schritte bei dem Entwurf eines Modells
1. Aus dem Lastenheft werden die wesentlichen Produktfunktionen ermittelt – also die Funktionen, die tatsächlich umgesetzt werden können beziehungsweise umgesetzt werden sollen.
2. Die Systemgrenzen werden festgelegt. Sie bilden die Stellen, an denen das SoftwareProdukt mit der Außenwelt kommunizieren muss.
3. Die wesentlichen Produktfunktionen und die Systemgrenze werden als Anwendungsfalldiagramme skizziert.
4. Die Anwendungsfälle werden detailliert beschrieben. 5. Die Anwendungsfälle werden anhand ihrer Wichtigkeit kategorisiert. Damit wird auch eine Reihenfolge für die technische Umsetzung vorgegeben.
Wie werden die wesentlichen Produktfunktionen ermittelt?
Durch Überprüfung der funktionalen Anforderungen aus dem Lastenheft und Feststellung, welche umgesetzt werden müssen.
Welche funktionalen Anforderungen müssen in jedem Fall umgesetzt werden?
LF 10 (Pflege der Kundendaten), LF 20 (Pflege der Mediendaten), LF 30 (Ausleihe) und LF 40 (Rückgabe).
Warum wird LF 50 (Einsortieren der zurückgegebenen Medien) gestrichen?
Weil dieser Vorgang für die Software nicht relevant ist, solange nur die Rückgabe erfasst wird.
Warum werden LF 60 (Reservierung) und LF 70 (Listen) nicht gestrichen?
Obwohl sie Komfortfunktionen sind, wurde mit dem Auftraggeber vereinbart, dass sie in der ersten Version enthalten sein sollen.
Welche Gefahr birgt die Ermittlung der Produktfunktionen anhand des Lastenhefts?
Falls eine wesentliche Funktion fehlt, wird sie bei dieser Methode übersehen.
Wie kann man Produktfunktionen ermitteln, wenn kein Lastenheft vorliegt?
Durch Analyse der Produktbeschreibung, insbesondere durch Markieren und Filtern relevanter Tätigkeiten.
Was bedeutet Interaktion im Kontext von Software?
Die Wechselbeziehung zwischen Anwender und Software, z. B. durch Aktionen und Eingaben.
Warum müssen bei der Analyse in der Regel sowohl ein dynamisches als auch ein statisches Modell erstellt werden?
Neben dem Verhalten muss auch die Struktur eines Systems beschrieben werden.
Was unterscheidet das Lastenheft und das Pflichtenheft?
Das Lastenheft beschreibt die Forderungen des Auftraggebers. Das Pflichtenheft beschreibt, wie der Auftragnehmer diese Forderungen umsetzen will.
Warum reichen UML-Diagramme allein oft nicht für die Kundenkommunikation aus?
Weil Kunden meist keine UML-Kenntnisse haben.
Welche vier Schritte sind bei der Analyse üblich?
Erstellung eines groben dynamischen Modells mit Anwendungsfalldiagrammen.
Erstellung eines groben statischen Modells mit Objekt- und Klassendiagrammen.
Verfeinerung der Anwendungsfälle mit Aktivitätsdiagrammen.
Verfeinerung des statischen Modells.
Welches Dokument ist das Ergebnis der Analyse?
Das Pflichtenheft.
Worin unterscheidet sich das Lastenheft vom Pflichtenheft?
Lastenheft: Forderungen des Auftraggebers.
Pflichtenheft: Umsetzung dieser Forderungen durch den Auftragnehmer.
Was sind die grundlegenden Fragen bei der Modellierung eines Software-Systems?
„Was soll die Software aus der Realität abbilden?“
„Wie soll sie es abbilden?“
Was liefert die Antwort auf die Frage „Was?“ bei der Modellierung eines Software-Systems?
Das Analysemodell.
Warum ist das Analysemodell wichtig?
Es ist die Voraussetzung für das Entwurfsmodell, das die Frage „Wie?“ beantwortet.
Worin besteht der Unterschied zwischen Lastenheft und Analysemodell?
Das Lastenheft beschreibt die Anforderungen aus Kundensicht.
Das Analysemodell beschreibt die fachliche Lösung dieser Anforderungen.
Welche Modelle umfasst die Analyse?
Ein statisches Modell (Struktur des Systems).
Ein dynamisches Modell (Verhalten des Systems).
: Wann ist ein statisches Modell besonders wichtig?
: Bei datenbankorientierten Anwendungen.
ann ist ein dynamisches Modell besonders wichtig?
: Bei interaktiven Anwendungen wie Textverarbeitungs- oder Grafikprogrammen.
Welche Diagramme werden zur formalen Beschreibung verwendet?
UML-Diagramme, ergänzt durch umgangssprachliche Darstellungen und Grafiken.
Welche Diagrammart wird in der Zusammenfassung als Beispiel genannt?
Das Anwendungsfalldiagramm wird als Beispiel für UML-Diagramme erwähnt.
Welche beiden Modelle unterscheidet die UML?
Statisches Modell – beschreibt die Struktur eines Systems.
Dynamisches Modell – beschreibt das Verhalten eines Systems.
Nenne je ein Diagramm für das statische und das dynamische Modell.
Statisches Modell: Klassendiagramm
Dynamisches Modell: Anwendungsfalldiagramm
Welche Vorteile bieten UML-Werkzeuge?
UML-Werkzeuge erleichtern die Erstellung von Diagrammen durch vorgefertigte Symbole, komfortable Beschriftung und automatische Anpassungen.
Nenne ein Beispiel für ein UML-Werkzeug.
UMLet – ein kostenloses Tool mit vorgefertigten Symbolen und einfacher Beschriftung für UML-Diagramme.
Sind alle UML-Werkzeuge kostenpflichtig?
Nein, es gibt sowohl kommerzielle als auch kostenlose Open-Source-Programme für UML-Modellierung.
Was ist eine „include“-Beziehung in einem Anwendungsfalldiagramm?
Eine „include“-Beziehung zeigt, dass ein Anwendungsfall auf einen anderen zugreift oder Teil eines anderen ist.
Wofür wird ein Aktivitätsdiagramm genutzt?
Ein Aktivitätsdiagramm beschreibt Abläufe und Prozesse in einem System durch Aktionen und deren Abfolge.
Wie werden Aktionen in einem Aktivitätsdiagramm dargestellt?
Aktionen werden durch Rechtecke mit abgerundeten Ecken dargestellt und durch Pfeile verbunden.
Was ist ein Akteur in UML?
Ein Akteur (engl. Actor) ist eine Person, eine Rolle oder ein anderes System, das mit dem Modell interagiert.
Warum kann das Erstellen von UML-Diagrammen per Hand problematisch sein?
Manuelle UML-Diagramme sind aufwendig und fehleranfällig. Falls ein Fehler entdeckt wird, muss oft das gesamte Diagramm überarbeitet oder neu gezeichnet werden.
Wann wurde UML als Standard verabschiedet?
UML wurde 1997 von der Object Management Group (OMG) als Standard verabschiedet.
Welche zwei Hauptmodelle gibt es in UML?
Statisches Modell – beschreibt die Struktur eines Systems (z. B. Klassendiagramme).
Dynamisches Modell – beschreibt das Verhalten eines Systems (z. B. Sequenzdiagramme).
Nenne vier UML-Diagramme des statischen Modells.
Klassendiagramm
Komponentendiagramm
Paketdiagramm
Verteilungsdiagramm
Nenne vier UML-Diagramme des dynamischen Modells.
Anwendungsfalldiagramm (Use Case-Diagramm)
Aktivitätsdiagramm
Zustandsdiagramm
Sequenzdiagramm
Was beschreibt ein Klassendiagramm?
Ein Klassendiagramm zeigt Klassen eines Systems, ihre Attribute, Methoden und Beziehungen zueinander (z. B. Vererbung und Aggregation).
Was ist ein Anwendungsfalldiagramm?
Ein Anwendungsfalldiagramm stellt die Beziehungen zwischen Akteuren (z. B. Benutzer) und Anwendungsfällen (Prozessen) dar.
Wie werden Akteure und Prozesse in einem Anwendungsfalldiagramm dargestellt?
Akteure: Als Strichmännchen
Prozesse: Als Ellipsen
Warum wurde UML entwickelt?
UML wurde entwickelt, um die Vielzahl unterschiedlicher objektorientierter Modellierungsmethoden zu vereinheitlichen und Missverständnisse zu vermeiden.
Was bedeutet UML?
UML steht für Unified Modeling Language und ist eine standardisierte Notation zur Beschreibung objektorientierter Systeme.
: Warum wurde UML entwickelt?
Wer sind die „drei Amigos“ der UML?
Die „drei Amigos“ sind Jim Rumbaugh, Grady Booch und Ivar Jacobson, die maßgeblich zur Entwicklung von UML beigetragen haben.
Welche Regel gilt für die Vererbung, bezogen auf die Klassenhierarchie?
Ein Klasse kann nur von ihrer unmittelbaren Oberklasse erben oder – anders herum ausgedrückt – die Vererbung ist nur an die unmittelbare Unterklasse möglich.
Eine Klasse „Mitarbeiter“ erbt von der Klasse „Person“. Wie lässt sich die Vererbung umgangssprachlich ausdrücken?
Die Vererbung lässt sich umgangssprachlich ausdrücken als „Mitarbeiter ist eine Person“.
Was ist eine Mehrfachvererbung?
Bei der Mehrfachvererbung erbt eine Klasse von mehreren Oberklassen.
Was beschreibt der Begriff Datenkapselung?
Durch die Datenkapselung werden die Attribute und Methoden grundsätzlich gegen den Zugriff von außen geschützt. Die Kapselung kann mehr oder weniger streng erfolgen.
5 Beschreiben Sie die Unterschiede zwischen einem Signal und einem Operationsaufruf.
An einem Operationsaufruf sind genau zwei Objekte beteiligt. Der Sender ruft eine Methode des Empfängers auf. Bei einem Signal wird eine Nachricht vom Sender abgesetzt und kann – aber muss nicht – von einem oder mehreren Empfängern verarbeitet werden.
Wie wird Polymorphismus in einer Klassenhierarchie umgesetzt?
ine Methode wird in einer Oberklasse definiert und in den Unterklassen unterschiedlich umgesetzt. Beispiel: Die Methode bewegen() in der Klasse Säugetiere wird in den Unterklassen unterschiedlich ausgeführt:
bewegen()
Säugetiere
Känguru: hüpft.
Bär: läuft auf vier Beinen.
Wal: schwimmt
Was bedeutet das Wort „Polymorph“?
“Polymorph“ kommt aus dem Griechischen und bedeutet „vielgestaltig“.
Was ist der Unterschied zwischen einem Operationsaufruf und einem Signal?
Operationsaufruf: Ein Sender ruft eine Methode eines Empfängers direkt auf und erwartet eine Aktion oder Änderung.
Signal: Ein Sender sendet eine Nachricht, ohne dass ein bestimmter Empfänger darauf reagieren muss.
Was bedeutet synchrone und asynchrone Kommunikation zwischen Objekten?
Synchron: Der Sender wartet auf die Antwort des Empfängers, bevor er fortfährt.
Asynchron: Der Sender arbeitet weiter, ohne auf eine Antwort zu warten.
Wie funktioniert die Kommunikation zwischen Objekten?
Ein Sender sendet eine Nachricht an einen Empfänger (Receiver). Der Empfänger verarbeitet die Nachricht durch eine Methode, wobei der Sender nicht wissen muss, wie genau die Verarbeitung abläuft.
Was bedeutet Polymorphie in der Objektorientierung?
Polymorphie bedeutet, dass derselbe Begriff oder dieselbe Methode je nach Kontext unterschiedliche Bedeutungen oder Implementierungen haben kann.
Was bedeutet Polymorphismus in der Objektorientierung?
Polymorphismus bedeutet, dass eine Methode oder ein Begriff je nach Kontext unterschiedlich interpretiert und ausgeführt werden kann.
Welches Beispiel zeigt Polymorphismus in der Sprache?
as Wort „sitzt“ hat je nach Kontext unterschiedliche Bedeutungen, z. B.:
„Der Anzug sitzt.“ → Passt gut.
„Meine Frau sitzt auf dem Stuhl.“ → Beschreibt eine Position.
„Der Gefangene sitzt.“ → Bedeutet, dass er im Gefängnis ist.
Wie funktioniert Polymorphismus bei Methoden?
Eine Methode kann unterschiedliche Datentypen verarbeiten.Beispiel: Eine Methode addiert entweder Zahlen (5 + 4 = 9) oder verbindet Zeichenketten („Auto“ + „haus“ = „Autohaus“).
Welche Sichtbarkeiten gibt es bei der Datenkapselung?
Privat: Nur die Klasse selbst kann auf Attribute und Methoden zugreifen.
Geschützt: Zugriff für die Klasse und ihre abgeleiteten Klassen.
Öffentlich: Zugriff für alle Klassen.
Warum ist Datenkapselung wichtig?
: Sie schützt Daten vor ungewolltem Zugriff und Veränderungen, erhöht die Wartbarkeit des Codes und ermöglicht eine klare Schnittstelle für den Zugriff.
Was bedeutet Datenkapselung?
Datenkapselung verhindert den direkten Zugriff auf Attribute eines Objekts von außen. Stattdessen erfolgt der Zugriff über Methoden, um Daten sicher zu verwalten.
Warum ist Datenkapselung vorteilhaft?
Erhöht die Wiederverwendbarkeit von Code.
Schützt Daten vor unkontrollierten Änderungen.
Erlaubt Änderungen an interner Implementierung ohne Einfluss auf andere Teile des Programms.
Was versteht man unter Datenkapselung?
: Datenkapselung (Information Hiding) bedeutet, dass Attribute und Methoden einer Klasse nur für die Klasse selbst oder bestimmte andere Klassen sichtbar sind, um interne Implementierungsdetails zu verbergen.
Wie wird Vererbung in C++ umgesetzt?
Durch die Schlüsselwörter public, protected oder private beim Erben einer Klasse:
public
protected
Was ist mehrfache Vererbung?
Mehrfache Vererbung bedeutet, dass eine Klasse von mehreren Oberklassen erbt. Sie kann zu unübersichtlichem Code und Fehlern führen und wird nicht in allen Programmiersprachen unterstützt.
Was ist Vererbung in der Objektorientierung?
Vererbung ist ein Mechanismus, bei dem eine untergeordnete Klasse (Unterklasse) Attribute und Methoden von einer übergeordneten Klasse (Oberklasse) übernimmt und erweitern kann.
Warum wird Vererbung genutzt?
Vererbung ermöglicht die Wiederverwendung von Code, reduziert Redundanz und erleichtert die Wartung und Erweiterung von Klassenhierarchien.
Welche Regeln gelten für die Vererbung?
Eine Klasse kann nur von einer unmittelbaren Oberklasse erben.
Eine Klasse gibt ihre Attribute und Methoden nur an ihre unmittelbare Unterklasse weiter.
Eine Klasse kann Attribute und Methoden der Oberklasse erweitern oder spezialisieren.
Was sind die Begriffe Generalisierung und Spezialisierung in der Vererbung?
Generalisierung bedeutet, dass eine übergeordnete Klasse gemeinsame Eigenschaften mehrerer Unterklassen zusammenfasst.
Spezialisierung bedeutet, dass eine Unterklasse zusätzliche oder spezifischere Eigenschaften zur Oberklasse hinzufügt.
Was ist eine Instanz einer Klasse?
Eine Instanz ist ein Objekt genau einer Klasse.
Was unterscheidet konkrete Klassen und abstrakte Klassen?
Eine konkrete Klasse ist eine Klasse, zu der Instanzen vorhanden sind. Eine abstrakte Klasse ist eine Klasse, die vor allem für die Ableitung anderer Klassen genutzt wird. Für eine abstrakte Klasse können keine Instanzen erzeugt werden.
Sollte ein Attributwert eines Objekts von einer beliebigen Stelle aus geändert werden können?
Nein. Der Wert eines Attributs sollte nur durch die Methoden der Klasse selbst verändert werden können.
Welche Probleme weist die klassische strukturierte Methode auf?
- Es fehlen durchgängige Konzepte und Methoden für verschiedene Entwicklungsphasen.
- Daten und Verhalten werden getrennt betrachtet, was nicht der Realität entspricht.
Wie löst die Objektorientierung diese Probleme?
- Sie verknüpft Daten direkt mit den Operationen (Verhalten), die auf diese Daten angewendet werden.
- Daten und ihr Verhalten werden als Einheit betrachtet – als Objekt.
Was ist ein Objekt in der Objektorientierung?
Ein Objekt ist eine abgeschlossene Einheit, die aus Zustand (Daten) und Verhalten (Operationen) besteht.
Welche Beispiele für Objekte gibt es?
- Reale Objekte: Person, Auto, Computer
- Software-Objekte: Dialogfenster, Datenbankeintrag
Welche Bestandteile hat ein Objekt?
- Zustand (Attribute): Enthält die gespeicherten Daten des Objekts.
- Verhalten (Methoden): Enthält die Operationen, die auf das Objekt angewendet werden können.
Was beschreibt den Zustand eines Objekts „Person“?
- Geschlecht
- Alter
- Größe
- Name
- Adresse
- Bewegung, Position, Richtung
Wie beeinflusst das Verhalten eines Objekts seinen Zustand?
- Wenn eine Person wächst → ändert sich die Größe.
- Wenn eine Person älter wird → ändert sich das Alter.
- Wenn eine Person spricht → ändert sich der Zustand spricht/spricht nicht.
- Wenn eine Person sich bewegt → ändern sich Position und Bewegungsrichtung.
Warum werden Objekte abstrahiert?
- Um nur relevante Informationen für eine bestimmte Anwendung zu speichern.
- Beispiel: Bei der Verwaltung von Adressdaten einer Person sind Größe, Augenfarbe und Sprechzustand nicht relevant.
Was bedeutet Klassenzusammenfassung in der Objektorientierung?
- Objekte mit ähnlichem Verhalten und ähnlichen Attributen werden in einer Klasse zusammengefasst, um redundante Daten zu vermeiden.
Was ist eine Klasse in der Objektorientierung?
Eine Klasse ist ein Bauplan für Objekte, der deren wesentliche Eigenschaften und Verhalten beschreibt.
Wie sind Klassen und Objekte miteinander verbunden?
✅ - Eine Klasse ist der Bauplan
.✅ - Ein Objekt ist eine Instanz einer Klasse.
✅ - Eine Klasse kann mehrere Instanzen haben.
Warum werden Klassen hierarchisch strukturiert?
✅ - Um gemeinsame Eigenschaften und Verhalten in einer übergeordneten Klasse zu definieren.
✅ - Dadurch müssen Eigenschaften nicht mehrfach beschrieben werden.
✅ - Unterklassen erben die Eigenschaften der Oberklasse und können sie erweitern.
Was ist eine Klassenhierarchie?
ine übergeordnete Klasse definiert allgemeine Merkmale, während spezialisierte Unterklassen zusätzliche Eigenschaften hinzufügen.
Wie wird eine Klassenhierarchie in einem Software-System genutzt?
- Beispiel: In einer Leihbücherei gibt es verschiedene Personen mit unterschiedlichen Rollen:
🔹 Oberklasse: Person (allgemeine Eigenschaften)
🔹 Unterklassen: Kunde, Mitarbeiter Ausleihe, Mitarbeiter Verwaltung
❓ Was ist eine Instanz?
✅ - Eine Instanz ist ein konkretes Objekt einer Klasse.
✅ - Beispiel: Jeder Kunde in einer Leihbücherei ist eine eigene Instanz der Klasse „Kunde“.
Was ist eine konkrete Klasse?
✅ - Eine Klasse, die Instanzen besitzt.
✅ - Konkrete Klassen stehen oft weit unten in der Hierarchie.
✅ - Beispiel: „Kunde“ ist eine konkrete Klasse, da es viele Kunden gibt.
Was sind Attribute, Attributwerte und Methoden?
✅ - Attribute beschreiben den Zustand eines Objekts.
✅ - Attributwerte sind die konkreten Werte der Attribute.
✅ - Methoden sind Funktionen, die das Verhalten eines Objekts bestimmen und dessen Zustand ändern.
Beispiel für Attribute, Attributwerte und Methoden in der Klasse „Person“?
✅ - Attribut: Größe → Attributwert: 190 cm
✅ - Attribut: Alter → Attributwert: 25 Jahre
✅ - Methode: wachsen() → Ändert Attributwert: Größe erhöht sich.
as ist die Klasse „Kunde“?
✅ - Eine Klasse, die Kunden beschreibt.
✅ - Hat das Attribut groesse.
✅ - Enthält zwei Methoden: wachsen() und ausgeben().
Nennen Sie mindestens drei charakteristische Eigenschaften eines Objekts.
Die Darstellung in einem Objekt erfolgt abstrahiert. Ein Objekt fasst Eigenschaften und Verhalten zusammen.
Die Eigenschaften werden durch Attribute beziehungsweise Attributwerte dargestellt, das Verhalten durch Methoden. Jedes Objekt hat eine eindeutige Identität.
Jedes Objekt gehört zu einer Klasse.
Was wird allgemein in einem Datenflussdiagramm dargestellt?
Ein Datenflussdiagramm beschreibt den Zugriff, die Veränderung und die Weiterleitung von Daten im Rahmen eines bestimmten Verhaltens oder einer bestimmten Funktion eines Systems.
Mit welchem Diagramm kann beispielsweise das Verhalten bei der strukturierten Methode exakter dargestellt werden?
Eine Möglichkeit ist die Darstellung in einem Programmablaufplan.
Fragestellung von Modellierung
• „Was soll die Software abbilden?“
• „Wie soll sie es abbilden?“
Was unterscheidet das Analyse- von dem Entwurfsmodell?
Das Analysemodell gibt Antwort auf die Frage „Was soll die Software abbilden?“. Das Entwurfsmodell gibt Antwort auf die Frage „Wie soll die Software es abbilden?“.
Definition Entity
Entity bedeutet übersetzt so viel wie „Gegenstand“. Relationship bedeutet übersetzt so viel wie „Beziehung“. Ein ER-Diagramm stellt also – ganz allgemein – die Beziehung von Gegenständen dar.
Wofür steht die Abkürzung ER? Wofür wird ein ER-Diagramm eingesetzt?
Die Abkürzung ER steht für Entity Relationship. Ein ER-Diagramm wird für die Darstellung von Daten und ihrer Beziehung untereinander eingesetzt.
Wo sind die grundlegenden Anforderungen an die Software dokumentiert?
Im Lastenheft.
Kann überprüft werden, ob alle Anforderungen vollständig erfasst sind?
Nein, das lässt sich nicht prüfen. Es wird jedoch angenommen, dass nichts Wesentliches fehlt.
: Gibt es Widersprüche in den Anforderungen?
Nein, die Anforderungen widersprechen sich nicht.
Wie lange dauert die Entwicklung des Systems laut Planung?
Sie beträgt sieben Personenmonate (sechs errechnet + ein zusätzlicher Reserve-Monat).
Wie wurde die Entwicklungsdauer ermittelt?
Mithilfe der Function Point-Methode.
Wie hoch sind die geschätzten Entwicklungskosten?
35.000 € (5000 € pro Personenmonat × 7 Personenmonate).
Können die vorhandenen Mitarbeiter der SoftFix GmbH die Entwicklung übernehmen?
Ja, aber Personalausfälle sind ein Risiko.
Was ist ein Meilenstein? Welche Anforderungen an einen Meilenstein müssen Sie beachten?
Ein Meilenstein ist ein wichtiger Zwischenschritt in einer Phase oder im gesamten Projekt. Das Erreichen eines Meilensteins muss messbar sein.
Welche Abhängigkeiten zwischen Vorgängen kennen Sie? Beschreiben Sie die einzelnen Abhängigkeiten bitte kurz.
Unterschieden werden die Normalfolge, die Anfangsfolge und die Endfolge.
Bei der Normalfolge kann ein Vorgang erst dann beginnen, wenn sein Vorgänger beendet ist.
Bei der Anfangsfolge müssen Vorgänge gleichzeitig beginnen.
Bei der Endfolge müssen Vorgänge gleichzeitig beendet sein.
Gefahren in der Projektentwicklung
• häufige Terminverschiebungen von Projektmeetings
• Vorlage unvollständiger Ergebnisse
• bekannte Probleme werden nicht erledigt
• häufige Änderungswünsche des Auftraggeber
• steigende Zahl von Projektmeeting
mangelhafte Meetingdisziplin
• steigende Anzahl offener Punkte in Sitzungsprotokollen
• Vernachlässigung von Richtlinie
• Vernachlässigung der Projektdokumentation
• Fluktuation, Krankenstand, kurzfristige Urlaubswünsche.
Definition Pufferzeiten
Bei kritischen Vorgängen sollten Sie die Terminplanung besonders sorgfältig durchführen und nach Möglichkeit auch Pufferzeiten einplanen. Diese Pufferzeiten sind Reservezeiten, in denen der Vorgang noch abgeschlossen werden kann, ohne dass es zu Verzögerungen im Projekt kommt.
Warum ist der Starttermin für ein Projekt nicht auch automatisch der Starttermin für sämtliche Vorgänge im Projekt?
Zwischen den einzelnen Vorgängen bestehen in der Regel Abhängigkeiten, die den Starttermin beeinflussen.
Welche Aufgaben übernimmt ein Netzplan bei der Projektplanung?
Ein Netzplan stellt im Wesentlichen die Abhängigkeiten zwischen den Vorgängen dar.
Mit welcher Diagrammart wird der zeitliche Ablauf der Vorgänge dargestellt?
Definition Vorgang in der Termin- und Kapazitätsplanung
Aktivitäten und Arbeitspakete werden häufig auch als Vorgang bezeichnet.
Definition Normalfolge eines Projektes
der das Ende eines Vorgangs den Starttermin für die Nachfolger bestimmt
Definition Anfangsfolge bei einem Projekt
Bei der Anfangsfolge müssen die Vorgänge gleichzeitig begonnen werden,
Definition Endfolge bei der Produktion
bei der Endfolge dagegen müssen die Vorgänge gleichzeitig beendet werden.
Fragestellungen in der
• Wie lange dauert der Vorgang?
• Wann kann die Arbeit frühestens begonnen werden?
• Wann muss die Arbeit spätestens beendet sein?
Welche weiteren Methoden gibt es zur Aufwandsschätzung?
Data Point-Methode
Object Point-Methode
COCOMO (Constructive Cost Model)
COCOMO II
Welche vier Schritte umfasst die Function Point-Methode?
Ermittlung der Elementarprozesse und Datenbestände.
Bewertung der einzelnen Prozesse und Datenbestände.
Zusammenzählen der Werte zu Function Points.
Zuordnung der Function Points zu Personenmonaten über eine Tabelle oder Kurve.
Warum kann die Function Point-Methode ungenaue Ergebnisse liefern?
Weil die Anforderungen oft nicht genau feststehen und die Erfahrung des Schätzers das Ergebnis beeinflusst.
Wie kann eine zu optimistische Planung vermieden werden?
Durch eine kritische Hinterfragung der ersten Einschätzungen oder die Berechnung eines Durchschnitts aus optimistischem, wahrscheinlichem und pessimistischem Wert.
Wie wird die Entwicklungsdauer aus drei geschätzten Werten berechnet?
Die Summe aus optimistischem, wahrscheinlichem und pessimistischem Wert wird durch 3 geteilt.
Wie viele Function Points werden nach dem Rapid-Verfahren für jede Eingabe angesetzt?
4 Function Points pro Eingabe.
Wie viele Function Points ergeben sich insgesamt für die sieben Eingaben im Beispiel?
28 Function Points.
Welche Prozesse gehören im Beispiel zur Kategorie „Eingabe (EI)“?
Anlegen eines Kunden
Ändern eines Kunden
Anlegen eines Mediums
Ändern eines Mediums
Einlesen der Kundendaten bei der Ausleihe
Einlesen der Mediendaten bei der Ausleihe
Eingeben der Mediendaten bei der Reservierung
Welche Bereiche werden bei der Function-Point-Berechnung noch bewertet?
Neben den Eingaben auch Ausgaben, Abfragen sowie interne und externe Datenbestände.
Wie kann die Entwicklungsdauer über Function Points ermittelt werden?
Durch den Vergleich der Function Points des aktuellen Projekts mit bereits abgeschlossenen Projekten, deren Entwicklungsdauer in Personenmonaten oder -jahren dokumentiert wurde.
Was ist notwendig, um die Entwicklungsdauer über Function Points abzuschätzen?
Eine Tabelle mit den Function Points und Entwicklungsdauern abgeschlossener Projekte oder externe Vergleichstabellen wie die von IBM.
Warum wird das Einlesen der Kunden- und Mediendaten bei der Rückgabe nicht separat gezählt?
Weil es sich genauso umsetzen lässt wie das Einlesen der entsprechenden Daten bei der Ausleihe.
Warum muss das Eingeben der Mediendaten bei der Reservierung separat gezählt werden?
Weil die Medien nicht vorhanden sind und die Daten nicht maschinell eingelesen, sondern per Hand erfasst werden müssen.
Welche Kategorien von Elementarprozessen und Datenbeständen gibt es in der Function Point-Methode?
Eingabe (EI)
Ausgabe (EO)
Abfrage (EQ)
Interner Datenbestand (ILF)
Externer Datenbestand (EIF)
Wie wird die Komplexität der Anforderungen in der Function Point-Methode beschrieben?
Die Komplexität der Anforderungen wird anhand eines Punktwerts beschrieben, der minimal, mittler oder maximal sein kann.
Wofür werden Punktwerte in der Function Point-Methode genutzt?
Punktwerte werden verwendet, um die einzelnen Elementarprozesse und Datenbestände der Anwendung anhand von Komplexitätsregeln zu bewerten.
Faktoren, die zu den Eingaben zählen
• das Anlegen eines Kunden,
• das Ändern eines Kunden
• das Anlegen eines Mediums
• das Ändern eines Mediums
• das Einlesen der Kundendaten bei der Ausleihe
• das Einlesen der Mediendaten bei der Ausleihe
• das Eingeben der Mediendaten für die Reservierung. Das Einlesen der Kunden- und Mediendaten bei der Rück
Was sind interne Datenbestände (ILF)?
Interne Datenbestände (internal logical file, ILF) sind Daten, die vom System selbst angelegt oder verändert werden, z. B. Kundendaten oder Buchdaten in einer Leihbücherei.
Was sind externe Datenbestände (EIF)?
Externe Datenbestände (external interface file, EIF) sind Daten, die nicht direkt vom System selbst angelegt oder verändert werden, aber vom System benötigt werden, z. B. Preise in einer Artikeldatenbank für ein Buchhaltungsprogramm.
Was bedeutet „Function Point“?
„Function Point“ bedeutet übersetzt „Funktionspunkt“.
Die drei Typen von Elementarprozessen
Eingabe (external input, EI)
Ausgabe (external output, EO)
Abfrage (external inquiry, EQ)
Definition Eingabe (external input, EI)
Hier werden vor allem die Daten berücksichtigt, die das System einlesen muss. Dazu gehören nicht nur Informationen, die per Hand eingegeben werden, sondern zum Beispiel auch Daten, die über einen Scanner oder aus einer Datei gelesen werden. Bei unserer Leihbücherei würden zum Beispiel die Daten zu den Kunden und auch die Daten zu den Medien zu den Eingabedaten gehören.
Definition Ausgabe (external output, EO)
Hier werden die Daten berücksichtigt, die das System ausgeben muss. Dabei zählen nicht nur Ausgaben auf dem Bildschirm, sondern auch Druckausgaben und so weiter. Bei der Leihbücherei würden zum Beispiel die Listen für die verschiedenen Medien bei den Ausgabedaten aufgezählt
Definition Abfrage (external inquiry, EQ)
Zu den Abfragen gehören alle Prozesse, die auf die gespeicherten Daten zugreifen, aber keine Veränderungen an den Daten vornehmen. Ein typisches Beispiel für eine Abfrage ist die Suche nach einem Kunden. Hier wird auf die Kundendaten zugegriffen, aber keine Veränderung an den Daten vorgenommen.
Definition Function Size
Umfang des zu erstellenden Systems
Definition Function Points
Maßeinheit für die Functional size
Definition Elementarprozesse
Dabei handelt es sich um kleine, in sich abgeschlossene Prozesse, die aus Sicht des Anwenders oder einer anderen Programms für die Arbeit mit der Anwendung sinnvoll sind. Für unsere Anwendung Buch 2030 sind zum Beispiel das Anlegen von Kunden oder das Anlegen von Medien solche Elementarprozesse
Faktoren Teufelsviereck
Qualität und Quantität + Dauer und Kosten
Faktoren Schätzmethode bei der Aufwandsentschädigung
Analogiemethode
Prozentsatzmethode
Delphi-Methode
LOC-Varianten
Umrechnungen von Zeiteinheiten in Personeneinheiten
Ein Personenmonat entspricht nicht 30 Personentagen, da ja zum Beispiel am Wochenende eigentlich nicht gearbeitet wird. Außerdem können auch Ausfälle durch Krankheiten oder Urlaub entstehen. Deshalb geht auch das Personenjahr nicht von 12 Monaten aus, sondern lediglich von 10.
Definition Analogiemethode
Hier werden die Anforderungen aus dem aktuellen Projekt mit bereits durchgeführten Projekten verglichen. Daraus kann dann mehr oder weniger nach Gefühl der Aufwand für das aktuelle Projekt geschätzt werden. Diese Methode setzt allerdings einen sehr erfahrenen Schätzer voraus. Außerdem müssen bereits ähnliche Projekte unter ähnlichen Rahmenbedingungen durchgeführt worden sein. Daher sind die Ergebnisse in der Regel nur sehr grob und liegen nicht selten deutlich unter dem tatsächlichen Aufwand.
Definition Prozentsatzmethode
Nach einem ähnlichen Prinzip arbeiten Prozentsatzmethoden. Hier werden die prozentualen Anteile einer Entwicklungsphase aus ähnlichen Projekten herangezogen.
Definition Delphi-Methode
Die Prozentsatzmethode funktioniert allerdings nur, wenn mindestens die erste Phase des aktuellen Projektes bereits abgeschlossen ist. Außerdem steht und fällt diese Methode ebenfalls mit der Erfahrung des Schätzers, der ja zunächst einmal feststellen muss, ob überhaupt ein vergleichbares Projekt durchgeführt wurde. Um die Ergebnisse auf eine breitere Basis zu stellen, werden zum Teil auch mehrere Personen mit unabhängigen Schätzungen beauftragt. Aus den getrennten Schätzungen wird dann ein Mittelwert abgeleitet. Nach diesem Verfahren arbeitet zum Beispiel die DelphiMethode.
Definition LOC-Varianten
Weitere Methoden für die Schätzung sind LOC-Varianten. Sie basieren auf der Anzahl der Quellcodezeilen – im englischen Lines of Code. Im einfachsten Fall erfolgt die Schätzung nach der Formel Umfang des Systems in LOC / Produktivität der Entwickler in LOC pro Zeiteinheit
Definition Lastenheft
Ein Lastenheft in der Softwareentwicklung ist ein Dokument, das die Anforderungen an eine Softwarelösung aus Sicht des Auftraggebers beschreibt. Es dient als Grundlage für die Angebotserstellung durch potenzielle Auftragnehmer und stellt sicher, dass alle Beteiligten eine klare Vorstellung von den zu entwickelnden Funktionen und Rahmenbedingungen haben.
Inhalt Lastenheft
Einleitung
Ziel des Projekts
Hintergrund und Motivation
Projektbeteiligte und Stakeholder
Ist-Zustand
Beschreibung der aktuellen Situation
Bestehende Probleme oder Herausforderungen
Soll-Zustand
Ziele der Software
Erwünschte Verbesserungen
Funktionale Anforderungen
Detaillierte Beschreibung der Softwarefunktionen
Use Cases oder User Stories
Nicht-funktionale Anforderungen
Performance-Anforderungen
Sicherheitsanforderungen
Usability und Barrierefreiheit
Rahmenbedingungen
Technologische Vorgaben (z. B. Programmiersprachen, Frameworks)
Betriebssysteme und Hardware
Schnittstellen zu anderen Systemen
Abnahmekriterien
Kriterien zur Beurteilung, ob die Software den Anforderungen entspricht
Anhänge
Diagramme, Mockups, Glossar
Fragestellung Machbarkeitsstudie
• Was soll die Software grundsätzlich leisten?
• Sind alle Anforderungen weitgehend vollständig erfasst?
• Widersprechen sich die Anforderungen nicht? • Wie lange dauert die Entwicklung wahrscheinlich?
• Können wir die Entwicklung mit dem vorhandenen Personal durchführen? Haben wir ausreichend Mitarbeiter? Sind die Mitarbeiter genügend qualifiziert? • Was kostet die Entwicklung?
• Lohnt sich die Erstellung überhaupt? Gibt es vielleicht kostengünstigere Alternativen?
• Welche Risiken können möglicherweise auftreten? Wie soll mit diesen Risiken umgegangen werden?
Definition Chief-Programmer-Team
Das hierarchische Prinzip wird bei der Software-Entwicklung zum Beispiel durch das „Chief Programmer“-Team8 umgesetzt. Der „Chefprogrammierer“ erledigt alle wichtigen Arbeiten selbst und weist den anderen Entwicklern vor allem unkritische Detailaufgaben zu.
Warum sind Rollenzuweisungen in der modernen Software-Entwicklung zwingend erforderlich?
In der Regel arbeiten bei der Entwicklung mehrere Personen in einem Team zusammen. Über die Rollenzuweisung werden die Aufgaben, Verantwortlichkeiten und Kompetenzen jedes Beteiligten festgelegt.
In einem Projekt mit wenigen Mitarbeitern sollen einige Entwickler gleichzeitig die Rollen Programmierer und Tester übernehmen. Beurteilen Sie diesen Vorschlag. Was muss unbedingt beachtet werden?
Die Zuweisung dieser beiden Rollen ist nur dann sinnvoll, wenn die Programmierer nicht ihre eigene Arbeit überprüfen. Wenn das nicht sichergestellt werden kann, sollte auf die mehrfache Zuweisung der Rollen in jedem Fall verzichtet werden.
Welche Aufgaben hat ein „Ersatzprogrammierer“ im „Chief Programm
Der „Ersatzprogrammierer“ ersetzt im Notfall den „Chefprogrammierer“. Er benötigt daher dieselben Qualifikationen wie der „Chefprogrammierer“.
Grundsätze von Rollenverteilung in Teams
• Im Team arbeiten mehrere Personen mit derselben Rolle zusammen – zum Beispiel nur Tester oder nur Programmierer. Damit jede nötige Rolle abgedeckt wird, sind mehrere Teams erforderlich, die zusammenarbeiten.
• Im Team arbeiten mehrere Personen mit unterschiedlichen Rollen zusammen. Solch ein Team könnte sich um einen ganz bestimmten Bereich der Software kümmern – beispielsweise um die grafische Benutzeroberfläche oder um die Programmierung einer bestimmten Schnittstelle zu einem anderen System.
Definition demokratisches Team
In einem demokratischen Team gibt es keinerlei Hierarchie. Alle Mitglieder sind gleichberechtigt. Entscheidungen werden vom Team gemeinsam getroffen. Das demokratische Team funktioniert allerdings nur dann, wenn kein Mitglied versucht, eine Führungsposition anzustreben.
Definition Pair-Programmer-Team
n der Software-Entwicklung findet sich das demokratische Team zum Beispiel beim „Pair Programmer“-Team7 wieder. Hier arbeiten immer zwei Entwickler gemeinsam und gleichberechtigt an einer Lösung. Der eine Entwickler übernimmt so quasi automatisch die Qualitätssicherung für den anderen Entwickler.
Definitiion hierarchisches Team
Ein hierarchisches Team arbeitet mit einem Team-Leiter, der den anderen Team-Mitgliedern Arbeiten zuweist und diese Arbeiten prüft. Häufig findet sich neben dem eigentlichen Team-Leiter auch noch ein Team-Manager, der vor allem für die Organisation des Teams zuständig ist.
Aufgabe des Designers in der Rollenverteilung in der Software-Entwicklung
Der Designer ist vor allem für die Analyse und den Entwurf zuständig
Aufgaben des Programmierers in der Aufgabenverteilung in der Software-Entwicklung
der Programmierer erstellt die ausführbare Anwendung
Aufgaben des Testers in der Rollenverteilung in der Software-Entwicklung
Der Tester prüft die Software
Definition Rolle in der Software-Entwicklung
Eine Rolle in der Software-Entwicklung definiert die Aufgaben, Verantwortlichkeiten und Kompetenzen einer Person.
Aufgabe des Kunden in der Rollenverteilung in der Software-Entwicklung
Eine mögliche Rolle ist zum Beispiel Kunde. Neben der Definition der Anforderungen an die Software liefert er alle nötigen Fachinformationen, die für die Umsetzung benötigt werden, prüft die Software – zum Beispiel über Prototypen – und nimmt das fertige Produkt schließlich ab.
Aufgabe des Anwenders in der Rollenverteilung in der Software-Entwicklung
Auch die Anwender lassen sich über eine eigene Rolle abbilden. Ihre Aufgabe besteht im Wesentlichen in der Arbeit mit dem System.
Aufgabe des Managers in der Aufgabenverteilung in der Software-Entwicklung
Eine andere Rolle wäre Manager. Er ist für die Organisation der Arbeit verantwortlich.
Rollen, die an der tatsächlichen Entwicklung beiteiligt sind
Entwickler
Designer
Tester
Nachteil des kooperativen Führtungsstils
Als Nachteil des kooperativen Führungsstils können die zeitlichen Verzögerungen bei der Entscheidungsfindung (z.B. infolge von Beratungsgesprächen mit den Mitarbeitern) angesehen werden. Dieser Nachteil wird aber sicher dadurch ausgeglichen, dass die Entscheidungen durch die Einbindung der Mitarbeiter i.d.R. besser werden und die Mitarbeiterzufriedenheit größer ist.
Definition bürokratischer Führungsstil
Die Mitarbeiter sind anonyme Faktoren. Sie erhalten zumeist nur schriftliche Anweisungen. Berichte und schriftliche Überprüfungen kontrollieren die Arbeit.
Patriachialischer Führungsstil
Die Mitarbeiter werden „als Kinder“ behandelt. Sie stehen in einem Abhängigkeitsverhältnis. Informationen kommen als „Geschenk von oben“. Aufsicht und Kontrolle erfolgen nach Gutdünken.
Laisse fairez-Führungsstils
Die Mitarbeiter sind Individuen, denen große Freiheiten eingeräumt werden. Informationen kommen zufällig. Eine Kontrolle erfolgt lediglich durch den Mitarbeiter selbst.
Nachteile des autoritären Führungsstils
• mangelnde Motivation der Mitarbeiter,
• keine Selbstentfaltung des Mitarbeiters,
• möglicherweise ein überforderter Vorgesetzter (qualitativ, quantitativ), was Fehlentscheidungen verursachen kann.
Merkmale des kooperativen Führungsstils
• Der Vorgesetzte beteiligt seine Mitarbeiter am Entscheidungsprozess. Er erwartet von seinen Mitarbeitern eine sachliche Unterstützung.
• Der Vorgesetzte berücksichtigt die Einwände/Anregungen der Mitarbeiter bei seinen Entscheidungen.
• Er delegiert so viel wie möglich und gibt nur die nötigsten Anweisungen. Er berücksichtigt dabei die Fähigkeiten seiner Mitarbeiter und die Tatsache, dass er nicht alles weiß.
• Der Vorgesetzte führt Erfolgskontrollen durch.
• Der Vorgesetzte benötigt keine Statussymbole.
Vorteile des kooperativen Führungsstils
• hohe Motivation
• Entlastung des Vorgesetzten
• Förderung der Mitarbeiter
• sachgerechte Entscheidungen
Welchen Ansatz der Software-Entwicklung berücksichtigt der Rational Unified Process besonders?
Der Rational Unified Process berücksichtigt besonders die objektorientierte Entwicklung.
Definition Personalpolitik
• der Knappheit des Angebots qualifizierter Mitarbeiter; trotz hoher Arbeitslosigkeit fehlt es häufig an qualifizierten Kräften
• der Steigerung von Anforderungen, die durch den technologischen Fortschritt bedingt sind (im DV-Bereich ist es schon seit längerer Zeit äußerst schwierig, Mitarbeiter zu finden, die in der Lage sind, die immer komplexer werdenden Aufgabenstellungen zu lösen)
Aufgaben der Personalpolitik
• Planung des Mitarbeiterbedarfs und Beschaffung der Mitarbeiter,
• Auswahl und Einsatz der Mitarbeiter,
• Förderung der Mitarbeiter im Sinne der Aus- und Weiterbildung,
• Schaffung einer angemessenen Lohn- und Gehaltsgerechtigkeit,
• Schaffung eines angenehmen Betriebsklimas,
• angemessene Berücksichtigung der sozialen Belange der Mitarbeiter.
Unterscheidung Personalplanung
kurzfristige Personalplanung
langfristige Personalplanung
Betrachtung der kurzfristigen Personalplanung
• Altersstruktur
• Krankenstand
• Fluktuation (Wechsel der Mitarbeiter)
Betrachtungspunkte der langrfristigen Personalplanung
• Sollen die Produktionskapazitäten erweitert werden? • Ist mit einschneidenden Rationalisierungsmaßnahmen zu rechnen?
• Wie sehen die Produktionsmethoden in der Zukunft aus? • Welchen Verlauf nimmt die Bevölkerungsentwicklung?
• Wie entwickeln sich die Ausbildungszeiten?
• Wie wirken sich mögliche Arbeitszeitverkürzungen aus?
Hauptaufgabe der Personalauswahl
Die Hauptaufgabe der Personalauswahl ist festzustellen, ob ein Bewerber für eine vorgesehene Position geeignet ist.
Ziel der Personalauswahl
Ziel der Personalauswahl muss es i.d.R. sein, gute, leistungfähige Mitarbeiter langfristig zu gewinnen.
Phasen der Personalauswahl
• Festlegung der Stellenanforderungen
• Erfassung der Bewerber
• Eignungsprüfung/Eignungstest
• Entscheidung über die Einstellung
Definition Motivation
Unter Motivation verstehen wir die Identifikation des Mitarbeiters mit den Unternehmenszielen. Diese Motivation kann mit bestimmten Führungsinstrumenten und Führungsprinzipien verstärkt werden. Deshalb dient eine gute, qualifizierte Mitarbeiterführung immer dem ganzen Unternehmen und trägt zur Verwirklichung der Unternehmensziele bei.
Faktoren des autoritären Führungsstiles
• Der Vorgesetzte trifft seine Entscheidungen ohne den Mitarbeiter und begründet Entscheidungen nicht.
• Den Anordnungen des Vorgesetzten ist widerspruchslos Folge zu leisten, andernfalls drohen Sanktionen.
• Das Verhältnis Vorgesetzter – Mitarbeiter ist distanziert. Der Vorgesetzte gibt nur die Informationen weiter, die der Mitarbeiter zur Arbeitserfüllung benötigt.
• Der Vorgesetzte kontrolliert die Befolgung seiner Anweisungen durch detaillierte Ausführungskontrollen.
• Der Vorgesetzte hat Statussymbole.
Wie wird eine Version im inkrementellen Modell genannt?
Eine Version im inkrementellen Modell wird Build genannt.
Was ist eine besondere Stärke des Spiralmodells?
Das Spiralmodell ermöglicht durch die Risikoanalyse ein schnelles Erkennen möglicher Risiken und eine schnelle Reaktion.
Aktivitäten während der Phasen des
• Planung,
• Analyse,
• Entwurf,
• Implementierung
• Test.
Wann kann das Prototyping zusätzlichen Aufwand bei der Software-Entwicklung bedeuten?
Zusätzlicher Aufwand entsteht vor allem beim Erstellen von „Wegwerf“-Prototypen. Diese Prototypen werden nach dem Einsatz nicht mehr verwendet.
Wofür können Prototypen sehr gut eingesetzt werden?
Prototypen eignen sich sehr gut für die Validierung.
Synonym vollständiger Prototyp
Vollständige Prototypen werden auch Pilotsystem genannt.
Definition unvollständiger Prototyp
Der unvollständige Prototyp setzt nur bestimmte Teile des Systems um – zum Beispiel lediglich einen bestimmten Prozess oder die grafische Benutzeroberfläche. Unvollständige Prototypen lassen sich noch weiter unterteilen in vertikale Prototypen und horizontale Prototypen.
Definition vertikaler Prototyp
Ein vertikaler Prototyp bildet dabei einen bestimmten Prozess durch sämtliche Schichten des Systems ab – zum Beispiel die Ausleihe eines Buchs in unserer Leihbücherei. E
Ein horizontaler Prototyp dagegen bildet eine Schicht des Systems möglichst vollständig nach – zum Beispiel die grafische Oberfläche. Hier wird dann nur demonstriert, wie die Oberfläche aussehen könnte. Die Funktionalität – also zum Beispiel die Reaktion auf einen Mausklick auf eine Schaltfläche – dagegen fehlt.
Schichten eines Software Systems
1. der Präsentation,
2. der Applikation – die Anwendung
3. der Datenhaltung
Definition Präsentation in einem Software System
Zur Präsentation gehört alles, was direkt am Bildschirm passiert – also zum Beispiel die Datenein- und -ausgabe, aber auch die Benutzeroberfläche. Hier erfolgt – wenn Sie so wollen – die Kommunikation zwischen Mensch und Maschine.
Definiton Applikation im Software-System
Zur Applikation gehört die gesamte Logik der Anwendung – also, wenn Sie so wollen, das eigentliche Programm. In der Applikationsschicht erfolgt zum Beispiel die Verarbeitung von Daten durch Berechnungen.
Definition Datenhaltung im Software-System
In der Datenhaltung schließlich erfolgen das Speichern und auch das Abrufen der Daten – meistens über Datenbanken.
Definiton Weg-Werf-Prototyp
Ein „Wegwerf“-Prototyp wird nur zur Demonstration eingesetzt – zum Beispiel, um dem Anwender einen ersten kurzen Eindruck zur vermitteln oder um einem möglichen Kunden eine Vorstellung von der Software zu geben. Nach der Demonstration wird der Prototyp nicht mehr verwendet – er wird „weggeworfen“. Beim „Wegwerf“-Prototyp zählt vor allem di
Synonym Wegwerf-Prototyp
Wegwerf“-Prototypen werden auch Throw-away-Prototypena) genannt. Häufig findet sich auch die Bezeichnung Rapid Prototypingb).
Definition wiederverwendbarer Prototyp
Ein wiederverwendbarer Prototyp schließlich dient zur schrittweisen Entwicklung des vollständigen Systems. Dazu wird in der Regel zunächst ein erster Prototyp erstellt, der einige wenige eindeutig geklärte Basisfunktionen enthält. Dieser Prototyp wird dann von den Anwendern geprüft und beurteilt. Anhand der Beurteilung wird der erste Prototyp verbessert und weiter ausgebaut. Der so entstandene neue Prototyp wird wieder durch die Anwender beurteilt und weiter ausgebaut. So entsteht ein evolutionäres Modell.
Definition Evolution in einem Software System
Eine Evolution ist eine ständig fortschreitende Entwicklung.
Definiiton Inkrement
Inkrement bedeutet so viel wie Zuwachs.
Definiiton Build im inkrementellen System
Hier werden verschiedene aufeinander aufbauende Versionen des Produkts – Build genannt5 – hintereinander entwickelt und ausgeliefert. Den Ausgangspunkt bilden dabei wie beim evolutionären Prototyping eindeutig geklärte Basisfunktionen. Diese Basisfunktionen werden dann in jeder folgenden Ausbaustufe weiter verfeinert beziehungsweise angepasst.
Ablauf Spiralsystem
Die Spirale wird von innen nach außen im Uhrzeigersinn durchlaufen. Der Startpunkt befindet sich links oben im Inneren der Spirale.
Schritte im Spiralsystem
Im ersten Schritt (in der Abbildung links oben) werden jeweils die Ziele und Anforderungen definiert, verschiedene Lösungsvarianten ermittelt sowie die Nebenbedingungen und Einschränkungen ermittelt. Zu den Nebenbedingungen und Einschränkungen gehören zum Beispiel die Kosten und Termine.
Im zweiten Schritt (in der Abbildung rechts oben) werden die verschiedenen Lösungsvarianten im Rahmen einer Risikoanalyse kritisch bewertet. Hier sollen mögliche Risiken bei der Entwicklung möglichst schnell sichtbar gemacht werden und geeignete Maßnahmen zur Beseitigung der Risiken getroffen werden. Ein wichtigstes Hilfsmittel bei der Risikoanalyse sind Prototypen.
Im dritten Schritt (in der Abbildung rechts unten) erfolgen die konkrete Umsetzung und die Prüfung der Umsetzung. Was genau in diesem dritten Schritt geschieht, hängt vom Fortschritt des Projekts ab. Zu Beginn wird zum Beispiel ein Vorgehensmodell ausgewählt (in der Abbildung innen im rechten unteren Bereich), später erfolgen hier zum Beispiel die Systemspezifikation oder der Komponententest.
Im vierten Schritt (in der Abbildung links unten) werden die nächsten Phasen vorbereitet und geplant.
Definition Rational Unified Process
Der Rational Unified Process6 – kurz RUP – ist ein Vorgehensmodell für die objektorientierte Software-Entwicklung.
Phasen des Rational Unified Process
• die Vorbereitung, in der vor allem die Anforderungen an das System erarbeitet werden,
• die Ausarbeitung, in der ein Entwurf für die Umsetzung der Anforderungen erstellt wird,
• die eigentliche Umsetzung – die Konstruktion
• die Einführung des fertig gestellten Systems.
Unterscheidung Prototyp
• der vollständige Prototyp,
• der unvollständige Prototyp,
• der „Wegwerf“-Prototyp
• der wiederverwendbare Prototyp
Definition vollständige Prototyp
Der vollständige Prototyp bildet alle wesentlichen Funktionen des Systems vollständig ab. Er wird damit quasi zur Grundlage für die Systemspezifikation. Da der Aufwand und damit die Kosten für die Erstellung allerdings sehr hoch sind, werden vollständige Prototypen nur sehr selten eingesetzt.
Welche Aufgaben übernehmen die Phasen auf der rechten Seite des V-Modells vor allem?
Sie dienen zur Prüfung der entsprechenden Phasen auf der linken Seite des Modells.
Definiton Prototype
Prototypen sind – allgemein betrachtet – erste Ausprägungen eines Produktes, die wesentliche Eigenschaften des späteren Endprodukts darstellen. So werden zum Beispiel in der Automobilbranche Prototypen gebaut, um das Fahrverhalten eines Autos unter realen Bedingungen zu testen oder einfach nur, um das Auto auf einer Messe präsentieren zu können.
Definition Prototyping
Das Erstellen eines Prototyps wird Prototyping genannt
Warum ist die Analysephase bei allen sequenziellen Modellen besonders wichtig?
Die Analysephase liefert die Vorgabe für alle weiteren Phasen. Werden hier Fehler gemacht, sind in der Regel aufwendige Korrekturen erforderlich.
Was ist der entscheidende Nachteil des Software Life Cycle-Modells?
Es ist keine Rückkoppelung zwischen den Phasen vorgesehen. Bei Fehlern in einer Phase muss im Extremfall ein neuer Zyklus begonnen werden
Welche Phasen dürfen im Wasserfallmodell wiederholt werden?
Es darf nur die Phase wiederholt werden, die unmittelbar vor der aktuellen Phase durchlaufen wurde. Eine Rückkoppelung über mehrere Phasen ist nicht vorgesehen.
Derfiniiton Problemstellung im Software Life Cycle-Modell
Die Problemstellung gibt den Anstoß für die Entwicklung. Hier wird beschlossen, dass ein Prozess durch Software unterstützt beziehungsweise abgelöst werden soll.
Definition Betrieb und Wartung im Software Life Cycle-Modell
In der letzten Phase – Betrieb und Wartung – wird die Software schließlich eingesetzt. Falls dabei noch Fehler auftreten, werden sie durch die Wartung behoben.
Definition Wasserfallmodell
Das Wasserfallmodell geht ebenfalls von mehreren Phasen aus, die nacheinander durchlaufen werden. Es handelt sich also – wie beim Software Life Cycle-Modell – ebenfalls um ein sequenzielles Vorgehen.
Definition Iteration
Eine Wiederholung wird im Fachjargon auch Iteration genannt.
Anwendungsgruppe Beta-Test
Bei diesem Beta-Test erfolgen die Prüfungen nicht mehr durch die Entwickler, sondern durch eine ausgewählte Gruppe von Anwendern. Wenn Sie so wollen, wird hier die Praxistauglichkeit der Software getestet.
Phasen des Wasserfallsystems
Problemanalyse
Systemspezifikation
Grobentwurf
Feinentwurf
Implementierung
Integration
Installation
Betrieb und Wartung
Phasen des Entwicklungsprozess im V-Modell
Anforderungsdefinition
Modulimplementation
Phasen der Testung im V-Modell
Abnahmetest
Systemtest
Integrationstest
Modultest
Definition Validierung
Bei der Validierung wird geprüft, ob ein Ergebnis auch mit einem Sachverhalt übereinstimmt.
Definition Verifikation
Bei der Verifikation wird die Richtigkeit eines Ergebnisses geprüft.
Definition Implementierung und Komponententest im Software Life Cycle-Modell
In der Phase Implementierung und Komponententest werden die einzelnen Komponenten technisch umgesetzt und dann zunächst getrennt getestet. Hier erfolgt also die eigentliche Programmierung
Definition Systemtest im Life Cycle-Modell
Im Systemtest wird dann das System unter möglichst realistischen Bedingungen insgesamt getestet. Hier wird also geprüft, ob die einzelnen Komponenten korrekt zusammenarbeiten.
Definition Problemanalyse im Software Life Cycle-Modell
Bei der Problemanalyse wird festgehalten, welche Aufgaben die Software grundsätzlich erledigen soll. Ausgangspunkt sind dabei die Wünsche der Anwender. Außerdem erfolgt hier eine erste grobe Prüfung der Wirtschaftlichkeit – also „Lohnt sich die Entwicklung überhaupt?“
Definition Systemspezifikation im Software Life Cycle-Modell
In der Systemspezifikation werden die noch groben Angaben zu den Aufgaben der Software konkretisiert. Hier wird also detailliert der genaue Leistungsumfang festgelegt.
Definition System- und Komponentenentwurf im Software Life Cycle-Modell
Beim System- und Komponentenentwurf geht es dann darum: „Wie soll die Funktionalität erreicht werden?“ Dazu wird zunächst das System insgesamt betrachtet und dann in kleinere Teile – die Komponenten – untergliedert. Das System wird also strukturiert, hierarchisiert und modularisiert.
Definition Software Life Cycle-Modell
Das Software Life Cycle-Modell war eines der ersten Vorgehensmodelle für die Software-Entwicklung überhaupt. Es unterteilt die Erstellung in insgesamt sechs Phasen, die strikt hintereinander durchlaufen werden. Die nächste Phase darf erst dann begonnen werden, wenn die vorlaufende Phase abgeschlossen ist.
Schritte des Software Life Cycle-Modell
Problemstellung
System- und Komponentenentwurf
Implementierung und Komponententest
Definiion Software-Lebenszyklus
Alle Phasen zusammen in ihrer zeitlichen Abfolge werden auch als Software-Lebenszyklus oder Software Life Cyclea) bezeichnet. Der Software-Lebenszyklus ist also die Zeitspanne, in der ein Softwareprodukt entwickelt und eingesetzt wird – bis zum Ende seiner Benutzung.
2 Phasen des Code-and-Fix-Zyklus
1. Der Programmierer erstellt die Anweisungen und lässt sie übersetzen.
2. Er testet, ob die Anweisungen das gewünschte Ergebnis liefern.
Synonym des r Code-and-Fix-Zyklus
Build-and-Fix-Zyklus
Phasen der Software-Entwicklung
• die Analyse („Was soll die Software machen?“),
• der Entwurf („Wie soll die Software die Aufgaben lösen?“),
• die Implementierung1 – die eigentliche Programmierung,
• der Test des Systems sowie
• Betrieb und Wartung
Nennen Sie die Prinzipien zur Auflösung komplexer Systeme. Beschreiben Sie auch kurz die wichtigsten Prinzipien.
Zu den Prinzipien gehören • die Voraussicht,
• die Abstraktion – das Konzentrieren auf das Wesentliche,
• die Strukturierung,
• die Modularisierung – die Zerlegung in kleinere Funktionseinheiten – und
• die Hierarchisierung. Hier werden die einzelnen Elemente über mehrere Ebenen in eine Beziehung gesetzt.
Was umfasst der Begriff „Methode“ im Software Engineering?
Der Begriff Methode im Software Engineering umfasst neben dem Vorgehen auch Konzepte und Notationen
Was unterscheidet die Top-Down- und die Bottom-Up-Methode?
Der wesentliche Unterschied liegt in der Richtung. Top-Down arbeitet von oben nach unten – also vom Abstrakten zum Konkreten. Bottom-Up dagegen arbeitet von unten nach oben – also vom Konkreten zum Abstrakten.
Wofür steht der Begriff CASE?
CASE steht für Computer Aided Software Engineering – die computergestützte Software-Technik.
Prinzipien für eine gelungene Softwaremanagement
• die Voraussicht,
• die Abstraktion
• die Modularisierung
• die Hierarchisierung.
Fragestellung Abstraktion Prinzipien
• Was ist überhaupt das Wesentliche?
• Worauf muss besonders geachtet werden?
• Was kann vernachlässigt werden?
Definition Strukturierung
Mit dem Prinzip der Strukturierung wird ein Problem in mehrere kleinere Teilprobleme aufgelöst. Dazu werden die Modularisierung und die Hierarchisierung verwendet.
Definition Moudlisierung
Bei der Modularisierung wird ein System in einzelne strikt voneinander getrennte Funktionseinheiten zerlegt – die Module. Jedes Modul kann weitgehend für sich allein seine spezielle Teilaufgabe bearbeiten. Die Kommunikation der Module erfolgt dabei über fest definierte Schnittstellen.
Definition Hierarchisierung
Bei der Hierarchisierung schließlich werden die einzelnen Elemente eines Systems – zum Beispiel die Module – über mehrere Ebenen in eine Beziehung gebracht. Dabei entsteht häufig eine baumartige Struktur.
Bedeutung Top-Down und Bottom-Up
Bei der Auflösung komplexer Systeme kann man grundsätzlich auf zwei verschiedene Arten vorgehen:
• vom Abstrakten zum Konkreten oder
• vom Konkreten zum Abstrakten. Nimmt man das höchste abstrakte Niveau als Spitze – als Top – und das konkreteste Niveau als Boden – als Bottom, kann man die Wege von oben nach unten (Top-Downa)) und von unten nach oben (Bottom-Upb)) einschlagen.
Definition Dekompension
Bei der Top-Down-Methode erfolgt durch schrittweise Zerlegung in einzelne Teilaufgaben über mehrere Ebenen eine immer feinere Aufgliederung, bis eine weitere Zerlegung nicht mehr sinnvoll ist. In jeder Ebene erfolgt dabei eine weitere Abstraktion der vorhergehenden Ebene. Die Zerlegung wird auch Dekomposition genannt.
Definition Synthese
Die Bottom-Up-Methode schlägt genau den entgegengesetzten Weg ein. Von einer möglichst konkreten Darstellung wird nach oben gegangen. Dabei werden die Teile einer Ebene zu einem Teil der nächsthöheren Ebene zusammengefügt. Dieses Zusammenfügen einzelner Teile zu einem Ganzen wird auch Synthese genannt.
Defintion Notation
Eine Notation ist ein System zur Darstellung von Informationen über Symbole und/ oder Texte.
Definition Werkzeuge
Die Werkzeuge – im Fachjargon auch Tools10 genannt – sollen die Software-Entwicklung unterstützen – zum Beispiel, indem sie den Entwickler von Routinearbeiten entlasten oder ihm die Arbeit erleichtern. Bei sehr vielen dieser Werkzeuge handelt es sich selbst ebenfalls um Software.
Unterscheidung Werkzeuge
Allgemeine Werkzeuge
CASE WErkzeuge
Definition allgemeine Werkzeuge des Software Engeneering
n. Die allgemeinen Werkzeugesind Hilfsmittel, die nicht nur für die Software-Entwicklung eingesetzt werden. Dazu gehören beispielsweise eine Textverarbeitung zum Erfassen und Bearbeiten von Dokumenten und ein Präsentationsprogramm zur Darstellung von Sachverhalten.
Definition CASE-Werkzeuge
Die CASE-Werkzeuge(Computer Aided Software Engineering11) dagegen unterstützen direkt die Software-Entwicklung – zum Beispiel durch die Erstellung und Bearbeitung von Diagrammen oder durch Hilfestellungen bei der Modellierung. Dabei unterstützt ein Werkzeug in der Regel auch nur eine bestimmte Methode beziehungsweise Teilbereiche der Methode.
Definiton Monoliithisch
Monolithisch bedeutet eigentlich „aus einem Stein bestehend“. In der Informationstechnik ist damit aber eine Struktur aus mehreren Komponenten gemeint, die nicht zu trennen ist.
Mögliche Schwierigkeiten in der Software Entwicklung
• Es gibt kaum Grenzen für die Einsatzmöglichkeiten von Software.
• Es gibt keine brauchbaren Modelle für die Entwicklung.
• Es fehlen verbindliche Standards für die Entwicklung
• Software lässt sich scheinbar sehr leicht ändern.
• Software muss in vielen verschiedenen Umgebungen arbeiten.
Software muss sich an Änderungen der Umgebung anpassen können.
• Bei der Entwicklung müssen Kreativität und feste Vorgaben kombiniert werden.
• Software lässt sich nicht am Fließband entwickeln
• Es gibt keine Ersatzteile für Software.
Software muss häufig gegen Widerstände der Anwender kämpfen.
Wichtige Faktoren Anforderungen an die Software
• Die Kommunikation zwischen Anwendern und Entwicklern muss eindeutig und ohne Missverständnisse erfolgen.
• Die Anforderungen an das System müssen so exakt wie eben möglich definiert und dokumentiert werden.
• Ein komplexes System muss in ein handhabbares Modell abgebildet werden.
• Ein komplexes System muss in mehrere Teilsysteme zerlegt werden.
• Die Zusammenarbeit dieser Teilsysteme muss exakt definiert werden.
• Es sollte von vornherein darauf geachtet werden, dass möglichst viele kleine Teile des Systems in anderen Software-Produkten wiederverwendet werden können.
• Das System muss möglichst einfach zu pflegen sein. Das setzt wiederum eine möglichst genaue und vor allem verständliche Dokumentation voraus.
• Das System sollte sich möglichst einfach ändern und erweitern lassen.
• Das System muss in möglichst vielen Umgebungen arbeiten können.
• Die Entwicklung und auch die Wartung müssen durch feste Vorgehensweisen und klar definierte Zuständigkeiten koordiniert werden. Das erfordert eine detaillierte Projektorganisation und ein umfangreiches Projektmanagement.
Wichtige Fähigkeiten Softwaretechniker
• ausgeprägte kommunikative Kompetenzen,
• analytische Denkweise,
• sehr gute Abstraktionsfähigkeiten,
• hohe Flexibilität, • Kreativität,
• Kenntnisse einschlägiger Methoden zur Dokumentation komplexer Vorgänge, •
Voraussicht
• ausgeprägte Fähigkeiten zur Teamarbeit.
Nennen Sie mindestens fünf typische Besonderheiten von Software im Vergleich zu anderen Produkten.
• Die vollständige Beschreibung der Anforderungen ist schwierig.
• Es gibt keine brauchbaren Modelle.
• Es fehlen verbindliche Standards.
• Software muss in vielen unterschiedlichen Umgebungen arbeiten. • Software muss sich an Änderungen der Umgebung anpassen können.
Schritte bei der Entwicklung einer Software
1. Ermittlung und Formulierung des Problems,
2. Analyse des Problems
3. Suche nach Lösungen
4. Bewertung der Lösungen und Auswahl einer geeigneten Lösung
5. Umsetzung der Lösung
Definitonen Software Engineering
„Software Engineering ist die Entwicklung, die Pflege und der Einsatz qualitativ hochwertiger Software unter Einsatz von wissenschaftlichen Methoden, wirtschaftlichen Prinzipien, geplanten Vorgehensmodellen, Werkzeugen und quantifizierbaren Zielen.“ (Kahlbrandt)
„Software Engineering: das ingenieurmäßige Entwerfen, Herstellen und Implementieren von Software sowie die ingenieurwissenschaftliche Disziplin, die sich mit Methoden und Verfahren zur Lösung der damit verbundenen Problemstellungen befasst.“ (Brockhaus Enzyklopädie)
„Softwaretechnik: Fachgebiet der Informatik, das sich mit der Bereitstellung und systematischen Verwendung von Methoden und Werkzeugen für die Herstellung und Anwendung von Software beschäftigt.“ (Hesse und andere)
„Software-Technik: Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software-Systemen. Zielorientiert bedeutet die Berücksichtigung z. B. von Kosten, Zeit und Qualität.“ (Balzert, Lehrbuch der Software-Technik, Band 1).
Definition Quellcode
Der Quellcode sind die Anweisungen einer Programmiersprache für die Ausführung eines Programms.
Warum verursachten die ersten Computerprogramme kaum Probleme?
Es wurden bekannte Lösungswege in eine Form umgesetzt, die für den Computer zu verarbeiten war. Komplett neue Lösungen wurden kaum erstellt.
Die Anforderungen waren aus heutiger Sicht nicht sonderlich komplex.
Der Programmierer war häufig identisch mit dem Anwender. Damit waren Bedienfehler weitgehend ausgeschlossen.
Die Programme wurden vergleichsweise selten eingesetzt.
Was beschreibt der Begriff „Softwarekrise“?
Der Begriff „Softwarekrise“ beschreibt die Probleme, die entstanden, als Computerprogramme immer komplexer wurden und die Anzahl der Fehler dramatisch zunahm.
Warum hat die Bedeutung des Software Engineerings in den letzten Jahrzehnten immer weiter zugenommen?
In den letzten Jahren hat der Computereinsatz bei Unternehmen und auch bei Privatpersonen immer weiter zugenommen. Software hat damit eine immer größere Bedeutung bekommen.
Definition Software
Zwei große Formen der Software
die Systemsoftware
die Anwendungssoftware
Gebiete der Systemsoftware
Betriebssystem
Dienstprogramme
Entwicklungssoftware
Gebiete der ANwendungssoftware
Standardprogramme
Branchenprogramme
Welches Buch und welcher Autor sorgte für größeres Interesse an der agilen Software-Entwicklung?
„Extreme Programming Explained“ von Kent Beck (erschienen 1999).
Wann und von wem wurde das agile Manifest verfasst?
2001 in Utah von 17 Personen, darunter Kent Beck, Ward Cunningham und Ron Jeffries.
Was sind die vier zentralen Werte des agilen Manifests?
Individuen und Interaktionen über Prozesse und Werkzeuge
Funktionierende Software über umfassende Dokumentation
Zusammenarbeit mit dem Kunden über Vertragsverhandlung
Reagieren auf Veränderung über das Befolgen eines Plans
Nenne fünf der zwölf agilen Prinzipien in eigenen Worten.
Kundenzufriedenheit durch regelmäßige Software-Lieferung.
Offenheit für Änderungen – selbst spät in der Entwicklung.
Funktionierende Software als Fortschrittsmaßstab.
Selbstorganisierte Teams sind effektiver.
Einfachheit als Prinzip zur Maximierung von Effizienz.
Last changeda month ago