D104a Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr Taankvist.

Post on 06-Jan-2018

219 views 2 download

description

System Definition The customers should be able to reserve a book, both when it is currently available and when it is not. When the customer loans and returns a book, this should be confirmed by a library staff. The customer should be able to rate previously loaned books. The students and scientific staff are able to loan a limited number of books, (5 and 20, respectively), and to reserve an unlimited number of books. The system should keep track of for how long a customer has loaned a book, as the books can only be loaned for a limited amount of time.

Transcript of D104a Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr Taankvist.

Library SystemD104a

Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr

Taankvist

Analyse

System DefinitionThe customers should be able to reserve a book, both

when it is currently available and when it is not.When the customer loans and returns a book, this

should be confirmed by a library staff.The customer should be able to rate previously loaned

books.The students and scientific staff are able to loan a

limited number of books, (5 and 20, respectively), and to reserve an unlimited number of books.

The system should keep track of for how long a customer has loaned a book, as the books can only be loaned for a limited amount of time.

Conflicts

Classes

FunctionsRecommend Title Function

RatingsCompare Ratings by computing MSERandom Recommendations

Delayed Action FunctionRecall loan, timeout reservationRun actions on a daily basis

Goals for use

GUIAnalyzed the usage

Personas Who will use the system

Scenarios What will they do with the system

Analyze the interactionUse cases

How is it doneInteraction spaces

What is done where in the system (subtasks) What classes are used

User interfaces

Technical Platform.NET 4.0 Class Library (.DLL) for Model

LayerASP.NET MVC application for GUIMSSQL for Data Storage

Design

Generic Design DecisionsData Access Layer implements Repository

PatternMakes the model independent of the actual

implementation of the DAL, and enables us to mock the functions of the DAL when testing

System uses The Observer PatternSmooth and flexible boundary between Model

Layer and Function Layer

Component Architecture

Components

Demonstration

BugsYou can’t loan a book which is reserved for

you.Wrong order of if-statements

You can only loan e.g. 5 books even if they are returnedCounts both returned and active loans

TestingEnsuring correctness of the program

TestingTotal (147 tests)

Model components (39 tests)Function components (48 tests)Data Access Layer (60 tests)

Code coverageModel & function layer: 86,33%Data Access Layer: 85,46%Overall: 85,66%

TestingMocks used (except from in DAL tests)

NmockDbdata for DAL tests

Blackbox testingTDD on recommenderWhitebox on searcher

EvaluationUsability evaluation of the graphical user

interface (GUI)

EvaluationOnly evaluated customer part of the system2 evaluation participants

Student and high school graduateUse computers daily, use library rarely

Instant Data Analysis (IDA method)6 tasks to perform

Finding booksReserving booksUpdating account

EvaluationResults

3 critical problems4 serious problems12 cosmetic problems

Critical problems are about searchNo flexibility with misspelled criteriaSlow load timeNo flexibility with keywords

Serious problemsExpects system to remember last searchExpected to be able to cancel reservation from search resultsUnexpected redirect on logonUsers not aware of submenu

Study report

The recommendation algorithmA simple recommendation algorithm

TopN-recommendation Collaborative filtering

Lowest MSE – customer vs. clientQuality of the algorithm

Limited data used Less accurate Random

MSE

ExperiencesA&D

Great blueprint for the implementationNot useful for small systems

TestTDD Unit tests (positive experience - time-consuming)

ImplementationUse TDD or make the unit tests earlier in the

process

ExperiencesIDA

Very positive resultFound 1 problem per minute

ADRIAGood blueprint for designing the GUITime-consuming for less complex GUI