An Introduction to Programming and Object Oriented Design using Java 2 nd Edition. May 2004 Jaime Niño Frederick Hosch Chapter 0 : Introduction to Object.

Slides:



Advertisements
Similar presentations
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
Systems Analysis and Design in a Changing World, 6th Edition
Approaches to Systems Development
Chapter 6 Problem Solving and Algorithm Design. 6-2 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Introduction To System Analysis and Design
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Object-Oriented Thinking Chapter 1, Object-Oriented Programming in Java, Timothy Budd, 1998 ICS102 Semester
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Systems Analysis and Design in a Changing World, Fifth Edition
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Introduction SWE 619. Why Is Building Good Software Hard? Large software systems enormously complex  Millions of “moving parts” People expect software.
Introduction To System Analysis and design
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Chapter 2: Approaches to System Development
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
CSCI-383 Object-Oriented Programming & Design Lecture 4.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
Invitation to Computer Science, Java Version, Second Edition.
Introduction to CMPT 225. What’s on the menu? Grading Course content Who’s who The story of life.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
SOFTWARE DESIGN.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
Systems Analysis and Design in a Changing World, 3rd Edition
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
1 Introduction to Software Engineering Lecture 1.
2 Systems Analysis and Design in a Changing World, Fifth Edition.
Chapter 1: An Introduction to Control Structures Introduction to Programming with C++ Fourth Edition.
Lecture 11 Data Structures, Algorithms & Complexity Introduction Dr Kevin Casey BSc, MSc, PhD GRIFFITH COLLEGE DUBLIN.
Modeling as a Design Technique Chapter 2 Part 1: Modeling Concepts Object-Oriented Modeling and Design Byung-Hyun Ha
Systems Analysis and Design in a Changing World, 6th Edition
Microsoft Visual Basic 2010: Reloaded Fourth Edition Overview An Introduction to Programming.
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.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Introduction to Computer Programming CS 126 Lecture 1 Zeke Maier.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSC1200 INTRODUCTION TO PROGRAMMING Dr. Maureen Markel
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Introduction to Design. 2 Outline Basics of design Design approaches.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
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.
Systems Analysis and Design in a Changing World, 6th Edition
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.
Maitrayee Mukerji. INPUT MEMORY PROCESS OUTPUT DATA INFO.
 Programming methodology: ◦ is a process of developing programs that involves strategically dividing important tasks into functions to be utilized by.
Design Concepts ch-8
بسم الله الرحمن الرحيم.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
SOFTWARE DESIGN AND ARCHITECTURE
Invitation to Computer Science 5th Edition
Introduction To System Analysis and Design PART 2
Chapter 0 : Introduction to Object Oriented Design
CHAPTER 9 (part a) BASIC INFORMATION SYSTEMS CONCEPTS
Computational Thinking
From Use Cases to Implementation
Presentation transcript:

An Introduction to Programming and Object Oriented Design using Java 2 nd Edition. May 2004 Jaime Niño Frederick Hosch Chapter 0 : Introduction to Object Oriented Design

1May 2004NH-Chapter 0 The science of computing Computer science is a science of abstraction – creating the right model for a problem and devising the appropriate mechanizable techniques to solve it. — A. Aho and J. Ullman

2May 2004NH-Chapter 0 Objectives  After studying this chapter you should understand the following:  the nature of software systems;  how abstraction and decomposition are used to deal with complexity in problems;  the fundamental components of a program, data and functionality;  objects, and object-oriented systems and their relationship to software systems in general.

3May 2004NH-Chapter 0 Objectives  Also, you should be able to:  identify basic components in complex structures;  provide examples of abstraction levels from least abstract to more abstract;  explain how composition and abstraction simplify the organization of a system;  provide informal algorithms for common activities.

4May 2004NH-Chapter 0 Nature of a software system  A software system is a temporary solution to a changing problem…  With two fundamental characteristics:  they are dynamic  they are complex.

5May 2004NH-Chapter 0 Dealing with complexity: composition and abstraction  Size of software system requires that …  It must be broken down into manageable pieces  It must be dealt with as a composite structure  Its parts must interact together  The more parts the more interaction  System complexity is proportional to the number of parts

6May 2004NH-Chapter 0 Dealing with complexity: composition and abstraction  composition: Process of building a system using simpler parts or components

7May 2004NH-Chapter 0 Dealing with complexity: composition and abstraction  abstraction: Allows one to deal with system components with no worry about details of how components are constructed

8May 2004NH-Chapter 0 Dealing with complexity: composition and abstraction  abstraction …  process of ignoring details irrelevant to problem at hand  emphasizes essential ones  to abstract is to disregard certain differentiating details

9May 2004NH-Chapter 0 Two aspects of a system: data and functionality  data – information program deals with  data descriptions are fixed,  individual data values may change each time program runs

10May 2004NH-Chapter 0 Two aspects of a system: data and functionality  functionality – what the program does with data  computation: a goal-directed sequence of actions performed by a processor  algorithm: set of instructions describing pattern of behavior guaranteed to achieve a goal

11May 2004NH-Chapter 0 Object-oriented systems  Use the Object Oriented approach for structuring systems  Intended to produce systems that are...  composite  modular  built using abstraction  organized around data

12May 2004NH-Chapter 0 Object-oriented systems  Objects: abstractions used to describe the problem  Functionality of system is distributed to the objects  Each object has algorithms to accomplish specific tasks

13May 2004NH-Chapter 0 Summary  Software systems are complex  Software systems are dynamic  To address these difficulties …  make extensive use of abstraction;  build systems that are modular, and composite.

14May 2004NH-Chapter 0 Summary  To define a software system, we will include  a description of the data items to be manipulated by the system, and  a collection of algorithms that provide the system’s functionality  We adopt an object-based methodology that structures the system around the data