CS6359 Introduction to OO An Introduction to Object-oriented Analysis and Design.

Slides:



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

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Object-Oriented Analysis and Design
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Object Oriented System Development with VB .NET
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Object-Oriented Databases
© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
Itntroduction to UML, page 1 Introduction to UML.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
C++ fundamentals.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
UML and Object Oriented Concepts
Introduction To System Analysis and design
Module 1: Introduction to OOAD
BCS 2143 Introduction to Object Oriented and Software Development.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Satzinger Chp. 2 Part Part 4 of 4 2 Object-Oriented Analysis and Design with the Unified Process Testing Testing is critical discipline Testing activities.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Slide 1 UML Review Chapter 2: Introduction to Object-Oriented Systems Analysis and Design with the Unified Modeling Language, Version 2.0 Alan Dennis,
Unified Modeling Language, Version 2.0
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Introduction To System Analysis and Design
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
16 August, 2007Information System Design IT60105, Autumn 2007 Information System Design IT60105 Lecture 7 Unified Modeling Language.
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
ITEC 3220A Using and Designing Database Systems Instructor: Gordon Turpin Course Website: Office: CSEB3020.
Learners Support Publications Object Oriented Programming.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
OOP Review CS 124.
Business Applications with Object-Oriented Paradigm (Modeling Concepts) Professor Chen School of Business Gonzaga University Spokane, WA
Enterprise Systems Modeling EGN 5623 Enterprise Systems Optimization Fall, 2012.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
Basic Characteristics of Object-Oriented Systems
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Object Oriented Systems Design
The Movement To Objects
Information systems modeling tools
Systems Analysis and Design With UML 2
Systems Analysis and Design With UML 2
Software Architecture & Design Pattern
Ada – 1983 History’s largest design effort
Introduction to UML.
Object oriented analysis and design
Basic OOP Concepts and Terms
Presentation transcript:

CS6359 Introduction to OO An Introduction to Object-oriented Analysis and Design

CS6359 Summer 2001 Slide 2 References Object-Oriented Modeling and Design; Rumbaugh, et.al.; Prentice Hall The Unified Modeling Language User Guide; Booch, et.al. Design Patterns; Elements of Reusable Object-oriented Software; Gamma, et.al.

CS6359 Summer 2001 Slide 3 Questions What is an object? What is OOA&D? How should objects interact? What is UML? What is a design pattern? What process do I follow?

CS6359 Summer 2001 Slide 4 Software Engineering Evolution Procedure Subroutines Structured Programming CASE 4GL Object Oriented Component Ware

CS6359 Summer 2001 Slide 5 Language Perspective First Generation (1954 – 1958) –Fortran I Second Generation (1959 – 1961) –Fortran II, Algol, Cobol Third Generation (1962 – 1970) –PL/I, Pascal Object Oriented Languages –Smalltalk, C++, Java

CS6359 Summer 2001 Slide 6 OO Languages Simula –Developed for discrete event simulation (1967) –Simulation modeling is a hard problem for conventional languages –Simulated objects must interact and change state in many different and often unpredictable ways –Simulation can solve problems that are too complex for mathematical equations –Simulation objects are usually easy to identify and communicate via message passing Smalltalk –Origins at Xerox PARC with the work of Alan Kay and Adele Goldberg –The idea was to develop a small language that could be used by everyone on their own personal computers –Influenced by Simula: objects and classes –The WIMP interface is tied closely to Smalltalk Windows, Icons, Mice and Pointers –Apple picked this up in Lisa and Macintosh

CS6359 Summer 2001 Slide 7 OO Languages (cont’d) C++ –AT&T Bell Labs – Bjorne Stroustrup –Adds object-oriented features to the C language –Classes correspond to types in the language Ada –DOD support for embedded systems language –Large and complex language –Enforces Abstract Data Types (ADTs) Specify data structures via the operations that can be performed on them –Support for multitasking and exceptions –Ada95 provides OO extensions

CS6359 Summer 2001 Slide 8 OO Languages (cont’d) Java –The newest OO language –Syntax resembles C++ –Structure and design reflects Smalltalk –Java overcomes the two drawbacks to C++ and Smalltalk Frees the programmer from having to manage memory (accidental complexity) Small footprint (memory requirement) –Eliminates: pointers, pointer arithmetic, structs, typedefs, preprocessor directives (#define), malloc and free –But has: extensive type checking, true arrays with array bounds checking, null pointer checking, automatic garbage collection

CS6359 Summer 2001 Slide 9 Evolution of Object Technology OOP: Object-Oriented Programming –Simula (1967) and Smalltalk (70’s) –C++ (mid 80’s) OOD: Object-Oriented Design –Grady Booch (1980) OOA: Object-Oriented Requirements –James Rumbaugh (late 80’s) OO-Databases (OODBs): 1990’s CORBA, Java, UML: mid 90’s

CS6359 Summer 2001 Slide 10 General Definitions Objects—things, concepts, or entities Characteristics of Objects: –Identity: data is quantized into discrete, distinguishable entities called objects. –Classification: objects with the same data structure (attributes) and behavior (operations) are grouped into a class. –Polymorphism: the same operation may behave differently on different classes. –Inheritance: the sharing of attributes and operations among classes based on a hierarchical relationship.

CS6359 Summer 2001 Slide 11 General Definitions (cont’d) OOA&D—software development approach that emphasizes a logical solution based on objects Analysis—finding and describing concepts in the problem domain. Design—defining software objects that represent the analysis concepts and will eventually be implemented in code.

CS6359 Summer 2001 Slide 12 Fundamental Terminology Abstract Class. –An incomplete superclass that defines common parts. –Not instantiated. Attribute. –Information or state associated with a component. Class. –A blueprint or definition of objects. –A factory for instantiating objects. –The description of a collection of related components.

CS6359 Summer 2001 Slide 13 Fundamental Terminology Containment. –Building a component out of other components. –Objects that contain other objects. Concrete class. –Is a complete class. –Describes a concept completely. –Is intended to be instantiated. Inheritance. –The automatic acquisition of superclass attribute and behavior definitions in subclass.

CS6359 Summer 2001 Slide 14 Fundamental Terminology Instance. –An object created by a class. Instantiation. –The act of creating an instance. Message. –A request sent to an object to invoke a method. –A message is similar to a function call, but different in that an object only responds to a predetermined set of messages defined by its class.

CS6359 Summer 2001 Slide 15 Fundamental Terminology Method. –The implementation of a message. Sending a message invokes a method. Object. –A software component. –An instance of a class. –A structure that bundles together attributes and behavior. Polymorphism. –Objects of different classes responding to the same message. The response of each object may vary depending on its class.

CS6359 Summer 2001 Slide 16 Fundamental Terminology Specialization. –The act of defining one class as a refinement of another. Subclass. –A class defined in terms of a superclass using inheritance. Superclass. –A class serving as a base for inheritance in a hierarchy.

CS6359 Summer 2001 Slide 17 Object-Oriented Methodology OMT – Object Modeling Technique by James Rumbaugh Four Stages of OMT: –Analysis –System Design –Object Design –Implementation

CS6359 Summer 2001 Slide 18 OO Methodology (cont’d) Three Models in OMT –Object Model: describes the objects in the system and their relationships. –Dynamic Model: describes the interactions among objects in the system. –Functional Model: describes the data transformation of the system.

CS6359 Summer 2001 Slide 19 Object-Oriented Themes Abstraction Encapsulation Combining Data and Behavior Sharing Emphasis on Object Structure, Not Procedure Structure Synergy

CS6359 Summer 2001 Slide 20 UML U nified M odeling L anguage “a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software intensive system.” [Booch] UML does not –Guide a developer in how to do OOA&D. –Identify what development process to follow.

CS6359 Summer 2001 Slide 21 UML History OO languages appear mid 70’s to late 80’s Between ’89 and ’94, OO methods increased from 10 to 50. Prominent methodologies –Booch –Jacobson’s Object-oriented software engineering (OOSE) –Rumbaugh’s Object Modeling Technique (OMT)

CS6359 Summer 2001 Slide 22 UML History (cont’d) Unification of ideas began in mid 90’s. –Rumbaugh joins Booch at Rational ’94 –v0.8 draft Unified Method ’95 –Jacobson joins Rational ’95 –UML v0.9 in June ’96 –UML 1.0 offered to OMG in January ’97 –UML 1.1 offered to OMG in July ’97 –Maintenance through OMG RTF –UML 1.2 in June ’98 –UML 1.3 in fall ‘99

CS6359 Summer 2001 Slide 23 Design Patterns Design Pattern—reusable solution to typical problems. “Each design pattern systematically names, explains, and evaluates an important and recurring design in object-oriented systems.” [Gamma]

CS6359 Summer 2001 Slide 24 Design Pattern essential elements Pattern name—handle to identify a particular pattern; creates a vocabulary. Problem—identifies context when pattern should be applied. Solution—an abstract description of a design problem along with a template object design that solves the problem. Consequences—results and trade-offs of applying the pattern.

CS6359 Summer 2001 Slide 25 OO Development Processes Fusion –Hewlett Packard Recommended Process and Models –ObjectSpace best practices –Larman’s experiences The Unified Process –Rational; Booch, Jacobson, and Rumbaugh

CS6359 Summer 2001 Slide 26 Summary Primary references General definitions Fundamental Terminology Object-Oriented methodology Object-Oriented themes Unified Modeling Language Design patterns Object-oriented development processes