Title: Business Applications with Object-Oriented Paradigm (Modeling Concepts)
1 Business Applications with Object-Oriented
Paradigm (Modeling Concepts)
- Jason C.H. Chen, Ph.D.
- Professor of MIS
- School of Business
- Gonzaga University
- Spokane, WA 99258
2What is Business Model?
- A business model is a set of planned activities
(sometimes referred to as business processes)
designed to result in a profit in a marketplace. - The business model is at the center of the
business plan. - An e-commerce business model aims to use and
leverage the unique qualities of the Internet and
the www.
Source E-Commerce business, technology,
society, Laudon and Traver, A/W
N
3Why New Models?
- We need some new models
- for how we go about exploring IT for competitive
advantage, - for IT infrastructure how we create it and manage
it - for how we acquire, manage and deploy the skills
that are needed to run that infrastructure
4Essentials for a Successful Enterprise
Value propositions
1. Business model
2. Core competencies
Strategic intent
Strategy
Positioning
3. Execution
IT Role?
N
5Four Important Entities for a Successful
Enterprise
6PARADIGMS(Definition)
- A paradigm is a way of viewing things and
thinking about things.
7Paradigm Shift
- Traditional vs. New Approach
- Functional vs. Object-Oriented
8PARADIGMS SHIFT
- In the last two decades (mid 1970s to the
present) popular paradigms have been used
Process Modeling
Data Modeling
O-O Modeling
DFD
UML, OMT
ER, E-ER
9PARADIGMS SHIFT
- In the last two decades (mid 1970s to the
present) popular paradigms have been used
Process Modeling
Data Modeling
O-O Modeling
DFD
UML, OMT
ER, E-ER
10OBJECT-ORIENTED METHODOLOGY
- The technique of object-oriented (OO) methodology
really has emerged only in the last seven to
eight years (early 1990s). - The O-O methods organize both information and the
processing that manipulates the information,
according to the real-world objects that the
information describes.
11I. OBJECT-ORIENTED CONCEPTS
12 What is an OBJECT ?
13 14An OBJECT is ...
- Object Data structure Behavior
- (attributes) (operations)
- where Behavior is in a single entity.
15An OBJECT is ...
- Object Data structure Behavior
- (attributes) (operations)
- where Behavior is in a single entity.
16(No Transcript)
17(No Transcript)
18Why O-O? (Advantages / Objectives)
- Understanding problems
- Communicating with application experts
- Modeling enterprises
- Preparing documentation
- Designing programs and databases
19Definition 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.
20 II. What is OBJECT-ORIENTED Programming
Language (OOP)?
- OOP Objects Inheritance Polymorphism
21 II. What is OBJECT-ORIENTED Programming
Language (OOP)?
- OOP Objects Inheritance Polymorphism
22Object-Based vs. Object-Oriented Languages
- An object-based language is one in which data and
operations can be incorporated (encapsulated) in
such a way that data values can be isolated and
accessed through the specified class functions. - An object-oriented language provides inheritance
and polymorphism in addition to the features in
an object-based language.
23PROGRAMMING IN THE LARGE
- In order to deal with large-scale programming, we
must have some way of attacking a problem in a
systematic way and managing its complexity ...
24Systems/Software (Development) Life Cycle
(SLC/SDLC)
- A method that provides information systems
professionals with step-by-step procedures to
develop their projects/systems. - SOFTWARE ENGINEERING ...
25Phases of Systems/Software (Development) Life
Cycle (SLC/SDLC)
- Conceptualization
- (Requirements) Analysis
- Design
- Implementation
- Testing and Verification
- Operation, Follow-up, and Maintenance
26 1. Conceptualization
- Prepare a complete and unambiguous problem
statement. - Users and analysts sign the requirements document.
272. (Requirements) Analysis
- Understand the problem develop a system behavior
model and determine problem input, output, and
other relevant data elements. - Name each identified data element and develop a
model of the essential characteristics
(attributes and operations) for each element.
283. Design
- Using the system and data models developed during
requirements analysis, perform a top-down design
of the system. - For each system component, identify key data
elements and subordinate functions using
structure charts.
294. Implementation
- Write algorithms and pseudocode descriptions of
individual functions. - Code the solution.
- Debug the code.
305. Testing and Verification
- Test the code, verifying that it is correct. Each
data modeling component should be tested
separately, before all components are tested as
an integrated whole. - Involve users and special testing teams in all
system tests.
316. Operation, Follow-up, and Maintenance
- Run the completed system.
- Evaluate its performance.
- Remove new bugs as they are detected.
- Make required changes to keep the system up to
date. - Verify that changes are correct and that they do
not adversely affect the systems operation.
32Software Engineering Goals That Drive Object Use
- Why should we base our programming around
objects? - Advantages follow ...
331. Ease of Design and Code Reuse
- Once the code works properly, the use of objects
increases your ability to reuse a design or code
you created for one application within a second
application. - ...
- REUSABILITY
342. Increased Reliability
- Once proper testing has been previously performed
on object libraries, the use of existing
(working) code will improve your programs
reliability.
353. Ease of Understanding
- By allowing designers and programmers to focus on
smaller pieces of a system and providing a
framework within which designers can identify
objects, the operations performed on the objects,
and the information objects must store, object
use helps programmers focus on and understand key
system components.
364. Increased Abstraction
- Abstraction lets designers and programmers look
at the big picture--- temporarily ignore
underlying details so they can work with system
elements that are more easily understood. For
example, by focusing only on the word processor
objects earlier in this chapter, the
implementation of a word processor became much
less intimidating.
375. Increased Encapsulation
- Encapsulation groups all of the pieces of an
object into one neat package. For example, the
file class previously defined in this chapter
combines the functions and data fields a program
needs to work with a file.
385. Increased Encapsulation (Conti.)
- The programmer who is working with the file class
does not need to know each piece of the class,
only that they need to use the class within their
program. The class, in turn, will bring with it
all the necessary pieces.
396. Increased Information Hiding
- Information hiding is the ability for your
program to treat a function, procedure, or even
an object, as a black box, using the item to
perform a specific operation without having to
know what goes on inside. In Chapter 1, for
example, your programs used I/O stream objects
for input and output without having to understand
how the streams work.
40III. More on Objects Characteristics of Objects
- Identity
- Classification (Abstraction)
- Polymorphism
- Inheritance
41III. More on Objects Characteristics of Objects
- Identity
- Classification (Abstraction)
- Polymorphism
- Inheritance
42Characteristics 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
43Characteristics 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
44Characteristics 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
45Objects vs. Classes
- Objects
- Definition An object is a concept, abstraction,
or thing with crisp boundaries and meaning for
the problem at hand.
46Objects 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.
47Objects vs. Classes (Conti.)
- Classes
- Definition An object class describes a group of
objects with similar properties (attributes),
common behavior (operations), common
relationships to other objects, and common
semantics.
48- 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 -----------------------------gt Classes
- Abstract to
- (Specific)
(General) - Instances
attributes -
operations
49- 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 -----------------------------gt Classes
- (Specific)
(General) - Instances
attributes -
operations
50WHAT 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.
51Modeling 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.
52- 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.
53(No Transcript)
54What is the Methodology?
- Methodology is a series of concepts with
techniques and notations associated with each
step.
- Concepts
- Techniques
- Notations
- Steps
55Differences from Functional Methodology
- O-O Methodology vs. Conventional (Functional)
Methodology
561. Conventional Methodology
- primary emphasis is placed on specifying and
decomposing system functionality
57 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.
582. O-O Methodology
- Focuses first on identifying objects from the
application domain, then fitting procedures
around them.
59Pros 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.
60OBJECT-ORIENTED THEMES
- Abstraction.
- Encapsulation (Information Hiding)
- Combining Data and Behavior
- Sharing / Inheritance
- Emphasis on Object Structure, Not Procedure
- Polymorphism
61OBJECT-ORIENTED THEMES
- Abstraction.
- Encapsulation (Information Hiding)
- Combining Data and Behavior
- Sharing / Inheritance
- Emphasis on Object Structure, Not Procedure
- Polymorphism
621. 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
63- 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.
642. 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
boxs inner workings
65- 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.
663. Combining Data and Behavior
- Conventional procedural O-O Approach
- approach
- data structure hierarchy class hierarchy
- procedure hierarchy
-
-
Polymorphism
673. Combining Data and Behavior
- Conventional procedural O-O Approach
- approach
- data structure hierarchy class hierarchy
- procedure hierarchy
-
-
Polymorphism
684. 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.
69- 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.
705. Emphasis on Object Structure, Not Procedure
Structure
- Object-oriented technology stresses specifying
what an object is, rather than how it is used.
716. 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).
72E-R Model vs. O-O Model
A collection of entities that share common
properties or characteristics
Class
Attributes operations
A single occurrence of an entity type/class
73Conclusion -- Synergy
74(No Transcript)
75OBJECT ORIENTATIONS CONTRIBUTIONS . . .
76OBJECT ORIENTATIONS CONTRIBUTIONS
77WHATS NEXT?
- Unified Modeling Language(UML)
78(No Transcript)
79Ready for the Next Run?