Gen AI in Business - Global Trends Report 2024.pdf
Object Oriented Approach Within Siebel Boundaries
1. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
Object Oriented approach within
Siebel boundaries
Date: 27/03/2007
2. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
Table of Contents
1Abstract............................................................................................................3
2Object oriented analysis & design...................................................................4
3Hierarchy..........................................................................................................4
3.1Inheritance.............................................................................................5
3.2Abstraction.............................................................................................6
3.3Encapsulation........................................................................................6
3.4Generalization........................................................................................7
3.5Polymorphism........................................................................................7
3.6Strong type............................................................................................8
3.7Object (life cycle) persistence...............................................................8
4Conclusion.......................................................................................................8
5Appendixes......................................................................................................9
3. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
1 Abstract
The main goal of the essay is trial to show the Siebel environment as
environment that permits at least basics of Object oriented analysis and
design, when satisfies the most significant properties of that approach:
• Hierarchy – achieved by Siebel using class and super class terms
• Inheritance – achieved by Siebel using class and super class terms
• Abstraction – achieved within Siebel environment using business
component well definition including its data members and functional
points, public as well as private.
• Encapsulation – achieved within Siebel environment using business
services that in fact can act different roles. Basically using this artifact
the developer can define abstract class or interface.
• Generalization – achieved within Siebel environment using business
services that in fact can act different roles. Basically using this artifact
the developer can define abstract class or interface.
• Polymorphism – achieved within Siebel environment using business
services.
• Strong type – achieved within Siebel environment using standard base
types:
String
Number
Date
Hierarchy (Property set)
Integration object (Property set)
• Object persistence (life cycle) – achieved within Siebel environment
using class and object type terms
4. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
2 Object oriented analysis & design
Business service treated as interface of business component. When the
implementation of interface within the business component.
Figure 2-1: Object Oriented approach within Siebel boundaries
3 Hierarchy
In Siebel the class implemented as library of predefined functions written
using dynamic linking library, ActiveX object (exe or dll), or java package.
"In computer science's object-oriented programming, the mapped
relationships of sub- and super-classes are known as a hierarchy. This can
be visualized as an upside-down tree (or perhaps a pyramid), the top of which
is known as the root. The issue is more complicated with languages that
support multiple inheritance, where hierarchy can be any directed acyclic
graph. Aggregation or Composition relationships in object-oriented design
also form a hierarchy, composition hierarchy"
5. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
Figure 2-2: Object hierarchy within Siebel
3.1 Inheritance
In Siebel the class implemented as library of predefined functions written
using dynamic linking library, ActiveX object (exe or dll), or java package.
"In object-oriented programming, inheritance is a way to form new classes
(instances of which are called objects) using classes that have already been
defined. The new classes, known as derived classes, take over (or inherit)
attribute and behavior of the pre-existing classes, which are referred to as
base classes (or ancestor classes). It is intended to help reuse existing code
with little or no modification. Inheritance provides the support for
representation by Categorization in computer languages. Categorization is a
powerful mechanism number of information processing, crucial to human
learning by means of generalization (what is known about specific entities is
applied to a wider group given a belongs relation can be established) and
cognitive economy (less information needs to be stored about each specific
entity, only its particularities). Inheritance is also sometimes called
generalization, because the is-a relationships represent a hierarchy between
classes of objects. For instance, a "fruit" is a generalization of "apple",
"orange", "mango" and many others. One can consider fruit to be an
abstraction of apple, orange, etc. Conversely, since apples are fruit (i.e., an
apple is-a fruit), apples may naturally inherit all the properties common to all
fruit, such as being a fleshy container for the seed of a plant. An advantage of
6. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
inheritance is that modules with sufficiently similar interfaces can share a lot
of code, reducing the complexity of the program. Inheritance therefore has
another view, a dual, called polymorphism, which describes many pieces of
code being controlled by shared control code. Inheritance is typically
accomplished either by overriding (replacing) one or more methods exposed
by ancestor, or by adding new methods to those exposed by an ancestor.
Complex inheritance, or inheritance used within a design that is not
sufficiently mature, may lead to the Yo-yo problem."
3.2 Abstraction
"In computer science, abstraction is a mechanism and practice to reduce and
factor out details so that one can focus on a few concepts at a time. The
concept is by analogy with abstraction in mathematics. The mathematical
technique of abstraction begins with mathematical definitions; this has the
fortunate effect of finessing some of the vexing philosophical issues of
abstraction. For example, in both computing and in mathematics, numbers
are concepts in the programming languages, as founded in mathematics.
Implementation details depend on the hardware and software, but this is not a
restriction because the computing concept of number is still based on the
mathematical concept. Roughly speaking, abstraction can be either that of
control or data. Control abstraction is the abstraction of actions while data
abstraction is that of data structures. For example, control abstraction in
structured programming is the use of subprograms and formatted control
flows. Data abstraction is to allow for handling data bits in meaningful
manners. For example, it is the basic motivation behind datatype. Object-
oriented programming can be seen as an attempt to abstract both data and
code."
3.3 Encapsulation
"Encapsulation is the grouping together of data and functionality. While the C
language used structs to group data together, C++ adds the functionality
component. This does the following:
7. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
1. Allows a programmer to explicitly provide the interface to an object
2. Allows hiding of implementation details
3. Allows programmer to think in an object-oriented way
Encapsulation simplifies programming by modeling the world: the world
consists of objects that do things. Thus programs become a collection of
objects and how they act, instead of a set of instructions."
3.4 Generalization
"Generalization is a foundational element of logic and human reasoning.
Generalization posits the existence of a domain or set of elements, as well as
one or more common characteristics shared by those elements. As such, it is
the essential basis of all valid deductive inference. The process of verification
is necessary to determine whether a generalization holds true for any given
situation. The concept of generalization has broad application in many related
disciplines, sometimes having a specialized context-specific meaning. For
any two related concepts, A and B; A is considered a generalization of
concept B if and only if: every instance of concept B is also an instance of
concept A; and there are instances of concept A which are not instances of
concept B. For instance, animal is a generalization of bird because every bird
is an animal, and there are animals which are not birds (dogs, for instance)."
3.5 Polymorphism
"In simple terms, polymorphism lets you treat derived class members just like
their parent class's members. More precisely, polymorphism (object-oriented
programming theory) is the ability of objects belonging to different types to
respond to method calls of methods of the same name, each one according
to an appropriate type-specific behavior. The programmer (and the program)
does not have to know the exact type of the object in advance, so this
behavior can be implemented at run time (this is called late binding or
dynamic binding). The different objects involved only need to present a
compatible interface to the clients (the calling routines). That is, there must be
public methods with the same name and the same parameter sets in all the
objects. In principle, the object types may be unrelated, but since they share a
8. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
common interface, they are often implemented as subclasses of the same
parent class. Though it is not required, it is understood that the different
methods will also produce similar results (for example, returning values of the
same type). In practical terms, polymorphism means that if class B inherits
from class A, it doesn’t have to inherit everything about class A; it can do
some of the things that class A does differently. This means that the same
“verb” can result in different actions as appropriate for a specific class, so
controlling code can issue the same command to a series of objects and get
appropriately different results from each one."
3.6 Strong type
"In software engineering, an abstract type is a type in a nominative type
system which is declared by the programmer, and which has the property that
it contains no members which are also not members of some declared
subtype. In many object oriented programming languages, abstract types are
known as abstract base classes, interfaces, traits, mixins, flavors, or roles.
Note that these names refer to different language constructs which are (or
may be) used to implement abstract types."
3.7 Object (life cycle) persistence
"Object-oriented models have rapidly become the model of choice for
programming most new computer applications. Since most application
programs need to deal with persistent data, adding persistence to objects is
essential to making object-oriented applications useful in practice."
4 Conclusion
Siebel environment is fully compatible with mandatory terms of Object
oriented analysis and design. Within the environment developer can and must
work as developer of Object oriented environment.
The above statement declares neediness of qualified developers that
understand the ways of such a development and consequences of working
without using the concepts provided by Object oriented approach.
9. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
The following are emphasizes that need to be considered during the
development in order to align with Object oriented approach:
• Strong restriction of run time events and standard scripting. The
meaning is if some event handled using one of the reminded
approaches the usage of another one must be prohibited.
• Business component need to encapsulate the whole functional points
that related to it.
• The events of business component need to be used just in cases when
the usage can be fully proved (possibly never)
• Applets and Application object of Siebel object model need to be used
just in cases when the usage can be fully proved (possibly never)
• Business services need to be used as proxies of business component's
functional points and represent delegated methods of business
components
• Business services need to be used in order to implement cross
application functionality or unrelated methods static library
• Business service can be used as singletons using caching ability
• The workflow has no advantage over business service, in fact the
workflow just graphical wrap of possible business service method
• The variables types within the Business service must be very strong.
The meaning is usage the whole variety of available types within Siebel
environment.
• The usage of ST eScript must be considered in order to improve
performance, scalability and support usage of strong typed
programming environment.
• Paradigm of publish/subscriber needs to be strongly considered.
5 Appendixes
• "Workflow usage best practices" (Roman Agaev)
10. Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
• "Common VBC paradigm" (Roman Agaev)
• "Common error handling mechanism" (Roman Agaev)