Understanding General Software Development Lesson 3.

Slides:



Advertisements
Similar presentations
Abstract Data Types and Algorithms
Advertisements

Stack & Queues COP 3502.
Review of Stacks and Queues Dr. Yingwu Zhu. Our Focus Only link-list based implementation of Stack class Won’t talk about different implementations of.
Stacks, Queues, and Deques. 2 A stack is a last in, first out (LIFO) data structure Items are removed from a stack in the reverse order from the way they.
CS 106 Introduction to Computer Science I 12 / 06 / 2006 Instructor: Michael Eckmann.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
CS 206 Introduction to Computer Science II 10 / 15 / 2008 Instructor: Michael Eckmann.
CS 206 Introduction to Computer Science II 10 / 26 / 2009 Instructor: Michael Eckmann.
1 Data Structures  We can now explore some advanced techniques for organizing and managing information  Chapter 12 of the book focuses on: dynamic structures.
CS 106 Introduction to Computer Science I 03 / 03 / 2008 Instructor: Michael Eckmann.
TCSS 342, Winter 2005 Lecture Notes
Chapter 12 Collections. © 2004 Pearson Addison-Wesley. All rights reserved12-2 Collections A collection is an object that helps us organize and manage.
Programming Logic and Design Fourth Edition, Comprehensive
1 Stack Data : a collection of homogeneous elements arranged in a sequence. Only the first element may be accessed Main Operations: Push : insert an element.
Stacks, Queues, and Deques. A stack is a last in, first out (LIFO) data structure –Items are removed from a stack in the reverse order from the way they.
Stacks, Queues, and Deques
© 2004 Pearson Addison-Wesley. All rights reserved12-1 Chapter 12 : Collections Intermediate Java Programming Summer 2007.
C o n f i d e n t i a l Developed By Nitendra NextHome Subject Name: Data Structure Using C Title: Overview of Data Structure.
Copyright © Wondershare Software Introduction to Data Structures Prepared by: Eng. Ahmed & Mohamed Taha.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 5: Stacks and Queues.
CHAPTER 05 Compiled by: Dr. Mohammad Omar Alhawarat Stacks & Queues.
ISOM MIS 215 Module 3 – Stacks and Queues. ISOM Where are we? 2 Intro to Java, Course Java lang. basics Arrays Introduction NewbieProgrammersDevelopersProfessionalsDesigners.
© 2006 Pearson Education Chapter 12: Data Structures Presentation slides for Java Software Solutions for AP* Computer Science A 2nd Edition by John Lewis,
Business Analysis and Essential Competencies
Data Structures Week 5 Further Data Structures The story so far  We understand the notion of an abstract data type.  Saw some fundamental operations.
Stacks and Queues Introduction to Computing Science and Programming I.
Chapter 8: Data Abstractions Senem Kumova Metin. 8-2 Chapter 8: Data Abstractions 8.1 Basic Data Structures – Arrays – Lists, Stacks, Queues – Trees 8.2.
Adapted from instructor resources Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights.
Chapter 15: Advanced Topics: Introducing Data Structures and Recursion Visual Basic.NET Programming: From Problem Analysis to Program Design.
Chapter 10 Strings, Searches, Sorts, and Modifications Midterm Review By Ben Razon AP Computer Science Period 3.
CS 46B: Introduction to Data Structures July 9 Class Meeting Department of Computer Science San Jose State University Summer 2015 Instructor: Ron Mak
Chapter 9 (modified) Abstract Data Types and Algorithms Nell Dale John Lewis.
Chapter 9 Abstract Data Types and Algorithms Nell Dale John Lewis.
9-1 Abstract Data Types Abstract data type A data type whose properties (data and operations) are specified independently of any particular implementation.
Data Structures (part 2). Stacks An Everyday Example Your boss keeps bringing you important items to deal with and keeps saying: “Put that last ‘rush’
Data structures Abstract data types Java classes for Data structures and ADTs.
ELC 310 Day 24. © 2004 Pearson Addison-Wesley. All rights reserved12-2 Agenda Questions? Problem set 5 Parts A & B Corrected  Good results  2 A’s, 1.
CSE 501N Fall ‘09 11: Data Structures: Stacks, Queues, and Maps Nick Leidenfrost October 6, 2009.
COP INTERMEDIATE JAVA Data Structures. A data structure is a way of organizing a collection of data so that it can be manipulated effectively. A.
Understanding Data Types and Collections Lesson 2.
Chapter 12: Collections by Lewis and Loftus (Updated by Dan Fleck) Coming up: Collections.
Foundation of Computing Systems Lecture 3 Stacks and Queues.
1 Linked-list, stack and queue. 2 Outline Abstract Data Type (ADT)‏ Linked list Stack Queue.
Arrays and Collections Tonga Institute of Higher Education.
Standard Template Library The Standard Template Library was recently added to standard C++. –The STL contains generic template classes. –The STL permits.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Linked List by Chapter 5 Linked List by
Chapter 16 – Data Structures and Recursion. Data Structures u Built-in –Array –struct u User developed –linked list –stack –queue –tree Lesson 16.1.
Data Structures Chapter 6. Data Structure A data structure is a representation of data and the operations allowed on that data. Examples: 1.Array 2.Record.
© 2006 Pearson Addison-Wesley. All rights reserved5 B-1 Chapter 5 (continued) Linked Lists.
Chapter 5 Linked List by Before you learn Linked List 3 rd level of Data Structures Intermediate Level of Understanding for C++ Please.
April 27, 2017 COSC Data Structures I Review & Final Exam
Data Structures David Kauchak cs302 Spring Data Structures What is a data structure? Way of storing data that facilitates particular operations.
Data Structure and Algorithms
Understanding General Software Development Lesson 3.
BITS Pilani Pilani Campus Data Structure and Algorithms Design Dr. Maheswari Karthikeyan Lecture3.
List Structures What is a list? A homogeneous collection of elements with a linear relationship between the elements linear relationship - each element.
1 Lecture 9: Stack and Queue. What is a Stack Stack of Books 2.
CPS120: Introduction to Computer Science Sorting.
Understanding Data Types and Collections Lesson 2.
Software Testing.
Understanding Algorithms and Data Structures
Top 50 Data Structures Interview Questions
Objectives In this lesson, you will learn to: Define stacks
structures and their relationships." - Linus Torvalds
structures and their relationships." - Linus Torvalds
Data Structures and Algorithms for Information Processing
Stacks, Queues, and Deques
structures and their relationships." - Linus Torvalds
Presentation transcript:

Understanding General Software Development Lesson 3

Objective Domain Matrix Skills/ConceptsMTA Exam Objectives Understanding Application Lifecycle Management Understand application lifecycle management (3.1) Understanding TestingUnderstand application lifecycle management (3.1) Understanding Data StructuresUnderstand algorithms and data structures (3.3) Understanding Sorting Algorithms Understand algorithms and data structures (3.3)

Application Lifecycle Management (ALM) Application lifecycle management (ALM) is the set of activities that revolve around a new software product, from its inception to when the product matures.

Requirements Requirements analysis is the process of determining the detailed business requirements for a new software system. A business analyst is responsible for analyzing business needs and converting them into requirements that can be executed by the development team.

Design The design activity is used to create plans, models, and architecture for how the software will be implemented. Participants –Architect –User-experience Designer

Development The software development activity involves implementing design by creating software code, databases, and other related content. Participants –Developers –Database Administrators (DBAs) –Technical Writers –Content Developers

Testing Testing is used to assure the quality of the final product. Identifies possible gaps between the system expectations described in the requirements document and actual system behavior. Participants –Testers

Understanding Testing Software testing is the process of verifying software against its requirements. Software testing can only help find defects— it cannot guarantee the absence of defects. It is much more cost-effective to find defects earlier (rather than later) in the product development cycle.

Testing Methods Black-box Testing –Focusing solely on inputs and outputs. –Any knowledge of internal system workings is not used for testing. –Is used to make sure a software application covers all its requirements. White-box Testing –Testers use their knowledge of system internals when testing the system. –Is used to make sure that each method or function has proper test cases available.

Testing Levels Unit Testing –Verifies the functionality of a unit of code. Integration Testing –Assesses the interface between software components. System Testing –Overall testing of the software system. Regression Testing –Makes sure that each new fix doesn’t break anything that was previously working.

Understanding Data Structures Data structures are techniques for organizing and storing data in computer memory. Understanding a data structure involves –Understanding the storage pattern, –Understanding what methods are used to create, access, and manipulate the data structure. Common data structures –Arrays –Queues –Stacks –Linked Lists

Arrays An array is a collection of items of the same type. The items in an array are stored in contiguous memory locations. Capacity of an array is predefined and fixed. Any array item can be directly accessed by using an index. C# array indexes are zero-based.

Array - Internal Representation

Array – Common Operations Arrays support the following operations: –Allocation –Access Following code assigns a value of 10 to the fourth item of the array, and twice that value is then assigned to the variable calc:

Queues A collection of items in which the first item added to the collection is the first one to be removed. First In First Out (FIFO). Queue is a heterogeneous data structure. Capacity of a queue is the number of items the queue can hold. As elements are added to the queue, the capacity can be automatically increased.

Queues – Internal Representation

Queues – Common Operations Enqueue: Adds an item to the tail end of the queue. Dequeue: Removes the current element at the head of the queue. Peek: Access the current item at the head position without actually removing it from the queue. Contains: Determines whether a particular item exists in the queue.

Stacks A collection of items in which last item added to the collection is the first one to be removed. Last In First Out (LIFO). Stack is a heterogeneous data structure. Capacity of a stack is the number of items the queue can hold. As elements are added to the stack, the capacity can be automatically increased.

Stacks – Internal Representation A stack can be visualized just like the queue, except that the tail is called the top of the stack and the head is called the bottom of the stack. New items are always added to the top of a stack; when this happens, the top of the stack starts pointing to the newly added element. Items are also removed from the top of the stack, and when that happens, the top of the stack is adjusted to point to the next item in the stack.

Stack – Common Operations Push: Adds item to the top of the stack. Pop: Removes the element at the top of the stack. Peek: Access the current item at the top of the stack without actually removing it from the stack. Contains: Determines whether a particular item exists in the stack.

Linked Lists A linked list is a collection of nodes arranged so that each node contains a link to the next node in the sequence. Each node in a linked list contains of two pieces of information: –the data corresponding to the node –the link to the next node

Linked Lists – Internal Representation A singly linked list

Linked Lists – Internal Representation A doubly linked list

Linked Lists – Common Operations Add: Adds an item to a linked list. Remove: Removes a given node from the linked list. Find: Finds a node with a given value in the linked list.

Linked Lists – Visualizing the add Operation Adding an item to a linked list is a matter of changing links.

Understanding Sorting Algorithms Sorting algorithms are algorithms that arrange the items in a list in a certain order. Understanding sorting algorithms can help you understand, analyze, and compare different methods of problem solving. BubbleSort and QuickSort are two of many sorting algorithms.

BubbleSort BubbleSort works by comparing two elements to check whether they are out of order; if they are, it swaps them. The algorithm continues to do this until the entire list is in the desired order. BubbleSort gets its name from the way the algorithm works: As the algorithm progresses, the smaller items are “bubbled” up.

Visualizing BubbleSort – Pass 1

Visualizing BubbleSort – Pass 2

Visualizing BubbleSort – Pass 3

QuickSort The QuickSort algorithm uses the divide-and- conquer technique to continually partition a list until the size of the problem is small and doesn’t require any sorting. QuickSort algorithm works much faster than BubbleSort.

Visualizing QuickSort

Recap Application Lifecycle Management –Requirement Analysis –Software Development –Testing –Release Management Testing Methods –Black-box Testing –White-box Testing

Recap Testing Levels –Unit testing, integration testing, system testing, acceptance testing Data Structures –Arrays –Queues –Stacks –Linked Lists Sorting Algorithms: BubbleSort, QuickSort