chapter 1
Download
Skip this Video
Download Presentation
Chapter 1

Loading in 2 Seconds...

play fullscreen
1 / 49

Chapter 1 - PowerPoint PPT Presentation


  • 101 Views
  • Uploaded on

Chapter 1. Software Engineering Principles and Java Classes. Chapter Objectives. Learn about software engineering principles Discover what an algorithm is and explore problem-solving techniques Become aware of structured design and object-oriented design programming methodologies

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Chapter 1' - hamish-walls


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
chapter 1

Chapter 1

Software Engineering Principles and Java Classes

Data Structures Using Java

chapter objectives
Chapter Objectives
  • Learn about software engineering principles
  • Discover what an algorithm is and explore problem-solving techniques
  • Become aware of structured design and object-oriented design programming methodologies
  • Learn about user-defined classes
  • Learn about private, protected, and public members of a class

Data Structures Using Java

chapter objectives1
Chapter Objectives
  • Explore how classes are implemented
  • Become aware of Unified Modeling Language (UML) notation
  • Examine constructors and destructors
  • Learn about the abstract data type (ADT)
  • Explore how classes are used to implement ADT

Data Structures Using Java

software life cycle
Software Life Cycle
  • Life cycle: the many phases a program goes through from the time it is conceived until the time it is retired
  • Three fundamental stages of a program
    • Development
    • Use
    • Maintenance

Data Structures Using Java

software development phase
Software Development Phase
  • Analysis
    • Understand problem
    • Requirements analysis
    • Data analysis
    • Divide problem into subproblems and perform analysis

Data Structures Using Java

software development phase1
Software Development Phase
  • Design
    • Algorithm
    • Structured design
      • Divide problem into subproblems and analyze each subproblem
    • Object-oriented design
      • Identify components (objects) which form the basis of solution
      • Determine how these objects interact with one another

Data Structures Using Java

software development phase2
Software Development Phase
  • Three basic principles of object-oriented design (OOD)
    • Encapsulation: ability to combine data and operations in a single unit
    • Inheritance: ability to create new data types from existing data types
    • Polymorphism: ability to use the same expression to denote different operations

Data Structures Using Java

software development phase3
Software Development Phase
  • Implementation
    • Write and compile programming code to implement classes and functions discovered in design phase

Data Structures Using Java

software development phase4
Software Development Phase
  • Testing and Debugging
    • Test the correctness of the program to make sure it does what it is supposed to do
    • Find and fix errors
    • Run program through series of specific tests, test cases

Data Structures Using Java

software development phase5
Software Development Phase
  • Testing and Debugging
    • Black-box testing: test based on inputs and outputs not the internal working of the algorithm or function
    • White-box testing: relies on the internal structure and implementation of a function or algorithm; ensures that every part of the function or algorithm executes at least once

Data Structures Using Java

algorithm analysis the big o notation
Algorithm Analysis: The Big-O Notation

Data Structures Using Java

algorithm analysis the big o notation1
Algorithm Analysis: The Big-O Notation

Data Structures Using Java

algorithm analysis the big o notation2
Algorithm Analysis: The Big-O Notation

Data Structures Using Java

algorithm analysis the big o notation3
Algorithm Analysis: The Big-O Notation

Data Structures Using Java

algorithm analysis the big o notation4
Algorithm Analysis: The Big-O Notation
  • Definition: Let f be a function of n.The term “asymptotic” means the study of the function f as n becomes larger and larger without bound.

Data Structures Using Java

asymptotic notation o
Asymptotic Notation (O)
  • Definitionf(n) = O(g(n)) iff there exist positive constants c and n0 such that f(n)  cg(n) for all n, n  n0.
  • Examples
    • 3n+2=O(n) /* 3n+24n for n2 */
    • 3n+3=O(n) /* 3n+34n for n3 */
    • 100n+6=O(n) /* 100n+6101n for n10 */
    • 10n2+4n+2=O(n2) /* 10n2+4n+211n2 for n5 */
    • 6*2n+n2=O(2n) /* 6*2n+n2 7*2n for n4 */

Data Structures Using Java

algorithm analysis the big o notation5
Algorithm Analysis: The Big-O Notation

Data Structures Using Java

slide18
O(1): constant
  • O(n): linear
  • O(n2): quadratic
  • O(n3): cubic
  • O(2n): exponential
  • O(logn)
  • O(nlogn)

Data Structures Using Java

slide19

nlogn

n

logn

Data Structures Using Java

classes
Classes
  • class: reserved word; collection of a fixed number of components
  • Components: member of a class
  • Members accessed by name
  • Class categories/modifiers
    • Private
    • Protected
    • public

Data Structures Using Java

classes1
Classes
  • private: members of class not accessible outside class
  • public: members of class accessible outside class
  • Class members: can be methods or variables
  • Variable members declared like any other variables

Data Structures Using Java

syntax
Syntax
  • General syntax for defining a class:

modifier(s) class ClassIdentifier modifier(s)

{

classMembers

}

  • General syntax for using the operator new:

new className()

or

new className(argument1, argument2, ..., argumentN)

Data Structures Using Java

classes2
Classes
  • Syntax to access data member of class object or method:

referenceVariableName.memberName

  • Shallow copying: two or more reference variables of the same type point to the same object
  • Deep copying: each reference variable refers to its own object

Data Structures Using Java

constructors
Constructors
  • Guarantee that data members are initialized when object is declared
  • Automatically execute when class object created
  • Name of constructor is name of class
  • More than one constructor can be present in one class
  • Default constructor: constructor without parameters

Data Structures Using Java

the copy constructor
The Copy Constructor
  • Executes when an object is instantiated
  • Initialized using an existing object
  • Syntax

public ClassName(ClassName otherObject)

Data Structures Using Java

uml diagram
UML Diagram

Data Structures Using Java

uml diagram1
UML Diagram
  • Top box: Name of class
  • Middle box: data members and their data types
  • Bottom box: member methods’ names, parameter list, return type of method
  • + means public method
  • - means private method
  • # means protected method

Data Structures Using Java

example class clock
Example: class Clock

myClock = new Clock();

yourClock = new Clock(9,35,15);

Data Structures Using Java

example class clock1
Example: class Clock

Data Structures Using Java

example class clock2
Example: class Clock

Data Structures Using Java

the method tostring
The Method toString
  • Public value-returning method
  • Takes no parameters
  • Returns address of String object
  • Output using print and println methods
  • Default definition creates String with name of object’s class name followed by hash code of object

Data Structures Using Java

the modifier static
The Modifier Static
  • In method heading, specifies that method can be invoked by using name of class
  • If used to declare data member, data member invoked by using class name
  • Static data members of class exist even when no object of class type instantiated
  • Static variables are initialized to their default values

Data Structures Using Java

static data members of a class
static Data Members of a Class

Illustrate illusObject1 = new Illustrate(3);

Illustrate illusObject2 = new Illustrate(5);

Data Structures Using Java

finalizers
Finalizers
  • Automatically execute when class object goes out of scope
  • Have no parameters
  • Only one finalizer per class
  • Name of finalizer: finalize

Data Structures Using Java

creating packages
Creating Packages
  • Can create packages using reserved word package
    • Define the class to be public (If class not public it can only be used within package)
    • Choose name for package. Organize package (create subdirectories)

Data Structures Using Java

the reference this
The Reference this
  • Refers to instance variables and methods of a class
  • Used to implement cascaded method calls

Data Structures Using Java

inner classes
Inner Classes
  • Defined within other classes
  • Can be either a complete class definition or anonymous inner class definition
  • Used to handle events

Data Structures Using Java

abstract data types
Abstract Data Types
  • Definition:

A data type that specifies the logical properties without the implementation details

Data Structures Using Java

programming example candy machine problem statement
Programming Example: Candy Machine (Problem Statement)
  • A common place to buy candy is from a candy machine. A new candy machine is bought for the gym, but it is not working properly. The machine sells candies, chips, gum, and cookies. You have been asked to write a program for this candy machine so that it can be put into operation.
  • The program should do the following:

1. Show the customer the different products sold by the candy machine.

2. Let the customer make the selection.

3. Show the customer the cost of the item selected.

4. Accept money from the customer.

5. Release the item.

Data Structures Using Java

programming example candy machine input and output
Programming Example: Candy Machine (Input and Output)
  • Input
    • Item Selection
    • Cost of Item
  • Output
    • The selected item

Data Structures Using Java

programming example candy machine
Programming Example: Candy Machine
  • Components
    • Cash Register
    • Several Dispensers

Data Structures Using Java

programming example candy machine1
Programming Example: Candy Machine

Data Structures Using Java

programming example candy machine2
Programming Example: Candy Machine

Data Structures Using Java

programming example candy machine3
Programming Example: Candy Machine

Object chips

Data Structures Using Java

programming example candy machine4
Programming Example: Candy Machine

Sample Run: In this sample run, the user input is shaded.

*** Welcome to Shelly\'s Candy Shop ***

To select an item, enter

1 for Candy

2 for Chips

3 for Gum

4 for Cookies

9 to exit

1

Please deposit 50 cents

50

Collect your item at the bottom and enjoy.

Data Structures Using Java

object oriented design
Object-Oriented Design
  • Simplified methodology

1. Write down detailed description of problem

2. Identify all (relevant) nouns and verbs

3. From list of nouns, select objects

4. Identify data components of each object

5. From list of verbs, select operations

Data Structures Using Java

object oriented design example
Object-Oriented Design Example
  • Problem Statement
    • Write a program to input the dimensions of a cylinder and calculate and print the surface area and volume
  • Nouns
    • Dimensions, surface area, volume, cylinder

Data Structures Using Java

chapter summary
Chapter Summary
  • Software Life Cycle
    • Development, Use, Maintenance
  • Algorithm Analysis: The Big-O Notation
  • Classes
  • UML Diagram
  • Constructors, Destructors
  • Abstract Data Types

Data Structures Using Java

chapter summary1
Chapter Summary
  • Software Development Phase
    • Analysis
    • Design
      • Structured design
      • Object-oriented design
        • Encapsulation, Inheritance, Polymorphism
    • Implementation
    • Testing and Debugging

Data Structures Using Java

ad