Software Engineering 1 - Klausur Flashcards
Nenne die 3-Schichten-Architektur von oben nach unten!
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
GUI/Benutzeroberfläche | Applikationslogik | Persistenzschicht
Nenne die Aufgabe der GUI/Benutzeroberfläche innerhalb der 3-Schichten-Architektur.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
Die GUI/Benutzeroberfläche ist der Teil auf dem der Anwender agiert. Jener kapselt sich vom Anwendungskern ab.
Nenne die Aufgabe der Applikationslogik innerhalb der 3-Schichten-Architektur.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
In der Applikationslogik liegt die gesamte fachliche Logik des Systems.
Nenne die Aufgabe der Persistenzschicht innerhalb der 3-Schichten-Architektur.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
In der Persistenzschicht liegt der technische Teil des Systems, z.B. die Datenbank.
In welcher Schicht der 3-Schichten-Architektur liegen die fachlichen Komponenten.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
Die fachlichen Komponenten liegen in der Applikationslogik, also der 2. Schicht von oben.
Was sind die Vorteile der Architektur in ein 3-Schichten-Modell?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
-Die flexible Austauschbarkeit: Es ist somit z.B. möglich, dass die GUI einfach ausgetauscht wird, da diese unabhängig von der Applikationslogik oder der Pesistenzschicht ist.
Was testet ein Integrationstest?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
Ein Integrationstest testet das Zusammenspiel von verschiedenen Komponenten.
Welche typischen Phasen/Aktivitäten gibt es in einem Softwareprojekt? Erläutern Sie die Phasen und die Tätigkeit kurz.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Analyse/Spezifikation -> Planung, Ist-Analyse, Soll-Analyse, Verhandlung mit dem Kunden, Lastenheft, Pflichtenheft
- Entwurf -> (Wie soll die Architektur/Lösung konzipiert werden?)
- Implementation -> Implementation/Programmierung des Projektes
- Test/Debugg -> Test aller Arten, Fehlerbehebung
- Installation -> Installation/Einführung des Systems beim Kunden
- Wartung -> Wartung des Systems
Nennen Sie drei Möglichkeiten, wie in der Analysephase eines Projektes Kundenanforderungen durch einen Analysten herausgefunden werden können.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- gezieltes Nachfragen nach Wünschen des Kunden
- Workshops mit dem Kunden(Stakeholdern)
- Ist-Analyse
Beschreiben Sie typische Aufgaben einer Fassade in der Quasar-Standardarchitektur.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
??????????????
Warum entstehen gerade in der Softwareentwicklung so schnell Bugs/Fehler?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Software kann man nicht direkt wahrnehmen
- Komplexitäten sind schwer einzuschätzen
- Kopien und Originale sind völlig gleich (Konsistenzprobleme)
- Es gibt keine natürliche Lokalität (Fehlereingrenzung/Lokalisierung schwer)
- Die Herstellung braucht keine Rohstoffe oder physikalische Werkzeuge und die Werkstoffe (Sprachen) implizieren keine sinvollen Strukturen
Was ist das Whiscy-Syndrom?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
-Steht für Why Isn’t Sam coding yet und verkörpert eine negative Erwartungshaltung in der Softwareentwicklung, welche dazu führt, dass Entwickler immer Coden sollten, immer alles im Kopf haben sollten und Prototypen zu fertigen Produkten umstrukturiert werden.
Nennen Sie 10 klassiche Projektfehler!
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Komplexität und Kosten wurden unterschätzt
- Fehlende Kontrolle über Anforderungen oder Umfang!!!!
- Fehlende Kommunikation!!!
- Kunden/Stakeholder nicht ausreichend eingebunden!!!
- Kulturelle Probleme nicht adressiert
- Schlechte Projektmanagement
- Schlechte Ausführungsqualität!!!
- Fehlendes Risikomanagement
- Nichtfunktionale Anforderungen nicht adressiert
- Schlecht geplante Einführung
Was ist ein Stakeholder?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
-Interessensgruppen
Nennen Sie die Aktivitätsphasen und Tätigkeiten während eines Projektes!
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Analyse/Spezifikation(Requiremens) (Was soll gemacht werden?)
- Entwurf/Design (Wie? Konzeption der Lösung/Architektur)
- Implementation (Übertragung des Entwurfes in ablauffähigen Codes)
- Integration/Tests (Zusammenbau der Komponenten und Gesamttests)
- Installation/Wartung (Schulung/Fehlerbehebung/Weiterentwicklung)
Erklären Sie den Wasserfallansatz entgegen den iterativen Ansatz in der Projektentwicklung.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
…..
Beschreiben Sie den Verlauf/Schritte der Wasserfallmethode.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Initiales Konzept
- Die Aufgaben herausarbeiten
- Requirements schreiben
- Vollständiges Requirement-Dokument
- Code entwickeln
- Fertiges Produkt
Beschreiben Sie den Verlauf/Schritte der iterativen Entiwicklung.
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
1.Initiales Konzept
2.Vorläufige Geschäftsanalyse
3. Absprache mit dem Produkt Owner
4.User Stories schreiben
5.Partielles Produkt/Feature entwickeln
6. Feedback einholen
7. User Stories schreiben
….
8. Fertiges Produkt
Was ist das Problem an Wasserfallprojekten?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Alle Entscheidungen werden am Anfang getroffen.
- Komplexitäten und Kosten schwer abschätzbar.
- Oft entstehen am Ende die Probleme und teuren Änderungen
- Anforderungen an das Produkt ergeben sich erst im Verlauf
- Eventuell sind manche Dinge nicht umsetzbar, was erst spät erkannt wird.
Was ist der Vorteil an iterativen Projekten?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Durch Zwischenstände/Features können neue Ideen enstehen
- Durch Zwischenstände/Featues können Meinungen und Ideen geändert werden.
Was ist das Problem an iterativen Projekten?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
-Für manche Projekte ist das Verfahren ungünstig und nicht zu empfehlen.
Was ist der Vorteil an Wasserfallprojekten?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Projekte die sehr klar und linear abschätzbar sind können damit schneller entstehen. Z.b. konstante mathematische Berechnungen brauchen kaum Zwischenstops.
- Wenn man das Produkt schon im vornherein sehr gut kennt ist es einfacher.
Was für ein Problem existiert dabei die Anforderungen an ein Produkt zu erfassen?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
-Ein Kommunikationsproblem, da aus Business und Technischer Sicht die Dinge oft sehr verschieden betrachtet werden. Es kommt leicht dazu, dass man aneinander vorbei redet.
Was ist über Requirements/Anforderungen zu wissen?
“Klassische“ und „weitere“ Softwareentwicklungsthemen”
- Sie müssen nicht unbedingt ausgeschrieben werden, aber sie müssen den Projektteilnehmern bekannt sein.
- Der Kunde gibt oft nicht die richtige Antwort.
- Requirements entstehen nicht durch Zufall, sondern aus Prozessen, der die Entwicklung bedingt.
- Unsere Aufgabe ist es die Art, wie der Benutzer über Probleme denkt zu ändern.