Skip to content

Requirements

aynuraf edited this page Jun 10, 2018 · 40 revisions

Project Drivers (Gul)

Problem Statement

Due to the extinction of some animals, there is no information regarding their movement patterns. In this project, we want to develop a software that allows users to design animals and then simulate possible movement. The application will be accessible for users with no computer science background, such as archaeologists. Therefore a user-friendly UI needs to be designed. The core problem is how such a UI should look like and how the desired functionality can be combined with accessibility so that no further training for the users is needed.

Purpose of the Project

The application will address various kind of users for drawing the 2D object of such as animals, moving objects to see and understand about their movement patterns. In this desktop application, users may be able to use available object to create the 2D skeleton of an animal to take a deep look at their movements. Also, users may able to create new objects with custom parameters such as shapes, angles and moving speed. The purpose of the project is to utilize in the field of research for simulation of objects which is not easy to perform in the real world.

To measure the achievement of the purpose, these are the goals need to be fulfilled:

Goal 1: the users can draw object based on their provided inputs.

Goal 2: the User interface of a desktop application should be intuitive in such a way user can use it without extensive training.

Stakeholders

Client/Customer: Ms.Aynur is a customer of the project who intends to approve the project completion as well as provide the requirements. At the completion, he/she has the final say on the acceptance of the project.

Manager: Dr.Patrick Harms is the manager of the project who will keep track of all activities of the project. Also, will give the technical requirements for the project.

Designers and developers: There are five technical stakeholders are involved in this project, named Mr.Eike, Mr.Dominick, Mr.Gulzaib, Ms.Aynur, and Mr.Jazib, The role of these mentioned stakeholders are to develop and design the complete application from start to end. There are multiple roles associated with each person.

Personas

see in persona file.

Mandated Constraints (Eike)

Solution Constraints

Description: The software will be programmed in C# 7

Rationale: This version of c# offers features which greatly simplify development in some aspects.

Fit criterion: All Projects in the Solution (.sln) target .NetFramework 4.7.1 and the solution compiles successfully.


Description: The software will use .NetFramework 4.7.1

Rationale: This Version allows to use all C# 7 Features which greatly simplifies development in some aspects.

Fit criterion: All Projects in the Solution (.sln) target .NetFramework 4.7.1 and the solution compiles successfully.


Description: The Dektop UI will be developed using the WPF Framework

Rationale: WPF allows a clear seperation between ui and code which lends itself for usability testing and a decoupled code base.

Fit criterion: The Desktop UI Project in the Solution runs on WPF


Description: The software will use Artificial Neural Networks

Rationale: The generated creatures will need some way of interacting with their environment. Neural networks mimic the biological solution for this problem.

Fit criterion: Neural Networks are used.


Description: The software will use Evolutionary Algorithms

Rationale: Neural Networks need to be trained to function properly. It can be considered as a high dimensional optimization problem. Evolutionary Algorithms are a great solution in those cases.

Fit criterion: Evolutionary Algorithms are used.


Description: The core funtionality will be written in a seperate project, that is able to target linux and mac as well.

Rationale: By splitting the functional code base from the UI code base the developers are insentiviced to keep those to seperated. Also potential other front ends can be developed later on for other platforms.

Fit criterion: The project for the core functionality shall not have a reference to any UI project in the solution

Schedule Constraints

The project must be finished by 30.09.2018

Terminology

  • Joint
  • Bone
  • Creature = Joints*+Bones*
  • Terrain = 2D map, side view of an environment
  • Environment = The Terrain that creature would be trained. It has features such as Gravity, Coefficient, etc.
  • Movement Pattern = Something describing the movement of the creature in an Environment
  • Scenario = Creature + Environment + Movement Pattern
  • Training = Process(Scenario) the result is a new Movement Pattern
  • Simulation = Evaluation of a Movement Pattern (given some goals: e,g. target speed)
  • Visualisation = visualize the simulation to the user

The Scope of the Work (Jazib)

The Current Situation

Project Situation

The project currently is in the planning phase. Therefore, there are no current processes that need to be analyzed, replaced or changed. Keeping this in mind, the current situation of the project can be summarized as follows:

  • Brainstorming and coming up with ideas that could be realistically implemented in the proposed timeline of the project.
  • Coming up with a clear and concise role for the team members that are rigorous enough that all areas of the project are covered while flexible enough that team members can easily move between the roles.
  • Effective planning of the project such as various deadlines and milestone that have to be met as well as list of tasks that need to be done in order to realize these deadlines.
  • Product development keeping in mind input from the various stakeholders such as the client(s), product owners, managers, and the development team.

Product Situation

The tools that scientists - such as, archeologists - use currently require a high level of knowledge of computers, programming and software tools in order to create models that simulate the movement of ancient animals in various terrains. Their training does not sufficiently build up the 'computer skills' necessary to carry out these simulations and so research groups have to spend the significant amount of resources to hire or train people to carry out these simulations. Thus, there is a need for a product that would simplify the jobs of these scientists and provide a powerful simulation tool that would require only basic computer operation skills, and allow organizations and research groups to save money, time and effort that they have to otherwise invest in order to carry out these simulations.

The Context of the Work

At it's core, the product aims to simulate the movements of an animal using only the information provided by their skeletal structure. Assuming that the user has the information of the bone structure of the animal and the joints that join them together, the product would allow to do the following:

  • Specify the skeletal - bone and joint - structure of the animal.
  • Specify the type of movement that they need to simulate. These would allow the user to simulate how an animal would walk, run, crawl, climb, jump, swim or fly.
  • Specify the terrain and physical conditions under which the simulations would be carried out. It would allow the user to simulate movement in terrains such as deserts, mountains, marshes, glaciers, in the oceans, or more exotic terrains such as the moon or mars.
  • Once the user has specified these conditions, the product will use artificial neural networks to carry out a generation-wise simulation of the animal's movement. This would work by putting the neural network in the specified terrain with the aim of learning how to carry out the specified type of movement selected. The first generation would have multiple animals trying to carry out the pre-selected movement type in a terrain by manipulating the joints, and would most definitely fail. In each generation, the algorithm would capture the movement pattern of animals that were most successful in carrying out the movement. Using this information, the subsequent generations would utilize the information to perfect the movement style. After enough generations, the neural network would perfect the movement of the animal and would allow the user to develop an understanding of how a certain animal movement in a certain environment.

The Scope of the Product (Aynur and Dominick)

User Stories

Bone creation

  • As a user, I want to save, rename, group and delete self-created or imported bones
  • As a user, I want to import bones from real world bone images
  • As a user, I want to use a scanner to get real world bone images into the software
  • As a user, I want to import real world bone images as image files
  • As a user, I want to see detected bones on real world images before actually importing them
  • As a user, I want to customize the bone recognition tool to improve the result
  • As a user, I want to manually edit recognized bones before importing them

Creature editor

  • As a user, I want to use previously self-created or imported bones to create a new creature
  • As a user, I want to customize a bone and change its size, position and rotation
  • As a user, I want to select multiple bones at the same time, to easier apply same changes to multiple bones
  • As a user, I want to connect two bones by a joint
  • As a user, I want to move a connected bone without breaking the connection by the joint
  • As a user, I want to save, load, copy, cut and paste user selected bone-and-joint constructs for reuse
  • As a user, I want to save my current state so I can work on it later
  • As a user, I want to load a previously saved state of work
  • As a user, I want to be able to zoom in the editor, to have a closer look at details or the creature as a whole
  • As a user, I want to be able to undo and redo changes in the editor step by step

Movement simulation

  • As a user, I want to simulate the movement of a previously created creature
  • As a user, I want to customize the simulation process by defining gravity, terrain settings (normal, ice, sticky)
  • As a user, I want my simulations to automatically be saved, to avoid losing time costly simulation efforts
  • As a user, I want to choose another environment so that I can observe the movement pattern of the selected object in the given environment
  • As a user, I want to see textual and automatically recorded simulation statistics after the simulation (e.g. time needed)

Overall user interface

  • As a user, I want some kind of visual feedback for inconsistent data

Other

  • As a user, I want to insert different bonus paces so that I can get the simulated shapes of creature
  • As a user, I want to choose a previous simulated shape so that I can apply changes to the selected creature
  • As a user, I want to select a simulated shape so that I can observe the movement pattern of the selected object

User scenarios

US1

  1. User logs in as the researcher
  2. User goes to shape simulation section
  3. User inserts different paces of bones
  4. User starts simulation process
  5. User receives the simulation of the animal (object)
  6. User saves the simulated shape.
  7. User goes to movement pattern simulation section
  8. User chooses one shape from simulated shapes
  9. User stats the movement simulation process
  10. User observe the movement pattern of the given object
  11. User chooses another path
  12. User Restarts the movement simulation on the new path
  13. User Observes the movement pattern of the given object in the selected path
  14. User saves the work
  15. User logs out

US2

  1. User logs in as the researcher
  2. User goes to movement pattern simulation section
  3. User chooses one shape from simulated shapes
  4. User stats the movement simulation process
  5. User observe the movement pattern of the given object
  6. User chooses another road
  7. User Restarts the movement simulation on the new path
  8. User Observes the movement pattern of the given object in the selected path
  9. User saves the work
  10. User logs out

US3

  1. User logs in as the researcher
  2. User chooses one of his previous simulated shapes
  3. User edits the selected shape
  4. User saves the selected shape
  5. User goes to movement pattern simulation section
  6. User chooses one shape from simulated shapes
  7. User stats the movement simulation process
  8. User observe the movement pattern of the given object
  9. User chooses another road
  10. User Restarts the movement simulation on the new path
  11. User Observes the movement pattern of the given object in the selected path
  12. User saves the work
  13. User logs out

Use Case Diagrams

Use Case Diagram

Functional Requirements (All)

https://github.com/EikeStein/Fomore/blob/master/assets/images/FR%20-%20Sheet1.pdf

Non-functional Requirements (All after finished)

Look and Feel Requirements

Usability Requirements

Performance Requirements

Robustness or Fault-Tolerance Requirements

Maintainability

Tasks (Eike)

Project Planning

For project planning we will use SCRUM. The sprint duration will be set to 2 weeks at first and maybe adjusted later on.

The main responsibilities are assigned as follows:

  • Scrum Master: Dominick
  • Product Owner: Jazib
  • Backend:
        Data: Jazib
        Algorithms: Eike
  • Frontend:
        Architecture (Wireframes): Dominick
        Editor (Editor): Eike
        Main Application WPF: Aynur
             Creature: Dominick
             Environment: Jazib
             Training: Aynur
             Simulation: Gulzaib
             Style, Theme, Language
        Visualization: Gulzaib
  • Documentation:
        Project Documentation: Aynur
        Code Documentation: Jazib
  • Usability: Dominick
  • Code Reviews: Eike
  • Testing: Gulzaib
  • Final report: Jazib

Team: Everyone

User Documentation and Training