320 likes | 436 Views
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.
E N D
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
GANTT CHART Overall timeline of project phases and development.
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
Architectural Model – Layered Three tiered layered architecture of the AlgoVision system
Architectural Model – Client/server Client/Server architecture of the AlgoVision system
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 Tree page sequence diagram
Sequence Diagram - Example 2 Main page sequence diagram
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
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 developmentand 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.