179
Software engineering project (IS3139) Aristotle, a library information system written by Jonathan Camilleri IADCS (2013/2014) LSE Student number 070404915 Copyright © 2013-2050 Jonathan Camilleri

Aristotle School Library

  • Upload
    jon-c

  • View
    27

  • Download
    5

Embed Size (px)

DESCRIPTION

A library is an organized collection of information resources made accessible to a defined community for reference or borrowing. A library provides physical or digital access to material and may be physical or a virtual space, such as a virtual learning environment. A library's collection can include books, periodicals, newspapers, manuscripts, films, maps, prints, documents, microform, CDs, cassettes, videotapes, DVDs, Blu-ray discs, e-books, audio books, databases and other information. Libraries range in size from a few shelves of books to several million items. The library information system may be designed to interface within a wider virtual learning environment.

Citation preview

Page 1: Aristotle School Library

Software engineering project (IS3139)Aristotle, a library information system

written by Jonathan Camilleri IADCS (2013/2014)

LSE Student number 070404915

Copyright © 2013-2050 Jonathan Camilleri

Page 2: Aristotle School Library

AcknowledgementsI would like to thank Mr. Joseph Cachia M.Sc Information Systems and Management, tutor at the St. Martin's Institute of IT, for supervising the software engineering project, as this work would have not had the professional touch without his valid and constructive guidance and feedback.

I would also like to extend my appreciation to St. Martin's Institute of IT, Malta, who have inspired me in creating a library system, based on research on the operations of their current library, where users can read-in books, magazines and research journals available at their library in Ħamrun, Malta.

This document and the software may be revised from time to time to reflect the business requirements, in view of changing requirements, and, to manage intrinsic, contextual, and accessibility requirements of this document and the software that the requirements represents.

Confidentiality and intellectual propertyThe reader of this document understands that all information contained within this document is confidential, and, cannot be disclosed to third parties without the explicit written consent of the author.

Copyright and intellectual property of the business model and subsequent software engineering products developed as an implementation of the requirements shall remain the property of the author of this document, who allows the London School of Economics and Political Science and St. Martin's Institute of IT to review this document and provide critical feedback on this document that is being prepared for academic purposes.

Page 3: Aristotle School Library

ContentsSoftware engineering project (IS3139)............................................................................................1

Aristotle, a library information system..........................................................................................1

Acknowledgements............................................................................................................................2

Confidentiality......................................................................................................................................2

Document version control..................................................................................................................4

Section 1 - Project description and planning...................................................................................5

System features..............................................................................................................................6

Software engineering process.......................................................................................................8

Section 2 - Software Engineering Practice....................................................................................16

Functional requirements..............................................................................................................16

Non-functional requirements.......................................................................................................16

Hardware........................................................................................................................................16

System Design..............................................................................................................................16

User manual..............................................................................................................................16

Programming stubs...................................................................................................................16

Objectives and success criteria...............................................................................................16

Integration plan..........................................................................................................................16

Testing techniques and test cases.........................................................................................16

Schedule....................................................................................................................................16

Section 3 - Final project report....................................................................................................17

References and bibliography.........................................................................................................18

Appendix A - Hardware specifications...........................................................................................25

Appendix B - Software used............................................................................................................26

Appendix C Performance statistics...............................................................................................................................123

Page 4: Aristotle School Library

Document version controlDate Version

16/09/2013 0.0.1 The first revision of the requirements was drafted (JC). The original template was changed as guided by the Study Guide, Chapter 16, although historic versions are held on file for the time being.

11/11/2013 0.0.2 The second revision of the requirements document was drafted, a data model was developed using Microsoft Access, and, an object-oriented model was developed using Visual Studio 2010, including use cases and design of the workflow of the application, for which a review was requested (JC).

22/12/2013 0.0.3 Test plan was updated.

23/03/2014 1.0.0 Final review prior to printing.

Page 5: Aristotle School Library

Section 1: Project description and planning

A library is an organized collection of information resources made accessible to a defined community for reference or borrowing. A library provides physical or digital access to material and may be physical or a virtual space, such as a virtual learning environment. A library's collection can include books, periodicals, newspapers, manuscripts, films, maps, prints, documents, microform, CDs, cassettes, videotapes, DVDs, Blu-ray discs, e-books, audio books, databases and other information. Libraries range in size from a few shelves of books to several million items. The library information system may be designed to interface within a wider virtual learning environment.

The library of Alexandria, in Egypt was the largest and most significant great library of the ancient world. The US National Library of Congress, in Washington DC, was established by an act of Congress in 1800 when President John Adams signed a bill providing for the transfer of the seat of government from Philadelphia to the new capital city of Washington. The collection of more than 155 million items includes more than 35 million cataloged books and other print materials in 460 languages, more than 68 million manuscripts, and, is in effect the largest rare book collection in North America and the world's largest collection of legal materials, films, maps, sheet music and sound recordings.

The name of the library system was inspired by Aristotle (384 BC to 322 BC), Greek philosopher and polymath whose writings covered physics, metaphysics, poetry, theater, music, logic, rhetoric, linguistics, politics, government, ethics, biology and zoology. Aristotle's writings were the first to create a comprehensive system of Western philosophy, encompassing ethics, aesthetics, logic, science, politics and metaphysics.

Page 6: Aristotle School Library

System features

The information system shall provide a way of managing libraries which can hold various sizes of collections, and, support different users, including library staff, and, customers of a library who borrow or purchase books and other media from the library. Other research material such as manuscripts, research journals, magazines and other memorabilia may be available for borrowing or for purchase which can be managed through the library information system.

The library management information system shall also provide the possibility to maintain pricing policies based on subscriptions, downloads, and, maintain information for billing administrative charges that may include late return penalties, although a billing module is not within the scope of this project, and, future deliverables shall be proposed when the first prototype of the information system being outlined within this document have been developed to the satisfaction of the author, the supervisor and the London School of Economics and Political Science.

The library information system shall include interfaces to allow users to search for books, and, for library staff to manage their borrowing, and, manage inventory of books and media within the library, as well as books and media lent out to library customers. A library customer is responsible for the return of books and media by the return by date agreed with the library when the books or media are borrowed.

The library information system shall include customer maintenance user interfaces through which the library staff will be able to manage personal details and subscription details of each customer. Customers are expected to include personal or corporate customers, academic researchers, and, university professors, amongst others.

Libraries can be situated in universities of varying sizes, and, in training institutions, which can consist of small to medium enterprises providing training facilities from their offices, to university campuses consisting of various physical locations where different types of reference material may be stored, abiding by recommended professional practices of library management.

The library information system may in the future interface with other information systems, such as accounting systems, which would enable the book-keeping of double entry accounting. In the future we are envisaging interfacing with other equipment such as RFID tags, barcode readers and other information systems which may provide information to the library information system, or, to which information would need to be exported from the library information system.

Page 7: Aristotle School Library

The library information system shall be acceptable for use through a user interface which allows

customers to search and read through details of books and media through an "easy to use" interface,

library staff to search, read through details of books and media, keep inventory under control and export information in preparation for a billing process, and,

other functionality as may be appropriate and relevant to the information system as requirements are delved into detail within this document.

Response time for information should not exceed one minute between the time that a request is sent from the client (i.e. timing from the HTTP request and the HTTP response), until the time that adequate, relevant and complete information is returned to the user, although network latency and technical issues beyond the boundaries of the system have to go through professional system and network engineering design.

However, this requirement does not preclude the possibility of network latency, the implied requirement for readable error messages that guide the users and technical support in troubleshooting any user-initiated or other technical problems. It is not always possible to guarantee response time of the application when considering the possibility of bugs, and, other factors that may not fall within the direct control of the software engineering team.

The application database shall be normalized (4NF or more) to reduce the possibility of unnecessary redundancy, given that some redundancy may be allowed for business intelligence in the future. The data model shall outline clear definitions of each table, that consists of rows and columns of data. Database optimization and systems administration shall enhance the performance of the information system.

The application shall be available as a standalone application and/or as a web-application. The transmittal of financial information and personal information shall take place over secure channels which are deemed to be sufficiently reliable for e-commerce and transmittal, whilst the data protection directives for collection, management, and, transferring information between different libraries have to be complied with, amongst other legally binding requirements. The key philosophy behind the user interface design is simplicity which encapsulates complete functionality.

Testing cannot guarantee that functionality is complete and without any flaws, according to ISQETB, which is prepared by the British Chartered Institute of IT.

The scope of the information system is restricted to the management of the workflow for library operations as outlined within the requirements document and confirmed by the implementation of the same requirements specification document. Compliance, business policies and their implementation are the responsibility of the client organization implementing the software.

Page 8: Aristotle School Library

Software engineering process

The systems development lifecycle (SDLC), is considered to be adequate for managing the software development project.

1. Planning, is described by this document which describes project management, analysis, design, coding, testing and implementation for the software engineering project being proposed.

This project is planned through research into the different aspects of library management including the business perspective, and, the technical perspective, reviewing a number of existing software packages and background information to design a competitive software package, whilst minimizing technical risks and keeping in mind the necessary resources for the technical implementation including leadership and team management that would be required at each stage.

It is assumed that some resources cannot be quantified to a reasonable extent of certainty at this stage, since the author is mainly focused on the technical architecture and design of the software package, and, the details leading to technical planning such as hardware required for live implementations can be planned based on the results of an extensive quality assurance process, as details of the project unfold and provide further insight to the project team.

2. Analysis of the requirements, which is carried out using UML and object-oriented programming. The author plans to outline the requirements using, use cases to illustrate how various users are perceived to interact with the software package, sequence diagrams to highlight logical flow between the objects designed within a data model, and, to clarify the interaction between objects, along with other diagrams to illustrate the activity flow and clarify the logical processes derived from the component diagrams. The component diagrams indicate the main components of the software package, and, are intended to provide an illustration and guidance to the systems administrators in planning the underlying hardware i.e. servers and networking required for a replicated information system.

Page 9: Aristotle School Library

Distributed database capabilities are not considered to fall within the requirements at this stage, as a centralized database is seen to be an adequate architecture for a library management system, although requirements might evolve as innovation unfolds future requirements that is going to be controlled and managed keeping in mind that the software product needs to be aligned to current innovative technologies in order to make it commercially viable and adequate for deployment as part of a software that is provided as a service (SAAS).

3. Design and coding shall involve the design of the products and modules making up the library information system, and, the preparation of screen mock-ups and programming stubs providing guidance on the procedure to be followed to code the application.

Design, coding, and, quality assurance, is expected to be the antecedent of the implementation and installation of the software product that is expected include training to key users, in order to make it easier for the user to adapt to the implementation of the software, providing them with business-level support.

At this stage the author seeks to construct the basic data model using classes, which include properties that preserve state and methods that indicate actions. The design is planned illustrate the interaction of the initial set of objects used within the current evolutionary prototype, that does not fall short of technical issues and technical risks to be managed at all stages of the software construction process.

The user interfaces are designed to illustrate the basic inputs required from the users, although these have to be elaborated during the actual coding of the software product, which is not expected to happen at this stage.

Quality assurance is a highly relevant process that monitors the delivery of software according to the dynamically changing requirements, covering functionality, non-functional items, usability, and, relevance of the software product when compared with competitive products. Test driven development attempts to pre-empt test cases in advance of the coding effort, involving quality assurance early on during the design and coding processes.

Implementation is documented as a phased approach of releases as outlined within the attached project plans, with feedback from quality assurance and comfort testing being one of the main market research resources to gather valid recommendations for product improvement, as illustrated within the product roadmap attached to this document.

Commercial roll-out of the software is only planned to occur in the future, as at this stage we are focusing on designing the architecture and the interaction of the software product, leaving the coding to the software engineering team after this proposal has been reviewed. The main reason is that regulatory bodies and intellectual property rights require the specific documentation of algorithms that might not yet form part of the software package as different technical options might be valid propositions prior to the actual coding, which is subject to code reviews and quality assurance processes that seek to continuously improve the product itself in order to adjust to the needs of a competitive market, namely the education and library management industry.

Page 10: Aristotle School Library

Figure 1 - Development Lifecycle model stages, illustrated at www.cnx.org (2013)

Page 11: Aristotle School Library

Documentation provided is comprehensive, thereby reducing ambiguity in requirements, and, this is intended to be the basis for the quality assurance process that includes validation, verification, and, regular reviews of the document and the prototype being prepared. The requirements, design and analysis may be revised as details of the software engineering project unfold.

Financial budget of the project is not available since this is an academic project, however costs shall be monitored by the author of this document, although not necessarily reported.

Page 12: Aristotle School Library

Milestone Planned Start Date

Planned End date

Actual End date

1. Project planning and research. Approval of project plan by supervisor.

15th September 2013

11th October 2013

11th November 2013

2. Analysis and technical design

Preparation of user and technical analysis and design documentation.

12th October 2013

31st January 2014

31st January 2014

3. Preparation/coding of prototypes and mockup user interface

1st February 2014

30th April 2014

15th February 2014

4. Submission to supervisor and to LSE for final review.

1st February 2014

30th April 2014

On time

Page 13: Aristotle School Library

Deliverable Phase

Outline

D1 Working prototype that includes the design and code samples initiating the development of a library information system, including the design of tables that allow importing of data according to information within the import/export tables.

The prototype will be developed after a model is prepared by the author, and, this is to be submitted for review to the London School of Economics and Political Sciences prior to further product development on this software project.

The process of importing data to the required tables and the consistent and coherent display of information to the user is to be quality assured prior to the first public (alpha) release, however, it is not planned to be part of the current implementation.

D2 Working prototype with interfaces from different information systems, which may require non-standard formats of data to interface and translate data to standard import/export tables, or, changes that have to be implemented within the application as a cause of added data fields, modified or added data types, or elimination of redundancies following normalization of application data, and, deletion of structure or data, migration of data and other side-effects.

The application shall in the future allow the administrator to prepare custom CSV , XSLT/XML format. It shall be possible to export information to ODF format and possibly other proprietary or open-source formats, for example to assist with the preparation of correspondence templates such as mailing letters and label printing, and, exporting to spreadsheet and database applications.

Interface for archiving to tape media shall be designed, and, the process shall translate the format within the current data model to MARC21. This process can be used as a backup and to allow the administrator to import and export information from MARC21 to Aristotle. Other formats such as Online Public Access Catalog (OPAC) may still be existing at client sites, and customizations shall require a separate project to be planned for that particular client.

A report writer shall be integrated to allow a knowledgeable user to query the database using SQL or an application that reads the application database over an ODBC/JDBC connection, depending on the programming platform used for coding. This shall be done in the future.

During D1, only the basic data structure and process of uploading information within the physical data model is intended to be prototyped.

Page 14: Aristotle School Library

Deliverable Phase

Outline

Special requirements for people with disabilities can be included within this delivery phase as research unfolds ideas, innovations, and, other intelligence that can be automated, and, engineered appropriately with the help of assistive technologies. This is a future requirement.

Accounting and invoicing for the library based on a price module shall be designed and coded, when reliable interfaces with accounting systems are being analyzed i.e. in the future.

Social media integration shall be analyzed, designed and coded in the future.

Applications for mobile platforms, including Android tablets, mobile phones that include browsers (smartphones), and, iPhone ( suggestively using Objective C) shall be analyzed, designed and coded within this stage, based upon the knowledge, and, lessons learnt from D1. A mobile application may be developed rather than simply designing a website which may be browsed using a mobile phone, however the technical options shall be reviewed during D2.

Undocumented features shall be disabled from major versions from this stage onwards and any features need to be documented.

Documentation shall be guided by the standards as guided within the References and Bibliography section which are still to be defined by the technical team, depending on the technologies adopted for implementation.

D3 Alpha testing, beta testing, leading to preparation of business plans, commercialization of product, registration of intellectual property rights , and, marketing it according to the business plan (2017). Market research may indicate whether a desktop-based client/server standalone application shall be developed to meet the needs of the potential customers who are wary of using cloud-based services, for perceived security reasons, typically due to the fear that employees of the hosting company would be able to access business secrets and protected confidential information.

We shall refine the project plan and the roadmap targeting to reduce the time to market by one year, through improved efficiency, as the software engineering process is expected to reach higher levels of productivity, maturity and quality, with a focus on the quality of the software product.

Page 15: Aristotle School Library

Deliverable Phase

Outline

Aristotle 1.0Aristotle 2.0onwards

Aristotle 1.0 is planned to be released by 30th December 2016, and, technical research shall be carried out along with market research to determine economic and technical feasibility for the release of the next major release, Aristotle 2.0, which may be based on feedback, and, quality assurance processes.

The product lifecycle within the market is targeted to last 5 years, however this shall be confirmed by market research during the commercialization process.

A risk is an event that has yet to happen, it may or may not happen at some point in the future, but if it does it will have an impact on the project, as defined on prince2primer.com. This concept is similar to a paradigm known as Murphy's law, stated as "anything that can go wrong, will go wrong". A risk log shall be maintained for risks which are deemed to have high relevance to this project.

Risk Action Potential outcome Matrix score

(risk rating x probabilityScored from 1 to 10)

Mitigation

Technical risk of non delivery, due to lack of training, lack of skills and human factors.

Various, including recruitment process.

Lack of skills result in lacking competence in delivery.

Low(4 x 0.1)

Training period is planned for and diligent recruitment and selection process is to be taken into consideration.

Market risk of competition

Market research may indicate that prototype may not be competitive amongst existing library systems.

Loss of investment in researching and developing the prototype and the software product.

Medium(6 x 1.0)

Market research shall be carried out by business analysts to understand market needs as the prototype approaches commercialization stage during the second phase of the project.

Risk Action Potential outcome Matrix score

(risk rating x

Mitigation

Page 16: Aristotle School Library

Risk Action Potential outcome Matrix score

(risk rating x probabilityScored from 1 to 10)

Mitigation

probabilityScored from 1 to 10)

Risk of user not accepting the application

Quality assurance, reviews, and, other testing including usability reviews.

Product may not be considered as easy to use, and, users may reject the product.

This may lead to running over budget, which has to be monitored as a business risk, for example using by monitoring the budgets regularly and by utilizing a suitable marketing campaign.

Low to medium(5 x 1.0)

Design shall encompass simplicity, and extensive functionality within graphical interaction.

Page 17: Aristotle School Library

Risk Action Potential outcome Matrix score

(risk rating x probabilityScored from 1 to 10)

Mitigation

Risk Action Potential outcome Matrix score

(risk rating x probabilityScored from 1 to 10)

Mitigation

Risk of failure

Project management controls and software engineering controls

Loss of investment, reputation risk.

Loss of potential client pre-orders.

Downtime.

Defective products provide inaccurate or incomplete results, or may cause delays in the delivery, thereby affecting quality of the product and the management process.

Possibility of business loss.

Lack of business continuity if single points of failure are not mitigated using a suitable disaster recovery plan due to technical, economic or other constraints.

Low(4 x 1.0)

Project management and software engineering management controls are planned to mitigate the risks of the software project failing.

Page 18: Aristotle School Library

The library system must include features which allow the library staff to create, edit and delete (or mark for deletion) books and other media within the library. The system shall also include features to manage subscriptions, inventory, and, allow the reporting of items as exportable reports including customer lists, reviewing inventory (i.e. books and media), subscription management, and, allowing customers to search for books and popular or recent titles within the library.

The import and export tables are planned to be designed, however, the transformation process (i.e. migrating data from existing systems to Aristotle) should load data coherently and within the application without losing data integrity. The data migration tool is not going to be developed at this stage.

Figure 1 - Aristotle screen mock-ups for start page, and, customer relationship management user interface.

Not all features shall be implemented within the first version of the evolutionary prototype bundled with this document, since this is a demonstration, rather than providing the full functionality.

Amongst other risks that are being documented, the import and export tables are intended to be implemented without a user interface, since within the working version of the prototyped software a technical interface is planned to be developed in order to import/export data to/from other information systems, initially using a standardized data format, and, subsequently designing the software iteratively to allow for more flexible options, such as the functionality of users designing the data formats which would be allowed to interface within Aristotle v2.0.

Page 19: Aristotle School Library

Initial research carried out prior to the current version of this document may provide further details into technical options and the lifecycle that may be used for the eventual development of Aristotle 1.0 and later versions, as outlined within the product roadmap.

Page 20: Aristotle School Library

Figure 2 - Aristotle Process

Page 21: Aristotle School Library

Customer relationship management (CRM) module shall include management of personal details, subscriptions, and, books/media borrowed. The customer may initially be updated as a contact, and, becomes a registered customer after registering with the library and submitting the relevant membership forms. Contacts are mainly required for marketing and administration purposes, and, the structure of information is hierarchical, allowing contact details such as telephones to be organized having zero-to-many contacts e.g. telephones, fax numbers, email addresses etc.

Page 22: Aristotle School Library

Media management

Books and Media available within the library is held within the information system and can be managed through the customer relationship management module.

Inventory control is maintained through the use of screens showing the media held within the library. The information system will hold information that can be used to monitor upcoming orders and items not yet available in stock.

This may in the future be integrated with a system that uses information from an order management system, accounting system or supply management system through the interface being designed as import/export tables.

Security The library information system shall allow users to be authenticated to the system using combinations of usernames and encrypted passwords. Role management, and, access control determine which users and roles have access to portions of the application based to the screen identification number.

Access rights shall include:

Right to edit/create new records within each UI element (Useraccess.controlID within LibrarySystem.accdb or its variants attached on the accompanying optical disc).

Right to delete either permanently or through the use of a 'recycle bin', which can be deleted permanently manually by an application administrator or automatically based on business policy based rules configured within the application.

Other rights which pertain to specific screens within the user interface, which determine which controls are to be enabled or disabled for users and roles.

Rights assigned to users shall override rights assigned to roles.

It shall also be possible to save pre-determined roles and to prepare them in advance for users to facilitate implementation.

Aristotle is planned to be available as a web application giving access to customers and other users to query the library for books and media available.

Due to the security risks of exposing the information system, it is planned to have a mechanism which allows blocking an IP address or a range of IP addresses from accessing the web application, taking into consideration IPv4 and IPv6 addresses, which are planned to be read from the underlying operating systems or network management systems on which Aristotle is deployed.

Page 23: Aristotle School Library

Figure 3 - Customer Relationship Management and Contact Detail Management Use Case

Page 24: Aristotle School Library

Use Case ID: UC1.1 - ContactDetail

Use Case Name: Manage contact details and set their status to customers.

Created By: JC Last Updated By: JC

Date Created: 10/11/2013 Last Revision Date: 10/11/2013

Actors: Librarian, Library staff, Marketing Manager

Description: ContactDetail contains information about any individual or corporate customers that the users have the right to update within the library information system.

Compliance with Data Protection legislation is the responsibility of the business users.

Trigger: The use cases are triggered by programmatic calls initiated by user-interactions, and, possibly external devices connected to the library information system, such as bar-code readers, EPOS machines, and, other sensors.

These features are going to be developed according to the product roadmap and are not necessarily part of the initial prototype.

Preconditions: 1. Marketing manager must approve the status of the ContactDetail, as a sales lead, qualified lead (prospect), or an active customer.

2. A customer is a ContactDetail and can either be a regular library customer or an academic library customer, both of which are linked to pricing policies.

3. Librarian and library staff mainly administer existing customers, who have a subscription, whether the subscription is active or not.

Postconditions: Data is persisted within the data store, and, can be edited through the user interface.

Normal Flow: Library staff and librarians are able to create, edit, delete (temporarily to the recycle bin and permanently) ContactDetails who are also customers.Marketing staff are able to create, edit, and delete (temporarily through the recycle bin and permanently) ContactDetails which are sales leads, and prospects.1. User logs on to Aristotle, and, is authenticated against the stored password (usr.pwd), which is encrypted, so that it is non-readable for security purposes.2. User navigates within a screen and selects the customer relationship management control, which is made up of customer, personal details, subscription, and, borrowed tab, with relevant fields within each tab (see Figure 2 and User manual within this document).

3. User can 3a. create new records; valid data is persisted to the database, 3b. edit existing records; valid date is persisted to the database,3c. delete existing records, temporarily to the recycle bin, if the recycle bin is enabled (RecycleBin).

When a user cancels, updates can be rolled back to the record held when they were last saved.

Page 25: Aristotle School Library

Usability research indicates that it is possible that the user logs off from the computer system and that the HTTP session times out and the user loses track of the data inputted while away from the computer, after the time out configured by the application framework has expired.

A process should be implemented which saves data inputted to a persisted 'cache' as a draft, and, when the user retrieves the last form that was accessed, session information is preserved so that the user can have the record persisted within the database as valid data.

Refer to the attachment LibrarySystem.accdb for a demonstration of the database structure.

Refer to the attached web project titled Aristotle as a template for building the software. Under the App_code folder, the objects in this case RecycleBin is used to demonstrate properties and methods that can be implemented during the coding stage.

Alternative Flows: 1. Blacklisted customers may be hidden from view to library staff, until their identity information is keyed in within the customer detail management screen, in which case approval would be required from the librarian depending on the basis for blacklisting, which may require the client to seek legal advice, due to the business operating in different jurisdictions.

2. Business rules may stipulate discriminatory pricing policy based on the status of the customer.

3. Academic customers might be given priority over other customers at the discretion of the Librarian.

4. Discounts, free subscriptions and sponsorships may require the approval of the Librarian, unless the librarian role is delegated to other users.

The relationships within the ContactDetail and Customer Management module can be described as follows:

Customer <<inherits>> ContactDetail, as a Customer is-a contact detail which has the Marketing Status set to that of a customer.

ContactDetail <<is composed of>> zero-to-many TelephoneNumber(s).

ContactDetail <<is composed of>> zero-to-many EmailAddress(es).

ContactDetail <<is composed of>> zero-to-many FaxNumber(s).

ContactDetail <<is composed of>> zero-to-many Social media (links).

ContactDetail <<is composed of>> one-to-many PersonOrCompany.

Page 26: Aristotle School Library

Exceptions: 1. Lead or prospect is not approved by the Marketing Manager, who updates reasons for rejecting the relationship with the Contact Detail. It is the responsibility of the client to comply with legislation applicable within the jurisdiction where the software is implemented, and, to request any software changes to the project manager.

2. Customer is not allowed to have an active subscription, due to blacklisting or due to the fact that s/he has not paid the previous subscription fully.

3. Customer is not allowed to borrow media until s/he pays the subscription. In the meantime the subscription can be de-activated including appropriate information to enable debt-chasing by library staff, including reporting.

4. Customer is not allowed to borrow particular media which are earmarked for borrowing by other customers, based on the date of booking and the priority administered by the librarian or his/her delegate user.

5. Customer has exceeded the limit for borrowing according to library management policies and is not allowed to borrow more media. This does not preclude the right for the customer to buy books and media on sale, for example as cash sales, as this is subject to approval. Approvals are to be made by the librarian or his/her delegate, as managed within the Security module.

6. Customer has invalid data, which makes the information about the customer invalid until it is reviewed and rectified. For example, an invalid date of birth may not be acceptable by the library information management policies.

7. Migrated data from other information systems may include duplicate records of personal and corporate customers. This may need to be processed using a separate data-cleansing batch process, complemented with reviews made by the client organization representatives.

4. ContactDetail may result in duplicate customers unless the updating of personally identifiable information is enforced, such as validating that no two clients with the same name, date of birth, address, and, identity/passport information are held within ContactDetail. However, the librarian and library staff may approve duplicates for administrative or organizational purposes.

For further information on personally identifiable information refer to the references and bibliography section for in-depth guidelines.

Includes: ContactDetails may have zero-to-many telephone numbers, fax numbers, email addresses, validated website URLs, opening hours, and, other contact details.

Page 27: Aristotle School Library

Frequency of Use: The information is envisaged to be used regularly as this is part of the administrative requirements of the library system.

Assuming a library may have 500 visitors per day, and, employs 50 administrative clerks supporting the system, and an average of 2 queries per visit, the screen may be in use more than 50,000 daily by administrative users.

Usage may increase if library customers are allowed to access their personal information for the purposes of the Data Protection Directive and their right to review whether information held about them is up-to-date, relevant, and, accurate.

Special Requirements: User interface components must have a response time of less than 3 seconds to display information within the user control components for frequently used user interface components, which is defined as the time taken for the http request to be processed, and, for relevant, complete and expected results to be displayed within the user interface components.

The library system should include the option of black and white contrast colour scheme for colour blind users. Usability and interactive features for disabled persons as recommended by W3C usability guidelines for the world wide web.

The library system should include support for multiple languages, providing a framework for translating strings and content to many languages, using the appropriate programming framework for internationalization.

It would be nice to have the possibility to configure of colour schemes (themes), enabling the user to customize the look and feel of the application.

Assumptions: It is being assumed that contact details and details pertaining customers are required to be maintained by the librarian or his/her representative.

It is being assumed that the library information system can be provided for use on the world wide web, providing access to customers to review and update personal information about themselves with the approval of library staff.

It is being assumed that a robust data store (e.g. database, hierarchy of objects within an information system programmed using object-oriented principles), is used to allow for persistence of objects, saving of regularly timed checkpoints, and, underlying features guaranteeing atomicity, consistency, durability and isolation of changes that do not cause conflicts when programming concurrent operations, on a best effort of recovery basis.

It is being assumed that the database selected shall be fine-tuned and maintained by a database administrator, based upon the business logic defined by the requirements analysis.

Notes and Issues: 1. The prototype is still under development and there are some

Page 28: Aristotle School Library

limitations described within the Issues log.2. Technical issues arising during the development of the final

software product are going to be logged within the Issues log accordingly, and, monitored by the project manager.

Contact details can have zero to many contact information links that can be organized according to the needs of the library staff e.g. contact information for different offices that the contacts hold. The user would be able to browse through different contacts, using the << and the >> buttons to guide their navigation. The mock-ups do not include all the fields that shall be available within the application, as the purpose of the mock-ups is only illustrative.

Figure 4 - Customer management screen mock-ups

Page 29: Aristotle School Library

Figure 5 - Activity model for contact management

Page 30: Aristotle School Library

Creating a customer and setting the marketing status to that of a customer. Customer <<inherits>> ContactDetail

Reading contact details through the hierarchy of objects including Customer, ContactDetail, PersonOrCompany, EmailAddress, FaxNumber, SocialMediaLink, and, WebsiteURLs, which are called by ContactDetail. An object is returned to the business logic calling the code and used by the user interface components.

Figure 6 - Sequence diagrams

Customer <<is composed of>> ContactDetail, using restricted MarketingStatus fields, limited to customer statuses i.e. 3 or 4, as per data model.

Page 31: Aristotle School Library

It is being assumed that a ContactDetail can have only one status at a time, and, that a new ContactDetail has to be created if the ContactDetail has multiple roles within the organization as in the following scenario:

Mr. John Doe, Director of ABC Limited, who is an existing customer of the library.

Mrs. Jane Doe, Director of ABC Limited, who is a prospect.

ABC Limited still have not confirmed the subscription in the name of ABC Limited, therefore ABC Limited are a prospect.

A synchronization process between different objects having the same identifiable information may be implemented, within this data model. Alternatively the data model shall be re-designed to allow for the automatic replication of shadow ContactDetail with different statuses.

In the meantime, library staff, might have to tackle the temporary status (i.e. pending sign off) manually, by updating ContactDetails when all the relevant status has been confirmed with suitable documentation e.g. signed membership forms, although business management falls within the scope of the management of the library, not within the technical analysis of Aristotle, the library management system.

Page 32: Aristotle School Library

Figure 7 - Use case for order tracking and vendor management

Page 33: Aristotle School Library

Use Case ID: UC1.2 - Vendor and Order Management

Use Case Name: Vendor and Order Management

Created By: JC Last Updated By: JC

Date Created: 11/11/2013 Last Revision Date: 11/11/2013

Actors: Librarian, Library staff, Marketing Manager, Library Customers

Description: Order tracking of items not available on stock and vendor management.

Trigger: Initiated by the library customer, library staff. The vendor might require information for quality management.

Preconditions: 1. Orders have to be approved by the librarian or delegates amongst the library staff.2. Orders can be based on requests from customers.3. Orders can be based on market research done by the librarian or the library staff, for example, best-selling authors and popular media amongst consumers.4. Library customers can pre-book items not yet available in stock.

Postconditions: An order that has been delivered successfully to the library and in good condition can be placed on the library shelves.

An order with faulty items may need to be returned to the vendor; logistic arrangements for returns have to be made, according to the returns policies of the vendor and the procurement policies of the organization managing the library.

Normal Flow: Order management flow

1. Purchase orders of media are grouped and a procurement process is initiated.

The procurement process does not fall within the scope of analysis of this project, although it may be considered in the future.

2. Order is requested from vendor(s) when a purchase order is approved by the librarian or library staff delegated the authority to approve purchases.

3. Order is tracked by library staff and possibly by library customers interested in a particular item not yet available in stock.

4. Order is received, and checked whether it is in good order. Orders received in good condition and in a manner which meets the administrative policies of the library, are expected to be confirmed, and, samples are made available on shelves of the library. Copies or variants of the same media might be available in different locations, where the library has different sites.

5. Library customer has sufficient viewing rights and access within the customer relationship management module to check whether the media is available on the library shelf. The library customer can also be notified when a pre-booked item has been made available for pick-up at the library, or may require the item to be sent to his/her home address via courier. The library pricing policy for subscribers and

Page 34: Aristotle School Library

non-subscribers would apply and these might have different prices, although the responsibility of complying with anti-trust regulations remains with the client, as the client remains responsible for configuring policies and disabling them if they are not compliant with legislation.

Alternative Flows: Orders of items not received in good order may have to be returned to the vendor, according to the policies of both organizations.

Late orders may not meet the customers' expectations and these might have to be returned to the original vendor, if the customer is not satisfied, and, these require the confirmation of the vendor.

Orders including items that did not meet the original purchase order are returned according to the returns policy that has to be agreed with the vendor - whether an agreement exists or not - and it is possible that the vendor might not accept partial returns where part of the orders were faulty, damaged, missing, or not received as expected.

It is possible that the library procurement team and the vendor reach an agreement whereby an urgent item is sent directly to the library customer, whilst the billing is processed separately i.e. the vendor sends the bill to the library administration team, whilst the library charge the customer at the tariff published by the library marketing management team. Therefore the customer would have the option to receive:a) express delivery within timeframes guaranteed by courier services, directly from the vendor to the customer.b) standard delivery where the order is packaged along with other items ordered for other customers.In this case, it is possible that the end-customer might have to pay additional charges, which are a result of the additional transportation, insurance and administrative fees involved to meet the exigencies of the customer.

Page 35: Aristotle School Library

Figure 8 - Tracking a purchase order activity flow

Figure 9 - Sequence diagram of a Vendor creating and removing an Order

In order to amend an existing order, the calling object, in this case the Vendor has to

1. Clone an existing Order object to memory and amend the details within the procedure, and,

2. Create a new order with updated details. The cloned copy will not be persisted if the update required is intended to update data, rather than keeping both versions of the objects in secondary storage. The latter data persistence mechanism is for audit purposes.

Page 36: Aristotle School Library

The references and bibliography section includes information on using deep copying and shallow copying to implement this process using Java Programming Language, the .NET framework and PHP. Creation and disposal of unused objects in memory is assumed to be handled by the programming framework used for coding, although some languages including C, C++, C#, and, Java may require manual assertion of disposal instructions called by objects.

Figure 9b - Statechart diagram

Page 37: Aristotle School Library

UserAccess

ScreenID AccessType RoleID userID controlID

3R role1 1 1

4RW role1 1 1

6RWD 1 1

Figure 10 - User access control sequence diagram and sample data model in table format.

AccessType

R Read

RW Read and Write

RWD Read, Write and Delete

Access can be given to a userID, but not to a role, in order to override rights for the role, when a user is provided with special rights that are different from that of a pre-defined role.

The above table is a generic example of a basic structure of rights; a complex security model for access rights may be defined, as these may be relevant to particular user interface components and more granularly for controls within the user interface.

A null value within the roleID field indicates that the security constraints apply for the userID.

Page 38: Aristotle School Library

Use Case ID: UC1.3 - Access control and non-physical security for Aristotle

Use Case Name:

Authentication and access control for users

Created By: JC Last Updated By: JC

Date Created: 12/11/2013 Last Revision Date:

12/11/2013

Actors: The application administrator is expected to manage the user access, although this right may be delegated.Other users have sufficient access to changing their password and reviewing their access rights.

Description: The user logs on, authenticates and is assigned rights to access the user interface controls and controls within the user interface according to the role.

Rights may be additionally assigned to the specific user, and, these are expected to supersede rights for the role, if a global flag <UserAccessRightsSupersedesRoleAccessRights=Yes>

Trigger: User logon may be a result of user input.In the future an external device which allows for other forms of authentication may form part of the scope of analysis.

Preconditions: Library information system should be up and running (available).Logon screen is available to the user.

Post conditions: 1. User logs on and is authenticated successfully.2. Unsuccessful user attempts result in an error message reading logon failed.

Normal Flow: The authentication and access control follows a logical path:

1. User keys in user name and password to the logon authentication mechanism e.g. keys in user name and password through the keyboard or virtual keyboard which is commonly used by smart phones and tablets. The user shall have the option to delete the cookie from the client browser.

2. Upon successful logon the user can access the user interface components required within the application, and, the session shall store information about the logged on user, until the user configures the client (e.g. internet browser) to delete all session information.

Page 39: Aristotle School Library

Alternative Flows: Logon screen is the single point of logical entry to the application i.e. no backdoors are allowed within the live system, on a best-of-effort basis for controlling logical security against unauthorized access to the system.

The application administrator or a user delegated with this role may allow users not to have a strong password.

Fingerprinting or biometric authentication mechanisms may be integrated in the future.

Exceptions: Unsuccessful logons result in an error being displayed reading logon failed.

There may be a limit to the number of unsuccessful attempts within a single session, until the account is blocked access with the application administrator having the option to unblock the account.This security measure attempts to mitigate dictionary attacks.

The application administrator is able to block accounts for other reasons according to the information security policy of the library e.g. employee no longer works for library, customer under criminal investigation. The application administrator is able to delegate this right to another user.

User interface components may require rights that are not generic, such as the disabling of a Print button for a selection of users.

Includes: Customer Relationship Management, and, Order/Vendor Management Modules are called by the logon authentication when the logon is successful, as the access rights are read (Usr.AccessRights).

Frequency of Use: Use case shall be executed frequently as library staff and customers logon to the information system.

Special Requirements: Response time for HTTP authentication is expected to be less than 30 seconds (configurable), except in the case of network latency and other issues which create lags causing delays to the information system which are beyond the reasonable control that can be programmed within the information system.

It is possible that more than one user are required to authorize a transaction type, and, the transactions have to be logged to the audit trail.

The application administrator should be able to configure the session time out within the limits allowed by the web server operating system and internet services hosting software.

Page 40: Aristotle School Library

Assumptions: Users, passwords, roles and security rights are configured within the security module. These are maintained by the application administrator supporting the library.

Notes and Issues: The rules for strong passwords are recommended to be as follows:

Password includes any of the following special characters: !@?%&§¶The special characters accepted are the ones indicated on the second line. If the special characters above are not available, then special characters shall be selected according to the Unicode character set being used.

Password includes an uppercase letter within the first five characters of the password string.

Password includes four digits [0-9] in sequence. Password must be at least 15 characters long. Password must NOT exceed 100 characters in length.

Examples of valid passwords include:aAaaa2013!aaaaaJoe1983@bananas

If the above are complex to code using the appropriate regex pattern the requirement document shall be revised by the management team. It shall be possible for the application administrator to revise the complexity rules of passwords allowed.

Page 41: Aristotle School Library

Figure 11 - Mock-up for logon screen , including a virtual keyboard for a tablet or smart-phone.

Page 42: Aristotle School Library

Figure 12 - Use case and sequence diagram for searching

Page 43: Aristotle School Library

Use Case ID: UC1.4 - Searching the library media, expected dates when they will be available and details of the Customer holding the media on loan.

Use Case Name: Searching the library media

Created By: JC Last Updated By: JC

Date Created: 17/11/2013 Last Revision Date:

17/11/2013

Actors: Library customers and staff are able to search the media library.

Description: Library customers and library staff are able to search for media available on shelf, and, for media borrowed out to customers.

Trigger: Searching is enabled through a search interface.

Preconditions: The objects containing the searchable criteria have to be available in shared memory or within a data source that allows them to be searched for.

Post conditions: Search results based on frequently used fields keyed in by the user including book title, ISBN/ISSN, author.

Normal Flow: 1. User keys in search criteria such as the ISBN/ISSN, the title of the book/media and the author, and, selects Search.2. Search engine searches the active data store and returns results including:a) Titles available, the author, edition, and, a link to review further details or to pre-book the borrowing of a book.b) Whether the items is immediately available and if not the date that the item is expected to be available on the shelf.

When, no relevant results are found no search items found shall be displayed.

Page 44: Aristotle School Library

Alternative Flows: Library customers shall be able to book the borrowing of an item that is expected to be available with the approval of the librarian, or his/her delegate through the security module. The approval may be waivered, by disabling the relevant controls.

Concurrent searches made by customers shall not affect the quality of the search results, although perceived performance may result if the tuning of the search processing engine does not align with the original search criteria triggered through the search engine component within the user interface.

Performance tuning of the programming calls, tuning of the physical database, and, advanced programming interfaces shall allow efficient processing of programmatic routines. Such re-factoring exercises may trigger the need for further analysis and re-design of the searching algorithms.

Within an unsorted list, full transversal of a data structure, would be appropriate.

The application may include saved searches, such as popular titles, where popularity is a weighted score based on the number of times an item was searched, and the number of times the item was borrowed. Recency of borrowing is also relevant to popularity, where, a recently borrowed item is considered to have more weighting than an item which was borrowed more than a few years ago.

When, no relevant results are found no search items found shall be displayed.

It would be nice if the search engine provides suggestive searches which match one of the keywords searched for, as a relevant noun. Items searched within the title field, or which match the topic of similar item within the title or author field may be considered as relevant nouns for the scope of this analysis.

For example, when the user searches for 'Fifty Shades of Gray', which is assumed to be a popular fiction book that happens to be off-the-shelf, and, the expected return by date is greater than a configurable period of time e.g. 15 days, relevant fiction items by the same author or belonging to the same topic are returned.

Exceptions: 1. It is possible that no relevant search items are found.2. It is possible that the user has made a spelling mistake. It would be nice to integrate a grammar engine that is translated into different languages in future releases of Aristotle.3. It is possible that the search results do not match the exact requirements of the user, due to unexpressed search terms or synonyms which are not included within the searchable fields within the data store (i.e. database or object-oriented data model).

In this case, the user would have to be accustomed to the terminology of the library, with the assistance of the library staff to guide him/her in searching and using the system. Culture and terminology may influence business policies, and, this may require software customizations to meet cultural needs of clients and translations.

Page 45: Aristotle School Library

Includes: Searching includes searching within BooksAndMediaOnLoan and Customer objects, which contain data about items being searched for.

The objects containing searchable data have to be in a state whereby data held within them is searchable for and indexed for faster retrieval if possible.

Frequency of Use: Searching can be used interactively through a web application, and, the service is expected to be available on demand.

Special Requirements: Search results are expected to be displayed within reasonable response time before the session times out.

The session time out is expected to be configurable by the application administrator, although there may be limitations imposed by the programming framework or the technology adopted as a web server, and, therefore documentation would have to include information as part of documentation available to the end user.

Assumptions: It is being assumed that users would be trained to use the appropriate terminology that is relevant to the data keyed in by the library staff.

It is the responsibility of the library management to draw up terminology relevant to the library or libraries being managed, although a helpful indication is provided within the references and bibliography section of this document. Therefore library-specific terminology does not fall within the scope of this document beyond providing basic terminology that may be common across different libraries.

Notes and Issues: There is a possibility that different words are used interchangeably and have different meanings, or are slightly miss pelt - perhaps due to disabilities such as dyslexia - and may not return the expected results.

Such issues may be dealt with by integrating or adopting features of existing search engines, such as Google, amongst others.

Page 46: Aristotle School Library

Figure 13 - Searching for Orders

Figure 14 - Notification via email or SMS

Page 47: Aristotle School Library

Figure 15 - State chart and activity diagram for order tracking

Use Case ID: UC1.5 - Searching orders from vendors of books and media

Use Case Name: Searching orders from vendors of books and media

Created By: JC Last Updated By: JC

Date Created: 17/11/2013 Last Revision Date:

17/11/2013

Actors: Library staff are expected to be able to access order information for inventory management.Vendors may be given access to the library information system.Library customers may require to understand the expected date when a particular item would be available on shelf.

Description: Users are able to search for orders and track vendor contact information through the ContactDetail information that is linked to the Vendor.

Trigger: Searching is enabled through a search interface.

Preconditions: The objects containing the searchable criteria have to be available in shared memory or within a data source that allows them to be searched for.

Post conditions: Search results based on frequently used fields keyed in by the user including order reference, order date, vendor, amount of purchase order, expected delivery date and other relevant information.

Normal Flow: 1. User keys in search criteria such as order number, order

Page 48: Aristotle School Library

date, order reference i.e. internal reference or vendors' reference.2. Search results are displayed within the user interface and hyperlinks lead to required content if this confirms the expectations of the search initiated by the user.

When, no relevant results are found no search items found shall be displayed.

Alternative Flows: It is possible that the user opts to be notified via post, email and/or SMS when the expected date of placement of an order on the library shelf can be reliably estimated by the librarian or the administrative staff at the library. This may require confirmation from the vendor(s) which provide books to the library.

Exceptions: 1. It is possible that the user has made a spelling mistake. It would be nice to integrate a grammar engine that is translated into different languages in future releases of Aristotle.

3. It is possible that the search results do not match the exact requirements of the user, due to unexpressed search terms or synonyms which are not included within the searchable fields within the data store (i.e. database or object-oriented data model).

In this case, the user would have to be accustomed to the terminology of the library, with the assistance of the library staff to guide him/her in searching and using the system.

Includes: Searching includes searching within Order and Vendor objects, which contain data about items being searched for. The objects have to be in a state whereby data held within them can be searched for.

Frequency of Use: Searching can be used interactively through a web application, and, the service is expected to be available on demand.

Special Requirements: Search results are expected to be displayed within reasonable response time before the session times out.The session time out is expected to be configurable by the application administrator, and, there may be limitations imposed by the programming framework or the technology adopted as a web server.

Assumptions: It is being assumed that users would be trained to use the appropriate terminology that is relevant to the data keyed in by the library staff.

Notes and Issues: There is a possibility that different words are used interchangeably and have different meanings, or are slightly

Page 49: Aristotle School Library

miss pelt - perhaps due to disabilities such as dyslexia - and may not return the expected results.

Such issues may be dealt with by integrating or adopting features of existing search engines, such as Google, amongst others.

Page 50: Aristotle School Library

Figure 16 - Archiving to tape media and exporting to different file formats

Use Case ID: UC1.6 - Archival of records to tape media

Use Case Name: File is to be exported to different formats, according to future requirements for archival and integration with existing standards used for library management, which include OPAC and MARC21.

Created By: JC Last Updated By: JC

Date Created: 19/11/2013 Last Revision Date:

19/11/2013

Actors: Application administrators are expected to manage the archival process, although training may be provided to administration staff.

Description: Application administrators are able to export data from the library information system to different file formats, including OPAC, MARC21, ODF, CSV and XLS/XLSX (Microsoft Office Spreadsheet formats), in order to allow external applications or integrated applications to use the information provided. This shall be implemented at a later stage.

Trigger: Export is managed through a scheduled task, or is triggered through the user interface, using a wizard driven user interface.

Preconditions: The web service that runs the tasks automatically has to be available.

Post conditions: The export is completed, data is validated, and, any exceptions

Page 51: Aristotle School Library

logged.

Normal Flow: 1. Scheduler or user triggers script for exporting information to the required format.2. File format required is read, and, the process extracts the data and exports it to the export format.

Alternative Flows: None are envisaged at the time of writing.

Exceptions: Abnormal termination of connection may require the export process to start again from a checkpoint where data is verified to be intact, or to start from the beginning. The use of background processing within operating systems may reduce the incidence of the problem occurring.

Includes: Exporting information to different formats, requires data and a verifiable process to transpose the information available within the existing data model to other file formats. This may require additional analysis and design.

Frequency of Use: Backups are carried out according to the backup strategy of the library.

Special Requirements: Interfacing with external tape libraries may require additional technical research, for the purposes of archiving.

Assumptions: Standards formats still need to be analysed, and, change management procedures are used to re-engineer the original design being documented within this document.

Notes and Issues: Additional fields must be updated within the data model during the analysis phase for D2, as per product roadmap. A second iteration of analysis shall follow.

Archival and integration features are not intended for the first release of Aristotle, however, it would be planned for prior to large scale roll-out of the commercial product.

This would require additional fields to be added to the current data model in the future, since file specifications would have to be available in order to extract the data from the current data model to the data as required by the standard file formats, and, this may imply additional changes to the user interface and the business models governing the automated processing that is done programmatically, with a degree of input through the user interface.

National and international legislation relevant to archiving may apply within particular jurisdictions.

Page 52: Aristotle School Library

Figure 17 - Use case for reports queried through a reporting engine, which is a singleton class

Page 53: Aristotle School Library

Use Case ID: UC1.7 - Retrieving a report through the report engine

Use Case Name: Users request report through the user interface, specifying parameters which are applicable for these reports, and, the report is shown by querying the report engine.

Created By: JC Last Updated By: JC

Date Created: 20/11/2013 Last Revision Date:

20/11/2013

Actors: Users are able to retrieve reports, and, eventually shall be able to create custom reports based on data fields.

Description: Users are able to query reports available within the library information system.

Trigger: Reports are available on demand, unless scheduled reports are run as batch scripts if they are thought to take considerable time during retrieval of records from database or during the computation of advanced calculations that may require considerable resources.

Preconditions: A web service that schedules and executes the tasks automatically has to be available.

Post conditions: The export is completed, data is validated, and, any exceptions logged.

Normal Flow: 1. Scheduler or user triggers script for exporting information to the required format.2. File format required is read, and, the process extracts the data and exports it to the export format.

Alternative Flows: None are envisaged at the time of writing.

Exceptions: Abnormal termination of connection may require the export process to start again from a checkpoint where data is verified to be intact, or to start from the beginning. The use of background processing within operating systems may reduce the incidence of the problem occurring.

Includes: Exporting information to different formats, requires data and a verifiable process to transpose the information available within the existing data model to other file formats. This may require additional analysis and design.

Frequency of Use: Backups are carried out according to the backup strategy of the library.

Page 54: Aristotle School Library

Special Requirements: Interfacing with external tape libraries may require additional technical research, for the purposes of archiving.

ReportingEngine uses a singleton pattern i.e. only one instance of this class can be initialized, unless the underlying engine needs to be restarted, in which case the object in memory is first disposed of (i.e. stopped) and then the reporting engine is restarted.

Assumptions: Standards formats still need to be analysed, and, change management procedures are used to re-engineer the original design being documented within this document.

Notes and Issues: Additional fields must be updated within the data model during the analysis phase for D2, as per product roadmap. A second iteration of analysis shall follow.

Page 55: Aristotle School Library

Figure 18 - Use case for supporting assistive technologies

Page 56: Aristotle School Library

Use Case ID: UC1.8 -Support for assistive technologies

Use Case Name: Users having physical and to a certain extent even mental impairments are able to connect external devices and use assistive technologies to use the library information system.

Created By: JC Last Updated By: JC

Date Created: 20/11/2013 Last Revision Date:

20/11/2013

Actors: Impaired users are able to use assistive technologies to support the use of the information system with additional input or output devices.

Description: Impaired users are able to use assistive technologies to support their capability to use the library information system.

Trigger: User input/output triggers processing, with the exception of scheduled runs.

Some hardware devices may require pro-active detection (e.g. Plug and Play) of the attachment of a hardware device and the configuration of use with the library information system.

Embedded programming may require preparation of technical libraries which interface with the hardware according to the technical specifications prepared by the hardware vendor.

Preconditions: Hardware interface and service that runs the hardware interface including programmatic instructions to the hardware drivers has to be available.

Post conditions: The user is able to understand information that represents the information adequate for the needs of the user.

Normal Flow: 1. Scheduler or user triggers script for exporting information to the required format.2. File format required is read, and, the process extracts the data and exports it to the export format e.g. comma separated values, HTML, XML, interface to a JDBC/ODBC database.

Alternative Flows: The different file formats are expected to require different code libraries to be prepared to enable functionality to be available for the program.

Page 57: Aristotle School Library

Exceptions: 1. Hardware device may not function as expected.

2. Hardware connection issues, commonly expected to be handled by the operating system, may result in ambiguous error messages that may trigger the recovery of the state of the program to the last known stable checkpoint.

3. Hardware device might not be supported by the operating system in use.

4. Technical issues with the programming interface used to provide programmatic instructions to hardware devices.

Includes: All classes used in previous use cases, depending on the use required.

Frequency of Use: On request.

Special Requirements: Using assistive technologies may require the development of hardware interfaces, unless they can be plugged in and the operating system includes sufficient abstraction to enable them to provide input and/or output seamlessly without additional programming

Assumptions: Hardware devices include drivers, and, programming interfaces which enable the programmer or the application administrator to configure the device.

Notes and Issues: Programming of hardware interface has to be researched technically, as this may depend on the requirements of the particular device(s).

Typical devices used as assistive technologies are available within the references and bibliography section of this document.

Page 58: Aristotle School Library

Language requirements

The application may have to be translated in different languages, although initially the English language shall be available by default. The relevant Unicode character set shall be applied according to the users' preferences within the operating system in use at the presentation layer.

By default, the character set shall be based on the character set and language configured through the operating system on the machine that runs the presentation layer of the application. Some languages may include a number of dialects, which may be applicable for reading and translating ancient scripts. Users may require the availability of character sets such as Egyptian hieroglyphics. Some international character sets may be available as part of the Unicode character sets, as outlined at http://www.unicode.org.

However, this configuration is not expected to be part of the current scope of the requirements, although the technical framework shall be planned in advance to enable the possibility of updating this functionality in the future.

Appearance requirements

"I saw the angel in the marble and I carved until I set him free"

MichaelAngelo (1475 to 1564)

The user interface sketched above are planned to be created as user controls which allow different tabs to allow the user to navigate and to break down the information available within an apparently small screen. The philosophical design concepts place an emphasis on apparent simplicity of use which encompasses extensive functionality using graphically guided user interaction, which allow the user to be in control of the information.

Page 59: Aristotle School Library

Reporting

Reports prepared in advance pre-empt the information requirements that would be available to the client as part of an installation that is not yet customized, as customizations are considered to be controlled even during the maintenance phase of the product.

This places the onus of responsibility upon the analyst and the software engineering team to design a system which can be flexibly adapted to future changes within the context of managing a library of any size. An initial list of reports follows:

Report name Report description

Customer list List of customers and their contact details

User list List of users and their userIDs and codified user rights as defined within the Data Model.

Orders Orders including order date, value, and, items within each order, grouped by vendor. Order status should be available to be able to reconcile with the vendor or with accounting systems used by the client.

Subscriber list List of customers, subscription start date, and, subscription end date highlighting overdue subscriptions for renewal.

Inventory List of books and items which are on order, on shelf and borrowed out, and location of the book or item particularly for a library which has multiple sites or branches.

Borrowed out items List of books and items borrowed out, whether the number of days overdue (e.g. 5 days overdue) and (links to or controls leading to reading) contact information of the client.

Ideally reports would be searchable using similar searching criteria that would be available when searching other items as described within the relevant use case. Nevertheless a separate use case for different hierarchical organization of objects would have to be designed prior to the coding stage.

Page 60: Aristotle School Library

Section 2: Software Engineering Practice

This section outlines how the practices meet the original requirements analysis.

Functional requirements

HardwareThe hardware requirements cannot be defined at this stage, however, the hardware requirements of the development environment used for preparing the requirements document and the prototype is available within Appendix A of this document.

System DesignFunctionality requires technical research (see Issues Log). The prototype is not yet released for functional use.

Attached prototypes and designs using Visual Studio 2010 and Microsoft Access 2007 are attached accompanying this document, including the data model, that was implemented:

a) using objects within a project based on ASP.NET, including user interface component design that attempt to match the mock-ups within the original requirements. See Software used within Appendix B.

This project can be used as an evolutionary prototype, unless the underlying technology used by the software engineering team is different, after the requirements document has been reviewed and a technical feasibility review is carried out.

b) using a database created using Microsoft Access 2007, including simple administration and data administration user interface screens that are intended to provide further insight into the design of the web application, supplementing the screens originally designed. This is intended to be a throwaway prototype.

Data ModelThe data model outlines books and media, the vendor management, and, the customer relationship management modules within the database.

Book and media management

Book and media management components are available to manage the information requirements for maintenance and administration of records for books and other media held within a library, including an advanced history of cost prices and selling prices that may be useful when exported to an accounting system, or a reporting engine.

Page 61: Aristotle School Library

Figure 19 - Customer Relationship Management Data Relationships

Customer relationship management

Personal and corporate customers may be tracked across the sales and marketing process, as prospects, on through subscribers of the library.

Contact details are designed to allow a hierarchical organization of contact management utilizing a smart user interface design that incorporates drilling down to review contact details avoiding hierarchical navigation that results to be distracting to customers.

Figure 20 - Contact Management Data Entity Relationships

The above diagram is not clear due to an issue with Visio 2007, and, an explanation of the relationships amongst entities is provided textually below.

Page 62: Aristotle School Library

Vendor and order management

Vendor and order tracking is not designed as extensive, as this is not intended to replace accounting or supply chain management integrated systems, however, basic order-tracking and vendor management is provided through a minimalistic vendor data model.

Figure 21 - Vendor Management Data Entity Relationships

Security

The security module allows user management, role management, and, configuration of access rights within different portions of the user interface.

Figure 22 - User access control

Page 63: Aristotle School Library

The relationships amongst data entities, are documented as follows as these may be used for querying and reporting, possibly providing the end-user access to query the information using database query languages e.g. SQL, LINQ.

BooksandMedia may be categorized into one-to-many media types.

BooksandMedia may be reviewed by zero-to-many reviewers, and, include zero-to-many reviews.

PersonsOrCorporate may be (zero-to-many) ContactDetails, and, each ContactDetails entity can have zero-to-many ContactDetailsEmails, ContactDetailsSocialMediaAccounts, ContactDetailsFax, and, ContactDetailsTelephones.

PersonsOrCorporate may have one-to-many PreferredTopics.

PersonsOrCorporate may have zero-to-many subscriptions.

BooksAndMedia may be linked to zero-to-many orders.

Orders can be made from one-to-many Vendors.

Page 64: Aristotle School Library

Data Dictionary (DD)Within this section, we are describing the information set, including the contents, format, and structure of a database, the relationship between its elements, used to control access to and manipulation of the database.

Table Column name Data type Data specification

BooksAndMedia

Books and media available in stock, for sale, for borrowing, or else subscribers may be asked to pay for each academic journal, with pricing for each hard copy or download.

MediaID

(primary key)

Long integer (signed or unsigned)

Uniquely generated number which identifies the book or media, received as a purchase from a vendor or as a donation to the library.

ISBN/ISSN Text (22) ISSN for academic journals, or, International Standard Book Number is a unique commercial book identifier, and, can be 9 digits, 10 digits, or 13 digits.

This can be useful in searching for books and academic journals, as it can be indexed for rapid retrieval.

Title Text (50) Book or media title

Edition Text (10) Edition of the publication

Publishing year Date (yyyy)

Year published by the publishing house.

Author Text (50) Name(s) of author(s) and main contributors of the publication, including academic titles.

Description Text (max) Summary of the publication that is not expected to exceed 150 words (configurable).

Review Text (max) Publication may be reviewed by appointed reviewers and/or by customers and/or the public.

CostPrice

(History)

Structured data

CostPrice and Currency of CostPrice, which may have historic information, in order to calculate average weighted cost (AVCO), and, other costings, including first in first out (FIFO).

Price may be denominated in many currencies as authorized by the librarian.

Currencies may be restricted to those within the Currencies table by the database administrator on behalf of the librarian or library manager, as there may be trading restrictions imposed by regulatory agencies.

The data structure shall include a foreign key linking to the primary key within the currencies lookup table.

SellPrice Decimal Selling Price and Currency of Selling Price,

Page 65: Aristotle School Library

Table Column name Data type Data specification

(History) which may include historic information.

NULL indicates that the item is not for sale.

Selling price would be inclusive of value added tax, and, exclusive of trade discounts, for example, on second hand books.

Differential pricing is calculated through the business layer (promotional and marketing logic), when this is implemented within Aristotle 1.0.

Currencies may be restricted to those within the Currencies table by the database administrator on behalf of the librarian or library manager.

The data structure shall include a foreign key linking to the currencies table primary key.

Cash Discount (%) Decimal Cash discount for buying book or media.

UnitsOnShelf Integer Number of items held for inventory.

MediaType Text(100) Type of media, for marketing use.

MediaLanguage Text(50) Language according to ISO-639-1.

BarCode Text(50) BarCode, which may be scanned in or typed in, using standards such as UPC-A, or, UPC-E, according to the client requirements.

Alternatively an internal system of stock codes may be created to facilitate the memorization of frequently used stock codes by inputting clerks, until integration with MARC-21 is implemented.

On Order Boolean True if item is on order, False if the item has not been ordered.

AvailableDateExpected Date Date (ISO-8601) when the media item is expected to be available on the shelf, after administration have checked that the order was received in good order from the vendor and that the media has been approved by the librarian responsible for making items available on the library shelf, whether this is virtual or a physical shelf.

Some clients may have pre-booked items linked to their name.

Location Text (40) Location code to ease manual (physical) searching through the library.

Copyright Text (max) Notes about legal rights to copy book, including a hyperlink to the copyright text, the file location of the copyright text on the network, or a copy of the copyright text itself.

NULL value or blank value is invalid for this field.

Unknown shall be used to indicate lack of

Page 66: Aristotle School Library

Table Column name Data type Data specification

documentation on copyright of the book or media.

Not applicable (NA) shall indicate that the copyright agreement is not relevant to the library manager, although this is not perceived to be the norm.

LostAndStolenItems Text(max) Report about Lost and Stolen Items, including their unique RFID tag, and, details of the report made to the Interpol, the Police of Malta, or the relevant authority or agency responsible for investigation of this problem, if applicable to the item reported as stolen or lost.

AvailableForBorrowing Boolean Is item available on the shelf to be borrowed or downloaded?

NULL value indicates that item is not available for borrowing, and, may indicate that item is only available for sale.

Check that Selling Price is available for items available for sale, whether they are in hard copy or whether a price is payable for each download.

Foreign key to BookingDetails.BookingDetailsID

ContactDetail

Persons, Companies and clients may have contact details.

ContactID

(primary key)

Contact Identifier

Telephone Zero-to-many telephone numbers can be stored for each contact detail.

Fax Zero-to-many fax numbers can be stored for each contact detail.

Email Zero-to-many email addresses can be stored for each contact detail.

SocialMedia Zero-to-many email addresses can be stored for each contact detail.

Website Text(1000) URL(s) providing information about the ContactDetail.

Other contact details Text (max) Other relevant contact details, including opening hours of a company, or available days/hours of contacts.

MarketingStatus Text(50) Relationship with the library being managed in marketing terms:

1. Sales lead

2. Qualified lead or Prospect

3. Prospective customer awaiting sign-off

Page 67: Aristotle School Library

Table Column name Data type Data specification

4. Library Customer

(active subscription)

5. Academic Library Customer

(active subscription)

IsStaff Boolean Indicates whether the contact is a member of the library staff.

IsBusinessPartner Boolean Indicates whether the contact is a business partner to the library, for example, a shareholder, or, a director having a direct interest in the running of the library.

IsVendor Boolean Indicates whether the contact is a vendor to the library.

IsBlackListed Boolean Indicates whether the contact is blacklisted, for example, library management has indicated that the contact has inappropriate credit history with the library, or has been marked as a bad debtor according to the library management policies.

OpeningHours Text (max) Information on the opening hours of the ContactDetail, which may be a retail outlet or an office, including the days/hours during which one may expect the office to be open for business.

Foreign key to

PersonOrCompany.ID

Page 68: Aristotle School Library

PriceForSubscription

Subscription Prices for each client, to allow for differential pricing, subject to compliance with competition law.

Contact.ContactID

(foreign key)

Integer ContactDetail for which the price is applicable.

The ContactDetail must have a marketing status which includes code 3, 4, 5, or 6, or else have a NULL value, which indicates that the price is not linked to a contact.

Currency

(foreign key)

Currency denomination of subscription price.

Price Decimal having up to 2 decimal points.

NoOfSubscriptions Integer Number of subscriptions owned by the ContactID.NULL value indicates that this is not linked to a Contact.

Unit Text (50) Standard unit of measure used, which may be based on number of days/weeks/months, amongst others. This indicates the duration of the subscription.

Media.MediaID

(foreign key)

The price may be linked to media.

ClientSubscription

History of client subscriptions.

Contact.ContactID

(foreign key)

Integer

SubscriptionTypeID Integer

SubscriptionStartDate Date/Time Date on which subscription starts.

SubscriptionRenewalDate

Date/Time Date on which subscription ends.

AutoRenewalOfSubscription

Boolean This flag indicates whether the subscriber has chosen to automatically renew their subscription or not on SubscriptionEnd date.

SubscriptionComments

Text (max) Information about the subscription.

Topic

Lookup table for holding list of subject matters and categories for books.

TopicID Integer

Topic Text (100) Name of topic.

Page 69: Aristotle School Library

BooksAndMediaOnLoan

Contains information on items on loan, whether they are charged a price or not.

BooksandMedia.MediaID

(foreign key)

Contact.ContactID

(foreign key)

Taken on Date Date when media was borrowed, when media is available for borrowingCheck BooksAndMedia.AvailableForBorrowing.

Return by Date Date when media has to be returned by Contact.ContactID. Return by date is greater than Taken on date, and, falls within subscription period of Contact.ContactID, when the contact is a customer.

Warnings are propagated to the user interface when validation and verification technical errors result in errors, which may indicate a human error, or a logical error within the application.

The business logic provides reports and validations which monitor that the return by date has not been exceeded, and, that the duration of the loan does not exceed the norm allowed according to the pricing policy.

Audit

Audit table logs changes made, financial transactions, and, SQL statements used for creating, updating and deleting data from the database, to allow information systems auditors to review any bugs and other issues for investigation. Rows within this table shall be populated within relevant portions of the business logic where audit is required.

Auditing of transaction types shall be configurable.

AuditID Integer

Date Date Date and time transaction or change is logged.

TrnID Integer Transaction number (incremental)

Usr.userID

(foreign key)

Integer User code for logged user that initiated transaction.

Description Text (100) Transaction description.

TrnType Text (10) Create/Change/Delete/Error/Warning/LogEntry

SQL Statement Text (max) SQL Statement used to initiate transaction.

Currency Code Text(3) Currency code (ISO 4217), if a financial transaction is applicable.

Amount Decimal with 2

Amount of financial transaction if this is relevant.

Page 70: Aristotle School Library

BooksAndMediaOnLoan

Contains information on items on loan, whether they are charged a price or not.

BooksandMedia.MediaID

(foreign key)

decimal points

Usr

Information about logged user and access rights.

UserID Integer User identification number.

User Text (40) User name for logon.

Pwd Text (max) Encrypted password for logging on user.

Role Text (50) Role of user.

By default the following values shall be available:Librarian with full administration rights.Libary customer with searching and booking, borrowing, buying and browsing options enabled.

WeakPasswordAllowed

Boolean Flags whether a strong password is enforced or not.

AccessRights Text (max) Generated code which indicates which options are enabled for this userID.

By default a new user inherits the rights of the default user within the same role.

LastIPAddress Text (40) The public or private IP address used by the user to authenticate the user, whether the authentication was successful or not.

LastLogonDate Date/Time The date/time (including time zone)of the last logon date and time.

SecurityID Integer This field may be used to store an external code linked to the user which is read from an external device e.g. fingerprint reader.

The development of biometric authentication is not within the current scope of analysis.

ValidFrom Date/Time The validity start date of the user account.

ValidTo Date/Time The validity end date of the user account, which may be updated to a date in the past in order to disable the account.

Comments Text (max) Information about the user.

When the user has been blocked background information including reasons for blocking the account can be typed in, for example, a note saying that the user has been blocked due to repeated unsuccessful logon attempts on the user's account.

Page 71: Aristotle School Library

Vendor

Information on vendors and suppliers for books which is required for reporting price lists and providing pre-booking information for orders.

This information may be used to export data to an accounting system.

VendorID

(primary key)

Unique identified for vendor

VendorName Text(25) Commercial name of supplier, provider, vendor or agent the library is in contact with.

Contact.ContactID

(foreign key)

LastOrderDate Date Date of the last order.

The data model can be enhanced to include historic information on order dates, however, at this stage vendor and order management are not considered to be within the core functions of the information system, and, it is being assumed that this data will be synchronized with existing information systems such as accounting enterprise resource planning applications and accounting systems.

LastDeliveryDate Date Date of the last delivery date.

LastPlacedOnShelf

Date Date when the order was received in good condition and placed on the library shelf, assuming that orders are received (acknowledged) in batch by administration, and verifying that the media are in good order and match the original order and special requirements noted within the original order.

When specific items within the order are not placed on shelf, then Media.AvailableDateExpected is left to read NULL.

Updating this field may automatically update Media.AvailableDateExpected, for each MediaID that is part of the order.

NextOrderDate Date Date of the next expected order date.

NextDeliveryDate Date Date of the next expected delivery date.

Order.OrderID

(foreign key)

Comments Text (max) Additional information about the order including delivery options, shipping routing details, and, customers' preferences that may be annotated.

Order

Information held about orders of books and media from vendors.

OrderID Integer

Page 72: Aristotle School Library

Vendor

Information on vendors and suppliers for books which is required for reporting price lists and providing pre-booking information for orders.

This information may be used to export data to an accounting system.

VendorID

(primary key)

Unique identified for vendor

This may be imported from an accounting system in the future.

OrderDate Date Date of the order

Vendor.VendorID

(foreign key)

BooksandMedia.MediaID

(foreign key)

Quantity Integer Quantity of [units] ordered.

Unit Text (50) Standard unit of measure used, which may be based on number of days/weeks/months, amongst others. This indicates the duration of the subscription.

PricePerUnit Decimal holding up to decimal places

Price for each unit.

Currency Text(3) Currency according to ISO-4217.

DeliverTo Text (max) This can either be a link to Contact.ContactID, or else a free text, where delivery information and delivery preferences such as preferred location, date/time can be annotated.

ExpectedDeliveryDate

Date This is the date when the order is expected to be received in good order at the library (for administrative purposes), however, this is subject to administrative checks, prior to making it available for customers of the library.

CostPriceHistory

History of cost pricing for books and media.

This may be useful for interfacing with an accounting system.

BooksandMedia.MediaID

(foreign key)

Integer

Page 73: Aristotle School Library

Vendor

Information on vendors and suppliers for books which is required for reporting price lists and providing pre-booking information for orders.

This information may be used to export data to an accounting system.

VendorID

(primary key)

Unique identified for vendor

Currency Text (3) Currency code (ISO 4217).

Cost Price Decimal with up to 2 decimal places

Cost price

PurchasedOn Date Date of purchase.

SellingPriceHistory

History of selling prices for books and media.

This may be useful in interfacing with an accounting system.

BooksandMedia.MediaID

(foreign key)

Currency Text (3) Currency (ISO 4217)

Selling Price Decimal with up to 2 decimal places

Selling price

SoldOn Date Date of sale.

importTransactionTable

Table for importing transactions using a standard format from another system.

The programming process shall then update the data uploaded to the relevant tables within the library information system in a coherent manner and in a manner which preserves data integrity.

Warnings and exceptions can be generated by the system, although the interface is not part of the scope of the current development.

TransactionID Integer Unique identifier for transaction to be imported to Aristotle.

Date Date Date/time and timezone of transaction (ISO 8601).

Currency Text (3) Currency (ISO 4217)

TrnType Integer Transaction type code. Transaction type codes still have not been defined.

ValueExVAT Decimal with up to 2 decimal places

Monetary value of transaction, excluding consumption tax.

VATCode Text(3) VAT Code to indicate consumption tax status.

expTransactionTable TransactionID Integer Unique identifier for transaction to be exported.

Page 74: Aristotle School Library

Vendor

Information on vendors and suppliers for books which is required for reporting price lists and providing pre-booking information for orders.

This information may be used to export data to an accounting system.

VendorID

(primary key)

Unique identified for vendor

This table allows for the export of transactions to another information system.

Date Date Date/time of the transaction to be exported, including time zone (ISO 8601).

ValueExVAT Decimal with up to 2 decimal places

Monetary value of transaction, excluding the value of consumption tax.

VATCode Text(3) VAT Code to indicate consumption tax status.

UserAccess

This table includes information which de-codifies access information to screens, according to the role or the user.

ScreenID Integer Unique identifier for each user interface component.

AccessType Text(3) R - Read onlyRW - Read and editRWDt - Read, edit and delete information to recycle bin.RWD - Read, edit and delete information to recycle bin and permanently.

roleID Text (3) User role, which may include:LibrarianLibrary customerOther role

Access rights may be granted to a roleID or to a userID.

user.userID Foreign key Access rights may be granted to a roleID or to a userID. If access rights are granted to a user then they override the access rights granted to a role.

controlID Number Unique identifier of the control upon which the access applies.

Access is hierarchical, and, rights assigned to controls (e.g. add button), override rights assigned to the form within which they are located.

PersonOrCompany ID Integer Primary key

Name Text(50) Name of individual or corporate entity including title.

Foreign key

Address.AddressID

Page 75: Aristotle School Library

Vendor

Information on vendors and suppliers for books which is required for reporting price lists and providing pre-booking information for orders.

This information may be used to export data to an accounting system.

VendorID

(primary key)

Unique identified for vendor

Contact Details Text(50) Contact details that may exclude telephone numbers, fax numbers, email addresses, social media links.

Alternatively a textual summary of commonly used contact details.

SubscriptionStart Date Start date of subscription.

SubscriptionEnd Date End date of subscription.

Where date is not known a NULL is updated.AutoRenewSubscription

Boolean Flags whether to automatically renew subscription for another period, equivalent to the previous subscription period.

Subscription period = Subscription End Date - Subscription Start Date

Foreign key

Subscription.SubscriptionTypeID

Subscription types include:a) Limited periods e.g. yearly, quarterly, every three years.b) Lifetime subscription i.e. update SubscriptionEnd to NULL.

Date of Birth Date Date of birth of person, or incorporation date of company, which may be used for public relations.

Identification Text(10) Identity card number or passport number of person, or registration number of company.

This field is set to NULL if not applicable.BarCode Text (12) This field is the UPC-A bar code that may be

assigned by a bar code reader, representing the barcode number of the membership card.

AllowsDirectMarketing

Boolean The person or authorized signatories representing the corporate entity have allowed direct marketing information mailed to them.

Foreign key

Contact.ContactID

Postal Address AddressID Number

Address Line 1 Text (100) First line of postal address. This can be a post office box.

Address Line 2 Text (100) Second line of postal address.

Address Line 3 Text (100) Third line of postal address.

Post Code Text (10) Post code

Region Text (10) Region within which the address is located.

Page 76: Aristotle School Library

Vendor

Information on vendors and suppliers for books which is required for reporting price lists and providing pre-booking information for orders.

This information may be used to export data to an accounting system.

VendorID

(primary key)

Unique identified for vendor

Country Text(10) Country according to ISO 3166.

Telephone 1 Text (10) Telephone number available at this particular address.

Telephone 2 Text (10) Telephone number (2) available at this particular address.

Fax 1 Text (10) Fax number available at this particular address.

Fax 2 Text (10) Fax number (2) available at this particular address.

Email address Text (40) Email address that is relevant for this postal address, for example the email address for a particular branch office of a company.

Map Links to a map or a link to spatial data to locate this particular address.

The data type is to be determined when this feature is implemented.

BookingDetails contains information about bookings made in advance of media being available on the library shelf.

BookingID Number Unique identifier which provides a reference to the booking.

isBooked Boolean Indicates whether an item is booked or not i.e. true or false.

Foreign key to

Media.MediaID

Foreign key to ContactDetail.ContactID

ItemRequiredBy Date/Time Date by which the customer (contact) requires the item to be available.

LatestRequiredBy

Date/Time Latest date by which the customer (contact) is willing to wait for this item to be available 'in-hand'.

PreferredDeliveryMethod

Text(50) Customer can opt for:a) Pick-upb) Delivery (economy route)c) Delivery (express route)d) Tracked delivery

PreferredDeliveryInstructions

Text (100) Customer may choose to ask for a particular courier service to be used or may ask customer service to pay attention to a particular request e.g. Item must not be new, Item must be packed using white packing paper for cultural or religious reasons.

Typically a person having Islam faith may prefer not to receive books/media wrapped using decorating paper that is themed for Christmas, for example, because Islam

Page 77: Aristotle School Library

Vendor

Information on vendors and suppliers for books which is required for reporting price lists and providing pre-booking information for orders.

This information may be used to export data to an accounting system.

VendorID

(primary key)

Unique identified for vendor

followers do not celebrate Christmas.

Information on Muslim Holidays is available [online] at http://en.wikipedia.org/wiki/Muslim_holidays, last updated on 15th November 2013.

This does not imply that the library management has accepted the customer's request, as a business policy on library management may have to be drawn up.

NOTES

1. Text (max) refers to the largest data field allowed to store text.

2. A model of the data dictionary is available within LibrarySystem.accdb, which was created using Microsoft Office 2007.

Page 78: Aristotle School Library

CodingThe hierarchy of classes was created to represent the entities within the data model.

Page 79: Aristotle School Library

Within the Solution Explorer the following sub-folders might be relevant.

App_browsers Browser definitions, which was not used at this stage of coding.

App_code Classes within the data model were implemented under this sub-folder.

App_data Database that implements the data model and some coding using Microsoft Jet Database Engine.

Web pages are available to indicate the design of the user interaction including:

Logon.aspx

AuditTrail.aspx

CustomerManagement.aspx with an alternative design within LibraryAdministration.aspx.

OrderTracking.aspx

A technical definition as defined by Microsoft Developer Network (MSDN) is available within the references and bibliography section of this document.

Login

The login form is the first point of entry to the information system. Users are authenticated against stored logins within the object-based model which seeks to validate users as they login to the information system. The main obstacle at this stage is that the authentication mechanism requires a technical solution to query the object-based model using LINQ, as detailed within the issues log.

Page 80: Aristotle School Library

According to the requirements access control has to be implemented as part of the security module and therefore the functionality of the security module is not yet complete at this stage.

Order tracking

Figure 23 - Order tracking

Order tracking is used to review the orders made from different vendors, and the control is a data grid which means that fields within the grid can be used for sorting. The user interface is designed to be simple and allow the user to view items ordered from different vendors at this stage although the full implementation of the design is far from complete.

Searching functionality shall also be available in the final product, although at this stage some issues with searching have to be resolved from a technical point of view. We are also designing another form which includes the following tabs:

Books and media ordered

Selling price history and cost price history with the functionality to match cost price according to the cost evaluation method and calculate the mark-up on each item or in aggregate.

List of current orders, which is an alternative view of the order tracking page.

Some technical hurdles are still to be overcome, as detailed within the issues log, and these are a constraint to further coding at the moment.

Page 81: Aristotle School Library

Audit trail

Figure 24 - Sample audit trail within development version of Aristotle

The audit trail is designed to show any changes made to the database, and, to keep a time record and an independent copy of financial transactions done through the information system.

Logging can be enabled and disabled through the use of the Audit class which includes the possibility to keep record of transactions within a delimited text file, over and above writing the audit trail to the object-based data model.

Audit.cs public void disableDelimitedTextFileLogging() { this.DelimitedTextFileLoggingEnabled = false; }

The information system may have <<zero-to-many>> audit trail objects which are intended to be used as different objects attached to different modules, therefore the class was not implemented as a singleton.

Reports

The reporting module is still being developed at the time of writing. The main obstacles include the use of Crystal Reports within the solution which seems to be unpopular amongst developers, according to posts within the references and bibliography section of this document, and, the high performance requirements that were not met by the hardware when testing JasperReports Business Intelligence Suite.

Page 82: Aristotle School Library

User manual

Logging on to the application is simply, you need to know the user name and the password. Roles and access security are accessible and configurable within the application. In the future, advanced technologies such as fingerprinting or biometrics shall be integrated to make it easier for you to logon without writing down passwords anywhere.

For security reasons, the password is stored as an encrypted string so that the administrator is only able to change the password, rather than read the database in clear-text.

Figure 25 - Logon screen demo

Features of access control include:

access control and security and user administration; authentication is based on username and password, with future integration with operating system authentication features for an effective Single Sign On implementation and other authentication mechanisms.

demo is HTML based; software shall authenticate cached password and replicated authentication on server. The user shall be asked whether to retain the cookie stored within the browser of choice on the user's computer desktop.

Access control shall generate a code which represents the access for each screen, identifying the session and remembering the last user logged on to make is easier for the user to log on without having to type in the password again.

Media management Within integrated control the user can maintain customer relationships, subscriptions and manage media borrowed, monitoring their return.

The user can also borrow books and other media, purchase books and other media, and, monitor inventory and locate items through the user interface or through reports available through the application.

Each customer and non-customer can have many contacts, and these can be browsed through the interface so that you can access information without leaving the same control.

Page 83: Aristotle School Library
Page 84: Aristotle School Library

Customer relationship management allows the user to administer customer details, subscription details and items borrowed by each registered customer.

Figure 26 - Customer Management user interface

Library membership cards can be made available as soft copies or hard copies to members of the library. Membership details including renewal of subscriptions can be managed through the Customer Management screen.

Reports are available to support the memberships available and to maintain inventory management control.

Page 85: Aristotle School Library

The member's picture would be available within the membership card in order to identify the member, and, this needs to meet the policies of the organization managing the library. Membership cards can be printed through the library system, on business cards using standard sizes.

The number on the far right bottom corner represents a sequential numeric membership number generated by the system, although we can prepare a membership number that is based on other criteria, for example, JS/123, which reads the initials of the member, and, adds a sequential number.

Searching the library is straightforward, with the use of wildcards, which indicate criteria to search for.

A process shall be available to allow the user to scan photographs of members, optionally validate the photos with an authoritative source of information, and, link the photos to the membership cards, with the manual assistance of a user matching the members' user profiles to membership cards.

The user shall be able to use searches using wild cards as follows, and, these would display matching relevant results, by searching the library for books and media.

*eng - all items ending with 'eng'

eng* - all items starting with 'eng'

*eng* - all items including 'eng' within any part of the title, author or other searchable criteria built within the user interface

Page 86: Aristotle School Library

This form allows exporting transactions to a file.

Page 87: Aristotle School Library

Order management

Aristotle allows the user to track and administer orders from vendors, with the possibility to track a particular order. It shall be also possible to track the status of the order in the future i.e. whether it is on hold at the vendor, or, whether an order has been returned to the vendor by the administration of the library or some other administrative checkpoint en route.

Figure 27 - Order tracking within development version of Aristotle

Page 88: Aristotle School Library

Programming stubs

Querying the Audit table using Visual Studio 2010 is a task that a developer would do with ease, as one can use the integrated development environment itself to query the database, for providing technical support and analyzing data issues.

Page 89: Aristotle School Library

The audit trail indicates transactions which have been logged to the database, and, these can be scrolled through, sorted and searched, commonly in a sequential manner. The user may even take an export of the database, and, analyze it using spreadsheet software tools. The audit trail may include transactions of the following types:

financial transactions such as subscriptions received, and, orders made including the gross order amount.

changes to records such as changes to customer fields, and, updates to subscriptions made, including the user(s) who amended the fields.

deletions of information and data, including the user(s) who amended or approved the deletion.

Figure 28 - Audit trail

Aristotle is not currently planned to replace an accounting system, but nevertheless provides sufficient information to an auditor to be able to query information required to be migrated to an accounting system, through database query languages.

Aristotle also supports an import/export function which enables data to be imported from another system or exported to another system through the data interface provided by the import and export tables (currently importTransactionTable and expTransactionTable).

Page 90: Aristotle School Library

Coding of key algorithms and database schema

Aristotle supports searching thousands and possibly millions of unique book and media items, through the intelligent use of searchable objects.

In addition to sorting and indexing algorithms, the database administrator may need to maintain the database by reviewing indexes of key fields used within search criteria, and, administering the database to make appropriate use of algorithms that enable caching, retrieval, indexing and efficient storage of big data.

Typically searching for a book requires the engine to use an efficient algorithm for scanning millions of media, and, may be tuned by indexing key fields (for searching), and, enabling a quick sorting algorithm to enhance the quick searching through media. Sorted data is thought to be easier to search, and, therefore algorithms such as quicksort is thought to provide a starting point for comparisons. Binary search can then be used to compare items linked to a key data that identifies that item (e.g. book) by comparing items being searched for with items in the middle in a recursive fashion.

Quicksort, originally developed by Tony Hoare that on average makes O(n log n) comparisons to sort n items. In the worst case, it makes O(n^2) comparisons, although this behavior is rare. Quicksort's sequential and localized memory references work well with a cache. Quicksort is a comparison sort and in efficient implementations is not a stable sort.

Page 91: Aristotle School Library

Objectives and success criteriaObjectives are being documented for quality assurance management, as these form the basis of test cases being documented within the next section of this document.

1. The library system allows the user to manage customer information, subscriptions and books on loan.

1.1. User interface components provide the functionality that is expected according to the requirements whether stated or implicit.

1.2. Validations and clear error messages are displayed as a result of invalid input e.g. invalid date, application does not allow subscription to start before the starting operational date of the library.

1.3 Usability guidelines

1.3.1. The user can locate information within the screen in reading response time.

1.3.2. Persons with disabilities such as colour-blindness are able of switching to black and white as a colour scheme.

1.3.3. The web application shall include multi-language support, when the application has been developed.

1.3.3.1 Spelling is expected to be accurate when the strings and content are translated to different languages.

1.3.3.1 Grammar is expected to respect the grammar rules of the languages, although this is might not be validated automatically for the time being.

1.4 Software engineering guidelines

1.4.1. The analysis process may result in different technologies being used for the development of the commercially available software and the future integration with existing commercial technology, such as Amazon Web Services, and, other technologies that are mentioned within the conclusion of this document denoting suggestions for future sophistication and integration of the application.

1.5 Persons with disabilities are able to understand information in the same way that persons without disabilities are able to understand information, possibly with the aid of assistive technologies.

1.6 Code reviews are expected to indicate high cohesion of functionality, low coupling and a minimum of redundant information within different data store, unless redundancy is specifically required to improve the quality of information by providing a wider range of data objects (i.e. different measures of value), and, reporting functionality, which allows for analysis through the skilled use of query tools and languages.

Page 92: Aristotle School Library

Quality AssuranceTesting of the application shall be carried out using unit tests for each logical unit, and, including boundary checks, and, usability checks, system and integration testing for the application, and, the following script provides a revisable plan for the test cases.

Testing shall include white box testing and black box testing. Each software engineer is responsible for testing that the module they develop functions according to the specification, and, integrates with other modules, by coordinating with the rest of the software engineering team, once the team has been formed.

Unfortunately, testing does not guarantee that the software product is free of defects. Testing is in line with PMBOK/ISQETB and ISO 9001:2008 attempts to ensure on a best effort basis that the software:

has been verified against the specification and any changes agreed upon during the software development process,

goes through validation which provide a re-assurance that the software is ready for basic use; software should allow for ease of navigation and user-friendliness, in line with the objectives mentioned above, and,

meets performance criteria and non-functional requirements are planned to be tested prior to commercial release of software

Validation and verification may consist of manual testing and automated testing with the assistance of test scripts, and, web-testing tools. As a framework, we intend to use the V-model for matching requirements to test plans, test cases and running specific tests, which include automated and non-automated tests.

Figure 29 - V-Model.

Usability and user satisfaction quality assurance tests are planned to follow the technical tests to provide comfort to alpha and beta testers selected to represent different user focus groups.

Test cases are planned to align the quality management criteria and serve as a guideline for test driven development, and, for the preparation of specific tests that may be updated to the original specification as the details of the project unfold following the controlled change process being outlined within this document.

Page 93: Aristotle School Library

1. Customer Relationship Management involves testing that the screen(s) for reviewing customer details, subscription details and items borrowed meet the perceived expectations of the end-users.

TestID Test Description Pass/Fail Criteria

1.1

1.2

Creation of contact detail.

Updating of contact detail status to customer.

Contact details can be created and the contact can be changed to a customer.

Personal details are filled in including mandatory fields i.e. name, address, and at least one of telephone number(s), email address(es), and other contact details.

Audit trail is updated with valid and verifiable data.

Subscription start date and subscription end date are valid, and, the number of days between the start date and the end date is correctly calculated, according to the number of business/calendar days.

Deletions from the contact details are not allowed unless the subscription is not de-activated and all books have been returned.

1.3 Subscription details are valid Subscription identifier is a unique serial number generated during the year when the subscription was created.

This is the same as the membership number printed on the membership card.

Page 94: Aristotle School Library

Each subscription number is unique and is linked to a different customer.

Subscription start date and end date are the same as those within the Customer tab.

Data integrity within pricing and subscription information is intact.

Information is up-to-date, and, reflects the latest update.

Audit trail is updated with valid and verifiable data.

See Tabs.aspx.

1.4 Customers' borrowed details are valid. Customer's subscription may be expired, and, still indicate items to be returned.

Information on borrowed books and media is up-to-date.

Audit trail is updated with valid and verifiable data.

Page 95: Aristotle School Library

2. Contact Management module is in place to manage the contacts linked to the client organization, and, testing ensures that the contacts can be administered reliably, and, that the state through which data flows when processed does not create data integrity or lack of coherence within the software.

TestID Test Description Pass/Fail Criteria

2.1 Contacts may be created and edited. Contact details are persisted within the data store.

Audit trail is updated with valid and verifiable data.

2.2 Contacts cannot be deleted if they are linked to active customers or active subscriptions.

Deletion is disallowed when an active customer is linked to the contact.

Deletion is disallowed when an active subscription is linked to the contact.

Audit trail is updated with valid and verifiable data.

2.3 Conformance testing to confirm that contacts are managed according to the Data Protection Directive.

Manual or automated process is in place for ensuring that the data subject has consented to the processing of personal data is being followed by the client organization.

Page 96: Aristotle School Library

3. Media Management module is in place to ensure that books and media managed by the library does not create data integrity or quality management issues throughout the process of borrowing to clients of the library, and, when interacting with the order tracking/vendor management module.

TestID Test Description Pass/Fail Criteria

3.1 Media can be created edited, amended, and, updated.

Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Audit trail is updated with valid and verifiable data.

3.2 Media cannot be deleted if they are borrowed out. Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model.

When media is borrowed out, the master record of the media cannot be deleted from the database.

Deletion may require approval by another user (see security module).

Audit trail is updated with valid and verifiable data.

3.3 Media cannot have a negative stock level. Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model. Minimum stock re-order level generates warning. Negative stock quantity is not allowed (integer). Audit trail is updated with valid and verifiable data.

TestID Test Description Pass/Fail Criteria

Page 97: Aristotle School Library

3.4 Media can be borrowed out to customers of the library, and, the pricing charged meets the policies configured by the librarian.

Mandatory fields have to be filled in, otherwise an error or warning message is displayed.

Late returns are clearly indicated within the user interface.

Pricing charged is according to the pricing policy configured, which can be granularly configured for the customer.

Audit trail is updated with valid and verifiable data.

Order/Vendor Tracking module allows a user to track orders through the acceptance, delivery and administrative/logistic verification processes for order and stock management.

TestID Test Description Pass/Fail Criteria

4.1 Order can be created and edited. Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model.

Order creation is persisted within the data store and can be reviewed within the user interface.

Audit trail is persisted within the data store as valid and verifiable data.

Page 98: Aristotle School Library

TestID Test Description Pass/Fail Criteria

4.2 Order can be tracked. Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model.

Order status is clearly displayed within the user interface.

Information displayed is relevant.

Audit trail is persisted within the data store as valid and verifiable data.

4.3 Order cannot be deleted if linked to active orders. Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model.

When a customer has placed an order, the order and the book/media item cannot be deleted.

The vendor cannot be deleted or de-activated.

Audit trail is persisted within the data store as valid and verifiable data.

Page 99: Aristotle School Library

Security and Access Control module includes the control mechanisms that allow access to the system, and, to portions of the system i.e. to its modules according to pre-configured access control.

This module might be developed in granular detail at a later stage, as the basic functionality that must be complete is the logon process.

TestID Test Description Pass/Fail Criteria5.1

Unnecessary deletions are not allowed.

This test is covered within modules 1, 2, 3, 4, therefore may be skipped if testing passed criteria.

Deletions may optionally require approval by another user (e.g. librarian), when the other validation criteria for deletion has been validated automatically, for data integrity.

5.2Users and roles can be created and edited, without any data integrity issues.

Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model.

Users and roles created are persisted in the data store.There are no duplicate users with the same user identification.

Passwords are stored as encrypted and can be decrypted.

No duplicate hashcode shall be created for different hash keys (users).

Hacking attempts on guessing password must fail, including dictionary attacks and manual guessing of passwords which do not meet complexity requirements, unless weak

Page 100: Aristotle School Library

passwords are allowed for that user.

Audit trail is persisted within the data store.

5.3Logon

Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model.

Logon is successful when correct logon credentials are used.

Readable and specific error message is displayed when incorrect logon credentials are used to attempt to logon.

When number of successful attempts exceeds a configurable maximum value (e.g. 1,000), the user account is automatically blocked.

Audit trail within the data store is updated.

5.5User access controls access to user controls and user interface elements.

Mandatory fields are filled in and saving is not allowed unless mandatory fields are updated.

Data within the fields is valid and according to the data model.

When rights are enabled or disabled for each user control, this is clearly visible within the user interface for that user, and, for that user control.

Page 101: Aristotle School Library

When rights are enabled or disabled for a user interface component then this is visible or else the user cannot access the user interface or else the menu option is hidden from view.

Audit trail is updated with valid and verifiable data.

Reports have to be tested against their usability, whether the format is appropriate for the reader of the report, whether the report can be exported to different formats including CSV for advanced analysis, and, possibly PDF for read-only access. The accuracy and completeness of the formulae used would be measured within the tests, using statistical methods such as F-Test and Anova.

This module might be developed in granular detail at a later stage, as the basic functionality that must be complete is the logon process.

Page 102: Aristotle School Library

Non-functional requirements

Aristotle promises to deliver a response time that meets adequate conversation response, and, therefore an intelligent use of load balancing, and, caching and server farms are to be discussed with a professional systems administrator, particularly if the server components are deployed as a distributed database, in the case of libraries having multiple locations. It is recommended to cache data which is frequently searched for within the same location i.e. when a user searches commonly through the node at San Francisco, the routing configuration would be tuned to seek data that is cached on the server which is closest to San Francisco, or the shortest path that is closest to the user's workstation.

This can be configured through the intelligent use of frameworks mentioned within the references and bibliography section such as Apache Tomcat and Oracle GlassFish Server for deploying Java-based applications or applications written using Java EE, and, Internet Information Services for .NET based web applications.

Figure 30 - Aristotle technical architecture for deployment

Integration plan

Installation of web application shall be done on a hosted service, which can be a data centre or a cloud service that passes criteria for data integrity, security and managed hosting services:

Each library requires access to hosted services and needs data to be segregated so that each client's data is only accessible by the administrators authorized by the client.

Library can be hosted on the clients' own servers if required.

Page 103: Aristotle School Library

Training services can be provided on a train the trainer, or class room training basis. Information shall also be provided through social media, web marketing, and, other forms of marketing. Training needs analysis can be carried out for other services prior to the implementation to identify the training needs in terms of business consultancy, technical training, and, other consultancy and training.

Database maintenance and technical support shall be provided under a service level agreement , to meet the business continuity needs of clients.

Testing techniques and test cases

White box testing by developers using stubs, method calls, web service testing software, automated testing using software tools including X-Unit for unit testing and Mercury Loadrunner for performance testing for automated testing. Manual testing may be carried out for compliance, usability and as part of feedback gathered from users. White box testing, using knowledge of the structure of software and code can be carried out by the software engineering team, whilst black box testing can be carried out as a separate process or as part of system testing, leading to user acceptance testing.

A bug tracker shall be used to keep track of bugs reported, which shall identify different versions of the software and the configuration as specified by version control. Atlassian JIRA is an adequate tool used commonly within a typical Agile-driven software development environment.

It is recommended that version control is held and that the source code is obfuscated for security purposes. Intellectual property rights are envisaged to remain the property of the author, until such time that they are waived in writing, although the content may be reviewed by academics representing the London School of Economics and Political Sciences and its affiliates.

Schedule

The Software Engineering Process schedule within this document outlines the project criteria for this prototype and for the commercial software that would be released. The files accompanying this project, which were created using Microsoft Project 2007 reflect the schedule for implementation.

Page 104: Aristotle School Library

Section 3 - Final project report

Technical Issues/Risk log The issues log documents the technical issues that were encountered during the programming of the prototype, as a way of anticipating technical complexity for the software engineering team.

# Date Issue Status

1 4 Nov 2013 Search form not yet working, as this requires technical research that does not fall within the scope of the prototyped software model.

See LibrarySystem.accdb, Form: Search. Pending technical research.

Time to fix: 5 days (planned) when technical solutions are ready to be implemented.

Unresolved

2 6 Nov 2013 Books and Media form: Cash Discount showing invalid information.

Time to fix: 2 hours (planned) when technical solutions are ready to be implemented.

Pending

3 6 Nov 2013 Import of transactions from .CSV to importTransactionTable not yet defined.

Time to implement: 5 days (planned)

Pending

4 6 Nov 2013 Form: expTransactionTable event handling not handling events for txtPath.

Time to fix: 0.5 hours (planned) when technical solutions are ready to be implemented.

Pending

5 6 Nov 2013 SQL Server 2012 installation incompatibility with Windows 8

SQL Server 2012 installation/incompatibility issues (Win 8)

See http://msdn.microsoft.com/en-us/library/ms143506.aspx, the installation is to go through troubleshooting, eventually.

Time to fix: 0.5 hours (planned), when technical solutions are ready to be implemented.

Pending

6 11 Nov 2013 ASP.NET session time out may require application to Pending

Page 105: Aristotle School Library

automatically save a persisted 'draft' to hard disk, before saving the permanent record.

A similar problem may occur when the user is not at his/her computer beyond the session time out e.g. out to lunch.

7 11 Nov 2013 Creating a user control (ASP.NET) for customer management and searching/logon requires technical research due to in-depth design of all the functionality required.

Pending

8 12 Nov 2013 Regex pattern that is appropriate for strong password needs to be coded.

The filter for the regex pattern to be used should be updateable by the application administrator within the application without having to review the source code of the application i.e. as a parameter.

Pending

9 12 Nov 2013 Reading and validating ISSN, requires technical research (C#/.NET) for reading an array of strings to compute the check digit, according to the calculation outlined at http://en.wikipedia.org/wiki/International_Standard_Serial_Number, last updated on 23rd September 2013.

Pending

10 13 Nov 2013 Searching through List<T> of TelephoneNumbers, FaxNumbers etc. using the index value and using List<T>.Find(...) requires technical research prior to coding.

Refer to http://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx for [online] documentation.

See App_Code/ContactDetails.cs within attached demonstration prepared using Visual Studio 2012.

Pending

11 13 Nov 2013 Storing passwords as unencrypted in memory still poses a risk of being read by an unauthorized user, using tools such as heap analysis tools and programmatically using the .NET framework.

This issue may be analyzed by the security analyst within the software engineering team, and, a technical solution is expected to be proposed.

Similar tools exist for other programming platforms such as Java Programming Language.

Transposing the code available at http://www.codeproject.com/Articles/38796/Simple-Encrypt-

Pending

Page 106: Aristotle School Library

and-Decrypt-Technique-and-Computing for encryption and decryption of passwords (Usr) has encountered validation errors, that have to be analyzed. This encryption may allow more options for encryption and decryption using stronger encryption algorithms such as SHA1, MD5, SHA256, SHA384, and, SHA512.

Refer to use cases and to the file named LibrarySystem.accdb for further information.

12 13 Nov 2013 Mechanism for access rights with the logic that allows users to override settings made over and above those assigned to roles is still to be designed and may require a review of the data model, in view of hierarchy. The data model is going to be based on the design of the user interface components, and, the controls within each user interface. This design is not expected to be carried out as part of this phase of the analysis.

Pending

13 15 Nov 2013 Mechanism for designing user interface using ASP.NET/Ajax still being researched technically.

Pending

14 15 Nov 2013 PriceTariff data entity issue with inserting new rows within LibrarySystem.accdb.

Composite primary key (ContactID, Currency, MediaID) is not being validated as expected through a relational data model. This is possibly a technical issue with Microsoft Access 2007.

This table is not yet included within the data model since there is a technical question to be investigated on whether it is technically possible to set NULLs within ContactID, where the price applies as the standard tariff of the library.

Figure 31 - Composite primary key issue (Microsoft Access 2007)

Pending

15 16 Nov 2013 Technical re-design of data model required if the ContactDetail is to be allowed to have more than one status.

Resolved

Page 107: Aristotle School Library

For example, what if a ContactDetail is both a vendor and a customer?

Using the current data model, we are limited to creating two ContactDetail objects i.e. one for the customer and one for the vendor.

16 16 Nov 2013 StarUML v5.02.1570. Usability issue representing composition i.e. ContactDetail has-a telephone number. No solution found yet with Microsoft Visio 2007 either, therefore technical research has to be carried out.

StarUML can be downloaded at http://staruml.sourceforge.net/en/download.php.

Pending

17 16 Nov 2013 Technical solution for removing an order from the Vendor object required.

Vendor.removeOrder(ulong OrderID, ulong VendorID)

Vendor.removeOrder(ulong OrderID)

Pending

18 17 Nov 2013 Search has been hard-coded to a maximum of an array of 1,000,000 within the prototype, which means that the coding has to be reviewed when the number of Media, BooksAndMediaOnLoan, and, Customers exceeds this value.

The constant is to be changed to a variable as a configurable value that can be set through the user interface or through a configuration file.

public ulong search(ulong MediaID) { ulong retVal = 0; const int MAXARRAYSIZE = 1000000;

ulong[]arr = new ulong[MAXARRAYSIZE]; for (ulong i = 0; i < MAXARRAYSIZE; i++) { if (arr[i] == MediaID) return i; else continue; }

if (retVal == 0) return 0; else return 0; /* Sourced and adapted from [online] article at http://stackoverflow.com/questions/1488152/what-is-best-efficient-algorithm-for-given-an-unsorted-array-of-positive-intege */ }

Refer to use case 1.2 and use case 1.4 for further information. Refer to the

Pending

Page 108: Aristotle School Library

solution prepared using Visual Studio 2010 / .NET 4.5.

The code for the searching by text string still has to be implemented for the above classes; the searching algorithm may be researched technically for performance and effectiveness in returning the expected results. Concurrency and serialization may have to be researched technically.

Information available within the references and bibliography section of this document can be used for technical research.

19 18 Nov 2013 Cloning method suggested at http://stackoverflow.com/questions/78536/deep-cloning-objects-in-c-sharp requires technical research prior to implementation within the current .NET solution.

Pending

20 18 Nov 2013 Hashing algorithm to be testing whether it generates unique hashcodes for all instances, as technical research indicates that comparing encrytped hashed numbers might result in false positives or in false negatives

private static ulong Hash(DateTime when) { ulong kind = (ulong)(int)when.Kind; return (kind << 62) | (ulong)when.Ticks; /* Reference: * There is a risk that there is a duplicate every 10 trillion trillion trillion years. * http://stackoverflow.com/questions/5569545/how-to-generate-a-unique-hash-code-for-an-object-based-on-its-contents */ }This algorithm is used within a number of classes including BooksAndMediaOnLoan.cs (within struct BookingDetails),Media.cs, ContactDetail.cs, PersonOrCompany.cs, and, PostalAddress.cs.

See the references and bibliography section for further information.

Pending

21 19 Nov 2013 Order.NotifyByEmail(String message, ulong ContactID) requires technical research on how to read the ContactEmail address as a string from ContactDetailEmail, where the email addresses attached to a contact is provided within a List collection: protected static List<ContactDetailEmail> ContactDetailEmail = new List<ContactDetailEmail>();

The code snippet for sending an email needs to be adapted to use different SMTP servers.

Technical research is required to implement an SMS

Pending

Page 109: Aristotle School Library

Gateway.

22 20 Nov 2013 Creating of reports using an existing reporting engine, requires research on how custom reports can be built by the user, considering that an object-based data model may be used.

Pending

23 20 Nov 2013 Interfacing with hardware i.e. assistive technologies, and, tape readers may require programming using interfaces and programming languages that require technical research. These are planned to be coded in the future, according to the product roadmap.

Pending

24 24 Nov 2013 Sending email according to the ContactID still requires coding.

See Order.cs.NotifyByEmail(String MessageToSend, ulong ContactID).

Pending

25 25 Nov 2013 A security issue may arise whereby a password can be read as it is passed 'along the wire' from the client browser to the server, and, therefore, an encryption mechanism for the client side may have to be devised.

The reference and bibliography section includes references to relevant programmatic libraries which can be used.

Pending

26 7 Dec 2013 Visio 2007 statechart does not retain composite diagram. This issue requires support, which can be availed of at http://support.microsoft.com/?ln=en-gb.

Pending

27 24 Dec 2013 Performance issues have to be taken into consideration and researched during code reviews, for example:a) is it possible to use a single connection logical path, or does the software engineering team have to copy and paste connection strings for each control? Can we avoid 'copy and paste' through cohesive design of code?Reducing logical paths would simplify communication and change control.b) single points of failure might have to be mitigated by coding alternative logic paths or standby services, using efficient algorithms which can be fine-tuned reliably using the programming languages of choice.

Pending

28 24 Dec 2013 Field Order.PricePerUnit not retaining value after decimal point, although decimal places reads 2 (Access 2007).

This issue is being reviewed with Microsoft Support. We also have an installation error within the development environment when we are trying to install Microsoft SQL Server 2008 and Microsoft SQL Server 2012 on the laptop that runs Windows 8, and, have not found a technical solution to date.

Pending

Page 110: Aristotle School Library

29 24 Dec 2013 Creation of UI elements is not giving expected interaction and functionality, as the user interfaces still require customization or fine-tuning.

Forms that have been drafted so far by the user interface software engineer include:AuditTrail.aspx - data being displayed within prototype does not seem to be the same data that shows up within the Audit table.Logon.aspx - JQuery script for logging on still does not work as expected. Using prepared control Login seems to require SQL Server Database, which unfortunately has met some installation issues.Ordertracking.aspx - Coding is still at a very early stage, however the basic layout is ready.Report engine still at an early stage.Tabs.aspx indicates the control to be used for customer relationship management module, although the first tab needs to be deleted, and, coding behind the form still has to be done. This control was a second iteration of the first sketch available as LibaryAdministration.aspx.Style.css - stylesheet and MasterPage.master still not finalized.

Navigation between pages to be designed as soon as the components are built and tested adequately.

We are liaising with support on these issues, since we are not sure whether they are issues related to Visual Studio 2010 or simply lack of programming expertise.

30 28 Dec 2013 Visual Studio 2010 crashes when dragging items from the toolbox to Report.rdlc.

It is not clear how to include queries from the application database within the reports, which is only an example that needs to be used when generalizing the logic for creating the report generating wizard to enable users to generate their own custom data reports.

Pending

31 28 Dec 2013 JasperReports Server installed successfully, however, software license does not allow the author to create reporting environment for Aristotle, since it is a trial version.

There are also some hardware performance issues which are creating evident need for upgrading the hardware within the development environment.

Pending

Page 111: Aristotle School Library

32 30 Dec 2013 No technical code snippet is available to convert String to byte[], and, validate the user through Login.aspx.

References1. How to read from Lists, available [online] at http://www.dotnetperls.com/list.2. Get username using ASP.NET available [online] at http://forums.asp.net/t/1179997.aspx.3. Reading login through control using a session cookie, available [online] at http://forums.asp.net/t/1169026.aspx.

Session cookie is not used for the time being within the current prototype, for security reasons i.e. so as not to retain information on the logged on user, until it is intended to be retained for personification and individualisation of the application, which is part of the future requirement of the application.

Pending

33 30 Dec 2013 Retrieving information through the object-based model using LINQ coding is still to be done, as it is not yet clear how to query a var from an .aspx page, and, use the object within different user interface components, particularly because textbox controls do not have a datasource as part of their properties.

var query = from ContactDetail contactdetail in ContactDetail.ContactDetailsselect contactdetail;

References1. How to query an ArrayList using LINQ, available [online] at http://msdn.microsoft.com/en-us/library/bb397937.aspx.

Pending

34 31 Dec 2013 Searching through collection of objects requires technical research. This applies within CustomerManagement.aspx.

References1. C# List Find, available [online] at http://www.dotnetperls.com/list-find.2. Searching within a collection of objects (List) forum post at http://www.codeproject.com/Questions/704321/Searching-within-a-collection-of-objects-List.

Pending

35 8 Oct 2013 Licensing issue prevents author from downloading and using software development software with academic licenses that are advertised to be available for LSE students at https://www.dreamspark.com/.

Referred to LSE and to Microsoft Inc, however no business agreement has been reached till the time of writing and review of this document.

Pending

Files mentioned in the issues log are being attached to the accompanying documentation along with this document, include projects written using Visual Studio 2010 ( .NET Framework 4.5) and Microsoft Access 2007.

Page 112: Aristotle School Library

Risks may be mitigated or not-mitigated by the project manager(s), based on pre-calculation of risks using established methodologies. Within the attachments, templates for logging risks as they arise are available. Risks may be insurable, non-insurable, and there exists a logical categorization of risks as to whether a solution is do-able or not, which remains the realm of project management. Risks may be known a priori or may not be known a priori. Human error is possible, and, to date the software production industry cannot provide a 100% defect-free guarantee. Empirical evidence in information systems management indicates that software written by human beings is subject to quality management processes.

Questions on pending and unresolved technical issues have been posted on user forums such as www.codeproject.com, and, discussed with technical experts at St. Martin's Institute of IT, on a need basis. You may also wish to review the References and Bibliography section of this document for technical articles on these topics.

The following diagram provides information on the architecture of the library system, including an off-site database which may be configured for replication as a disaster recovery.

Page 113: Aristotle School Library

Version control and configuration management

The first release of the complete software shall be followed by alpha and beta releases prior to public commercial release. The quality of the software may be monitored according to the objectives and metrics being outlined within this document, as the basis for designing the actual software, although evolutions and changes are expected to be discussed professionally amongst the software engineering team.. Project managers should be responsible for project management which includes the administration, prioritization and workflow management of technical and commercial risks, along with being the main persons responsible for co-ordination and overall coherence (cohesion) of the information system, as it shall be handed over to first line of support technical officers. Version control for each component shall be documented using software such as CVS, or Visual SourceSafe, although the latter is not recommended for use according to articles within the references and bibliography section of this document. The references and bibliography section includes useful resources that may be used for the technical implementation of this software project

Version Description

0.1.0 Sub-component prior to release e.g. code for class Media using Visual C# (.NET 4.5).

0.1.1 Sub-component prior to first release e.g. database on SQL Server

1.0.0 First official release

It is possible that releases are built out of different variants of components, however, the first official release is expected to include components which do not change the major version number. It is possible that components are built for different operating systems, and, using different programming languages, in which case the same version number shall be used, however a branch shall indicate the difference between a component developed for Windows operating systems and a component developed for other operating systems.

Blog posts indicating the end of life support of Visual Source Safe along with usability issues reported by users on the world wide web need to be confirmed by Microsoft Inc or technology partners that require its support; this may affect a decision to using different technologies, although experience indicates that the basic functionality using Visual Source Safe suffices.

Nevertheless the version control software shall be tested by the software architect prior to preparing a presentation to the team for its use, to ensure there is no loss of information on different configurations of the software components, as complicated configurations of builds using continuous integration that requires software engineers to merge and integrate versions of the main software build several times during the day to reduce technical risk require a reliable version control repository.

The physical deployment shall be designed and reviewed by a senior systems administrator during the deployment of the software as part of the software engineering team.

Different development and go-live environments are to be prepared in advance to enable software developers, quality assurance analysts and systems administrators to work independently.

Page 114: Aristotle School Library

The use of virtual machines and/or rack-mounted physical servers may be used, although choice of hardware and network design does not fall within the scope of this document. Hosting of the servers i.e. whether is it done in-house or a combination of in-house and hosted services on the 'cloud' are used is to be decided at a later stage by the management team.

Version

0.1.1.1 Sub-component for database prior to first release using HSQL.

0.1.1.2 Sub-component for database prior to first release using mySQL 5.0.

Change control shall at least require the formal approval of a project manager and a technical representative who shall review changes, fixes and prioritize workflow when the software engineering team is formed, and, how the changes are expected to impact the technical environment, the business, case, and, the overall progress according to the updated project plan, noting and mitigating risks with action. Branching of versions to allow for custom releases within a controlled environment and in-line documentation shall be used, following standards recommended by the vendor of choice.

The following table summarizes categorization of software changes, enhancements and defect-reporting throughout the project, which may be used within the bug-tracking software. Research indicates that a number of software companies use JIRA for this purpose.

Page 115: Aristotle School Library

Bug Software defect where the software is not working according to the requirement agreed upon for the particular version.

Bugs are sub-categorized and prioritized as follows for testing and bug-tracking purposes:

Critical i.e. business customer or team cannot work due to a defect or a technical issue.

High i.e. the defect implies loss of data or loss of data integrity.

Medium i.e. the defect has a workaround but is not acceptable for practical or business purposes.

Low i.e. the defect has an impact on cosmetic issues, typically usability issues, with the exception of usability issues which are part of high priority non-functional requirements, as agreed upon with the project manager(s) and the software engineering team.

Enhancement Software change which can be absorbed within the software project at no additional cost from the part of the software provider, following a cost versus benefits analysis of the change.

Change Software change of varying grades of complexity on a continuum from minor change to major change, which incurs additional cost on the project and/or is perceived as requiring the original agreement, contract and/or requirements to be altered. Usability issues, functional changes which alter the logical model, and, non-functional changes which influence the logical model might be generally perceived as changes.

Support and training Software does not need to be modified,

Page 116: Aristotle School Library

however the end-user(s) may have to be provided with relevant documentation or guidance in resolving the issue at hand, or using, or, configuring the software adequately.

At this stage, we are recommending the use of Microsoft .NET Technologies such as C# and ASP.NET to kick-off the coding process, since a survey amongst the software engineering team indicates that we have sufficient expertise to carry this project through to completion using Microsoft technologies, and, implementing technical standards for coding and naming that were originally proposed by Microsoft evangelists, as this is perceived to reduce the lead time required for familiarization with the programming languages.

Page 117: Aristotle School Library

Review

The analysis for the development of a library system and the prototype that has been created along the way to demonstrate the requirements clearly would improve the perception of quality and innovation if the following recommendations are taken into consideration during the implementation of the analysis:The library system walks out of the library and in the future makes use of RFID tags, and, shall include interfacing with MARC21, and, have a mobile enabled application. Large libraries such as Amazon would require integration with a warehouse management system, and, an enterprise supply chain system.

Two factor authentication for e-commerce gateway, can be upgraded to the sophisticated use of three-factor authentication for management control purposes, when the interface to accounting systems is in development. This may interface directly with internet banking systems. Logon may be replaced by integration with fingerprinting or biometric technologies, and, at this stage, the pages will be authenticated when browsing through different pages, to mitigate the risk of a malicious man-in-the-middle by verifying that the originating IP (IPv4 or IPv6) has not changed along with characteristics of the location collected through geographical positioning system technologies, keeping in mind that mobile users might travel within reasonable and expected distances.

Advanced security logic and logon options which may include single-sign on using the underlying operating system is considered to be advanced and is not planned to be designed prior to the alpha or beta release, since project management strategy is to roll-out basic functionality of the library system with the initial releases so as to be able to gauge the market for potential demand for the software product. Such mechanisms have already been adopted within other software products and therefore it is a matter of learning from existing research and applying research to Aristotle.

Research has highlighted that the pages might authenticate against the original logon credentials used with each and every time that the user browses through different pages, and, although this is a valid security mechanism, it is perceived that this would create unnecessary processing overhead on the server as the volume of users increases and require more processing. Performance overhead needs to be taken into consideration for each technical change, through code reviews, code re-factoring and database tuning techniques that have to be dealt with by specialists. Research indicates that hackers would commonly target front-end servers on a carefully crafted technical architecture which does not allow access to backend servers where critical database servers and p-code might be stored, depending on the underlying technology used. Careful implementation of honey pots may attract malicious hackers to a dead end within advanced security configuration systems. Vendor name may be validated against a list provided by a bureau such as the World Check.

Page 118: Aristotle School Library

Electoral registers and company registries may provide information required to validate identity and carry out other compliance checks such as those used for know your customer questionnaires, and, credit control. Nevertheless, different jurisdictions might avail from different sources of information for persons registered within the national or regional databases of citizens, with concerns over privacy and right of use that require the authorization of the appropriate authorities.

Not all programmatic functions were implemented since, the software engineering team is expected to carry out further analysis on the prototype being prepared with this project. Nevertheless the scope of this document is to provide extensive communication to enable the team to work.

The prototype was partly developed using Microsoft Access 2007, and, partly using ASP.NET, as it is planned to have a web application that can be modelled upon either technologies. The prototype is intended to be a throwaway prototype, rather than evolutionary one. Mock-ups have been used as well to demonstrate the required programming effort.

Future integration plans of the system would include the programmatic capability to read and sell directly from Amazon AWS and other APIs which allow direct purchase of books from existing retail outlets. This would provide the business opportunity to the customer to earn commission on sales through affiliate marketing with existing book vendors.

The software could include plans for the integration with contact management tools to gain access to customers' contacts with their permission in view of Data Protection legislation e.g. Gmail and other web-based email, social media accounts, Microsoft Outlook etc. This may be part of a web marketing campaign driven by social media and websites created in a number of popular languages including official languages within the European Union, United States and members of G8. Integration with programs such as Microsoft Outlook and other calendar management software such as Lotus Notes shall be investigated, in view of the common requirement for libraries to include the facility to book meeting rooms or quiet rooms, particularly for its regular customers. It is common for these rooms to avail from assistive technologies, as shown within the hyperlinks within the references and bibliography section.

Single sign on can be integrated to allow the user the possibility of authenticating using operating system authentication information passed on to the library information system in place of manual keying in of a username and a password. Only the interface to the input would be changed, the access rights and functional aspects of the security module would need to provide the same functionality after effecting the change to the authentication module. Biometric authentication e.g. fingerprint authentication to operating system may allow access to Aristotle as well, based on the operating system user name and the role within the active directory or a similar LDAP within another operating system (e.g. unix).

Grammar checking and spell checking may be integrated within text fields for comments and searching. Social media website www.facebook.com, includes components that one can mimic for spell checks, grammar, and, translation. The popular social media platform seems to have been written using PHP and using other technologies such as HTML which seems to be generated for each page created. Nevertheless client side technologies such as HTML5, JQuery and ActionScript would help create dazzling front-end interfaces without losing sight

Page 119: Aristotle School Library

of the concept of "apparent simplicity" within the design of controls, so as to enhance the user experience and avoid information overload on administrative employees typically working within a library. Integration would have to be supported in view of industry standard procurement process within an existing information system, through the advanced analysis of the interfacing needs of external applications.

An order-tracking system which integrates with information available through courier services, and, ideally integrated with existing geographical information systems such as Google Maps or Microsoft Mappoint would allow geographical tracking of orders from suppliers located across the globe, as would an Electronic Data Interchange format agreed as an interface to be used with various suppliers of books and other media.

Research has to be carried out by the software engineering team, on the implementation of IPv6, in order to understand whether it is programmatically possible to configure blocking of human readable addresses, which are then interpreted to the IPv6 addresses to be blocked by the application administrator. This could be implemented at the network monitoring level and at the application design level, with an appropriate means of interfacing the network monitoring system to accept commands propagated through the application interface for allowing the administrator to configure security controls within the application, as part of the security module.

Generation of a newsletter using HTML editing software and content management system that allows the preparation of a template that is sent regularly to contacts of the library, for public relations purposes, and also to increase keywords which can be searched for through popular search engines.

Birthday cards can be generated through social media or via email can be sent for public relations. Season's greetings can be sent during Christmas holidays and other cultural holidays according to the native culture of the customer, or, on the birthday of VIP members of the library for example.

Searching for relevance using search algorithms adopted by Google, YouTube and other commercially available search engines may be improved with advanced search engine optimization techniques particular to the search engine used and the technologies being adopted for developing the information system.

Every customer may have a wish list for items which are not available in stock but might be available in the future, or for items which are currently beyond their willingness or means to purchase, therefore each customer should be allowed to prepare a wish list, which is not accounted for but is made available for marketing purposes and for the purchasing official working within the library so as to be able to pre-empt which items would be in demand when forecasting orders, particularly due to the possible bargaining of discounts when the library being managed purchases in larger quantities, due to the decreased production cost that would be incurred by the publishing house. Buying directly from source (producer) through business agreements might be directly conducive to reducing costs of purchase per item, however, one needs to take business options under a separate analysis since, the scope of this document is to outline the requirements for the development of an information system.

Page 120: Aristotle School Library

Prior to the beta release, the system is planned to be changed to allow for a trial period and a licensed version which shall include a data store for keeping track of licenses by user at the client, and, a service for monitoring and managing software license payments by the software provider. This shall include a lock out option for licences who have not renewed their software license or who have used their trial period over for longer than a determined period of time (e.g. 24 months), or, else for more than a number of times (e.g. the same license has been used for more than 3 consecutive times). This option would include interfacing with accounting systems - also planned to be integrated at a later stage - in order to be able to receive payments using a debit/credit card, Paypal and other payment gateways and virtual wallets, over a secure connection. Multiple currencies shall be allowed such as those quoted by the European Central Bank, and, virtual currencies such as Bitcoin. Nevertheless the customer needs to be aware that virtual currencies are not represented by official banking authorities, and, therefore implementation may be subject to further analysis of money laundering patterns and risks to both the customer (the management of the library), and, the end-customer, since virtual currency are not backed by a store of value in a similar manner that the EURO, US Dollar and other official currencies are represented by the European Central Bank and the World Bank, amongst others.

A feasibility study has to be the risks of open source currencies being used for money laundering and other criminal activities, therefore implying stronger compliance controls that is expected from regulatory bodies. It is thought that such speculation arises from international competition in financial services intermediation, therefore the philosophy of the business analyst should be approach innovation with an open mind, as Bitcoin is an open-source technology to date.

The reporting capabilities could be improved, through the intelligent statistical use of predictive analytics, in order to estimate future econometrics based on empirical information. Where the quantitative information needs to be aggregated and compared across different varying patterns of correlations - for example when we are comparing the sales performance of the library of the client organization with the sales performance of competitors on a region by region basis - we might use the sum of least squares fitting as the basis for finding a general pattern which can determine future trends.

Financial estimates within trading platforms analyzed during the research are based on mathematical models, and, allow the analyst to visually understand whether the trend is bearish (i.e. associated with falling share prices) or bullish (i.e. associated with rising share prices), as an academically approved methodology used to predict future quantities, usually on a ceteris paribus basis, using variant formulae based on moving average to define a trend in dependent and independent variables being analyzed.

The delivery service for booked items may in the future be integrated with software development services provided by courier services e.g. DHL provide XML Services as an information service to programmers. These changes shall be researched and integrated in the future.

Page 121: Aristotle School Library

Research has shown that a software engineering environment is perceived as fast-paced, with considerable stakeholder management to be carried out with all parties interested in the success of the project, including shareholders. Nevertheless professional management and leadership skills are seen to be directly conductive to success of a (software) project, in a manner that can be measured against time, cost/benefit and, quality criteria being outlined within this document.

This document may be reviewed and updated from time to time in view of changing requirements, particularly expected as external influences which were not known at the time of drafting this document, and, how this impacts on day to day realism of software project management.

Page 122: Aristotle School Library

Appendix A - Hardware specifications

The information system will be developed on a computer with the following specifications, although it is not expected that the application will require these resources.

Table 1 - Hardware and operating system specifications of development environment

Operating system Windows 8 (2012) operating system for 64-bit processors.Processor Intel Core(TM)

i3-3110M CPU at 2.40 GHzRandom Access Memory 6 Gigabytes RAM availableHardware manufacturer Samsung Electronics

Performance tests during the quality assurance are expected to indicate and include the minimum hardware requirements and operating system compatibility requirements for the application to be released, and, these will be reviewed by experienced systems administrators.

Page 123: Aristotle School Library

Appendix B - Software used

The project and prototype is to be done by the author and requires the use of Office software - such as Microsoft Office 2007 onwards, and integrated development environment such as Visual Studio and software tools for development of the prototype and subsequent analysis and engineering.

Mockup software was used and is available online at https://dating.mybalsamiq.com/projects/aristotle/grid.

You may contact Jonathan Camilleri IADCS on [email protected] for further information.

How to review the class diagram using Visual Studio 2010

In order to review the classes, one select to view the ClassDiagram within the Solution Explorer window (right click menu), and, click on the different classes that show up within the class diagram to review the properties and methods that were implemented within the prototype as it is the basis for the coding of the full software product, according to the product roadmap attached with this document.

Figure 32 - Solution Explorer (Visual Studio 2010)

Although the classes were not defined in this high level of detail within the first section of this document, the properties and methods were elaborated to implement the data model for this software project. A number of technical issues were encountered and not all of them were resolved prior to the submission of the project.

Page 124: Aristotle School Library

It would seem as though the .NET framework does not allow for an intuitive manner of coding the logical path originally designed, and, use of different technologies such as Java or SmallTalk might increase the technical risk as defects originating from the original design of the programming frameworks would in aggregate magnify the risk of failure as opposed to coding the software artifact using a limited sub-set of programming languages whose technical limitations, restrictions and potentials are known more in depth by the software engineering team.

Nevertheless we do not exclude the possibility of making use of externally developed modules and modules developed using other programming languages. Modules sourced from external providers and modules developed using other technologies are then customized according to the requirements being herewith documented, and, are still subject to a rigorous quality assurance process which verifies the objectives of the software artifact are being met.

Page 125: Aristotle School Library

Appendix C - Performance statistics

Preparation of the prototype and this document involved the following resources:

Lines of code Circa 1880

Effort 221 days

Documentation pages Circa 132 counting over 29,000 words

Errors and technical risks pre-empted by quality assurance

35

Defects for rework Not yet applicable as software engineering team still has to be formed to work on evolutionary prototype.

Number of people on team 2 (including 1 reviewer)

Cost (EUR) Not estimated by sponsor

Page 126: Aristotle School Library

References and bibliography1. Roger S. Pressman and Darrell Ince, Software Engineering, A practitioner's approach (Fifth Edition), published by

McGraw Hill, published in 2000. ISBN: 0-07-709677-0.2. Sommerville Ian., Software Engineering (Eight Edition), published by Addison Wesley (2009). ISBN-13: 978-0-13-703515-

1.3. Microsoft Developer Network (MSDN) available [online] at http://msdn.microsoft.com/en-US/.4. Unified Modelling Language, available [online] at http://www.uml.org.5. UML Notation Guide version 1.1, published by Rational Software, Microsoft, Hewlett Packard, Oracle, Sterling Software

(later acquired by Computer Associates, and, Northop Grumman), MCI Systemhouse, Unisys, ICON Computing, Intellicorp, i-Logix, IBM, ObejTime, Platinum Technology, Ptech, Taskon, Reich Technologies and Softeam (1997).

6. Solar winds Application Monitoring tools available [online] at http://www.solarwinds.com/.7. AppDynamics .NET Monitoring tools available [online] at http://www.appdynamics.com/solutions/net-monitoring/free-net-

monitoring.8. Blog post titled Divide and conquer algorithm, available [online] at http://yangliucsharp.blogspot.com/2013/02/divide-and-

conquer-algorithm.html, last updated on 28th February 2013. 9. Wikipedia.org articles, outlining the features of Quicksort http://en.wikipedia.org/wiki/Quicksort and Linear searching

available [online] at http://en.wikipedia.org/wiki/Linear_search_problem.10. Volere.co.uk requirements resources, available [online] at http://www.volere.co.uk/. 11. K. Beck and M. Fowler, Test-Driven Development ISBN-13: 978-0-321-14653-3, published in 2003 by Pearson Education

Inc. 12. Scott Bradner, Harvard University, Key words for use in RFCs to indicate requirement levels (RFC 2119), available [online]

at http://www.ietf.org/rfc/rfc2119.txt. 13. W3C Web Content Accessibility Guidelines 1.0 available [online] at http://www.w3.org/TR/WCAG10/. 14. Volere.co.uk, Volere Requirements Specification Template, available online at http://www.volere.co.uk/template.html. 15. S. Mc Connell, Code Complete 2, published by Microsoft Press, a division of Microsoft Corporation (2004). ISBN: 0-

7356-1967-0.16. CERT Secure Coding Standards, available [online] at

https://www.securecoding.cert.org/confluence/display/seccode/00.+Introduction.17. Top 7 Coding standards and guideline documents for C#/.NET Developers, available [online] at

http://www.amazedsaint.com/2010/11/top-6-coding-standards-guideline.html.18. Yahoo! Style Guide, available [online] at http://shopping.yahoo.com/9780312569846-yahoo-style-guide/.19. ISO Standards at http://www.iso.org/iso/home.html, particularly ISO-639-1, ISO-9241, ISO-9001 and updates on quality

management, ISO-21500:2012 and social project management, ISO-16982:2002, ISO-9000 and updates on quality management systems, ISO-9126, ISO-3166-1. ISO/IEC 4909:2006 outlines a standard which can be used for identification cards, that may be used in connection with RFID technology, along with GPS technology to track books, media, and, possibly customers for security purposes. ISO-2709:2008 may be useful to provide insight on information and documentation required for information exchange. ISO/TR 21548:2010 may be adapted as archiving guidelines to protect integrity and privacy of the records held. ISO-8601:2004 describes the representation of dates and times.

20. RFID Journal available [online] at http://www.rfidjournal.com/.21. How RFID works, available [online] at http://electronics.howstuffworks.com/gadgets/high-tech-gadgets/rfid.htm.22. Odin launches new RFID-enabled asset tracking and management system, available [online] at

http://www.financialpost.com/markets/news/Odin+Launches+RFID+Enabled+Asset+Tracking+Management+System/9043315/story.html, last updated on 16th October 2013.

23. IMEI Check available [online] at http://imei-number.com/. 24. British Computer Society, ISTQB Tester Foundation Level, available [online] at http://certifications.bcs.org/category/15568. 25. University of Illinois, Glossary of library terms available [online] at http://www.library.illinois.edu/learn/intro/glossary.html. 26. TRU Library, Glossary of library terms available [online] at http://libguides.tru.ca/content.php?pid=85376. 27. Association of Computing Machinery, Software Engineering Code of Ethics and Professional Practice, available [online] at

http://www.acm.org/about/se-code. 28. XUnit Testing Framework for .NET, available [online] at http://xunit.codeplex.com/.29. JUnit Testing Framework, available [online] at http://junit.org/.30. NUnit Testing Framework, available [online] at http://www.nunit.org/. 31. RADView Webload, available [online] at http://www.radview.com/.32. Apache Foundation, available [online] at http://www.apache.org/. 33. TestCafe API for Web Applications, available [online] at

http://testcafe.devexpress.com/Documentation/ApiReference/Continuous_Integration_API_Reference/TestCafe_Events.34. MartinFowler.com, Continuous Integration available [online] at

http://www.martinfowler.com/articles/continuousIntegration.html.35. Jenkins, continuous integration server, available [online] at http://jenkins-ci.org/.36. Hudson, extensible continuous integration server, available [online] at http://hudson-ci.org/.37. Get started with CodeRush, available [online] at http://www.youtube.com/watch?v=oNfc5NepTA0. 38. Creating a dynamic website using SandVox, for the Macintosh, available [online] at http://www.youtube.com/watch?

v=X98GpiLdiiU.

Page 127: Aristotle School Library

39. ASP.NET Model View Controller, available [online] at http://www.asp.net/mvc.40. Dynamic Systems Development Method (DSDM), which finds its roots in Rapid Application Development (RAD), available

[online] at http://www.dsdm.org/. 41. IT Manager Job Description is available [online] at http://www.maca.gov.nt.ca/school/tools/JD_docs/Information

%20Technology%20%20Ma.pdf.42. Foundations of IT Service Management based on ITIL, published by Van Haren Publishing. ISBN 978 90 77212 58 5.43. XProgramming.com, What is extreme programming? available [online] at http://xprogramming.com/what-is-extreme-

programming/.44. Introduction to Test Driven Development, available [online] at http://www.agiledata.org/essays/tdd.html.45. The Software Alliance available [online] at http://www.bsa.org/.46. D. Goodin, Critical Bug in newest Java gives attackers complete control of PCs, available [online] at

http://arstechnica.com/security/2012/08/critical-bug-discovered-in-newest-java/, updated on 31st August 2012.47. International Identifier for serials and other continuing (ISSN) resources, available [online] at http://www.issn.org/,

standardized as ISO-3297:2007, available [online] at http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=39601.

48. Profile of ISSN-MARC 21 is available [online] at http://www.issn.org/files/issn/Documentation/issn-marc21-eng.pdf. 49. ISSN manual (June 2012) is available [online] at http://www.issn.org/files/issn/Documentation/Manuels/ISSNManual2012-

GBR.pdf.50. Static code analysis tools available [online] at http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis, last

updated on 3rd September 2013.51. What is the difference between a customer and a client, available [online] at http://www.wisegeek.org/what-is-the-

difference-between-a-customer-and-a-client.htm#didyouknowout.52. Government of Malta website available [online] at http://www.gov.mt/en/Pages/gov.mt%20homepage.aspx.53. National Archives of Malta website available [online] at https://secure2.gov.mt/nationalarchives/.54. How to hash a password in ASP.NET, available [online] at http://www.youtube.com/watch?v=4RP-yAokGBo.55. Comparison of cryptographic hash functions, available [online] at

http://en.wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions.56. Performance comparison security design choices available [online] at

http://msdn.microsoft.com/en-us/library/ms978415.aspx.57. ASP.NET Web Application Security available [online] at http://msdn.microsoft.com/en-us/library/330a99hc.aspx.58. Microsoft Safety and Security Centre, available [online] at

http://www.microsoft.com/en-gb/security/online-privacy/passwords-create.aspx.59. The responsibilities of a project champion available [online] at http://www.ehow.com/info_8470180_responsibilities-project-

champion.html.60. Software rollout processes available [online] at http://it.toolbox.com/wiki/index.php/Software_Rollout_Processes, last

updated on 15th May 2008.61. List of time zones by country, available [online] at http://en.wikipedia.org/wiki/List_of_time_zones_by_country, last updated

on 25th July 2013.62. JQuery JavaScript library, available [online] at http://jquery.com/.63. QUnit: A JavaScript Unit Testing Framework, available [online] at http://qunitjs.com/.64. D. Sawyer Mc Farland, JavaScript & JQuery (2nd Edition), published by O'Reilly (October 2011). ISBN: 978-1-449-3-

9902-3.65. Google Developers, Custom Search, available [online] at https://developers.google.com/custom-search/docs/ui.66. Integrate search into your site with ASP.NET, available [online] at

http://msdn.microsoft.com/en-us/magazine/cc163355.aspx.67. Machine readable cataloguing sample available [online] at http://alices465journey.blogspot.com/2011/02/lesson-6-

machine-readable-cataloging.html.68. SAP Business Intelligence available [online] at

http://www54.sap.com/pc/analytics/business-intelligence.html.69. Crystal Reports available [online] at http://www.crystalreports.com/.70. Jasper Reports Library available [online] at http://community.jaspersoft.com/project/jasperreports-library, which

requires purchase after trial version has expired.71. Source-forge resource for open-source software available [online] at http://sourceforge.net/.72. SQL Server Reporting Services (SSRS) available [online] at

http://technet.microsoft.com/en-us/library/ms159106.aspx.73. In search of the most ethical revenue streams for public libraries, available [online] at

http://adventuresinlibrarianship.wordpress.com/2010/02/09/in-search-of-the-most-ethical-revenue-streams-for-public-libraries/.

74. Strive for low coupling and high cohesion: what does that even mean? available [online] at http://codeodor.com/index.cfm/2009/6/17/Strive-for-low-coupling-and-high-cohesion-What-does-that-even-mean/2902, last updated on 17th June 2009.

75. Perceptions 2011: An international survey of library automation, available [online] at http://www.librarytechnology.org/perceptions2011.pl.

76. Microsoft TechNet Library, available [online] at http://technet.microsoft.com/en-us/library/aa991542.aspx.

Page 128: Aristotle School Library

77. SQL Server Analysis Services, available [online] at http://technet.microsoft.com/en-us/library/ms175609(v=sql.90).aspx.

78. Elena Engel, RFID Implementations in California Libraries: Costs and Benefits, available [online] at http://www.kcoyle.net/RFIDCostsBenefits.pdf.

79. Palo Alto Software available [online] at http://www.businessplanpro.co.uk/ppc/compare-editions-both-sale/index.php?gclid=CNX-rv_qlroCFUi33godB2cA0g&pdv=c, which provides business templates.

80. Yahoo! Finance, available [online] at http://finance.yahoo.com/. 81. University of Malta, Diploma in Archives and Records Management, information available [online] at

https://www.um.edu.mt/registrar/regulations/faculties/maks/dip-arm-bl-2013.82. San Jose State University, Master of Archives and Records Administration (MARA), information available [online] at

http://slisweb.sjsu.edu/programs/master-archives-and-records-administration-mara.83. Google Advanced Search available [online] at http://www.google.com/advanced_search.84. Social media integration icons available within articles at http://www.webpronews.com/.85. Facebook Like Button available [online] at https://developers.facebook.com/docs/plugins/like-button/.86. Social plugins available [online] at http://www.addthis.com/social-plugins/facebook-like-button#.UlzizVCVNCE.87. Integrated library system available [online] at http://en.wikipedia.org/wiki/Integrated_library_system, last updated on

4th October 2001, which includes examples of open-source and other library software available for download from the world wide web.

88. Oxford Libraries Information system available [online] at http://en.wikipedia.org/wiki/Oxford_Libraries_Information_System, last updated on 14th July 2013.

89. Library Assistant for Oxford Freshers, available [online] at http://www.bodleian.ox.ac.uk/assistant.90. Harvard Online library, available [online] at http://hollisweb.harvard.edu/.91. Library and Information Science, available [online] at http://en.wikipedia.org/wiki/Library_and_information_science,

last updated on 27th September 2013.92. Library Information and Management System (LIMS) available [online] at http://www.youtube.com/watch?

v=dn5d3F_jLVc, uploaded by T. Hussain.93. What do low coupling and high cohesion mean? What does the principle of encapsulation mean? available [online]

at http://500internalservererror.wordpress.com/2009/02/23/what-do-low-coupling-and-high-cohesion-mean-what-does-the-principle-of-encapsulation-mean/, last updated on 23rd February 2009.

94. Android PC Netbook with 7" display on sale at http://www.ebay.co.uk/itm/7-CAPACITIVE-ANDROID-4-0-A13-TABLET-PC-NETBOOK-WITH-KEYBOARD-CASE-BUNDLE-/290775018631?pt=UK_iPad_Tablets_eReaders&hash=item43b38aac87, last reviewed on 15th October 2013.

95. MARC21 as Data: A Start, available [online] at http://journal.code4lib.org/articles/5468. 96. MARC21 Bibliographic Data, available [online] at http://www.loc.gov/marc/bibliographic/.97. Online Public Access Catalog (OPAC), available [online] at

http://en.wikipedia.org/wiki/Online_public_access_catalog, last updated on 24th July 2013.98. How Internet Search Engines Work, available [online] at http://computer.howstuffworks.com/internet/basics/search-

engine.htm.99. Oracle VM Virtual Box, available [online] at https://www.virtualbox.org/.100. HyperAdmin, available [online] at http://www.hyperadmin.com/index.php?ref=5.101. Dell, available [online] at http://www1.euro.dell.com/content/default.aspx?c=mt&l=en&~ck=perm.102. HP Servers, available [online] at http://h17007.www1.hp.com/us/en/enterprise/servers/index.aspx.103. Cisco, available [online] at http://www.cisco.com/.104. Juniper Networks, available [online] at http://www.juniper.net/us/en/.105. SPC International, available [online] at http://www.spcint.com/retail.aspx?gclid=CJW86azJm7oCFYm_3godgHUAtg.106. Core RFID Limited, available [online] at http://www.rfidshop.com/?gclid=CPj_i7jJm7oCFcKR3god1U8AKA.107. SQL Tutorial available [online] at http://www.w3schools.com/sql/.108. .109. Sage CRM Community - Reasons why a CRM Sandbox Environment is Recommended, available [online] at

https://community.sagecrm.com/user_community/b/sage_crm_news/archive/2011/03/07/reasons-why-a-crm-sandbox-environment-is-recommended.aspx, last updated on 7th March 2011.

110. Traditional Chinese Characters, available [online] at http://en.wikipedia.org/wiki/Traditional_Chinese_characters, last updated on 16th October 2013.

111. Old English, available [online] at http://en.wikipedia.org/wiki/Old_English, last updated on 4th October 2013.112. Egyptian hieroglyphs, available [online] at http://en.wikipedia.org/wiki/Egyptian_hieroglyphs, last updated on 14th

October 2013.113. Persian language, available [online] at http://en.wikipedia.org/wiki/Persian_language, last updated on 15th October

2013.114. Greek mythology, available [online] at http://en.wikipedia.org/wiki/Greek_mythology, last updated on 14th October

2013.115. SQL Server Replication, available [online] at http://technet.microsoft.com/en-us/library/ms151198.aspx.

116. Unicode in the .NET Framework, available [online] at http://msdn.microsoft.com/en-us/library/9b1s4yhz(v=vs.90).aspx.

117. Unicode Consortium, available [online] at http://www.unicode.org/.

Page 129: Aristotle School Library

118. Auralibrary available [online] at http://www.auralibrary.com/, which includes a demo available at http://demo.auralibrary.com/auraic.aspx.

119. Surpass Library Automation software available [online] at http://www.surpasssoftware.com/.120. Temperature, Relative Humidity, Light, and Air Quality: Basic Guidelines for Preservation, available [online] at

http://www.nedcc.org/free-resources/preservation-leaflets/2.-the-environment/2.1-temperature,-relative-humidity,-light,-and-air-quality-basic-guidelines-for-preservation.

121. Scott Hanselman, Globalization, Internationalization and Localization in ASP.NET MVC 3, JavaScript and JQuery, available [online] at http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx.

122. IMEI validation function, available [online] at http://stackoverflow.com/questions/4741580/imei-validation-function, last updated on 19th January 2011.

123. LUHN-10 error detection tool, available [online] at http://www.ee.unb.ca/cgi-bin/tervo/luhn.pl. Information about the luhn algorithm is available [online] at http://en.wikipedia.org/wiki/Luhn_algorithm, including references to ISO/IEC 7812-1, last updated on 17th October 2013.

124. W3Schools.com - HTML <meta> tag, available [online] at http://www.w3schools.com/tags/tag_meta.asp.125. Fire extinguisher training, available [online] at http://www.youtube.com/watch?v=tWGKO3CqgWg. 126. Making an RSS Feed, available [online] at http://searchenginewatch.com/article/2065614/Making-An-RSS-Feed, last

updated on 1 April 2003. 127. W3C Guidelines for disabilities, available [online] at http://www.w3.org/standards/webdesign/accessibility.128. .NET Logging Framework, available [online] at http://www.theobjectguy.com/DotNetLog/Sample.aspx.129. Apache HTTP Server logging, available [online] at http://httpd.apache.org/docs/2.2/logs.html.130. Bruce Timberlake, Linux, Apache, MySQL and PHP (LAMP) - Building a LAMP Server, available [online] at

http://lamphowto.com/.131. Database checkpoints (SQL Server), available [online] at http://technet.microsoft.com/en-us/library/ms189573.aspx.

132. College Cost Reduction Act (2007), published by the House of Representatives, available [online] at Google Books at http://books.google.com/.

133. Software helps linguists reconstruct and decipher ancient languages, written by Paul Hyman and published within Communications of the ACM, Vol. 56, No. 10, Pages 21 - 23 10.1145/2507771.2507778, available [online] at http://godwincaruana.me/software-helps-linguists-reconstruct-decipher-ancient-languages-cacm/, and, published on 20th October 2013.

134. University of Malta, Department of Library Information and Archive Sciences, available [online] at https://www.um.edu.mt/maks/las.

135. W3C Schools tutorials, available [online] at http://www.w3schools.com/.136. Microfiche reader, which can be purchased [online] from http://www.ebay.com/bhp/microfiche-reader.137. Apple iPAD tablets reviewed, available [online] at http://www.cnet.com/apple-ipad/.138. Apple iPhone, available [online] at http://www.apple.com/mt/iphone/.139. Malta Enterprise Assistance Programs, available [online] at http://www.maltaenterprise.com/en/business/assistance.140. Seventh Framework Programme (FP7), available [online] at http://cordis.europa.eu/fp7/home_en.html.141. Open Document (ODF) in the European Union, available [online] at http://www.eionet.europa.eu/.142. Open Document Format (ODF), available [online] at http://www.opendocumentformat.org/aboutODF/. 143. Introducing the Office (2007) Open XML Formats, available [online] at

http://msdn.microsoft.com/en-us/library/aa338205(v=office.12).aspx.144. Intermittent Letter Press High Speed Label Printing Machine Super 320, demonstration video available [online] at

http://www.youtube.com/watch?v=DetMURu7OdY.145. Epson label printers, available [online] at http://www.epson.com/cgi-bin/Store/jsp/LabelPrinters/Home.do.146. What's the most popular web browser from each country, available [online] at http://gizmodo.com/what-the-most-

popular-web-browser-is-from-each-country-641246726.147. Most popular web browsers, available [online] at

http://download.cnet.com/windows/web-browsers/most-popular/3101-2356_4-0.html?filter=&filterName=.148. List of web browsers for unix and unix-like operating systems, available [online] at

http://en.wikipedia.org/wiki/List_of_web_browsers_for_Unix_and_Unix-like_operating_systems, last updated on 7th October 2013.

149. Web-browser war, the early 2013 report, available [online] at http://www.zdnet.com/web-browser-war-the-early-2013-report-7000013354/.

150. Netscape Navigator, available [online] at http://en.wikipedia.org/wiki/Netscape_Navigator, updated on 16th October 2013.

151. Apple Safari web browser, available [online] at http://support.apple.com/downloads/#safari.152. W3C Web Development Standards, available [online] at http://www.w3.org/standards/.153. PRChecker.info, available [online] at http://www.prchecker.info/check_page_rank.php.154. Information quality, available [online] at http://en.wikipedia.org/wiki/Information_quality, last updated on 4th October

2013.155. America Library Association, available [online] at http://www.ala.org/.

Page 130: Aristotle School Library

156. Cunningham and Cunningham Inc. available [online] at http://www.c2.com/. An article on bug free software is available at http://c2.com/cgi/wiki?BugFreeSoftware.

157. The World University rankings, available [online] at http://www.timeshighereducation.co.uk/world-university-rankings/.158. QS World University rankings, available [online] at http://www.topuniversities.com/university-rankings.159. China's Ivy League (top universities), available [online] at http://english.peopledaily.com.cn/203691/7822275.html.160. List of HTTP Status Codes available [online] at http://en.wikipedia.org/wiki/List_of_HTTP_status_codes, last updated

on 7th October 2013.161. R. Yakushev, Using Outbound Rules to add web analytics tracking code, available [online] at

http://www.iis.net/learn/extensions/url-rewrite-module/using-outbound-rules-to-add-web-analytics-tracking-code, updated on 16th July 2009.

162. HTTP Request/Response Basics, available [online] at http://devhub.fm/http-requestresponse-basics/, updated on 4th February 2009.

163. Characteristics of good information, available [online] at http://www.contentedwriter.com/characteristics-of-good-information/, last updated on 10th September 2013.

164. Zero Deviation Life Cycle (ZDLC), available [online] at http://0deviation.com/.165. Data dictionary for preservation meta-data: PREMIS version 2.0, available [online] at

http://www.loc.gov/standards/premis/v2/premis-2-0.pdf.166. The Integer, Long, and, Byte Data Types, available [online] at

http://msdn.microsoft.com/en-us/library/office/aa164754(v=office.10).aspx.167. ISBN Checksum Validator and Conversion Tool, available [online] at http://andrewu.co.uk/tools/isbn/.168. Rafi Mohammed Ph.D, Pricing for Profit, available [online] at

http://www.pricingforprofit.com/pricing-explained/differential-pricing.php, promoting The 1% windfall: how successful companies use price to profit and grow, First Edition, ISBN: 978-0-06-168432-6, published in 2010 by the Library of Congress.

169. Regular-Expressions.info, How to find or validate an email address, available [online] at http://www.regular-expressions.info/email.html.

170. Answers.oreilly.com, How to validate URLs with regular expressions, available [online] at http://answers.oreilly.com/topic/280-how-to-validate-urls-with-regular-expressions/, promoting Regular Expressions Cookbook - Detailed Solutions in Eight Programming Languages, ISBN 978-0-596-52068-7, available [online] at http://shop.oreilly.com/product/9780596520694.do?sortby=publicationDate, published (May 2009).

171. Technet.microsoft.com, char and varchar (Transact-SQL) available [online] at http://technet.microsoft.com/en-us/library/ms176089.aspx.

172. Implementing Singleton in C#, available [online] at http://msdn.microsoft.com/en-us/library/ff650316.aspx. 173. Top 13 most popular social networking sites (Nov 2013), available [online] at http://www.ebizmba.com/articles/social-

networking-websites. 174. EC Consumer Rights, available [online] at http://ec.europa.eu/consumers/rights/.175. Session time-out in ASP.NET available [online] at http://stackoverflow.com/questions/648992/session-timeout-in-asp-

net. 176. ASP.NET Cookies Overview available [online] at

http://msdn.microsoft.com/en-us/library/ms178194.ASPX#CodeExamples.177. Understanding session management techniques, available [online] at

http://www.codeproject.com/Articles/416137/Understanding-Session-Management-Techniques-in-ASP.178. Erika McCallister, Tim Grance and Karen Scarfone, Guide to protecting the confidentiality of personally identifiable

information (PII), available [online] at http://csrc.nist.gov/publications/nistpubs/800-122/sp800-122.pdf (April 2010).179. Amazon.com, returns and refunds, available [online] at http://www.amazon.com/gp/help/customer/display.html?

nodeId=901888.180. BBC Library Sales Holdback Policy, available [online] at

http://downloads.bbc.co.uk/commissioning/site/library_sales_holdback.pdf.181. Gloucestershire County Council Library charges and sales policy (May 2011), available [online] at

http://www.gloucestershire.gov.uk/CHttpHandler.ashx?id=34343&p=0.182. Facebook Developers [online] available at https://developers.facebook.com/.183. University of Texas system, available [online] at http://www.utsystem.edu/bor/procedures/policy/.184. Information services procurement library, available [online] at

http://en.wikipedia.org/wiki/Information_Services_Procurement_Library, last updated on 13th March 2013.185. Purchasing Insight, available [online] at http://purchasinginsight.com/resources/the-procurement-process/.186. Biometric Authentication, available [online] at

http://www.computerworld.com/s/article/100772/Biometric_Authentication?taxonomyId=17&pageNumber=2.187. Profiling the .NET Garbage Collected Heal, available [online] at

http://msdn.microsoft.com/en-us/magazine/ee309515.aspx.188. Codeproject.com, Shallow copy versus deep copy in .NET, available [online] at

http://www.codeproject.com/Articles/28952/Shallow-Copy-vs-Deep-Copy-in-NET, last updated on 11th October 2008.189. Justfortechnes.com, Deep copy and shallow copy, available [online] at

http://www.jusfortechies.com/java/core-java/deepcopy_and_shallowcopy.php (2011).190. Stackoverflow.com, deep cloning objects in C#, available [online] at http://stackoverflow.com/questions/78536/deep-

cloning-objects-in-c-sharp (2008). 191. Keyoti, ASP.NET Search Engine for Web Apps, available [online] at http://keyoti.com/products/search/dotNetWeb/.

Page 131: Aristotle School Library

192. Lucene.NET ultra fast search for MVC or WebForms site made easy, available [online] at http://www.codeproject.com/Articles/320219/Lucene-Net-ultra-fast-search-for-MVC-or-WebForms.

193. Programming Simplified, available [online] at http://www.programmingsimplified.com/c/source-code/c-program-binary-search.

194. Which searching technique can be used if the array is unsorted?, available [online] at http://stackoverflow.com/questions/11532714/which-searching-technique-can-be-used-if-the-array-is-unsorted.

195. William R. Stanek, Administrator's Pocket Consultant, published by Microsoft Press (2008).196. Prof. F.L. Bauer et. al, Software Engineering, published after a conference sponsored by NATO Science Committee

held at Garmisch, Germany, 7th October 1968 to 11th October 1968 (Published January 1969).197. CLR Profiler for the .NET Framework 2.0, available [online] at

http://www.microsoft.com/en-us/download/confirmation.aspx?id=13382.198. Red Gate Software, ANTS performance profiler 8, available [online] at http://www.red-gate.com/products/dotnet-

development/ants-performance-profiler/.199. Approaches for Building Management Tools using the System LifeCycle.200. Parallel processing and concurrency in the .NET Framework, available [online] at

http://msdn.microsoft.com/en-us/library/hh156548(v=vs.110).aspx. 201. Export Gridview to Excel Sheet, available [online] at http://stackoverflow.com/questions/19233214/export-gridview-to-

excelsheet-from-an-application-in-c-sharp-on-iis-server-to-a.202. How do I send an email using C#?, available [online] at http://social.msdn.microsoft.com/Forums/en-US/a75533eb-

131b-4ff3-a3b2-b6df87c25cc8/how-do-i-send-mail-using-c?forum=netfxnetcom.203. How to run a Windows command as a background job like Unix?, available [online] at

http://www.tomshardware.co.uk/forum/34598-45-windows-command-background-unix.204. Simple Mail Transfer Protocol (SMTP), available [online] at http://tools.ietf.org/html/rfc5321#section-2.3.11, last

updated during October 2008.205. Human Aware, Assistive Technology Resource Guide, available [online] at http://www.humanaware.com/.206. Creating an Email using a Template, available [online] at http://msdn.microsoft.com/en-us/library/hh210212.aspx.207. ServerConnection Class, available [online] at http://msdn.microsoft.com/en-us/library/gg309393.aspx.208. Java Email Server, available [online] at http://www.ericdaugherty.com/java/mailserver/.209. Apache James, available [online] at http://james.apache.org/.210. How to send an SMS using Gmail, available [online] at http://www.wikihow.com/Send-SMS-from-Gmail.211. Kannel: Open Source WAP and SMS Gateway, available [online] at http://www.kannel.org/.212. SMS Gateway, available [online] at http://en.wikipedia.org/wiki/SMS_gateway, last updated on 22nd November 2013.213. Word counter in some hieroglyphics languages, available [online] at

http://stackoverflow.com/questions/17940496/word-counter-in-some-hieroglyphics-languages, last updated on 30th July 2013.

214. Claude Duguay, Working with James, an, introduction to Apache James enterprise email server, available [online] at http://www.ibm.com/developerworks/library/j-james1/.

215. List of mail servers, available [online] at http://en.wikipedia.org/wiki/List_of_mail_servers, last updated on 31st October 2013.

216. Stanford JavaScript Crypto Library, available [online] at http://crypto.stanford.edu/sjcl/. Repository is available at https://github.com/bitwiseshiftleft/sjcl.

217. V. Cheung, JavaScript Encryption and Decryption 2.0 available [online] at http://www.vincentcheung.ca/jsencryption/.218. JavaScript encrypt, available [online] at http://stackoverflow.com/questions/14232958/javascript-encrypt.219. ASCII codes available [online] at http://www.asciitable.com/.220. Displaying a Crystal Report using C#, available [online] at http://stackoverflow.com/questions/16218371/displaying-a-

crystal-report-using-c-sharp.221. Microsoft Internet Information Services 8.5, available [online] at http://www.microsoft.com/web/platform/server.aspx.222. Quicksort, available [online] at http://en.wikipedia.org/wiki/Quicksort, last updated on 12th December 2013.223. Linear search problem, available [online] at http://en.wikipedia.org/wiki/Linear_search_problem, last updated on 5th

December 2013.224. Quiet study rooms, available [online] at http://www2.warwick.ac.uk/services/library/using/disability/roombookings/.225. Date and Time DateDiff methods, available [online] at

http://msdn.microsoft.com/en-us/library/ms127413(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1.226. Validation and verification of software, available [online] at

http://en.wikipedia.org/wiki/Verification_and_validation_(software), last updated on 21st December 2013.227. Papaya Prepaid MasterCard available [online] at http://www.papaya.eu/.228. VISA Corporate Website, available [online] at http://corporate.visa.com/index.shtml.229. MasterCard Worldwide, available [online] at http://www.mastercard.com/index.html.230. Single Euro Payments Area, available [online] at http://www.ecb.europa.eu/paym/sepa/html/index.en.html.231. Bitcoin Payment Gateway (Open Source), available [online] at http://bitcoin.org/en/.232. Are Bitcoin black market purchases really anonymous, available [online] at http://www.coindesk.com/following-the-

money-bitcoin-black-market-purchases-anonymous/, last updated on 17th December 2013.233. G. Caruana, Look@Algorithm/Technique: Bloom Filter, available [online] at

http://godwincaruana.me/lookalgorithmtechnique-bloom-filter/, updated on 29th December 2013.234. ASP.NET Web Project Folder Structure, available [online] at http://msdn.microsoft.com/en-us/library/ex526337.aspx.235. C# Programming Guide, available [online] at http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx.

Page 132: Aristotle School Library

236. Jeff Atwood, Source control: anything but SourceSafe, available [online] at http://www.codinghorror.com/blog/2006/08/source-control-anything-but-sourcesafe.html, updated on 16th August 2006.

237. Information on MoSCoW i.e. Must have Should have Could have Would have prioritization acronym is available at http://en.wikipedia.org/wiki/MoSCoW_Method.

238. Dewey Decimal Classification, originally published by Melvil Dewey (1876), information available [online] at http://en.wikipedia.org/wiki/Dewey_Decimal_Classification, last updated on 5th January 2014.

239. Atlassian JIRA Bug Tracking available [online] at https://www.atlassian.com/. 240. Universities and Colleges Information System Association (UCISA), ITIL a guide to change management, available

[online] at www.ucisa.ac.uk. 241. CodeProject.com, How to get a user IP address in C#, available [online] at

http://www.codeproject.com/Questions/399318/How-to-Get-User-IP-address-using-csharp. 242. How to detect duplicate rows in an SQL Server table, available [online] at http://stackoverflow.com/questions/306743/how-

to-detect-duplicate-rows-in-a-sql-server-table. 243. ASP.NET Themes and Skins, available [online] at http://msdn.microsoft.com/en-us/library/ykzx33wh.aspx. 244. Searching within a list of objects, available [online] at http://stackoverflow.com/questions/5187888/java-searching-within-a-

list-of-objects. 245. The 10 best languages to learn in the world, available [online] at https://lingos.co/blog/best-languages-to-learn-in-the-

world/.246. Cocomo II, available [online] at http://csse.usc.edu/csse/research/COCOMOII/cocomo_main.html, for estimation of

milestones based on function point analysis or lines of code.247. Plug and Play Programming, available [online] at http://www.drdobbs.com/plug-and-play-programming/184403066. 248. Business card sizes, available [online] at http://designerstoolbox.com/designresources/businesscards/.249. Data structures and algorithms, available [online] at https://www.cs.auckland.ac.nz/software/AlgAnim/searching.html. 250. Quicksort, available [online] at http://en.wikipedia.org/wiki/Quicksort, last updated on 20th March 2014.251. Line counting trickery within Visual Studio, available [online] at http://www.codeproject.com/Articles/625710/Line-Counting-

Trickery-within-Visual-Studio, updated on 10th October 2013.

Page 133: Aristotle School Library
Page 134: Aristotle School Library