Visual Learning Platform for Advanced Algorithms Development and Testing
320 likes | 440 Vues
Algovision is an innovative project designed to enhance students' programming skills by providing a visual and abstract understanding of core algorithms, vital in Data Structures and Scientific Computing. This interactive platform facilitates easier comprehension of complex algorithms, ultimately supporting students' educational growth and career advancement. It encompasses structured implementation, comprehensive testing, and quality assurance practices while promoting active team collaboration. Key features include user-friendly interfaces and detailed algorithm demonstrations to ensure effective learning outcomes.
Visual Learning Platform for Advanced Algorithms Development and Testing
E N D
Presentation Transcript
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.