Vous êtes sur la page 1sur 27

WORK TERM REPORT

Corporate Systemhouse
SHL Systemhouse Co.

Submitted to

Co-operative Education Department, Algonquin College

Prepared by

Srikanth Mannem
Student No. 040 295 312

2 Year Computer Programmer Diploma Program


Algonquin College of Applied Arts and Technology
Ottawa, Ontario – Canada

May 1, 1998 – August 28, 1998


Letter of Transmittal

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

Srikanth Mannem Janice Stevens


Project Manager
Corporate
Systemhouse

Work Term Report by Srikanth Mannem August 1998 Page i


Table of Contents

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

Work Term Report by Srikanth Mannem August 1998 Page ii


1. Introduction

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.

Work Term Report August 1998 Page 1


2. Overview of the Organization

SHL Systemhouse is a global leader in large-scale systems integration, outsourcing,


technology deployment, and related education services. The company is distinguished by
its client/server computing migration expertise and offers both custom & large-scale
network solutions and prepackaged solutions for smaller businesses’ needs. Serving
major commercial and public-sector clients worldwide, Systemhouse’s highly skilled
consultants enabled organizations to re-engineer their business processes through leading
edge of information technology.

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.

Work Term Report August 1998 Page 2


3. Overview of the Project

ProTrack is a Project Financial Information Management and Resource Tracking tool.


It
is an internal delivery management tool for Systemhouse systems integration projects. It
is designed for forecasting the financial performance and resource allocation of proposed
projects.

For contracted projects, ProTrack provides continual recalculation of the financial


performance by applying the latest data from the Systemhouse accounting system to the
‘project to complete’ data entered in a ProTrack model by the project manager.

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.

Work Term Report August 1998 Page 3


Programming Paradigm

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.

Work Term Report August 1998 Page 4


Object Oriented Programming Paradigm

Object-Oriented Programming (OOP) offers a powerful model for writing computer


software. Objects are "black boxes" which send and receive messages. This approach
speeds the development of new programs, and improves the maintenance, reusability,
and modifiability of software.

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 Oriented Programming - Basic Concepts

Object

As the name object-oriented implies, objects are key to understanding object-oriented


technology. We can look around and see many examples of real-world objects: dog,
desk, or bicycle. These real-world objects share two characteristics: they all have state
and behavior. For example, dogs have state (name, color, breed) and dogs have behavior
(barking, fetching, and slobbering on newly cleaned slacks). Bicycles have state (current
gear, current pedal cadence, number of gears) and behavior (braking, accelerating,
slowing down, changing gears).

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.

Definition: An object is a software bundle of variables and related methods.

Work Term Report August 1998 Page 5


We can represent real-world objects using software objects - for example, bicycle (a real-
world object) as software object within an electronic exercise bike. However, we can also
use software objects to model abstract concepts. For example, an event is a common
object used in GUI window systems to represent the action of a user pressing a mouse
button or a key on the keyboard.

The following illustration is a common visual representation of a software object:

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

Work Term Report August 1998 Page 6


are similar and can create a blueprint for those objects. Software "blueprints" for objects
are called classes.

Definition: A class is a blueprint or prototype that defines the variables and methods
common to all objects of a certain kind.

The Benefit of Objects & Classes

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.

Work Term Report August 1998 Page 7


Sometimes the receiving object needs more information so that it knows exactly what to
do--for example, when you want to change gears on your bicycle, you have to indicate
which gear you want. This information is passed along with the message as parameters.

Three components comprise a message:

• The object to whom the message is addressed (Your Bicycle)


• The name of the method to perform (changeGears)
• Any parameters needed by the method (lower gear)

The Benefits of Messages

• An object's behavior is expressed through its methods, so (aside from


direct variable access) message passing supports all possible interactions
between objects.

Work Term Report August 1998 Page 8


• Objects don't need to be in the same process or even on the same machine
to send and receive messages back and forth to each other.

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.

Work Term Report August 1998 Page 9


Subclasses can also override inherited methods and provide specialized implementations.
For example, if you had a mountain bike with an extra set of gears, you would override
the "change gears" method so that the rider could actually use those new gears.

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.

The Benefits of Inheritance

• Subclasses provide specialized behaviors from the basis of common


elements provided by the superclass. Through the use of inheritance,
programmers can reuse the code in the superclass many times.

• Programmers can implement superclasses called abstract classes that


define "generic" behaviors. The abstract superclass defines and may partially
implement the behavior but much of the class is undefined and
unimplemented. Other programmers fill in the details with specialized
subclasses.

Polymorphism

Polymorphism is the ability of an object to assume or become many different forms of


object. Inheritance specifies slightly different or additional structure or behavior for an
object, and these more specific or additional attributes of an object of a base class.
Polymorphism allows an object to assume or become any object (satisfying some implicit
or explicit type constraints, or a common structure).

Work Term Report August 1998 Page 10


“Poly” means many and “morph” means form. The polymorphism has many uses in
sciences, all referring to objects that can take on or assume many different forms.
Cardelli and Wegner follow-up with a classification scheme, adding inclusion
polymorphism for sub-typing and inheritance. The first type is similar to the concept of
dynamic binding. Here, the type of a variable depends on its content. Thus, its type
depends on the content at a specific time:

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);
}

class TMountainBike : TBike


{
private:
…..
public:
….
void ShowWheelWidth () { cout << “10 mm”; }
}

class TRacingBike : TBike


{
private:
…..
public:
….
void ShowWheelWidth () { cout << “15 mm”; }
}

Work Term Report August 1998 Page 11


void main ()
{
TMountainBike mountain_bike;
TRacingBike racing_bike;
TBike * bike;
int wheel_width;

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.

Definition: Polymorphism is the ability of an object (or reference) to assume (be


replaced by) or become many different forms of an object.

Work Term Report August 1998 Page 12


Object Oriented Programming - Benefits

5.1.1 Direct Expression

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

Using polymorphism, similarities among objects can be expressed in the program,


allowing us to write code in terms of the similarities without regard to the differences.

Work Term Report August 1998 Page 13


Work Term Learning Objectives

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.

Objective 1 - Cognitive Domain:

Design, develop, and maintain Object Oriented Programs using Borland C++ 5.02.

Objective 2 - Affective Domain:

To learn the roles and responsibilities as a member of IT team.

Objective 3 - Psychomotor Domain:

Develop and maintain complicated classes in C++.

Work Term Report August 1998 Page 14


Nature of Duties:

My job at Systemhouse is to design and develop Object-Oriented programs. To achieve


this, I had to understand the OOP methodology and procedures and standards of
company. I referred many books on Object Oriented Programming, Object Oriented
Analysis and Design, OWL Programming, and Borland C++ manuals.

I was working as a Software Developer in ProTrack project. ProTrack is a Project


Financial Information Management and Resource Tracking tool. It has been designed
for forecasting the financial performance and resource allocation of proposed and
contracted projects. ProTrack provides the integrated support and reporting for the
resourcing, supplier and financial aspects of a project.

• Developed various components of ProTrack like Cost and Pricing, Key


Personnel, Win Status, Model Information, Key Dates, Back-Out and Re-
Load Actuals.
• Maintain and develop additional functionality for Work Breakdown
Structure (WBS) – A tree structure to display the work breakdown elements
using Borland components like Tree window, Tree Node, and Tree view.
• Developed Preferences – A visual directory structure to set the default
paths for associated files.
• Designed and developed graphs to represent Customer Payment and Cash
Flow projections, Profit and Loss, and Metrics information. The graphs are
developed using third party OCX controls (First Impression - Visual
Components OCX controls).

Work Term Report August 1998 Page 15


Applied Knowledge

My knowledge learnt from the college, helped me to understand the programming

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 gain sufficient knowledge and techniques used to document meetings; communicating

to the peer members of the project, roles and responsibilities involved as a team member.

Work Term Report August 1998 Page 16


Acclaimed Knowledge

This work term has proven to be an excellent learning experience for all kinds of

programmer’s needs. I have seen an incredible difference in my knowledge base from

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

code, extensibility, and performance.

Work Term Report August 1998 Page 17


Conclusion

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

software without sacrificing C’s efficiency or portability.

The three fundamental ideas characterize Object-Oriented Programming are:

• Object, Encapsulation

• Class hierarchies, Inheritance

• Abstraction, Polymorphism.

Work Term Report August 1998 Page 18


Recommendations

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

the college. Co-operative education is an integrated approach to higher education which

enables well-motivated students to follow a program that alternates study terms on

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

gain the practical business experience.

Advantages for employers include cost-effective temporary employees for peak or

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.

I would strongly recommend Algonquin College and Sytemhouse to actively participate

in the co-op program. This program will be most beneficial to the students when they

enter into the IT industry.

I would also recommend Algonquin College to emphasize more on Object Oriented

Programming, API Functions / Calls, advantages and necessary for use of INI files, DLL,

using MAPI functions etc. I request the Chairperson, Information Systems Department

Work Term Report August 1998 Page 19


to change the curriculum so that the students can work efficiently when they step into the

real world programming.

Work Term Report August 1998 Page 20


Acknowledgements

I would like to take this opportunity to extend my thanks to the Human Resource

Department of Systemhouse for giving me an opportunity to get my foot in to the

Information Technology industry.

I would like to thank David Argue, Project Director, Corporate Systemhouse for giving

me a chance to work on ProTrack project. His co-operation and friendliness helped me

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.

Work Term Report August 1998 Page 21


References

Gary B. Shelly, Thomas J. Cashman, Judy Adamski, Joseph J. Adamski, Systems


Analysis and Design, An International Thomson Publishing Company, 1995.

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.

Timothy Budd, An Introduction to Object-Oriented Programming, Addison-Wesley


Publishing Company.

Work Term Report August 1998 Page 22


Appendix – A

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

Table 1: SHL Systemhouse Career Paths

Appendix - A Page A - 2

Vous aimerez peut-être aussi