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

Document Origin
Blog http://www.sapacablog.wordpress.com
Software Requirements Specification https://github.com/sapacaFaceRecognition/Documentation/wiki/Software-Requirements-Specification
Jira http://193.196.7.27:8080/secure/RapidBoard.jspa?rapidView=7&projectKey=SAVI&view=planning
Class Diagram https://github.com/sapacaFaceRecognition/Documentation/blob/master/Class%20Diagramm/Class%20Diagramm.PNG
Gantt Chart https://github.com/sapacaFaceRecognition/Documentation/raw/master/MS%20Project/FaceRecognition_Projektplannung_wddkew.pdf

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. Overall Use Case Diagram

2.3 Product Functions

2.3.1 Product Functions Semester 3

2.3.2 Product Functions Semester 4

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. Use Case: Eye Detection

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