Benutzer-Werkzeuge

Webseiten-Werkzeuge


se:softwaretechnologie

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
se:softwaretechnologie [2008-02-11 14:45]
stefan
se:softwaretechnologie [2014-04-05 11:42] (aktuell)
Zeile 13: Zeile 13:
     * zwei Entwurfsmuster und eine sonstige Entwurfsmaßnahme einsetzen     * zwei Entwurfsmuster und eine sonstige Entwurfsmaßnahme einsetzen
   * Zuletzt folgen acht Wissensfragen,​ die nichts mit dem Projekt zu tun haben.   * Zuletzt folgen acht Wissensfragen,​ die nichts mit dem Projekt zu tun haben.
 +  * Eigene Notizen
 +    * Architekturen
 +    * UML-Spezialitäten
 +    * Einsatz von Entwurfsmustern
 +    * State machines
 +
 +==== Tipps ====
 +  * Jedes Wort im Text genau auf Auswirkungen auf Methoden/​Attribute prüfen. Beispiel "​Taste.LeuchteAn()"​.
 +  * Jedes Element muss seinen Auftraggeber über eine "​fertig"​-Meldung benachrichtigen (wichtig für Sequenzdiagramme und Zustandsdiagramme)
 +  * Benutzerinteraktionen werden ins Sequenzdiagramm aufgenommen. Beispiel: Benutzer drückt Taste.
 +
 +===== Einführung =====
 +==== Definitionen ====
 +Software Engineering befasst sich mit Techniken und Methoden
 +  * das Softwareprodukt möglichst fehlerfrei und möglichst nahe an den tatsächlichen Wünschen des Anwenders orientiert zu erstellen,
 +  * ständige Änderungen der Anforderungen zu bewältigen,​
 +  * die zu jeder Zeit von jedem Entwickler zu bewältigende Komplexität klein zu halten,
 +  * eine geregelte und effiziente Zusammenarbeit aller Beteiligten zu ermöglichen und
 +  * dies alles in einem rationellen und planbaren Kosten- und Zeitrahmen zu realisieren.
 +
 +> Software Engineering ist die zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige,​ ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen. (Prof. Helmut Balzert)
 +
 +Software Engineering ist Programmierung unter mindestens einer der folgenden beiden Bedingungen (Parnas):
 +  * Mehr als eine Person ist befasst mit der Erstellung und/oder dem Gebrauch des Programms.
 +  * Mehr als eine Version des Programms wird erstellt werden.
 +
 +Auf Software Engineering kann verzichten, wer alleine ein Programm für der einmaligen alleinigen Gebrauch entwickelt! ​
  
 ===== Objektorientierte Systementwicklung ===== ===== Objektorientierte Systementwicklung =====
 +
  
 ==== Anforderungen / Aufwandsermittlung ==== ==== Anforderungen / Aufwandsermittlung ====
Zeile 52: Zeile 80:
   * Mögliche Verfälschungen (S. 85)   * Mögliche Verfälschungen (S. 85)
     * Tilgung     * Tilgung
-    ​unterspezifizierte Prozessworte +      ​Implizite Annahmen 
-    * Verallgemeinerung+      * Unvollständig spezifizierte Prozesswörter 
 +      * Unvollständige Komparative und Superlative 
 +      * Modaloperatoren der Möglichkeit 
 +      * Modaloperatoren der Notwendigkeit 
 +    * Verallgemeinerung ​(Generalisierung) 
 +      * Universalquantoren 
 +      * Unvollständig spezifizierte Bedingungen 
 +      * Substantive ohne Bezugsindex
     * Verzerrung     * Verzerrung
 +      * Nominalisierung
   * Template   * Template
     * [when][under what conditions] the system (shall | should | will) [be capable of | provide <​whom>​ the ability to] <​process>​ what how      * [when][under what conditions] the system (shall | should | will) [be capable of | provide <​whom>​ the ability to] <​process>​ what how 
Zeile 236: Zeile 272:
  
 ==== Systemschnittstelle ==== ==== Systemschnittstelle ====
 +  * Tasks identifizieren (S. 155)
 +    * Ereignisgetrieben
 +    * Zeitgetrieben
 +    * Hochprior oder kritisch
 +  * Tasks definieren: Für jede identifizierte Task wird festgelegt ​
 +ƒ    * wie sie heißt,
 +    * welche Aufgabe sie hat,
 +    * durch welche Ereignisse oder durch welchen Zeitablauf sie gestartet wird,
 +    * welche Priorität sie besitzt,
 +    * welche Services welcher Objekte sie aufruft,
 +    * auf welchem Weg sie Informationen erhält oder weitergibt (Nachrichtenparameter,​ Mailbox, Pipe, Buffer...).
 +
 +> Die UML unterscheidet aktive und nicht aktive Objekte: Ein aktives Objekt besitzt einen eigenen Thread of Control, ein nicht aktives Objekt liegt im Thread eines aktiven und kann von ihm aufgerufen werden. In einem objektorientierten System ist also ein aktives Objekt der Kern einer Task.
 +
 +  * Aktives Objekt und no-wait-Semantik
 +  * Timer-Service ​
 +  * Scheduler einrichten
 +    * preemptives Scheduling
 +    * nicht-preemptives/​kooperatives Scheduling
 +      * gut durch Zustandsautomaten umsetzbar (S. 157)
 +    * Scheduling sollte durch Narichtenpriorität gesteuert werden
 +
 +=== Hardware-Schnittstelle ===
 +  * Interrupts
 +  * Polling
 +  * Ausgabe
  
 ==== Implementierung ==== ==== Implementierung ====
 +  * Konzept für automatisch generierbare technische Systeme (S. 168)
 +    * Jedes Objekt, das nicht ausschließlich Daten verwaltet, ist ein Aktives Objekt.
 +    * Jedes Aktive Objekt ist ein Zustandsautomat.
 +    * Jeder Zustandsautomat arbeitet nach dem "Run to Completion"​-Prinzip.
 +    * Alle Aktiven Objekte kommunizieren durch Message Passing.
 +    * Das Scheduling ist durch Nachrichtenprioritäten gesteuert.
 +    * No-wait-Semantik und Scheduling nach Nachrichtenprioritäten werden durch einen zentralen Nachrichtenpuffer gewährleistet.
 +    * Scheduler, Timerdienst,​ Messagehandler,​ I/​O-Services und wichtige Signalverarbeitungsalgorithmen werden von der Plattform zur Verfügung gestellt.
 +    * Alle Objekte und I/O-Ports werden von einem Erbauer erzeugt und installiert.
 +
 +> "Run to Completion"​ (RTC) ist das in der UML 2 definierte Verhalten eines nebenläufigen Zustandsautomaten:​ Ein Zustandsautomat befindet sich vom Start bis zum Ende einer Transition im "Run to Completion Step"; dieser darf durch eine neue Anforderung ​ an dasselbe Objekt nicht unterbrochen werden, da der Zustand des Objekts während einer Transition undefiniert ist. Zum Run to Completion Step gehören auch Methoden nicht aktiver Objekte, die von der Transition aufgerufen werden. ​
 +
 +> SDL ist eine formale Sprache mit dem Ziel der Spezifikation und Beschreibung des Verhaltens von Telekommunikationssystemen (insbesondere in den Funktionsbereichen Anrufbearbeitung,​ Wartung, Fehlerbehandlung,​ Systemkontrolle sowie beim Entwurf von Datenkommunikationsprotokollen). Aufgrund ihrer Eigenschaften ist SDL generell zur Verhaltensspezifikation von Echtzeitsystemen geeignet. Die Sprache ist in grafischer und textueller Notation definiert. SDL enthält eine Reihe von Konzepten wie Typen-, Instanzen-, Kommunikations- und Sichtbarkeitskonzept und dynamische Semantik. Aufgrund ihrer formal korrekten Syntax und Semantik sind SDL-Spezifikationen zur automatischen Konsistenzprüfung geeignet.
 +
 +==== Tests ====
 +  * Statische Analyse
 +  * Korrektheitsbeweis
 +  * Test
 +    * Objektklassentest (S. 177)
 +      * Entwicklung eines Testrahmens,​ der die importierten Funktionen (required interface) **simuliert**,​ die exportierten Funktionen (provided interface) **stimuliert** (anregt) und die Arbeitsweise **kontrolliert**. ​
 +    * Integration
 +  * Auswahl der Testdaten
 +    * Black-box <​––>​ White-box-Test
 +    * Äquivalenzklassen
 +      * Klassifikationsbaummethode
 +      * OO Äquivalenzklassen -> Folgen von Änderungsoperationen
 +  * Testüberdeckung
 +    * C1-/​C2-Überdeckung (S. 182)
 +  * OO-Test (S. 183)
 +    * Test abstrakter und abgeleiteter Klassen
 +    * Integrationstest
 +    * Test zyklischer Kommunikation ​
 +    * Test in der Multitasking-Plattform ​
 +  * Testwerkzeuge
 +    * Debugger
 +    * In das Programm eingebauter "​Debugger"​
 +  * Testlogbuch
 +    * Nachweis über durchgeführte/​durchzuführende Tests
 +    * ermöglicht Regressionstests
 +
 +==== Wartung ====
 +  * Wartungskosten => 1,5 * Herstellungskosten
 +  * Arten von Wartungsarbeiten
 +    * Anpassung an neue Anforderungen
 +    * Anpassung an andere Maschine
 +    * Innerbetriebliche Belange
 +    * Fehlerbeseitigung
 +
 +===== Entwicklungsprozess =====
 +Ein Prozess(modell) besteht aus
 +  * Vorgehensmodell
 +    * wann und unter
 +    * welchen Voraussetzungen
 +    * welches Produkt durch
 +    * welche Aktivität mit
 +  * Methodenzuordnung
 +    * welcher Methode unter Verwendung von
 +    * welchem Werkzeug entsteht, und
 +  * Rollenzuordnung
 +    * wer wie daran beteiligt ist. 
 +
 +==== Wasserfallmodelle ====
 +  * Klassisch
 +    * Analyse
 +    * Definition
 +    * Entwurf
 +    * Implementierung
 +    * Wartung
 +  * 60 - 80% aller Fehler entstehen in der Analysephase! Analysefehler erzeugen 60 - 70 % der Gesamtkosten!
 +  * erweitert: mit Validierungsphasen
 +  * V-Modell von Boehm
 +
 +==== Prototyping und iterative Modelle ====
 +  * Evolutionäres Prototyping
 +    * Spiralmodell
 +  * Rapid Prototyping
 +  * Exploratives Prototyping
 +    * Baseballmodell
 +  * Vorteile
 +    * Risiken werden früh erkannt
 +    * dem Kunden kann etwas vorgefüht werden
 +    * offene Fragen können am Beispiel ausprobiert/​geklärt werden
 +
 +==== Inkrementelle Entwicklung ====
 +  * Erstellen (und Ausliefern) des Produktes in mehreren zunehmend vollständigen Versionen
 +
 +==== V-Modell 97 ====
 +  * Internationaler Standard des Bundesinnenministeriums
 +  * Stellt die **Anforderungen an das System** (Hard- und Software) in den Vordergrund
 +  * Submodelle
 +    * Systemerstellung
 +    * Qualitätssicherung ​
 +    * Konfigurationsmanagement
 +    * (technisches) Projektmanagement
 +  * **Dokumente** werden von **Aktivitäten** erzeugt
 +  * Rollen und Rollenzuordnung (S. 21)
 +  * Jeder Aktivität werden Methoden (Elementarmethoden S. 24) und Werkzeuge zugeordnet
 +  * Szenarien
 +    * Inkrementelle Entwicklung (Regelfall)
 +    * Grand Design (Traditionelles Vorgehen)
 +    * Einsatz von Fertigprodukten
 +    * Objektorientierte Entwicklung
 +    * Entwicklung wissensbasierter Systeme
 +    * Software-Pflege und -Änderung
 +  * Durch Tailoring wird aus dem V-Modell das Projekthandbuch erstellt (S. 30)
 +  * Nachteile: schwerfällig,​ ausufernde Dokumentation,​ Tailoring/​Erstellen des Projekthandbuchs ist Handarbeit (Fehlerquelle)
 +
 +==== V-Modell XT ====
 +  * Seit 2004 verbindlich für Aufträge des Bundes
 +  * **Vorgehensbausteine** kapseln Rollen, Produkte und Aktivitäten (entsprechen etwa den Submodellen des V-Modells 97) -> Weltkarte (S. 34)
 +  * Durchführungsstrategien (entsprechen Szenarien des V-Modells 97) (ggf. getrennte Strategien für AG und AN)
 +    * Agile Entwicklung
 +    * Komponentenbasierte Entwicklung ​
 +    * Auftraggeberprojekte
 +    * <​del>​Grand Design</​del>​
 +    * <​del>​Objektorientierte Entwicklung</​del>​
 +    * <​del>​Entwicklung wissensbasierter Systeme</​del>​
 +  * Entscheidungspunkte
 +  * Methoden und Werkzeuge ​
 +  * Rollen
 +  * Nachteile
 +    * Wust von unstrukturierten Texten
 +    * Wichtige Workflows/​Rollen fehlen oder sind schwer auffindbar
 +    * Anforderungen werden als gegeben vorausgesetzt
 +
 +==== Rational Unified Process ====
 +  * Ausschließlich für objektorientierte Softwareentwicklung mit der UML geeignet
 +  * iterativ (alle Aktivitäten werden mehrfach durchlaufen) **und** inkrementell (jede Iteration bring einen Mehrwert)
 +  * Use-Case-getrieben
 +  * Architekturzentriert
 +  * Phasen
 +    * Inception
 +    * Elaboration
 +    * Construction
 +    * Transition
 +  * Workflows (entsprechen insgesamt dem Submodell SE des V-Modells 97)
 +    * Business Modeling
 +    * Requirements
 +    * Analysis and Design
 +    * Implementation
 +    * Test
 +    * Deployment
 +  * 80% rule
 +  * Timeboxing
 +  * Nachteile
 +    * Kommerzielles Produkt mit Verweisen auf kommerzielle Tools von Rational
 +  * Spezialisierung des RUP für kommerzielle Client-/​Server-Anwendungen:​ Object Engineering Process von Bernd Oesterreich
 +    * Timepacing
  
-==== Tests / Wartung ​====+==== Agile Prozesse ​==== 
 +  * Agile Manifesto (S. 52) 
 +  * Extreme Programming 
 +  * Crystal Methodenfamilie
  
-===== Prozessmodelle ​=====+===== Qualität des Entwicklungsprozesses ​===== 
 +  * Process Maturity Levels 
 +    * initial 
 +    * repeatable 
 +    * managed (defined) 
 +    * measured (managed) 
 +    * optimized (optimizing) 
 +  * Capability Maturity Model 
 +    * Key Process Areas -> erreichen Ziele 
 +    * Common Features -> richten sich an Implementierung und Institutionalisierung 
 +    * Key Practises -> beschreiben Infrastruktur und Aktivitäten 
 +  * Capability Maturity Model Integration 
 +    * modulares Konzept -> Integration neuer Entwicklungsdisziplinen 
 +    * staged representation -> CMM 
 +    * continuous representation -> Bewertung einzelner Prozessbereiche 
 +    * Prozessbereiche (mit Zielen ab S. 60) 
 +      * Process Management 
 +      * Project Management 
 +      * Engineering 
 +      * Support  
 +    * Standard CMMI Appraisal Method for Process Improvement 
 +  * Software Process Improvement and Capability dEtermination 
 +    * internationaler Standard (ISO 15504) 
 +    * inhaltlich zu 90% mit CMMI deckungsgleich 
 +  * Bootstrap 
 +  * DIN EN ISO 9000 ff 
 +    * "​Schreib immer auf, wie du etwas machst, und tu alles so, wie es aufgeschrieben ist."​ 
 +  * Six Sigma
  
 ===== Qualitätssicherung ===== ===== Qualitätssicherung =====
 +  * Review
 +    * Schreibtischtest
 +    * Vier-Augen-Test
 +    * Structured Walkthrough (Yourdon)
 +    * Inspection (IBM)
 +    * Fagan-Inspection (IBM)
 +      * Vorgegeben Vorgehensmuster für verschiedene Dokumentklassen
 +      * Autor nicht (!) Vorleser des Dokuments
 +  * Statische Analyse
 +  * Konstruktive Maßnahmen
 +    * z.B. CodingStandards,​ CodingConventions,​ "​sichere"​ Programmiersprachen
  
 +> Total Quality Management (TQM) bezeichnet die durchgängige,​ fortwährende und alle Bereiche einer Organisation (Unternehmen, ​ Institution,​ etc.) erfassende aufzeichnende,​ sichtende, organisierende und kontrollierende Tätigkeit, die dazu dient, Qualität als Systemziel einzuführen und dauerhaft zu garantieren. (S. 68)
  
 ===== Links ===== ===== Links =====
Zeile 252: Zeile 504:
   * Aufwandsschätzung   * Aufwandsschätzung
     * http://​de.wikipedia.org/​wiki/​Cocomo     * http://​de.wikipedia.org/​wiki/​Cocomo
- 
- 
  
  
 ===== ToDo ===== ===== ToDo =====
 +  * Eigene Aufzeichnungen zur Vorlesung durchgehen
 +  * Lernziele des Skripts anschauen
   * Praktikumsunterlagen anschauen   * Praktikumsunterlagen anschauen
-  * Infos zu Extreme Programming 
-  * Infos zu Zustandsautomaten 
-  * UML-Diagrammtypen detaillierter anschauen 
-    * Use-Case-Diagramm 
-    * Aktivitätsdiagramm 
-      * Pins 
-      * Control / Object Flow 
-      * Beispiel von Robra (implizites Join oder so) 
-    * Komponentendiagramm 
-      * Ports (behavior port) 
-      * subsystem 
-    * Kompositions-Strukturdiagramm 
-    * Verteilungsdiagramm 
-      * Artefakte 
-    * Kommunikationsdiagramm 
-    * Sequenzdiagramm 
-      * Combined Fragments 
-    * Interaktions-Übersichtsdiagramm 
-    * Timing-Diagramm 
-      * Kompaktdarstellung ("​Bonbon"​) 
-    * Zustandsautomaten 
-  * Eigene Aufzeichnungen zur Vorlesung durchgehen 
-  * Infos zu COCOMO II 
-    * http://​www-ivs.cs.uni-magdeburg.de/​~dumke/​ST2/​ST2Prozess.html 
-  * Script farbig ausdrucken 
-  * Informationen zu MVC. Welche Aufgabe hat der Controller? 
-  * Informationen zu SDL 
-  * Informationen zu OCL 
   * Aufgaben zum Übungsprojekt Handhabungsautomat lösen   * Aufgaben zum Übungsprojekt Handhabungsautomat lösen
 +  * Wiki-Eintrag drucken/​speichern
 +
 +  * Nähere Informationen einholen
 +    * Extreme Programming
 +    * MVC. Welche Aufgabe hat der Controller?
 +    * SDL
 +    * OCL
 +    * Petri-Netze (?)
 +    * CORBA, CCM, COM, EJB, CAN(open) (?)
 +    * MDA
 +    * Was ist ein "​aktives Objekt"​ genau?
 +
 +==== Erledigt ====
   * Entwurfsmuster genauer anschauen   * Entwurfsmuster genauer anschauen
     * Übersichtsblatt mit Klassendiagrammen aller Pattern erstellen     * Übersichtsblatt mit Klassendiagrammen aller Pattern erstellen
Zeile 315: Zeile 552:
     * http://​www.se.uni-hannover.de/​documents/​kurz-und-gut/​ws2004-seminar-entwurf/​software-metriken_mthomas.pdf     * http://​www.se.uni-hannover.de/​documents/​kurz-und-gut/​ws2004-seminar-entwurf/​software-metriken_mthomas.pdf
     * http://​informatik.unibas.ch/​lehre/​ws05/​cs203/​softeng13.pdf     * http://​informatik.unibas.ch/​lehre/​ws05/​cs203/​softeng13.pdf
 +  * Infos zu COCOMO II
 +    * http://​www-ivs.cs.uni-magdeburg.de/​~dumke/​ST2/​ST2Prozess.html
 +  * UML-Diagrammtypen detaillierter anschauen
 +    * Use-Case-Diagramm
 +    * Aktivitätsdiagramm
 +      * Pins
 +      * Control / Object Flow
 +      * Beispiel von Robra (implizites Join oder so)
 +    * Komponentendiagramm
 +      * Ports (behavior port)
 +      * subsystem
 +    * Kompositions-Strukturdiagramm
 +    * Verteilungsdiagramm
 +      * Artefakte
 +    * Kommunikationsdiagramm
 +    * Sequenzdiagramm
 +      * Combined Fragments
 +    * Interaktions-Übersichtsdiagramm
 +    * Timing-Diagramm
 +      * Kompaktdarstellung ("​Bonbon"​)
 +    * Zustandsautomaten
 +      * Wie wird ein "​defer"​ dargestellt
  
 ===== Übungen ===== ===== Übungen =====
 ==== Seite 12 ==== ==== Seite 12 ====
 +  * Bei der Nürnberger U3 werden unter den Türen vor dem Öffnen Trittbretter ausgefahren,​ um den Spalt zwischen Wagen und Bahnsteig zu überbrücken. Nach zwei Jahren Entwicklungszeit zeigte sich, dass alles vergeblich war, da der Spalt unterschiedliche Breite haben kann. Was ist hier falsch gemacht worden?
 +    * Die Entwickler haben sich nicht intensiv genug mit der Realität auseinandergesetzt. Sie sind offensichtlich nie vor Ort gewesen und haben sich die Gegebenheiten am Bahnsteig angeschaut.
 +  * Versuchen Sie, an einem Fahrkartenautomaten der VAG ein "​Tagesticket Plus Preisstufe 4" zu lösen, und protokollieren Sie Ihren Arbeitsablauf.
 +  * Wieso hat auch der Hersteller einer Software Qualitätsanforderungen?​
 +    * Der Hersteller sorgt nach der Auslieferung der Software auch für deren Support und Weiterentwicklung. Die Kosten hierfür übersteigen die Entwicklungskosten im Allgemeinen deutlich (Wert aus der Literatur: Faktor 1,5). Der Hersteller sollte also sicherstellen,​ dass seine Software wartungsfreundlich und leicht erweiterbar ist. Des Weiteren hat der Hersteller durchaus einen Ruf zu verlieren, wenn er qualitativ minderwertige Software herstellt.
 +  * Sie entwickeln für die "​Ich-AG"​ eines Freundes ein einfaches Buchhaltungsprogramm. Was halten Sie dabei von Software Engineering?​
 +    * Da das Programm evtl. von mehreren Personen genutzt wird und sicherlich auch mehr als einmal, ist Software-Engineering unumgänglich.
 +  * An einem großen Projekt arbeiten 150 Softwareentwickler. Wie ist das möglich?
 +    * Durch Berücksichtigung der Pronzipien des Software-Engineerings:​ Modularisierung,​ Tests, Arbeitsteilung,​ detailliertes Design etc.
 +  * Angenommen, Sie lesen in der Zeitung, dass ein neues Softwareprojekt in drei Jahren abgeschlossen sein und 15 Mio. € kosten soll. Mit welchen Ergebnissen müssen ​
 +Sie rechnen?
 +    * Die Entwicklungsdauer und -kosten werden die geplanten Werte sehr wahrscheinlich übersteigen. Aus den bekannten Durchschnittswerten aus der Literatur könnten die voraussichtlichen Werte ermittelt werden.
 +
 ==== Seite 55 ==== ==== Seite 55 ====
 +  * Was regelt ein Prozess?
 +    * Ein Prozess regelt die Rahmenbedingungen,​ unter denen eine Software entwickelt wird (z.B. die Teilnehmer, die Entwicklungsmethoden und die verwendeten Werkzeuge).
 +  * Was ist eine Rolle?
 +    * Eine Rolle fasst Aufgaben zusammen, die von Mitarbeitern in einem Prozess wahrgenommen werden müssen (z.B. System Engineer). Eine Rolle kann von mehreren Mitarbeitern wahrgenommen werden und ebenso kann ein Mitarbeiter mehrere Rollen innehaben.
 +  * Was macht ein Vorgehen nach dem Wasserfallmodell riskant und teuer?
 +    * Fehler werden spät entdeckt und ihre Behebung kostet dann entsprechend mehr.
 +  * Wodurch unterscheidet sich das ursprüngliche V-Modell nach Boehm von einem Wasserfallmodell?​
 +    * Das V-Modell sieht für jede Phase des ursprünglichen Wasserfallmodells eine entsprechende Testphase vor und erlaubt ausdrücklich Sprünge in frühere Phasen, wenn Fehler auftreten.
 +  * Was bedeutet das "​V"​ im V-Modell 97?
 +    * **Vorgehens**modell
 +  * Versuchen Sie, in den V-Modellen 97 und XT etwas zu finden, was dem Requirements Workflow des RUP entspricht.
 +    * V-Modell 97: Unterpunkte von SE 1: z.B. Anforderungen an die Qualität definieren, Randbedingungen definieren etc. Das Ergebnis von SE 1 sind die Anwenderanforderungen.
 +    * V-Modell XT: Die Anforderungen müssen komplett vom AG geliefert werden.
 +  * Ist es nach der aktuellen Weltkarte der Vorgehensbausteine des V-Modell XT möglich, einen Prozess für ein sicherheitsrelevantes System zu definieren, das weder 
 +HW noch SW enthält und keine Anforderungsfestlegung benötigt?
 +    * Nein. Systemsicherheit erfordert alle drei genannten Komponenten.
 +  * Wann soll im RUP die erste Version der Architektur vorliegen?
 +    * Am Ende der Elaboration-Phase.
 +  * Was unterscheidet den OEP vom RUP?
 +    * Ausrichtung auf kommerzielle Systeme
 +    * Timeboxing wird durch Timepacing (feste Abfolge von Terminen innerhalb einer Iteration) ersetzt
 +  * Wo findet sich das Deployment Diagram der UML in den V-Modellen 97 und XT wieder?
 +  * Führen Sie für Ihre Projektarbeit des Studiengangs ein "​Standardisiertes Vortailoring"​ des V-Modells 97 durch.
 +  * Was ist ein "​System Metaphor",​ zu welchem Vorgehensmodell gehört es, und zu welchem Ziel soll es beitragen?
 +    * Ein grober Überblick über das zu erstellende Gesamtsystem,​ das zu einem einheitlichen Verständnis bei den Beteiligten führen soll (Extreme Programming).
 +  * Um den Termin halten zu können, verordnet der Projektleiter seinen Programmierern für die nächsten vier Wochen 20% Überstunden. Welchen Erfolg kann er erwarten?
 +    * Überstunden wirken sich allerhöchstens kurzfristig aus. Auf längere Sicht führt die Mehrarbeit zu nachlassender Leistung bei den Mitarbeitern.
 +  * Sie erhalten als Auftragnehmer vom Auftraggeber eine vollständige Anforderungsspezifikation. Womit müssen Sie nach zwei Jahren Entwicklungsdauer rechnen?
 +    * Ca. 2% der Die Anforderungen ändern sich pro Monat, d.h. nach 2 Jahren sind nur noch knapp die Hälfte der Anforderungen gültig.
 +  * Was hat TestDrivenDevelopment mit Wiederverwendung zu tun?
 +    * Da die Testumgebung einen zusätzlichen Klienten für die zu testenden Komponenten darstellen, wird gleich sichergestellt,​ dass die Komponente mit mehreren (unterschiedlichen) Klienten kooperieren kann, was ein Nachweis für die Wiederverwendbarkeit ist.
 +  * Was ist erforderlich,​ damit wiederverwendbare Komponenten auch wiederverwendet werden?
 +    * Wiederverwendung muss durch einen Software-Reuse-Prozess unterstützt werden.
 +  * Arbeiten Sie sich anhand der gegebenen Links in Scrum ein und definieren Sie eine Variante, die zu den besonderen Randbedingungen Ihrer Projektarbeit passt.
 +
 ==== Seite 63 ==== ==== Seite 63 ====
 +  * Ein Bekannter erzählt Ihnen, seine Firma sei soeben nach CMM Level 1 zertifiziert worden. Was meinen Sie dazu?
 +    * CMM Level 1 bedeutet keinerlei Struktur im Entwicklungsprozess.
 +  * Ihre Firma beginnt plötzlich, Trainingsprogramme für ihre Mitarbeiter einzurichten. Was könnte der Grund sein?
 +    * Erreichen eines höheren CMM-/​CMMI-Levels. Die Weiter- bzw. Ausbildung von Mitarbeitern zählt zu den zu erledigenden Auflagen z.B. bei CMMI Level 2.
 +  * Wieso ist CMMI für eine kontinuierliche Prozessverbesserung besser geeignet als CMM?
 +    * CMM bewertet lediglich die Gesamtperformance des Unternehmens,​ während CMMI auch Teilbereiche berücksichtigt. Dadurch sind Verbesserungen besser nachvollziehbar und Schwachstellen eindeutig identifizierbar.
 +  * Warum wurde Bootstrap entwickelt, und warum wurde die Entwicklung eingestellt?​
 +     ​Bootstrap wurde für eruropäische Firmen quasi als Konkurrenzprodukt zu CMM entwickelt, ist aber inzwischen von SPICE abgelöst.
 +  * Worin besteht die Verwandtschaft zwischen CMMI, SPICE und Bootstrap und der Unterschied zu CMM?
 +    * Die drei genannten Verfahren beinhalten auch die kontinuierliche Bewertung von Teilbereichen des Unternehmens,​ während CMM nur 5 allgemeine Stufen das Gesamtunternehmen betreffend anbietet.
 +  * Die Kosten eines Projekts wurden auf 5 Mio. € geschätzt; im Angebot stehen aber 6,2 Mio. €. Welche Berechnung könnte dahinter stehen?
 +  * Ein Softwarehaus,​ das auch Unteraufträge vergibt, möchte sich nach CMM zertifizieren lassen. Worauf muss es besonders achten?
 +    * Auf die Zertifizierung seiner Unterauftragnehmer.
 +  * Welche Reifegrade kennt ISO 9003? 
 +    * Keine. Lediglich "​bestanden"​ oder "nicht bestanden"​.
 +  * Woran denken Sie, wenn Sie SCAMPI hören?
 +    * An ein Bewertungsverfahren zu CMMI.
 +  * Wo ist von Stakeholdern die Rede?
 +    * Bei CMMI Level 2.
 +
 ==== Seite 68 ==== ==== Seite 68 ====
 +  * Hat es einen Sinn, auch für nicht-objektorientierte Programmierung C++ anstatt C einzusetzen?​
 +    * Ja, denn C++ ist "​sicherer"​ als C und trägt damit zur konstruktiven Qualitätssicherung bei.
 +  * Kann man ein Peer Review auch als konstruktive Maßnahme bezeichnen, und warum (nicht)?
 +    * Nein, da Reviews im Nachhinein Fehler finden sollen und diese nicht vorab verhindern.
 +  * Wie viele Teilnehmer erfordert ein Structured Walkthrough mindestens?
 +    * 6: Autor, Moderator, Schriftführer,​ 3 Reviewer (Wartungsprophet,​ Normenreiter,​ Benutzervertreter)
 +  * Ihr Abteilungsleiter will an Reviewsitzungen teilnehmen. Darf er das? 
 +    * Nein, denn ein Review soll ungezwungen ablaufen und die (negativen) Ergebnisse dürfen nicht zur Bewertung von Mitarbeitern herangezogen werden.
 +
 ==== Seite 86 ==== ==== Seite 86 ====
   * Welche Techniken zur Spezifikation von Use Cases kennen Sie?    * Welche Techniken zur Spezifikation von Use Cases kennen Sie? 
Zeile 391: Zeile 727:
  
 ==== Seite 164 ==== ==== Seite 164 ====
 +  * Entwerfen Sie ein Klassendiagramm für ein Aktives Objekt für Methodenaufruf mit no-wait-Semantik.
 +  * Ergänzen Sie das Diagramm aus Abb. 5-114 links um HW-Schnittstellen.
 +  * Wodurch unterscheiden sich CCM, COM und EJB?
 +    * Durch ihre Plattform- bzw. Sprachenabhängigkeit (COM: Windows/*, EJB: */Java, CCM: */*)
 +
 ==== Seite 174 ==== ==== Seite 174 ====
-==== Seite 189 ====+  * Ihr Klassendiagramm enthält eine Mehrfachvererbung. Für die Implementierung ist Java vorgesehen. Was können Sie tun? 
 +  * Der Codegenerator von Enterprise Architect erzeugt seltsame Präprozessor-Direktiven. Was bedeuten diese? 
 +  * Erzeugen Sie im Enterprise Architect ein einfaches Klassendiagramm mit fünf mal zwei Klassen und zwischen jeweils zwei Klassen  
 +    * eine explizit einseitig navigierbare Assoziation 
 +    * eine einseitig navigierbare,​ einseitig undefinierte Assoziation 
 +    * eine beidseitig undefinierte Assoziation 
 +    * eine explizit beidseitig navigierbare Assoziation 
 +    * ein Interface für eine der Klassen und explizit einseitig navigierbare Assoziationen in einer Richtung auf die Klasse, in der anderen auf das Interface und vergleichen Sie den generierten Code bei verschiedenen Optionseinstellungen. 
 +  * Der Enterprise Architect kann auch ein objektorientiertes Programm einlesen und daraus ein Klassendiagramm erzeugen. Testen Sie, wie gut das funktioniert,​ und  
 +von welchen Einstellungen die Qualität abhängt. 
 +  * Was bedeutet RTC? 
 +  * Was bedeuten PIM und PSM? 
 +  * Unter welchen Umständen kann man auf ein PSM verzichten?​ 
 +  * Wandeln Sie den Zustandsautomaten aus Abb. 5-86 in SDL um. 
 +  * Zeichnen Sie zu Abb. 5-129 unten ein Objektdiagramm (d.h. mit alle Exemplaren der Klassen) mit ausgefüllten Feldern der Pattern-Objekte.
  
 +==== Seite 189 ====
 +  * Vergleichen Sie die Vor- und Nachteile von Statischer Analyse, Black-Box- und White-Box-Test.
 +  * Was hat Abschnitt 5.10.3 mit Abb. 5-140 zu tun?
 +  * Wozu dient ein Regressionstester?​
 +  * Was haben der Elchtest und die letzten französischen Atomwaffentests miteinander zu tun?
 +  * In einem Softwareprodukt wurden am ersten Testtag 250, am zweiten 130, am dritten 65, am vierten 30 und am fünften 15 Fehler gefunden. Wie viele Fehler sind voraussichtlich noch enthalten?
 +  * Eine Rechteckklasse CRect ist gekennzeichnet durch ihre linke, obere, rechte und untere Begrenzung. Sie hat u.a. einen Konstruktor CRect(int links, int oben, int rechts, int unten) und eine Methode point_in_me(int x, int y), die feststellt, ob sich eine Koordinate x/y innerhalb ihrer Grenzen befindet.
 +    * Erstellen Sie eine Äquivalenz- und Grenzwertklassenanalyse für point_in_me.
 +    * Was kann beim Konstruktor schief gehen, und wie lässt sich das erkennen?
 +    * Eine abgeleitete Klasse CResRect hat eine neue Methode resize(int dx, int dy).
 +    * Was muss bei ihr getestet werden, und warum?
 +  * Planen Sie einen Überdeckungstest für den Zustandsautomaten des Kassierers aus Abb. 5-86.
 +    * Zu welchen Klassen müssen für den obigen Test Simulationsklassen entwickelt werden, wenn die echten Klassen noch nicht vorliegen?
 +    * Wie lässt sich dieser Aufwand vermeiden?
 +  * Die Nachrichten "​entriegeln"​ und "​schliessen"​ in Abb. 5-137 kommen vom Triebwagen. Warum ist das ein Testproblem,​ und was kann man dagegen tun?
 +  * Das Subsystem Kassierer nach Abb. 5-62 soll so implementiert werden, dass es bottom-up testbar ist. In welcher Reihenfolge müssen seine Klassen und eventuell erforderlichen Simulationsklassen erstellt werden, damit alles Erstellte möglichst bald testbar ist?
 +  * Die Funktionalität einer Klasse Stack (Stapelspeicher) ist wie folgt definiert:
 +    * void push(int wert) legt die Zahl wert "oben auf den Stapel"​.
 +    * int top() liefert den obersten Wert des Stapels
 +    * void pop() vernichtet den obersten Wert des Stapels
 +    * bool empty() liefert die Information,​ ob der Stapel leer ist
 +    * void clear() löscht den gesamten Inhalt.
 +    * Wie sieht eine Äquivalenzklassenanalyse für diese Klasse aus?
 +  * Die Funktion void sort(int &a, int &b, int &c), die die Werte a, b und c aufsteigend sortieren soll, wurde so implementiert:​ <​code>​
 +void sort(int &a, int &b, int &​c) ​
 +
 + int t; 
 +  if(a > b) 
 +  {  t = a; a = b; b = t; } 
 +  if(b > c) 
 +  {  t = a; a = c; c = t; } 
 +  if(a > b) 
 +  {  t = a; a = b; b = t; } 
 +}</​code>​
 +    * Planen Sie einen C2-Test für diese Funktion!
 +  * Welchem Umstand verdankt Microsoft einen wesentlichen Marktvorteil? ​
se/softwaretechnologie.1202737517.txt.gz · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)