Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming.

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Chapter 10: Designing Databases
Introduction to Java Objects CSIS 3701: Advanced Object Oriented Programming.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 5 Architecture-Driven Component Development.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 Chapter 1 Object-Oriented Programming. 2 OO programming and design Object-oriented programming and design can be contrasted with alternative programming.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Introduction to Software Engineering Lecture 7 André van der Hoek.
Object Oriented System Development with VB .NET
1 Lecture 2: Elaboration Tasks and Domain Modeling.
CSC 111 Course orientation
ASP.NET Programming with C# and SQL Server First Edition
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
UNIT-V The MVC architecture and Struts Framework.
Data Access Patterns. Motivation Most software systems require persistent data (i.e. data that persists between program executions). In general, distributing.
Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Introduction to Object Oriented Design. Topics Designing Your Own Classes Attributes and Behaviors Class Diagrams.
Programming Languages and Paradigms Object-Oriented Programming.
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.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
Chapter 3 Introduction to Collections – Stacks Modified
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Java Classes Using Java Classes Introduction to UML.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Introduction To System Analysis and Design
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Introduction to Java Objects CSIS 3701: Advanced Object Oriented Programming.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
Systems Analysis and Design in a Changing World, 3rd Edition
© 2005 Prentice Hall10-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
An Object-Oriented Approach to Programming Logic and Design Chapter 3 Using Methods and Parameters.
Object-Oriented Paradigm and UML1 Introduction to the Object- Oriented Paradigm.
Topic 1 Object Oriented Programming. 1-2 Objectives To review the concepts and terminology of object-oriented programming To discuss some features of.
Introduction to Design (and Zen) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These.
Abstraction ADTs, Information Hiding and Encapsulation.
1 Programming for Engineers in Python Autumn Lecture 6: More Object Oriented Programming.
Introduction to Classes and Objects. Real Life When a design engineer needs an electrical motor he doesn’t need to worry about –How a foundry will cast.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 26 - Java Object-Based Programming Outline 26.1Introduction.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
(1) ICS 313: Programming Language Theory Chapter 11: Abstract Data Types (Data Abstraction)
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
Object Oriented Programming. OOP  The fundamental idea behind object-oriented programming is:  The real world consists of objects. Computer programs.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Chapter 20 Concepts for Object-Oriented Databases Copyright © 2004 Pearson Education, Inc.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Chapter 0: Introduction
Abstract Data Types and Encapsulation Concepts
Chapter 3: Using Methods, Classes, and Objects
Object Oriented Concepts -I
Creating and Using Classes
Abstract Data Types and Encapsulation Concepts
Chapter 20 Object-Oriented Analysis and Design
Basic OOP Concepts and Terms
DATA MODELS.
Presentation transcript:

Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming

The “Software Crisis” Most “real world” programs 10,000 – 10,000,000 lines long Take months or years to develop Created by dozens or hundreds of programmers –Many are added to or leave the project throughout development Modified over time as customer needs change

Abstracton Ability to use tool without having to understand how it works –Example: can drive car without understanding physics of internal combustion, electronics, etc. Functional abstraction: y = sqrt(x); –Do you know how C computes square root? –Do you need to?

Objects Object-oriented classes are abstractions “Client programmer”: Programmer who uses class in their own code Methods to access state of object Current state of object Object Only has to understand how to call methods, not how they work Does not have to understand internal representation of object state

Abstract Data Types as Objects Example: Stack abstract data type Programmer who uses Stack class void push(int) int pop() boolean isEmpty() Stack Only has to understand how these affect abstract concept of a “stack” Internal representation could be array, linked list, etc. top contents

Examples of Objects GUI components: –Attributes: width, font, text, location, etc. –Methods: setText, getText, show, hide, etc. –Can use without knowing how drawn by OS Problem domain classes: –Example: Order class for financial system –Attributes: order#, item, quantity, totalCost, … –Methods: getNewOrderNumber, setItem, setQuantity…

Constructors and Abstraction User should not have to understand internal representation to create an object Constructor: code executed automatically at object startup to define initial state –Default values –Parameters passed to constructors –Values read from file

Objects vs. Classes Class defines: –Attribute types ( int top, String[] contents ) –Code for methods ( push, pop, isEmpty ) Object is an instance of a class –Constructed from class –Each may have different attribute values top: 3 contents: [“Larry”, “Curley”, “Moe”] top: 2 contents: [“Fred”, “Barney”] stoogesStackbedrockStack

Large-Scale Programming Abstraction key to large scale programming –No individual can understand entire system –Need to understand your subsystem –Need to know how to use methods in other modules it interacts with Your module Other module methods Other module methods Other module methods

Data Access 3-Tier Architecture User InterfaceBusiness Logic Order Database Product Database UI developers just need to know UI design and how to call business logic methods Business logic developers just need to know business model, how will be called by UI, and how to call data access methods Data access developers just need to know SQL and database design and how will be called by business logic

Abstraction in Design UML: Universal Modeling Language –Common representation for design at abstract level –Class types and relationships

Design Patterns Abstract designs that can be reused in different systems Class design level: –Typical types of classes –Typical methods within those classes System architecture level: –Typical ways to organize classes –Example: 3-Tier model Data AccessUser InterfaceBusiness Logic