You are on page 1of 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.

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.

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

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. Objectoriented 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 doesnt 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.

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)

You might also like