What Is Object-Oriented Design? (Chapter 1). Software Development Life Cycle 1. Problem statement and requirements 2. Solution specification 3. Code design.

Slides:



Advertisements
Similar presentations
1 9 Moving to Design Lecture Analysis Objectives to Design Objectives Figure 9-2.
Advertisements

Programming System development life cycle Life cycle of a program
Software Testing and Quality Assurance
Component-Level Design
Fall 2007CS 225 Introduction to Software Design Chapter 1.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Computers: Tools for an Information Age
Fall 2007CS 2251 Software Engineering Intro. Fall 2007CS 2252 Topics Software challenge Life-cycle models Design Issues Documentation Abstraction.
Establishing the overall structure of a software system
PERTEMUAN 7 Copyright © 2002 Pearson Education, Inc.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter 1 Program Design
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
CSC230 Software Design (Engineering)
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
C++ fundamentals.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Structured Vs. Object Oriented Analysis and Design SAD Vs. OOAD
6 Systems Analysis and Design in a Changing World, Fourth Edition.
Programming Languages – Coding schemes used to write both systems and application software A programming language is an abstraction mechanism. It enables.
System Analysis & Design Introduction: System Analysis and design course intents to help students understand its importance in developing systems that.
Welcome to OBJECT ORIENTED PROGRAMMIN Date: 10/09/2014 Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
IAY 0600 Digital Systems Design
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
INTRODUCTION TO COMPUTING CHAPTER NO. 06. Compilers and Language Translation Introduction The Compilation Process Phase 1 – Lexical Analysis Phase 2 –
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Unified Modeling Language, Version 2.0
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
SOFTWARE DESIGN.
Chapter 9 Moving to Design
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
SE: CHAPTER 7 Writing The Program
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
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.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
CSCI-365 Computer Organization Lecture Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson.
Lecture 2: Review of Object Orientation. © Lethbridge/La ganière 2005 Chapter 2: Review of Object Orientation What is Object Orientation? Procedural.
ANU comp2110 Software Design lecture 10 COMP2110 Software Design in 2004 lecture 10 Software Architecture 2 of 2 design lecture 5 of 6 Goal of this small.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Chapter 2 Principles of Programming and Software Engineering.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
System is a set of interacting or interdependent components forming an integrated whole.
Advanced Computer Systems
SOFTWARE DESIGN AND ARCHITECTURE
Ch. 7 Programming Languages
Chapter 0 : Introduction to Object Oriented Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Presentation transcript:

What Is Object-Oriented Design? (Chapter 1)

Software Development Life Cycle 1. Problem statement and requirements 2. Solution specification 3. Code design 4. Code implementation 5. Code testing and debugging 6. Code delivery 7. Code maintenance

New Focus " In previous courses you have mostly done just 4 and 5 (implementation and testing/debugging) " This course will add 2 and 3 (specification and design) using OOD.

What Is Design? Design: an abstract description of how something is built. Example: descriptions of a CD player: 1. Information level (ones and zeros) 2. Functional level (how it is used) 3. Physical level (what its parts are) - fig. 1-1

Block Diagram of a CD Player (fig. 1-1) Laser control Data Processor D/A Converter Controller LCD Displa y Audio Outpu t Input Panel Data Audio Index Data

Another Example Descriptions of a house: 1. Realtor point of view 2. Architect point of view 3. Materials science point of view Each level or point of view must use ABSTRACTION. Examples of abstraction are models and diagrams.

Abstraction Abstraction is the process of hiding details about an object while still describing its functionality. The physical description of a CD player hides the details of its functional use. The realtor's point of view of a house hides the details of the architectural point of view. Any design, by necessity, must hide details.

Design Hierarchy Example House Living Room Dining Room KitchenBathroomBedroom 1... Floor Covering Wall Covering Shower?

Factors In Design Quality  Relative level of detail: should be appropriate for audience  Number of top-level components: 5 to 10  Depth of hierarchy: should be appropriate for audience

Presenting Designs With Diagrams  Hierarchical block diagrams  Data-flow diagrams (as in fig. 1-1)  Class diagrams  Message-trace diagrams  State diagrams

Approaches to Design by Abstraction  Procedural oriented design (control oriented) -- see next slide  Data oriented design (of which object oriented design is an example)

Procedural Design of Screen Editor (fig. 1-2) Control Get Next Command Refresh Display Process Command Read Input Determine Command...

Procedural Design  In terms of modules, procedures, and data structures (machine oriented objects)  There is a specific linear order to what needs to be done  Control more important than data  HOWEVER, most real world problems do not conform to this model (consider business and game applications)  Often better to break up a problem by looking at data flow

Data-flow Diagram of a Compiler (fig. 1-3) Parse Trees Token Stream Source File Symbol Table Object File Lexical Analysis Parse Trees Parser Symbol Resolution Code Generation

Passive vs. Active Data  Passive Data  Numbers  Strings  Simple structures  Real world data often more complex than this  Active Data: data elements which "know how to do things," to themselves and other elements (virtual computers in software) Such active data elements are also called "objects"

Solar System as Objects (fig. 1-4) Solar System components:List update() Subsystem position: Vector mass:Real components:List update() Body position: Vector velocity:Vector mass:Real update() Simple Objects for a Solar-System Simulation

Object-Oriented Design (OOD)  Describes a solution to a problem in terms of active data elements or objects (application oriented rather than machine oriented)  An object is a composition of data and operations  An object is like a "wrapper" around data, providing functionality to it  Objects with the same data types and operations are grouped together in a class  "Object" is sometimes used ambiguously to refer to both classes and individual objects

Keys to Constructing an Object- Oriented Design 1)Understand what an object of each class can be and do (view objects anthropomorphically) 2)Understand the interaction of the different classes 3)Define the interactions in such a way that the details of the internal operations are hidden from outside classes

Viewing Objects Anthropomorphically Look at objects as though they were people:  They are "living" in that their properties can change over time  They are "intelligent" in that they can undertake operations and in a sense "know" how to perform them  They have a variety of types: physical objects, relationships, abstractions

Interaction of Classes  Classes interact by: 1)Providing operations that can be invoked by other classes 2)Invoking other classes' operations in order to perform one's own  OOD provides abstraction by isolating information inside classes  A class interface is the set of operations and data the class makes available to other classes  The interface does not say how desired behavior is achieved

OOD Methodology A Three-Step Process: 1)Identify the classes: Decide what the classes will be 2)Characterize the classes: Name each object and the data associated with it 3)Define the implementation: Define all of the operations using pseudocode