Documente Academic
Documente Profesional
Documente Cultură
Michelle Vanessa
U1620071L
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
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
3
Acknowledgement
Wei Chong, for giving me this valuable opportunity to work under the Electrical
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
Professor Liu Yang, for taking time to visit the company despite his busy schedule and
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
5
Figure 25 Improved modules page ......................................................................................... 31
6
Chapter 1: Introduction
1.1 Objective
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.
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
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
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
8
Chapter 2: Projects
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
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 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
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
10
Figure 2 Effort hour database
11
Figure 3 Index database
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
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
14
Figure 6 Result output window
15
2.1.4 Diagrams
16
Sequence diagram
Component diagram
17
Class diagram
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
18
This Excel file is updated every 3 months and shared to the engineers for them to
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
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
application so that the responsible engineer can easily extract the data.
20
Figure 13 DotNetLibraryForMySQLExport.exe
2.3.1 Overview
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
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
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
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
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
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
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
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
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.
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
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.
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
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
29
Figure 23 Improved login page
30
Figure 25 Improved modules 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
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
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
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
https://en.wikipedia.org/wiki/Continental_AG
corporation.com/en/company/history
35