Archiv der Kategorie: Allgemein

Allgemeine Dinge so rund um das Leben und Interessensgebiete die in keine Kategorie passen…

IBM Doors DXL: Get last baseline version as String

Problem

The last version of a baseline shall be retrieved as String

Approach

With the usage of the standard methods, the string can be returned

  • Baseline=getMostRecentBaseline(Module) – Holt die letzte BL
  • bool=baselineExists(Module,Baseline) – Existiert die BL?
  • string=major(Baseline) – Versionsnummer VOR Komma
  • string=minor(Baseline) – Versionsnummer NACH Komma
  • string=suffix(Baseline) – Anhängsel sichtbar in BL Liste
  • string=dateOf(Baseline) – Datum der Baseline
  • string=annotation(Baseline) – Bemerkung zur Baseline

The version can be retrieved as string.

Solution

string getLastBaselineVersionString(Module ModRef)
{
  string myBase="N/A;" 
  Baseline b = getMostRecentBaseline(ModRef);
  if (b != null && baselineExists(ModRef,b));
  {
    myBase = (major b) "." (minor b) "";
    if ((suffix b) != "")
    { 
      myBase = myBase "(" (suffix b) ")";
    }
		
    myBase = myBase " //" dateOf(b) "";
    if ((annotation b) != "")
    {
	myBase = myBase  " " (annotation b) "";
    }
  }
  return myBase
}

Allgemeine Grundsätze der Software Validierung in der Medizintechnik

Zweck

Dieses Dokument dient als Leitfaden für die Software Validierung und stellt die Ansichten der FDA (Food and Drug Administration) über dieses Thema dar.
Die Anleitung fasst allgemeine Validierungsprinzipien zusammen, die die FDA vorschreibt für die Validierung von Entwurfs-, Entwicklungs- und Produktionssoftware von Medizingeräten.

Rahmen

Dieser Leitfaden beschreibt, wie sich bestimmte Vorkehrungen für das Qualitätssystem von Softwrare medizinischer Geräte mit dem momemtanen Ansatz der FDA und Evaluierung von Software-Validierungssystemen treffen lassen.

Anmerkung: Das Wort ¨System¨ benutzt die FDA oft als Definition für ein Bündel mehrerer Prozesse.

Dieses Dokument zeigt Kriterien, die von der FDA für die Validierung von Software akzeptiert werden. Jedoch zeigt es nicht alle Aktivitäten und Aufgaben für die Einhaltung des Gesetzes in allen Instanzen.

Wenn Software von jemand anderem als dem Gerätehersteller entwickelt wird, kann der Software Entwickler oder Softwarehersteller (bspw. bei Standardsoftware oder zugekauften SW Komponenten) nicht direkt für die gesetzliche Konformität mit den FDA Gesetzen verantwortlich gemacht werden.

Software Validierung ist eine Anforderung der Qualitätssystemerichtlinie, welche am 7. Oktober 1996 veröffentlicht wurde (21 Code of Federal Regulation (CFR) Part 820 bzw. 61 Ferderal Register (FR) 52602). Validierungsanforderungen beziehen sich auf…

  • … Software die als Komponente in medizinischen Produkten genutzt wird
  • … Software die selbst ein medizinisches Produkt ist
  • … Software die bei der Produktion medizinischer Produkte genutzt wird
  • … Software die bei der Entwicklung medizinischer Produkte genutzt wird
  • … Software die bei der Implementierung des Qualitätssystems des Medizingeräteherstellers genutzt wird
    • … Software die das Device Design History File aufzeichnet

Terminologie

Requirement

Ein Requirement ist jedes Bedürfnis oder jede Erwartung an ein System oder dessen Software.

Es gibt die folgenden Arten von Requirements:

  • Design Requirements
  • Functional Requirements
  • Implementation Requirements
  • Interface Requirements
  • Performance Requirements
  • Physical Requirements

Software Requirements werden typischerweise von System Requirements hergeleitet und in funktionalen Begriffen erklärt. Sie werden genau ausgestaltet, definiert und während dem Fortschreiten des Entwicklungsprojektes beschrieben.

Spezifikation

Eine Spezifikation wird als ein Dokument, welches Requirments erklärt/darlegt, definiert (Siehe 21 CFR §820.3(y).).

Zu einer Spezifikation gehören zum Beispiel die folgenden Artefakte

  • Zeichnungen
  • Muster
  • relevante Dokumente

In der Spezifikation stehen auch Prüfkriterien und -mittel um ein Requirement hinsichtlich seiner Konformität zu überprüfen.

Es gibt die folgenden Arten von Spezifikationen

  • System Requirements Specification
  • Software Requirements Specification
  • Software Design Specification
  • Software Test Specification
  • Software Integration Specification

Alle diese Spezifikationsdokumente definieren spezifierte Requirements und dienen als ¨Design Output¨, wofür verschiedenste Formen der Verifikation notwendig sind.

Verifizierung und Validierung

Die Prozesse des Qualitätsmanagmentsystems werden in der ISO-Norm ISO 8402:1994 beschrieben, welche die Begriffe Verifikation und Validierung als zwei unterschiedliche und eindeutige Dinge definiert. Demgegenüber gibt es viele Software Engineering Zeitschriften, Artikel und Fachbücher, welche die Begriffe ¨Validierung¨ und ¨Verifikation¨ wie Synonyme behandeln.

Die Definitionen werden hier nach der Norm gewählt.

Software Verification

Software Verifikation führt den objektiven Beweis, dass der ¨Design Output¨ einer einzelnen Phase im Softwareentwicklungslebenszyklus alle spezifizierten Requirements erfüllt.
Software Verifikation überprüft die Widerspruchsfreiheit, die Vollständigkeit und die Korrektheit von Software und ihrer Dokumentation, wie sie entwickelt wird und unterstützt anschließend Schlussfolgerungen ob die Software validiert ist.

Software Tests sind eine von mehren Verifikationsmöglichkeiten, die belegen sollen dass das Softwareentwicklungsergebnis (Design Output) den eingeflossenen Requirements (Design Input) entspricht.

Verfikationsmöglichkeiten/Aktivitäten zur Verifizierung von Software sind u.a.

  • Code Analysen
  • Softaretests
    • Code-Durchgänge bzw. Debugging
    • Logging
    • Unit Tests …
  • Dokumentenreviews
  • und viele weitere Techniken …

Software Validierung

Software Validierung ist Teil der Design Validierung für ein fertiges Gerät, wird aber nicht separat in der Qualitätssystemverordnung aufgeführt.

Die FDA erwähnt Software Validierung als…

¨… Bestätigung durch Untersuchungen und Erbringung eines objektiven Beweises, dass die Software Spezifikation konform zu den Benutzeranforderungen und dem vorgesehenem Verwendungszeck ist und das einzelne Requirements, die durch Software implementiert wurden, durchgängig erfüllt sind.¨
In der Praxis können Software Validierungsaktivitäten, die sicherstellen ob die Software Requirements erfüllt sind, sowohl während der Entwicklung als auch am Ende des Software Development Life Cycles auftreten.
Seit Software für gewöhnlich ein Teil größerer Hardwaresysteme ist, wird die Softwarevalidierung den Beweis beinhalten, dass alle Software Requirements korrekt , komplett und nachvollziehbar/rückverfolgbar zu den System Requirements implementiert/umgesetzt wurden.
Die Schlussfolgerung darauf, dass Software validiert ist, hängt stark von ausführlichen Softwaretests, Überprüfungen, Analysen und anderen Software Verifikationsaktivitäten ab, die in den verschiedensten Phasen des Software Development Life Cycles ausgeführt werden.
Das Testen der Softwarefunktionalität des Gerätes in einer simulierten Benutzungsumgebung und Benutzer-seitiges Testen sind typische Bestandteile des allgemeinen Design Validierungsprogrammes.

Software Verifikation und Validation ist schwer, weil ein Entwickler nicht ewig testen kann. Es ist auch nicht leicht zu wissen, wieviel Beweisführung notwendig ist. Software Validierung beinhaltet die Entwicklung eines gewissen Vertrauensgrades (¨level of confidence¨) in die Erfüllung der Anforderungen, Benutzererwartungen und automatisierten Softwarefunktionen und -features des Gerätes.
Maßnahmen über gefundene Defekte in Spezifikationsdokumenten und Abschätzungen über verbleibende Defekte, Testabdeckungen und andere Techniken werden alle genutzt um einen angemessenen Vertrauensgrad (¨level of confidence¨) zu entwickeln, bevor das Produkt in den Markt kommt.
Der Vertrauensgrad, der Grad der Softwarevalidierung und -verifikation, sowie der benötigte Testaufwand wird in Abhängigkeit des Sicherheitsrisikos und der Gefahr (Hazard) der automatisierten Funktionen des Gerätes variieren.

Zusätzliche Leitlinien bezüglich des Risikomanagements für Software beinhaltet der internationale Standard ISO/IEC 14971-1 und IEC 60601-1-4 (Referenziert in Anhang A).

IQ/OQ/PQ

Für viele Jahre haben sowohl die FDA, als auch die regulierte Industrie versucht Software Validierung im Kontext der Prozessvalidierungsterminologie zu verstehen und zu definieren. Zum Beispiel beschreiben Industriedokumente und andre FDA Validierungsrichtlinien manchmal die Benutzer-seitige Software Validierung in den Begriffen:

  • Installationsqualifikation (IQ)
  • Operationale Qualifikation (OQ)
  • Performancequalifikation (PQ)

Diese Begriffe und zusätzliche Informationen bezüglich der Begriffe IQ,OQ und PQ können in den folgenden FDA Richtlinien gefunden werden:

  • Guideline on General Principles of Process Validation (May 1987)
  • Glossary of Computerized System ans Software Development Terminology (August 1995)

Während die IQ/OQ/PQ Terminologie ihren Zweck sehr gut erfüllt hat und eine von mehreren gültigen Möglichkeiten für die Organisation von Softwarevalidierungsaufgaben auf der Benutzerseite ist, wird sie von vielen Softwareexperten nicht ausreichend verstanden und wird hier daher nicht weiter behandelt. Jedoch müssen sowohl dem FDA Personal, als auch dem Personal des Geräteherstellers die tatsächlichen Unterschiede in der Terminologie bewusst sein, falls Informationenen über Software Validierung eingefordert werden.

Software Entwicklung als Teil des System Designs

Die Entscheidung Systemfunktionalität durch Software zu implementieren wird typischerweise während des System Designs gemacht. Software Requirements sind üblicherweise von den allgemeinen System Requirements und dessen Design, welches beabsichtigt diverse Teile in Software zu implementieren, hergeleitet.
Für ein fertiggestelltes Gerät gibt es einen Anwenderbedarf (user needs) und einen Verwendungszweck (intended use) , wobei Benutzer in der Regel die Entscheidung, welche Requirements durch Hardware oder Software realisiert werden, nicht treffen.
Folglich muss Software Validierung im Kontext der Gesamtvalidierung des Systems betrachtet werden.

Ein ausdefiniertes Lastenheft präsentiert den Anwenderbedarf und den Verwendungszweck, für den das Produkt entwickelt wird/wurde. Das Primärziel von Softwarevalidierung ist zu zeigen, dass fertige Softwareprodukte die dokumentierten Software Requirements und System Requirements erfüllen.

Die Korrektheit und Komplettheit der System Requirements und Software Requirements wird als Teil des Design Validierungsprozesses des Gerätes verstanden. Software Validierung beinhaltet die Konformitätsbestätigung aller Software Spezifikationen und die Bestätigung das alle Software Requirements zurückfolgbar (Tracability) in die Systemspezifikationen sind.
Das Nachweisen und Belegen der allgemeinen Design Validierung des Gesamtsystems ist ein wichtiger Teil um sicherzustellen, das alle Aspekte des Medizingerätes mit den Benutzderbedarfen und dessen Verwendungszweck konform sind.

Unterschiede von Software zu Hardware

Obwohl Software und Hardware oft die selben Engineeringaufgaben haben, gibt es gravierende Unterschiede.
Hier einige Beispiele:

  • Die häufigsten Softwareprobleme sind auf Fehler zurückzuführen, die während des Design und Development Prozesses gemacht wurden, während die Qualität eines Hardware Produktes stark von Design, Entwicklung und der Produktion abhängt, ist die Qualität eines Software Produktes primär von Design und Entwicklung mit wenig Bedenken bzgl. Ihrer Herstellung geprägt. Softwareerstellung bedeutet lediglich das Kopieren/Vervielfältigen von Programmen, was leicht zu verifizieren ist. Es ist nicht schwer tausende Kopien eines Programmes herzustellen die exakt wie das Original funktionieren. Die Schwierigkeit besteht darin, dass das Original-Programm  alle Spezifikationen erfüllt.
  • Software kann eine alternative Serie von Anweisungen ausführen, die von der ursprünglichen Eingabe abhängig sind.  Dies ist der am meisten beitragende Faktor für die unterschiedliche Charakteristik von Hardware und Software und ihrer Komplexität. Sogar kurze Programme können sehr komplex und schwer zu verstehen sein
  • Üblicherweise kann das Testen alleine nicht sicherstellen, dass Software vollständig und korrekt ist. Zusätzlich zum Testen werden weitere Verifikationsmaßnahmen und ein gut strukturierter und dokumentierter Entwicklungsprozess kombiniert um einen umfassenden Validierungsansatz sicherzustellen.
  • Im Gegensatz zu Hardware  ist Software nicht physisch und kann daher nicht verschleissen. Software kann sich im Alter verbessern, wenn verborgene Defekte aufgedeckt und entfernt werden.  Die Tatsache, dass Software Updates und Änderungen erhält, birgt die Gefahr dass neue Defekte entstehen können, die durch die Änderung kommen können.
  • Im Gegensatz zu manchen Hardwarefehlern, treten Softwarefehler häufig ohne Vorwarnung auf. Programmverzweigung, die es erlaubt verschiedene Programmabschnitte während der Ausführung zu durchlaufen, kann Fehler noch lange Zeit nach der Markteinführung verstecken.
  • Eine weitere Charakteristik von Software ist die Leichtigkeit und Geschwindigkeit in der sie geändert werden. Dieser Faktor lässt Soft- und Hardwareexperten glauben, dass Software Probleme leicht gelöst werden können. Die Kombination mit dem fehlenden Verständnis von Software lässt Manager glauben, dass kontrolliertes Engineering bei Software nicht zu wichtig ist, wie bei Hardware. In Wirklichkeit ist aber genau das Gegenteil der Fall. Wegen der Komplexität sollte der Entwicklungsprozess von Software stärker kontrolliert werden, als der von Hardware, um Probleme die später schwer erkannt werden können im Entwicklungsprozess zu verhindern.
  • Im Software Code unbedeutend erscheinende Änderungen können unerwartete und sehr signifikante Probleme an einer anderen Stelle des Programmes verursachen (Seiteneffekte).
  • Aufgrund der hohen Nachfrage an Softwareexperten und ihrer Mitarbeit in verschiedenen Projekten an unterschiedlichen Orten, muss das Softwarepersonal, welches Änderungen an der Originalsoftware macht, nicht in die Erstellung der Oríginalsoftware involviert sein. Eine genau Dokumentation der Software ist unerlässlich.
  • Historisch gesehen sind Softwarebausteine nicht so häufig von Standardisierung und Änderungen wie HW Komponenten betroffen. Jedoch  fangen die Entwickler von medizinischen Geräten an komponentenbasierte Entwicklungstools und -techniken zu nutzen. Objektorientierte Methoden und die Benutzung von Standardsoftwarebausteinen versprechen eine schnellere und weniger kostspielige Entwicklung. Jedoch benötigen komponentenbasierte Ansätze eine besondere Achtsamkeit während der Integration. Vor der Integration wird Zeit benötigt um wiederverwendbare Software vollends zu definieren und entwickeln und um das Verhalten von Standardsoftwarekomponenten gänzlich zu begreifen.

Aus diesen und den selbern Gründen, benötigt Software Engineering eine stärkere Kontrolle als Hardware Engineering.

Vorteile von Softwarevalidierung

Softwarevalidierung ist ein kritisches Werkzeug, welches benutzt wird um die Qualität von Gerätesoftware sicherzustellen.
Softwarevalidierung …

  • … verbessert die Gebrauchstauglichkeit
  • … die Ausfallsicherheit des Gerätes,
  • … führt zu sinkenden Fehlerraten,
  • … führt zu weniger Rückrufen und Korrekturarbeiten,
  • … führt zu einer Verringerung des Patienten- und Benutzerrisiko
  • … führt zu reduzierten Haftungsbedingungen
  • … reduziert die Langzeitkosten von Software …
    • … durch Verbesserung der Betriebssicherheit bei Softwareänderungen und der Revalidierung der geänderten Software
    • … durch die Reduzierung von Wartungsaufwänden

Design Review

Design Reviews sind eine dokumentierte, umfassende und systematische Überprüfungen des Designs um die Angemessenheit der Design Requirements zu bewerten, deren Tauglichkeit sicherzustellen  und Probleme zu identifzieren. Während in einem Entwicklungsteam während eines Softwareprojektes viele formlose technische Design Reviews stattfinden können, ist ein formelles Design Review strukturierter und enthält Beteiligung von anderen Mitarbeitern außerhalb des Entwicklungsteams. Formelle Design Reviews können Ergebnisse von anderen formellen oder informellen Design Reviews referenzieren oder einbeziehen. Design Reviews können separat für die Software durchgeführt werden, nachdem die Software mit der Hardware in ein System integriert wurde.
Design Reviews sollten die Überprüfung

  • zur Einhaltung des Development Planes
  • der Requirements Spezifikation
  • der Design Spezifikation
  • des Testplans und -prozeduren
  • allen anderen Dokumenten und Akvtitäten die mit dem Projekt in Verbindung gebracht werden
  • Ergebnisse von Verifikation jedes Stadiums des defnierten Lebenszyklusses
  • Valildierungsergebnisse des Gesamtgerätes

enthalten.

Design Reviews sind das Primärwerkzeug für das Management und die Bewertung von Entwicklungsprojekten. Zum Beispiel erlauben es formelle Design Reviews zu bestätigen, dass alle Ziele, die im Softwarevalidierungsplan definiert wurden, auch erreicht sind. Die Verordnung für Qualitätssysteme erfordert mindestens ein formelles Design Review während der Entwurfsphase des Gerätes. Jedoch wird empfohlen, mehrere Design Reviews durchzuführen (beispielsweise am Ende jeder Aktivität im Softwarelebenszyklus, als Vorbereitung auf die nächste Aktivität). Formelle Design Reviews sind besonders gegen Ende der Anforderungsaktivitäten, vorher wurden die Hauptressources zu den spezifischen Lösungen. Probleme die an diesem Punkt gefunden werden, können einfach gelöst werden, Zeit und Geld sparen und reduzieren die Wahrscheinlichkeit für das Übersehen eines kritischen Fehlers.
Die folgenden Antworten auf ein paar Schlüsselfragen sollten während des formellen Design Reviews dokumentiert werden:

  • Wurden die entsprechenden Aufgaben, erwarteten Ergebnisse, Outputs oder Produkte definiert, dokumentiert oder implementiert für alle Aktivitäten im Softwarelebenszyklusses?
    • Entsprechen die Aufgaben und die erwarteten Ergebnisse, Outputs oder Produkte aller Aktivitäten im Softwarelebenszyklus allen Anforderungen anderer Aktivitäten im Softwarelebenszyklus in Sachen Korrektheit, Vollständigkeit, Konsistenz und Genauigkeit?
    • Erfüllen die Aufgaben und die erwarteten Ergebnisse, Outputs oder Produkte aller Aktivitäten im Softwarelebenszyklus die Standards, die Praxis und Abmachungen der Aktivität
    • Defnieren, dokumentieren oder implementieren  die erwarteten Ergebnisse, Outputs oder Produkte aller Aktivitäten im Softwarelebenszyklus eine angemessene Basis um Aufgaben für die nächste Life Cycle Aktität zu initiieren?

Grundlagen der Software Validierung

Dieser Abschnitt listet die allgemeinen Grundlagen, die bei der Validation von Software berücksichtigt werden sollten.

Requirements

Eine dokumentierte Software Requirements Spezifikation stellt eine Baseline sowohl für Validierung als auch für die Verifizierung zur Verfügung. Der Softwarevalidierungsprozess kann ohne eine ausdefinierte und  dokumentierte Software Requirements Specification nicht abgeschlossen werden (Ref: 21 CFR 820.3(z) and (aa) and 820.30(f) and (g)).

Fehlervermeidung

Softwarequalitätssicherung sollte sich auf die Verhinderung von Fehlern in den Software-Entwicklungsprozess fokussieren und nicht versuchen, die Qualität in den Softwarecode „reinzutesten“, nachdem er geschrieben wurde. Das Testen von Software ist sehr beschränkt in seiner Fähigkeit alle verborgenen Fehler im Code ans Tageslicht zu führen. Zum Beispiel verhindert die Komplexität am meisten bei Software, dass sie vollständig getestet wird.
Das Testen von Software ist eine notwendige Aktivität. Jedoch ist das Testen von Software durch Software meistens nicht ausreichend um die Gewissheit zu erlangen dass die Software ihren vorgesehenen Verwendungszweck (Intended Use) erfüllt.
Damit man der Software ein gewisses Vertrauen zukommen lassen kann, sollten Softwareentwickler eine Mischung von Methoden und Techniken anwenden um Softwarefehler zu verhindern und zu erkennen das Software Fehler auftreten können. Die beste Mischung von Methoden hängt von vielen Faktoren ab, die Eintwicklungsumgebung, Anwendung, Projektgröße und das Risiko eingeschlossen.

Zeit und Aufwand

Den Status zu erhalten, das Software validiert ist benötigt Zeit und Aufwand. Die Vorbereitung der Softwarevalidierung sollte früh anfangen, z.B. während der Design und Development Planung und dem Design Input. Der Entschluss, dass die Software validiert ist, sollte aus den gesammelten Nachweisen geplanter Validierungsaktitäten stammen, die im Laufe des Software-Lebenszyklus angefallen sind.

Software Life Cycle

Die Software Validierung gehört zu einem gelebten Softwarelebenszyklus. Der Softwarelebenszyklus beinhaltet Softwareengineeringaufgaben und Dokumentation die notwendig sind, um den  Softwarevalidierungsfortschritt zu unterstützen. Zusätzlich beinhaltet der Softwarelebenszyklus spezifische Verifikations- und Validierungsaktivitäten, die dem Verwendungszweck (Intended use) der Software entsprechen. Diese Leitline empfiehlt keine einzelnen Life Cycle Modelle – nur das sie ausgewählt und für ein Softwareentwicklungsprojekt genutzt werden sollten.

Validierungspläne

Der Softwarevalidierungsprozess wird durch die Benutzung eines Planes definiert und kontrolliert. Der Softwarevalidierungsplan legt fest, was während den Softwarevalidierungsaktivitäten erreicht werden soll. Softwarevalidierungspläne sind ein bedeutsames Werkzeug für Qualitätssysteme. Softwarevalidierungspläne legen den Rahmen, den Ansatz, die Mittel, die Pläne, die Validierungsaktivtäten und ihren Umfang sowie Aufgaben und Arbeitspunkte fest.

Prozeduren

Der Softwarevalidierungsprozess wird durch die Benutzung von Prozeduren ausgeführt. Diese Prozeduren legen fest, wie die Softwarevalidierungsaktivitäten durchgeführt werden sollen.Die Prozeduren sollten die speziellen Aktionen oder Schritte identifizieren, die durchgeführt werden müssen um individuelle Validierungsaktivitäten, Aufgaben und Arbeitspunkte auszuführen.

Softwarevalidierung nach Änderungen

Durch die Komplexität von Software, kann eine unscheinbare kleine Änderung maßgebliche Auswirkungen auf das Gesamtsystem haben. Wenn eine Änderung (sogar eine kleine Änderung) an der Software gemacht wird, muss der Validierungsstatus der Software neu festgelegt und dokumentiert werden.
Wenn eine Software geändert wird, muss eine Validierungsanalyse nicht nur für die Validierung der aktuellen Änderungen gemacht werden, sondern es muss auch das Ausmaß und die Auswirkungen dieser Änderung auf das Gesamtsystem betrachtet werden.
Basierend auf dieser Analyse sollte der Softwareentwickler eine entsprechende Anzahl an Softwareregressionstests durchführen um zu zeigen, das ungeänderte aber gefährdete Systemabschnitte nicht nachteilig beeinträchtigt wurden. Design Kontrollen und entsprechende Regressionstests unterstützen das Vertrauen dass die Software nach den Änderungen noch validiert ist.

Validierungsabdeckung – Validation Coverage

Die Validierungsabdeckung sollte auf der Softwarekomplexität und ihren Sicherheitsrisiken basieren – nicht auf der Firmengröße oder irgendwelchen Randbedingungen. Die Auswahl von Validierungsaktivitäten, Aufgaben und Arbeitsschritten sollte entsprechend der Komplexität des Softwaredesigns und -nutzung und den damit verbundenen Risiken für den Verwendungszweck ausgeführt werden. Bei geringem Risiko können auch nur Baselinevalidationen durchgeführt werden. Sobald sich das Risiko erhöht, sollten zusätzliche Validierungsaktivitäten hinzugefügt werden um das zusätzliche Risiko abzudecken. Die Validierungsdokumentation sollte ausreichend sein um zu zeigen, dass alle Softwarevalidierungspläne und -prozeduren erfüllt wurden.

Unabhängigkeit vom Review – Independence of Review.

Valdierungsaktivitäten sollten mit dem Qualitätssicherheitsgebot „Unabhängigkeit vom Review“ durchgeführt werden. Selbstvalidierung ist sehr schwer. Eine unabhängige Bewertung ist immer besser, besonders bei Anwendungen mit höherem Risiko. Manche Firmen handeln für Dritte/Fremdfirmen Verifikation und Validation aus, aber diese Lösung wird nicht immer machbar sein. Ein weitere Ansatz ist es Betriebsangehörigen, die nicht in ein Design involviert  sind, aber ausreichendes Wissen für die Durchführung der Projektvalidation und -verifikation besitzen, zuzuweisen.

Flexibilität und Verantwortlichkeiten

Spezielle Umsetzungen der Softwarevalidierungsgrundsätze können sich von Anwendung zu Anwendung unterscheiden. Der Gerätehersteller hat die Flexibilität bei der Wahl, wie Validierungsprinzipien  ausgewählt werden, aber behält die ultimative Verantwortung zu zeigen, dass die Software validiert ist.
Software wird  in einem breitem Spektrum an Umgebungen und für ein reiches Angebot an Geräten mit unterschiedlichen Risiken entworfen, entwickelt, validiert und reguliert.Medizingeräteanwendungen, die von der FDA reguliert sind, enthalten Software die …

  • … eine Komponente, ein Teil oder Zuberhör eines medizinischen Gerätes ist
  • … selber ein Medizingerät ist oder
  • … für die Produktion, den Entwurf, die Entwicklung oder andere Teile des Qualitätssystems ist.

In jeder Umgebung, können Softwarebausteine von vielen Quellen genutzt werden um die Anwendung zu erstellen (z.B. In-House Entwicklung, Standardsoftware, Vertragssoftware, Shareware…). Zusätzlich können Softwarekomponenten in vielen Formen auftauchen (z.B. Anwendungssoftware, Betriebssysteme, Compiler, Debugger, Konfigurationsmanagmenttools und viele mehr). Die Validierung von Software in diesem Umfeld kann niederschmetternd komplex sein, außerdem ist es angebracht, dass alle Softwarevalidierungsgrundsätze berücksichtigt werden, wenn der Softwarevalidierungsprozess aufgesetzt wird. Der resultierende Softwarevalidierungsprozess sollte mit den verbundenen Sicherheitsrisiken, die mit dem System, dem Gerät, dem Produkt oder Prozess in Verbindung gebracht werden, angemessen sein.
Softwarevalidierungsaktivitäten und -aufgaben können zerstreut an verschiedenen Stellen von verschiedenen Organisationen durchgeführt werden. Jedoch, unabhängig der Verteilung, vertraglichen Beziehungen, Komponentenquellen oder der Entwicklungsumgebung bekommt der Gerätehersteller und Spezifkationsersteller die absolute Verantwortlichkeit für die Sicherstellung, das Software validiert ist.

Aktivitäten und Aufgaben

Softwarevalidierung wird  während einer Serie von Aktivitäten und Aufgaben, die während den unterschiedlichen Stadien des Softwarelebenszyklusses geplant und ausgeführt werden, durchgeführt. Diese Aufgaben können einmalig oder häufig durchlaufen werden. Dies ist abhängig vom Lebenszyklusmodell (Life Cycle Model) was im Rahmen von Änderungen während des Softwareprojektfortschritts benutzt wird.

Softwarelebenszyklusaktivitäten

Diese Richtlinie empfiehlt nicht die Benutzung eines speziellen Software Life Cycle Modells. Softwareentwickler sollten ein Softwarelebenszyklusmodell etablieren, was ihrem Produkt und der Organisation entspricht. Das Softwarelebenzyklusmodell, das ausgewählt wird, sollte die Software von ihrer Geburt bis zu ihrem Ausscheiden begleiten. Aktivitäten in einem typischem Softwarelebenszyklusmodell beinhaltet

  • Qualitätsplaung
  • Definition der System Requirements
  • Eine detailierte Software Requirements Spezifikation
  • Der Aufbau des Codings
  • Das Testen
  • Die Installation
  • Die Operation und der Support
  • Die Instandhaltung
  • Die Stilllegung / Retirmenent

Verifikation, Testen und andere Aufgaben die Softwarevalidierung unterstützen treten während jeder dieser Aktivitäten auf.  Ein Lebenszyklusmodell organisiert diese Softwareentwicklungsaktivitäten mit unterschiedlichen Möglichkeiten und stellt ein Framework für das Monitoring und zur Kontrolle des Softwareentwicklungsprojektes bereit. Verschiedene Softwarelebenszyklusmodelle (Wasserfall, Spiralmodell, Rapid Prototyping, inkrementelle Entwicklng, … etc) sind im
FDA Glossar definiert: Glossary of Computerized System and Software Development Terminology

Diese und viele weitere Lebenszyklusmodelle werden in verschiedenen Referenzlisten im Anhang A beschrieben.

Typische Aufgaben, die Validierung begünstigen

Für jede Aktivität im Softwarelebenszyklus gibt es gewisse Aufgaben, die eine Schlussfolgerung begünstigen. Jedoch werden diese speziellen Aufgaben, die durchgeführt werden müssen, ihre Reihenfolge der Ausführung und die Iteration und das Timing ihrer Ausführungen von einem spezifischen Softwarelebenszyklusmodell und den Sicherheitsrisiken der Applikation vorgeschrieben. Für Anwendungen mit geringem Risiko könnten manche Aufgaben nicht notwendig sein. Zumindest sollte der Softwareentwickler jede dieser Aufgaben berücksichtigen, erklären und dokumentieren welche Aufgaben für die spezielle Anwendung nicht sinnvoll sind. Die folgende Diskussion ist generisch und es ist nicht beabsichtigt ein einzelnes Softwarelebenszyklusmodell vorzuschreiben oder eine Reihenfolge festzulegen, in der die Tasks abgearbeitet werden.

Qualitätsplanung

Design und Entwicklungsplanung sollte in einem Plan, der notwendige Aufgaben, Prozeduren für Anomalieberichte und Lösungen, notwendige Ressourcen und Review Anforderungen vom Management, die formelle Design Reviews beinhalten, zusammengefasst werden. Ein Softwarelebenszyklusmodell und damit verbundene Aktivitäten sollten identifziert werden, genauso wie die notwendigen Aufgaben für jede Aktivität im Softwarelebenszyklus.

Im Plan sollte enthalten sein:

  • Die spezifischen Aufgaben für jede Lebenszyklusaktivität
  • Aufzählungen von wichtigen Qualitätsfaktoren
    — Ausfallsicherheit
    — Handhabbarkeit
    — Usability
    — …
  • Methoden und Prozeduren für jede Aufgabe
  • Die Akzeptanzkriterien der Aufgaben

 

 

 

Android statistics and facts

Problem

During the development of android applications the developer has to decide which API Level his applications requires. The API Level is clearly associated with a Android Codename (i.e. Ice Cream Sandwich: 14 and 15 (MR1), Jelly Bean 16 to 17 (MR1), Kit Kat 18…).

A trustable source that shows the frequency of usage for Android Versions can give the information about which versions should be considered retrospective.

Approach

A link collection of  popular sources will be provided in this article. The developer has to customize the androidmanifest.xml in his application to define the minimum API Level.

Solution

Which android versions have to be considered for the development?

http://developer.android.com/about/dashboards/index.html

Where can i get an actual complete list of API Levels and Android Names?

http://developer.android.com/guide/appendix/api-levels.html

 

 

Android: JOYN deaktvieren / ausschalten / ausstellen ohne zu rooten oder Custom ROM zu installieren

Problem

Die deutschen Netzanbieter, insbesondere die Telekom, haben sich darauf geeinigt einen neuen Dienst JOYN als Alternative zu WhatsApp anzubieten. Das Ziel ist es zu verhindern, dass die Kunden alle zu kostenlosen Anbietern wie WhatsApp, Tremor etc wechseln. Seitdem die Handys internetfähig sind können die Provider lediglich über das Anbieten von Paketdatenverbindungen Geld für Nachrichten verdienen. Früher war es möglich pro SMS abzurechnen, heute lediglich je übertragenem Datenvolumen (insofern keine Flatrate vorhanden ist).

Nun ist es leider so, dass dieser JOYN Dienst penetrant nervt, das Handy vibrieren lässt und einem ständig durch Notifications/Statusmeldungen in den Glauben bringt, man hätte gerade eine SMS empfangen. Dies passiert z.B. wenn ein WLAN gefunden wurde. Es passiert auch nachts wenn die WLAN Verbindung mal zusammenbricht. Dies kann fürchterlich nerven

Prämissen

Zunächst sollte die neuste Android Version des Anbieters installiert sein.

Ansatz

In den Menüs der neuen Android Version (hier im Beispiel ein Galaxy S4 mit D1 Vertrag) befindet sich ein Eintrag um JOYN zu deaktivieren.

Lösung für Galaxy S4 mit Telekom D1 Branding

  1. Bild 1: Menü -> Einstellungen (links unten der Button unterhalb des Display)
  2. Bild 2: Verbindungen -> Weitere Einstellungen
  3. Bild 3: JOYN-Dienste
  4. Bild 4: Haken bei JOYN Dienste rausnehmen

wpid-screenshot_2014-04-20-12-51-59.png

wpid-screenshot_2014-04-20-12-52-15.png

wpid-screenshot_2014-04-20-12-52-21.png

wpid-screenshot_2014-04-20-12-52-29.png

Fazit

Das Problem von Custom ROMs die speziell von Mobilfunkanbietern angefertigt und ausgeliefert werden ist nicht nur, das man später in den Besitz der neusten Android Version kommt, sondern auch die nicht-vorhandene Community, die mit leidenschaft Updates und Funktionen in integriert und idealistisch fehlerfreie Software in kurzer Zeit bereitstellt.

Mein BLOG: Besucher-Prognosen mit Google Analytics + WordPress BLOG

Intention

Nachdem ich nun 3 Jahre die Besucherentwicklung meines BLOGs mit Analytics aufzeichnen konnte, liefern die Grafiken, die von Google Analytics generiert werden interpretierbare Ergebnisse die es erlauben eine Prognose mittels Trendermittlung über die Besucherzahlen im kommenten Jahr mittels linearer Regression abzugeben.

Prämissen

Die Artikelzahl ist seit dieser Zeit ebenfalls angewachsen und hat diverse Besucherschübe aufgrund bestimmter Artikel verursacht. Somit kann man nicht genau sagen ob ein weiterer  Anstieg der Besucherzahlen statt findet, wenn keine Artikel mehr eingestellt werden.

Daher unterliegt diese Aussage der Zeitstabilitätshypothese.

Google Analytics Grafik

Besuchertrend

Prognose

Anhand der Grafik lässt sich eine Besucherzahl von 1500 Besuchern pro / Monat im Durchschnitt vorhersagen.

Verifizierung

Die Verifizierung dieser Aussage erfolgt Anfang 2014.

Google Analytics: Der Brandenburg Bug (Der Branden Bug)

Problem

Seit geraumer Zeit wunder ich mich darüber, dass das Karten Overlay in der Google Analytics Statistik keine Besucher aus Brandenburg anzeigt.

Analyse

Nach einigen Gesprächen mit anderen Bloggern, welche Besucherzahlen weit über 500.000 User/Monat haben, fand ich heraus, dass ich nicht der einzige Blogger bin, bei dem Analytics nichts in Brandenburg anzeigt.

Beispiel

kein_brandenburger

Lösung

Bis jetzt hat sich Google dazu noch nicht geäußert.

Es kann natürlich auch hieran liegen:

Ch ch ch ch X-D

Facebook API Snipplets für fbrell.com, FQL, Graph etc..

Beschreibung

Wer sich bei Facebook eingeloggt hat, kann Statistik-Abfragen mit FQL, REST oder der Graph API durchführen.

Javascript-Befehle können einfach auprobiert werden, indem man sich auf http://www.fbrell.com einloggt.

Nachfolgend einige Beispielen für mögliche Abfragen:

Alle URLs die ich gelikt habe

<strong id="name"></strong>

<script type="text/javascript">

// <!&#91;CDATA&#91;
FB.api(
  {
    method: 'fql.query',
    query: 'SELECT user_id,url FROM url_like WHERE user_id = me()'
  },
  function(response) {
    Log.info('API Callback', response);
    laenge=response.length;
    j=0;

    while(j<laenge)      
    {
         document.getElementById('name').innerHTML += (j+1) +'.) '+ response&#91;j&#93;.url+' ';
         j++;
    }   
} );
// &#93;&#93;>
</script>

Das obige Snipplet kann für alle FQL abfragen genutzt werden.

Nachfolgend ein Beispiel über die Graph Api ohne fbrell.com

Meine Freunde …

  • … mit den meisten Wall posts wall_count
  • … mit den meisten Subscribern subscriber_count
  • … mit den meisten Freunden friend_count
  • … mit den meisten Likes likes_count
  • … mit denen ich die meisten Freunde gemeinsam hab mutual_friend_count
  • … die zuletzt ihr Profil geupdated haben profile_update_time

https://graph.facebook.com/fql?q=SELECT uid, name, wall_count, subscriber_count, friend_count, likes_count, mutual_friend_count, profile_update_time FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY DAS_HIER_ERSETZEN DESC

Welche Geräte haben meine Freunde und wo kommen sie her?

Eine schöne Liste über die Geräte der Facebookfreunde und wo sie herkommen erhält man über die GRAPH-API mit der URL:

https://graph.facebook.com/me/friends?fields=location,devices

Man sollte daran denken, dass man ein Token über den GRAPH API Explorer benötigt und dort die entsprechenden Rechte setzt.

Requirements Engineering

Vorwort und Quellen

Dieser Artikel entstand im Rahmen meiner IREB-Zertifizierung zum Certified Professional for Requirements Engineering und beinhaltet eine verdichtete, prüfungsrelevante Zusammenfassung und Ausschnitte des IREB-Werkes „Basiswissen – Requirements Engineering“ von Rupp / Pohl.

Grundlagen

Gründe für Requirements Engineering

  • Budgetüberschreitung
  • völliges Scheitern eines Projektes
  • 60 Prozent der Fehler in der Entwicklung sind aufgrund mangelnder Anforderungen
  • Fehler, die bereits in den Anforderungen entstehen, verursachen bei zunehmendem  Projektfortschritt höhere Kosten und sollte möglichst früh beseitigt werden.
  • Symptome bei mangelhaftem RE sind fehlende und unklare Anforderungen

Gründe für mangelhaftes Requirements Engineering

  • Die Stakeholder denken, dass vieles selbstverständlich ist
  • Kommunikationsprobleme und Konflikte aufgrund von unterschiedlichem Wissen und unterschiedlichen Erfahrungen
  • Projektdruck: Der Auftraggeben will möglichst schnell ein sichtbares Ergebnis präsentiert bekommen

Die vier Haupttätigkeiten des RE

  1. Anforderungen erheben
  2. Anforderungen dokumentieren
  3. Anforderungen abstimmen und prüfen
  4. Anforderungen verwalten

Die Rolle der Kommunikation im RE

Das Verwenden von natürlicher Sprache ist das wichtigste Hilfsmittel im Requirements Engineering. Das Kommunikationsmedium (also ob eine Anforderung schriftlich oder mündlich erfasst wird) spielt ebenfalls eine große Rolle. Es muss eine gemeinsame Begriffswelt zwischen Entwicklung und Realität geschaffen werden und Unklarheiten möglichst besieitigt werden.

Eigenschaften eines Requirements Engineeers

  • Selbstbewusstsein
  • Empathie
  • Analytisches Denken
  • Überzeugungsfähigkeit
  • Konfliktlösungsfähigkeit
  • Moderationsfähigkeit
  • Kommunikationsfähigkeit

Drei Arten von Anforderungen

  • Funktionale Anforderungen
  • Qualitätsanforderungen
  • Randbedingungen

Rolle der Qualitätsanforderungen

Qualitätsanforderungen müssen dokumentiert werden. Folgende Aspekte sind insbesondere zu beachten:

  • Detailierung der Funktionalität (z.B. Sicherheit/Genauigkeit einer Berechnung)
  • Zuverlässigkeit
  • Benutzbarkeit
  • Effizienz
  • Änderbarkeit
  • Übertragbarkeit

System und Systemkontext abgrenzen

systemkontextgrenze

Ursprung und Rechtfertigung von Anforderungen

Die Quelle aller Anforderungen liegt üblicherweise im Systemkontext. Zu den möglichen Aspekten im Systemkontext gehören u.a.

  • Personen
  • Systeme im Betrieb
  • Prozesse
  • Ereignisse
  • Dokumente

Die Systemgrenze ist häufig erst gegen Ende des RE Prozesses eindeutig festgelegt, und hat während dieser Zeit eine Grauzone (beweglich).

Anforderungen ermitteln

Arten von Anforderungsquellen

  • Stakeholder (Kunden, Marketing, Servicetechniker, Entwickler…)
  • Dokumente (rechtliche Vorschriften Normen…)
  • Systeme (Vorbild ist ein Fremsystem als Input)
  • Prozesse (?)
  • Ereignisse (?)

Bedeutung von Anforderungsquellen

Die Hauptaufgabe des Requirements Engineering ist das Ermitteln von Anforderungen an ein geplantes System. Die Anforderungen werden aus unteschiedlichen Anforderungsquellen gesammelt.

Probleme bei unberücksichtigten Anforderungsquellen

Sollte es vorkommen, dass bestimmte Anforderungsquellen nicht berücksichtigt werden, kann sich dieser Zustand mit negativen Folgen auf den gesamten Projektverlauf auswirken.

Dokumentation der Anforderungsquelle „Stakeholder“

Die Dokumentation der Stakeholder sollte mindestens die folgenden Informationen enthalten:

  • Nachname, Vorname
  • Funktion / Rolle / Aufgabe
  • Kontaktdaten
  • Verfügbarkeit während der Projektlaufzeit
    • zeitlich (07:40h bis 17:00h)
    • räumlich (Werk 1 Gebäude 2)
  • Relevanz des Stakeholders
  • Ziele und Interessen bezogen auf das Projekt

Umgang mit Stakeholdern

Mündliche oder schriftlich wird eine Stakeholdervereinbarung festgehalten, in der die Stakeholder Rechte und Pflichten festgelegt sind.

Beispiele:

  • Stakeholder Rechte: Weisungsbefugnisse, Verantwortungsbereiche
  • Stakeholder Pflichten: Aufgaben

KANO-Modell

Bedeutung

KANO stellt in einem 2-Dimensionalen Koordinatensystem gegenüber, wie sich der Realisierungsgrad einer Anforderung auf die Zufriedenheit des Stakeholders auswirkt und stellt dabei fest, dass es 3 Klassen gibt.

Inhalt

Das KANO-Modell kategorisiert, wie sich eine Anforderung auf die Zufriedenheit der Stakeholder ausübt, in 3 Klassen:

  • Basisfaktoren
  • Leistungsfaktoren
  • Begeisterungsfaktoren

Begeisterungsfaktoren sind z.B. Produktmerkmale, die komplett innovativ sind und vom Kunden mit Begeisterung aufgenommen werden. Der Kunde selbst hatte ursprünglich nicht den Anspruch an das Produkt (z.B. Bilder per WhatsApp verschicken mit dem SmartPhone).

Leistungsfaktoren erwartet der Kunde grundsätzlich von dem Produkt wenn er es kauft. Die Liste der Leisungfaktoren hat der Kunde präsent und kann direkt aufzählen was er erwartet.

Basisfaktoren sieht der Kunde als selbstverständlich und als nicht nennenswert an. Sollten diese Merkmale aber nicht vorhanden sein, wird der Kunde sehr unzufrieden sein. Aus diesem Grund nennt er nicht unbeding, dass er diese Produkt-Eigenschaft haben möchte.

Im Laufe der Zeit werden Begeisterungsfaktoren zu Leistungsfaktoren und Leistungsfaktoren zu Basisfaktoren.

Bsp: Die Anforderung SMS VERSENDEN

In der damaligen Zeit war das Versenden von SMS ein High-Tec Feature, welches durch die modernen Handys möglich wurde (Begeisterungsfaktor)

Nachdem die Handys mittlerweile jedes Kinderzimmer erreicht hatten, wurde das Schreiben von SMS zu einer nicht mehr wegzudenkenden Leistung der modernen Geräte  (Leistungsfaktor). Jeder befragte äußerte die Forderung „Ich muss SMS schreiben können!“.

Die heutige Smartphone Generation benutzt SMS nur noch in den seltensten Fällen, da Apps wie „WhatsApp“, welche sogar Bilder und Ton versenden können und das Nutzen von Multiuserchats ermöglichen. Es wird keiner mehr explizit erwähnen, das er SMS versenden möchte. Wäre ein Smartphone nicht dazu in der Lage SMS zu versenden oder zu empfangen, würde dies aber zu extremer Unzufriedenheit beim Kunden führen (Basisfaktor).

Anwendung

Für die Auswahl der zu verwendenden Ermittlungstechniken wird u.a. auch die Betrachtung des KANO Modells genutzt.

Ermittlungstechniken

Bedeutsame Ermittlungstechniken von Anforderungen

  1. Befragungstechniken
    1. Interview
    2. Fragebogen
  2. Kreativitätstechniken (Begeisterungsfaktoren nach KANO)
    1. Brainstorming
    2. Brainstorming paradox
    3. Perspektivwechsel
    4. Analogietechnik
  3. dokumentenzentrierte Techniken (Basisfaktoren nach KANO)
    1. Systemarchäologie
    2. Perspektivenbasiertes Lesen
    3. Wiederverwendung von Anforderungen
  4. Beobachtungstechniken
    1. Feldbeobachtung
    2. Apprenticing
  5. unterstützende Techniken
    1. Mind Mapping
    2. Workshops
    3. CRC-Karten
    4. Audio- und Videoaufzeichnung
    5. Use-Case-Modellierung
    6. Protoyping

Einflussfaktoren für die Wahl der Ermittlungstechnik

  • Risikofaktoren
  • menschliche Einflüsse
  • organisatorische Einflüsse
  • fachlich-inhaltliche Einflüsse
  • angestrebter Detailierungsgrad der Anforderung

Der Einsatz geeigneter Ermittlungstechniken kann projektentscheidend sein. Die besten Ergebnisse werden durch Kombination verschiedener Ermittlungstechniken erzielt.

Dokumentation von Anforderungen

Dokumentationstechnik

Als Dokumentationstechnik bezeichnet man jegliche Arten der Darstellung von Anforderungen

Wozu dokumentieren?

Die Dokumentation nimmt bei der Kommunikation eine zielgerichtete, unterstützende Funktion ein.

  • Anforderungen sind langlebig
  • Anforderungen sind rechtlich relevant
  • Anforderungen sollten allen zugänglich sein

Funktionale Anforderungen

3 Perspektiven

Üblicherweise umfassen Anforderungsdokumente mindestens die folgenden drei Perspektiven eines Systems

  • Strukturperspektive
  • Verhaltensperspektive
  • Funktionsperspektive

Effektiv einsetzbare Formen der Dokumentation

  • Natürlichsprachige Anforderungsdokumentation
  • Anforderungsmodelle wie Use-Case-Diagramme, Klassendiagramme, Aktivitätsdiagramme, Zustandsdiagramme
  • Mischformen von Anforderungsdokumentationen

Vor- und Nachteile für Anforderungsdokumentation in natürlicher Sprache

  • Vorteile
  • für alle Beteiligten verständlich
  • für Anforderungen jeglicher Art geeignet
  • für alle drei Perspektiven geeignet
  • zwingend notwendig um Komplexität von Anforderungen zu erfassen
  • Nachteile
  • oftmal zweideutig da nicht formal
  • Transofrmationseffekte
  • Vermischung der Perspektiven möglich

Modellbasierte Dokumentationsformen von Anforderungen

  • Use-Case-Diagramme
  • Klassendiagramme
  • Aktivitätsdiagramme
  • Zustandsdiagramme

Vorteile von standardisierter Dokumentenstruktur

Nimmt man vorgefertigte Dokumentenstrukturen, hat man die Gewissheit, dass es sich zumeist um vollständige, flexible praxiserprobte Strukturierungen handelt. Zumeist erleichtert es die Verwendung des Anforderungdokumentes in späteren Entwicklungstätigkeiten / Projektphasen (Definition von Testfällen…).

Eine verbreitete standardisierte Dokumentenstruktur

Eine verbreitete Referenzstruktur für Anforderungsdokumente ist IEEE 830-1998 (Referenzstruktur für „Software Requirements Specification“ (SRS).

Wichtige Punkte einer angepassten Standardstruktur

Referenzstrukturen können für gewöhnlich nicht 1:1 übernommen werden, da sie an

  • domänenspezifische
  • projektspezifische
  • unternehmenspezifische

Gegebenheiten angepasst werde müssen.

Aufgaben, die auf Anforderungsdokumenten aufbauen

Im Laufe des Projektes dienen Anforderungsdokumente als Grundlage für diverse Aufgaben.

  • Planung
  • Architekturentwurf
  • Implementierung
  • Test
  • Änderungsmanagement
  • Systemnutzung und Systemwartung
  • Vertragsmanagement

Qualitätskriterien für Anforderungsdokumente

Da Anforderungsdokumente eine Grundlage für alle weiteren Entwicklungsschritte bilden, muss das Dokument bestimmten Qualitätskriterien genügen.

  • Eindeutigkeit und Konsistenz
  • Klare Struktur
  • Modifzierbarkeit und Erweiterbarkeit
  • Vollständigkeit
  • Verfolgbarkeit

Qualitätskriterien für Anforderungen

  • Abgestimmt
  • Bewertet
  • Eindeutig
  • Gültig und aktuell
  • Korrekt
  • Konsistent
  • Prüfbar
  • Realisierbar
  • Verfolgbar
  • Vollständig
  • Verständlich

Die zwei wichtigsten Stilregeln für Anforderungen

  1. kurze Sätze und Absätze
  2. nur eine Anforderung pro Satz formulieren

Bedeutung eines Glossars

Ein Glossar ist eine Sammlung von Begriffsdefintionen für das RE.

Inhalte eines Glossars

  • Kontextspezifische Fachbegriffe
  • Abkürzungen und Akronyme
  • Alltägliche Begriffe, die im gegebenen Kontext eine spezifische Bedeutung haben
  • Synonyme (Mehrere Worte haben eine Bedeutung)
  • Homonyme (Ein Wort hat mehrere Bedeutungen)

Probleme die ohne Glossar auftreten

Eine häufige Ursache von Konflikten, die im RE auftritt, liegt im unterschiedlichen Begriffsverständnis der beteiligten Personen. Um diese Probleme zu vermeiden, ist es notwendig, dass alle relevanten Begriffe in einem Glossar definiert sind.

Regeln für den Umgang mit dem Glossar

  • Das Glossar muss zentral verwaltet werden
  • Es müssen Verantwortlichkeiten zur Glossarpflege definiert werden
  • Das Glossar muss projektbegleitend gepflegt werden
  • Das Glossar muss allgemein zugänglich sein
  • Das Glossar muss verbindlich verwendet werden
  • Die Herkunft der Begriffe sollte im Glossar enthalten sein
  • Das Glossar muss mit den Stakeholdern abgestimmt sein
  • Die Einträge des Glossars müssen eine einheitliche Struktur aufwesen

Es ist vorteilhaft, möglichst frühzeitig mit der Erstellung des Glossars anzufangen. Dadurch reduziert sich der spätere Angleichungsaufwand.

Natürlichsprachige Dokumentation von Anforderungen

5 Transformationsprozesse bei der Wahrnehmung und Darstellung von natürlicher Sprache

Natürliche Sprache ist oft mehrdeutig und kann unterschiedlich interpretiert werden. Die 5 Transformationsprozesse gehorchen gewissen Regeln, welche man nutzen kann um herauszufinden, was der Autor einer Anforderung wirklich gemeint hat.

  1. Nominalisierung
  2. Substantive ohne Bezugsindex
  3. Universalquantoren
  4. Unvollständig spezifierte Bedingungen
  5. Unvollständig spezifierte Prozesswörter

5 Schritte zur Formulierung von Anforderungen mittels einer Satzschablone

Satzschablonen dienen der Reduzierung sprachlicher Effekte während der Anforderungsformulierung. Der Autor wird effektiv dabei unterstützt, qualitativ hochwertige Anforderungen zu erstellen.

Um mit einer Satzschablone Anforderungen zu formulieren, hält man die folgenden Schritte ein:

  1. Festlegen der rechtlichen Verbindlichkeit
    1. Verben
      1. muss/shall (Pflicht)
        1. Rechtlich verbindlich
        2. muss erfüllt sein, sonst kann die Abnahme verweigert werden
      2. sollte/should (Wunsch: Nice-To-Have)
        1. Wäre schön wenn…
        2. Stakeholder besteht nicht drauf
      3. wird/will (Absicht)
        1. Pläne für die Zukunft
        2. System zukunftssicher konzipieren
      4. kann/can (Vorschlag)
      5. Kommentare
    2. Auch Einsatz eines Attributes möglich
      1. Z.B. in Doors kann jedem Objekt/Jeder Anforderung ein Attribut zugewiesen werden
  2. Benennen des Kerns der Forderung
  3. Charakterisieren der Aktivität des Systems
  4. Objekte einfügen
  5. Formulieren von logischen und zeitlichen Bedingungen

Satzschablonen sollten optional sein und lediglich als Hilfsmittel dargestellt dienen, da sich so die besten Erfolge erzielen lassen.

Anforderungen modellbasiert dokumentieren

Definition Modell

Ein Modell ist ein abstrahiertes Abbild einer existierenden Realität oder Vorbild einer zu schaffenden Realität.

3 Eigenschaften von Modellen

Durch die Verwendung von Modellen erreicht man ein verbessertes und schnelleres Auffassen von Sachverhalten und deren Zusammenhängen.

  1. Abbildungseigenschaft: Modelle bilden eine Realität ab
  2. Verkürzende Eigenschaft: Modelle verkürzen die abgebildete Realität
  3. Pragmatische Eigenschaft: Modelle werden für eine spezifische Verwendung konzipiert

2 Definitionselemente von konzeptuelle Modelle

Beschreiben die abzubildende Realität durch eine Menge grafischer Elemente. Zur Modellierung werden konzeptuelle Modellierungssprachen eingesetzt, die über deren

  • Syntax (das sind die Modellierungselemente wie Use Case, Aktion…. und deren gültige Kombinationen)
  • Semantik (Bedeutung der Modellierungselemente)

definiert werden.

Vorteile von Anforderungsmodellen

  • Bildhaft dargestellte Informationen können schneller erfasst werden und prägen sich schneller ins Gedächtnis ein
  • Es kann eine bestimmte Perspektive auf Anforderungen modelliert werden
  • Es können zweckmäßige Abstraktionen der Realität durch die Definition der Modellierungssprache festgelegt werden

Eine Kombination von natürlicher Sprache und Anforderungsmodellen vereinigt die Vorteile beider Dokumentationsarten

Die Bedeutung von Zielen im Requirements Engineering

Ein Ziel ist die intentionale Beschreibung eines von Stakeholdern gewünschten charakteristischen Merkmals des zu entwickelnden Systems, bzw. des zu entwickelnden Entwicklungsprojektes.

Dokumentationsformen von Zielen

Ziele können natürlichsprachig als auch in Form von Modellen dokumentiert werden. Als wesentlichen Bestandteil beim Formulieren von Zielen werden sogenannte Dekompositionsbeziehung für die Definition über- und untergeordneter Ziele verwendet.

Zwei Arten von Zieldekomposition

  1. UND-Dekompoisiton (alle Teilzile müssen erfüllt sein, um das übergeordnete Ziel zu erfüllen)
  2. ODER-Dekomposition (mindestens ein Teilziel muss erfüllt sein, um das übergeordnete Ziel zu erfüllen)

Modellierung von Zielbeziehungen in Und-Oder-Bäumen

undoder

Einsatzziele von Use Cases

Ziel von Use Cases ist, Funktionalitäten eines geplanten oder existierenden Systems aus einer Nutzungssicht auf das System zu untersuchen und dokumenterien zu können.

Dokumentationstechniken von Use Cases

  • Use Case Diagramme
  • Use Case Spezifikationen

Vorteile von Use Case Diagrammen

  • leicht verständlich
  • Dokumentation des Systemkontextes
  • Funktionen

Modellierung von Use Case Diagrammen

Use Cases bestehen aus

  • Akteuren (die Männchen)
  • der Systemgrenze (hier Bibliothekssystem)
  • Use Cases (die Elipsen)
  • verschiedenen Typen von Modellierungselemten (extend / include)
    • <<include>> zeigt auf einen Anwendungsfall, der vom ausgehenden einbezogen wird. Dies wird häufig zwecks Wiederverwendung eines Use Cases gemacht
    • <<extend>> ist eine optional bedingte Erweiterung eines Use Cases. Der Pfeil zeigt vom erweiternden Use Case auf den abstrakten. Im Beispiel unten wäre das wie das derive, was „Katalog durchsuchen“ konkretisiert.

Anmerkung: Die Pfeilbezeichnung „derive“  ist keine Standardspezifikation von UML Use Cases und sollte hier durch <<EXTEND>> oder <<INCLUDE>> ersetzt werden. Die Pfeillinien sollten gestrichelt sein.

Spezifikation von Use Cases

Als Ergänzung für die Use Case Diagramme werden Use Case-Spezifikationen genutzt, um die wesentlichen Eigenschaften einzelner Use Cases zu beschreiben. Für jeden festgehaltenen Use Case wird separat eine vorgegebene Schablone ausgefüllt.

Die Abschnitte der Schablone

  • eindeutiger Bezeichner des Use Case (z.B. Katalog einfach durchsuchen)
  • Name des Use Cases
  • Beschreibung des Use Case
  • auslösendes Ereignis
  • Akteure
  • Ergebnis
  • Vor- und Nachbedingungen
  • Verschiedene Arten von Szenarien
    • Beschreiben exemplarische Ereignisfolgen, die zur erfolgreichen Ausführung des Use Case führen (Hauptszenarien und Alternativszenarien) oder explizit beschreiben, wie innerhalb der Ausführung des Use Case auf Ausnahmesituationen rreagiert werden soll (Ausnahmeszenarien).

Drei Perspektiven auf die Anforderungen

Anforderungen werden im Rahmen der modellbasierten Dokumentation in drei überlappenden Modellierungsperspektiven modelliert

  1. Strukturperspektive
    1. Entity Relationship Diagram
    2. UML Klassendiagramm
  2. Funktionsperspektive
    1. Datenflussdiagramme
    2. UML Aktivitätsdiagramme
  3. Verhaltensperspektive
    1. endliche Automaten
    2. Statecharts

Fokus der Strukturperspektive auf Anforderungen

  • Struktur von Daten
  • Nutzungs- und Abhängigkeitsbeziehungen im Systemkontext

ER-Diagramme

Traditionell wird die Strukturperspektive durch ER Diagramme modelliert, die aus 3 Beziehungen bestehen:

  1. Entitätstypen (Rechtecke)
  2. Beziehungstypen (Linien)
    1. .. enthalten Kardinalitäten (unten 1 oder N/M, bzw. *), die die Häufigkeit der Instanz in der Beziehung zeigen
      1. Ein Angestellter leitet mehrere Projekte
      2. EIn Projekt wird nur von einem Angestelltem geleitet
  3. Attribute (Elipsen)

UML-Klassendiagramme

Ein weiterer verbreiteter Ansatz um Anforderungen in der Strukturperspektive zu modellieren, ist das Verwenden von UML Klassendiagrammen.

Häufig verwendete Modellelemente von UML Klassendiagrammen sind

  • Klassen
  • Assoziationen (mit Multiplizitäten und Rollen)
  • Aggregations- und Kompositionsbeziehungen
  • Generalisierungsbeziehungen

Fokus der Funktionsperspektive auf Anforderungen

  • Verarbeitung von Eingabedaten aus der Umgebung
  • Ausgabedaten für die Umgebung

Konzeptuelle Modelle in der Funktionsperspektive

  1. Datenflussdiagramme
  2. UML Aktivitätsdiagramme

Datenflussdiagramme (Synonym: Kontextdiagramme)

  • Prozesse (Unten das System)
  • Datenflüsse (die Pfeile sind betitelt, im Kontext muss es sich nicht ausschließlich um Daten handeln die fließen, es kann auch etwas physikalisches fließen)
  • Datenspeicher (im RE eher unüblich, da man hier den Kontext beschreiben möchte, aber unten wäre es die Datenbank mit Strich oben, Strich unten)
  • Termintatoren (Rechtecke – unten der Customer i.d.R. Quellen und Senken)

Da die Datenflussdiagramme genutzt werden um den Systemkontext zu beschreiben oder eine Kontextabgrenzung vorzunehmen, werden Speicher i.d.R. nicht verwendet da diese technischer Natur sind und sich eher innerhalb des Systems befinden (dies bezieht sich nur  auf Kontextabgrenzungen im Requirements Engineering).

Nachteile Datenflussdiagramme

Datenflussdiagramme zeigen nicht, unter welchen Bedingungen welche Prozesse ausgeführt werden. Sie eignen sich eher um mit Hilfe der Terminatoren Ein- und Ausgabeparameter im Systemkontext zu dokumentieren.

Um den Kontrollfluss (also den Programm-Verlauf/Ablauf) zu erfassen, müssen Datenflussdiagramme um eine Minispefizikation erweitert werden. Der Kontrollfluss kann durch Aktivitätsdiagramme modelliert werden.

UML-Aktivitätsdiagramme

Bestehen aus folgenden Elementen:

  • Aktion (Rechteck mit abgerundeten Ecken)
  • Start- und Endknoten
  • Kontrollfluss (Pfeil)
  • Objektfluss (Rechteck – zumeist nach einer Aktion und beschreibt den Zustand [z.B. Zielort ERMITTELT] als Ergebnis der vorigen Aktion)
  • Entscheidungsknoten (Raute mit ausgehenden Pfeilen)
  • Zusammenführung alternativer Kontrollflüsse (Raute mit eingehenden Pfeilen)
  • Fork (horizontaler dicker Balken auf den ein Kontrollfluss eingeht und mehrere wegfließen – Beginn von Parallelität/Nebenläufigkeit)
  • Join (horizontaler docker Balken auf den mehrere Kontrollflüsse eingehen und einer wegfließt – Ende von Parallelität / Nebenläufigkeit)
  • Hierarchisierungselemente

Fokus der Verhaltensperspektive von Anforderungen

Der Fokus liegt auf der Modellierung der Zustände, in denen sich ein System befinden kann und die Übergänge zwischen Zuständen (Transitions)

UML-Zustandsdiagramme

  • Zustand (Rechteck mit abgerundeten Ecken)
  • Start- und Endzustand (schwarzer Punkt und schwarzer Punkt mit Ring)
  • Zustandsübergang (Pfeil mit Beschriftung des Ereignisses/der Aktion die zum Übergang führt)
  • Nebenläufigkeit

Anforderungen prüfen und abstimmen

Bedeutung der Überprüfung von Anforderungen

Es wird geprüft ob Anforderungen festgelegten Qualitätskrieterien (z.B. Korrektheit oder Vollständigkeit) genügen. Fehler in den Anforderungen sollten möglichst frühzeitig erkannt und behoben werden. Der Aufwand zur Behebung eines Fehlers, der in den Anforderungen gemacht wurde, ist wesentlich höher je später er entdeckt wird. Das liegt daran, dass der Fehler in den Anforderungen Auswirkungen auf alle Artefakte des Systems haben kann (z.B. Systemarchitektur, Implementierung der Testfälle….)

Bedeutung von (Stakeholder) Konflikten bzgl. Anforderungen

Auswirkung

Konflikte, die nicht beseitigt wurden, können dazu führen, dass Anforderungen einer Stakeholdergruppe nicht umgesetzt werden können bzw. dass das System nicht oder unzureichend akzeptiert und genutzt wird.

Ziele der Abstimmung

Unter den relevanten Stakeholder muss ein gemeinsames und überinstimmendes Verständnis hinsichtlich der Anforderungen an das zu entwickelnde System erarbeitet werden.

Drei Qualitätsaspekte für Anforderungen

  1. Inhalt
  2. Dokumentation
  3. Abgestimmtheit

Prüfkriterien für die Qualitätsaspekte

8 Prüfkriterien für Inhalt

  1. Vollständigkeit des Anforderungsdokumentes
  2. Vollständigkeit der einzelnen Anforderungen
  3. Verfolgbarkeit
  4. Korrektheit / Adäquatheit
  5. Konsistenz
  6. Keine vorzeitige Entwurfsentscheidungen
  7. Überprüfbarkeit
  8. Notwendigekeit

5 Prüfkriterien für Dokumentation

  1. Konformität zum Dokumentationsformat
  2. Konfirmität zur Dokumentenstruktur
  3. Verständlichkeit
  4. Eindeutigkeit
  5. Konformität mit Dokumentationsregeln

3 Prüfkriterien für Abgestimmtheit

  1. Abstimmung
  2. Abstimmung nach Änderung
  3. Konflikte aufgelöst

Sechs Prinzipien der Prüfung von Anforderungen

Um möglichst viele Fehler in den Anforderungen zu identifieren, werden die folgenden Prinzipien eingehalten

  1. Beteiligung der richtigen Stakeholder
  2. Trennung von Fehlersuche und Fehlerkorrektur
  3. Prüfung aus unterschiedlichen Sichten
  4. Geeigner Wechsel der Dokumentationsform
  5. Konstruktion von Entwicklungsartefakten, die auf Anforderungen beruhen
  6. Wiederholte Prüfung

Techniken zur Prüfung von Anforderungen

  • Stellungnahme
  • Inspektion
  • Walkthrough

Währenddessen kommen weitere Techniken zum Einsatz

  • Perspektivenbasiertes Lesen
  • Prüfung von Prototypen
  • Einsatz von Checklisten

Prüftechniken Stellungnahme, Inspektion, Walkthrough, Perspektivbasiertes Lesen, Prüfung durch Prototypen, Einsatz von Checklisten

Aufgaben in der Abstimmung von Anforderungen

  • Konfliktidentifikation
  • Konfliktanalyse
  • Konfliktauflösung
  • Dokumentation von Konfliktlösungen

Arten von Konflikten bezüglich Anforderungen

  • Sachkonflikt
  • Interessenkonflikt
  • Wertekonflikt
  • Beziehungskonflikt
  • Strukturkonflikt

Verschiedene Konfliktlösungstechniken

  • Einigung
  • Kompromiss
  • Abstimmung
  • Variantenbildung
  • Ober-Sticht-Unter
  • Consider-All-Facts
  • Plus-Minus-Interesting
  • Entscheidungsmatrix

Dokumentation der Konfliktlösung

Nach der Konfliktlösung sollte eine Dokumentation darüber stattfinden, wie der Konflikt gelöst wurde und die Gründe die für die daraus resultierende Entscheidung resultieren.

Anforderungen verwalten

Definition von Attributierungsschemata

Um die Attributstruktur für eine Anforderung (z.B. in Doors ein Objekt mit mehreren Spalten) festzulegen, werden Attributierungsschemata verwendet. Attributierungsschemata werden entweder tabellarisch oder in Form von eines Informationsmodells defniert.

Zweck von Attributierungsschemata

Zweck von Attributen ist es, dass die Anforderungen über den gesamten Lebenszyklus des Systems verwaltet werden können.

Wichtige Attributtypen für Anforderungen

  • Identifikator (z.B. die erste Spalte eines Moduls in Doors)
  • Name
  • Beschreibung
  • Quelle
  • Stabilität
  • Kritikalität
  • Priorität

Auch die „rechtliche Verbindlichkeit“ kann anhand eines Attributes als zusätzliche Information zur Anforderung gespeichert werden.

Sichten auf Anforderungen

Sichten dienen der Reduktion von Anforderungskomplexität ist ein reduzierter Zugriff bzw. ein Filtern von Anforderungen in Abhängigkeit der Verwendung notwendig. Hierfür werden Sichten auf die Daten verwendet (z.B. in Doors Views).

  • Selektive Sichten: Darstellung einer Teilmenge der Attributwerte über definierte Selektionskriterien
  • Verdichtende Sichten: Darstellung verdichteter Informationen zu den über definierte Anforderungen ausgewählten Selektionskriterien

Vorgehen zur Priorisierung von Anforderungen

  • Bestimmung der Ziele und Randbedingungen der Priorisierung
  • Bestimmung der Priorisierungskriterien
  • Bestimmung der relevanten Stakeholder
  • Auswahl der zu priorisierenden Artefakte

Techniken zur Priorisierung von Anforderungen

  • Ranking und Top-Ten-Technik
  • Ein-Kriterium-Klassifikation
  • Kano-Klassifikation
  • Wiegers’sche Priorisierungsmatrix

Nutzen der Verfolgbarkeit von Anforderungen

  • Vereinfachung der Nachweisbarkeit
  • Identifikation von unnötigen Eigenschaften im System
  • Identifikation von unnötigen Anforderungen
  • Unterstützung der Auswirkungsanalyse
  • Unterstützung der Wiederverwendung
  • Unterstützung der Festlegung der Zurechenbarkeit
  • Unterstützung der Wartung und Pflege

Klassen von Verfolgbarkeitsbeziehungen

  • Pre-Requirement-Specification-Traceability
  • Post-Requirements-Specification-Traceability
  • Traceability zwischen Anforderungen

Repräsentationsformen von Verfolgbarkeitsbeziehungen

  • Textuelle Refernzen und Hyperlinks
  • Verfolgbarkeitsmatrizen
  • Verfolgbarkeitsgraphen

Versionierung von Anforderungen

Es wird ermöglicht verschiedene Entwicklungsstände und Anforderungsdokumente verfügbar zu halten. Die Versionsnummer einer Anforderungs besitzt dabei mindestens zwei Bestandteile

  1. Version
  2. Inkrement

Version 2.1 (<- Inkrement ist 1)

Bildung von Anforderungskonfigurationen

Anforderungskonfigurationen fassen eine definierte Menge logisch zusammengehörender Anforderungen zusammen. Jede Anforderung ist maximal in einer Version in der Anforderungskonfiguration enthalten.

Bildung von Anforderungsbasislinien

Die Bildung von Anforderungskonfigurationen wird entlang zweier Domensionen definiert:

  • Produktdimension: die einzelenen Anforderungen der Anforderungsbasis
  • Versionsdimension: die verschiedenen Versionsstände einer Anforderung

Bedeutung von Anforderungsänderungen

Über den gesamten Lebenszyklus eines Systems ändern sich Anforderungen. Diese Änderungen werden in einem systematischen Änderungsmanagementprozess verwaltet.

Aufgaben und Vertreter des Change-Control-Board

In einem Änderungsmanagementprozess ist das Change-Control-Board für die Bearbeitung eingehender Änderungsanträge verantwortlich. Die Aufgaben des Change-COntrol-Boards sind

  • Klassifikation eingehender Änderungsanträge
  • Bestimmung des Aufwands einer Änderung
  • Beurteilung der Änderungsanträge hinsichtlich Aufwand/Nutzen
  • Definition neuer Anforderugnen auf Basis eingehender Änderungsanträge
  • Entscheidung über Annahme oder Ablehnung eines Änderungsantrags
  • Priorisierung der angenommenen Änderungsanträge
  • Zuordnung der Änderungen zu Änderungsprojekten

Aufbau eines Änderungsantrages für Anforderungen

  • Identifikator des Änderungsantrages
  • Titel des Änderungsantrages
  • Beschreibung der notwendigen Änderung
  • Begründung für die Notwendigkeit der Änderung
  • Datum der Beantragung
  • Antragsteller
  • Prioriät der Änderung aus Sicht des Antragstellers

3 Klassen von Änderungsanträgen

  1. Korrektive Änderungen
  2. Adaptive Änderungen
  3. Ausnahmeänderungen

Vorgehen zur Bearbeitung von Änderungsanträgen

  • Auswirkungsanalyse und Beurteilung des Änderungsantrages
  • Priorisierung der Anforderugnsänderung
  • Zuordnung der Änderung zu einem Änderungsprojekt
  • Kommunikation der Annahme/Ablehnung des Änderungsantrages

Werkzeugunterstützung

Acht Eigenschaften eines Requirements Management Werkeugs

  • Verschiedene Informationen verwalten
  • Logische Beziehungen zwischen Informationen verwalten
  • Jedes Artefakt eindeutig identifierzieren
  • Informationen flexibel und sicher zugänglich machen
  • Sichten auf die Informationen unterstützen
  • Informationen organisieren
    • Attributierung
    • Hierarchiebildung
  • Berichte über Infromationen erstellen
  • Dokumente aus den Informationen generieren

Spezielle Tools für das Requirements Engineering sind IBM Doors oder Polarion.

Fünf Gesichtspunkte bei der Einführung von Requirements Engineering Werkzeugen

  • Benötigte Ressourcen planen
  • Risiken durch Pilotprojekte umgehen
  • Evaluierung anhand von definierten Kriterien
  • Über Lizenzkosten hinausgehende Kosten berücksichtigen
  • Benutzer schulen

Sieben Sichten auf Requiremtns Engineering Werkzeuge

  • Projektsicht (z.B. Unterstützung der Projektplanung)
  • Benutzersicht (insbesondere Bedienung)
  • Produktsicht (Funktionalität)
  • Prozesssicht (methodische Unterstützung)
  • Anbietersicht (z.B. Service des Anbieters)
  • Technische Sicht (z.B. Interoperabilität, Skalierbarkeit)
  • Betriebswirtschaftliche Sicht (Kosten)

Für jede Sicht sind klare Kriterien zu definieren.

Welcher Prozess / Benutzer sperrt eine Datei?

Problem

Man erhält die Meldung, dass ein Prozess oder ein Benutzer eine Datei sperrt

Ansatz

* Herausfinden welcher Prozess die Datei sperrt bzw…
* Herausfinden welcher user die Datei sperrt (Windows Server)
* Prozess beenden

Lösung

Prozess sperrt Datei

Um herauszufinden welcher Prozess eine Datei sperrt, gibt es von Dr. Hoiby das Freeware Tool WhoLockMe. Es bietet an, den Prozess zu beenden

User sperrt Datei

Wenn ein User eine Datei sperrt, kann man auf dem Server unter Benutzung von

net file

oder

net share

entsprechende Benutzerlocks auffinden.