SlideShare a Scribd company logo
1 of 47
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
University of Gloucestershire
CT 4017:
Introduction to
Software
Development
Assignment
Object Detection Software: Version 2
Fackrell,Sean
4/29/2015
Contents
Table of Figures............................................................................................................................ 3
Table of Tables............................................................................................................................. 3
Introduction:................................................................................................................................ 4
Analysis Phase: Reflections on Current Software: ...........................................................................4
Mind-Map................................................................................................................................ 5
Risk Analysis - Software Version 2.............................................................................................. 7
Development Phase...................................................................................................................... 8
Network Diagram:................................................................................................................... 10
Development Phase Reflection................................................................................................ 11
Improvement recommendations- Future Software Versions...................................................... 12
Software Testing & Verification Phase.......................................................................................... 13
Program Inspection................................................................................................................. 14
Black Box Testing:................................................................................................................... 14
White Box Testing:.................................................................................................................. 18
Software Quality Attributes Reflection..................................................................................... 22
Software Profilingin MATLAB.................................................................................................. 24
Group Evaluation........................................................................................................................ 24
References................................................................................................................................. 25
Appendix:................................................................................................................................... 26
Appendix 1: Software Version 1 Issues:.................................................................................... 26
Appendix 2: Development Mind-Map....................................................................................... 27
Appendix 3: Software v1 Data Flow Diagram. ........................................................................... 28
Appendix 4: Software v1 Finite State Diagram. ......................................................................... 29
Appendix 5: Software v2 Finite State Diagram. ......................................................................... 30
Appendix 6: Gantt Chart.......................................................................................................... 31
Appendix 7: Network Diagram................................................................................................. 31
Appendix 8: Scenario Testing................................................................................................... 32
Scenario 1: Load image - select colour- detect objects.......................................................... 32
Scenario 2 (From Webcam) Capture Image, Select Colour, Detect Objects.............................. 33
Secnareo 3 Initiate Live Webcam Feed.................................................................................. 35
Scenareo 4: Select Colour - Load Image – Detect Objects....................................................... 36
Scenareo 5 : Capture image From Webcam, Select Colour, Detect Objects.............................. 37
Scenario 6: Select Colour, Capture from webcam, Detect objects........................................... 39
Appendix 9 Black Box Testing Images:...................................................................................... 41
Appendix 10: Software Version History .................................................................................... 42
Appendix 11: Component Testing: ........................................................................................... 43
Appendix 12 Hardware/System & OS Compatibility Testing....................................................... 44
Appendix 13 Software Problems & Solutions............................................................................ 45
Appendix 14 Software Profiling(PC Running Multi Applications)................................................ 46
Appendix 15 Software Profiling(PC Running Just MATLAB)........................................................ 47
Table of Figures
Figure 1: Development Mind-Map.................................................................................................5
Figure 2: Data Flow Diagram, Software v.1..................................................................................... 5
Figure 3: Finite State Machine Diagram, Software v.1.....................................................................6
Figure 4: Finite State Machine Diagram, Software v.2.....................................................................6
Figure 5: The Scrum Process..........................................................................................................8
Figure 6: Gantt chart................................................................................................................... 10
Figure 7: Network Diagram.......................................................................................................... 10
Figure 8: Detect and Count Black Objects from Webcam Snapshot................................................ 13
Figure 9: Black Box Testing.......................................................................................................... 15
Figure 10 Colour Pickers Example ................................................................................................ 15
Figure 11 Camera Capture:.......................................................................................................... 16
Figure 12 Identify Objects in Video Feed ...................................................................................... 16
Figure 13: Coloured object detection in picture............................................................................ 16
Figure 14: Object Detectionin Video............................................................................................ 17
Figure 15 Jpeg Limitation ............................................................................................................ 26
Figure 16 DFD (Large Image)........................................................................................................ 28
Figure 17 Finite State Machine v1 (Large Image)........................................................................... 29
Figure 18 Finite State Machine v2 (Large Image)........................................................................... 30
Figure 19 : File types supported (Large Image).............................................................................. 41
Figure 20 Software Profiling (Multiple Applications) ..................................................................... 46
Figure 21 Software Profiling (PC Running Just MATLAB)................................................................ 47
Table of Tables
Table 1 SWOT Analysis Table.........................................................................................................4
Table 2 Risk Analysis (Software Version2)....................................................................................... 7
Table 3 Team Role Breakdown ......................................................................................................9
Table 4 Scenario Testing.............................................................................................................. 13
Table 5 White Box Testing (Table 1)............................................................................................. 18
Table 6 White Box Testing (Table 2)............................................................................................. 19
Table 7 White Box Testing (Table 3)............................................................................................. 20
Table 8 White Box Testing (Table 4)............................................................................................. 21
Table 10 Software Quality Attributes........................................................................................... 23
Table 9 Component Testing......................................................................................................... 43
Introduction:
This report will cover the development lifecycle for our updated software, including
reflections on the management process, SWOT analysis, work breakdown, Gantt chart, a
description of our adopted approach, DFD and Finite state machine diagrams.
In addition, it will also cover the detailed requirements of our updated software, explanation
of the software implementation, testing methods and a reflection on the overall development
process.
Analysis Phase: Reflections on Current Software:
After taking a couple of weeks to thoroughly analyse the current software provide on the
Introduction to Software development module, as a team we came to a consensus as to the
identifiable strengths and inherent weaknesses in the current software, and developed a
SWOT analysis chart to highlight the Strengths, Weaknesses, Opportunities and Threats.
(Screenshots highlighting some of the functional issues are available in Appendix 1)
Strengths
 Analyses images quickly.
 Compact piece of software.
 Functions as intended.
 Legacy software support.
 Pre-Coded.
 Easy to modify to add additional
functionality.
 Free (Creative commons license).
 Simple user interface.
 Detection of specific green shade
 Any Image can be imported.
Weaknesses
 Can only identify one shade of green.
 Only recognises still images.
 Only detects a single object.
 Only accepts .JPG and .PNG files.
 Program gets stuck if no object is
detected.
 Does not detect shape.
 Requires MATLAB installation to run.
 Only allows images from file to be
processed; does not allow images to
be taken directly from camera.
 User requires MATLAB license to run
the program.
Opportunities
 Program could be utilised in
professional applications - e.g.
Number plate recognition.
 Could be adapted to find objects
within videos.
 Allow webcam images to be
processed
 Modification for Multiple objects.
 Could be modified to identify
different colours.
 Keyboard shortcuts.
 Enable image search from within
the user interface (e.g. Google
images)
 Enable user to change detected
colour / hue from the interface
(GUI).
Threats
 Advanced systems such as
Hawkeye.
 Hardware failures / configuration.
 Software failures.
 No Security whatsoever - e.g. User
could potentially modify code
unknowingly.
 Software is not copyrighted.
 Potential copyright breach against
other similar software e.g. Hawkeye.
Table 1 SWOT Analysis Table.
Mind-Map
With these factors in mind, the team brainstormed what improvements we could make, and
what extra functionality could be added to the software and a mind map was drafted (Straub,
2015) to guide our development process, a larger view of which is available in Appendix 2.
Figure 1: Development Mind-Map
With these items in mind, the team drafted a Data Flow Diagram to understand how the
software currently directs and handles the flow of data prior to any modifications being
made, a larger version is available in Appendix 3.
Figure 2: Data Flow Diagram, Software v.1
Additionally, a Finite State Machine Diagram (FSMD) was drafted to understand all the
states that the current software could possibly encounter during normal use, a larger version
of which is available in Appendix 4.
Figure 3: Finite State Machine Diagram, Software v.1
A FSMD was then drafted for our mind mapped ‘improved’ version of the software we
planned to develop, a larger version of which is available in Appendix 5.
Figure 4: Finite State Machine Diagram, Software v.2
Further risk and functionality analysis of the proposed software was undertaken utilising the
MoSCoW method as recommended, the team reached consensus and the agreed analysis
is included below:
The updated software version 2:
M: Must have the ability to detect different coloured objects.
M: Must be able to change the colour to be detected by the software.
M: Must be able to detect more than one object in the selected image.
M: Must be able to detect a different object each time
(if identical parameters are set multiple times).
S: Should have an indicator that the program is running.
S: Should be able to adjust colour via a colour picker.
S: Should be able to add parameters for an additional object using a button.
C: Could have the ability to use keyboard shortcuts to navigate around the software.
C: Could add functionality to detect in video.
C: Could show hex/RGB values for selected colours.
C: Could count number of highlighted objects.
C: Could allow the user to capture images from a USB webcam.
C: Should have a function to terminate the program after a specified time if it freezes/hangs.
W: Will not have the functionality to detect moving objects in video, but would like to add this
in the future.
W: Will not have the functionality to search via Google or Bing images but this is a possibility
for a future iteration.
W: Will not be able to search by shape.
Risk Analysis - Software Version 2
Risk Severity Likelihood Owner Action
User accidently
edits code.
High. Low. Ensure code is read only in
MATLAB.
Make all functions available from
GUI to prevent need for editing
the code.
Competitors using
the software’s
code.
High. Medium? Apply for Patent on software.
User could be
colour blind.
Medium. Low. Text identifier for red, green and
blue colours.
Software might
hang during image
analysis.
Medium. Medium. Team Ensure thorough Debugging.
Software freezes
during analysis.
High. Medium. Build in a failsafe that terminates
the process after a certain
amount of time.
Table 2 Risk Analysis (Software Version2)
Development Phase
Upon completion of the analysis phase we had to choose a Software Development Life
Cycle (SDLC) method, after careful consideration we chose the SCRUM method for a
number of reasons.
 Suits our schedule - meeting each Wednesday in lecture.
 Group most familiar with this SDLC - due to studying in a different module.
 Easy to attach timescales to tasks - keeps project moving quickly.
 Mistakes can be quickly rectified due to fast moving nature of Scrum.
 Works well with a small team - communication is easier and clearer in a smaller
group.
 Simpler to make changes - small sections of work are done before being assessed, if
changes need to be made there won't be a huge set back.
 Lightly controlled but very visible method of development.
 Widely used in industry as a development tool by companies such as PayPal,
Siemens Healthcare and Yahoo (Mountain Goat Software, 2015).
 Promotes constant evolution of a project to meet end user / customer requirements.
However, we do acknowledge there are some drawbacks of using the scrum model, these
we identified as:
 Difficult to mark a completion date when project is ever evolving and when changes
are being made to previously completed sections of the project.
 Absence of a team member can drastically setback the project…
 Prone to ‘Scope Creep’ if there is not a definite completion date, as additional
software functionality may be demanded by the project stakeholders.
 If a task is poorly defined then estimated costs in both time and financial aspects of
the project will lack accuracy.
 Requires one team member to assume the role of scrum master.
Figure 5: The Scrum Process
(CPrime, 2015)
As we had chosen scrum as our development method, the individual roles were broken
down and apportioned accordingly. The main workload being broken down into four
deliverables to spread the workload, but also to foster a little light hearted competition
between the team members particularly with the code development, this made the
development more fun than a chore.
 Deliverable 1: Define colours using variables through UI.
 Deliverable 2: Colour picker: Code line to be added into current software and tested.
 Deliverable 3: Detect Object in Video Stream
 Deliverable 4: Remove object.
Who? What? Why? How? When?
Sean
Fackrell
SCRUM
MASTER
Regular review
of progress.
Set sprint
targets.
Deliverable 1.
Deliverable 3.
Due to agile approach to the
project - scrum master tasks.
To ensure team has clear
understanding and
development is progressing
adequately and efficiently.
To spread workload of
deliverable 1. & 3.
Arranging meetings
and reviewing
progress,
documenting
progress.
Using Google Docs
software.
Using MATLAB
software.
Throughout
Project (please
refer to Gantt
chart).
Matt Evert Deliverable 1.
Deliverable 4.
Regular edits to
development
report.
Help video
editing.
B-Roll Filming.
To spread workload of
deliverable 1.
To spread workload of
deliverable 4.
To ensure up to date
information and to add any
changes to documentation.
Has access to appropriate
recording equipment and
editing software.
Using MATLAB
software.
Using Google Docs
software.
Using Adobe
Premiere Software.
Throughout
Project (please
refer to Gantt
chart).
Joss
Benyon
Filming &
editing
assignment
video.
Deliverable 1.
Deliverable 3.
Has access to appropriate
recording equipment and
editing software.
To spread workload of
deliverable 1.
To spread workload of
deliverable 3.
Regular
documentation of
meetings and
software
development
process.
Using MATLAB
software.
Using Adobe
Premiere Software.
Throughout
Project (please
refer to Gantt
chart).
James
Conlan
Deliverable 1
Deliverable 2.
Has conducted previous
research, therefore has
knowledge for task.
To spread workload of
deliverable 1.
To spread workload of
deliverable 2.
Using MATLAB
software.
Throughout
Project (please
refer to Gantt
chart).
Tyler
Powell
Deliverable 3.
Deliverable 4.
To spread workload of
deliverable 3 & 4.
Using MATLAB
software.
Throughout
Project (please
refer to Gantt
chart).
Table 3 Team Role Breakdown
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
A Gantt chart (Larger version available in Appendix 6) and Network Diagram was developed to guide our development process.
Figure 6: Gantt chart
Network Diagram:
A Design Project
B Define colour Code
C Test ‘Define Colour Code’
D Colour Picker Code
E Testing of ‘Colour Picker Code’.
F Add Object Code
G Testing Add Object Code
H Remove Object Code
I Test Remove Object Code
J Final Product Testing
K Video Recording
L Video Editing
M Video Publishing
N Project Documentation.
(Larger version available in Appendix 7)
Figure 7: Network Diagram
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
DevelopmentPhase Reflection.
As a development team, we made extensive use of the MATLAB video tutorials (Mathworks,
2015) and knowledge base (Mathworks, 2015), plus other websites and books (Wiley, 2015)
which initially resulted a re-writing of a major part of the original software code and
reformatting of the Graphical User Interface (GUI) prior to addition of extra functionality
deliverables.
This involved research into implementing a colour picker into the GUI, limiting the input of
still images to certain file types, (The Motivated Engineer, 2013) removing excess code and
enabling a colour range to be implemented so subtle colour variations in imported images
could be accommodated by the software (MATLAB Central, 2011). In addition, the team also
added detecting multiple objects in a still image (Mathworks, 2010) and returning a count of
the detected objects.
Other deliverables that were developed involved more additional research. Development
subjects such as how to test a webcam and set formatting of the image (Mathworks, 2015),
developing a way to capture snapshots from webcam & enabling webcam display in the GUI
(A HOW TO, 2012) and creating custom message/ error notifications within the GUI
(Mathworks, 2015).
The object detection in live video feed deliverable proved to be troublesome to develop with
a number of minor issues being encountered, but fortunately Mathworks site had of
information on Image acquisition (Mathworks , 2015) Object detection (Mathworks, 2015).
Our SCRUM method of development proved to be so much more efficient than we had
initially expected, this was due to the organisation, planning, division of tasks and
responsibilities within our team. This lead to the completion of our version 2 software well
before the initial deadline as specified in the Gantt chart. Rendering it obsolete as
development of the project proceeded, however this is clearly a positive due to the
determination of our team to get a reliable working piece of software completed before our
planned target date, thus enabling sufficient time for testing, verification and validation.
However it was not all plain sailing, we did encounter a few problems during development,
namely we all had subtly different packages installed on our home computers meaning that
verification of functionality meant that one person might not be able to test the code
developed by someone else.
This minor issue would be addressed during the testing phase of the software to ensure a
robust piece of software is developed
We could not find a way to implement the colour picker into the live video stream as it
transpired that MATLAB handles video and still images in a slightly different manner
however; it does integrate with the GUI seamlessly.
We attempted to enable a function to select a webcam within the GUI (as it is common
practice that laptops tend to have Webcam Software and Hardware Webcam on separate
inputs), but we found it made to code unstable to the point of crashing any pc it was tried on.
Improvementrecommendations-Future Software Versions
One thing that could be improved upon in future versions of the software is the layout of the
GUI. For example, drop down menus could be implemented as a means of switching
between functions such as video and image detection, instead of the individual buttons that
currently reside within the GUI. This would help to streamline the software and improve its
usability, as drop down menus for inputs are a familiar feature in various other pieces of
software.
User defined colour selection for the video object detection could also be added to improve
the functionality of the software as it currently only detects red objects, this can be changed
within the code but not yet within the GUI. Including this in a later software version would
allow a wider range of potential users to make use of the software.
Fine Tuning the object colour detection for images could also advance the software, as it
would allow for more accurate colour detection.
Allowing the user to select which webcam input they would like to use from a drop down
menu would help to enhance the software as currently; the software will default to the first
camera connected to the computer. Allowing the user to choose will further add to the
functionality of the software, therefore making it a more desirable product to consumers.
Adding more compatible platforms such as Linux, Mac OS and potentially mobile OS’
(Android, Windows Phone) would allow more users to utilise the software.
Software Testing & Verification Phase.
Figure 8: Detect and Count Black Objects from Webcam Snapshot.
The initial basic testing phases after each piece of code was written and integrated into
MATLAB with version control being applied to each iteration of the software.
(See Appendix 10).
This informal testing was split into scenarios and the results of these initial tests are below,
screen shots are included in Appendix 8
Scenario Scenario test Test Success?
Scenario 1 Load image - select colour - detect objects Yes
Scenario 2 Capture image from webcam - select colour - detect objects Yes
Scenario 3 Initiate live webcam feed Yes
Scenario 4 Select colour - load image - detect objects Yes
Scenario 5 Capture image from webcam - select colour - detect objects Yes
Scenario 6 Select colour - capture image from webcam - detect objects Yes
Table 4 Scenario Testing
Further more rigorous testing was undertaken and is included under Program Inspection,
Black Box Testing, White Box Testing, Component testing (See Appendix 11) and Hardware
system and operating System Testing (See Appendix 12)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Program Inspection
Duringthe program inspectionphase anautomatedinspectionwasperformedthroughMATLAB,
alongwitha manual check toconfirmif any of the potential issuesdetectedare actual issuesorjust
advisories,anythingwe deemednota faultjustandadvisorywassuppressedthroughthe MATLAB
software environment.
Black Box Testing:
The software requirements laid out for the project were:
 Must run and provide full functionality on Windows 7 & 8/8.1 PC’s
 Must allow user to load in any image in PNG, JPG or GIF formats to use with the object
detection function.
 Must allow user to choose/define colour for object detection withinan image.
 Must allow user to capture from webcam
(With MATLAB generic o/s device driver pack installed)
 Must allow live tracking and count of detected objects.
 Must be able to detect more than a single object.
We know that our software is able to run on computers running on Windows 7 and 8/8.1, as
these were the primary operating systems used by the team during the software development
phase.
The program runs with its full functionality on this operating system, it will load in images,
detect objects within the image, capture images from a camera, capture video from the camera
and detect objects within the video. All of the white box testing was completed using the
computer with the above specifications using Windows 7 Ultimate.
(Black Box Testing screen shots are available in Appendix 9)
Figure 9: Black Box Testing
Whilst creating the software we came to the realisation that the user would be able to load in
any file type, even files that are not image files through the file browser by changing the file
types that the user could see to “All files”. To resolve this we took out the ability for the user
to change the type of file type they were able to see in the file browser, now the software
only allows them the user to see image files (.JPG, .JPEG, .PNG and .GIF). See Appendix 9
for Screen shots.
The ability for the user to be able to choose which colour they would like to find within an
image has been implemented into the software. The user can choose from a predefined
palette of colours:
Also the user can select the “More Colours…” option to have more colours to choose from
using RGB, HSV, HSL and CMYK values:
Figure 10 Colour Pickers Example
Capturing from an internal or external camera is also possible with our software, the user
just has to click on the red ‘Capture’ UI button and the software will take a picture from the
camera that is available.
:
Figure 11 Camera Capture:
However, there was a bug that stops you from finding objects within the picture after
capturing it, but this was resolved with a simple change in a line of code.
The software is capable of capturing a live feed through a camera, if I sit still it will detect a
few objects but then if I raise my hand into the view of the camera it will count more objects:
Figure 12 Identify Objects in Video Feed
At this moment in time however we have not been able to make the software detect
certain colours in the video feed as the detection method is different for video and still
images, this would be implemented in future versions of the software.
The software is also capable of detecting multiple objects within an image and through
the live stream; here is an image of the software detecting five blue dots in an image:
Figure 13: Coloured object detection in picture
The software is capable of detecting coloured objects however, the colour you choose to
find has to be almost exactly the same RGB values as the colour you are looking for
meaning that sometimes the software becomes redundant in a way, as you have already
found the colour you are looking in the image yourself.
You can see that the software has highlighted the five blue dots by placing a star over
them and you can see that the ‘Objects detected’ counter is at five. Here is an image of
the software detecting multiple images through a live stream:
Figure 14: Object Detection in Video.
The software has detected my hand and finger tips as well as other things so it is
capable of detecting objects however as mentioned earlier we have not been able to
implement the ability to find objects of a certain colour within the software.
Our software has been able to meet all of the requirements that we have set out for it but
there is still room to fine tune the program.
We may very well need to make the colour detection less sensitive so that the user can
just select a generalised colour from the colour palette instead of having to put in a very
exact colour. There are also some bugs to do with the software stalling after performing
certain actions, as mentioned earlier there is an issue where the user is not able to
detect objects within an image that is not captured as for some reason the ‘Find Objects’
button is greyed out and cannot be clicked.
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
White Box Testing:
Table 5 White Box Testing (Table 1)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Table 6 White Box Testing (Table 2)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Table 7 White Box Testing (Table 3)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
17. 10/04/20
15
FindObjectApp
SelectColour
The user should
be able to choose
a colour to find
before loadingin
any images.
Openthe colour
palette byclicking
the ‘SelectColour’UI
button,selecta
colourand click
‘Ok@
Openthe colourpalette
before loadinginanimage,
capturingan image or
capturinga live feedand
close the colourpalette
Pass N/A Program runsas normal and
the usercan go back to the
colourpalette toselecta
differentcolour.
18. 16/04/20
15
FindObjectApp
SelectColour
Image
Object/Colour
Detection
Attempttofind
an objectina
5x5px image
Test_Image_6.png
whichhas a height
and widthof 5 pixels
Selectcolourblack
fromthe colour
palette
‘FindObjects’UI
button
Load inTest_Image_6
whichhas a heightand
widthof 5 pixels,selectthe
colourblackfrom the
colourpalette andpress
the “FindObjects”UI
button
Fail Trivi
al
The software will state that
there isno objectof that
colourin the image.
19. 16/04/20
15
FindObjectApp
SelectColour
Image
Object/Colour
Detection
Attempttofind
an objectina
6x6px image
Test_Image_7.png
whichhas a height
and widthof 6 pixels
Selectcolourblack
fromthe colour
palette
‘FindObjects’UI
button
Load inTest_Image_7
whichhas a heightand
widthof 6 pixels,selectthe
colourblackfrom the
colourpalette andpress
the “FindObjects”UI
button
Pass N/A It seemsthatthe software can
onlydetectobjectswithin
imagesthatare more than 5x5
pixels.
20. 16/04/20
15
FindObjectApp
SelectColour
Image
Object/Colour
Detection
The software
shouldbe able to
findan objectina
16000x16000px
image
Test_Image_8.png
Selectcolourfrom
the colourpalette,
Clickthe “More
Colours”option,go
to “RGB” and use
these values,R:82
G:153, B:205
Thenclickthe ‘Find
Objects’UI button
Load Test_Image_8.png
intothe software,which
has a heightandwidthof
16000 pixel
Selectcolourfromthe
colourpalette,Clickthe
“More Colours”option,go
to “RGB” and use these
values,R:82 G:153, B:205
Thenclickthe ‘Find
Objects’UI button
Pass N/A The software wasable to find
3 objectswithinthisimage
howeverittooka considerably
longtime comparedtothe
previousimages.The software
was alsotakingupmore
systemresourceswhilst
findingobjectswithinthis
image as otherapplicationson
the pc run much more slowly
than usual.
Table 8 White Box Testing (Table 4)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Software Quality Attributes Reflection
Quality
Attribute
Reflection
Safety The safety of the software is not a major priority for this project, although
if it were to go into the market this would be an issue that needed to be
addressed.
Security The security of the software was a key priority when designing and
developing the idea for version 2. For example, our software is fully
compatible with the latest versions of Windows, this means that Network
administrators on networks using Windows 7 and up as their primary OS
can lock the software so that only certain users can access it. This can
prevent misuse of the software by unauthorised users. A feature that
could be added in later versions of the software is password support, so
that the user who installs the software can set a password to open it,
meaning they are then the only ones who can access it.
No DRM (crack prevention) at this stage, however this would be
implemented at a later stage in development.
Reliability The software is relatively reliable as almost all of the time it will perform
the function asked of it. However, some functions such as the Hideo
object detection can cause problems, for example if the user selects
video and then wants to select another option they are sometimes
required to exit out of the software and restart it in order to choose the
other option. On the other hand, most of the other functions perform just
about flawlessly, the image colour detection will always detect the colour
detected (within range) and the webcam capture will always take a
picture using the user's webcam, provided it is connected and
operational.
Robustness As can be seen from the prior stress tests, the software is clearly quite
robust; as it managed to load most of the sample images, we tested and
detect coloured objects without a hitch.
Understandability Our software is quite simple to navigate and understand. For example,
each function has its own unique button to start it, this means the user
knows exactly what they are action they are performing when they press
the button. In addition, during the operation of a function, the relevant
buttons will grey out to let the user know the software is still running the
function and to prevent the user from trying to start the function again.
Completion messages also make the software much clearer, as this
gives the user a distinct answer to whether the software has finished the
function it was performing or not.
Testability Testing the software was moderately simple to do due to the modular
nature of the code. Each main function is split within the .m document
using breaks. This allows for easy error detection and fixing, as well as
making the process of testing simpler.
Adaptability The software could be adapted to any form of object and colour
detection within images or live video feeds. One of the examples of this
we came up with would be the ability to track snooker balls to keep track
of the amount of points that are on the table, this would be done by
tracking multiple different coloured objects at a time.
Modularity The software is quite modular as it allows for the easy interchangeability
of functions. Each function's code is separated apart with 2 ‘enters’ in the
.m file, as well as having a comment above the function stating its use to
ensure the reader knows the start and end of each function.
To make the software more modular when could separate each function
into its own .m document to increase the clarity of where each function
begins and ends.
Complexity Our software compared to the original version is a much more complex.
We have added webcam integration and support for live video. However,
we have simplified the file structure by combining all of the code into a
single “.m” file.
Portability Our software could be considered very portable due to its small file size
of (478kB) and also due to the fact that it is a standalone .exe which can
be run from any location on the PC, such as a USB Flash Drive -
allowing users to take the software with them and transfer it between
PC’s easily.
Usability The software comes with a working GUI that makes using this software
very simple. There are UI buttons to load images, select colour to detect,
find objects within an image, capture images from a connected camera,
capture a live feed, and detect objects within that live feed.
Reusability This is evident in our software where portions of the code have been
used to run multiple functions within the software.
Efficiency Our software is relatively efficient as it uses a low amount of system
resources. This can be seen in the ‘Hardware testing’ table, as the
software ran well on both high end computers all the way down to lower
end PC’s, including PC’s over 5 years old.
Learnability Our software would not require training for a user to be able to operate it.
A short explanation of what the software is capable of would be
adequate. The GUI would help the user to understand what they can do
with the software as “Load Image” and “Video” are quite self-explanatory
and would be interpreted easily by the user.
Table 9 Software Quality Attributes
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Software Profiling in MATLAB
It was discovered through MATLAB profiler that running our software on a laptop with other
applications running (other than MATLAB) meant our software would open in less than 3.5
seconds and detect objects within a couple more seconds (See Appendix 14).
Running it on a laptop running only the MATLAB software reduced the time needed to open
the application to less than 0.25 seconds and detect the objects within an image reduced to
less than one second. (See Appendix 15)
Group Evaluation
Our group worked very efficiently and cooperated well during the planning, development
and testing stages of our development cycle for the software. We discovered throughout
the development that we had we a good balance of skills, this helped in the efficient
progress of the project. Google Drive also allowed for easy collaboration, version
management (Appendix 10) and sharing of files during the conceptual, logical and
physical stages of development. In addition, thanks to our team members utilising code
comments appropriately, it kept everyone in the loop of what the software does and how
much it had progressed since its last update.
To improve our group development process we could have ensured that we all had the
same toolboxes for MATLAB installed on our computers, this would ensure that the
software would work correctly on everyone's computers every time. Now that the
development stage has finished we feel that we could have potentially made some
additions to the software but these were omitted due to tome constraints, such as
multiple colour detection within video.
Some of the extra additions of the software could have been planned more thoroughly;
however, this did not affect our workflow too much.
Overall, we feel that our group worked well together and that the development of our
software went very smoothly.
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
References
A HOW TO, 2012. ahowto.net.
Available at:http://www.ahowto.net/matlab/preview-and-capture-webcam-into-an-axes/
[Accessed13thMarch 2015].
CPrime,2015. CPrime.com(WhatisAfile, Whatis Scrum).
Available at:https://www.cprime.com/resources/what-is-agile-what-is-scrum/
[Accessed20thFebruary2015].
Mathworks, 2015. MathworksDocumentation (Aquisition Using Any Hardware).
Available at:http://uk.mathworks.com/help/imaq/acquisition-using-any-hardware.html
[Accessed12thMarch 2015].
Mathworks,2010. MATLABNewsgroup (detecting objects).
Available at:http://uk.mathworks.com/matlabcentral/newsreader/view_thread/294702
[Accessed9thMarch 2015].
Mathworks,2015. MAthworks(Documentation).
Available at:http://uk.mathworks.com/help/supportpkg/usbwebcams/ug/acquire-images-from-
webcams.html?refresh=true
[Accessed3rdMarch 2015].
Mathworks,2015. MathworksDocumentation (Function Basics).
Available at:http://uk.mathworks.com/help/matlab/function-basics.html
[Accessed7thMarch 2015].
Mathworks,2015. MathworksDocumentation (Motion Based MultipleObjectTracking).
Available at:http://uk.mathworks.com/help/vision/examples/motion-based-multiple-object-tracking.html
[Accessed12thMarch 2015].
Mathworks,2015. MathworksDocumentation (msgbox).
Available at:http://uk.mathworks.com/help/matlab/ref/msgbox.html
[Accessed17thMarch 2015].
Mathworks,2015. Youtube.com(MatlabChannel).
Available at:https://www.youtube.com/channel/SWxoiS5i6TC1I
[Accessed1stMarch 2015].
MATLAB Central,2011. Mathworks.com.
Available at:http://uk.mathworks.com/matlabcentral/answers/15389-how-to-disable-a-button-later-in-the-
program-on-gui
[Accessed12thMarch 2015].
MountainGoat Software,2015. Maountain GoatSoftware(ScrumOverview).
Available at:http://www.mountaingoatsoftware.com/agile/scrum/overview
[Accessed1stMarch 2015].
Straub, I., 2015. Buildyourmap.com.
Available at:http://www.buildyourmap.com/
[Accessed1stMarch 2015].
The MotivatedEngineer,2013. You-Tube.com.
Available at:https://www.youtube.com/watch?v=TG3OWTd5j2w
[Accessed10thMarch 2015].
Appendix:
Appendix 1: Software Version 1 Issues:
Allows precise detection of green shade, but colour cannot be changed.
Anyimage can be imported,aslongas image isin the MATLAB program file.
But is limited to jpg
Figure 15 Jpeg Limitation
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 2: DevelopmentMind-Map.
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 3: Software v1 Data Flow Diagram.
Figure 16 DFD (Large Image)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 4: Software v1 Finite State Diagram.
Figure 17 Finite State Machine v1 (Large Image)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 5: Software v2 Finite State Diagram.
Figure 18 Finite State Machine v2 (Large Image)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 6: Gantt Chart.
Appendix 7: Network Diagram.
 A Design Project
 B Define colour Code
 C Test ‘Define Colour Code’
 D Colour Picker Code
 E Testing of ‘Colour Picker Code’.
 F Add Object Code
 G Testing Add Object Code
 H Remove Object Code
 I Test Remove Object Code
 J Final Product Testing
 K Video Recording
 L Video Editing
 M Video Publishing
 N Project Documentation.
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 8: Scenario Testing.
Scenario 1: Loadimage - select colour - detect objects
Load Image:
Select Colour:
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Detect Objects:
Scenario 2 (FromWebcam) Capture Image, Select Colour, Detect Objects.
Capture Image
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Select Colour:
Detect Objects:
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Secnareo 3 Initiate Live WebcamFeed.
Initiate live webcam feed
(Red coloured objects are detected & counted automatically upon running the function):
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Scenareo 4: Select Colour - LoadImage – DetectObjects.
Select Colour:
Load Image:
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Detect Objects.
Scenareo 5 : Capture image FromWebcam, SelectColour, Detect Objects.
Capture Image from Webcam
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Select Colour:
Detect Objects
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Scenario 6: Select Colour, Capture fromwebcam, Detect objects.
Select Colour
Capture From Webcam
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Detect Objects
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 9 Black Box Testing Images:
Figure 19 : File types supported (Large Image)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 10: Software VersionHistory
v1 Original Software.
v2 Colour detection added (without ranges).
v2.0.1 Colour detection with ranges.
v2.1 Webcam capture function added.
v2.11
Webcam displays within same axes as
‘Load Image’ function.
v2.12 Object detection counter added for images.
v2.13
Custom ‘Successful image capture’
notification added to webcam function.
v2.14 GUI clean
v2.2
Colour detection in video added (red colour
only at this time).
v2.21 Video colour detection GUI implemented.
v2.22 Object detection counter added for video.
v2.23
Video detection bug fixes and
improvements.
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 11: ComponentTesting:
Component Problemswith component Pass?
Webcam Image
Capture
None. Pass.
Image Load None. Pass.
Image Object/Colour
Detection
Can occasionally detectmultiple objects as one, however this problem is
in the minority.
Pass - needs
tweaking.
Video Object/Colour
Detection
Can feel laggy, however the software was programmed as such to
reduce the load strain on lower end systems.
Pass.
SelectColour None. Pass.
Table 10 Component Testing
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 12 Hardware/System & OS Compatibility Testing.
Machine
Performance
Rank
Computer’s
CPU
HDD/SSD Operating
System
Problems with software Pass?
High AMD Phenom ii
x6 1055t -
Hexacore
Processor @
3.8GHz
60GB
SSD
Windows
8.1 64bit
None Pass.
Medium Intel i7-4500U -
Dual Core
Processor @ 2.
2GHz
120GB
SSD
Windows
8.1 64bit
None Pass.
Medium Intel i5-2400 -
Quad Core
Processor @
3.1GHz
1TB HDD Windows 7
Enterprise
64bit
Crashed once when
opening live video feed,
however this could clearly
be an anomaly as it only
happened once during
the testing.
Pass.
Medium AMD A10-5750M
- Quad Core
APU @ 2.5GHz
1TB HDD Windows
8.1 64bit
None. Pass.
Low Intel i5-3317U -
Dual Core
Processor @
1.7GHz
60GB
SSD
Windows 8
64bit
None. Pass.
Low AMD A6 5400k -
Dual Core APU
@ 3.6GHz
500GB
HDD
Windows 7
Home 32bit
None, however software
was marginally slower to
load the camera functions
on this machine - This
may be due to the lower
grade processor and
slower HDD.
Pass.
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 13 Software Problems & Solutions
Problem Solution
All tile types could be uploaded when using
‘Image Load’ function causing the software to
crash.
Added a description in code for
acceptable file types (JPG, JPEG,
GIF, PNG).
Could not get the webcam to appear on the same
axes as the ‘Load Image’ function.
Added a line of code telling the
program to override what was
currently on the axes to display the
webcam capture.
Could not determine how to display a preview of
the webcam for image capture before allowing the
user to capture a picture.
Not found. Could be implemented in a
later software version.
Trouble resolving count of detected objects in
video stream.
Modified lines of code to enable
count.
Integration of the colour picker functions to
choose detected colour in a video stream.
No solution found as of the time of
writing.
Count does not return to zero if detected objects
are removed from webcams field of view.
Solution still being sought as of time
of writing.
Cancelling the image load function causes the
software to keep the load image button greyed
out, thus not allowing the user to load an image
until software is restarted.
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 14 Software Profiling (PC Running MultiApplications)
Figure 20 Software Profiling (Multiple Applications)
Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2
Appendix 15 Software Profiling (PC Running JustMATLAB)
Figure 21 Software Profiling (PC Running Just MATLAB)

More Related Content

What's hot

ARQUIVO ROUBADO
ARQUIVO ROUBADOARQUIVO ROUBADO
ARQUIVO ROUBADOD813061988
 
Portfolio Project_SAllen
Portfolio Project_SAllenPortfolio Project_SAllen
Portfolio Project_SAllenStephany Allen
 
Soa In The Real World
Soa In The Real WorldSoa In The Real World
Soa In The Real Worldssiliveri
 
Yahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference GuideYahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference GuideAndrew Talcott
 
Outlook 2007 Tips and Tricks
Outlook 2007 Tips and TricksOutlook 2007 Tips and Tricks
Outlook 2007 Tips and Tricksoutlookbill
 
Byron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design MasterByron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design Mastervdmchallenge
 
Blue Doc User Manual
Blue Doc   User ManualBlue Doc   User Manual
Blue Doc User Manualgueste2804e
 
BizTalk Practical Course Preview
BizTalk Practical Course PreviewBizTalk Practical Course Preview
BizTalk Practical Course PreviewMoustafaRefaat
 
Office Enterprise2007 Product Guide
Office Enterprise2007 Product GuideOffice Enterprise2007 Product Guide
Office Enterprise2007 Product Guideguesteb5fd7f
 
Share point configuration guidance for 21 cfr part 11 compliance
Share point configuration guidance for 21 cfr part 11 complianceShare point configuration guidance for 21 cfr part 11 compliance
Share point configuration guidance for 21 cfr part 11 complianceSubhash Chandra
 
Protective Device Coordination
Protective Device CoordinationProtective Device Coordination
Protective Device Coordinationjoeengi
 
Relazione forno orizzontale
Relazione forno orizzontaleRelazione forno orizzontale
Relazione forno orizzontaleALESSANDRO LOTTI
 
Lync Product Guide from Microsoft and Atidan
Lync Product Guide from Microsoft and AtidanLync Product Guide from Microsoft and Atidan
Lync Product Guide from Microsoft and AtidanDavid J Rosenthal
 
Specification of the Linked Media Layer
Specification of the Linked Media LayerSpecification of the Linked Media Layer
Specification of the Linked Media LayerLinkedTV
 
R3 tax interface configuration guide
R3 tax interface configuration guideR3 tax interface configuration guide
R3 tax interface configuration guideNaval Bhatt ,PMP
 

What's hot (18)

ARQUIVO ROUBADO
ARQUIVO ROUBADOARQUIVO ROUBADO
ARQUIVO ROUBADO
 
Tx16 wx user manual
Tx16 wx user manualTx16 wx user manual
Tx16 wx user manual
 
Portfolio Project_SAllen
Portfolio Project_SAllenPortfolio Project_SAllen
Portfolio Project_SAllen
 
Final Report
Final ReportFinal Report
Final Report
 
Red book Blueworks Live
Red book Blueworks LiveRed book Blueworks Live
Red book Blueworks Live
 
Soa In The Real World
Soa In The Real WorldSoa In The Real World
Soa In The Real World
 
Yahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference GuideYahoo Web Analytics API Reference Guide
Yahoo Web Analytics API Reference Guide
 
Outlook 2007 Tips and Tricks
Outlook 2007 Tips and TricksOutlook 2007 Tips and Tricks
Outlook 2007 Tips and Tricks
 
Byron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design MasterByron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design Master
 
Blue Doc User Manual
Blue Doc   User ManualBlue Doc   User Manual
Blue Doc User Manual
 
BizTalk Practical Course Preview
BizTalk Practical Course PreviewBizTalk Practical Course Preview
BizTalk Practical Course Preview
 
Office Enterprise2007 Product Guide
Office Enterprise2007 Product GuideOffice Enterprise2007 Product Guide
Office Enterprise2007 Product Guide
 
Share point configuration guidance for 21 cfr part 11 compliance
Share point configuration guidance for 21 cfr part 11 complianceShare point configuration guidance for 21 cfr part 11 compliance
Share point configuration guidance for 21 cfr part 11 compliance
 
Protective Device Coordination
Protective Device CoordinationProtective Device Coordination
Protective Device Coordination
 
Relazione forno orizzontale
Relazione forno orizzontaleRelazione forno orizzontale
Relazione forno orizzontale
 
Lync Product Guide from Microsoft and Atidan
Lync Product Guide from Microsoft and AtidanLync Product Guide from Microsoft and Atidan
Lync Product Guide from Microsoft and Atidan
 
Specification of the Linked Media Layer
Specification of the Linked Media LayerSpecification of the Linked Media Layer
Specification of the Linked Media Layer
 
R3 tax interface configuration guide
R3 tax interface configuration guideR3 tax interface configuration guide
R3 tax interface configuration guide
 

Similar to Fackrell_S_s1400430_CT4017_Report_Group_2

Machine Components Test.pptx
Machine Components Test.pptxMachine Components Test.pptx
Machine Components Test.pptxVasantAmbig
 
Optimization of an Energy-Generating Turnstile
Optimization of an Energy-Generating TurnstileOptimization of an Energy-Generating Turnstile
Optimization of an Energy-Generating TurnstileWayne Smith
 
Dissertation_katia_2015_ultima
Dissertation_katia_2015_ultimaDissertation_katia_2015_ultima
Dissertation_katia_2015_ultimaKatia Cuellar
 
Data analysis with R.pdf
Data analysis with R.pdfData analysis with R.pdf
Data analysis with R.pdfPepeMara
 
NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)
NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)
NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)Jim Floyd
 
Tellurium 0.6.0 User Guide
Tellurium 0.6.0 User GuideTellurium 0.6.0 User Guide
Tellurium 0.6.0 User GuideJohn.Jian.Fang
 
How to manage future grid dynamics: system value of Smart Power Generation in...
How to manage future grid dynamics: system value of Smart Power Generation in...How to manage future grid dynamics: system value of Smart Power Generation in...
How to manage future grid dynamics: system value of Smart Power Generation in...Smart Power Generation
 
Lte demonstration network test plan phase 3 part_1-v2_4_05072013
Lte demonstration network test plan phase 3 part_1-v2_4_05072013Lte demonstration network test plan phase 3 part_1-v2_4_05072013
Lte demonstration network test plan phase 3 part_1-v2_4_05072013Pfedya
 
Team viewer7 manual_meeting_en
Team viewer7 manual_meeting_enTeam viewer7 manual_meeting_en
Team viewer7 manual_meeting_enluphroot
 
B7.2 a1353-ra platform commissioning solaris 2.6
B7.2 a1353-ra platform commissioning solaris 2.6B7.2 a1353-ra platform commissioning solaris 2.6
B7.2 a1353-ra platform commissioning solaris 2.6chungminh1108
 
Capturing Knowledge Of User Preferences With Recommender Systems
Capturing Knowledge Of User Preferences With Recommender SystemsCapturing Knowledge Of User Preferences With Recommender Systems
Capturing Knowledge Of User Preferences With Recommender SystemsMegaVjohnson
 
Smith randall 15-rolling-element-bearing-diagnostics-cwu
Smith randall 15-rolling-element-bearing-diagnostics-cwuSmith randall 15-rolling-element-bearing-diagnostics-cwu
Smith randall 15-rolling-element-bearing-diagnostics-cwuProto Gonzales Rique
 
project Report on LAN Security Manager
project Report on LAN Security Managerproject Report on LAN Security Manager
project Report on LAN Security ManagerShahrikh Khan
 
60950106 basis-latest-till-interview-questions
60950106 basis-latest-till-interview-questions60950106 basis-latest-till-interview-questions
60950106 basis-latest-till-interview-questionsRavic Kumar
 
Laparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex Tegzes
Laparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex TegzesLaparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex Tegzes
Laparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex TegzesAlex Tegzes
 
Stacy Fileccia TW Portfolio 2016
Stacy Fileccia TW Portfolio 2016Stacy Fileccia TW Portfolio 2016
Stacy Fileccia TW Portfolio 2016Stacy Fileccia
 
CFC_Egress_FPGA_HWSpec_V1.0
CFC_Egress_FPGA_HWSpec_V1.0CFC_Egress_FPGA_HWSpec_V1.0
CFC_Egress_FPGA_HWSpec_V1.0Craig Maiman
 

Similar to Fackrell_S_s1400430_CT4017_Report_Group_2 (20)

Machine Components Test.pptx
Machine Components Test.pptxMachine Components Test.pptx
Machine Components Test.pptx
 
Optimization of an Energy-Generating Turnstile
Optimization of an Energy-Generating TurnstileOptimization of an Energy-Generating Turnstile
Optimization of an Energy-Generating Turnstile
 
Dissertation_katia_2015_ultima
Dissertation_katia_2015_ultimaDissertation_katia_2015_ultima
Dissertation_katia_2015_ultima
 
Data analysis with R.pdf
Data analysis with R.pdfData analysis with R.pdf
Data analysis with R.pdf
 
NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)
NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)
NYU Masters Thesis - 2009 (Thesis of the Year - Runner Up)
 
PMP-Processes
PMP-ProcessesPMP-Processes
PMP-Processes
 
Tellurium 0.6.0 User Guide
Tellurium 0.6.0 User GuideTellurium 0.6.0 User Guide
Tellurium 0.6.0 User Guide
 
How to manage future grid dynamics: system value of Smart Power Generation in...
How to manage future grid dynamics: system value of Smart Power Generation in...How to manage future grid dynamics: system value of Smart Power Generation in...
How to manage future grid dynamics: system value of Smart Power Generation in...
 
Lte demonstration network test plan phase 3 part_1-v2_4_05072013
Lte demonstration network test plan phase 3 part_1-v2_4_05072013Lte demonstration network test plan phase 3 part_1-v2_4_05072013
Lte demonstration network test plan phase 3 part_1-v2_4_05072013
 
Team viewer7 manual_meeting_en
Team viewer7 manual_meeting_enTeam viewer7 manual_meeting_en
Team viewer7 manual_meeting_en
 
Ostrander_Project_Final_Report
Ostrander_Project_Final_ReportOstrander_Project_Final_Report
Ostrander_Project_Final_Report
 
B7.2 a1353-ra platform commissioning solaris 2.6
B7.2 a1353-ra platform commissioning solaris 2.6B7.2 a1353-ra platform commissioning solaris 2.6
B7.2 a1353-ra platform commissioning solaris 2.6
 
MSc_Dissertation
MSc_DissertationMSc_Dissertation
MSc_Dissertation
 
Capturing Knowledge Of User Preferences With Recommender Systems
Capturing Knowledge Of User Preferences With Recommender SystemsCapturing Knowledge Of User Preferences With Recommender Systems
Capturing Knowledge Of User Preferences With Recommender Systems
 
Smith randall 15-rolling-element-bearing-diagnostics-cwu
Smith randall 15-rolling-element-bearing-diagnostics-cwuSmith randall 15-rolling-element-bearing-diagnostics-cwu
Smith randall 15-rolling-element-bearing-diagnostics-cwu
 
project Report on LAN Security Manager
project Report on LAN Security Managerproject Report on LAN Security Manager
project Report on LAN Security Manager
 
60950106 basis-latest-till-interview-questions
60950106 basis-latest-till-interview-questions60950106 basis-latest-till-interview-questions
60950106 basis-latest-till-interview-questions
 
Laparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex Tegzes
Laparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex TegzesLaparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex Tegzes
Laparoscopic Semi-Automatic Suturing System Overview Oct 16 2016 by Alex Tegzes
 
Stacy Fileccia TW Portfolio 2016
Stacy Fileccia TW Portfolio 2016Stacy Fileccia TW Portfolio 2016
Stacy Fileccia TW Portfolio 2016
 
CFC_Egress_FPGA_HWSpec_V1.0
CFC_Egress_FPGA_HWSpec_V1.0CFC_Egress_FPGA_HWSpec_V1.0
CFC_Egress_FPGA_HWSpec_V1.0
 

Fackrell_S_s1400430_CT4017_Report_Group_2

  • 1. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 University of Gloucestershire CT 4017: Introduction to Software Development Assignment Object Detection Software: Version 2 Fackrell,Sean 4/29/2015
  • 2. Contents Table of Figures............................................................................................................................ 3 Table of Tables............................................................................................................................. 3 Introduction:................................................................................................................................ 4 Analysis Phase: Reflections on Current Software: ...........................................................................4 Mind-Map................................................................................................................................ 5 Risk Analysis - Software Version 2.............................................................................................. 7 Development Phase...................................................................................................................... 8 Network Diagram:................................................................................................................... 10 Development Phase Reflection................................................................................................ 11 Improvement recommendations- Future Software Versions...................................................... 12 Software Testing & Verification Phase.......................................................................................... 13 Program Inspection................................................................................................................. 14 Black Box Testing:................................................................................................................... 14 White Box Testing:.................................................................................................................. 18 Software Quality Attributes Reflection..................................................................................... 22 Software Profilingin MATLAB.................................................................................................. 24 Group Evaluation........................................................................................................................ 24 References................................................................................................................................. 25 Appendix:................................................................................................................................... 26 Appendix 1: Software Version 1 Issues:.................................................................................... 26 Appendix 2: Development Mind-Map....................................................................................... 27 Appendix 3: Software v1 Data Flow Diagram. ........................................................................... 28 Appendix 4: Software v1 Finite State Diagram. ......................................................................... 29 Appendix 5: Software v2 Finite State Diagram. ......................................................................... 30 Appendix 6: Gantt Chart.......................................................................................................... 31 Appendix 7: Network Diagram................................................................................................. 31 Appendix 8: Scenario Testing................................................................................................... 32 Scenario 1: Load image - select colour- detect objects.......................................................... 32 Scenario 2 (From Webcam) Capture Image, Select Colour, Detect Objects.............................. 33 Secnareo 3 Initiate Live Webcam Feed.................................................................................. 35 Scenareo 4: Select Colour - Load Image – Detect Objects....................................................... 36 Scenareo 5 : Capture image From Webcam, Select Colour, Detect Objects.............................. 37 Scenario 6: Select Colour, Capture from webcam, Detect objects........................................... 39 Appendix 9 Black Box Testing Images:...................................................................................... 41
  • 3. Appendix 10: Software Version History .................................................................................... 42 Appendix 11: Component Testing: ........................................................................................... 43 Appendix 12 Hardware/System & OS Compatibility Testing....................................................... 44 Appendix 13 Software Problems & Solutions............................................................................ 45 Appendix 14 Software Profiling(PC Running Multi Applications)................................................ 46 Appendix 15 Software Profiling(PC Running Just MATLAB)........................................................ 47 Table of Figures Figure 1: Development Mind-Map.................................................................................................5 Figure 2: Data Flow Diagram, Software v.1..................................................................................... 5 Figure 3: Finite State Machine Diagram, Software v.1.....................................................................6 Figure 4: Finite State Machine Diagram, Software v.2.....................................................................6 Figure 5: The Scrum Process..........................................................................................................8 Figure 6: Gantt chart................................................................................................................... 10 Figure 7: Network Diagram.......................................................................................................... 10 Figure 8: Detect and Count Black Objects from Webcam Snapshot................................................ 13 Figure 9: Black Box Testing.......................................................................................................... 15 Figure 10 Colour Pickers Example ................................................................................................ 15 Figure 11 Camera Capture:.......................................................................................................... 16 Figure 12 Identify Objects in Video Feed ...................................................................................... 16 Figure 13: Coloured object detection in picture............................................................................ 16 Figure 14: Object Detectionin Video............................................................................................ 17 Figure 15 Jpeg Limitation ............................................................................................................ 26 Figure 16 DFD (Large Image)........................................................................................................ 28 Figure 17 Finite State Machine v1 (Large Image)........................................................................... 29 Figure 18 Finite State Machine v2 (Large Image)........................................................................... 30 Figure 19 : File types supported (Large Image).............................................................................. 41 Figure 20 Software Profiling (Multiple Applications) ..................................................................... 46 Figure 21 Software Profiling (PC Running Just MATLAB)................................................................ 47 Table of Tables Table 1 SWOT Analysis Table.........................................................................................................4 Table 2 Risk Analysis (Software Version2)....................................................................................... 7 Table 3 Team Role Breakdown ......................................................................................................9 Table 4 Scenario Testing.............................................................................................................. 13 Table 5 White Box Testing (Table 1)............................................................................................. 18 Table 6 White Box Testing (Table 2)............................................................................................. 19 Table 7 White Box Testing (Table 3)............................................................................................. 20 Table 8 White Box Testing (Table 4)............................................................................................. 21 Table 10 Software Quality Attributes........................................................................................... 23 Table 9 Component Testing......................................................................................................... 43
  • 4. Introduction: This report will cover the development lifecycle for our updated software, including reflections on the management process, SWOT analysis, work breakdown, Gantt chart, a description of our adopted approach, DFD and Finite state machine diagrams. In addition, it will also cover the detailed requirements of our updated software, explanation of the software implementation, testing methods and a reflection on the overall development process. Analysis Phase: Reflections on Current Software: After taking a couple of weeks to thoroughly analyse the current software provide on the Introduction to Software development module, as a team we came to a consensus as to the identifiable strengths and inherent weaknesses in the current software, and developed a SWOT analysis chart to highlight the Strengths, Weaknesses, Opportunities and Threats. (Screenshots highlighting some of the functional issues are available in Appendix 1) Strengths  Analyses images quickly.  Compact piece of software.  Functions as intended.  Legacy software support.  Pre-Coded.  Easy to modify to add additional functionality.  Free (Creative commons license).  Simple user interface.  Detection of specific green shade  Any Image can be imported. Weaknesses  Can only identify one shade of green.  Only recognises still images.  Only detects a single object.  Only accepts .JPG and .PNG files.  Program gets stuck if no object is detected.  Does not detect shape.  Requires MATLAB installation to run.  Only allows images from file to be processed; does not allow images to be taken directly from camera.  User requires MATLAB license to run the program. Opportunities  Program could be utilised in professional applications - e.g. Number plate recognition.  Could be adapted to find objects within videos.  Allow webcam images to be processed  Modification for Multiple objects.  Could be modified to identify different colours.  Keyboard shortcuts.  Enable image search from within the user interface (e.g. Google images)  Enable user to change detected colour / hue from the interface (GUI). Threats  Advanced systems such as Hawkeye.  Hardware failures / configuration.  Software failures.  No Security whatsoever - e.g. User could potentially modify code unknowingly.  Software is not copyrighted.  Potential copyright breach against other similar software e.g. Hawkeye. Table 1 SWOT Analysis Table.
  • 5. Mind-Map With these factors in mind, the team brainstormed what improvements we could make, and what extra functionality could be added to the software and a mind map was drafted (Straub, 2015) to guide our development process, a larger view of which is available in Appendix 2. Figure 1: Development Mind-Map With these items in mind, the team drafted a Data Flow Diagram to understand how the software currently directs and handles the flow of data prior to any modifications being made, a larger version is available in Appendix 3. Figure 2: Data Flow Diagram, Software v.1
  • 6. Additionally, a Finite State Machine Diagram (FSMD) was drafted to understand all the states that the current software could possibly encounter during normal use, a larger version of which is available in Appendix 4. Figure 3: Finite State Machine Diagram, Software v.1 A FSMD was then drafted for our mind mapped ‘improved’ version of the software we planned to develop, a larger version of which is available in Appendix 5. Figure 4: Finite State Machine Diagram, Software v.2
  • 7. Further risk and functionality analysis of the proposed software was undertaken utilising the MoSCoW method as recommended, the team reached consensus and the agreed analysis is included below: The updated software version 2: M: Must have the ability to detect different coloured objects. M: Must be able to change the colour to be detected by the software. M: Must be able to detect more than one object in the selected image. M: Must be able to detect a different object each time (if identical parameters are set multiple times). S: Should have an indicator that the program is running. S: Should be able to adjust colour via a colour picker. S: Should be able to add parameters for an additional object using a button. C: Could have the ability to use keyboard shortcuts to navigate around the software. C: Could add functionality to detect in video. C: Could show hex/RGB values for selected colours. C: Could count number of highlighted objects. C: Could allow the user to capture images from a USB webcam. C: Should have a function to terminate the program after a specified time if it freezes/hangs. W: Will not have the functionality to detect moving objects in video, but would like to add this in the future. W: Will not have the functionality to search via Google or Bing images but this is a possibility for a future iteration. W: Will not be able to search by shape. Risk Analysis - Software Version 2 Risk Severity Likelihood Owner Action User accidently edits code. High. Low. Ensure code is read only in MATLAB. Make all functions available from GUI to prevent need for editing the code. Competitors using the software’s code. High. Medium? Apply for Patent on software. User could be colour blind. Medium. Low. Text identifier for red, green and blue colours. Software might hang during image analysis. Medium. Medium. Team Ensure thorough Debugging. Software freezes during analysis. High. Medium. Build in a failsafe that terminates the process after a certain amount of time. Table 2 Risk Analysis (Software Version2)
  • 8. Development Phase Upon completion of the analysis phase we had to choose a Software Development Life Cycle (SDLC) method, after careful consideration we chose the SCRUM method for a number of reasons.  Suits our schedule - meeting each Wednesday in lecture.  Group most familiar with this SDLC - due to studying in a different module.  Easy to attach timescales to tasks - keeps project moving quickly.  Mistakes can be quickly rectified due to fast moving nature of Scrum.  Works well with a small team - communication is easier and clearer in a smaller group.  Simpler to make changes - small sections of work are done before being assessed, if changes need to be made there won't be a huge set back.  Lightly controlled but very visible method of development.  Widely used in industry as a development tool by companies such as PayPal, Siemens Healthcare and Yahoo (Mountain Goat Software, 2015).  Promotes constant evolution of a project to meet end user / customer requirements. However, we do acknowledge there are some drawbacks of using the scrum model, these we identified as:  Difficult to mark a completion date when project is ever evolving and when changes are being made to previously completed sections of the project.  Absence of a team member can drastically setback the project…  Prone to ‘Scope Creep’ if there is not a definite completion date, as additional software functionality may be demanded by the project stakeholders.  If a task is poorly defined then estimated costs in both time and financial aspects of the project will lack accuracy.  Requires one team member to assume the role of scrum master. Figure 5: The Scrum Process (CPrime, 2015) As we had chosen scrum as our development method, the individual roles were broken down and apportioned accordingly. The main workload being broken down into four deliverables to spread the workload, but also to foster a little light hearted competition between the team members particularly with the code development, this made the development more fun than a chore.
  • 9.  Deliverable 1: Define colours using variables through UI.  Deliverable 2: Colour picker: Code line to be added into current software and tested.  Deliverable 3: Detect Object in Video Stream  Deliverable 4: Remove object. Who? What? Why? How? When? Sean Fackrell SCRUM MASTER Regular review of progress. Set sprint targets. Deliverable 1. Deliverable 3. Due to agile approach to the project - scrum master tasks. To ensure team has clear understanding and development is progressing adequately and efficiently. To spread workload of deliverable 1. & 3. Arranging meetings and reviewing progress, documenting progress. Using Google Docs software. Using MATLAB software. Throughout Project (please refer to Gantt chart). Matt Evert Deliverable 1. Deliverable 4. Regular edits to development report. Help video editing. B-Roll Filming. To spread workload of deliverable 1. To spread workload of deliverable 4. To ensure up to date information and to add any changes to documentation. Has access to appropriate recording equipment and editing software. Using MATLAB software. Using Google Docs software. Using Adobe Premiere Software. Throughout Project (please refer to Gantt chart). Joss Benyon Filming & editing assignment video. Deliverable 1. Deliverable 3. Has access to appropriate recording equipment and editing software. To spread workload of deliverable 1. To spread workload of deliverable 3. Regular documentation of meetings and software development process. Using MATLAB software. Using Adobe Premiere Software. Throughout Project (please refer to Gantt chart). James Conlan Deliverable 1 Deliverable 2. Has conducted previous research, therefore has knowledge for task. To spread workload of deliverable 1. To spread workload of deliverable 2. Using MATLAB software. Throughout Project (please refer to Gantt chart). Tyler Powell Deliverable 3. Deliverable 4. To spread workload of deliverable 3 & 4. Using MATLAB software. Throughout Project (please refer to Gantt chart). Table 3 Team Role Breakdown
  • 10. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 A Gantt chart (Larger version available in Appendix 6) and Network Diagram was developed to guide our development process. Figure 6: Gantt chart Network Diagram: A Design Project B Define colour Code C Test ‘Define Colour Code’ D Colour Picker Code E Testing of ‘Colour Picker Code’. F Add Object Code G Testing Add Object Code H Remove Object Code I Test Remove Object Code J Final Product Testing K Video Recording L Video Editing M Video Publishing N Project Documentation. (Larger version available in Appendix 7) Figure 7: Network Diagram
  • 11. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 DevelopmentPhase Reflection. As a development team, we made extensive use of the MATLAB video tutorials (Mathworks, 2015) and knowledge base (Mathworks, 2015), plus other websites and books (Wiley, 2015) which initially resulted a re-writing of a major part of the original software code and reformatting of the Graphical User Interface (GUI) prior to addition of extra functionality deliverables. This involved research into implementing a colour picker into the GUI, limiting the input of still images to certain file types, (The Motivated Engineer, 2013) removing excess code and enabling a colour range to be implemented so subtle colour variations in imported images could be accommodated by the software (MATLAB Central, 2011). In addition, the team also added detecting multiple objects in a still image (Mathworks, 2010) and returning a count of the detected objects. Other deliverables that were developed involved more additional research. Development subjects such as how to test a webcam and set formatting of the image (Mathworks, 2015), developing a way to capture snapshots from webcam & enabling webcam display in the GUI (A HOW TO, 2012) and creating custom message/ error notifications within the GUI (Mathworks, 2015). The object detection in live video feed deliverable proved to be troublesome to develop with a number of minor issues being encountered, but fortunately Mathworks site had of information on Image acquisition (Mathworks , 2015) Object detection (Mathworks, 2015). Our SCRUM method of development proved to be so much more efficient than we had initially expected, this was due to the organisation, planning, division of tasks and responsibilities within our team. This lead to the completion of our version 2 software well before the initial deadline as specified in the Gantt chart. Rendering it obsolete as development of the project proceeded, however this is clearly a positive due to the determination of our team to get a reliable working piece of software completed before our planned target date, thus enabling sufficient time for testing, verification and validation. However it was not all plain sailing, we did encounter a few problems during development, namely we all had subtly different packages installed on our home computers meaning that verification of functionality meant that one person might not be able to test the code developed by someone else. This minor issue would be addressed during the testing phase of the software to ensure a robust piece of software is developed We could not find a way to implement the colour picker into the live video stream as it transpired that MATLAB handles video and still images in a slightly different manner however; it does integrate with the GUI seamlessly. We attempted to enable a function to select a webcam within the GUI (as it is common practice that laptops tend to have Webcam Software and Hardware Webcam on separate inputs), but we found it made to code unstable to the point of crashing any pc it was tried on.
  • 12. Improvementrecommendations-Future Software Versions One thing that could be improved upon in future versions of the software is the layout of the GUI. For example, drop down menus could be implemented as a means of switching between functions such as video and image detection, instead of the individual buttons that currently reside within the GUI. This would help to streamline the software and improve its usability, as drop down menus for inputs are a familiar feature in various other pieces of software. User defined colour selection for the video object detection could also be added to improve the functionality of the software as it currently only detects red objects, this can be changed within the code but not yet within the GUI. Including this in a later software version would allow a wider range of potential users to make use of the software. Fine Tuning the object colour detection for images could also advance the software, as it would allow for more accurate colour detection. Allowing the user to select which webcam input they would like to use from a drop down menu would help to enhance the software as currently; the software will default to the first camera connected to the computer. Allowing the user to choose will further add to the functionality of the software, therefore making it a more desirable product to consumers. Adding more compatible platforms such as Linux, Mac OS and potentially mobile OS’ (Android, Windows Phone) would allow more users to utilise the software.
  • 13. Software Testing & Verification Phase. Figure 8: Detect and Count Black Objects from Webcam Snapshot. The initial basic testing phases after each piece of code was written and integrated into MATLAB with version control being applied to each iteration of the software. (See Appendix 10). This informal testing was split into scenarios and the results of these initial tests are below, screen shots are included in Appendix 8 Scenario Scenario test Test Success? Scenario 1 Load image - select colour - detect objects Yes Scenario 2 Capture image from webcam - select colour - detect objects Yes Scenario 3 Initiate live webcam feed Yes Scenario 4 Select colour - load image - detect objects Yes Scenario 5 Capture image from webcam - select colour - detect objects Yes Scenario 6 Select colour - capture image from webcam - detect objects Yes Table 4 Scenario Testing Further more rigorous testing was undertaken and is included under Program Inspection, Black Box Testing, White Box Testing, Component testing (See Appendix 11) and Hardware system and operating System Testing (See Appendix 12)
  • 14. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Program Inspection Duringthe program inspectionphase anautomatedinspectionwasperformedthroughMATLAB, alongwitha manual check toconfirmif any of the potential issuesdetectedare actual issuesorjust advisories,anythingwe deemednota faultjustandadvisorywassuppressedthroughthe MATLAB software environment. Black Box Testing: The software requirements laid out for the project were:  Must run and provide full functionality on Windows 7 & 8/8.1 PC’s  Must allow user to load in any image in PNG, JPG or GIF formats to use with the object detection function.  Must allow user to choose/define colour for object detection withinan image.  Must allow user to capture from webcam (With MATLAB generic o/s device driver pack installed)  Must allow live tracking and count of detected objects.  Must be able to detect more than a single object. We know that our software is able to run on computers running on Windows 7 and 8/8.1, as these were the primary operating systems used by the team during the software development phase. The program runs with its full functionality on this operating system, it will load in images, detect objects within the image, capture images from a camera, capture video from the camera and detect objects within the video. All of the white box testing was completed using the computer with the above specifications using Windows 7 Ultimate. (Black Box Testing screen shots are available in Appendix 9)
  • 15. Figure 9: Black Box Testing Whilst creating the software we came to the realisation that the user would be able to load in any file type, even files that are not image files through the file browser by changing the file types that the user could see to “All files”. To resolve this we took out the ability for the user to change the type of file type they were able to see in the file browser, now the software only allows them the user to see image files (.JPG, .JPEG, .PNG and .GIF). See Appendix 9 for Screen shots. The ability for the user to be able to choose which colour they would like to find within an image has been implemented into the software. The user can choose from a predefined palette of colours: Also the user can select the “More Colours…” option to have more colours to choose from using RGB, HSV, HSL and CMYK values: Figure 10 Colour Pickers Example Capturing from an internal or external camera is also possible with our software, the user just has to click on the red ‘Capture’ UI button and the software will take a picture from the camera that is available.
  • 16. : Figure 11 Camera Capture: However, there was a bug that stops you from finding objects within the picture after capturing it, but this was resolved with a simple change in a line of code. The software is capable of capturing a live feed through a camera, if I sit still it will detect a few objects but then if I raise my hand into the view of the camera it will count more objects: Figure 12 Identify Objects in Video Feed At this moment in time however we have not been able to make the software detect certain colours in the video feed as the detection method is different for video and still images, this would be implemented in future versions of the software. The software is also capable of detecting multiple objects within an image and through the live stream; here is an image of the software detecting five blue dots in an image: Figure 13: Coloured object detection in picture
  • 17. The software is capable of detecting coloured objects however, the colour you choose to find has to be almost exactly the same RGB values as the colour you are looking for meaning that sometimes the software becomes redundant in a way, as you have already found the colour you are looking in the image yourself. You can see that the software has highlighted the five blue dots by placing a star over them and you can see that the ‘Objects detected’ counter is at five. Here is an image of the software detecting multiple images through a live stream: Figure 14: Object Detection in Video. The software has detected my hand and finger tips as well as other things so it is capable of detecting objects however as mentioned earlier we have not been able to implement the ability to find objects of a certain colour within the software. Our software has been able to meet all of the requirements that we have set out for it but there is still room to fine tune the program. We may very well need to make the colour detection less sensitive so that the user can just select a generalised colour from the colour palette instead of having to put in a very exact colour. There are also some bugs to do with the software stalling after performing certain actions, as mentioned earlier there is an issue where the user is not able to detect objects within an image that is not captured as for some reason the ‘Find Objects’ button is greyed out and cannot be clicked.
  • 18. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 White Box Testing: Table 5 White Box Testing (Table 1)
  • 19. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Table 6 White Box Testing (Table 2)
  • 20. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Table 7 White Box Testing (Table 3)
  • 21. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 17. 10/04/20 15 FindObjectApp SelectColour The user should be able to choose a colour to find before loadingin any images. Openthe colour palette byclicking the ‘SelectColour’UI button,selecta colourand click ‘Ok@ Openthe colourpalette before loadinginanimage, capturingan image or capturinga live feedand close the colourpalette Pass N/A Program runsas normal and the usercan go back to the colourpalette toselecta differentcolour. 18. 16/04/20 15 FindObjectApp SelectColour Image Object/Colour Detection Attempttofind an objectina 5x5px image Test_Image_6.png whichhas a height and widthof 5 pixels Selectcolourblack fromthe colour palette ‘FindObjects’UI button Load inTest_Image_6 whichhas a heightand widthof 5 pixels,selectthe colourblackfrom the colourpalette andpress the “FindObjects”UI button Fail Trivi al The software will state that there isno objectof that colourin the image. 19. 16/04/20 15 FindObjectApp SelectColour Image Object/Colour Detection Attempttofind an objectina 6x6px image Test_Image_7.png whichhas a height and widthof 6 pixels Selectcolourblack fromthe colour palette ‘FindObjects’UI button Load inTest_Image_7 whichhas a heightand widthof 6 pixels,selectthe colourblackfrom the colourpalette andpress the “FindObjects”UI button Pass N/A It seemsthatthe software can onlydetectobjectswithin imagesthatare more than 5x5 pixels. 20. 16/04/20 15 FindObjectApp SelectColour Image Object/Colour Detection The software shouldbe able to findan objectina 16000x16000px image Test_Image_8.png Selectcolourfrom the colourpalette, Clickthe “More Colours”option,go to “RGB” and use these values,R:82 G:153, B:205 Thenclickthe ‘Find Objects’UI button Load Test_Image_8.png intothe software,which has a heightandwidthof 16000 pixel Selectcolourfromthe colourpalette,Clickthe “More Colours”option,go to “RGB” and use these values,R:82 G:153, B:205 Thenclickthe ‘Find Objects’UI button Pass N/A The software wasable to find 3 objectswithinthisimage howeverittooka considerably longtime comparedtothe previousimages.The software was alsotakingupmore systemresourceswhilst findingobjectswithinthis image as otherapplicationson the pc run much more slowly than usual. Table 8 White Box Testing (Table 4)
  • 22. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Software Quality Attributes Reflection Quality Attribute Reflection Safety The safety of the software is not a major priority for this project, although if it were to go into the market this would be an issue that needed to be addressed. Security The security of the software was a key priority when designing and developing the idea for version 2. For example, our software is fully compatible with the latest versions of Windows, this means that Network administrators on networks using Windows 7 and up as their primary OS can lock the software so that only certain users can access it. This can prevent misuse of the software by unauthorised users. A feature that could be added in later versions of the software is password support, so that the user who installs the software can set a password to open it, meaning they are then the only ones who can access it. No DRM (crack prevention) at this stage, however this would be implemented at a later stage in development. Reliability The software is relatively reliable as almost all of the time it will perform the function asked of it. However, some functions such as the Hideo object detection can cause problems, for example if the user selects video and then wants to select another option they are sometimes required to exit out of the software and restart it in order to choose the other option. On the other hand, most of the other functions perform just about flawlessly, the image colour detection will always detect the colour detected (within range) and the webcam capture will always take a picture using the user's webcam, provided it is connected and operational. Robustness As can be seen from the prior stress tests, the software is clearly quite robust; as it managed to load most of the sample images, we tested and detect coloured objects without a hitch. Understandability Our software is quite simple to navigate and understand. For example, each function has its own unique button to start it, this means the user knows exactly what they are action they are performing when they press the button. In addition, during the operation of a function, the relevant buttons will grey out to let the user know the software is still running the function and to prevent the user from trying to start the function again. Completion messages also make the software much clearer, as this gives the user a distinct answer to whether the software has finished the function it was performing or not. Testability Testing the software was moderately simple to do due to the modular nature of the code. Each main function is split within the .m document using breaks. This allows for easy error detection and fixing, as well as making the process of testing simpler. Adaptability The software could be adapted to any form of object and colour detection within images or live video feeds. One of the examples of this
  • 23. we came up with would be the ability to track snooker balls to keep track of the amount of points that are on the table, this would be done by tracking multiple different coloured objects at a time. Modularity The software is quite modular as it allows for the easy interchangeability of functions. Each function's code is separated apart with 2 ‘enters’ in the .m file, as well as having a comment above the function stating its use to ensure the reader knows the start and end of each function. To make the software more modular when could separate each function into its own .m document to increase the clarity of where each function begins and ends. Complexity Our software compared to the original version is a much more complex. We have added webcam integration and support for live video. However, we have simplified the file structure by combining all of the code into a single “.m” file. Portability Our software could be considered very portable due to its small file size of (478kB) and also due to the fact that it is a standalone .exe which can be run from any location on the PC, such as a USB Flash Drive - allowing users to take the software with them and transfer it between PC’s easily. Usability The software comes with a working GUI that makes using this software very simple. There are UI buttons to load images, select colour to detect, find objects within an image, capture images from a connected camera, capture a live feed, and detect objects within that live feed. Reusability This is evident in our software where portions of the code have been used to run multiple functions within the software. Efficiency Our software is relatively efficient as it uses a low amount of system resources. This can be seen in the ‘Hardware testing’ table, as the software ran well on both high end computers all the way down to lower end PC’s, including PC’s over 5 years old. Learnability Our software would not require training for a user to be able to operate it. A short explanation of what the software is capable of would be adequate. The GUI would help the user to understand what they can do with the software as “Load Image” and “Video” are quite self-explanatory and would be interpreted easily by the user. Table 9 Software Quality Attributes
  • 24. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Software Profiling in MATLAB It was discovered through MATLAB profiler that running our software on a laptop with other applications running (other than MATLAB) meant our software would open in less than 3.5 seconds and detect objects within a couple more seconds (See Appendix 14). Running it on a laptop running only the MATLAB software reduced the time needed to open the application to less than 0.25 seconds and detect the objects within an image reduced to less than one second. (See Appendix 15) Group Evaluation Our group worked very efficiently and cooperated well during the planning, development and testing stages of our development cycle for the software. We discovered throughout the development that we had we a good balance of skills, this helped in the efficient progress of the project. Google Drive also allowed for easy collaboration, version management (Appendix 10) and sharing of files during the conceptual, logical and physical stages of development. In addition, thanks to our team members utilising code comments appropriately, it kept everyone in the loop of what the software does and how much it had progressed since its last update. To improve our group development process we could have ensured that we all had the same toolboxes for MATLAB installed on our computers, this would ensure that the software would work correctly on everyone's computers every time. Now that the development stage has finished we feel that we could have potentially made some additions to the software but these were omitted due to tome constraints, such as multiple colour detection within video. Some of the extra additions of the software could have been planned more thoroughly; however, this did not affect our workflow too much. Overall, we feel that our group worked well together and that the development of our software went very smoothly.
  • 25. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 References A HOW TO, 2012. ahowto.net. Available at:http://www.ahowto.net/matlab/preview-and-capture-webcam-into-an-axes/ [Accessed13thMarch 2015]. CPrime,2015. CPrime.com(WhatisAfile, Whatis Scrum). Available at:https://www.cprime.com/resources/what-is-agile-what-is-scrum/ [Accessed20thFebruary2015]. Mathworks, 2015. MathworksDocumentation (Aquisition Using Any Hardware). Available at:http://uk.mathworks.com/help/imaq/acquisition-using-any-hardware.html [Accessed12thMarch 2015]. Mathworks,2010. MATLABNewsgroup (detecting objects). Available at:http://uk.mathworks.com/matlabcentral/newsreader/view_thread/294702 [Accessed9thMarch 2015]. Mathworks,2015. MAthworks(Documentation). Available at:http://uk.mathworks.com/help/supportpkg/usbwebcams/ug/acquire-images-from- webcams.html?refresh=true [Accessed3rdMarch 2015]. Mathworks,2015. MathworksDocumentation (Function Basics). Available at:http://uk.mathworks.com/help/matlab/function-basics.html [Accessed7thMarch 2015]. Mathworks,2015. MathworksDocumentation (Motion Based MultipleObjectTracking). Available at:http://uk.mathworks.com/help/vision/examples/motion-based-multiple-object-tracking.html [Accessed12thMarch 2015]. Mathworks,2015. MathworksDocumentation (msgbox). Available at:http://uk.mathworks.com/help/matlab/ref/msgbox.html [Accessed17thMarch 2015]. Mathworks,2015. Youtube.com(MatlabChannel). Available at:https://www.youtube.com/channel/SWxoiS5i6TC1I [Accessed1stMarch 2015]. MATLAB Central,2011. Mathworks.com. Available at:http://uk.mathworks.com/matlabcentral/answers/15389-how-to-disable-a-button-later-in-the- program-on-gui [Accessed12thMarch 2015]. MountainGoat Software,2015. Maountain GoatSoftware(ScrumOverview). Available at:http://www.mountaingoatsoftware.com/agile/scrum/overview [Accessed1stMarch 2015]. Straub, I., 2015. Buildyourmap.com. Available at:http://www.buildyourmap.com/ [Accessed1stMarch 2015]. The MotivatedEngineer,2013. You-Tube.com. Available at:https://www.youtube.com/watch?v=TG3OWTd5j2w [Accessed10thMarch 2015].
  • 26. Appendix: Appendix 1: Software Version 1 Issues: Allows precise detection of green shade, but colour cannot be changed. Anyimage can be imported,aslongas image isin the MATLAB program file. But is limited to jpg Figure 15 Jpeg Limitation
  • 27. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 2: DevelopmentMind-Map.
  • 28. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 3: Software v1 Data Flow Diagram. Figure 16 DFD (Large Image)
  • 29. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 4: Software v1 Finite State Diagram. Figure 17 Finite State Machine v1 (Large Image)
  • 30. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 5: Software v2 Finite State Diagram. Figure 18 Finite State Machine v2 (Large Image)
  • 31. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 6: Gantt Chart. Appendix 7: Network Diagram.  A Design Project  B Define colour Code  C Test ‘Define Colour Code’  D Colour Picker Code  E Testing of ‘Colour Picker Code’.  F Add Object Code  G Testing Add Object Code  H Remove Object Code  I Test Remove Object Code  J Final Product Testing  K Video Recording  L Video Editing  M Video Publishing  N Project Documentation.
  • 32. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 8: Scenario Testing. Scenario 1: Loadimage - select colour - detect objects Load Image: Select Colour:
  • 33. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Detect Objects: Scenario 2 (FromWebcam) Capture Image, Select Colour, Detect Objects. Capture Image
  • 34. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Select Colour: Detect Objects:
  • 35. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Secnareo 3 Initiate Live WebcamFeed. Initiate live webcam feed (Red coloured objects are detected & counted automatically upon running the function):
  • 36. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Scenareo 4: Select Colour - LoadImage – DetectObjects. Select Colour: Load Image:
  • 37. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Detect Objects. Scenareo 5 : Capture image FromWebcam, SelectColour, Detect Objects. Capture Image from Webcam
  • 38. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Select Colour: Detect Objects
  • 39. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Scenario 6: Select Colour, Capture fromwebcam, Detect objects. Select Colour Capture From Webcam
  • 40. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Detect Objects
  • 41. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 9 Black Box Testing Images: Figure 19 : File types supported (Large Image)
  • 42. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 10: Software VersionHistory v1 Original Software. v2 Colour detection added (without ranges). v2.0.1 Colour detection with ranges. v2.1 Webcam capture function added. v2.11 Webcam displays within same axes as ‘Load Image’ function. v2.12 Object detection counter added for images. v2.13 Custom ‘Successful image capture’ notification added to webcam function. v2.14 GUI clean v2.2 Colour detection in video added (red colour only at this time). v2.21 Video colour detection GUI implemented. v2.22 Object detection counter added for video. v2.23 Video detection bug fixes and improvements.
  • 43. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 11: ComponentTesting: Component Problemswith component Pass? Webcam Image Capture None. Pass. Image Load None. Pass. Image Object/Colour Detection Can occasionally detectmultiple objects as one, however this problem is in the minority. Pass - needs tweaking. Video Object/Colour Detection Can feel laggy, however the software was programmed as such to reduce the load strain on lower end systems. Pass. SelectColour None. Pass. Table 10 Component Testing
  • 44. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 12 Hardware/System & OS Compatibility Testing. Machine Performance Rank Computer’s CPU HDD/SSD Operating System Problems with software Pass? High AMD Phenom ii x6 1055t - Hexacore Processor @ 3.8GHz 60GB SSD Windows 8.1 64bit None Pass. Medium Intel i7-4500U - Dual Core Processor @ 2. 2GHz 120GB SSD Windows 8.1 64bit None Pass. Medium Intel i5-2400 - Quad Core Processor @ 3.1GHz 1TB HDD Windows 7 Enterprise 64bit Crashed once when opening live video feed, however this could clearly be an anomaly as it only happened once during the testing. Pass. Medium AMD A10-5750M - Quad Core APU @ 2.5GHz 1TB HDD Windows 8.1 64bit None. Pass. Low Intel i5-3317U - Dual Core Processor @ 1.7GHz 60GB SSD Windows 8 64bit None. Pass. Low AMD A6 5400k - Dual Core APU @ 3.6GHz 500GB HDD Windows 7 Home 32bit None, however software was marginally slower to load the camera functions on this machine - This may be due to the lower grade processor and slower HDD. Pass.
  • 45. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 13 Software Problems & Solutions Problem Solution All tile types could be uploaded when using ‘Image Load’ function causing the software to crash. Added a description in code for acceptable file types (JPG, JPEG, GIF, PNG). Could not get the webcam to appear on the same axes as the ‘Load Image’ function. Added a line of code telling the program to override what was currently on the axes to display the webcam capture. Could not determine how to display a preview of the webcam for image capture before allowing the user to capture a picture. Not found. Could be implemented in a later software version. Trouble resolving count of detected objects in video stream. Modified lines of code to enable count. Integration of the colour picker functions to choose detected colour in a video stream. No solution found as of the time of writing. Count does not return to zero if detected objects are removed from webcams field of view. Solution still being sought as of time of writing. Cancelling the image load function causes the software to keep the load image button greyed out, thus not allowing the user to load an image until software is restarted.
  • 46. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 14 Software Profiling (PC Running MultiApplications) Figure 20 Software Profiling (Multiple Applications)
  • 47. Sean Fackrell s1400430, Report for Assignment of Module CT4017, Group Number 2 Appendix 15 Software Profiling (PC Running JustMATLAB) Figure 21 Software Profiling (PC Running Just MATLAB)