Professional Documents
Culture Documents
March 1, 2010
PART 1 – Requirements
1. Business Requirement
The “Blueberry” hand-held device must meet consumer demand in the burgeoning market for
portable, easy to use, reliable, wireless access to multimedia content on the go. It must provide
wireless transfer of multimedia files from a Personal Computer to a Blueberry device, it must allow
files to be saved on the Blueberry for later viewing and listening, and it must incorporate a high-
end, high-resolution colour display and graphical user interface.
The “Blueberry” must allow reliable connectivity to a Personal Computer (“PC”) using Wi-Fi TM
(IEEE 802.11 wireless Ethernet) technology when it is in close proximity to (within 5 metres of)
the PC.
The “Blueberry” must allow browsing of the multimedia files located on the PC after a successful
Wi-Fi TM connection is made. This browsing must allow the Blueberry user to see what multimedia
files on the PC are available for viewing, listening, and copying.
The “Blueberry” must allow copying of selected multimedia files from the PC over the Wi-Fi TM
connection to a non-volatile storage medium (such as a compact flash card) on the Blueberry
device.
The “Blueberry” must allow playback of the multimedia files using a built-in JPEG decoder (for
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 1 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
images) and a MP3 decoder (for audio). Playback must be allowed during browsing of these files
while they reside on the “PC”, or after the Wi-Fi TM connection is terminated for the files copied to
the Blueberry.
The type and quantity of memory to be used as one of the hardware components of the
“Blueberry” graphics display, the underlying operating system platform software, the physical
dimensions of the display, and the need for two-dimensional (“2D”) or three-dimensional (“3D”)
graphics must be specified by the product management team before the software development
team can begin their work. The memory specifications – for both dynamic random access memory
(“DRAM”) and video memory - will determine the upper limits to specify in the software for
resolution and colour depth. The operating system platform - along with the requirement for 2D or
3D - will determine the available graphics software libraries to choose from. The physical
dimensions of the display will determine the font size(s) to be used, and the number of characters
and rows to be displayed horizontally and vertically.
4. Use Case
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 2 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
Hardware::PowerButton PlatformOS
+isOn : bool = false -isStartingUp : bool = false
+initiateStartUpSequence() : void -isShuttingDown : bool = false
+cutPowerToEverything() : void -keystrokeQueue
+pollModuleStatus() : int
PlatformOS::DisplayModule +launchModule() : void
-menuQueue +processKeystrokeQueue() : KeyboardKey
-statusBarQueue +forwardKeystroke() : KeyboardKey
-softKeyQueue +startupSequence() : bool
-moduleStatus : int +shutdownSequence() : void
Hardware +turnOnDisplay() : bool
«uses» +processMenuQueue() : bool
+processStatusBarQueue() : bool
+processSoftKeyQueue() : bool Hardware::Keyboard
+updateDisplay() : void
+turnOffDisplay() : void -key : KeyboardKey
+testDisplay() : bool +turnOnKeyboard() : bool
+transmitKeystroke() : KeyboardKey
+turnOffKeyboard() : void
+testKeyboard() : bool
Hardware::Display
-isVisible : bool = false 1 -Keyboard
-menu : Menu
-keys : SoftKey * -Key
1 -Display
-status : StatusBar
+showMenu() : void 0..* -SoftKey(s) Keyboard::KeyboardKey
-Display +hideMenu() : void 1 -faceValue : char
+showStatusBar() : void -internalValue : char
+hideStatusBar() : void Display::SoftKey -isShift : bool = false
+showSoftKey() : void -keyID : int -isCtrl : bool = false
+hideSoftKey() : void -isVisible : bool = false -isAlt : bool = false
-keyIcon -isCapsLock : bool = false
0..1 -Menu 1 -Display -keyDescriptiveText
-keyFunctionality : PlayModule
Display::Menu -keyXcoordinate : int
1 -StatusBar -keyYcoordinate : int PlatformOS::PlayModule
-isVisible : bool
= false -songFileQueue
Display::StatusBar -moduleStatus : int
+item :
MenuItem -isVisible : bool = false +processFileQueue() : void
-item : StatusBarItem +readFileFromStorage() : bool
1 -Menu
+passFileToDecoder() : bool
+updateDisplay() : void
+updatePlayStats() : void
1 -StatusBar +processKeystrokes() : void
* -Item
«uses»
Menu::MenuItem
-isVisible : bool = false
-itemIcon PlatformOS::Storage
-itemDescriptiveText
-partitionName
-itemFunctionality : PlayModule PlatformOS::MP3decoder
PlatformOS::JPEGdecoder -directoryName
-itemRelativeNumber : int
-Item -fileName -fileName
* -fileName
+playAudioFile() : void +readAudioFile()
+displayImageFile() : void +readImageFile()
StatusBar::StatusBarItem +writeAudioFile()
-isVisible : bool = false «uses» +writeImageFile()
-itemIcon
-itemDescriptiveText «uses» «uses»
-itemXcoordinate : int
-itemYcoordinate : int
Hardware::Speaker
Hardware::StorageDevice
Hardware::HeadphoneJack
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 3 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 4 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
The following assumptions are made about the organization and project for the purposes of
software estimation:
· The capabilities of the programmers working on this software are above average.
· Lots of memory will be available for this project.
· The CPU is fast and support lots of memory.
· The CPU used for this project is new to the company. Fortunately, the same development tools
can be used and the team is very familiar with the tools.
· Fortunately, the programming language will remain the same as before (in this case, the
language will be C).
· The project will be more complex that previous projects because new technology is incorporated
and newly written software from a new partner has to be incorporated.
First, calculate project total size in KLOC (thousands of lines of code) by adding up size of each
module:
Then, determine development mode, based on size of project, innovation requirements, deadlines
and constraints, and development environment to be used. I would classify the development
mode of this project as “semi-detached”. It is somewhat complex, neither large nor small, similar
to previous projects in that the same development language and tools are to be used, and the
deadlines and other constraints are not overly demanding.
Thirdly, identify the Cost Drivers for the overall project. The cost driver attributes that I would rate
as “not nominal” are the required reliability of the product (high), the turn around time of the
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 5 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
development environment (low), all personnel attributes (high), and the use of modern software
practices (very high). This produces the following chart of cost drivers:
Computer Attributes
TIME NOM – nominal 1 Required % CPU Usage
STOR NOM – nominal 1 Required % Memory Usage
VIRT NOM – nominal 1 Virtual Environment Volatility
Turn Around Time of Development
TURN L – low 0.87 Environment
Personnel Attributes
ACAP H – high 0.86 Analyst Capability
AEXP H – high 0.91 Applications Experience
PCAP H – high 0.86 Programmer Capability
VEXP H – high 0.9 Experience with Virtual Environment
LEXP H – high 0.95 Experience with Language
Project Attributes
MODP VH – routine use 0.82 Use of Modern Software Practices
TOOL NOM – nominal 1 Use of Tools
SCED NOM – nominal 1 Schedule
From this, the following can be calculated, based on the Intermediate COCOMO 81 Model, to
complete this project:
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 6 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
Assuming only one person is doing all the work on this project, and assuming this person has the
appropriate talent and training to competently complete each activity listed, the following table
shows the estimated amount of effort required to complete this project. The total of 101 person-
months is simply the sum of the estimated effort for each individual activity.
Total 101
Release 1.0
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 7 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
Release 2.0
Release 3.0
Release 4.0
Release 5.0
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 8 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
1. Requirements Specification
The Requirements Specification for the QMTest open source testing framework has been
completed, and concluded the following:
(a) The test framework shall support automatically execute test cases
(b) The test framework shall support organizing test cases into test suites
(c) The test framework shall support executing test cases on remote computers (ie. the test case
runs on a computer other than the computer that is running the test framework).
(d) The test framework shall support logging the results of each test case.
(e) The test framework shall support logging errors into an error log file, and logging results into a
results log file.
(f) The test framework shall automatically ensure all remote computers have the same set of test
cases to run.
(g) The test framework shall be able to run without any manual intervention (for example,
running at 3 am every morning to test a new software build).
(h) If any tests fail, then an optional email shall be sent to stakeholders informing them the test
failed.
(i) The test framework shall continue to run tests that are independent of previous tests that fail.
(j) The test framework shall not run any test that is dependent on a previous test that already
failed.
2. Component Analysis
3. Requirements Modification
QMTest will require the following modifications in order to fully meet the Requirements
Specification:
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 9 of 10
BCIT Computer Systems Technology
COMP 7081 Technical Issues in Software Development
Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________
(a) Automatic execution of test cases without manual intervention must be implemented.
(b) Automatic replication of test cases to all remote computers must be implemented.
(c) Automatic notification by email of failed tests must be implemented.
______________________________________________________________________________
Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 10 of 10