Jianfeng Chen

I am a Ph.D. student (2014-present) in the Department of Computer Science at North Carolina State University. I am currently working at Real-world Artificial Intelligence for Software Engineering (RAISE) lab, under the direction of Dr. Tim Menzies.

My research mainly focuses on utilizing machine learning techniques to optimize software engineering/system infrastructure performance. I am the research assistant for several NSF funded projects, including:

  • Data-intensive workflow deployments optimization for the dynamic cloud environment
  • Large-scale software product line optimization in requirement engineering
  • Agile model checking and verification for software systems

I have an internship in Facebook Inc. during May-Aug 2018.

I successfully participated in the Google Summer of Code in 2016.

Before coming to NC State University, I did my Bachelor at the Department of Software Engineering from Shandong University, China in 2014.

Email  /  Resume  /  Github /  LinkedIn /  SlideShare /  微信


RIOT: a Stochastic-based Method for Workflow Scheduling in the Cloud
Jianfeng Chen, Tim Menzies
IEEE International Conference on Cloud Computing, 2018 (Accept rate: 15%)
pdf / code

This paper introduces RIOT (Randomized Instance Order Types), a stochastic based method for workflow scheduling in the commercial cloud environment. RIOT groups the tasks in the workflow into virtual machines via a probability model and then use a useful surrogate based method to assess the tremendous amount of potential schedulings. Experiments in dozens of study cases showed that RIOT executes tens of times faster than traditional methods while generating comparable results to other algorithms.

"Sampling" as a Baseline Optimizer for Search-based Software Engineering
Jianfeng Chen, Vivek Nair, Tim Menzies
IEEE Transactions on Software Engineering, 2018
pdf / bibtex / code

Search-based optimization techniques often apply CPU-intensive evolutionary algorithms to explore generations of mutations to a population of candidate solutions. This paper starts with a very large population and sample down to just the better solutions. We call this method "SWAY", short for "the sampling way". This paper compares SWAY versus state-of-the-art search-based SE tools using seven models, including linux kernel product line models; and other software process control models. For these models, the experiments of this paper show that SWAY is competitive with corresponding state-of-the-art evolutionary algorithms while requiring orders of magnitude fewer evaluations.

Data-Driven Search-based Software Engineering
Vivek Nair, Amritanshu Agrawal, Jianfeng Chen, Wei Fu, George Mathew, Tim Menzies, Leandro Minku, Markus Wagner, Zhe Yu
Mining Software Repositories (MSR), 2018
pdf / code

This paper introduces Data-Driven Search-based Software Engineering (DSE), which combines insights from Mining Software Repositories (MSR) and Search-based Software Engineering (SBSE). While MSR formulates software engineering problems as data mining problems, SBSE reformulates SE problems as optimization problems and use meta-heuristic algorithms to solve them. Both MSR and SBSE share the common goal of providing insights to improve software engineering. The algorithms used in these two areas also have intrinsic relationships.

Beyond evolutionary algorithms for search-based software engineering
Jianfeng Chen, Vivek Nair, Tim Menzies
Information and Software Technology, 2017
pdf / bibtex / models

Evolutionary algorithms typically require a large number of evaluations (of solutions) to converge – which can be very slow and expensive to evaluate. To solve search-based software engineering (SE) problems, using fewer evaluations than evolutionary methods. Instead of mutating a small population, we build a very large initial population which is then culled using a recursive bi-clustering chop approach. We evaluate this approach on multiple SE models, unconstrained as well as constrained, and compare its performance with standard evolutionary algorithms.

An (Accidental) Exploration of Alternatives to Evolutionary Algorithms for SBSE
Vivek Nair, Tim Menzies, Jianfeng Chen
Intl' Symposium on Search Based Software Engineering, 2016 (Best paper nominee)
pdf / slides / bibtex

SBSE researchers often use an evolutionary algorithm to solve various software engineering problems. This paper explores an alternate approach to sampling. This approach finds the (near) optimal solutions to the problem by (i) creating a larger initial population and (ii) intelligently sampling the solution space to find the best subspace. Unlike evolutionary algorithms, it does not use mutation or cross-over or multi-generational reasoning to find interesting subspaces but relies on the underlying dimensions of the solution space. Experiments with Software Engineering (SE) models show that our performance improvement is competitive with standard MOEAs while, terminating over an order of magnitude faster.

Equiareal parameterizations of NURBS surfaces
Yijun Yang, Wei Zeng, Jianfeng Chen
Graphical Models, 2014

The equiareality of NURBS surfaces greatly affects the results of visualization and tessellation applications, especially when dealing with extruding and intruding shapes. To improve the equiareality of given NURBS surfaces, an optimization algorithm using the Möbius transformations is presented in this paper. The optimal Möbius transformation is obtained by computing the intersection of two planar algebraic curves, whose coefficients are computed explicitly for Bézier and B-spline surfaces, while numerically for NURBS surfaces. Examples are given to show the performance of our algorithm for visualization and tessellation applications.

Selected Projects

Check more older projects here

Continuous Integration/Delivery Pipeline
Jianfeng Chen, Jianbin Chen, Zhewei Hu
NCSU CS591-DevOps
code / demo

Integrated Ansible scripts, Redis, Docker and CI tools(Jenkins) to create a pipeline to build, test, analysis and deploy newly committed code. Basing on abstract syntax tree, created a test-suite generator to only test the diff between two commits. Tools used in this practice.

Building Netflix Prize Prediction Model
Jianfeng Chen, Rui Zhi, Zhewei Hu
NCSU CSC522-Autmoated Learning and Data Analysis
code / poster

Netflix Prize competition held by Netflix Inc. in Oct 2006. The primary goal of this competition was to predict what score a user will rate for a movie, by learning a test set containing nearly 100 million customer rating records. In this project, we explored the data from this competition. Given the 100 million customer rating records, we focused on the following tasks:

Predict the existed records by data analysis techniques (Decision tree, ANN, KNN, etc.). Compute the RMSE (Root mean squared error) of a different model, and then compare them.

Forecast whether one customer will be in favor of one released movie. Given essential information (directors, genres, casts, etc.) of a movie, predict which group of customers will love it, and which group of customers will dislike it.


LACE: Large-scale Assurance of Confidentiality Environment

LACE, or Large-scale Assurance Configuration Environment, was first introduced by Dr. Peters in ICSE2013. In a short, LACE is a data preprocessing algorithm. It can help a user to remove the sensitive information and implicit association rules inside the data sets while keeping the utility of the data sets, typically for machine learning or big data mining.

Website template credit from Jon Barron. Last updated on May 6, 2018.