Sunteți pe pagina 1din 35

Report on Professional Internship with

Continental Automotive Singapore Pte Ltd

Michelle Vanessa

U1620071L

School of Computer Science and Engineering

AY2018/2019 Semester 2

1
Contents

Abstract ..................................................................................................................................... 3
Acknowledgement .................................................................................................................... 4
List of Figures ............................................................................................................................ 5
Chapter 1: Introduction ............................................................................................................ 7
1.1 Objective ................................................................................................................... 7
1.2 Organization background.......................................................................................... 7
Chapter 2: Projects ................................................................................................................... 9
2.1 Task Catalogue ................................................................................................................ 9
2.1.1. Overview ................................................................................................................. 9
2.1.2 CDE Task Catalogue v1.0 .......................................................................................... 9
2.1.3 Task Catalogue v2.0 ............................................................................................... 12
2.1.4 Diagrams ................................................................................................................ 16
2.2 Component Management System ................................................................................ 18
2.2.1 Overview ................................................................................................................ 18
2.2.2 Improvement ......................................................................................................... 19
2.3 Hardware Module Delivery System .............................................................................. 21
2.3.1 Overview ................................................................................................................ 21
2.3.2 Previous Version .................................................................................................... 21
2.3.3 CMS – HMDS .......................................................................................................... 22
2.3.3 Improvement to the system .................................................................................. 23
2.3.4 User interface ........................................................................................................ 29
2.3.4 Problems ................................................................................................................ 32
Chapter 3: Conclusions ........................................................................................................... 34
References .............................................................................................................................. 35

2
Abstract

This report summarizes the author’s experience with Continental Automotive

Singapore Pte Ltd for the past 20 weeks. During her time there, she had the

opportunity to apply the knowledge she learned at school and use it to support the

engineers in the Core Discipline Electrical Engineering department. She was trusted

to create several tools that would help them with their projects and to improve their

internal database website, which allowed her to learn new skills that she cannot pick

up through formal education. The following chapters will further elaborate the tasks

she was assigned to do and what she learned during her time as an intern, followed

by a conclusion of her internship.

3
Acknowledgement

I would like to express my deepest gratitude to my organization supervisor, Mr. Teh

Wei Chong, for giving me this valuable opportunity to work under the Electrical

Engineering department. It has been a wonderful experience to work with the

electrical engineers in the department, and I have gained useful experience during

my time there.

I would also like to earnestly thank Jessie Darma and Willfred Lim, who have given

me the opportunity to explore new programming languages and have been very

supportive to me despite my lack of experience. Without their support, I would not

be able to keep myself motivated and push myself beyond my limit.

Furthermore, I would like to express my appreciation to my NTU mentor, Associate

Professor Liu Yang, for taking time to visit the company despite his busy schedule and

for his words of encouragement during his short visit.

Lastly, I would like to thank other engineers in CDEE team for their genuine care for

me, especially for taking time to help me settle in during my first days of internship.

4
List of Figures

Figure 1 CDE Task Catalogue v1.0 ........................................................................................... 10

Figure 2 Effort hour database ................................................................................................. 11

Figure 3 Index database .......................................................................................................... 12

Figure 4 Task Catalogue v2.0 .................................................................................................. 13

Figure 5 Task Catalogue v2.0 database................................................................................... 14

Figure 6 Result output window............................................................................................... 15

Figure 7 Output CSV file .......................................................................................................... 15

Figure 8 Use case diagram ...................................................................................................... 16

Figure 9 Sequence diagram .................................................................................................... 17

Figure 10 Component diagram ............................................................................................... 17

Figure 11 Class diagram .......................................................................................................... 18

Figure 12 Error message ......................................................................................................... 20

Figure 13 DotNetLibraryForMySQLExport.exe ....................................................................... 21

Figure 14 CMS - HMDS ............................................................................................................ 23

Figure 15 HMDS checkout (cart) ............................................................................................. 24

Figure 16 Request notification ................................................................................................ 25

Figure 17 User page ................................................................................................................ 26

Figure 18 Component diagram ............................................................................................... 27

Figure 19 User flow design ..................................................................................................... 28

Figure 20 Developer navigation bar ....................................................................................... 29

Figure 21 User navigation bar ................................................................................................. 29

Figure 22 Initial login page ...................................................................................................... 29

Figure 23 Improved login page ............................................................................................... 30

Figure 24 Initial modules page ................................................................................................ 30

5
Figure 25 Improved modules page ......................................................................................... 31

Figure 26 Initial user page ....................................................................................................... 31

Figure 27 Improved user page ................................................................................................ 32

6
Chapter 1: Introduction

1.1 Objective

This report is a part of assessment method of the compulsory Professional Internship

program from School of Computer Science and Engineering. In this case, the

internship was carried out in Continental Automotive Singapore Pte Ltd, where the

author was attached to the Core Discipline Electrical Engineering department for 20

weeks.

Consequently, this report contains detailed explanation of the author’s journey as an

intern in the company, such as tasks and projects she was assigned to do, skills she

gained throughout the internship, things she learned during the process, and the

result of her 5-month work.

1.2 Organization background

Established in Hanover, Germany in 1871, Continental has grown from a rubber

manufacturer named Continental-Caoutchouc und Gutta-Percha Compagnie to

Continental AG, a German automotive company specializing in brake systems,

interior electronics, automotive safety, powertrain and chassis components,

tachographs, tires and other parts for the automotive and transportation industries.

Now, the company has hundreds of offices worldwide, including Singapore, which

was founded in 1997. Continental Automotive Singapore Pte Ltd has more than 1300

employees today and is one of the largest Continental R&D (Research and

Development) centers in Asia.

7
One of the divisions in Continental Singapore is the Interior Division, which consists

of several Business Units. The author was attached to Business Unit Instrumentation

& Driver HMI under Electrical and Engineering department, where one of their

products is the instrument clusters.

8
Chapter 2: Projects

2.1 Task Catalogue

2.1.1. Overview

Task Catalogue is a tool used by the electrical engineers to estimate the effort hours

to finish a project given the project details. This catalogue is needed because other

departments or teams working on the same project frequently enquire the engineers

the hours needed to finish the project. In the past, the engineers need to calculate

the hours manually, but it was tedious and time consuming. Therefore, the Head of

Department of Electrical Engineering decided to automate the calculation.

2.1.2 CDE Task Catalogue v1.0

Previously, the effort estimation was generated by an excel file. The estimation was

calculated using Visual Basic for Applications based on the data provided in the excel

file. Eventually, this file was shared through the company intranet and used by

Continental electrical engineers worldwide. However, the feedback received was that

the catalogue was very irresponsive.

The excel file contains several sheets. The very first sheet in the file is the user form,

where user can fill in all the project details and generate the estimation. By clicking

the “Tabulate” button in the form, the excel sheet will directly display “Results”

sheet, where the result table is generated. However, generating the table usually

takes 15 seconds and error often occurs.

9
Figure 1 CDE Task Catalogue v1.0

The slowness of the system is caused by its dependency on the sheets in the file. For

every row written in the result sheet, the program needs to open the two database

sheets; the effort hour database, and the index database. Therefore, in every

iteration of the row, it opens, reads, and closes the database sheets.

The effort hour database contains all the hours needed to finish one task in the

project, whereas the index database specifies the location (row number) of the task

in the effort hour database.

10
Figure 2 Effort hour database

11
Figure 3 Index database

2.1.3 Task Catalogue v2.0

Upon approval from the Head of Department, the author uses Java programming

language for the new Task Catalogue. The program uses Java Swing library for the

GUI and implements Object Oriented Design Principles.

12
Figure 4 Task Catalogue v2.0

The new effort estimation database is a CSV file, which is imported directly from the

Excel sheet. The program will read the file line by line, and for each line, it will

determine if the data is necessary for the estimation given the project details. If so,

it will write the details in the output CSV file and add the effort to the total effort

variable.

13
Figure 5 Task Catalogue v2.0 database

Since the CSV file is significantly smaller than the excel sheet and it is read line by line

instead of opening and reading the database numerous times, the time complexity

of the Java program is much smaller. It takes less than one second to generate the

result using the new Task Catalogue, compared to average 15 seconds using the Excel

file.

While the original catalogue where the output result is a new Excel sheet, the new

catalogue will generate an output window panel and a CSV file. Before generating the

estimation, user need to choose folder destination of the output CSV file, then the

output window will be automatically displayed, and the CSV file will be created.

However, the downside of the new program is that the output table cannot be

formatted for a better viewing.

14
Figure 6 Result output window

Figure 7 Output CSV file

15
2.1.4 Diagrams

Use case diagram

Figure 8 Use case diagram

16
Sequence diagram

Figure 9 Sequence diagram

Component diagram

Figure 10 Component diagram

17
Class diagram

Figure 11 Class diagram

2.2 Component Management System

2.2.1 Overview

Component Management System is an Excel file that uses Visual Basic for

Applications for its functions. It imports details of existing modules from Excel files,

and combine them into a table. The table will help engineers to determine the

number of parts that are needed when they use the modules.

This system also generates a table called green list, which is a list of modules which

parts are still available. On the other hand, the modules that are not in the green list

will be listed in the report table, where all the modules there contains some parts

that needs to be replaced.

18
This Excel file is updated every 3 months and shared to the engineers for them to

check which of their modules need to be updated.

2.2.2 Improvement

Due to software updates, the system’s macros are not functional anymore. Errors

occur when the buttons are clicked, and processes are stopped halfway due to bugs.

The author had to read the VBA codes and adjust them accordingly.

The most significant problem in the code is that it uses the “SendKeys” method, which

sends keystrokes to the application. The system makes use of É xcel Alt key shortcuts

to run program’s add-ins. It will send the keystrokes in such order that it will activate

the Excel Add-Ins. However, since the application has recently updated, the Alt key

shortcuts were changed, and caused the macro to call another function instead. This

problem was solved simply by changing the keys sent to the application.

Furthermore, the instructions in the Excel sheet stated that users need to run some

library called DotNetLibraryForMySQLExport upon using the application. The library

was supposed to produce a CSV file containing module responsible names, and the

Visual Basic macro in the Excel sheet will retrieve those names and display it on the

table. However, there was some bugs in the function, and the library cannot be run.

19
Figure 12 Error message

The library was written in C#, and it extracts data from an SQL database and write it

into a CSV file. Previously, all the modules information is stored in one relation in the

database, and the library will get all the details from that table. However, the

database structure was updated, and the modules table were separated into several

tables depending on their category. The old table was not updated anymore, yet the

C# library still extracts data from that database, resulting in missing responsible

names.

After altering the SQL query in the C# code, the library was able to retrieve all

responsible names. Moreover, the author created a more user-friendly console

application so that the responsible engineer can easily extract the data.

20
Figure 13 DotNetLibraryForMySQLExport.exe

2.3 Hardware Module Delivery System

2.3.1 Overview

Hardware Module Delivery System (HMDS) is a website designed to distribute

module designs effectively to global teams within Continental. The term ‘module’

here refers to one functional part of a complete design. Modules are standardized

single component with defined interfaces to others and it does not affect other

modules when it is changed.

This website compiles all available modules in the database and display it in user-

friendly tables, and on the same page, users can download the module or contact the

module developer. When a user signs in as a developer, they can create new module

or edit an existing module in the database.

2.3.2 Previous Version

The website is written mainly in PHP with some JavaScript for event handling and CSS

for styling, but the project directory was not structured well. There were more than

twenty files in one folder, and it was very difficult to navigate through the files. Each

21
PHP file in the project corresponds to one specific page in the website. However, the

code has low cohesion as the project were not well designed. They also contain very

long JavaScript and inline CSS code.

The website pages are not structured well, and it was difficult to navigate through

the pages. Some pages are only accessible from the main page, so users need to go

back to the main page to go those pages. For example, users can only log out from

their account in the main page. In addition, the interface throughout the website is

not consistent, and some pages use different color and font size. There is also a

section to send an email notification on the bottom of every page, which is very

inconvenient as it makes the page very long.

2.3.3 CMS – HMDS

The person in charge of the website plans to integrate CMS and HMDS. Therefore, a

tool is needed to import data from CMS to HMDS. The author decided to use C#

programming language to create the tool as the CMS already has a C# program that

connects to HMDS database to retrieve module responsible names.

To improve user experience, the Console program was rewritten into a Windows

Form Application since the program now has two functions. It will be able to extract

data from the database into a CSV file and upload a green list report table to the

database.

22
Figure 14 CMS - HMDS

2.3.3 Improvement to the system

Initially, the author plans to move Component Management System entirely to the

HMDS. However, it was not possible since CMS is dependent on a database that is

only available in Microsoft Excel, so only the Green List Report was able to be moved

to the website.

A new Green List Report page was added to the website, and it contains a table of

user’s module that needs to be evaluated. The existing tables of available modules

were also modified so that it can indicate which modules contain parts that need to

be changed. For each module, the information of which parts are in the green list

report is also provided.

Without HMDS, the responsible engineer must update the CMS every 3 months and

send the updated CMS to the module developers to check. With the new feature, she

only needs to update the HMDS database and notice the developers to check the

23
website. In this way, it will be less confusing for the developers since no multiple

copies of CMS were made.

A project often needs more than one module, and therefore users will need to

request more than one module. Since the website requires user to enter the project

details every time user requests a module, they must type in the project name

numerous times, and it can be a bit tedious. Therefore, a new checkout feature was

added to the user page so that users can request more than one module at once.

Figure 15 HMDS checkout (cart)

The cart uses JQuery for the interface. A new element is added to the cart every time

an “Add to cart” button is clicked, and the information of the module is pushed into

an array. When the user clicks “Request” button, the array will be iterated and

processed using AJAX. The AJAX will call an existing PHP file that is also used by the

24
previous version of HMDS. If the email request is successfully sent, a notification will

appear on the page, stating which modules are successfully requested.

Figure 16 Request notification

Subsequently, the author also added a new feature in the user page which allows

user to view only available modules, but they can still switch the table to also view

the obsolete modules. This function is implemented by adding toggle buttons in the

page. An AJAX function is triggered whenever the button is clicked, and the respective

tables are created. Only one table is shown at a time, depending on the active tab on

navigation bar, and it will be hidden when the active tab is changed.

25
Figure 17 User page

In addition, the author also restructured the files in HMDS. All existing PHP files were

segregated into four cohesive files, the main PHP file, index.php, index.js, and

syle.css. In this way, each file has its own specific functionality.

The following is a diagram of the restructured HMDS files.

26
Figure 18 Component diagram

As mentioned in the previous section, HMDS website has a bad flow overall. Since

new pages were introduced to the website, the flow needs to be improved so that

users will not be confused when navigating through the pages. Hence, all pages in the

improved HMDS website have a navigation bar on top of the page. The navigation

bar will help user to go to other pages easily, and all pages are accessible from any

other pages.

27
Figure 19 User flow design

There are two navigation bars in the website, user and developer navigation bars.

Each bar contain different elements since most pages are not available for users. The

bars are defined in two files navbar.php, which are stored in different folders.

Depending on the page, the navigation bar is called and displayed on top of the page.

However, there is one page that is accessibly by both user and developer, so the page

28
uses cookie to determine which navigation bar to call. In addition, cookies are also

used to decide which page is currently open.

Figure 20 Developer navigation bar

Figure 21 User navigation bar

On top of the back-end improvement, the author also revamped the interface of the

website by upgrading the Bootstrap to the latest version, which is v4.0. Beside

changing the class names to the updated ones, the components were also modified

to provide better overall user interface.

2.3.4 User interface

Figure 22 Initial login page

29
Figure 23 Improved login page

Figure 24 Initial modules page

30
Figure 25 Improved modules page

Figure 26 Initial user page

31
Figure 27 Improved user page

2.3.4 Problems

Since AJAX is asynchronous by default, the cart function’s AJAX does not wait for the

function to be finished before continuing to the next function. This affects the

requesting of the modules in the cart since each request must be recorded in the

Excel file. The PHP file will open the Excel file and write into it. However, the former

function is still holding the lock to the Excel file while the latter is trying to acquire it,

so only the first module is recorded to the Excel file. This problem can be solved by

making the AJAX synchronous.

Finally, upon deploying the website to the server, the author faces several problems.

Since most of the website functions use cookies, they played a pivotal role in the

website, and they are the very first problem she encountered. The main developer

32
page, Modules page, was blank when it was first opened, and some error lines were

displayed, saying that some variables are never declared. Apparently, the page

cannot access the cookies because its domain was never declared. This problem was

solved simply by setting the website host as the cookie’s domain.

Furthermore, when a user first opens the website, there was an error with the

Bootstrap CORS policy, and the website came out not styled at all since the website

cannot load the Bootstrap files from the network. Therefore, instead of using CDN,

all the libraries were downloaded and saved inside the project folder. The same

method is used for the Font Awesome and AJAX library to prevent the same error,

but the disadvantage of this method is that the project size became significantly

larger.

33
Chapter 3: Conclusions

The Professional Internship program has given the author a lot of experience in

working in a team of electrical engineers. It has taught her how the tools used in a

project play a significant role, although they may not directly affect the overall

performance of a project.

Moreover, the internship also allowed the author to gain and improve useful skills,

both technical and non-technical. It provided exposure to how things work in a team

of experienced engineers and enabled her to develop her communication skills.

To conclude, the experience in the last 20 weeks is interchangeable and has taught

the author many valuable lessons that provided her better overview of having a

career as an engineer.

34
References

About Us. (2019, May 2.). Retrieved from Continental AG: https://www.continental-

automotive.com/en-gl/Passenger-Cars/Company/Interior-Division/About-Us

Continental AG. (2019, May 20). Retrieved from Wikipedia:

https://en.wikipedia.org/wiki/Continental_AG

History. (2019, May 27). Retrieved from Continental AG: https://www.continental-

corporation.com/en/company/history

35

S-ar putea să vă placă și