COMP246-zFish Tracker-Assignment Part A, B, C - SRS and SDD
COMP246-zFish Tracker-Assignment Part A, B, C - SRS and SDD
Group 10
Yushi (Sandy) Shang 301177535
Pinkherwin Relos 301209565
Michael-Angelo Dinuccio 301177707
Colin Moore 301165754
Melissa Westaway 301161203
Jeffrey Sy 980045498
Himali Kothari 301210969
Contents
Part A: Software Requirements Specification........................................................................ 3
1.0 Problem Statement .................................................................................................................... 3
1.1 Opportunity for Software Solution ............................................................................................. 3
1.2 Stakeholders and Associated Roles ......................................................................................... 4
1.3 Application Subsystems.............................................................................................................. 6
1.4 Intended Audience....................................................................................................................... 6
2.0 General Overview Modelling .................................................................................................... 7
2.1 Context Flow Diagram (CFD) .................................................................................................... 7
3.0 Requirements Modelling – Functional & UML Use Case ..................................................... 7
3.1 Goal Use Cases ........................................................................................................................... 7
3.2 Use Case Diagrams .................................................................................................................... 9
3.3 User Stories ................................................................................................................................ 11
3.4 Non-Functional Requirements ................................................................................................. 14
4.0 UML Domain Class Diagram .................................................................................................. 15
4.1 List of Classes ............................................................................................................................ 15
4.2 Domain Class Diagram ............................................................................................................. 16
5.0 Entity Relationship Diagram (ERD) ....................................................................................... 16
6.0 UML Systems Sequence Diagram ........................................................................................ 17
7.0 UML State Diagrams ..................................................................................................................... 19
8.0 Technologies .................................................................................................................................. 19
9.0 Project Management ..................................................................................................................... 20
Part B: Software Design Architecture....................................................................................21
1.0 Overview Model ............................................................................................................................. 21
1.1 Intended Audience..................................................................................................................... 21
1.2 Architectural Context Diagram (ACD) .................................................................................... 21
2.0 Modularization ................................................................................................................................ 22
2.1 Partition of Analysis Model ....................................................................................................... 22
2.2 Class Responsibility Collaborator (CRC) ............................................................................... 23
2.3 Design Class Diagram .............................................................................................................. 24
3.0 Model View Controller Framework .............................................................................................. 26
3.1 MVC Pattern Diagram ............................................................................................................... 26
4.2 Sequence Diagrams .................................................................................................................. 30
3.3 State Machine Diagrams .......................................................................................................... 31
4.0 Data Layer ...................................................................................................................................... 32
5.0 Technologies .................................................................................................................................. 32
6.0 Project Management ..................................................................................................................... 33
Part C: System Design Document .........................................................................................34
1.0 Software Design Patterns............................................................................................................. 34
1.1.1 State Pattern ..................................................................................................................... 34
1.1.2 Observer Pattern .................................................................................................................... 34
1.1.3 Composite Pattern ................................................................................................................. 34
2.0 Using Common Software Design Patterns ................................................................................ 34
3.0 UI/UX Design.................................................................................................................................. 37
3.1 Identity and Access Management ........................................................................................... 37
3.2 Notification .................................................................................................................................. 38
4.0 High Level Component and Deployment Diagram ................................................................... 39
4.1 Component Diagram ................................................................................................................. 39
4.2 Deployment Diagram ................................................................................................................ 39
5.0 Project Management ..................................................................................................................... 40
6.0 Project Presentation ...................................................................................................................... 40
6.1 Presentation Transcript............................................................................................................. 40
6.2 Presentation Slides ................................................................................................................... 42
6.3 PowerPoint Presentation .......................................................................................................... 42
Part A: Software Requirements Specification
The zebrafish, Danio rerio, is increasingly being adopted by biomedical research facilities as a
developmental model organism for studying human genetic diseases. As its popularity
increases, so does the need for a software solution to help track and manage zebrafish
colonies.
Zebrafish research facilities typically consist of more than one research laboratory and often
have multiple Animal Use Protocols, which require strict record keeping of animals used for
research purposes. Larger facilities can house upwards of thousands of tanks containing
genetically unique strains of zebrafish, making accurate record keeping a challenge.
Often research facilities will utilize paper-based record management systems to keep track of
their zebrafish colonies. These present a number of disadvantages in comparison to digital
record management systems:
zFish Tracker is a user-friending Database Management System designed for single and multi-
user zebrafish research facilities. The proposed capabilities include:
zFish Tracker offers the following benefits over traditional paper-based management systems:
• Reporting
• Product Owner
• Design Team
• Development Team
• Marketing Team
• Software Testers
2.0 General Overview Modelling
FR03 User Logout Primary Users can log out of the database.
Investigators,
Researcher,
Husbandry, Lab
Animal Services
FR04 Create New Researcher, Allow users to add a new line of fish into the
Lines Husbandry database. Must include the following
information: line number, genotype, parents,
date of birth, number of fish, number of tanks,
UserID, LabID,
FR06 Update Fish Researcher, Allows users to edit, change, and manage
Info Husbandry existing information.
FR10 Generate Husbandry, Lab Allow users to generate final reports for each
quarterly Animal Services annual quarter based on selected criteria.
reports
3.2 Use Case Diagrams
3.3 User Stories
FR01: As a Primary Investigator, Researcher, Husbandry, or Lab Animal Service, I want to Log
In to the application so that I can access my information.
Acceptance Criteria:
Acceptance Criteria:
And: User inputs a password that meets the criteria and inputs it a second time to verify it.
FR03: As a Primary Investigator, Researcher, Husbandry, or Lab Animal Service, I want to Log
Out of the application so that I can disconnect my identity with the database when I want to.
Acceptance Criteria:
FR04: As a Researcher or Husbandry, I want to Create New Lines so that I can input all
relevant details in one step in order to keep track of my zebrafish lines.
Acceptance Criteria:
Given: User wants to create New Lines in the database.
And: User clicks on the “Create” button to add new Lines in the database.
Then: The user will be able to input all the relevant details in the New Lines.
FR05: As a Researcher or Husbandry, I want to Record Fish Mortality so that I can keep track of
how many fish have died.
Acceptance Criteria:
When: User goes to the “Fish Mortality” section under the “Fish Information” section.
And: User enters records related to mortality and clicks on the “Save” button.
FR06: As a Researcher or Husbandry, I want to Update Fish Info in the database so that I can
change and modify existing information.
Acceptance Criteria:
Given: User has Fish Information in the database and wants to update the information.
Then: The user can change and modify the existing information in the database.
FR07. As a Researcher or Husbandry, I want to receive notifications so that I can know when
there are changes in my work and the fish in our lab.
Acceptance Criteria:
Acceptance Criteria:
When: User goes to notification settings and clicks on the “Customize” button.
Then: The user will receive notifications only related to the selected preferences.
FR09: As a Husbandry, Lab Animal Services or Primary Investigator, I want to Access Health
Trend Analysis so that I can create statistics on health trends based on selected criteria.
Acceptance Criteria:
Then: The user can create statistics on health trends based on selected criteria.
FR10: As a Husbandry,, I want to Generate Quarterly Reports so that I can create final reports
for each annual quarter based on selected criteria.
Acceptance Criteria:
Primary
Investigator
NFR05 Scalability Application must allow for addition Expected Project Manager
of new features for future
releases. Development
Team
Application must allow for addition
of new researchers and research Primary
labs. Investigator
ZebraFishLine Each zebrafish line represents a lineage. One line can exist in more
than one fish tank.
8.0 Technologies
zFish Tracker is intended to be a desktop application developed using the follow technologies:
• Client-side
o JavaFX
• Business logic
o Java
• Database
o Oracle Database
• Hosting service
o MicroSoft Azure
• Version control
o GitHub
The Software Design Architecture document is intended for engineers, researchers and anyone
who wishes to learn more about the design and implementation of the zFish Tracker system.
It is also intended for anyone looking to modify and/or extend the existing incarnation of the
system.
5.0 Technologies
The state pattern is a behavioral design pattern which allows an object to alter its state
depending on its internal state. We could use this in our Colony Management Subsystem to
allow zebrafishLine objects to change from living to deceased to make monitoring mortality rates
easier.
The observer pattern allows multiple objects to be notified of when the state of another object
changes. This would be beneficial to us in our notification system. Users could subscribe to
receive notifications about the zebrafish lines that they own and when changes occur within
those lines.
The composite pattern allows objects and compositions of objects to be treated the same
way. We could use this in our Identity and Access Management Subsystem to allow all of our
different user class types to be created and managed the same way.
Problem: There are four different types of users with different properties. How
can we make a class that can encompass all four types of users under
one umbrella class?
Solution: We created a composite that is an abstract class, which allows all four
users to retain their different properties while falling under the same
User class.
Example:
Benefits and The benefits to this is that end users will have an easier time creating
Consequences: an account, and it makes it easier to add new users.
Problem: When a line of fish changes state from alive to deceased, the users
attached to these lines need to be notified so they can record the
mortality rate. One user can be attached to many lines of fish, and they
cannot keep up with all of them at once.
Example:
Benefits and The benefit of this will allow users that are not working on the fish to be
Consequences: added to the notification list without modifying the fish or users.
Problem: When a line dies, the mortality must be recorded accurately for the Lab
Animal Technicians to review. When multiple lines die on different dates,
in different tanks, with different properties, it is very hard to keep track of
all mortalities.
Solution: We created the record mortality class in this subsystem that triggers
when the line changes state to deceased, all the information of that line
gets uploaded to the reporting system.
Example:
Benefits and The benefit of this is that it will save time when counting all the mortality
Consequences: rates, and finding common properties amongst the lines.
1) Why did you choose the system you did? (1-2 mins)
• Our system will make tracking zebrafish lines more efficient and accurate. Less likely to
make mistakes due to bad handwriting. Data entry will be standardized.
• Make it easier to observe trends, analyze, and compare data across zebrafish lines, and
with other researcher’s work.
• Allow users to generate reports
• Provide an alert/notification system to users of the system
• Secure data by only allowing authorized access, and to provide data backups [next
slide]
3) How did you approach doing analysis and design for this system? (3-4 mins)
• While we weren’t actually building any software, we tried to apply the lessons we’ve
learned and adapted the Systems Development Life Cycle (SDLC) as a framework by
adapting the the following stages:
o Planning stage, where we gathered information and planned the basic project
approach and feasibility of our project
o Defining requirements, where we outlined all the things our software should be
able to do, this is where use cases and user stories were very helpful.
o Designing the product, this is the stage where we began the diagrams so we got
a better sense of what and how the system would come together
o Testing and Review, this is where we decided to see what was working and what
needed to be modified, if any components of subsystems need to be moved from
one area or another, etc.
o Returned back to the defining requirements stage. [next slide]
• Further refined to scrum methodology for a few reasons, it emphasized individuals and
interactions, customer collaboration and simplicity
• Agile also allowed us to adapt to any changing requirements and feedback from group
members.
• Further decided to adopt the scrum framework as the weekly sprints were very close to
how we wanted to accomplish this task.
• Began with user stories and use cases, and expanded on them through the use of
diagrams based on those elements.
4) So what specifically did you learn in the class and how did you apply your learnings to
the analysis and design of your project? (7-8 mins)
6) If you secured funding to build the system you designed, what are next steps from a
software engineering perspective? (1-2 mins)
-The next steps from a software engineering perspective would be to see the demand of such a
system, what kind of funding or interest we could generate, how many labs or research teams
would be interested, and finally begin the process of actually programming the system into
reality by developing the application software.