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

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

Embed Size (px)

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.

Citation preview

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