Inhaltsverzeichnis

Softwareentwicklung

Info Informatik Ingenieurinformatik
Modultafel PO2013 PO2021
Moodlekurs Vorlesung Seminar
Website
Regelstudiensemester

Material

Übung

Es gibt eine Hausarbeit zum Fach, die dir ermöglicht, Bonuspunkte zu sammeln. Die Abgabe kann bis zu 10% Bonuspunkte ( prozentual zur maximalen Klausurpunktzahl) erbringen. Diese werden aber nur bei Bestehen der Prüfung drauf addiert.

Sowohl die Übungsaufgaben als auch weitere Informationen zur Hausarbeit sind im Moodle zu finden.

Klausur

WS 19/20

Als Hilfsmittel ist ein einseitig handbeschriebener A4 Zettel erlaubt.

Zusammenfassung

Einführung in die Softwaretechnik

1. Was versteht man unter Software? Warum ist Software so schwer zu entwickeln?

2. Erläutern Sie die Ursachen für die s.g. Softwarekrise?

3. Ziel des Softwaretechnik ist die ingenieurmäßige Softwareentwicklung! Welche Basiskonzepte wurden von den Ingenieuren übernommen?

4. Was versteht man unter dem Software-Lebenszyklus? Wie kann man die Stilllegung einer langlebigen Software möglichst vermeiden?

5. Was ist der Fokus der vier großen Teildisziplinen der Softwaretechnik? 4 Teilsysteme

→ vier eng verzahnte Prozesse


Vorgehensmodelle

1. Was ist der Unterschied zwischen einem Vorgehensmodell und einem Prozessmodell? Wie wird eine Prozessmodell festgelegt?

2. Was ist das Prinzip bei sequenziellen, phasenorientierten Vorgehensmodellen? Nennen Sie Vor- und Nachteile!

→ beides in Praxis unrealistisch

Erklären Sie den Unterschied zwischen leicht- und schwergewichtigen Vorgehensmodellen? Nennen Sie Beispiele! Was verstehen Sie unter „Tailoring“ von Prozessen? (im aktuellen Script (2010/11) weggefallen)

3. Wodurch erweitert das V-Modell das Wasserfallmodell? Was ist das besondere am V-Modell XT?

4. Erläutern Sie die prinzipiellen Phasen und Produkte eines Softwareentwicklungsprozesses!

5. Welche grundlegenden Probleme treten in den Phasen der Softwareentwicklung auf und wie kann man ihnen prinzipiell begegnen?

6. Was ist die Grundidee beim Prototyping? Welche Vorteile bringt das Protoytyping?

Grundidee Prototyping:

7. Welche Idee wird mit der evolutionären Softwareentwicklung verfolgt? Welche Qualitätsmerkmale sind bei evolutionären Systemen besonders zu beachten? Was ist der Unterschied zwischen Iteration und Inkrement?

Idee:

Unterschied Iterativ / Inkrementell:

Qualitätsmerkmale: (der nächste bitte!) Versuch einer Antwort:

8. Neben dem V-Modell als Standard für Bundesbehörden hat sich der RUP-Prozess als Industriestandard etabliert. Erläutern Sie die Besonderheiten des RUP-Prozesses?

9. Wodurch zeichnet sich das agile XP-Vorgehen aus?

eXtreme Programming ist eigentlich kein Vorgehensmodell sondern eine Sammlung von Arbeitsprinzipien:

XP-Postulate:

10. Welche zwei Besonderheiten sind beim Objektorientierten Vorgehen zu beachten?

1. Spezifikation, Entwurf, Implementierung wachsen zusammen

2. Starker Fokus auf Wiederverwendung

—-

Anforderungsanalyse

1. Erläutern sind Ziel-, Aufgaben und Ergebnis der groben und feinen Anforderungserfassung! Wie ist die Verantwortung verteilt? (Anmerkung: Ist vllt'n weng zu ausführlich geworden, aber ihr könnt euch ja rausschreiben was ihr braucht und Aufgabe 2 ist auch gleich mit dabei ;) ) Grobe Anforderungsanalyse: Ziel: Entscheidung Projektdurchführung ja/nein

Aufgabe:

1. Voruntersuchung des Zielprodukt's (Grobe Produktanalyse)

2. Machbarkeitsanalyse

⇒ grober Projektplan und Kosten =⇒ Kooperation Entwickler ↔ Projektmanagement Ergebnis: Lastenheft (beinhaltet:)

⇒wird im Pflichtenheft konkretisiert feine Anforderungsanalyse: Ziel:

⇒ liefern Produktspezifikationen Aufgaben: 1. Konkretisierung der Anforderungen

⇒ Übergang zur/zum Synthese/Grobentwurf ⇒ Kooperation Analyten, Auftraggeber 2. Systemspezifikation / Produktdefinition

⇒ Kooperation Analysten/ Entwickler/ Projektmanagement Ergebnis: Pflichtenheft (=Verfeinerung des Lastenhefts):

2. Welche Informationen sind in der Regel in einem Lasten- bzw. Pflichtenheft mindestens enthalten? Siehe Aufgabe 1!!!

3. Die Personalkosten bilden den größten Posten bei der Bestimmung der erwarteten Projektkosten. Wie geht man bei der Aufwandsschätzung prinzipiell vor? Welche Schätzverfahren kennen Sie? Erläutern Sie das Teufelsquadrat nach Sneed!

4. Geg. ist eine geschätzte Programmgröße von 16000 LOC. Schätzen Sie den Personalbedarf und die Entwicklungszeit!

Lines of Code Methode:

Faustregel für MM:

Lösung:

5. Passen Sie die Aufwandsschätzung LH Bild 3.1. an, wenn zusätzlich bei einer Bestellung das Kundenpasswort geprüft und Waren bei einem Zulieferer abgerufen werden können!

6. Bei der Feinanalyse werden Anforderungen vertragsrelevant konkretisiert! Welche kritischen Aspekte sind bei der Anforderungserfassung zu beachten? 1. Korrektheit, Vollständigkeit und Widerspruchsfreiheit einer Anforderung:

2. Stabilität von Anforderungen, Anforderungsänderungen

3. Technische Realisierbarkeit von Anforderungen

7. Wie werden Softwareanforderungen prinzipiell ermittelt? 1. Use Case Ablauf analysieren 2. das System analysieren –> funktionale Requirements 3. der Kunde äußert Qualitätswünsche –> nichtfunktionale Anforderungen 4. Die Laufzeitumgebung oder rechtliche Aspekte können Anforderungen ergeben (z.B. Gesundheitskritisch, Datenschutz) –> Constraints 5. Anforderungen in muss, kann und soll klassifizieren und wenn nötig priorisieren. 6. Glossar anlegen und Anforderungen nochmals validieren. 7. Anforderungen in das Pflichtenheft eintragen

8. Wie können Anforderungen halbformal beschrieben werden? Welche Rolle spielt das Glossar? Halbformal:

Textschablonen:

Glossar:

Wichtigste bestandteile:

9. Was ist das Analysemodell? Welche Rolle spielt dieses bei bei der Anforderungsanalyse?

10. Im Beispiel Zimmervermietung (siehe Vorlesung) verlangt der Auftraggeber plötzlich, das Kunden sich über ein Passwort anmelden sollen. (Es gibt bereits implementierte Use Cases für „PW vergessen“ und „Neukunde werden“! Modifizieren Sie das Use Case Diagramm und ermitteln Sie die funktionalen SW-Requirements und permanente Daten für den Normalbetrieb für das Pflichtenheft) [http://www.tu-ilmenau.de/fakia/fileadmin/template/startIA/prozessinf/typo3_neu_geschuetzt/swt/SWTAufgabe_10_Kap_3.pdf Musterlösung] BN und PW sind die üblichen


Systemanalyse

1. Erläutern Sie die Hierarchieidee der SA? Was sind die Aufgaben und Besonderheiten des Kontextdiagramms? Kontextdiagramm:

Hierarchieidee:

2. Was wird in einem Flussdiagramm im Vergleich zum DFD zusätzlich dargestellt?

3. Welche Rolle spielt das Data- bzw. Requirements Dictionary in den Phasen der Softwareentwicklung und welche Informationen werden wie abgelegt?

4. In welcher Weise werden Kontrollflüsse im DFD bzw. FD berücksichtigt?

5. Wann und wie finden die Konzepte ERM und Entscheidungstabelle ET in der SA ihre Anwendung?

6. Wie erfolgt eine Kontrollflussspezifikation Cspec bei RT/SA?

7. Was wird durch die Prozessspezifikation Pspec beschrieben und wie können prinzipiell Prozesse gesteuert werden?

8. Modellieren Sie ein Code-Schloss als Mealy-Automat. Um das Schloss zu öffnen müssen drei Ziffern in der richtigen Sequenz eingegeben werden.

9. Ist die nachfolgende Tabelle eine Ein- oder Mehrtrefferentscheidungstabelle? Prüfen Sie die Vollständigkeit! Kann man die Tabelle optimieren?

10. Versuchen Sie die Lösung zur Aufgabe 10 zu Kap. 4, die in den Arbeitsmaterialien vorgegeben ist, nachzuvollziehen! [http://www.tu-ilmenau.de/fakia/fileadmin/template/startIA/prozessinf/typo3_neu_geschuetzt/swt/SWTAufgabe_10_Kap4.pdf Musterlösung] BN und PW sind die üblichen

11. Erläutern Sie die Grundidee der UML im Zusammenhang mit den Begriffen Struktur und Verhalten!

12. Ordnen Sie die UML-Analysediagramme den Aktivitäten und Teilprodukten der Softwareentwicklung zu!

Welche Grundsatzentscheidungen müssen getroffen werden? Ziel: Das Fachmodell unter Beachtung auch nichtfunktionaler Anforderungen und Randbedingungen auf eine Softwarearchitektur abbilden. Aufgaben:

Grundsätzlich muss man entscheiden ob der Entwurf strukturiert oder objektorientiert erfolgen soll.

3. Welche Rolle spielen Strukturdiagramme beim Entwurf?

4. Erläutern Sie Gemeinsamkeiten und Unterschiede beim strukturierten und modularen Entwurfsvorgehen! Gemeinsamkeiten:

Unterschiede:

5. Das typische objektorientierte Vorgehen basiert auf der Zerlegung des Systems in Subsysteme und dem darauf folgenden Feinentwurf der Subsysteme. 5.a.Was ist bei der Zerlegung in Subsysteme zu beachten?

5.b.Welche Wiederverwendungskonzepte können eingesetzt werden

6. Architekturmuster bieten Lösungskonzepte für ähnliche Anwendungen. Nennen Sie Ihnen bekannte Architekturmuster und deren Anwendungsbereich!

7. Erklären Sie die Idee der MVC-Architektur! Model View Controller (MVC)

8. Erläutern Sie den Unterschied der Wiederverwendung von Klassen bzw. Frameworks! Klassenbibliotheken:

Frameworks:

9. Erläutern Sie die Anwendung von abstrakten Klassen, Knotenklassen und Schnittstellenklassen bei Integration von Klassen? Knotenklassen und Schnittstellenklassen sind die Möglichkeiten abstrakte Klassen zu nutzen. Knotenklassen dienen dazu Methoden mit vorgegebener Schnittstelle für die erbenden Klassen festzulegen. Schnittstellenklassen verbinden Methodenimplementierer und Methodennutzer indem sie eine Schnittstellenmethode implementieren über welche die beiden „kommunizieren“ können.

10. Was beschreiben Entwurfsmuster und wo können Sie eingesetzt werden?

11. Erläutern Sie die Merkmale und die Anwendung von Komponenten! Komponenten sind wiederverwendbar, vorgefertigt, kapseln eine gewisse Funktionalität (Klasse, Klassenverbund oder ganzes Subsystem) und werden als ganze Einheit über Schnittstellen genutzt. Komponenten dienen der Wiederverwendung bei ähnlichen Anwendungen.


Implementierung und Wartung

1. Nennen Sie Ziel, Aufgaben und Ergebnis der Implementierung!

2. Welche Prinzipien sind bei der Implementierung zu befolgen? Was kann dabei Unterstützung leisten?

3. Nennen Sie die Aufgaben der Softwarewartung?

4. Warum ist ein Änderungsmanagement notwendig? Welche Aufgaben hat das Änderungsmanagement?

5. Erläutern Sie den Zusammenhang zwischen der Änderung einer Software, dem Re-Engineering bzw. Restructuring und dem Architekturzerfall?


Projektmanagement

1. Erläutern Sie die Phasen des Projektmanagements (Ziele und Ergebnisse) und den Bezug zum Softwareentwicklungsprozess!

2. Welche allgemein auftretenden Risiken sind bei einem ITProjekt zu beachten?

3. Welcher Zusammenhang besteht zwischen Risiko, Gewinn und Verlust?

4. Wie erfolgt prinzipiell die Festlegung der Projektstruktur? Welche Aspekte werden in welcher Reihenfolge geplant?

5. Erläutern Sie den Regelkreis zur Projektsteuerung! Wieso bezeichnet man die Planung eines Softwareprojektes als iterativ? * Ist-Daten erfassen → Kosten, Termine, Qualität (Berichte, Reviews) * Ist-Soll-Datenvergleich → aktueller Projektplan * Regelmaßnahmen ableiten → Maßnahmenplan * Plankorrektur → angepasster Projektplan

6. Wenden Sie die COCOMO II-Methode für 190 UFP in JAVA zur Aufwandsschätzung an für eine Anwendung im Versicherungswesen und bewerten Sie Ihr Ergebnis!Randbedingungen: a. sie haben ein erfahrenes Team, aber ihre zwei besten Programmierer sind ausgefallen, dafür sind ihre Analysten Spitze b. sie haben bereits für Versicherungen einige kleine Projekte bearbeitet c. die Anwendung soll in die AG-eigene Architektur integriert werden, die einer Schichtenarchitektur entspricht d. an die Zuverlässigkeit werden sehr hohe Anforderungen gestellt Benötigte Formeln: 4 empirische Konstanten nach Böhm: A=2.94, B=0.91, C=3.67, D=0.28 [Formel] Size=190*53=10070 SLOC=10,07 KSLOC Erfahrung SF1=2 Flexibilität SF2=1 Teamstärke SF3=2 Architekturkompetenz SF4=3 Prozessreife SF5=2 Summe=10 E=0.91+0.01*10=1.01 EM1: RCPX (RELY 6, DATA 6, sonst 3) 1.91 EM2: PERS (ACAP 5, PCAP 3, PCON 2) 0.83 EM3: PREX (AEXP 4, PEXP 4, LTEX 3) 0.87 Produkt=1.38 MM=2.94*10.07^1.01*1.38=41.8 timeTodevelop=TDEV=C*MM^F F=D+0.2(E-B)=0.3 TDEV=3.67*41.8^0.3=11.25 Monate

7. Erläutern Sie den Unterschied zwischen konstruktiven und analytischen Maßnahmen zur Qualitätssicherung! Nennen sie Beispiele!

8. Nennen Sie Voraussetzungen und Testaspekte für die Phasen im Testprozess!

9. Welche Anforderungen werden an Testfälle gestellt?

10. Geg. ist die Spezifikation einer Modulfunktion: Für Eingabewerte im Bereich von 100-200 soll die definierte Modulfunktion ausgeführt werden und das Resultat ausgegeben werden, ansonsten Fehlermeldung! Geben Sie Testfälle für den Black-Box-Test an!