Program documentation

profileLiam0r
RequirementsAnalysisDocument.pdf

cuACS Requirements Analysis Document

Nicholas Aubé 101032093

Ibiduneyitayo, 101018199

Peter MacDonald, 100683150

Submitted to:

Dr. Christine Laurendeau

COMP 3004 Object-Oriented Software Engineering

School of Computer Science

Carleton University

1

Table of Contents

Introduction + Overview of Document…………………………………………………………………………….1

Functional Requirements…………..……………………………………………………..……………………………..2

Non-functional Requirements………………………………………………………………………………………2-4

Use Case Model…………………………………………………………………………………………….……………4-15

Object Model……………………………………………………………………………………………………………...…16

Introduction

The cuACS program is designed to find the best possible matches between a variety

of different animals and clients that are looking for a new pet. The Carleton University

Animal Case System will revolutionize the way that we adopt animals. The main advantage

of the cuACS system is the dynamic algorithm that matches shelter animals and human

clients based on compatibility factors such as habitat, size, and temperament. The

algorithm is optimized to create the largest number of sufficient matches, not just one or

two perfect ones. The cuACS program will allow clients to look at animal profiles and edit

their own detailed profiles. There will also be functionality to manage client profiles and

animal preferences. There are even multiple types of users that can access the system, staff

and clients. Both types of users have different permissions, which will be managed by the system.

This report will cover many different aspects of the cuACS system, including an

overview of the program, functional and non-functional requirements, the user case model

and the object model.

2

Functional requirements Traceability: functional requirements are preceded by the letter F when referred to in

other sections of the requirements analysis. E.g. F-1.1 refers to the staff interaction 1.1

functional requirement.

1. Staff interactions

1.1. Staff should be able to add new animals and clients

1.2. Staff should be able to view client and animal information

1.3. Staff should be able to edit animal and client profiles

1.4. Staff should be able to start the Matching algorithm process

1.5. Staff should be able to view a summary of matches made by the Matching algorithm

1.6. Staff should be able to view the details of a specific match made by the algorithm

2. Client interactions

2.1. Clients can view and edit their profile

2.2. Clients can view animal profiles

3. Algorithm

3.1. There should be an algorithm that can create optimal matches between clients and

animals

3.2. The algorithm should look at client preferences and match them with animal traits

3.3. The algorithm should attempt to create the largest number of acceptable matches

possible rather than a small number of extremely compatible matches.

3.4. The algorithm should provide output in a form that can be easily turned into a

report for user reading.

Non-Functional Requirements Traceability: non-functional requirements are preceded by the letters NF when referred

to in other sections of the requirements analysis. E.g. NF-1.1 refers to the open source licensing non-functional requirement.

1. Legal

1.1. Our software must be distributed under an open source licence

1.2. Our software’s use of the QT framework must conform to the terms of its

Open-Source GPL 3.0 licence.

1.3. Our software must be licensed for non-profit use only

2. Usability

2.1. All error messages should be descriptive and, where applicable, suggest

solutions

3

2.2. The GUI should provide hotkey shortcuts for common tasks on relevant

platforms

2.3. The database should be automatically updated when users have finished

editing a profile, without requiring them specific user input.

3. Reliability

3.1. If the system fails while a profile is being updated they should be prompted

to save their progress

3.2. The system should be able to perform the functional requirements without

crashing, hanging, or otherwise failing.

3.3. The system should consistently be able to run without crashing after release

4. Performance

4.1 The matching algorithm should provide results in a reasonable time frame

(< 60 seconds).

4.2 The program should minimize both system resources and system time by ensuring that unnecessary calls to the database are avoided

4.3 When running the matching algorithm, the thread that is handling UI

processes should not be blocked while waiting for the results.

5. Supportability

5.1. The back-end and the GUI should be sufficiently decoupled that porting the

system to a different GUI framework would be easy

5.2. Adding, removing, or modifying animal and client traits should be easy

5.3. Modifying one part of the GUI should not require remaking other portions to

preserve functionality

6. Implementation

6.1. The system must be written in C++

6.2. The system needs to have a GUI

6.3. Persistent storage must be provided through an SQL database

7. Interface

7.1. The interface should be clean and professional

7.2. The interface needs to have a sign in as either a staff member or a client

7.3. The interface should be designed and programmed using the QT framework

8. Operations

8.1. The client should not be able to access the information of other clients

8.2. The client should not be able to modify the information of animals

8.3. Only staff members can create client profiles and

9. Packaging

9.1. The system should build in a single command and run with a single

command

9.2. The system must be accessible as an executable for download

4

9.3. The codebase should be packaged in a way that it is easy to navigate and

intuitive for all programmers to be able to easily find the intended piece of

code

Use Case Model Diagrams

5

6

7

8

9

10

11

12

Reminder: UC-3.1 refers to the algorithm use case where it creates matches.

Descriptions Use Case Identifier UC-1.1/UC-1.2 Name StaffAddClient/StaffAddAnimal Participating actors StaffMember Flow of events 1. A staff member starts the creation process

2. The program creates the form to initialize the new item’s properties

3. The staff member fills out the form and submits it 4. The program will add the new client/animal to the appropriate

table after verifying that all the fields are entered correctly Entry conditions The Staff member elects to begin the creation process Exit conditions The system will return a message saying that the action is complete Quality requirements The user must be in the staff portion of the software. Traceability F-1.1

13

Use Case Identifier UC-1.3/UC1.4 Name StaffViewClient/StaffViewAnimal Participating actors StaffMember Flow of events 1. A staff member selects the client or animal profile that they

would like to view 2. The staff member clicks on the view details button 3. The program opens the details page for the client or animal

Entry conditions The Staff member elects to open the details page Exit conditions The program returns back to the main menu Quality requirements The user must be in the staff portion of the software. Traceability F-1.2

Use Case Identifier UC-1.5/UC1.6 Name StaffEditClient/StaffEditAnimal Participating actors StaffMember Flow of events 1. A staff member starts the edit process

2. The program creates the form to edit the item’s properties 3. The staff member fills out the form and submits it 4. The program will update the client/animal to the appropriate

table after verifying that all the fields are entered correctly Entry conditions The Staff member elects to open the edit page Exit conditions The system will return a message saying that the action is complete Quality requirements The user must be in the staff portion of the software. Traceability F-1.3

Use Case Identifier UC-1.7 Name StaffStartAlgorithm Participating actors StaffMember Flow of events 1. A staff member starts the algorithm

2. The program creates the appropriate matches and saves them Entry conditions The Staff member elects to start the algorithm Exit conditions The system will return a message saying that the action is complete Quality requirements The user must be in the staff portion of the software. Traceability F-1.4

Use Case Identifier UC-1.8 Name StaffViewMatchSummary Participating actors StaffMember Flow of events 1. A staff member starts UC-1.7

2. The program creates the appropriate matches and saves them 3. The staff member clicks the summary button of the algorithm 4. The program reprints the general summary of the matches

Entry conditions The Staff member elects to open the summary of matches Exit conditions The system will return to the menu Quality requirements The user must be in the staff portion of the software. Traceability F-1.5

14

Use Case Identifier UC-1.9 Name StaffViewMatchDetails Participating actors StaffMember Flow of events 1. A staff member starts UC-1.7

2. The program creates the appropriate matches and saves them 3. The staff member clicks the details button on a certain match 4. The program prints the summary of that specific match

Entry conditions The Staff member elects to start the algorithm Exit conditions The system will return a message saying that the action is complete Quality requirements The user must be in the staff portion of the software. Traceability F-1.6

Use Case Identifier UC-2.1/UC-2.2 Name ClientViewSelf/ClientEditSelf Participating actors ClientMember Flow of events 1. A client clicks on their profile

2. For UC-2.2, the client can press the edit button on their profile a) The program creates a form for the user to make changes and

submit b) The user submits the updated information and the program

checks to make sure it is correct c) The program updates the client’s profile and returns back to their

profile page 3. The program displays the client’s profile

Entry conditions The Staff member elects to view their profile Exit conditions The system will return a message saying that the action is complete Quality requirements The user must be in the client portion of the software. Traceability F-2.1

Use Case Identifier UC-2.3 Name ClentViewAnimal Participating actors ClientMember Flow of events 1. Client clicks on the animal details button

2. Program fetches and displays the list of animals and their details Entry conditions The Staff member elects to open the animals page Exit conditions The program returns back to the main menu Quality requirements The user must be in the client portion of the software. Traceability F-2.2

15

Use Case Identifier UC-3.1 Name StaffStartMatches Participating actors StaffMember Flow of events 1. The program is called to make matches

2. The algorithm fetches animal information and client preferences and creates matches according to all F-3.X functional requirements

3. The program saves the displays the matches Entry conditions The Staff member elects begin the matching algorithm Exit conditions The system will return a message saying that the action is complete Quality requirements The user must be in the staff portion of the software. Traceability F-3.1, F-3.2, F-3.3, F-3.4

Object Model

Data Dictionary

Name / ID Number

Attributes / Associations Definition Use Cases

User O-01

• Username • password

A user of the cuACS system. All use Cases

Staff User O-02

• Has access to the client database

• Has access to the animal database

• Has access to the matching system

• Is a User

A user of the cuACS system with staff/writing privileges.

UC-1.1 UC-1.2 UC-1.3 UC-1.4 UC-1.5 UC-1.6 UC-1.7 UC-1.8 UC-1.9 UC-3.1

Client User O-03

• Has a client profile in the Client database

• Has read-only access to the animal database

• Is a User

A user of the cuACS system with client privileges.

UC-2.1 UC-2.2 UC-2.3

16

Client Profile O-04

• Stored in the client database

• Can be edited by any staff user

• Can be edited by one client user

• Used by the Matching System to create Matches

• Name • Age • Gender • Size preference • Species preference • Allergies • Living space • Activity level

preference • Family size

A profile in the cuACS system that describes a client and their preferences.

UC-1.1 UC-2.1 UC-2.2 UC-2.3 UC-3.1

Animal Profile O-05

• Stored in the animal database

• Can be edited by any staff user

• Can be viewed by any Client user

• Used by the Matching System to create Matches

• Name • Species • Gender • Weight • Size • Color • Age • Ease of training • Playfulness • Friendliness with

strangers • Friendliness with

children • Aggressiveness • Activity Level • Affection Level • Hypoallergenic (yes/no) • Nocturnal (yes/no) • Shedding level • Living area needed • Ideal habitat

A profile in the cuACS system that describes an animal kept at the shelter and up for adoption.

UC-1.1 UC-1.3 UC-1.4 UC-1.5 UC-1.6 UC-1.7 UC-1.8 UC-1.9 UC-3.1

17

• Indoors or outdoors pet?

• Preferred climate • Responsiveness to

toys • Diet

Client Database O-06

• Contains client profiles • Can be read by staff

users • Can be edited by staff

users • Can be read by the

Matching System

The database system storing the client profiles for the cuACS system.

UC-1.1 UC-1.3 UC-1.5 UC-1.7 UC-3.1

Animal Database O-07

• Contains animal profiles

• Can be read by all users

• Can be edited by staff users

• Can be read by the Matching System

The database system storing the animal profiles for the cuACS system.

UC-1.2 UC-1.4 UC-1.6 UC-1.7 UC-2.3 UC-3.1

Match O-08

• Contains one animal and one client

• Created by the Matching system

• Can be viewed by staff users

A match between a client and a compatible animal, as judged by the Matching system

UC-1.8 UC-1.9 UC-3.1

Matching System O-09

• Can read client database

• Can read animal database

• Can be activated and viewed by staff users

• Creates matches • Stores matches

This system reads both the client and animal databases and creates matches between compatible clients and animals.

UC-1.7 UC-1.8 UC-3.1

Association Diagrams

18

Fig 1:

19

Fig 2: