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

27
Library System D104a Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr Taankvist

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.

Page 1: 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

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

Analyse

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

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.

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

Conflicts

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

Classes

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

FunctionsRecommend Title Function

RatingsCompare Ratings by computing MSERandom Recommendations

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

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

Goals for use

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

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

Page 9: D104a Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr Taankvist.
Page 10: D104a Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr Taankvist.

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

LayerASP.NET MVC application for GUIMSSQL for Data Storage

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

Design

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

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

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

Component Architecture

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

Components

Page 15: D104a Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr Taankvist.
Page 16: D104a Mathias Andersen, Heine Gatten Larsen, Mathias Grund Sørensen, Jakob Haahr Taankvist.

Demonstration

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

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

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

TestingEnsuring correctness of the program

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

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%

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

TestingMocks used (except from in DAL tests)

NmockDbdata for DAL tests

Blackbox testingTDD on recommenderWhitebox on searcher

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

EvaluationUsability evaluation of the graphical user

interface (GUI)

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

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

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

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

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

Study report

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

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

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

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

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

ExperiencesIDA

Very positive resultFound 1 problem per minute

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