APPLICATION DESIGN DOCUMENT FOR THE GOLDEN RATIO EXPERIMENT SYSTEM

auburnhairSoftware and s/w Development

Dec 13, 2013 (3 years and 10 months ago)

101 views

1


APPLICATION
DESIGN DOCUMENT
FOR THE GOLDEN
RATIO EXPERIMENT
SYSTEM














Presented by
: Arseny Krupnik
693476603





Efrat David
037020161


Academic Instructor
: Noam Tractinsky

Version 1.1 (24/07/2011)

2


Table of Contents

1.

Use case diagram
………………………………………………………………………………………..…3
-
8

2.

Data Model
…………………………………………….....……………………………………………..……9
-
16

3.

Behavioral Analysis
…………………………………………………..………………………………..…17
-
23

4.

OO Analysis
………………………………………………………………………….…….……………..……
24
-
30

5.

System Architecture
……………………………………………………………………………...…..…
31

6.

GUI
……………………………………………………………………………………
…..
……………….
32
-
33

7.

Testing
………………………………………………………………………………
…..
……………….
33

8.

Tasks
…………………………………………………………………………………
…..
……………….
34




















3


1.

Use Case Diagram:

Add image
parameters
Add image
Add question
Compose an
Experiment
Test
-
run

Experiment System
researcher
subject
data Processing
-
End
1
*
-
End
2
*
-
End
3
*
-
End
4
*
-
End
5
*
-
End
6
*
-
End
9
*
-
End
10
*
-
End
11
*
-
End
12
*
-
End
13
*
-
End
14
*


4


Revised a
nd Updated Use Cases

1.


Use Case:
Add image

Actors:
Researcher

Description:
Load image to database.

Preconditions:

The researcher is known to the system.

Post conditions:
The image is updated in database.


Main flow:

1. The researcher wishes

to upload image.

2. The researcher provides his identifier.

3. The system presents the upload images screen.

4. The researcher imports the image.

5. The system uploads the image.

6. The system creates a stimulus for the image for each proportion a
vailible

7. The system stores the image.

8. The system presents success message.

9. in case another upload is required return to 3.

Alternative flow:

6. The upload has not succeed
ed




6.1. The system indicates an error.




6.2. Return to 3.








5


2.

Use Case:
Add image parameters

Actors:
Researcher

Description:
Load parameters for a specific image in database.

Preconditions:

The database consists of images.

Post conditions:
The image parameters are updated in database.



Main flow:

1. The rese
archer wishes to insert parameters to a certain image.

2. The system presents the images it has in DB.

3. The researcher chooses an image.

4. The system presents the “insert parameters” screen.

5. The researcher inserts parameter.


7. The system
stores the parameter.

8. The system creates a stimulus for the proportion for each image available

9. The system presents success message.

10. In case other parameters are required for the current image returns to
4.

11. in case another insert of p
arameters is required return to 2.

Alternative flow:

8. The parameter is not updated




8.1. The system indicates an error.




8.2. Return to 2.






6


3.

Use Case
: Add question:

Actors
: Researcher.


Description
: add question to the database.


Precondition
: the researcher is authorized by the system.


Post Condition
: the questions are saved in the database.


Main flow
:



1.

The researcher logs in to the system.

2.
The system presents the question input screen

3.
The researcher chooses the type
of the question

4.
The researcher fills in the question.

5. The researcher fils in the scale parameters for the question (min and max
values, interval,

7.
The system stores the question in the database.



8.

In case another insert of questions is required

return to 2.

Alternative flow:

6
. The question is not updated




6
.1. The system indicates an error.




6
.2. Return to 2.


Use Case
: Compose an experiment



Actors:
Researcher



Description:
Create and store a
n experiment consisting of a question, Stimuli
and
users.



Preconditions:



a. the database consists of
stimuli of images with updated parameters



b. The database consists of
question
s
,

for example:
which image is more beautiful?

c. the database consists of registered participants

7




Post conditions: The experiment is stored in database.



Main flow:

1.

The researcher wishes to
define an experiment.

2.

The system presents all available questions in DB

3.

The researcher chooses a question.

4.


The system presents the images it has in DB.

5.


The rese
archer chooses an image.

6.


in case anoth
er image is required return to 5

7.


The system presents all available

users with participant permission

in DB

8.

The researcher chooses users.

9.


The system

creates random combinations of the stimuli from the chosen images
and proportions and stores the experiment data for each user
.

10.

The system presents success message.

11.


In case composing another experiment question is required return to 2.


Use Case:
Test

run



Actors: Participant



Description
: Run experiment question and store the
Participant‘s

answer.



Preconditions:


a. the Participant is known to the system.


b. The database consists of

an

experiment

for the particular participant
.



Post conditions:
The
Participant‘s

answer is stored in database.



Main flow:


1. The Participant

wishes to participate in the experiment.


2. The Participant

provides his identifier.


3. The system presents an experiment question to the
Participant
.


4. The Participant

chooses his answer on the slider.


5. The system stores the
Participant‘s

answer in DB.


6. in case the test is not over return to 3.


7. The system presents a “thank you for
your pa
rticipat
ion
!” message.



8


Use Case:
Data Processing



Actors
: The Researcher.



Preconditions:
all the

results

of the experiment

is in the database



Post conditions:
the CSV file is created successfully.



Main Flow:


1. The researcher wishes to export experiment results to statistical software.


2. The system pres
ents the export screen


3. The researcher chooses the experiment to export


4. The researcher chooses the name and location to save the file


5. The system generates the file



















9


2
םינותנה לדומ .



Data Model

1.2

יטקייבוא רואית
Data
:



BaseImage



תיסיסב הנומת
טמרופב
SVG

.תונוש תויצרופורפב יוסינל תונומתה ורזגיי הנממש

:םיבושח תודש

-

Data



ה
-
XML

.ידיתע דוביע ךרוצל הנומתה תא גציימש

-

Image



טמרופב הנומתה
PNG
.

-

Type



ירלולס ןופלט תויהל לוכי
\
טנרטניא רתא


רודנירה םתירוגלא תא הנשמ

Stimulus



ומת
.יוסינה יפתתשמל גצותו תיסיסב הנומתמ הרזגנש תדבועמ הנ

:םיבושח תודש

-

Original ID

-

יוריגה רזגנ הנממ תירוקמה הנומתה

-

Proportion ID



יוריגה רצונ היפל היצרופורפה

Parameter



תורחא תויצרופורפל הוושות י"עו יוסינה ףתתשמל גצויש יוריג רזגיי היפל ,היצרופורפ

בושח תודש
:םי

-

Proportion



.סחי לש הרוצב היצרופורפ

Question



.הלאקס לש הרוצב איה הילע הבושתה רשאכ ,רקחמ תלאש

:םיבושח תודש

-

Name



המצע הלאשה

10


-

Minvalue



הלקסה לש ילמינימה ךרעה

-

Maxvalue



הלקסה לש ילמיסקמה ךרעה

-

Interval



ןיב חוורה
1

.הלקסה לע םיכרע

Experiment



תויצרופורפ ,םייוריג י"ע רדגומ ,יוסינ
.םיפתתשמו

:םיבושח תודש

-

Question ID

יוסינ תלאש


ExperimentData



יוסינ לש עפומ


י"ע רדגומ
1

ולש הבושתהו שמתשמ ,הלאש ,םייוריג

:םיבושח תודש

-

ClientID



יוסינה ףתתשמ

-

Stimulus1

-

Stimulus2

-

Answer



ףתתשמה תבושת

-

responseTime



הילע הנע אוהש דע הלאשה הגצוהש עגרהמ ףתתשמה לש הבוגתה ןמז


aspnet_Users

-

תכרעמב םושר שמתשמ


לש תיטמוטואה ןיגולה תכרעמב שומיש
asp.net

aspnet_Roles



םימייק ,תכרעמב םידיקפת
3

:םידיקפת

-

Administrator



.לע תאשרה

-

Researcher



הלאש ףיסוהל יאשר
\
הנומת
\
שדח רטמרפ

םושרל יאשר ןכ ומכ ,יוסינ רוצילו
.יוסינ לש עדימ דבעלו תכרעמל יוסינ יפתתשמ

-

Client



.םהילע תונעלו ףתתשמ אוה םהבש םייוסינה תא קר תוארל לוכי ,יוסינה ףתתשמ











11


1.1

י
יסח

יטקייבוא
Data
:


2.2

:םינותנה דסמ רואית

ארנ ונלש םינותנה דסמ
ה

ךכ
.



12


רואית
:תואלבטה

BaseImage
s

-

ID


ידוחיי ההזמ

-

Description (String)


הנומתה רואית

-

Data(String)


XML representation

-

Image (Binary)



טמרופל הרמה רחאל הנומתה
png

-

Type (String)


ןופלט :הנומתה גוס
\
רתא

Parameters

-

ID
-

ידוחיי ההזמ

-

Name(String)


היצרופורפה רואית

-

Proportion(double)


סחי לש הרוצב רטמרפה

Questions


-

ID
-

ידוחיי ההזמ

-

Name(String)


הלאשה ןכות

-

minValue(int)


הבושתה לש םומינימ ךרע

-

maxValue(int)


הבושתה לש םומיסקמה ךרע

-

interval(int)


ןיב חוורה
1

הלאקסה לע תובושת

-

Rlabel(String)
-

ןימימ עיפויש בותיכה
הלקסל

-

Llabel(String)
-

הלקסל לאמשמ עיפויש בותיכה

Stimuli

-

ID
-

ידוחיי ההזמ

-

OriginalID


FK
-


BaseImages

-

on delete cascade

-

ProportionID


FK
-

Parameters



on delete cascade

-

Image(Binary)

-


טמרופב הנומתה

png

Experiments

-

ID
-

ידוחיי ההזמ

-

questionID



FK
-

Questions



יוסינה תלאש

-

title


יוסינה רואת

ExperimentDatas


-

ID
-

ידוחיי ההזמ

-

Experiment ID


FK


Experiments

-

ClientID


FK


aspnet_users

-

Stimulus1


FK


Stimuli


גצויש ןושארה יוריגה

-

Stimulus2


FK Stimuli


גצויש ינשה יוריגה

-

Answer(int)


שמתשמה תבושת

-

responseTime(double)


שמתשמה לש הבוגתה ןמז

aspnet_users
-


וידוטס לאו'זיו י"ע תיטמוטוא תרצונש תואשרהה תכרעממ קלח

13


-

UserID


ידוחיי ההזמ

-

username


שמתשמה םש

aspnet_Roles


תיטמוטוא תרצונ התמדוק ומכ


תואשרה תכרעמ

-

RoleID


ידוחיי ההזמ

-

RoleName


Aspnet_UsersInRoles


םיבר לש רשק( האשרה ןיבל שמתשמ ןיב רשקה תא תאטבמש הלבט
)םיברל

-

UserID

-

RoleID

User_Data


םישמתשמ לע יטסיטטס עדימ תרמושה הלבט

-

UserID

-

Age (Int)


שמתשמה ליג

-

Gender (String)


שמתשמה ןימ

-

Faculty (String)


שמתשמה לש הטלוקפה

תוירקיע תויצקאזנרט
:



:השדח הנומת תפסוה



:תורושק תואלבט

o

Baseimages

o

Stimuli



תומייקה תויצרופורפה יפל תיחכונה הנומתהמ םייוריג תריצי




השדח הלאש תפסוה

:תורושק תואלבט

o

Questions




שדח רטמרפ תפסוה

:תורושק תואלבט

o

Parameters

o

Stimuli



'עמב תונומתה לכמ םייוריג תפסוה
הפסונש השדחה היצרופורפה יפל




שדח שמתשמ תפסוה

תורושק תואלבט
:

o

aspnet_users


14




שדח יוסינ תפסוה

:תורושק תואלבט

o

Experiment



ולש רואיתו יוסינה תלאש תא ףיסומ

o

Experiment_datas



עצבתמ
preprocessing

רשאו שמתשמל וגצויש תולאשל
וז הלבטב תורמשנ



יוסינ תלאש לע הנעמ

:תורושק תואלבט

o

Experiment_datas



הנממ ,וז הלבטב תורמשנ ול חקלש ןמזהו שמתשמה תריחב
.יטסיטטס חותינל םינותנה וחקליי

15


ERD
:

BaseImage
ID
Image
data
description
Stimulus
ID
Image
proportionID
originalID
ExperimentDatas
ID
Stimulus
1
ClientID
ExperimentID
responseTime
Answer
Stimulus
2
Parameter
ID
Name
proportion
Experiment
ID
title
questionID
Question
ID
minValue
Name
interval
maxValue
Made of
Made of
Has a
Type
16


Aspnet
_
User
s
Userid
MobileAl
ias
LastActivityD
ate
Applicatio
nId
LoweredUserN
ame
IsAnonymou
s
UserNa
me
Aspnet
_
Roles
Roleid
Description
LoweredRoleName
ApplicationId
RoleName
Has a
User
_
Data
Age
Gender
Userid
Faculty
Has a








17


2.3

s
sequence diagram
:

Add Image:


18






19


Add Image Parameters
:








20


Add question:







21


Compose Experiment:


Test
-
Run:













22


Data Processing:










23


3.1

Events

.םיעוריא תססובמ תכרעמ אל ,ונלש תכרעמל יטנוולר אל

3.3

state chart

רקוחה לש תוארה תדוקנמ תכרעמה לש םיבצמ םישרת
:










:ןייסנה לש וטבמ תדוקנמ יוסינ עוציב לש םיבצמ םישרת

24


4. OO Analysis

1.3

תוקלחמ םישרת

Model:









Repositories for model:









25



Controller layer:



1.2

תוקלחמ רואית

-

ףיעסב טוריפב ראות לדומה
1.2


Model repositories
:

הכירע הפסוה ,הפילשל תויללכ תוטיש תשמממה ,לדומה לעמ היצקרטסבא תבכש יהוז
תשמממ הקלחמ לכ רשאכ )םינותנה דסמ( לדומהמ םיטקייבוא לש הקיחמו
repository
design pattern
ראתנ .
תחא הקלחמ

:המגודכ


StimuliRepository
:

-

Add(Stimulus s) : void


adds new stimulus to the
database.

o

Pre: the stimulus is not null

26


o

Post: the stimulus is successfully saved In the database

-

Delete(Stimulus s) : void


adds new stimulus to the database.

o

Pre: the stimulus is not null

o

Post: the Stimulus is successfully deleted from the database

-

Edi
t(Stimulus s):void


edits an existing stimulus and updates the database

o

Pre: the stimulus is not null

o

Post: the stimulus is correctly updated in the database

Controller:
תבכשכ תשמשמ
תרשקמה

בוו יפדמ תבכרומש הגוצתה תבכשל לדומה ןיב

הבו
הקיגולה בור תעצבתמ


תנ
ןפוד יאצוי םירלורטנוק המכ ןכו )םלוכל םיהז םה םיאנתהו תולועפהש ןוויכמ( גציימ דחא רא

ParametersController:

-

Index(): ActionResult


selects all the parameters from the database and passes
them to the view page for display.

-

Details(int id): ActionResult
-

se
lects the parameter by given ID and passes it to the
view page. If such a parameter does not exist, display 'not found' page.

-

Create(): ActionResult


displays empty create page

-

Create(FormCollection c)

: ActionResult



receives the data from the form filled by
the user, and persists it to the database,

Creates Stimuli from all images with this
proportion,

validation is made on the view level using schema validation in model
level
.

-


Edit(int id)

: ActionResult
-

selec
ts the parameter by given ID and passes it to the
view page for editing. If such a parameter does not exist, display 'not found' page.

-


Edit(FormCollection c)

: ActionResult


receives the data from the form filled by the
user, and updates it to the databa
se.

-

Delete(): ActionResult
-

selects the parameter by given ID and passes it to the view
page for delete confirmation. If such a parameter does not exist, display 'not found'
page.

-

Delete(int id,

FormCollection c)

: ActionResult


receives the data from th
e form
filled by the user, and deletes it from the database.

Deletes also the stimuli with this
proportion.

BaseImageController

-

Create(FormCollection c): ActionResult


receives the data from the user (which
provides the svg file he

wishes to upload, conve
rts it to png image and saves it to the
database.
Creates Stimuli from this image with all the proportions available in the
system

o

Pre: the file is a valid svg file

o

Post: the file successfully converted to image and persisted to the database


ImageControll
er

27


-

ShowBase(int id)


gets the bytecode of the image given by the id from the
database, and converts it to image ready to be injected in <img> tag on a web page.

o

Pre: the image id exists

o

Post: the image bytecode is correctly converted for proper display

-

Sh
ow Stimuli(int id)


like the above, but from the stimuli table.

ExperimentController

-

Create(): ActionResult


preprocesses the collections of questions ,parameters, users
and stimuli from the database and passes them to the view page.

-

Create(
FormCollection collection, int[] selectedImages, int[] selectedProportions,
Guid[] selectedUsers):
ActionResult



receives the choices made by the user, creates
a new experiment and stores it to the database.

o

Pre: the user selected at least one question,
one image, at least two
proportions and at least one user.

o

Post: the experiment object is correctly created and added to the database.

-

Export(): FileContentResult


exports the result of the experiment to csv file

o

Pre: the experiment has at least one resul
t.

o

Post: a csv file with the correct result and user data is processed


SVGHander


םיצבק תרמהב תולפטמה תודותמ הליכמה תוריש תקלחמ

-

Convert(Stream svg):Byte[]


converts the given stream of a svg file to byte buffer of
png image ready to be stored in the da
tabase.

o

Pre: the stream is of a valid SVG file

o

Post: the
svg file is correctly converted and stored as byte buffer.

-

CreateStimulisFromBase(int BaseID,int PropID):byte[]


a function that changes
proportion of a marked object in the given image(using its
svg) by the given
proportion, converts the result back to png image and returns the bytecode.

o

Pre: the image and the proportion exists

o

Post: the image's marked proportion is correctly changed, and the svg is
correctly converted



4.3

namespaces

נאש ןוויכמ
תינבת יפל םיחתפמ ו
MVC

ל הקולחה
-

namespaces

:ןלהל איה

-

engProject.models


לדומה תבכש

-

engProject.controllers


רלורטנוקה תבכש

יפדמ אלא תוקלחממ תבכרומ הניא הגוצתה תבכש
aspx

תחת תללכנ הניא ןכלו
namespace

והשלכ
.



28



1.1

םיטסט

תביבסב שמתשנ
הקידבה

לש
Visual
Studio

:אבה טוריפה יפל רלורטנוקה תבכש תא קודבל

SVGHandler



convert




CreateStimulusFromBase


ExperimentHandler:



RandomCombinations



BaseImageController:



create:




Test No.

Test Description

Expected Result

1

Success scenario
-

Insert an text SVG file and try
to convert it

The result is equals to the
image file.

Test No.

Test
Description

Expected Result

1

Success scenario
-

Insert an text SVG file and
proportion, to test the resizing formula

The proportion is correct and
the middle point of the
marked object is the same
as original

Test No.

Test Description

Expected Result

1

Success scenario


list of integers

The result should be all the
combinations without
repetition and half of them is
swapped places

Test No.

Test Description

Expected Result

1

Success scenario


a path to a valid SVG file

The conversion should be
executed correctly, stimuli
created and persisted

29



ParametersController:



Create:




QuestionsController:



Create:


ExperimentController



Create




Export





Test No.

Test Description

Expected Result

1

Success scenario


a float value of proportion

The
parameter should
persist correctly, stimuli
created and persisted

2

Failure scenario


a string value for proportion

Should fail on view level and
prompt the user

Test No.

Test Description

Expected Result

1

Success
scenario


a question

Question is created and
persisted

Test No.

Test Description

Expected Result

1

Success scenario


a valid
question,images,proportions and participants

Should create the random
combinations correctly (only
between stimuli of the same
image), and prepare
it for
each user

Test No.

Test Description

Expected Result

1

Success scenario


a finished experiment

The file should be created
correctly

30


ClientController



ShowNext






















Test No.

Test Description

Expected Result

1

Success scenario


a preconfigured test

The questions flow should
work and the experiment is
due to finish

2

Success scenario


communication break at the
middle of the test.

The last
question should re
-
appear after calling the
function again

3

Success scenario


a finished test

No more questions should
appear

31


5
תכרעמ תרוטקטיכרא .

תרשמ היונב תכרעמה תרוטקטיכרא
IIS

ץירמש
ASP.NET MVC3
םינותנ דסמו ,
ms sql 2008

.עדימה תרימשל

הככ תיארנ איה תיטמכס הרוצב
:











-

לש הנותחת הבכש
pesrsistence

לש הבכשב הפוטע
ADO.NET Entity Framework
,
ו םיטקייבוא לש הרוצב םינותנה דסמ לומ החונ הדובעל
LINQ to

SQL
.

-

דסמהמ עדימ תחקול הבכשה ,תכרעמה לש הקיגולה לכ תא הליכמש רלורטנוק לש הבכש
םיאתמה הגוצתה ףדל ותוא תחלושו ותוא תדבעמ ,םינותנ

-

יפד לש הגוצת תבכש
aspx

תדימבו ,רלורטנוקה תבכשמ הל רבעומש עדימה תא הגיצמה
מתשמה אלימ ותוא ספוטמ רלורטנוקה תבכשל עדימ הריזחמ ךרוצה














Controller Layer

View Layer

SQL Server Database

Entity Framework

32


6
.
UI
G

ןלהל
GUI

:תכרעמה לש

-

:תכרעמב עגרכ תומייקש תונומתה ךסמ


-

מ
:שדח יוסינ תפסוה ךס




























33


-

יוסינה ךסמ
:


7
םיטסט ןונכת .

:תוטיש המכב קודבנ תכרעמה תא

-

Unit test
רלורטנוקה תבכשל :

דבלב

ב ראותש ומכ
4.4

בוו יפדמ תבכרומ הגוצתה תבכש(
לש הקיחמו הסנכה לש תוטושפ תודותממ תבכרומ םינותנה סיסב תבכשו ,הקיגול לכ אלל
.)םינותנה דסמל םינותנ

-

.יקסניטקרט םעונ 'פורפ ונלש החנמה לש הלבק תוקידב

-

תצרה
קותינ לש תולקת םע תודדומתהו יוסינה עוציב תונוכנ תקידבל םייוסינ לש תויצלומיס
.רשק

-

הב תיטסיטטסה הנכותל ותמאתה תקידבו יוסינה רחאל עדימה דוביע לש היצלומיס תצרה
ודוביעל שמתשנ

-

תרדגהמ לחה חטשב םיבלשה לכ תא קודביש םייתימא םינייסנ םע יוסינה לש טולייפ עוציב
.וירחאל עדימה דוביעו תינמז וב תוחוקל רפסמ י"ע ועוציב ,יוסינ
\







34


8
םיקסאט .

פ ןלהל
טקייורפב ונל ורתונש םיקסאטהו ועצובש םיקסאטה טורי










:םיקסאטה לש טנאגה םישרת