bcit comp 7081 assignment 1 by wesley kenzie march 2010

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

Upload: wesley-kenzie

Post on 10-Apr-2015

149 views

Category:

Documents


2 download

DESCRIPTION

This was my submission for assignment 1 in the Spring 2010 term for Computer Systems 7081 Technical Issues in Software Development. I earned a 96% mark on this report.

TRANSCRIPT

Page 1: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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

Page 2: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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 devicePre-condition: MP3 file previously copied from PC to Blueberry1) User turns on power to Blueberry2) Blueberry displays “Main” menu of choices3) 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 playback8) Blueberry starts playback of song9) Blueberry displays Pause button, Stop button and Playback Progress Bar10) Blueberry finishes playback of song11) Blueberry updates internal playback statisticsPost-condition: Blueberry displays “Play” menu of song choices (sub-menu of “Music”)

______________________________________________________________________________Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 2 of 10

Page 3: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: Arthur (Wesley) Kenzie A00242330______________________________________________________________________________

PART 2 – Object-oriented Analysis

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

______________________________________________________________________________Copyright © 2010 Arthur (Wesley) Kenzie. All Rights Reserved. Page 3 of 10

+initiateStartUpSequence() : void+cutPowerToEverything() : void

+isOn : bool = falseHardware::PowerButton

+showMenu() : void+hideMenu() : void+showStatusBar() : void+hideStatusBar() : void+showSoftKey() : void+hideSoftKey() : void

-isVisible : bool = false-menu : Menu-keys : SoftKey-status : StatusBar

Hardware::Display

-isVisible : bool = false+item : MenuItem

Display::Menu

-isVisible : bool = false-item : StatusBarItem

Display::StatusBar

+playAudioFile() : void-fileNamePlatformOS::MP3decoder

Hardware::StorageDevice

-keyID : int-isVisible : bool = false-keyIcon-keyDescriptiveText-keyFunctionality : PlayModule-keyXcoordinate : int-keyYcoordinate : int

Display::SoftKey

Hardware::Speaker

Hardware::HeadphoneJack

-isVisible : bool = false-itemIcon-itemDescriptiveText-itemFunctionality : PlayModule-itemRelativeNumber : int

Menu::MenuItem

+processFileQueue() : void+readFileFromStorage() : bool+passFileToDecoder() : bool+updateDisplay() : void+updatePlayStats() : void+processKeystrokes() : void

-songFileQueue-moduleStatus : int

PlatformOS::PlayModule

-Display1

-StatusBar1

-Display

1-SoftKey(s)0..*

+pollModuleStatus() : int+launchModule() : void+processKeystrokeQueue() : KeyboardKey+forwardKeystroke() : KeyboardKey+startupSequence() : bool+shutdownSequence() : void

-isStartingUp : bool = false-isShuttingDown : bool = false-keystrokeQueue

PlatformOS

+displayImageFile() : void-fileNamePlatformOS::JPEGdecoder

-isVisible : bool = false-itemIcon-itemDescriptiveText-itemXcoordinate : int-itemYcoordinate : int

StatusBar::StatusBarItem

-faceValue : char-internalValue : char-isShift : bool = false-isCtrl : bool = false-isAlt : bool = false-isCapsLock : bool = false

Keyboard::KeyboardKey

+readAudioFile()+readImageFile()+writeAudioFile()+writeImageFile()

-partitionName-directoryName-fileName

PlatformOS::Storage

«uses»

«uses»

+turnOnDisplay() : bool+processMenuQueue() : bool+processStatusBarQueue() : bool+processSoftKeyQueue() : bool+updateDisplay() : void+turnOffDisplay() : void+testDisplay() : bool

-menuQueue-statusBarQueue-softKeyQueue-moduleStatus : int

PlatformOS::DisplayModule

«uses»

+turnOnKeyboard() : bool+transmitKeystroke() : KeyboardKey+turnOffKeyboard() : void+testKeyboard() : bool

-key : KeyboardKeyHardware::Keyboard

Hardware

«uses»

«uses»

-Keyboard1-Key*

-Menu1

-Item*

-StatusBar1

-Item*

-Display

1

-Menu0..1

Page 4: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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

Page 5: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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 functionalityDisplayModule 12 Device Display functionalityPlayModule 10 Audio File Playback functionalityStorageModule 8 Device Storage functionality (read/write)MP3decoder 8 Audio File Decoding functionalityJPEGdecoder 8 Image File Decoding functionalityViewModule 12 Image File Viewing functionalityBrowseModule (Blueberry) 10 Browsing Files on PC functionalityBrowseModule (PC) 10 Browsing Files on PC functionalityCommunicationModule (Blueberry) 20 Communications with PC functionalityCommunicationModule (PC) 20 Communications with PC functionalityCopyModule (Blueberry) 10 Copying Files from PC functionalityCopyModule (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

Page 6: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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 AttributesRELY H – high 1.15 Required ReliabilityCPLX NOM – nominal 1 ComplexityDATA NOM – nominal 1 Relative Size of Database

Computer AttributesTIME NOM – nominal 1 Required % CPU UsageSTOR NOM – nominal 1 Required % Memory UsageVIRT NOM – nominal 1 Virtual Environment Volatility

TURN L – low 0.87

Personnel AttributesACAP H – high 0.86 Analyst CapabilityAEXP H – high 0.91 Applications ExperiencePCAP H – high 0.86 Programmer CapabilityVEXP H – high 0.9 Experience with Virtual EnvironmentLEXP H – high 0.95 Experience with Language

Project AttributesMODP VH – routine use 0.82 Use of Modern Software PracticesTOOL NOM – nominal 1 Use of ToolsSCED NOM – nominal 1 Schedule

Turn Around Time of Development Environment

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

Page 7: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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-MonthsRequirements Gathering 4Analysis and Design 4Coding and Unit Testing of the following modules:- PlatformOS 6- DisplayModule 8- PlayModule 5- StorageModule 5- MP3decoder 6- JPEGdecoder 6- ViewModule 5

556655

Integration and System Testing 12Documentation 8

Total 101

- BrowseModule (Blueberry)- BrowseModule (PC)- CommunicationModule (Blueberry)- CommunicationModule (PC)- CopyModule (Blueberry)- CopyModule (PC)

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

Page 8: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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

Page 9: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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

Page 10: BCIT COMP 7081 Assignment 1 by Wesley Kenzie March 2010

BCIT Computer Systems TechnologyCOMP 7081 Technical Issues in Software DevelopmentAssignment 1Author: 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