32
ALGOVISION Implementation and Testing

ALGOVISION Implementation and Testing. Development Team Group Name Jonathan Turel Project Manager Justin Cowen Chief Designer Pamela Rosoff Quality

Embed Size (px)

Citation preview

ALGOVISION

Implementation and Testing

Development Team

Group Name Jonathan Turel

Project Manager Justin Cowen

Chief Designer Pamela Rosoff

Quality Assurance Engineer Ash Smith

Requirements Engineer

Problem and Objectives

Several core algorithms, mainly taught through Data Structures and Scientific Computing, are essential to a students ability to further develop their programming skills

These are normally very complex and can be difficult to comprehend without a visual demonstration

We provide an abstract and visual way to learn these algorithms

Better understanding of these algorithms will lead to more potential or educational and, thus, career growth

Success Criteria

Program Ease of use Accuracy of information Clarity of text and visualizations Steady flow of actions

Team Meet deadlines Frequent team member communication Constructive input by all members

Presentation Outline

Team Member Responsibilities

Requirements Models GANTT Charts Use Case diagram Work breakdown

structure Design Models

Architectural Design class diagram Example of Pre/post

condition of operations

Example of State diagram

Example of Sequence diagram

Implementation User interface Test plan Lessons learned

References Demp

Team Member Responsibilities Jonathan – Project

Manager

Structure, function and testing of: Bubble Sort page, Stack/Queue page, Binary Tree page

Justin – Chief Designer

Structure, function and testing of: Matrix Algebra Page, requirements

models Pamela – Quality

Assurance E.

Structure, function and testing of: Main UI, final document, design models

Ash – Requirements Engineer

Structure, function and testing of: Binary Tree page

Requirements Models

GANTT 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

Overall timeline of project phases and development.

Use Case Diagram

Use Case ExampleUse Case Binary Tree Page Request and DisplayPrimary Actors User and AlgoVision SystemGoal in Context The user to request for the application’s Binary Tree page and the AlgoVision

system to display the application’s Binary Tree page to the user. Preconditions: The Binary Tree page must have some way to be accessed (through the tabular

menus on the homepage). The Binary Tree page must be ready and available for display.  

Trigger: The user navigates to the Binary Tree page by clicking Binary Tree button on the main page.  

Scenario The user needs helps with some aspect of Binary Trees.The user clicks the Binary Tree tab on the AlgoVision homepage. The AlgoVision System displays the AlgoVision GUI Binary Tree page.  

Exceptions AlgoVision or unable to display Binary Tree page.  Error in system does not allow page to open.  The Binary Tree page has no way to be accessed if the tabular menu is not displaying the correct tab. 

Priority EssentialWhen Available First IncrementFrequency of Use

Used on most accesses to the application

Channel to Actor

AlgoVision GUI Data Structures Homepage

Open Issues  What if the Binary Tree page runs into an error?  If tabbing system doesn’t display, there will be no way to access the Binary Tree page. What if the page doesn’t display the correct information?

Work Breakdown Structure

Management Ensuring Progress

Scheduling Meetings Peer Evaluation Cost and Time Minimization

Resources Determine resources and availabilities

Risks Identify Risks Create Risk Table Create Risk Plan Document risk mitigation/monitoring/management

Requirements Functional Requirements

Provide list of algorithms Appropriate input methods Use input for demonstration Animate step-through of algorithm execution Provide extra notifications as needed Option to repeat execution Tabbed implementation for multiple algorithm

instances Non-Functional Requirements

Clarity of explanations Simple, concise pseudocode

System Design User Interface

Tabs for each algorithm instance Specialized user input Start / Pause / Step/ Reset Buttons Pseudocode Frame Animation Frame Toolbar Menu Status Bar

Implementation Code main GUI structure Code individual algorithm panels Code basis for adding and removing nodes Code means for moving nodes on screen Code input mechanisms Code various algorithms Implement pseudo-code iteration Synchronize pseudo-code iteration algorithm

execution Testing and Debugging

Run several test cases for each algorithm Analyze process steps and final outcome

Non-team member testing for feedback and further testing

Design Models

Architectural Model – Layered

Three tiered layered architecture of the AlgoVision system

Architectural Model – Client/server

Client/Server architecture of the AlgoVision system

Design Class Diagram

Pre/Post Condition of Operations Stack/Queue page Pre-conditions:

Full stack displayed, full queue displayed Execution of operations Post-conditions:

Based on user input, modify and accurately display stack and queue visuals

Pre/Post Condition of Operations Stack/Queue page Pre-conditions:

Full stack displayed, full queue displayed Execution of operations Post-conditions:

Based on user input, modify and accurately display stack and queue visuals

Pre/Post Condition of Operations Matrix Algebra page Pre-conditions:

Matrix dimensions, matrix operation and input values selected

Execution of operations Post-conditions:

Based on user input, correct result matrix displayed

Pre/Post Condition of Operations Binary Tree page Pre-conditions:

Default nodes displayed as unsorted array Execution of operations Post-conditions:

Balanced binary tree created from nodes Step through

Search Find maximum Find minimum

State Diagram – Example 1

State diagram for bubble sort page

State Diagram – Example 2

State diagram for Stacks/Queues page

Sequence Diagram – Example 1

Binary Treepage sequence diagram

Sequence Diagram - Example 2

Mainpage sequence diagram

Implementation

User Interface

User Options

Implemented: File menu options: Exit,

About Binary Tree button Matrix Algebra button Bubble Sort button Stack and Queue button Step through Bubble Sort Specify Matrices’ sizes

and input Randomize Binary Tree

data nodes

Not Implemented: Data Structures button:

Changed to Stacks and Queues button

Scientific Computing button: functionality implemented in Matrix Algebra page

Test Plan – Testing Approach

Black Box Using default values to test implementation Testing all functionality through the GUI

White Box Individual testing of methods within the

code Testing for bugs and inaccuracies as well as

confirming validity of code

Test Plan – Test CasesTest Case Inputs Expected

ResultsActual Results

Who did this test

Functioning matrix addition

Correct dimensions for additionValid integer or double inputs

The solution matrix

The solution matrix

Justin

Non-functioning matrix addition (input)

Correct dimensions for additioninvalid input

Error for invalid input

Error for invalid input

Justin

Non-functioning matrix addition (matrix dimensions)

Incorrect dimensions for addition (number of rows and columns of both matrices must match)Valid integer or double inputs

Error for invalid input

Error for invalid input

Justin

Non-functioning matrix addition (input and matrix dimensions)

Incorrect dimensions for addition (number of rows and columns of both matrices must match)Invalid input

Error for invalid input

Error for invalid input

Justin 

Functioning matrix subtraction

Correct dimensions for subtractionValid integer or double inputs

The solution matrix

The solution matrix

Justin

Test Plan – Test CasesTest Case Inputs Expected

ResultsActual Results

Who did this test

Step Through after Completion

Press Step Through Since the array is sorted the user should be prompted that they can not continue until they Randomize the array

[ Expected Results]

Jonathon, Pamela

Auto-Sort Verification

Allow the program to sort the array to completion on its own

Rendered nodes should be in order and the user informed that the algorithm is completed

[Expected Results]

Jonathon, Pamela

Auto-Sort w/ Stop Begin Auto Sort and intermittently stop and resume sorting

There should be no discrepancies when stopping/resuming between these two modes

[Expected Results

Jonathon, Pamela

Confirm Step Through functionality

Press Step Through button until complete message

Rendered BST with a message in the help panel confirming completion

[ Expected Results]

Jonathon, Pamela

Confirm Find Minimum functionality

Step Through until complete, Find Minimum

Rendered BST, Animation of findMin traversal, output message on completion.

[ Expected Results]

Jonathon, Pamela

What We Learned

Software Engineering involved a lot of documentation

Subversion shared files makes it very easy to share code with a team

You can’t always accomplish all of the goals you set forth

It is important to set goals realistically Documentation is key to the success of

project development and requires considering time and resource constraints.

Bibliography

“What is Plagiarism?” Plagiarism.org. Accessed March 28 2011. http://www.plagiarism.org/learning_center/what_is_plagiarism.html>

“Academic Honor Code.” UNCW 2011-2012 Undergraduate Catalogue. Wilmington, North Carolina: Dean of Students, updated 6 Aug 2009. 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>.

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

ed. New York: McGraw-Hill, 2010. Print.

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

Questions