1 Software Engineering Lecture 15 Object Oriented Software Design in Java.

Slides:



Advertisements
Similar presentations
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
Advertisements

Object-Oriented Programming Basics Prof. Ankur Teredesai, Computer Science Department, RIT.
Vladimir Misic: vm(at)cs.rit.edu 1 Object-Oriented Programming Basics Reading for this week † : BG UNIX 1,2,4,9 JAVA 0,1 † BG = Beginner’s Guide.
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Classes & Objects Computer Science I Last updated 9/30/10.
Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
Chapter 10 Introduction to Objects and Classess 1.
ACM/JETT Workshop - August 4-5, :Inheritance and Interfaces.
Introduction To System Analysis and Design
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
What is an object? Your dog, your desk, your television set, your bicycle. Real-world objects share two characteristics: They all have state and behavior;
Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Object-oriented Programming Concepts
C++ fundamentals.
State,identity and behavior of objects Sem III K.I.R.A.S.
UFCEUS-20-2 : Web Programming Lecture 5 : Object Oriented PHP (1)
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to Classes and Objects Outline Introduction Classes, Objects, Member Functions and Data.
1 Chapter 14 Object-Oriented Software Development.
Introduction to Object-oriented programming and software development Lecture 1.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
BCS 2143 Introduction to Object Oriented and Software Development.
Lecture 8 Inheritance Richard Gesick. 2 OBJECTIVES How inheritance promotes software reusability. The concepts of base classes and derived classes. To.
An Object-Oriented Approach to Programming Logic and Design
OBJECT ORIENTED PROGRAMMING CONCEPTS ISC 560. Object-oriented Concepts  Objects – things names with nouns  Classes – classifications (groups) of similar.
Introduction to Object Oriented Programming. Object Oriented Programming Technique used to develop programs revolving around the real world entities In.
Introduction To System Analysis and Design
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
1 Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill Chapter 2: Object Basics Object-Oriented Systems Development Using the Unified Modeling.
Design.ppt1 Top-down designs: 1. Define the Problem IPO 2. Identify tasks, Modularize 3. Use structure chart 4. Pseudocode for Mainline 5. Construct pseudocode.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Object-Oriented Programming •Object-Oriented Programming (OOP) allows you to create your program based upon modeling objects.  Your program’s properties.
Object-Oriented Programming with Java Lecture 1: Introduction Autumn, 2007.
Programming Paradigms Lecturer Hamza Azeem. What is PP ? Revision of Programming concepts learned in CPLB Learning how to perform “Object-Oriented Programming”
CSCI 1100/1202 April 1-3, Program Development The creation of software involves four basic activities: –establishing the requirements –creating.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
CS451 - Lecture 2 1 CS451 Lecture 2: Introduction to Object Orientation Yugi Lee STB #555 (816) * Acknowledgement:
1 Overview of Object-Oriented Software Design and Java Programming Putting the Pieces Together!
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Final Review. From ArrayLists to Arrays The ArrayList : used to organize a list of objects –It is a class in the Java API –the ArrayList class uses an.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
Inheritance CSI 1101 Nour El Kadri. OOP  We have seen that object-oriented programming (OOP) helps organizing and maintaining large software systems.
Introduction to Object-Oriented Programming Lesson 2.
JAVA Programming (Session 4) “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
CMSC 345 Fall 2000 OO Design. Characteristics of OOD Objects are abstractions of real-world or system entities and manage themselves Objects are independent.
Chapter 11 An introduction to object-oriented design.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Object Oriented Programming
JAVA By Waqas.
Object-Oriented Programming Basics
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
PRINCIPALES OF OBJECT ORIENTED PROGRAMMING
Section 11.1 Class Variables and Methods
Chapter 4: Writing Classes
Lecture 22 Inheritance Richard Gesick.
COP 3330 Object-oriented Programming in C++
Object Oriented Analysis and Design
Object-Oriented PHP (1)
Object-Oriented Programming
Programming For Big Data
CS 4310: Software Engineering
Presentation transcript:

1 Software Engineering Lecture 15 Object Oriented Software Design in Java

2 Analysis leads to Design  goals of the system  scenarios  properties of interest Analysis Design  identify the main events, actions and interactions  identify and define the main processes  identify and define the properties of interest  structure the processes into a design architecture  check properties of interest

3 Design leads to the Design Document Design Design Document  identify the main data design (structures)  identify component-level design  identity software interface design  identity user interface design

4 Design leads to Source Code Design Java  identify the main active entities  identify the main (shared) passive entities  structure the classes as a class diagram

5 Software Design Strategies FUNCTIONAL OBJECT-ORIENTED DECOMPOSITION DESIGN The solution is expressed in terms of objects (self-contained entities composed of data and operations on that data) that interact by sending messages to one another. The problem is divided into more easily handled subproblems, the solutions of which together create a solution to the overall problem.

6 Object-Oriented Design A technique for developing a program in which the solution is expressed in terms of objects -- self- contained entities composed of data and operations on that data. TextField setText getText Private data and methods setLayout add pack show Frame Private data and methods TextField Frame

7 Objects to Classes A class defines the pattern used when instantiating an object of that type. A class generally contains private data and public operations (called methods).

8 Superclass and Subclass Inheritance enables us to define a new class (called a subclass) that inherits the properties of an already existing class. The newly derived class is then specialized by adding properties specific to it. The class being inherited from is the superclass. The class that inherits properties is the subclass.

9 Defining Objects An object-oriented program consists of many objects. An object is composed of identity, state (attributes, data, and their current values) and behavior (operations).

10 Identity, State, Behavior Identity is the property of an object that distinguishes it from all other objects. The failure to recognize the difference between the name of the object and the object itself is the source of many errors in object-oriented (OO) programming.

11 Identity, State, Behavior The state of an object encompasses all of the (static) properties of the object plus the current (dynamic) values of each of these properties A property is an inherent or distinctive characteristic, trait, quality, or feature that contribute to making an object uniquely that object We will use the word attribute, or data member, to refer to the state of an object

12 Examples of State Properties Elevators travel up or down Vending machines accept coins Clocks indicate the current time Values Current floor Number of coins deposited The number of minutes since the last hour

13 Identity, State, Behavior Behavior is how an object acts and reacts, in terms of state changes and interactions with other objects. An operation is some action that one object performs upon another in order to elicit a reaction. We will use the word method to describe object behavior in java. Invoking a method causes the behavior to take place.

14 Classes Classes are the definitions (or blueprints) used to create objects. I’d say: descriptions of objects. To make a car the manufacturer must first have a design from which to build the first car. Then, once all the problems are worked out, the design is used to build all the cars of that model.

15 Objects An object is an instance of a class. If we have a class definition called Car, then we can think of Audi, BMW, and Corvette as each being an instance (object) of the class Car, i.e., they are each a type of car.

16 Object example Audi 6BMW Z3Corvette Notice that all objects are of the same type. All objects are cars! Car

17 Classes and Objects An object is an instance of exactly one class Corvette can not be an instance of a car class and an instance of a plane class at the same time. An instance of a class, an object, belongs to that particular class. A Corvette is a car  Corvette belongs to the class Car.

18 Classes Once a class is defined you can create as many instances of the class (objects from the class) as you would like. Once a blue print is completed for the 2003 Porsche 911, Porsche will use an assembly line to build as many instances of the 2003 Porsche 911 as they wish.

19 Defining a class Properties are variables which describe the essential characteristics of an object. Properties of a car: color, model, make, how many doors, transmission type, direction of movement, etc. Behaviors are methods that describe how the object behaves and how the properties may be modified. Behavior of a car: braking, changing gears, opening doors, moving forwards or backwards, etc.

20 Defining a class Behavior or Method 1 Behavior or or Method 4 Method 2 Behavior or Method 3 Properties or Instance Variables

21 Instance variables The class definition will include parameter definitions (properties) that represent data about a particular object, instance variables. Example, Joe's car may have 4 gallons of gas in it while John's car has 10 gallons. The amount of gas in each car may change without affecting the amount of gas in the any other cars. All instances (objects) of a class will have a set of instance variables that are specific to that individual object. The combination of the values of these instance variables is known as the object’s state.

22 Instance variables Audi 6BMW Z3Corvette Car MaxSpeed = 155MaxSpeed = 165MaxSpeed = 145 MaxSpeed

23 Class variables The class definitions may also include parameter definitions that represent data that is shared by all class instances (objects), called class variables. In the case of the car class, we will define a maximum allowed speed, by the law (variable MaxSpeed). This will be the same for each individual car.

24 Class variables Audi 6BMW Z3Corvette Car MaxSpeed = 155MaxSpeed = 165MaxSpeed = 145 MaxSpeed MaxSpeed=155

25 Class variables Class variables may also be used to keep track of things such as how many instances of a class exist. Example: let’s create a counter the records how many cars are in the garage.

26 Class variables Audi 6BMW Z3Corvette Car MaxSpeed = 155MaxSpeed = 165MaxSpeed = 145 MaxSpeed MaxSpeed=155 NumCars = 3

27 Messages For Objects The object to whom the message is being sent. The name of the method that object is to execute. Any parameters (variables) needed by that method. For Humans Who the message is for. What we want the person to do. What information is needed to do it. Audi 6 turnOnHazard()

28 Messages and Methods In order to process a message, an object needs to have a method defined for the requested task. A method is a small, well-defined piece of code that completes a specific task. For our previous example, we need to define a method to turn on the car's hazard lights.

29 Messages and Methods Audi 6BMW Z3Corvette Car MaxSpeed = 155 turnOnHazard() MaxSpeed = 165 turnOnHazard() MaxSpeed = 145 turnOnHazard() MaxSpeed MaxSpeed=155 NumCars = 3 turnOnHazard()

30 Instance methods Each class can have methods that are specific to each object, called instance methods. These can only affect that object's parameters, i.e., it’s instance variables. Example: If BMW has 4 gallons of gas and someone puts 6 more gallons of gas in his/her car, the car now has 10 gallons. The amount of gas in Audi and Corvette is unchanged.

31 Messages and Methods Audi 6BMW Z3Corvette Car MaxSpeed = 155 turnOnHazard() addGass(amount) MaxSpeed = 165 turnOnHazard() addGass(amount) MaxSpeed = 145 turnOnHazard() addGass(amount) MaxSpeed MaxSpeed=155 NumCars = 3 turnOnHazard() addGass(amount)

32 Methods It is also possible that you want information from an object; in this case, you would define a method that sends (returns) a message back to the requester containing that information. We need to know how much gas is in our cars, so we will create a new method that returns the value of GasLevel variable for our car.

33 Messages and Methods Audi 6BMW Z3Corvette Car MaxSpeed = 155 GasLevel = 4 turnOnHazard() addGass(amount) getGasLevel():GasLevel MaxSpeed = 165 GasLevel = 10 MaxSpeed = 145 GasLevel = 6 turnOnHazard() addGass(amount) getGasLevel():GasLevel MaxSpeed GasLevel MaxSpeed=155 NumCars = 3 addGass(amount)getGasLevel():GasLevel turnOnHazard() addGass(amount)getGasLevel():GasLevel turnOnHazard()

34 Class methods Class methods are used to get or manipulate information about all objects created from the class. Typically, class methods are changing class variables. For example: Each time we move the car in or out of the garage, we need to add/subtract one to the number of cars: carIn( ) & carOut( ) Also, we may want to know how many cars are actually in the garage: getNumCars( )

35 Messages and Methods Audi 6BMW Z3Corvette Car MaxSpeed = 155 GasLevel = 4 turnOnHazard() addGass(amount) getGasLevel():GasLevel MaxSpeed = 165 GasLevel = 10 turnOnHazard() addGass(amount) getGasLevel():GasLevel MaxSpeed = 145 GasLevel = 6 turnOnHazard() addGass(amount) getGasLevel():GasLevel MaxSpeed GasLevel MaxSpeed=155 NumCars = 3 addGass(amount)getGasLevel():GasLevel turnOnHazard() carIn() carOut() getNumCars():NumCars

36 Object Oriented Programming When writing object-oriented programs, first one must define the classes (like Car). Then, while the program is running, the instances of the classes (objects) (such as Audi, BMW, Corvette in our example) are created.

37 Object Oriented Programming - Benefits An object can be written and maintained separately from the rest of the program, modularity. An object has a “public face” that it uses to communicate with other objects, but other objects can not directly access its instance variables, information hiding.

38 Inheritance All classes in Java are organized into a class hierarchy. The highest level classes are very general and the lower level classes are more specific. The lower level classes are based upon the higher level classes and inherit instance variables and methods from those higher level class. They also may contain their own (new) instance variables and methods beyond the higher level class definition.

39 Inheritance A higher level class is called a superclass; a lower level class is called a subclass. A subclass may also be a superclass Inheritance allows you to define certain behaviors once and then to reuse those behaviors over and over again in the subclasses. This is called reusability.

40 Inheritance Our Car class is very general. Let's define a new class called BMW that contains the parameters: model, color, engine size.

41 Inheritance Car MaxSpeed GasLevel MaxSpeed=155 turnOnHazard() addGass(amount) getGasLevel():GasLevel BMW Model Color EngineSize MaxSpeed GasLevel turnOnHazard() addGass(amount) getGasLevel():GasLevel

42 Inheritance Now let's define two new classes. One for the Z3 and another for the 3 Series Sedan. What might be some of the differences between the two classes? Number of doors (3, 5) Roof (soft or hardtop) Therefore, we add variables NumDoors and Roof

43 Inheritance Car MaxSpeed GasLevel MaxSpeed=155 turnOnHazard() addGass(amount) getGasLevel():GasLevel BMW Model Color EngineSize MaxSpeed GasLevel turnOnHazard() addGass(amount) getGasLevel():GasLevel Z3 Model Color EngineSize Roof MaxSpeed GasLevel turnOnHazard() addGass(amount) getGasLevel():GasLevel 3 series Model Color EngineSize NumDoors MaxSpeed GasLevel turnOnHazard() addGass(amount) getGasLevel():GasLevel

44 Views of the class A class can be viewed as a sort of contract that specifies what instances of the class can, and cannot do It is possible to distinguish between the outside and inside view of a class The interface of a class provides its outside view and emphasizes the abstraction The implementation of a class is its inside view

45 Access Most classes provide three levels of access to their members (state and behavior): Public The part of the class that is visible to all clients of the class Protected The part of the class that is only visible to subclasses of the class Private A part of the class that is not visible to any other classes

46 Project Work Next project deliverable – Design Specification Document Last deliverable - Prototype