Académique Documents
Professionnel Documents
Culture Documents
Corporate Systemhouse
SHL Systemhouse Co.
Submitted to
Prepared by
Srikanth Mannem
Student No. 040 295 312
From:
Srikanth Mannem
160, Preston Street
Ottawa, ON – K1R 7P7
To:
Richard Emery
Co-operative Education Office
Algonquin College
1385 Woodroffe Avenue
Nepean, ON – K2G 1V8
Dear Richard
I am a student of Algonquin College enrolled in the Two year Computer Programmer course of
study. For the co-operative education portion of my program, I was hired by SHL Systemhouse
for my first work term and continued my second work term with the same company.
This work term report, entitled 'Object Oriented Programming', explains my role at
Systemhouse and discusses Object Oriented Software methodologies used in the Information
Technology industry. This is a subject of which I had much exposure to during my second work
term. In addition to the hands on experience I gained at college, I referenced books on OOP,
OOAD to learn more on this topic.
I would like to take this opportunity and thank Anne Page, Human Resource Department for
giving me a chance to work at Systemhouse. I also extend my sincere appreciation to all the
members of ProTrack and PRRS teams.
Special thanks go to Neil Warner, Janice Stevens and David Argue for making my work term
an extra-ordinary and valuable experience. The knowledge I have gained at Systemhouse will
definitely enhance my career in the IT industry.
Yours sincerely
Submitted to..........................................................................................................................i
Prepared by...........................................................................................................................i
May 1, 1998 – August 28, 1998...........................................................................................i
Letter of Transmittal.............................................................................................................i
Table of Contents..................................................................................................................i
1. Introduction......................................................................................................................1
2. Overview of the Organization.........................................................................................2
3. Overview of the Project ..................................................................................................3
Programming Paradigm..................................................................................................4
Object Oriented Programming Paradigm............................................................................5
Object Oriented Programming - Basic Concepts............................................................5
Object..............................................................................................................................5
Class................................................................................................................................6
The Benefit of Objects & Classes...........................................................................................................7
Messages.........................................................................................................................7
The Benefits of Messages........................................................................................................................8
Inheritance ......................................................................................................................9
The Benefits of Inheritance..................................................................................................................10
Polymorphism...............................................................................................................10
Object Oriented Programming - Benefits.....................................................................13
Malleability (Manageable)............................................................................................13
Work Term Learning Objectives.......................................................................................14
Objective 1 - Cognitive Domain:..................................................................................14
Objective 2 - Affective Domain:...................................................................................14
Objective 3 - Psychomotor Domain:.............................................................................14
Nature of Duties:................................................................................................................15
Applied Knowledge...........................................................................................................16
Acclaimed Knowledge.......................................................................................................17
Conclusion.........................................................................................................................18
Recommendations..............................................................................................................19
Acknowledgements............................................................................................................21
References..........................................................................................................................22
SHL Systemhouse Career Paths.............................................................................................................1
Education.............................................................................................................................1
The Algonquin College of Applied Arts and Technology offers a Two-year Computer
Programmer course of study, which I am enrolled into since January 1997. During my
third semester, I registered for the co-operative education program and was hired for a
co-op work term as Junior Programmer by SHL Systemhouse (Appendix A – Table 1).
The initial contract was for a period of 16 weeks started January 5, 1998. During the
third week of the work term, I accepted an extended work-term contract (May 1, 1998 to
August 28, 1998) offered by the Project’s Senior Consultant.
The company has started it’s business in 1974 and since then, the company has provided
a comprehensive range of global systems integration services to major corporate, mid-
sized and public sector clients in North and South America, Europe, and Asia. Through
its networking, communications and consulting services, the company has helped
hundreds of clients build high performance, cost-effective information technology
infrastructures for the new millennium. Staffed by over 9,400 professionals operating
from 120 offices worldwide, Systemhouse is the industry’s only single-source provider
of convergence products and services.
ProTrack has been built specifically to simplify the role of the project manager and
proposal manager by providing a tool to allow consistent projections, processing and
reporting of resourcing, supplier and financial information throughout the business
phases.
It also provides integrated support and reporting for the resourcing, supplier and financial
aspects of a project.
There are many programming paradigms (models). Some of the models are procedural,
functional, rule-based, declarative, and object-oriented. A language can have aspects of
one or many of these programming models.
The programming model most people are familiar with is the procedural style. The
primitives in procedural programming are – Subroutines, and data structures. Through
these primitives, programmers have some limited abilities to share programs and
program fragments. BASIC, COBOL, C, and Pascal are some of the examples of
procedural languages.
The fundamental idea behind object-oriented languages is to combine into a single unit
both data and the functions that operate on that data. Such a unit is called an object. An
object’s functions, called member functions (in C++), typically provide the only way to
access its data (if it’s properly encapsulated). If there is a need to access a data item in
an object, the only way is through the object’s member function. The data is hidden, so
it is safe from accidental modification. Due to the data and functions integrated tightly
into a single unit, the object’s are said to be encapsulated. Data encapsulation and data
hiding are key terms in describing an object-oriented programming language.
Object
Software objects are modeled after these real-world objects in that, they too have state
and behavior. A software object maintains its state in variables and implements its
behavior with methods.
Class
In the real world, we often have many objects of the same kind. For example, bicycle is
just one of many bicycles in the world. Using object-oriented terminology, we say that a
particular bicycle object is an instance of the class of objects known as bicycles. Bicycles
have some state (current gear, current cadence) and behavior (change gears, brake) in
common. However, each bicycle's state is independent of and can be different from other
bicycles.
When building bicycles, manufacturers take advantage of the fact that bicycles share
characteristics by building many bicycles from the same blueprint--it would be very
inefficient to produce a new blueprint for every individual bicycle they manufactured.
In object-oriented software, it's also possible to have many objects of the same kind that
share same characteristics. Example: employee records, financial information etc.. Like
the bicycle manufacturers, we can take advantage of the fact that objects of the same kind
Definition: A class is a blueprint or prototype that defines the variables and methods
common to all objects of a certain kind.
Objects provide the benefit of modularity and information hiding. Classes provide the
benefit of reusability. Bicycle manufacturers reuse the same blueprint over and over
again to build lots of bicycles. Software programmers use the same class, and thus the
same code, over and over again to create many objects.
Messages
A single object alone is generally not very useful and usually appears as a component of
a larger program or application that contains many other objects. Through the interaction
of these objects, programmers achieve high order functionality and more complex
behavior. Your bicycle hanging from a hook in the garage is just a bunch of titanium
alloy and rubber; by itself the bicycle is incapable of any activity. The bicycle is useful
only when another object (you) interacts with it (starts pedaling).
Software objects interact and communicate with each other by sending messages to each
other. When object A wants object B to perform one of B's methods, object A sends a
message to object B.
Inheritance
Object-oriented systems take this a step further and allow classes to be defined in terms
of other classes. For example, mountain bikes, racing bikes, and tandems are all different
kinds of bicycles. In object-oriented terminology, mountain bikes, racing bikes, and
tandems are all subclasses of the bicycle class. Similarly, the bicycle class is the
superclass of mountain bikes, racing bikes, and tandems.
Each subclass inherits state (in the form of variable declarations) from the superclass.
Mountain bikes, racing bikes, and tandems share some states: cadence, speed. Also, each
subclass inherits methods from the superclass. Mountain bikes, racing bikes, and tandems
share some behaviors: braking and changing pedaling speed.
However, subclasses are not limited to the state and behaviors provided to them by their
superclass. Subclasses can add variables and methods to the ones they inherit from the
superclass. Tandem bicycles have two seats and two sets of handle bars; some mountain
bikes have an extra set of gears with a lower gear ratio.
We are not limited to just one layer of inheritance. The inheritance tree, or class
hierarchy, can be as deep as needed. Methods and variables are inherited down through
the levels. In general, the further down in the hierarchy tree, the more specialized its
behavior.
Definition: Inheritance is a means of deriving a class from existing classes, called base
classes.
Polymorphism
The concept of dynamic binding allows a variable to take different types dependent on
the content at a particular time. This ability of a variable is called polymorphism.
class TBike
{
private:
…..
public:
….
virutal void ShowWheelWidth (void);
}
bike = &mountain_bike;
wheel_width = bike->WheelWidth();
bike = &racing_bike;
wheel_width = bike->WheelWidth();
}
In the above example, the output value in first instance will be 10, and 15 upon executing
the second statement. The rule is that the compiler selects the function based on the
contents of the pointer bike, not on the type of the pointer.
Objects are natural metaphors for both physical objects and abstract entities. Expressing
computations in terms of objects reduce the gap between concept and program.
Malleability (Manageable)
Good programs evolve. Evolution is easiest when the modifications are local. Objects
combine data with functions to manipulate that data (allowing localization) and access to
objects’ data is restricted (enforcing localization).
5.2.3 Extensibility
Using inheritance, new objects and their behaviors can be defined as incremental
modifications and extensions of existing objects.
5.2.4 Abstraction
Before starting my co-op term, the following objectives were submitted to the co-
operative department, Algonquin College. The supervisor had to agree to the objectives
that the co-op student learn/achieve from the co-op work term. I would like to review
these objectives and prove how I achieved them in the following sections.
Design, develop, and maintain Object Oriented Programs using Borland C++ 5.02.
standards and structures, which some of them are: Systems Analysis and Design (DAT
2234) which familiarized me with the terminology used in Systems Development Life
Cycle and the process involved in testing methodology. Regular program development
and testing that I performed on my personal programs developed in Visual Basic (DAT
2219, DAT 2220), C++ (DAT 2358), Java, and Perl (DAT 2365).
The DAT 2220 Group Project helped me to understand the roles and responsibilities
required for working as a team member. This group project gave me the experience to
work in a team environment. I also learned about linking the individual modules,
designing & developing the programs, linking the modules etc. The project also helped
to the peer members of the project, roles and responsibilities involved as a team member.
This work term has proven to be an excellent learning experience for all kinds of
the time I joined in this project and now. I have gained a lot of experience and been
exposed to new things. I also got to see the differences between procedural
programming, and Object Oriented Programming. Before, I was able to write a program /
function that works accurately, but now, I am concentrating more on the re-usability of
OOP is the product of 25 years of programming practice and experience. The style of
OOP’s captures the behavior of the real world in a way that hides detailed
implementation. Some of the OOP languages are Simula67, Smalltalk, Lisp, Clu, Actor,
Eiffel, Objective C, C++, and Java. C++ was created in the early eighties with a goal to
provide a language for the professional programmer that can be used to develop OOP
• Object, Encapsulation
• Abstraction, Polymorphism.
Systemhouse has given me a valuable experience that will enhance my career in future
endeavors. The co-op option is very useful to the employer, to the student, and also to
campus with paid work terms in a variety of job settings. The knowledge gained by the
student in the course is applied in the real world programming thus helping the student to
seasonal work; improved productivity and efficiency; and lower recruitment costs. Co-
op option also assists employers with career recruitment, part-time staffing and short-
term contract work and also gives a chance to assess the student before hiring for long-
term contract.
in the co-op program. This program will be most beneficial to the students when they
Programming, API Functions / Calls, advantages and necessary for use of INI files, DLL,
using MAPI functions etc. I request the Chairperson, Information Systems Department
I would like to take this opportunity to extend my thanks to the Human Resource
I would like to thank David Argue, Project Director, Corporate Systemhouse for giving
to adjust to the new environment and also gave me confidence to work in the IT industry.
I would like to thank Janice Stevens, Project Manager, Corporate Systemhouse and Neil
Warner, Technical Architect for training me and helping me understand the concepts of
Object Oriented Programming and reviewing the co-op report. I was directly working
under the supervision of Neil and he explained me in many situations the advantages of
OOP and the benefits of designing and developing programs in terms of performance.
Peter Coad / Edward Yourdon, Object Oriented Design, Yourdon Press Computing
Series, 1991.
Rebecca Wirfs. Brock, Brian Wilkerson, Lauren Wiener, Designing Object Oriented
Software, Prentice Hall, 1990.
Robert Lafore, Object Oriented Programming in C++, Waite Group Press, 1991.
Appendix – A Page A - 1
SHL Systemhouse Career Paths
Delivery Technical
Education Consulting Project
Management
Director, Systems Integration Director, Technology /
Chief Technical Architect
Manager, Senior Project Director/ Manager, Technology /
Systems Integration Director, Client Director, Engineering
Services
Managing Consultant Project Director / Senior Technical Manager, Systems
Client Services Architect Engineering
Manager
Senior Consultant Senior Project Manager Technical Architect
Manager, Training / Consultant Project Manager Senior Systems Senior Systems
Education Consultant Engineer Programmer
Instructor III Senior Systems Analyst Systems Engineer Systems Programmer
Instructor II Senior Business Systems Analyst Associate Systems Associate Systems
Analyst Engineer Programmer
Instructor I Business Analyst Senior Programmer Analyst
Programmer Analyst
Programmer
Junior Programmer / Co-op
Project Administrator
Appendix - A Page A - 2