Download presentation
Presentation is loading. Please wait.
1
Chapter 1 Introduction
2
Chapter Scope Aspects of software quality
Introduction to data structures Java Software Structures, 4th Edition, Lewis/Chase
3
Software Development Software Engineering involves the study of the techniques and theory that support the development of high-quality software The focus is on controlling the development process to achieve consistently good results As software developers, we want to: satisfy the client (the person or organization who sponsors the development) meet the needs of the user (people using the software for its intended purpose) Java Software Structures, 4th Edition, Lewis/Chase
4
Goals of Software Engineering
Solve the right problem more difficult than it might seem client interaction is key Deliver a solution on time and under budget there are always trade-offs Deliver a high-quality solution Quality means different things to different people There are a variety of quality characteristics to consider (next slide) beauty is in the eye of the beholder we must consider the needs of various stakeholders Accomplish it all in an ethical manner Java Software Structures, 4th Edition, Lewis/Chase
5
Aspects of Software Quality
(different computer architecture, OS) (cpu time, memory space) Java Software Structures, 4th Edition, Lewis/Chase
6
Data Structures Consider a physical example that illustrate the need for and various approaches to data structures: shipping containers at a dock The containers must be managed carefully (none can be lost). The loading / unloading / storing / retrieving process must be efficient. We assume that the containers are generic (all having the same shape and size) but can contain different cargo Each container has an identification number The workers (container handlers) don't need to know what's inside the containers ship warehouse transport to destination Java Software Structures, 4th Edition, Lewis/Chase
7
Data Structures Many issues come up
How many might we need to hold at any point? How do we keep them organized? As one long line or as a grid? Sorted by id or by contents? Does the order in which they will be unloaded or loaded onto ships matter? maximum size 1D array or 2D array? ordered list , priority queue (highest priority retrieved first), or map (key-value pairs)? Needed first loaded first ? Needed first loaded last? Java Software Structures, 4th Edition, Lewis/Chase
8
Data Structures Ship: load / unload Warehouse: store / retrieve
Note: Unloading the containers from the ship will reverse the order of the loading process Warehouse: store / retrieve Needed first (A) loaded first Needed first (A) loaded last Loading order : Loading order : Ship A B C D D C B A Unloading order : Unloading order : LIFO (Stack) LIFO (Stack) Storing order : Storing order : Warehouse D C B A A B C D Retrieving order : Retrieving order : LIFO (Stack) FIFO (Queue) Java Software Structures, 4th Edition, Lewis/Chase
9
Data Structures It turns out no one solution will address all issues adequately Sometimes we'll need to stack them (to reverse the order) Sometimes we'll want to take them in the order they arrive Sometimes more complex solutions are required Stack (Ch03) Queue (Ch05) Binary search tree (Ch11), multi-way search tree (Ch14) Java Software Structures, 4th Edition, Lewis/Chase
10
Data Structures This course will explore many options for managing the objects we use in our software Quality issues as well as flexibility will be important factors Java Software Structures, 4th Edition, Lewis/Chase
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.