AlgoVision Requirements

advertisement

Jonathon Turel

Project Manager

AlgoVision

Software Project Requirements

Justin Cowen

Chief Designer

Pamela Rosoff

Quality Assurance

Engineer

Ash Smith

Requirements Engineer

Table of Contents

1.

Introduction

1.1

Problem Description

1.2

Scope and Objectives

1.3

Success Criteria

2.

Software Project Plan

2.1

Resources

2.2

Work Breakdown Structure

2.3

Cost Estimations

2.3.1

Function Points

2.3.2

Lines of Code

2.3.3

COCOMO II

2.4

Project Schedule

2.4.1

GANTT Chart

2.4.2

CPM Chart

2.5

Responsibility Matrix

2.6

Risk Management

2.7

Performance Issues

2.8

Technical Constraints

2.9

Monitoring and Control Mechanisms

3.

Requirements and Analysis Models

3.1

Major Software Functions

3.1.1

User Input/Output and GUI

3.1.2

Matrix Algebra

3.1.3

Data Structures

3.2

Activity Diagrams

3.3

Use Case Diagrams

3.4

Requirements Class Models

3.5

Requirements/Data Dictionary

3.6

Limitations and Constraints

3.7

Non-Functional Requirements

3.8

Requirements Process Tools

4.

Analysis Process

4.1

Process Description

4.2

Major Problems Encountered

5.

Bibliography

1.

Introduction

1.1

Problem Description

The Computer Science curriculum incorporates the study of various data structures, operations pertaining to them, and other mathematical algorithms. These complex concepts are generally implemented and applied to build user’s understanding. We feel that having a visual, interactive interface to work with these operations will be a beneficial supplement to those who are learning these concepts. AlgoVision is the name of our software tool which will accomplish just that.

1.2

Scope and Objectives

AlgoVision is a software application that will help anyone interested in understanding the core principles of the Computer Science curriculum in an intuitive and visual manner. The specific utilities available will be:

 Stacks

 Queues

 Binary / AVL Trees and Traversals

 Postfix and Infix expression evaluation

 Insertion, Quick, and Bubble sorting

 Matrix algebra and Gauss-Jordan elimination

Depending on time constraints, we would also like to support the following:

 Directed Graphs

 Heaps

 Gaussian elimination

The main objective of the software is to provide a way to learn these ideas at a level of abstraction that people are more suited to understand. Visual learners make up 65% of the general population (Riklan) which makes the need apparent for such an application.

AlgoVision will feature an interactive GUI with a backend that will control input, output and animation. The user will select which of the concepts they would like to see by opening a new tab. Based on the type of algorithm, the user will be prompted for the appropriate input. After all input is received and a “Go” button is clicked, the animation will follow, showing each step of the algorithm. As this happens, pseudocode will appear on the screen, indicating where execution is taking place in the algorithm. The final output will be displayed when execution is complete.

We intend to distribute AlgoVision online and hope that professors, students, and those interested in these concepts will incorporate it into their instruction and learning.

1.3 Success Criteria

The success of AlgoVision will rely primarily on the ease by which students can select, provide input, and view the animation of the algorithms during execution. The accuracy of the software is vital to this goal and requires that all inputs be highly scrutinized. All pseudocode should be easy to understand and indicate where execution is taking place in a straightforward manner. In addition to ease of use and accuracy, the software should also be reliable and free of defects. From a team standpoint, success will be measured based on our ability to meet the deliverable deadlines to ensure AlgoVision is feature-complete per the requirements.

2.

Software Project Plan

2.1

Resources

 Eclipse + EasyEclipse GUI Builder Plugin

 Java Development Environment 6

 Personal Computers

 Server (Subversion)

 Notes and Texts from CSC 332 and CSC 340

 Microsoft PowerPoint, Word and Visio

2.2

Work Breakdown Structure

1) Management a.

Ensuring Progress i.

Scheduling Meetings ii.

Peer Evaluation iii.

Cost and Time Minimization b.

Resources i.

Determine resources and availabilities c.

Risks i.

Identify Risks ii.

Create Risk Table iii.

Create Risk Plan iv.

Document risk mitigation/monitoring/management

2) Requirements a.

Functional Requirements i.

Provide list of algorithms ii.

Appropriate input methods iii.

Use input for demonstration iv.

Animate step-through of algorithm execution v.

Provide extra notifications as needed

vi.

Option to repeat execution vii.

Tabbed implementation for multiple algorithm instances b.

Non-Functional Requirements i.

Clarity of explanations ii.

Simple, concise pseudocode

3) System Design a.

User Interface i.

Tabs for each algorithm instance ii.

Specialized user input iii.

Start / Pause / Step/ Reset Buttons iv.

Pseudocode Frame v.

Animation Frame vi.

Toolbar Menu vii.

Status Bar

4) Implementation a.

Code main GUI structure b.

Code individual algorithm panels c.

Code basis for adding and removing nodes d.

Code means for moving nodes on screen e.

Code input mechanisms f.

Code various algorithms g.

Implement pseudo-code iteration h.

Synchronize pseudo-code iteration algorithm execution

5) Testing and Debugging a.

Run several test cases for each algorithm i.

Analyze process steps and final outcome b.

Non-team member testing for feedback and further testing

6) Deployment a.

Distribute software through a simple website

2.3

Cost Estimation

2.3.1

Function Points

All cases assume average complexity

User Inputs

User Outputs

Inquiries

Internal Logical Files

External Interface Files

Count Total

Optimal Likely Pessimistic Weight Result

10

9

8

3

2

12

11

11

3

3

15

13

13

7

5

4

5

5

10

7

48.6

55

46

36

16

201.6

Factor

Backup and recovery

Value

4

Data Communications

Distributed Processing

Performance Critical

Existing Operating Environment

Online Data Entry

Input Transaction over Multiple Screens

Master files updated online

Information domain values complex

Internal processing complex

Code designed for reuse

Conversation/installation in design

Multiple Installations

Application designed for chance

Total

4

1

3

3

0

30

1

1

0

2

1

3

5

2

Function Points = 201.6 * [0.65 +(0.01 * 30)] = 192

Assuming an average productivity rate of 9.5 FP/pm and a burdened labor rate of

$100 per month

Duration = 192 FP/9.5 pm = 21 person-months

($100 * 21 person-months) / 192 FP = $11 per function point

Total Project Cost = $11 x 192 FP = $2,112

2.3.2

Lines of Code

Function

User Interface and Control Facilities

2D Geometrical Analysis

3D Geometrical Analysis

Database Management

Computer Graphics display facilities

Peripheral control function

Design analysis modules

Total

Estimated LOC

1,350

600

0

0

750

300

350

3,350

Assuming a production rate of 200 LOC pm and a burdened labor rate of $100

Cost per LOC = $100/200 LOC pm = $0.50

Estimated project cost = 3,350 LOC * $0.22 = $1,675

Estimated effort = 3,350 LOC / 200 LOC pm = 17 person-months

2.3.3

COCOMO II

 1 Screen

 12 Reports

 45 Software components

Assuming average complexity and average developer maturity, and 60% reuse

Object Points = 1 x 2 + 12 x 5 + 45 x 10 = 512 Object Points

NOP = 512 * [(100-60)/100] =205 NOP

Estimated effort = 205 /13 = 16 person-months

Summary and Inclinations

Function Points estimation:

Effort: 21 pm

Cost: $2,112

Inclination: Development time and cost come out to be the highest of all estimation types. Due to the percent of code reuse, it is unlikely that the project will take 21 pm to complete. The LOC estimation of 17 pm is less, and likely more accurate

LOC estimation:

Effort: 17 pm

Cost: $1,675

Inclination: This is likely the most accurate of all estimations. We were able to use existing coded algorithms to estimate the total lines of code needed, making the numbers more precise than the estimated function points and COCOMO II model.

COCOMO II estimation:

Effort: 16 pm

Inclination: Effort of 16 pm is very similar to the LOC estimate of 17 pm. Numbers used in this calculation were a more abstracted estimate than the lines of code numbers, however, so we will stick with the assumption that all LOC estimates

(effort and cost) are the most accurate.

2.4

Project Schedule

2.4.1

GANNT Chart

Weeks 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Tasks

Requirements

Software Design

Class Structuring

Pseudocode

Interface

Animations

Testing

Deployment

2.4.2

CPM Chart

2.5

Responsibility Matrix

Requirements

Scope and Objectives

Success Criteria

Resources

Work Breakdown

Estimates

Project Schedule

Responsibility Matrix

Risk Management

Performance Issues

Technical Constraints

Monitoring and Control

Software Functions

Activity Diagrams

Use Case Diagrams

Class Models

Data Dictionary

Limitations / Constraints

N.F. Requirements

Tool Descriptions

Analysis Process

Major Problems

Jonathon Pamela Justin

Design and Implementation

UI Structure

Class Construction

Input Design

Pseudocode

Outputs

Animations

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

Ash

X

X

X

X

X

X

2.6

Risk Management

Risk

Failure to implement core algorithms

Subversion Corruption

Requirements Change

Team Roster Change

Probability Impact

10% 3

5%

20%

5%

2

2

3

RMMM

Determining how to best represent a given algorithm visually will vary in complexity. If we discover that too much time will be invested on a particular algorithm, we can omit it and substitute a secondary choice.

The subversion repository is backed up remotely each day and at worst only small number of changes should be lost if a backup must be restored.

Due to the relatively small complexity of the software a requirements change will have little impact if it is for the better end result.

Losing or gaining an additional team member past the requirement process will slow our overall progress with time spent bringing new members up to date on the software.

Risk Impact Values

1.

Catastrophic

2.

Critical

3.

Marginal

4.

Negligible

We are fortunate to have a project that is essentially free of any major risks. At the moment

(week 10) we are progressing well into design and implementation and the risks above have not presented themselves, and we do not foresee any problems for the project at this time.

2.7

Performance Issues

At a glance the AlgoVision software will be a small, simple project without much complexity except for the execution and stepping-through of algorithms. The data sets able to be input for each algorithm type need finite constraints in order to ensure that the program will not be left computing indefinitely. Also, the software must implement extensive checks on the input that will be used for demonstration because having improper values (data types or data structures) sent to the algorithm for computation will inherently result in execution problems such as slowed performance, incorrect output, or outright failure.

2.8

Technical Constraints

All AlgoVision team members are Computer Science majors with different concentrations in their degree programs. As a result, experience with the algorithms to be implemented varies. This constraint is easily overcome by allotting development of various software

features according to who is more comfortable working with a given feature as per the responsibility matrix below.

2.9

Project Monitoring and Control Mechanisms

Our original solution to managing the project was to use a directory sharing application such as Dropbox. It quickly became apparent that with four team members and numerous source files that are intricately linked, a more robust solution was required. Instead, we are using Apache Subversion ( http://subversion.apache.org/ ) which is a powerful utility.

Features such as version control and the ability to fall back to any previous file or directory revision is crucial if problems should arise. File locking will ensure that no two people are editing the same working version of a source file which could introduce problems. Having a management system such as this enables everyone in the group to be on the same page when we are discussing program aspects such as feature changes or bug fixes.

3.

Requirements and Analysis Models

3.1

Major Software Functions

3.1.1

User Input/Output and GUI

The software must have a simple yet effective interface for users. It will also read in user input and output the correct solutions in an organized visual way. (Possibility: The GUI will include a two window system. The left window showing visualization and solutions, and the right window showing the pseudocode being executed to complete the task being visualized)

3.1.2

Matrix Algebra

Operations: Addition, Subtraction, Multiplication, Augmentation,

Row Swapping, Gauss-Jordan elimination

In order to accomplish the computations required for Scientific

Computing, the software must be able to do basic matrix algebra. It will display within its own container where the user can see the algebra performed.

More advanced operations on matrices are also required, thus matrix augmentation, row multiplication and swapping are included.

Gauss-Jordan Elimination is a pivotal aspect of Scientific Computing which combines all of the above matrix operations. The software will execute this algorithm in a step by step format for the user. It will also allow the user to input systems of equations for computation.

3.1.3

Data Structures

Stacks and Queues

The understanding of stacks and queues is a pivotal concept within the computer science field, and the best way to understand it is through visualizations. The software will show simple queue and stack functions such as enqueue, dequeue, push, and pop. It will also track the front, back, and current nodes within the structures.

Binary and AVL Trees

Operations: Checking, Inserting, Removing,

Inorder/Preorder/Postorder Traversals

BST and AVL trees are another key concept within the computer science field. The software will visually guide the user through the processes of a default BST/AVL tree as well as allow the user to input their own values and see the tree created as well as traversed.

Infix and Postfix Expressions

The software will use a stack function to convert infix to postfix expressions and vice versa. Again the software will allow for user input for conversion as well as default cases to make understanding easy.

Sorting Algorithms

Types: Insertion, Quick, Bubble

Sorting algorithms are essential to the speed and integrity of many systems and their functionality. Therefore, it is yet another key point of understanding for Computer Science students. The software will visualize these different sorting algorithms both on a small scale as well as large scale examples. Large scale examples will be done from an abstracted view point as opposed to an individual number view point, while small scale examples (20 or less) will be visualized on an individual number basis as well as have the ability to be input by the user.

3.2

Activity Diagrams

3.2.1 Data Structures Activity Diagram

The user requests the homepage for Algovision system. If the user selects the Data Structures page, this diagram represents the options that user has and the resulting responses of the system, ultimately resulting in the execution of one of the algorithms.

3.2.2 Matrix Algebra Activity Diagram

The user requests the homepage for Algovision system. If the user selects the Matrix Algebra page, this diagram represents the options that user has and the resulting responses of the system, ultimately resulting in the execution of the matrix algebra solution.

3.2.3 Scientific Computing Activity Diagram

The user requests the homepage for Algovision system. If the user selects the Scientific Computing page, this diagram represents the options that user has and the resulting responses of the system, ultimately resulting in the execution of the scientific computing algorithm.

3.3

Use Case Diagrams

The user has several options to select within the Algovision system. These optional pages include several different pages: Homepage, Matrix Algebra, Data Structures, Stack & Queue, BST & AVL

Tree, Infix & Postfix Expressions, Sorting Algorithms, Scientific Computing, Matrix Operations, and

Gauss Jordan Elimination. The Algovision system resultantly displays the selected pages and executes the selected algorithms.

Use Case Homepage Request and Display

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

User and AlgoVision System

The user requests application’s home page and the AlgoVision system display’s it to the user.

The application must have some way to be accessed, whether through download and executable or through a webpage interface. The AlgoVision system must have a homepage ready for display.

User navigates to AlgoVision website for download or opens the application website or executable.

The user needs helps with some aspect of Data Structures or Scientific Computing

The user downloads and executes the AlgoVision application, or navigates to the

AlgoVision website.

The AlgoVision System displays the AlgoVision GUI homepage.

AlgoVision web server is down (if web application) or unable to be download.

Priority

When Available

Error in system does not allow application to open

Essential

First Increment

Frequency of Use Used on every access to the application

Channel to Actor Webpage server or executable on personal computer

Open Issues What if server goes down?

What if the homepage runs into an error?

What if the application doesn’t work on the said operating system?

What if the user changes the size of the window? Will the visuals get misaligned or sloppy?

Use Case Scientific Computing Page Request and Display

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

User and AlgoVision System

The user to request for the application’s Scientific Computing page and the AlgoVision system to display the application’s Scientific Computing page to the user.

The Scientific Computing page must have some way to be accessed

(through the tabular menus on the homepage). The Scientific Computing page must be ready and available for display.

The user navigates to the Scientific Computing page by clicking the Scientific

Computing tab on the homepage.

The user needs helps with some aspect of Scientific Computing.

The user clicks the Scientific Computing tab on the AlgoVision homepage.

The AlgoVision System displays the AlgoVision GUI Scientific Computing page.

AlgoVision web server is down (if web application) or unable to display Scientific

Computing page.

Error in system does not allow page to open.

The Scientific Computing page has no way to be accessed if the tabular menu is not

Priority

When Available displaying the correct tab.

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Homepage

Open Issues What if server goes down?

What if the Scientific Computing page runs into an error?

If tabbing system doesn’t display, there will be no way to access the Scientific

Computing Homepage.

What if the page doesn’t display the correct information?

Use Case Matrix Algebra Page Request and Display

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

User and AlgoVision System

The user to request for the application’s Matrix Algebra page and the AlgoVision system to display the application’s Matrix Algebra page to the user.

The Matrix Algebra page must have some way to be accessed (through the tabular menus on the homepage). The Matrix Algebra page must be ready and available for display.

The user navigates to the Matrix Algebra page by clicking the Matrix Algebra tab on the homepage

The user needs helps with some aspect of Matrix Algebra.

The user clicks the Matrix Algebra tab on the AlgoVision homepage.

The AlgoVision System displays the AlgoVision GUI Matrix Algebra page.

AlgoVision web server is down (if web application) or unable to display Matrix Algebra page.

Error in system does not allow page to open.

The Matrix Algebra page has no way to be accessed if the tabular menu is not

Priority

When Available displaying the correct tab.

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Homepage

Open Issues What if server goes down?

What if the Matrix Algebra page runs into an error?

If tabbing system doesn’t display, there will be no way to access the Matrix Algebra

Homepage.

What if the page doesn’t display the correct information?

Use Case

Primary Actors

Goal in Context

Preconditions:

Data Structures Page Request & Display

User and AlgoVision System

The user to request for the application’s Data Structures page and the AlgoVision system to display the application’s Data Structures page to the user.

The Data Structures page must have some way to be accessed (through

Trigger:

Scenario

Exceptions the tabular menus on the homepage). The Data Structures page must be ready and available for display.

The user navigates to the Data Structures page by clicking the Data Structures tab on the homepage.

The user needs helps with some aspect of Data Structures.

The user clicks the Data Structures tab on the AlgoVision homepage.

The AlgoVision System displays the AlgoVision GUI Data Structures page.

AlgoVision web server is down (if web application) or unable to display Data

Structures page.

Error in system does not allow page to open.

The Data Structures page has no way to be accessed if the tabular menu is not displaying the correct tab.

Priority

When Available

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Homepage

Open Issues

Essential

First Increment

What if server goes down?

What if the Data Structures page runs into an error?

If tabbing system doesn’t display, there will be no way to access the Data Structures

Homepage.

What if the page doesn’t display the correct information?

Use Case

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

Priority

Gauss-Jordan Elimination Page Request and Display

User and AlgoVision System

The user to request for the application’s Gauss-Jordan Elimination page and the AlgoVision system to display the application’s Gauss-Jordan

Elimination page to the user.

The Gauss-Jordan Elimination page must have some way to be accessed

(through the tabular menus on the homepage). The Gaus- Jordan

Elimination page must be ready and available for display.

The user navigates to the Gauss-Jordan Elimination page by clicking the Gauss-Jordan

Elimination tab on the Scientific Computing page.

The user needs helps with some aspect of Gauss-Jordan Elimination.

The user clicks the Gauss-Jordan Elimination tab on the AlgoVision Scientific

Computing homepage.

The AlgoVision System displays the AlgoVision GUI Gauss-Jordan Elimination page.

AlgoVision web server is down (if web application) or unable to display Gauss-Jordan

Elimination page.

Error in system does not allow page to open.

The Gauss-Jordan Elimination page has no way to be accessed if the tabular menu is not displaying the correct tab.

Essential

When Available First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Scientific Computing Homepage

Open Issues What if server goes down?

What if the Gauss-Jordan Elimination page runs into an error?

If tabbing system doesn’t display, there will be no way to access the Gauss-Jordan

Elimination Homepage.

What if the page doesn’t display the correct information?

Use Case Stack and Queue Page Request and Display

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

User and AlgoVision System

The user to request for the application’s Stack & Queue page and the

AlgoVision system to display the application’s Stack & Queue page to the user.

The Stack & Queue page must have some way to be accessed (through the tabular menus on the homepage). The Stack & Queue page must be ready and available for display.

The user navigates to the Stack & Queue page by clicking the Stack & Queue tab on the

Data Structures page.

The user needs helps with some aspect of Stacks & Queues.

The user clicks the Stack & Queue tab on the AlgoVision Data Structures homepage.

The AlgoVision System displays the AlgoVision GUI Stack & Queue page.

Exceptions AlgoVision web server is down (if web application) or unable to display Stack & Queue page.

Error in system does not allow page to open.

The Stack & Queue page has no way to be accessed if the tabular menu is not displaying the correct tab.

Essential

First Increment

Priority

When Available

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Data Structures homepage

Open Issues What if server goes down?

What if the Stack & Queue page runs into an error?

If tabbing system doesn’t display, there will be no way to access the Stack & Queue

Homepage.

What if the page doesn’t display the correct information?

Use Case

Primary Actors

Goal in Context

Preconditions:

BST and AVL Tree Page Request and Display

User and AlgoVision System

The user to request for the application’s BST & AVL Tree page and the AlgoVision system to display the application’s BST & AVL Tree page to the user.

The BST & AVL Tree page must have some way to be accessed (through the tabular

Trigger:

Scenario

Exceptions menus on the homepage). The BST & AVL Tree page must be ready and available for display.

The user navigates to the BST & AVL Tree page by clicking the BST & AVL Tree tab on the Data Structures page.

The user needs helps with some aspect of BST & AVL Tree.

The user clicks the BST & AVL Tree tab on the AlgoVision Data Structures homepage.

The AlgoVision System displays the AlgoVision GUI BST & AVL Tree page.

AlgoVision web server is down (if web application) or unable to display BST & AVL

Tree page.

Error in system does not allow page to open.

The BST & AVL Tree page has no way to be accessed if the tabular menu is not

Priority

When Available displaying the correct tab.

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Data Structures Homepage

Open Issues What if server goes down?

What if the BST & AVL Tree page runs into an error?

If tabbing system doesn’t display, there will be no way to access the BST & AVL Tree page.

What if the page doesn’t display the correct information?

Use Case

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

Priority

Infix and Postfix Expression Page Request and Display

User and AlgoVision System

The user to request for the application’s Infix & Postfix Expressions page and the

AlgoVision system to display the application’s Infix & Postfix Expressions page to the user.

The Infix & Postfix Expressions page must have some way to be accessed (through the tabular menus on the homepage). The Infix & Postfix Expressions page must be ready and available for display.

The user navigates to the Infix & Postfix Expressions page by clicking the Infix & Postfix

Expressions tab on the Data Structures page.

The user needs helps with some aspect of Infix & Postfix Expressions.

The user clicks the Infix & Postfix Expressions tab on the AlgoVision Data Structures homepage.

The AlgoVision System displays the AlgoVision GUI Infix & Postfix Expressions page.

AlgoVision web server is down (if web application) or unable to display Infix & Postfix

Expressions page.

Error in system does not allow page to open.

The Infix & Postfix Expressions page has no way to be accessed if the tabular menu is not displaying the correct tab.

Essential

When Available First Increment

Frequency of Use Uses on most accesses to the application

Channel to Actor AlgoVision GUI Data Structures Homepage

Open Issues What if server goes down?

What if the Infix & Postfix Expressions page runs into an error?

If tabbing system doesn’t display, there will be no way to access the Infix & Postfix

Expressions page.

What if the page doesn’t display the correct information?

Use Case Sorting Algorithms Page Request and Display

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

User and AlgoVision System

The user to request for the application’s Sorting Algorithms page and the AlgoVision system to display the application’s Sorting Algorithms page to the user.

The Sorting Algorithms page must have some way to be accessed (through the tabular menus on the homepage). The Sorting Algorithms page must be ready and available for display.

The user navigates to the Sorting Algorithms page by clicking the Sorting Algorithms tab on the Data Structures page.

The user needs helps with some aspect of Sorting Algorithms.

The user clicks the Sorting Algorithms tab on the AlgoVision Data Structures homepage.

The AlgoVision System displays the AlgoVision GUI Sorting Algorithms page.

AlgoVision web server is down (if web application) or unable to display Sorting

Algorithms page.

Error in system does not allow page to open.

The Sorting Algorithms page has no way to be accessed if the tabular menu is not displaying the correct tab.

Priority

When Available

Frequency of Use Uses on most accesses to the application

Channel to Actor AlgoVision GUI Data Structures Homepage

Open Issues

Essential

First Increment

What if server goes down?

What if the Sorting Algorithms page runs into an error?

If tabbing system doesn’t display, there will be no way to access the Sorting Algorithms page.

What if the page doesn’t display the correct information?

Use Case

Primary Actors

Goal in Context

Preconditions:

Matrix Algebra Execution

User and AlgoVision System

The user inputs data for matrix algebra into the GUI or selects default data to be used in the computations. The user selects the calculation to be performed and the AlgoVision

System executes the calculations and displays the results.

The AlgoVision System needs to have data to perform calculations on. There must be a limit on the size of how large the matrix can be.

Trigger:

Scenario

The user selects an execute button to start the process.

The user inputs personal data or selects default data to be used.

The user selects which operation to perform on the matrix/matrices.

The user selects the execute button to perform the function.

The AlgoVision System performs the requested operations on the data, displays the pseudo code being executed in the window, and displays the result.

Exceptions AlgoVision web server is down (if web application) or unable to display results/pseudo code.

Error in system does not allow calculation to be done.

Number of inputs by user are too large in number

Priority

When Available

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Matrix Algebra Page

Open Issues What if server goes down?

What if the calculation runs into an error?

What if the calculations aren’t correct?

What if the pseudo code is not being displayed correctly?

What if the system is not reading in user input correctly?

Use Case Stack and Queue Execution

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

User and AlgoVision System

The user inputs data for a stack or queue into the GUI or selects default data to be used in the computations. The user selects the calculation to be performed and the

AlgoVision System executes the calculations and displays the results.

The AlgoVision System needs to have data to perform calculations on. There must be a limit on the size of how large the objects can be.

The user selects an execute button to start the process.

The user inputs personal data or selects default data to be used.

The user selects which operation to perform on the stack/queue.

The user selects the execute button to perform the function.

The AlgoVision System performs the requested operations on the data, displays the pseudo code being executed in the window, and displays the result.

AlgoVision web server is down (if web application) or unable to display results/pseudo code.

Priority

When Available

Error in system does not allow calculation to be done.

Number of inputs by user are too large in number

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Stack and Queue Page

Open Issues What if server goes down?

What if the calculation runs into an error?

What if the calculations aren’t correct?

What if the pseudo code is not being displayed correctly?

What if the system is not reading in user input correctly?

Use Case BST and AVL Tree Execution

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Open Issues

User and AlgoVision System

The user inputs data for a BST or AVL tree into the GUI or selects default data to be used in the computations. The user selects the calculation to be performed and the

AlgoVision System executes the calculations and displays the results.

The AlgoVision System needs to have data to perform calculations on. There must be a limit on the size of how large the objects can be.

The user selects an execute button to start the process.

The user inputs personal data or selects default data to be used.

The user selects which operation to perform on the BST/AVL tree.

The user selects the execute button to perform the function.

The AlgoVision System performs the requested operations on the data, displays the pseudo code being executed in the window, and displays the result.

AlgoVision web server is down (if web application) or unable to display results/pseudo Exceptions code.

Error in system does not allow calculation to be done.

Number of inputs by user are too large in number

Priority

When Available

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI BST/AVL Tree page

What if server goes down?

What if the calculation runs into an error?

What if the calculations aren’t correct?

What if the pseudo code is not being displayed correctly?

What if the system is not reading in user input correctly?

Use Case

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

Exceptions

Infix and Postfix Expression Execution

User and AlgoVision System

The user inputs data for an infix or postfix expression into the GUI or selects default data to be used in the computations. The user selects the calculation to be performed and the AlgoVision System executes the calculations and displays the results.

The AlgoVision System needs to have data to perform calculations on. There must be a limit on the size of how large the objects can be.

The user selects an execute button to start the process.

The user inputs personal data or selects default data to be used.

The user selects which operation to perform on the infix/postfix expression.

The user selects the execute button to perform the function.

The AlgoVision System performs the requested operations on the data, displays the pseudo code being executed in the window, and displays the result.

AlgoVision web server is down (if web application) or unable to display results/pseudo code.

Priority

When Available

Error in system does not allow calculation to be done.

Number of inputs by user are too large in number

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Infix/Postfix Expressions page

Open Issues What if server goes down?

What if the calculation runs into an error?

What if the calculations aren’t correct?

What if the pseudo code is not being displayed correctly?

What if the system is not reading in user input correctly?

Use Case Sorting Algorithm Execution

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

User and AlgoVision System

The user inputs data for a sorting algorithm into the GUI or selects default data to be used in the computations. The user selects the algorithm to be used and the AlgoVision

System executes the calculations and displays the results.

The AlgoVision System needs to have data to perform calculations on. There must be a limit on the size of how large the objects can be.

The user selects an execute button to start the process.

The user inputs personal data or selects default data to be used.

The user selects which algorithm to apply to the data.

The user selects the execute button to perform the sort.

The AlgoVision System performs the sort on the data, displays the pseudo code being executed in the window, and displays the result.

Exceptions AlgoVision web server is down (if web application) or unable to display results/pseudo code.

Error in system does not allow sort to be done.

Number of inputs by user are too large in number

Priority

When Available

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Sorting Algorithms page

Open Issues What if server goes down?

What if the calculation runs into an error?

What if the calculations aren’t correct?

What if the pseudo code is not being displayed correctly?

What if the system is not reading in user input correctly?

Use Case

Primary Actors

Goal in Context

Preconditions:

Matrix Operations Execution

User and AlgoVision System

The user inputs data for a matrix into the GUI or selects default data to be used in the computations. The user selects the calculation to be performed and the AlgoVision

System executes the calculations and displays the results.

The AlgoVision System needs to have data to perform calculations on. There must be a limit on the size of how large the objects can be.

Trigger:

Scenario

Exceptions

The user selects an execute button to start the process.

The user inputs personal data or selects default data to be used.

The user selects which operation to perform on the matrix/matrices.

The user selects the execute button to perform the function.

The AlgoVision System performs the requested operations on the data, displays the pseudo code being executed in the window, and displays the result.

AlgoVision web server is down (if web application) or unable to display results/pseudo code.

Error in system does not allow calculation to be done.

Number of inputs by user are too large in number

Priority

When Available

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Matrix Operations page

Open Issues

Essential

First Increment

What if server goes down?

What if the calculation runs into an error?

What if the calculations aren’t correct?

What if the pseudo code is not being displayed correctly?

What if the system is not reading in user input correctly?

Use Case Gauss-Jordan Elimination Execution

Primary Actors

Goal in Context

Preconditions:

Trigger:

Scenario

User and AlgoVision System

The user inputs data for a matrix into the GUI or selects default data to be used in the computations. Then the AlgoVision System executes the Gauss-Jordan Elimination and displays the results.

The AlgoVision System needs to have data to perform calculations on. There must be restrictions on the matrix dimensions.

The user selects an execute button to start the process.

The user inputs personal data or selects default data to be used.

The user selects the execute button to perform the Gauss-Jordan Elimination.

The AlgoVision System performs the Gauss-Jordan Elimination on the data, displays the pseudo code being executed in the window, and displays the result.

AlgoVision web server is down (if web application) or unable to display results/pseudo Exceptions code.

Error in system does not allow Gauss-Jordan Elimination to be done.

Number of inputs by user are too large in number

Matrix input by user not of acceptable dimensions

Priority

When Available

Essential

First Increment

Frequency of Use Used on most accesses to the application

Channel to Actor AlgoVision GUI Matrix Operations page

Open Issues What if server goes down?

What if the calculation runs into an error?

What if the calculations aren’t correct?

What if the pseudo code is not being displayed correctly?

What if the system is not reading in user input correctly?

3.4

Requirements Class Models

3.5

Requirements/Data Dictionary

Stack

A LIFO data type that is a way to store data in a specific order. Utilizes push and pop methods.

Queue

A FIFO data type that is a way to store data in a specific order. Utilizes the enqueue and dequeue methods.

Binary Search Tree

“A node-based binary tree data structure which has the following properties: left subtree of a node contains only nodes with keys less than the node’s key; the right subtree of a node contains only nodes with keys greater than the node’s key; both the left and right subtrees must also be binary search trees.” (Wikipedia.org)

AVL Tree

“A self-balancing binary search tree with the following property: the heights of the two child subtrees of any node differ by at most one.” (Wikipedia.org)

Infix Expression

A method of writing mathematical computations in which the operators are located in between the operands. The most common form of writing expressions. (Ex.

A+B+C)

Postfix Expression

A method of writing mathematical computations in which the operators are located at the end of the expression after the operands. (Ex. ABC++)

Gauss Jordan Elimination

A method of solving systems of equations which involves using matrix algebra to create 1’s along the diagonal of the matrix and 0’s in all other positions except for the last column, thus providing the solutions to the system.

3.6

Limitations and Constraints

Time

The project is limited by a smaller than ideal amount of time to ensure quality.

Conflicting Schedules

Our group’s schedules are not ideal, making face-to-face collaboration sparse.

Despite being capable as working as parts it still would be more beneficial if we could meet more.

3.7

Non-Functional Requirements

Ease of Use

Being a teaching aid the software in order to be a success must be easy to use. The students who are using this software do not need any added frustration nor should a difficult interface take away from the lessons they are trying to learn.

Quality Graphics

Because this software is to be a teaching aid we must have clearly drawn graphics which aid in the understanding of these algorithms.

3.8

Requirements Process Tools

Activity Diagrams

“Activity diagrams supplements the use case by providing a graphical representation of the flow of interaction within a specific scenario” (Pressman 161).

Use Case Diagrams

“A use case captures a contract…[that] describes the system’s behavior under various conditions as the system responds to a request from one of its stakeholders”

(Pressman 133).

Class Models

“A class describes a group of objects with the same properties (attributes), behavior

(operations), kinds of relationships, and semantics” (Blaha 22).

“Class diagrams provide a graphic notation for modeling classes and their relationships, thereby describing possible objects. Class diagrams are useful both for abstract modeling and for designing actual programs” (Blaha 23).

Data Dictionary

“A centralized repository of information about data such as memory, relationships to other data, origin, usage, and format” (Wikipedia).

4.

Analysis Process

4.1

Process Description

The backbone of the Analysis Process was done by Justin. This included the initial creation of Activity Diagrams, Use Cases, and Class Models. This backbone was then presented to the rest of the group set it to scrutiny making changes and corrections where needed. This resulted in an analysis the whole group could agree on.

4.2

Major Problems Encountered

Resource Availability

Otherone was taken down while a good portion of work which prepared for the project was housed on the server. We must consider coding various algorithms again due to the extent of time Otherone has been unavailable.

Team Changes

A new group member was added to the project close to a deadline. The new group member had to be acclimated with the group and their duties. Work which had previously been accounted for had to be re-divided amongst the group.

Schedule Conflicts

With the addition of the new group member it has become more difficult for the entire group to meet, due to conflicts in our personal schedules.

5.

Bibliography

Blaha, Michael, and James Rumbaugh. Object-Oriented Modeling and Design with UML. 2 nd ed.

Prentice Hall, 2005. Print.

“Data Dictionary.” Wikipedia, The Free Encyclopedia. Wikimedia Foundation, Inc. 18 January

2011. Web. 12 February 2011.

Pressman, Roger S. Software Engineering: A Practitioner’s Approach. 7 th ed. New York:

McGraw-Hill, 2010. Print.

Riklan, David. "The Self Improvement 101: The 62 Essential Truths about Improving Your

Life " Editorial. SelfGrowth.com. Self Improvement Online Inc., 2004. Web. 14 Feb.

2011. <http://www.selfgrowth.com/gwlesson3.html>.

Download