Business Applications with Object-Oriented Paradigm (Modeling Concepts) Professor Chen School of Business Gonzaga University Spokane, WA 99258.

Slides:



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

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Systems Analysis and Design 8th Edition
Stéphane Ducasse2.1 OOP? What is OOP? Why? OOP in a nutshell.
Object-Oriented Analysis and Design
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
L3-1-S1 OO Concepts © M.E. Fayad SJSU -- CMPE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Object Oriented System Development with VB .NET
Chapter 14 (Web): Object-Oriented Data Modeling
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
Object-Oriented Databases
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Object Oriented Concepts. Movement toward Objects Instead of data-oriented or process-oriented Analysis, many firms are now moving to object-oriented.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Chapter 14: Object-Oriented Data Modeling
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
Introduction To System Analysis and design
Object-oriented methodology object models use case modeling unified modeling language the data dictionary the cornucopia case portfolio project Systems.
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.
OBJECT-ORIENTEDNESS KCDCC. WHAT IS OBJECT-ORIENTEDNESS? KCDCC model system as a collection of interacting objects O-O Modelling O-O Programming similar.
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.
Database Management System Prepared by Dr. Ahmed El-Ragal Reviewed & Presented By Mr. Mahmoud Rafeek Alfarra College Of Science & Technology Khan younis.
Introduction To System Analysis and Design
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
System Analysis System Analysis - Mr. Ahmad Al-Ghoul System Analysis and Design.
Object-Oriented Programming (OOP) CSC-2071 (3+1=4 Credits) Lecture No. 1 MBY.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
CHAPTER 13 (ONLINE): OBJECT-ORIENTED DATA MODELING © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data Modeling Modern Database Management 9 h Edition Jeffrey A.
Systems Analysis & Design 7 th Edition Chapter 5.
Systems Analysis and Design 8 th Edition Chapter 6 Object Modeling.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
ITEC 3220A Using and Designing Database Systems Instructor: Prof Z. Yang Course Website: 3220a.htm
ITEC 3220A Using and Designing Database Systems Instructor: Gordon Turpin Course Website: Office: CSEB3020.
 Week08.  Review Schedule Weeks 8-14  This week o Review last class o Introduce Class Diagrams o ICE-03 Sheridan SYST Engineering Quality Systems.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
Enterprise Systems Modeling EGN 5623 Enterprise Systems Optimization Fall, 2012.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Enterprise Systems Modeling EGN 5621 Enterprise Systems Collaboration (Professional MSEM) Fall, 2012.
Outline Object-Oriented Concepts Modeling Components Structured Method Evaluation Procedure Object-Oriented Methods Structured Methods Review of Object.
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Object Oriented Systems Design
Object Oriented Programming
Sachin Malhotra Saurabh Choudhary
Business System Development
The Movement To Objects
Information systems modeling tools
CHAPTER 5 GENERAL OOP CONCEPTS.
Programming in Java Sachin Malhotra, Chairperson, PGDM-IT, IMS Ghaziabad Saurabh Chaudhary, Dean, Academics, IMS Ghaziabad.
UML Class Diagrams: Basic Concepts
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Chapter 5.
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Information systems modeling tools
Presentation transcript:

Business Applications with Object-Oriented Paradigm (Modeling Concepts) Professor Chen School of Business Gonzaga University Spokane, WA 99258

PARADIGMS (Definition) A paradigm is a way of viewing things and thinking about things.

Traditional vs. New Approach Paradigm Shift Traditional vs. New Approach Functional vs. Object-Oriented Dr. Chen - Introduction to Object-Oriented Paradigm TM -3

PARADIGMS SHIFT In the last two decades (mid 1970’s to the present) popular paradigms have been used: Process ---> Data ---> O-O Modeling Modeling Modeling (DFD) (E/R) (UML etc.)

OBJECT-ORIENTED METHODOLOGY The technique of object-oriented (OO) methodology really has emerged only in the last five to six years (early 1990’s). The O-O methods organize both information and the processing that manipulates the information, according to the real-world objects that the information describes.

I. OBJECT-ORIENTED CONCEPTS

What is OBJECT-ORIENTED (OO)? Object = Data structure + Behavior (attributes) (operations) where Behavior is in a single entity.

What is OBJECT-ORIENTED (OO)? Object = Data structure + Behavior (attributes) (operations) where Behavior is in a single entity.

Why O-O? (Advantages / Objectives) Understanding problems Communicating with application experts Modeling enterprises Preparing documentation Designing programs and databases

Definition of O-O vs. Conventional Programming O-O organizing software as a collection of discrete objects that incorporate both data structure and behavior. Conventional programming: data structure and behavior are only loosely connected.

Characteristics of Objects: Identity Classification (Abstraction) Polymorphism Inheritance

Characteristics of Objects: Identity Classification (Abstraction) Polymorphism Inheritance

Characteristics of Objects: Identity: This means that data is quantified into discrete, distinguished entities called objects Can be either concrete or conceptual Classification (abstraction): Means that objects with the same data structure (attributes) and behavior (operations) are grouped into a class

Characteristics of Objects (Conti.): Polymorphism: Means that the same operation (e.g., dial) may behave differently on different classes A specific implementation of an operation by a certain class is called a method Because an O-O operation is polymorphic, it may have more than one method implementing it

Characteristics of Objects (Conti.): Inheritance: Is the sharing of attributes and operations among classes based on a hierarchical relationship A class can be defined broadly and then refined into successively finer subclasses. Each subclass incorporates, or inherits all of the properties of its superclass and adds its own unique properties

Objects vs. Classes Objects Definition: An object is a concept, abstraction, or thing with crisp boundaries and meaning for the problem at hand.

Objects vs. Classes (Conti.) Purpose: Objects promote understanding of the real world and provide a practical basis for computer implementation. All objects have identity and are distinguishable, and therefore, decomposition of a problem into objects depends on judgment and the nature of the problem.

Objects vs. Classes (Conti.) Definition: An object class describes a group of objects with similar properties (attributes), common behavior (operations), common relationships to other objects, and common semantics.

Objects -----------------------------> Classes Abstract to The abbreviation class is often used instead of object class. The objects in a class share a common semantic purpose, above and beyond the requirement of common attributes and behavior. Objects -----------------------------> Classes Abstract to (Specific) (General) Instances *attributes *operations

The abbreviation class is often used instead of object class The abbreviation class is often used instead of object class. The objects in a class share a common semantic purpose, above and beyond the requirement of common attributes and behavior. Abstract (John,Mary ...) to (Person) Objects -----------------------------> Classes (Specific) (General) Instances *attributes *operations

WHAT IS O-O DEVELOPMENT? Systems Development Life Cycle (SDLC): include the phases of analysis, design, implementation, and maintenance. O-O Development Life Cycle: focuses on identifying and organizing application-domain concepts, rather than their final representation in a programming language.

Modeling concepts not implementation. Definition: A model is an abstraction of a reality. Abstraction is the process of temporarily ignoring underlying details so we can focus on the most important features (or big picture) of the large problem at hand.

The real payoff comes from addressing front-end conceptual issues, rather than back-end implementation issues. An O-O development approach encourages software developers to use and think in terms of the application domain through most of the software engineering life cycles. It is only when the inherent concepts of the applications are identified, organized, and understood that the details of data structures and functions can be addressed effectively.

What is the Methodology? Methodology is a series of steps with techniques and notations associated with each step. Concepts Techniques Notations Steps

Differences from Functional Methodology O-O Methodology vs. Conventional (Functional) Methodology

1. Conventional Methodology primary emphasis is placed on specifying and decomposing system functionality

Pros and cons (Conventional) PROS: it seems the most direct way of implementing a desired goal. CONS: the resulting system can be fragile because if the requirements change, a system based on decomposing functionality may require massive restructuring.

2. O-O Methodology Focuses first on identifying objects from the application domain, then fitting procedures around them.

Pros and Cons (OO) PROS: O-O software holds up better as requirements evolve, because it is based on the underlying framework of the application domain itself, rather than the ad-hoc functional requirements of a single problem. CONS: it is a rather indirect way to describe the problem for those user have used conventional techniques.

OBJECT-ORIENTED THEMES Abstraction. Encapsulation (Information Hiding) Combining Data and Behavior Sharing / Inheritance Emphasis on Object Structure, Not Procedure Polymorphism

OBJECT-ORIENTED THEMES Abstraction. Encapsulation (Information Hiding) Combining Data and Behavior Sharing / Inheritance Emphasis on Object Structure, Not Procedure Polymorphism

1. Abstraction Concealing irrelevant details from the user. Abstraction is the process of temporarily ignoring underlying details so we can focus on the big picture of the large problem at hand

Focusing on the essential, inherent aspects of an entity and ignoring its accidental properties -- in systems development, this means focusing on what an object is and does, before deciding how it should be implemented. Advantage: preserving the freedom to make decisions as long as possible by avoiding premature commitments to details.

2. Encapsulation Information hiding: the process of designing functions, procedures, or classes as “black boxes.” Therefore, to use a function, procedure, or class, a designer does not need to know the box’s inner workings

Preventing a program from becoming so interdependent that a small change has massive ripple effects. The Implementation of an object can be changed without affecting the applications that use it - reusable code. Encapsulation is not unique to O-O languages but the ability to combine data structure and behavior in a single entity makes encapsulation cleaner and more powerful than is conventional languages that separate data structure and behavior.

3. Combining Data and Behavior Conventional procedural O-O Approach approach *data structure hierarchy class hierarchy *procedure hierarchy Polymorphism

3. Combining Data and Behavior Conventional procedural O-O Approach approach *data structure hierarchy class hierarchy *procedure hierarchy Polymorphism

4. Inheritance/ Sharing O-O techniques promote sharing at several different levels. Inheritance of both data structure and behavior allows common structures to be shared among several similar subclasses without redundancy.

PROS: The sharing code using inheritance is one of the main advantages of O-O language. More important than savings in code is the conceptual clarity from recognizing that different operations are all really the same thing -- this reduces the number of distinct cases that must be understood and analyzed. O-O development not only allows information to be shared within an application, but also offers the prospect of reusing design and code on future projects.

5. Emphasis on Object Structure, Not Procedure Structure Object-oriented technology stresses specifying what an object is, rather than how it is used.

6. Polymorphism Poly - many; Morphic - forms Many forms An object (e.g., telephone) that is capable of having two or more forms (during the run time) with the same name (e.g., dial).

Development of Object Technology UML OO-A OO-D C++, JAVA SmallTalk, etc. OO-P

OBJECT ORIENTATION’S CONTRIBUTIONS

Unified Modeling Language (UML) WHAT’S NEXT? Unified Modeling Language (UML)

Conclusion -- Synergy

OBJECT ORIENTATION’S CONTRIBUTIONS . . .

Ready for the Next Run?