Chapter 0 : Introduction to Object Oriented Design

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.
Chapter 6 Problem Solving and Algorithm Design. 6-2 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer.
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
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.
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.
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.
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.
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
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.
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.
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.
1 Introduction to Software Engineering Lecture 1.
Systems Analysis and Design in a Changing World, Fourth Edition
Lecture 11 Data Structures, Algorithms & Complexity Introduction Dr Kevin Casey BSc, MSc, PhD GRIFFITH COLLEGE DUBLIN.
Systems Analysis and Design in a Changing World, 6th Edition
Microsoft Visual Basic 2010: Reloaded Fourth Edition Overview An Introduction to Programming.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Computer Science, Algorithms, Abstractions, & Information CSC 2001.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
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 Data Structures CSCI 132, Spring 2014 Lecture 1 Big Ideas in Data Structures Course website:
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Chapter 4 Motor Control Theories Concept: Theories about how we control coordinated movement differ in terms of the roles of central and environmental.
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.
 Programming methodology: ◦ is a process of developing programs that involves strategically dividing important tasks into functions to be utilized by.
Design Concepts ch-8
AP CSP: Creating Functions & Top-Down Design
Review of last class Software Engineering Modeling Problem Solving
ICS 3UI - Introduction to Computer Science
Processes and Process Models
Object Oriented Programming
بسم الله الرحمن الرحيم.
Chapter 1: Introduction to Systems Analysis and Design
Course Outcomes of Object Oriented Modeling Design (17630,C604)
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
Objective of This Course
CHAPTER 9 (part a) BASIC INFORMATION SYSTEMS CONCEPTS
Chapter 1: Introduction to Systems Analysis and Design
Creating Computer Programs
Department of Computer Science Abdul Wali Khan University Mardan
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Computational Thinking
Quiz: Computational Thinking
Creating Computer Programs
Chapter 1: Introduction to Systems Analysis and Design
From Use Cases to Implementation
Processes and Process Models
Presentation transcript:

Chapter 0 : Introduction to Object Oriented Design

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 1/1/2019 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. 1/1/2019 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. 1/1/2019 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. 1/1/2019 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 1/1/2019 Chapter 0

Dealing with complexity: composition and abstraction - process of building a system using simpler parts or components 1/1/2019 Chapter 0

Dealing with complexity: composition and abstraction Abstraction can deal with system components with no worry about details of how components are constructed Abstraction … process of ignoring details irrelevant to problem at hand emphasizes essential ones to abstract is to disregard certain differentiating details 1/1/2019 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 1/1/2019 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 1/1/2019 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 1/1/2019 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 1/1/2019 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. 1/1/2019 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 1/1/2019 Chapter 0