Upload
gordon-turner
View
214
Download
1
Embed Size (px)
Citation preview
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
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 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
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
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.