SlideShare une entreprise Scribd logo
1  sur  10
Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
Object Oriented approach within
Siebel boundaries
Date: 27/03/2007
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
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
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"
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
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:
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
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.
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)
Roman Agaev, M.Sc, PMP
Supra Information Technology ltd.
• "Common VBC paradigm" (Roman Agaev)
• "Common error handling mechanism" (Roman Agaev)

Contenu connexe

Tendances

Arabic named entity recognition using deep learning approach
Arabic named entity recognition using deep learning approachArabic named entity recognition using deep learning approach
Arabic named entity recognition using deep learning approachIJECEIAES
 
Ijartes v1-i2-006
Ijartes v1-i2-006Ijartes v1-i2-006
Ijartes v1-i2-006IJARTES
 
Advanced image processing notes ankita_dubey
Advanced image processing notes ankita_dubeyAdvanced image processing notes ankita_dubey
Advanced image processing notes ankita_dubeyAnkita Dubey
 
BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...
BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...
BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...ijnlc
 
A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...
A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...
A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...Editor IJARCET
 
BookyScholia: A Methodology for the Investigation of Expert Systems
BookyScholia: A Methodology for the  Investigation of Expert SystemsBookyScholia: A Methodology for the  Investigation of Expert Systems
BookyScholia: A Methodology for the Investigation of Expert Systemsijcnac
 
Sentiment Analysis In Myanmar Language Using Convolutional Lstm Neural Network
Sentiment Analysis In Myanmar Language Using Convolutional Lstm Neural NetworkSentiment Analysis In Myanmar Language Using Convolutional Lstm Neural Network
Sentiment Analysis In Myanmar Language Using Convolutional Lstm Neural Networkkevig
 
Turkish language modeling using BERT
Turkish language modeling using BERTTurkish language modeling using BERT
Turkish language modeling using BERTAbdurrahimDerric
 
semantic text doc clustering
semantic text doc clusteringsemantic text doc clustering
semantic text doc clusteringSouvik Roy
 
Pierre lévy architecture of a semantic networking language
Pierre lévy   architecture of a semantic networking languagePierre lévy   architecture of a semantic networking language
Pierre lévy architecture of a semantic networking languageAG Malhaartificial
 
[Paper Reading] Supervised Learning of Universal Sentence Representations fro...
[Paper Reading] Supervised Learning of Universal Sentence Representations fro...[Paper Reading] Supervised Learning of Universal Sentence Representations fro...
[Paper Reading] Supervised Learning of Universal Sentence Representations fro...Hiroki Shimanaka
 
Soft computing abstracts
Soft computing abstractsSoft computing abstracts
Soft computing abstractsabctry
 
Machine Learning techniques
Machine Learning techniques Machine Learning techniques
Machine Learning techniques Jigar Patel
 
Resume Akshay Kakkar
Resume Akshay KakkarResume Akshay Kakkar
Resume Akshay KakkarAkshay Kakkar
 

Tendances (16)

Arabic named entity recognition using deep learning approach
Arabic named entity recognition using deep learning approachArabic named entity recognition using deep learning approach
Arabic named entity recognition using deep learning approach
 
Ijartes v1-i2-006
Ijartes v1-i2-006Ijartes v1-i2-006
Ijartes v1-i2-006
 
Advanced image processing notes ankita_dubey
Advanced image processing notes ankita_dubeyAdvanced image processing notes ankita_dubey
Advanced image processing notes ankita_dubey
 
BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...
BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...
BIDIRECTIONAL LONG SHORT-TERM MEMORY (BILSTM)WITH CONDITIONAL RANDOM FIELDS (...
 
Jj2416341637
Jj2416341637Jj2416341637
Jj2416341637
 
A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...
A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...
A Combined Approach to Part-of-Speech Tagging Using Features Extraction and H...
 
BookyScholia: A Methodology for the Investigation of Expert Systems
BookyScholia: A Methodology for the  Investigation of Expert SystemsBookyScholia: A Methodology for the  Investigation of Expert Systems
BookyScholia: A Methodology for the Investigation of Expert Systems
 
Sentiment Analysis In Myanmar Language Using Convolutional Lstm Neural Network
Sentiment Analysis In Myanmar Language Using Convolutional Lstm Neural NetworkSentiment Analysis In Myanmar Language Using Convolutional Lstm Neural Network
Sentiment Analysis In Myanmar Language Using Convolutional Lstm Neural Network
 
Turkish language modeling using BERT
Turkish language modeling using BERTTurkish language modeling using BERT
Turkish language modeling using BERT
 
semantic text doc clustering
semantic text doc clusteringsemantic text doc clustering
semantic text doc clustering
 
Pierre lévy architecture of a semantic networking language
Pierre lévy   architecture of a semantic networking languagePierre lévy   architecture of a semantic networking language
Pierre lévy architecture of a semantic networking language
 
[Paper Reading] Supervised Learning of Universal Sentence Representations fro...
[Paper Reading] Supervised Learning of Universal Sentence Representations fro...[Paper Reading] Supervised Learning of Universal Sentence Representations fro...
[Paper Reading] Supervised Learning of Universal Sentence Representations fro...
 
Lesson 19
Lesson 19Lesson 19
Lesson 19
 
Soft computing abstracts
Soft computing abstractsSoft computing abstracts
Soft computing abstracts
 
Machine Learning techniques
Machine Learning techniques Machine Learning techniques
Machine Learning techniques
 
Resume Akshay Kakkar
Resume Akshay KakkarResume Akshay Kakkar
Resume Akshay Kakkar
 

Similaire à Object Oriented Approach Within Siebel Boundaries

Similaire à Object Oriented Approach Within Siebel Boundaries (20)

Java chapter 3
Java   chapter 3Java   chapter 3
Java chapter 3
 
Chapter1
Chapter1Chapter1
Chapter1
 
General OOP concept [by-Digvijay]
General OOP concept [by-Digvijay]General OOP concept [by-Digvijay]
General OOP concept [by-Digvijay]
 
Oops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in JavaOops concepts || Object Oriented Programming Concepts in Java
Oops concepts || Object Oriented Programming Concepts in Java
 
MCA NOTES.pdf
MCA NOTES.pdfMCA NOTES.pdf
MCA NOTES.pdf
 
INTRODUCTION TO JAVA
INTRODUCTION TO JAVAINTRODUCTION TO JAVA
INTRODUCTION TO JAVA
 
Basics of object oriented programming
Basics of object oriented programmingBasics of object oriented programming
Basics of object oriented programming
 
chapter - 1.ppt
chapter - 1.pptchapter - 1.ppt
chapter - 1.ppt
 
Chapter1 introduction
Chapter1 introductionChapter1 introduction
Chapter1 introduction
 
Oop
OopOop
Oop
 
OOP
OOPOOP
OOP
 
Oop basic concepts
Oop basic conceptsOop basic concepts
Oop basic concepts
 
Oop by edgar lagman jr
Oop by edgar lagman jr Oop by edgar lagman jr
Oop by edgar lagman jr
 
Ooad notes
Ooad notesOoad notes
Ooad notes
 
Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Bt8901 objective oriented systems1
Bt8901 objective oriented systems1
 
OBJECT ORIENTED PROGRAMMING CONCEPTS IN C++.pptx
OBJECT ORIENTED PROGRAMMING CONCEPTS IN C++.pptxOBJECT ORIENTED PROGRAMMING CONCEPTS IN C++.pptx
OBJECT ORIENTED PROGRAMMING CONCEPTS IN C++.pptx
 
Mcs024
Mcs024Mcs024
Mcs024
 
Oops slide
Oops slide Oops slide
Oops slide
 
M.c.a. (sem iv)- java programming
M.c.a. (sem   iv)- java programmingM.c.a. (sem   iv)- java programming
M.c.a. (sem iv)- java programming
 
Basic concept of object oriented programming
Basic   concept   of    object  oriented  programmingBasic   concept   of    object  oriented  programming
Basic concept of object oriented programming
 

Plus de Roman Agaev

Siebel deployment
Siebel deploymentSiebel deployment
Siebel deploymentRoman Agaev
 
Siebel client side integrator (SCSI)
Siebel client side integrator (SCSI)Siebel client side integrator (SCSI)
Siebel client side integrator (SCSI)Roman Agaev
 
It Project And Agile
It Project And AgileIt Project And Agile
It Project And AgileRoman Agaev
 
Logic Equations Resolver J Script
Logic Equations Resolver   J ScriptLogic Equations Resolver   J Script
Logic Equations Resolver J ScriptRoman Agaev
 
Integration Within Several Projects
Integration Within Several ProjectsIntegration Within Several Projects
Integration Within Several ProjectsRoman Agaev
 
Potential Solutions Co Existence
Potential Solutions   Co ExistencePotential Solutions   Co Existence
Potential Solutions Co ExistenceRoman Agaev
 
Client/Server Paradigm And Its Implementation
Client/Server Paradigm And Its ImplementationClient/Server Paradigm And Its Implementation
Client/Server Paradigm And Its ImplementationRoman Agaev
 
Order Management Plus Integration Topics
Order Management Plus Integration TopicsOrder Management Plus Integration Topics
Order Management Plus Integration TopicsRoman Agaev
 
Workflow Usage Best Practices
Workflow Usage Best PracticesWorkflow Usage Best Practices
Workflow Usage Best PracticesRoman Agaev
 
Workflow On The Fly Monitoring Solution
Workflow On The Fly Monitoring SolutionWorkflow On The Fly Monitoring Solution
Workflow On The Fly Monitoring SolutionRoman Agaev
 
Potential Vpn Solution
Potential Vpn SolutionPotential Vpn Solution
Potential Vpn SolutionRoman Agaev
 
Potential Customer Data Model Solution Telco
Potential Customer Data Model Solution   TelcoPotential Customer Data Model Solution   Telco
Potential Customer Data Model Solution TelcoRoman Agaev
 
General Logging Approach
General Logging ApproachGeneral Logging Approach
General Logging ApproachRoman Agaev
 
General Error Handling Approach
General Error Handling ApproachGeneral Error Handling Approach
General Error Handling ApproachRoman Agaev
 
Common Redirection Mechanism
Common Redirection MechanismCommon Redirection Mechanism
Common Redirection MechanismRoman Agaev
 
Common System Parameters
Common System ParametersCommon System Parameters
Common System ParametersRoman Agaev
 
Common Global Parameters
Common Global ParametersCommon Global Parameters
Common Global ParametersRoman Agaev
 
Common Msisdn Resource Number Management
Common Msisdn Resource   Number ManagementCommon Msisdn Resource   Number Management
Common Msisdn Resource Number ManagementRoman Agaev
 
Guidance 4 Days Configuration Presentation
Guidance   4 Days   Configuration   PresentationGuidance   4 Days   Configuration   Presentation
Guidance 4 Days Configuration PresentationRoman Agaev
 
Guidance 4 Days Configuration
Guidance   4 Days   ConfigurationGuidance   4 Days   Configuration
Guidance 4 Days ConfigurationRoman Agaev
 

Plus de Roman Agaev (20)

Siebel deployment
Siebel deploymentSiebel deployment
Siebel deployment
 
Siebel client side integrator (SCSI)
Siebel client side integrator (SCSI)Siebel client side integrator (SCSI)
Siebel client side integrator (SCSI)
 
It Project And Agile
It Project And AgileIt Project And Agile
It Project And Agile
 
Logic Equations Resolver J Script
Logic Equations Resolver   J ScriptLogic Equations Resolver   J Script
Logic Equations Resolver J Script
 
Integration Within Several Projects
Integration Within Several ProjectsIntegration Within Several Projects
Integration Within Several Projects
 
Potential Solutions Co Existence
Potential Solutions   Co ExistencePotential Solutions   Co Existence
Potential Solutions Co Existence
 
Client/Server Paradigm And Its Implementation
Client/Server Paradigm And Its ImplementationClient/Server Paradigm And Its Implementation
Client/Server Paradigm And Its Implementation
 
Order Management Plus Integration Topics
Order Management Plus Integration TopicsOrder Management Plus Integration Topics
Order Management Plus Integration Topics
 
Workflow Usage Best Practices
Workflow Usage Best PracticesWorkflow Usage Best Practices
Workflow Usage Best Practices
 
Workflow On The Fly Monitoring Solution
Workflow On The Fly Monitoring SolutionWorkflow On The Fly Monitoring Solution
Workflow On The Fly Monitoring Solution
 
Potential Vpn Solution
Potential Vpn SolutionPotential Vpn Solution
Potential Vpn Solution
 
Potential Customer Data Model Solution Telco
Potential Customer Data Model Solution   TelcoPotential Customer Data Model Solution   Telco
Potential Customer Data Model Solution Telco
 
General Logging Approach
General Logging ApproachGeneral Logging Approach
General Logging Approach
 
General Error Handling Approach
General Error Handling ApproachGeneral Error Handling Approach
General Error Handling Approach
 
Common Redirection Mechanism
Common Redirection MechanismCommon Redirection Mechanism
Common Redirection Mechanism
 
Common System Parameters
Common System ParametersCommon System Parameters
Common System Parameters
 
Common Global Parameters
Common Global ParametersCommon Global Parameters
Common Global Parameters
 
Common Msisdn Resource Number Management
Common Msisdn Resource   Number ManagementCommon Msisdn Resource   Number Management
Common Msisdn Resource Number Management
 
Guidance 4 Days Configuration Presentation
Guidance   4 Days   Configuration   PresentationGuidance   4 Days   Configuration   Presentation
Guidance 4 Days Configuration Presentation
 
Guidance 4 Days Configuration
Guidance   4 Days   ConfigurationGuidance   4 Days   Configuration
Guidance 4 Days Configuration
 

Dernier

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Dernier (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
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)