Software Requirements Specification - sapacaFaceRecognition/Documentation GitHub Wiki
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Definitions, Acronyms and Abbreviations
1.3.1 Acronyms and Abbreviations
1.3.2 Defintions
1.4 Overview
2. Overall Description
2.1 Our Vision
2.2 Use Case Model Survey
2.3 Product Functions
2.4 User Characteristics
3 Specific Requirements
3.1 Functionality
3.1.1 Login
3.1.2 Logout
3.1.3 Upload Image
3.2 Usability
3.2.1 Training Time
3.2.2 Hatdware Requirements
3.2.3 Software Requirements
3.3 Performance
3.3.1 Response Time
3.3.2 Throughput
3.3.3 Capacity
3.3.4 Degradtion Mode
3.3.5 Ressource Utilization
3.4 Supportability
3.5 Reliability
3.5.1 Availabilty
3.5.2 Mean Time Between Failures
3.5.3 Mean Time To Repair
3.5.4 Accuracy
3.5.5 Bugs or Defect Rate
3.6 Design Constraints
3.7 On Line User Documentation And Help System Requirments
3.8 Purchased Components
3.9 Interface
3.10 Licensing Requirements
3.11 Legal Copyright And Other Notices
3.12 Applicable Standards
4 Supporting Information
1. Introduction
Dieses Dokument beschreibt die SRS für die Anwendung “SAPACA - FaceRecognition”. Im folgenden Kapitel wird beschrieben und erklärt, was das SRS Dokument beinhaltet. Ebenso wird auf die Absicht (1.1. Purpose), Definitionen/Akronyme (1.3. Definitions, Acronyms, and Abbreviations) und Referenzen (1.4. References) eingegangen.
1.1 Purpose
Die Absicht (Purpose) dieses SRS-Dokumentes ist es, eine detaillierte Beschreibung der Anforderungen für die Anwendung “SAPACA - FaceRecognition” zu geben. Das Dokument wird die einzelnen Funktionen, sowie das Userinterface über die Webseite beschreiben. Es wird ebenfalls auf Hardwareabhängigkeiten, Softwareabhängigkeiten und andere Abhängigkeiten eingegangen.
1.2 Scope
“SAPACA - FaceRecognition” ist eine Anwendung, die benutzt werden kann, um Gesichter auf Bildern zu erkennen. Des Weiteren sollen auch die erkannten Gesichter einer Person zugeordnet werden, sofern diese in der Datenbank existiert.
1.3 Definitions, Acronyms and Abbreviations
###1.3.1 Acronyms, Abbreviations
- CV - Computer Vision
- NA - Not applicable
- SRS - Software Requirements Specification
- TBD - To be determined
- UC - Use Case
###1.3.2 Definitions
- Face Detection - Erkennung von Gesichtern auf Bildern
- Face Recognition - Zuordnung der erkannten Gesichter zu tatsächlichen Personen
- Facial Database - (zu deutsch: "Gesichtsdatenbank") Eine Datenbank, in der erkannte Gesichter mit zusätzlichen Informationen (Name, Nationalität, Alter) gespeichert werden. Die Facial Database wird verwendet, um erkannte Gesichter einer Person zuordnen zu können.
- OpenCV - OpenCV ist eine freie Programmierbibliothek, die Algorithmen zur Bildverarbeitung und Computer Vision (zu deutsch: "maschinelles Sehen") enthält.
1.4 Documents
1.5 Overview
Der Rest des Dokumentes gliedert sich in drei weitere Kapitel. Im zweiten Kapitel wird auf den Systemaufbau und die Funktionalitäten der Anwendung eingegangen. Kapitel drei enthält die Requirements der Anwendung. In Kapitel vier werden weiterführende Informationen aufgeführt.
2. Overall Description
Im folgenden Kapitel wird der Systemaufbau und die Funktionalitäten der Anwendung beschrieben. Es wird darauf eingegangen, wie das System mit anderen Systemen interagiert. Es wird zu Beginn nochmals die Vision (2.1 Our Vision) in gekürzter Form beschrieben.
2.1 Our Vision
Unsere Vision ist es, eine Anwendung zu erstellen, mit der es möglich ist, Gesichter anhand von Bildquellen zu identifizieren. Ferner soll es möglich sein, die Gesichter mit der "Facial Database" abzugleichen und zu erkennen, sofern die Person in der Facial Database existiert, um welche Person es sich handelt.
2.2 Use Case Model Survey
Die folgende Abbildung zeigt das Overall Use Case Diagramm.
2.3 Product Functions
2.3.1 Product Functions Semester 3
- Use Case Detect Face
- Use Case Upload Image
- Use Case Label Image
- Use Case Browse Image
- Use Case Delete Image
2.3.2 Product Functions Semester 4
- Use Case Attributes
- Use Case Bind to Google Search
- Use Case Gender Classification
- Use Case Statistics
2.4 User Characteristics
Die Anwendung bezieht sich auf keine konkrete Zielgruppe.
2.3 Assumptions and Dependencies
- Versionskontrolle: GitHub
- Entwicklungsumgebung: Eclipse, IntelliJ, Visual Studio
- Programmiersprachen: Java (1.8), C++, Python, HTML/JS/CSS (Webinterface)
- Weitere Programmierbibliotheken: OpenCV/JavaCV, Theano
- Datenbank: MySQL
- Testing: Selenium/Gherkin, JUnit
- Build: Gradle
- Scrum: JIRA
2.4 Constraints
Die Anwendung benötigt eine durchgehende/stabile Internetverbindung und einen modernen Internetbrowser (z.B. Google Chrome, Mozilla Firefox).
3. Specific Requirements
Das folgende Kapitel enthält die funktionalen und qualitativen Anforderungen.
3.1 Functionality
Sämtliche Funktionen werden über die Webseite ausgeführt. Bis auf die Loginfunktion (3.1.1 Login) ist es notwendig eingeloggt zu sein, um die unten aufgeführten Funktionen nutzen zu können. Es wird im weiteren Verlauf des Dokumentes darauf verzichtet dies zu erwähnen.
3.1.1 Login
Die Anwendung muss über eine Loginfunktion auf der Webseite verfügen. Es werden zwei Benutzertypen unterschieden: Benutzer und Admin. Zu jedem Benutzertyp wird es nur einen Account geben, der von mehreren Anwendern gleichzeitig benutzt werden kann.
3.1.2 Logout
Die Anwendung muss über eine Logoutfunktion verfügen.
3.1.3 Upload image
Die Anwendung muss über eine Funktion verfügen ein Bild hochzuladen. Das hochgeladene Bild wird für weitere Funktionen benötigt. Use Case: Upload Image
3.1.4 Detect face
Die Anwendung muss über eine Funktion verfügen Gesichter aus Bilder zu erkennen. Use Case: Detect Face
3.1.5 Label image
Erkannte Gesichter sollen mit zusätzlichen Informationen zu der Person versehen werden. Use Case: Label Image
3.1.6 Browse images
Alle erkannten Gesichter müssen über eine Funktion angezeigt werden. Use Case: Browse Images
3.1.7 Delete image(s)
Alle gespeicherten Gesichter sollen vom Benutzer Admin gelöscht werden können. Use Case: Delete Image
3.1.8 Attributes
Zu einem Gesicht werden Age, Age range, Gender, Gender confidence, race, race confidence angezeigt. Use Case: Attributes
3.1.9 Eye Detection
Augen werden in einem Bild erkannt.
3.1.10 Statistics
Es sollen Statistiken zu den gemachten Berechnungen angezeigt werden. Use Case: Statistics
3.2 Usability
3.2.1 Training Time
Durch die intuitive Bedienung der Anwendung wird keine Training Time benötigt, was durch die Verwendung von aussagekräftigen Bezeichnern und bekannten Symbolen verwirklicht wird.
3.2.2 Hardware Requirements
Zum Bedienen der Anwendung wird ein Computer mit einer stabilen Internetverbindung benötigt.
3.2.3 Software Requirements
Es wird ein moderner Browser (z.B. Google Chrome, Mozilla Firefox) und eine aktuelle Version eines Betriebssystems (z.B. Windows oder Mac OS) benötigt. Des Weiteren wird die aktuellste Java Version benötigt und XAMMP.
3.3 Performance
3.3.1 Response Time
Die Response Time hängt zum einen von der Prozessorleistung des Benutzers ab und zum anderen vom hochgeladenen Bild. Da verschiedene Faktoren des hochgeladenen Bildes (Bildqualität, Farbgebung, Histogramm...) die Response Time beeinflussen, können hier keine Angaben gemacht werden.
3.3.2 Throughput
NA
3.3.3 Capacity
Die Applikation muss eine gleichzeitige Benutzung von mindestens 10 Usern ohne Einschränkungen der Funktionen und nicht funktionalen Anforderungen unterstützen.
3.3.4 Degradation mode
NA
3.3.5 Resource utilization
NA
3.4 Supportability
NA
3.5 Reliability
NA
3.5.1 Availability
Das System muss eine 90%ige Erreichbarkeit aufweisen
3.5.2 Mean Time Between Failures
3.5.3 Mean Time To Repair
NA
3.5.4 Accuracy
TBD
3.6 Design Constraints
3.6.1 MVC Pattern
Die Anwendung wird nach dem MVC Pattern implementiert.
3.7 On-line User Documentation and Help System Requirements
Die Webseite der Anwendung wird intuitiv bedienbar gestaltet.
3.8 Purchased Components
NA
3.9 Interfaces
3.9.1
3.10 Licensing Requirements
NA
3.11 Legal, Copyright, and Other Notices
Die Anwendung ist frei verfügbar auf GitHub.
3.12 Applicable Standards
TBD
4. Supporting Information
TBD