Object Oriented Analysis and Design Using the UML

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Informática II Prof. Dr. Gustavo Patiño MJ
Mastering Object-Oriented Analysis and Design with UML Module 2: Concepts of Object Orientation.
Modelling Class T05 Conceptual Modelling – Domain References: –Conceptual Modeling of Information Systems (Chapters 1.2.1, 2, 3) –A practical Guide to.
Informática II Prof. Dr. Gustavo Patiño MJ
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Object Oriented Analysis and Design Using the UML
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Introduction to Object Modeling
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
1 Basic Object Oriented Concepts Overview l What is Object-Orientation about? l What is an Object? l What is a Class? l Constructing Objects from Classes.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
UML CLASS DIAGRAMS. Basics of UML Class Diagrams What is a UML class diagram? Imagine you were given the task of drawing a family tree. The steps you.
OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  Rational Software, all rights reserved 1 Object Oriented Analysis.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Introduction to Object Technology.
Object Oriented Analysis and Design Using the UML Version 4.2 Introduction to Object Orientation Prepared by:Kandarp R. Somaiya.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
BCS 2143 Introduction to Object Oriented and Software Development.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 18. Review User interface Design principles Design Guidelines.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 3, Slide 1 February 20, 2004 Lecture 3: Introduction to Software Analysis and.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
NI ©UNITEN 2000/01 1 Faculty of Applied Engineering and Urban Planning Software Engineering Department Class Diagram Faculty of Information system Technology.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 02. Objects,
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
EC-241 Object-Oriented Programming LECTURE 9. Objectives: Introduction to Object Oriented Design Revise the basic principles of object orientation Unified.
Object Oriented Analysis & Design Using UML (CS-512) M-Tech CSE (Ist & 3rd Sem) Part Time Mr. Pawan Luthra Assistant Professor (CSE Deptt.) SBSSTC, Ferozepur.
Kal Bugrara, Ph.DSoftware Engineering Northeastern University Fundamentals Of Software Engineering Lecture V.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
OOAD Using the UML - Introduction to Object Orientation, v 4.2 Copyright  Rational Software, all rights reserved 1 Object Oriented Analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
OOP (Object Oriented Programming) Lecture 1. Why a new paradigm is needed? Complexity Five attributes of complex systems –Frequently, complexity takes.
Object Oriented Analysis and Design Using the UML
1 IBM Software Group ® Essentials of Visual Modeling with UML 2.0 Module 3: Concepts of Object Orientation.
Didik Dwi h t t p : / / b l o g. e l e k t r o. u m. a c. i d / d i d i k Object Oriented Software Engineering.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Concepts of Object Orientation lecture 1 –b. Objectives: Concepts of Object Orientation OOAD 2  Explain the basic principles of object orientation 
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter
Sachin Malhotra Saurabh Choudhary
The Movement To Objects
Systems Analysis and Design
Introduction Modeling Concepts Engineered for Tomorrow.
Object-Oriented Analysis and Design
Concepts of Object Orientation
The Object-Oriented Thought Process Chapter 1
Object Oriented Concepts -I
Today’s Objectives Define the Problem Domain
Abstract descriptions of systems whose requirements are being analysed
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
Creating and Using Classes
Object-Oriented Design
Object Oriented Analysis and Design Using the UML Version 4.2
Object Oriented Analysis and Design Using the UML
Introduction to the Unified Modeling Language
Chapter 20 Object-Oriented Analysis and Design
Object oriented analysis and design
ITEC 3220A Using and Designing Database Systems
CS 8532: Advanced Software Engineering
Workshop for Programming And Systems Management Teachers
Basic OOP Concepts and Terms
Handout-2(a) Basic Object Oriented Concepts
Chapter 4 System Modeling.
Presentation transcript:

Object Oriented Analysis and Design Using the UML OOADv4.2 Instructor Notes Object Oriented Analysis and Design Using the UML Introduction to Object Orientation PART 1 Module 3 - Introduction to Object Orientation

Objectives: Introduction to Object Orientation OOADv4.2 Instructor Notes Objectives: Introduction to Object Orientation Understand the basic principles of object orientation Understand the basic concepts and terms of object orientation and the associated UML notation Appreciate the strengths of object orientation Understand some basic UML modeling mechanisms In the Best Practices module, we discussed some characteristics common to successful projects. OO facilitates the following best practices: Develop Iteratively Model Visually Use Component Architecture Defining basic OO terms and concepts allows everyone in the class to start on a level playing field. Module 3 - Introduction to Object Orientation

Introduction to Object Orientation Topics OOADv4.2 Instructor Notes Introduction to Object Orientation Topics Basic Principles of Object Orientation Basic Concepts of Object Orientation Strengths of Object Orientation General UML Modeling Mechanisms Module 3 - Introduction to Object Orientation

Basic Principles of Object Orientation OOADv4.2 Instructor Notes Basic Principles of Object Orientation Object Orientation Encapsulation Abstraction Hierarchy Modularity Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is Abstraction? Salesperson Not saying Which salesperson – just a salesperson in general!!! Discuss what makes a good abstraction with the students: Concise, Represents a single coherent concept, etc. Customer Product Manages Complexity Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is Encapsulation? Hide implementation from clients Clients depend on interface Encapsulation is putting the “databits” and operations that manipulate them in the same place. Encapsulation DISALLOWS direct manipulation of things that have been encapsulated without utilising the supplied interface. Another example - the accelerator on a car. You put your foot down and car goes faster - this works on most cars, and you don’t worry about the cables, electronics, engine, etc. How does an object encapsulate? What does it encapsulate? Improves Resiliency Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is Modularity? The breaking up of something complex into manageable pieces Modularity supports separation of concerns. Another example of modularity is a car, which is made up of a body, chassis, engine, wheels, etc. Order Entry Order Processing System Order Fulfillment Billing Manages Complexity Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is Hierarchy? Asset Levels of abstraction Hierarchy is not an organizational chart. Hierarchy is not a functional decomposition. Hierarchy is a taxonomic organization. The use of hierarchy makes it easy to recognize similarities and differences. For example, in botany, plants are organized into families, chemistry uses a periodic table to organize the elements. Another example -- telephone number, then a 0800 (free call) number, premium rate number, etc Decreasing abstraction Increasing BankAccount Security RealEstate Savings Checking Stock Bond Elements at the same level of the hierarchy should be at the same level of abstraction Module 3 - Introduction to Object Orientation

Introduction to Object Orientation Topics OOADv4.2 Instructor Notes Introduction to Object Orientation Topics Basic Principles of Object Orientation Basic Concepts of Object Orientation Strengths of Object Orientation General UML Modeling Mechanisms Before moving on, ask the students to name the four basic principles of OO (as a review). Module 3 - Introduction to Object Orientation

Basic Concepts of Object Orientation OOADv4.2 Instructor Notes Basic Concepts of Object Orientation Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships Module 3 - Introduction to Object Orientation

Basic Concepts of Object Orientation OOADv4.2 Instructor Notes Basic Concepts of Object Orientation Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is an Object? Informally, an object represents an entity, either physical, conceptual, or software Physical entity Conceptual entity Software entity Truck Chemical Process Linked List Module 3 - Introduction to Object Orientation

A More Formal Definition OOADv4.2 Instructor Notes A More Formal Definition An object is a concept, abstraction, or thing with sharp boundaries and meaning for an application An object is something that has: State Behavior Identity Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes Representing Objects An object is represented as rectangles with underlined names : Professor Professor Clark a + b = 10 ProfessorClark Class Name Only ProfessorClark : Professor Object Name Only Class and Object Name (stay tuned for classes) Module 3 - Introduction to Object Orientation

Basic Concepts of Object Orientation OOADv4.2 Instructor Notes Basic Concepts of Object Orientation Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is a Class? A class is a description of a group of objects with common properties (attributes), behavior (operations), relationships, and semantics An object is an instance of a class A class is an abstraction in that it: Emphasizes relevant characteristics Suppresses other characteristics A class has been called a “cookie cutter” for objects. OO Principle: Abstraction Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes Sample Class Class Course Properties Name Location Days offered Credit hours Start time End time Behavior Add a student Delete a student Get course roster Determine if it is full a + b = 10 Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes Representing Classes A class is represented using a compartmented rectangle a + b = 10 Professor Professor Clark Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes Class Compartments A class is comprised of three sections The first section contains the class name The second section shows the structure (attributes) The third section shows the behavior (operations) In Rose: You may select which compartments are displayed via Diagram Object Properties for the diagram element. You may select which items appear in which compartments using the Edit Compartment function for the diagram element. Professor name empID create( ) save( ) delete( ) change( ) Class Name Attributes Operations Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes Classes of Objects How many classes do you see? The answers you get will vary depending on the students’ perspectives on what they see, as well as the criteria they use to organize the objects shown on this slide. For example, some possible answers include: Two classes: animals and non-animals Two classes: Extinct and non-extinct things Etc. Module 3 - Introduction to Object Orientation

The Relationship Between Classes and Objects OOADv4.2 Instructor Notes The Relationship Between Classes and Objects A class is an abstract definition of an object It defines the structure and behavior of each object in the class It serves as a template for creating objects Objects are grouped into classes This may seem repetitive with earlier slides, but it has been noted that the repetition of the discrimination between objects and classes is beneficial to “newbies”. If this does not apply to your class, you can cover this slide briefly. Objects Class Professor Smith Professor Mellon Professor Professor Jones Module 3 - Introduction to Object Orientation

Basic Concepts of Object Orientation OOADv4.2 Instructor Notes Basic Concepts of Object Orientation Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is an Attribute? Object Class Attribute Attribute Value :CourseOffering number = 101 startTime = 900 endTime = 1100 CourseOffering number startTime endTime :CourseOffering number = 104 startTime = 1300 endTime = 1500 Module 3 - Introduction to Object Orientation

Basic Concepts of Object Orientation OOADv4.2 Instructor Notes Basic Concepts of Object Orientation Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is an Operation? CourseOffering addStudent deleteStudent getStartTime getEndTime Class Operation Module 3 - Introduction to Object Orientation

Basic Concepts of Object Orientation OOADv4.2 Instructor Notes Basic Concepts of Object Orientation Object Class Attribute Operation Interface (Polymorphism) Component Package Subsystem Relationships Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is Polymorphism? The ability to hide many different implementations behind a single interface Polymorphism will be addressed in more detail in the Class Design module. Another example of polymorphism: There is a toddler sitting in front of some blocks and a teenager siting in front of a piano. An adult walks into the room and says “play”. The toddler plays with the blocks and the teenage plays the piano. Another example - car accelerator on different cars. Manufacturer A Manufacturer B Manufacturer C OO Principle: Encapsulation Module 3 - Introduction to Object Orientation

OOADv4.2 Instructor Notes What is an Interface? Interfaces formalize polymorphism Interfaces support “plug-and-play” architectures Interfaces are not abstract classes, as abstract classes allow you to provide default behavior for some/all of their methods. Interfaces provide no default behavior. Tube Shape Draw Move Scale Rotate <<interface>> Pyramid Cube Realization relationship (stay tuned for realization relationships) Module 3 - Introduction to Object Orientation

Interface Representations OOADv4.2 Instructor Notes Interface Representations Tube Elided/Iconic Representation (“lollipop”) Pyramid Shape Cube Canonical (Class/Stereotype) Representation Tube Shape Draw Move Scale Rotate <<interface>> Pyramid Cube (stay tuned for realization relationships) Module 3 - Introduction to Object Orientation