Project Manager
Chief Designer
Quality Assurance
Engineer
Requirements Engineer
1.1
Problem Description
1.2
Scope and Objectives
1.3
Success Criteria
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.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.1
Process Description
4.2
Major Problems Encountered
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.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.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.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.
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>.