You are on page 1of 10

BCIT Computer Systems Technology

COMP 7081 Technical Issues in Software Development


Assignment 1
Author: Arthur (Wesley) Kenzie A00242330
______________________________________________________________________________

March 1, 2010

This assignment demonstrates the use of software development


concepts as they relate to the planned launch of a fictional “Blueberry”
wireless device. These concepts are:

(1) requirements specification .................................. page 1


(2) object-oriented analysis ..................................... page 3
(3) estimation of cost and schedule ........................... page 5
(4) software re-use development model .................... page 9

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.

2. Software Functional Requirements

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.

3. Requirements for “High Resolution Graphics” display

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

Title: Playback one song (from start to end) on Blueberry device


Pre-condition: MP3 file previously copied from PC to Blueberry
1) User turns on power to Blueberry
2) Blueberry displays “Main” menu of choices
3) User selects Main menu item for “Music”
4) Blueberry displays “Music” menu of choices (sub-menu of “Main”)
5) User selects Music menu item for “Play”
6) Blueberry displays “Play” menu of song choices (sub-menu of “Music”)
7) User selects song for playback
8) Blueberry starts playback of song
9) Blueberry displays Pause button, Stop button and Playback Progress Bar
10) Blueberry finishes playback of song
11) Blueberry updates internal playback statistics
Post-condition: Blueberry displays “Play” menu of song choices (sub-menu of “Music”)

______________________________________________________________________________
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
______________________________________________________________________________

PART 2 – Object-oriented Analysis

1. Class Diagram showing major components of Part 1.4 Use Case

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
______________________________________________________________________________

2. Sequence Chart for Part 1.4 Use Case

______________________________________________________________________________
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
______________________________________________________________________________

PART 3 – Software Estimation

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.

1. Calculate effort and duration based on Intermediate COCOMO 81 Model

First, calculate project total size in KLOC (thousands of lines of code) by adding up size of each
module:

Modules Size (in KLOC)


PlatformOS 15 High-Level Operating System functionality
DisplayModule 12 Device Display functionality
PlayModule 10 Audio File Playback functionality
StorageModule 8 Device Storage functionality (read/write)
MP3decoder 8 Audio File Decoding functionality
JPEGdecoder 8 Image File Decoding functionality
ViewModule 12 Image File Viewing functionality
BrowseModule (Blueberry) 10 Browsing Files on PC functionality
BrowseModule (PC) 10 Browsing Files on PC functionality
CommunicationModule (Blueberry) 20 Communications with PC functionality
CommunicationModule (PC) 20 Communications with PC functionality
CopyModule (Blueberry) 10 Copying Files from PC functionality
CopyModule (PC) 10 Copying Files from PC functionality

Total 153 = Large Project Size

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:

Cost Drivers Rating Overall Product Attributes


RELY H – high 1.15 Required Reliability
CPLX NOM – nominal 1 Complexity
DATA NOM – nominal 1 Relative Size of Database

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:

Nominal Effort = 3 * ( KLOC 1.12 ) = 839 Person-Months;


Adjusted Effort = Nominal Effort times the product of all Cost Drivers = 396 Person-Months;
Duration = 2.5 * ( Adjusted Effort 0.35 ) = 20 months.

______________________________________________________________________________
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
______________________________________________________________________________

2. Calculate Effort using Bottom Up Approach

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.

Bottom Up Estimation Person-Months


Requirements Gathering 4
Analysis and Design 4
Coding and Unit Testing of the following modules:
- PlatformOS 6
- DisplayModule 8
- PlayModule 5
- StorageModule 5
- MP3decoder 6
- JPEGdecoder 6
- ViewModule 5
- BrowseModule (Blueberry) 5
- BrowseModule (PC) 5
- CommunicationModule (Blueberry) 6
- CommunicationModule (PC) 6
- CopyModule (Blueberry) 5
- CopyModule (PC) 5
Integration and System Testing 12
Documentation 8

Total 101

3. Iterative Development Strategy Release Schedule

The following release schedule is proposed for this project:

Release 1.0

This must include all basic functionality:


Wi-Fi communication between Blueberry device and PC can be started and stopped.
Browsing list of files located on PC can be done via the Blueberry display and keyboard.
Copying files from PC to storage device on Blueberry must be allowed.
Playing and viewing files stored on Blueberry must be allowed when not communicating with the
PC.

______________________________________________________________________________
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

Additional, incremental functionality must be included in this release:


Option for playing and viewing files stored on PC while browsing must be added.
Option for deleting files on Blueberry storage device must be added.
Ability to display amount of free space left on Blueberry storage device must be added.
Option for queueing multiple files for playing or viewing must be added.
Ability to accumulate and display playing and viewing statistics must be added.

Release 3.0

Functionality must be included in this release to increase security and privacy:


Option for login/password authentication added to Wi-Fi communications.
Option for SSL-type encryption added to Wi-Fi communications.
Option for login/password authentication added to Blueberry storage device.

Release 4.0

Functionality to expand reach of Blueberry to other wireless devices must be added:


Ability to use wireless-enabled printer to print image files.
Ability to use Wi-Fi connection to another Blueberry device for sharing files.
Option to download communications software from the Blueberry to a PC must be added so that
this software can then be installed on the PC before a Wi-Fi connection can be established
between the Blueberry and the PC.

Release 5.0

Functionality to do Internet web browsing must be added:


Ability to use embedded browser on Blueberry to connect to the Internet using a Wi-Fi router.

______________________________________________________________________________
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
______________________________________________________________________________

PART 4 – Software Re-use

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

(a) Does QMTest support automatic execution of test cases? No.


(b) Does QMTest support organizing test cases into test suites? Yes.
(c) Does QMTest support executing test cases on remote computers? Yes.
(d) Does QMTest support logging the results of each test case? Yes.
(e) Does QMTest support logging errors into an error log file, and logging results into a results log
file? Yes, with the -o and -O options for the qmtest run command.
(f) Does QMTest automatically ensure all remote computers have the same set of test cases to
run? No.
(g) Does QMTest run without any manual intervention? No.
(h) If any tests fail, does QMTest send an email to stakeholders informing them the test failed?
No.
(i) Does QMTest continue to run tests that are independent of previous tests that fail? Yes.
(j) Does QMTest hold back from running any test that is dependent on a previous test that already
failed? Yes.

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

You might also like