top of page

PROJECT OVERVIEW

As part of my SMU Capstone Project, my team and I worked on a Software Development project with KLA.

 

KLA is a company that supplies process control and yield management solutions for the semiconductor and nanoelectronic industry.

Responsibility: Frontend Developer

PROBLEM

As a product manufacturer, KLA has a lot of orders to be fulfilled all year round. With product cycle times spanning over a few months, a proper manufacturing plan is needed to ensure every customer is happy, which directly impacts its bottomline. However, KLA’s schedulers are currently in the process of manually drafting a manufacturing schedule. This is a very time consuming process.

WIREFRAME

A low fidelity wireframe was created in the initial phase to facilitate the discussions between the team and our sponsor. Thereafter, a high fidelity prototype was created using Figma to give our sponsor a feel of how the web application look and its the interactivity.

SCHEDULING APPROACH (SUMMARY)

We used a heuristic approach to the problem and took into consideration some of the following constraints when designing our algorithm.

  • OBJECTIVE FUNCTION

 

To assess the performance of our scheduling algorithm, we have to first set the objective function. We defined our objective function to minimize the total delay between the date at which the product ought to be completed and the actual date of completion.

min( Σ(actual date of completion - desired date for completion) )

  • CONSTRAINTS / REQUIREMENTS

 

Aside from our sponsor's requirements, from a resource perspective, we are constrained by the number of bays and the linearization factor. At any point of time, the number of concurrent builds cannot exceed the number of production bays available, as specified by the user. As such, our linearization factor was:

(number of products built in a quarter) / (number of weeks in a quarter)

Although there is a tradeoff using a heuristic approach since we cannot guarantee that the system will provide the most optimal solution, we believed that it will still be able to find a near-optimal solution given the duration of the project.

SOLUTION DESIGN

The system developed is a client - server application consisting of 3 entities:

  1. Frontend Application

  2. Backend Server

  3. Database Server

QUALITY CONTROL

  • Functional Test 

We tried to automate as much testing as we could for the functional test. As such, the frontend system was tested using Selenium IDE with Chrome Webdriver whereas the backend system was tested using JUnit with Maven SureFire.

 

  • Non-Functional Test

 

We included performance test to gauge and monitor the processes and memory used over a duration of time.

  • User Testing

Finally, we performed our own user testing by giving our users various test scenarios to complete. With the qualitative and quantitative results, we were then able to identify if improvements to the UI/UX were needed.

FINAL PRODUCT

This is our final product of the system that we have created over 14 weeks.

REFLECTION

My biggest takeaway from this project was not to give up just because it is hard. In the initial phase of the project, we had to gather requirements and be able to grasp the fundamental concept of the business. Since the problem that we were solving was very niche and specific, I felt lost due to my unfamiliarity with the business terms used. Furthermore, as the Frontend Developer, I was tasked to code in a new language (ReactJS), which I had no experience in previously. However, these challenges actually opened up a lot of new learning opportunities that are not replicable in school academics.

bottom of page