spring 2021: project descriptions - home - csse

25
Directed Research (DR) or Internship Opportunity with CSSE Spring 2021: Project Descriptions Table of Contents Research: Developer Responses on the Google Play Store ..................................... 2 WinSC – a social network like website for software engineering CS577 course ..... 3 Research: Technical Debt Prioritization ....................................................................... 4 Research: Analyzing Technical Debt Using NLP ......................................................... 5 Research: Extensions for Executable Domain Models .............................................. 6 Research: Meta-data Analysis for A Better Software Quality ................................... 7 Research: Attention Mechanisms for Source-Code Understanding ........................ 8 Generic Website for Academic and Education Centers .......................................... 9 CSSE: COCOMO II Web App ...................................................................................... 11 CSSE: UCC-Java .......................................................................................................... 12 Machine Analytics: Manufacturing Things in a smarter way .................................. 13 Project “Minions” ......................................................................................................... 15 TikiMan-Go Game....................................................................................................... 18 Parallel Agile CodeBot UX, Database and API code generation .......................... 20 CarmaCam .................................................................................................................. 23 Edtera student engagement and teacher productivity app .................................. 25

Upload: others

Post on 24-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Spring 2021: Project Descriptions - Home - CSSE

Directed Research (DR) or Internship Opportunity with CSSE Spring 2021: Project Descriptions

Table of Contents Research: Developer Responses on the Google Play Store ..................................... 2

WinSC – a social network like website for software engineering CS577 course ..... 3

Research: Technical Debt Prioritization ....................................................................... 4

Research: Analyzing Technical Debt Using NLP ......................................................... 5

Research: Extensions for Executable Domain Models .............................................. 6

Research: Meta-data Analysis for A Better Software Quality ................................... 7

Research: Attention Mechanisms for Source-Code Understanding ........................ 8

Generic Website for Academic and Education Centers .......................................... 9

CSSE: COCOMO II Web App ...................................................................................... 11

CSSE: UCC-Java .......................................................................................................... 12

Machine Analytics: Manufacturing Things in a smarter way .................................. 13

Project “Minions” ......................................................................................................... 15

TikiMan-Go Game ....................................................................................................... 18

Parallel Agile CodeBot UX, Database and API code generation .......................... 20

CarmaCam .................................................................................................................. 23

Edtera student engagement and teacher productivity app .................................. 25

Page 2: Spring 2021: Project Descriptions - Home - CSSE

Research: Developer Responses on the Google Play Store Overview Mobile apps receive a large amount of reviews a day. These reviews contain crucial information that can help developers improve their apps, for example, a review can include information on unexpected behavior of the app (e.g., crash, bug, etc.) or on improvement that users want (e.g., feature request). App stores such as the Google Play Store or Apple Store allow developer to respond to review. Past studies have shown that responding to a review can increase the overall rating of the app (i.e., users are more likely to increase the rating after getting a developer response). We found that about ~10% of all responses given to users, users increase their original ratings, update their original reviews, or both. We consider such a developer response, an effective developer response. In this semester, we want to conduct a study to answer 1). Can we effectively predict which developer responses will be effective? 2). If so, what and how features influencing the effectiveness of developer responses. The ultimate goal is to derive an evidence-based guideline on writing an effective developer response that developers can follow. Skills No specific skills required. Contact Kamonphop Srisopha ([email protected])

Page 3: Spring 2021: Project Descriptions - Home - CSSE

WinSC – a social network like website for software engineering CS577 course Overview We have created a web application for requirement prioritization that will be used for CSCI577a starting Fall 2020. There are a couple of functionalities that have not yet been implemented and I would love some talented programmers who are experience with web tech stack to help add some key functionalities (e.g., access control, real-time notification, etc). The current web application is developed using Node.js, Angular.js, MySQL, and Docker. Skills Node.js, Angular.js, MySQL, and Docker Contact Kamonphop Srisopha ([email protected])

Page 4: Spring 2021: Project Descriptions - Home - CSSE

Research: Technical Debt Prioritization Overview For proper software delivery, software decision-makers are often presented with difficult decisions to prioritize tasks under tight resource constraints. Such decisions can grant short-term benefits but may compromise the long-term quality of a software system. These compromises are often referred to as technical debt (TD). TD can be described as the gap between the current state of a system and a hypothetical optimal state of the same system. This gap usually does not refer to bugs and missing requirements in the software but rather to poor coding and documentation practices. Similar to financial debt, TD incurs interest payments in the form of increased future costs owing to earlier quick and dirty design and implementation choices. TD can be incurred by variety of reasons including carelessness, lack of education or competence, and as most authors describe to be the major cause, schedule pressure. TD prioritization is the process of deciding which TD items are to be repaid first and which items can be endured until later releases. The goal of the process is to maximize the value of TD repayment within limited resources such as time and budget. Unfortunately, researchers have indicated limitations and scarcity in the current TD prioritization techniques. To address this need, we will develop a search-based approach to prioritize TD using a Multi-Objective Evolutionary Algorithm (MOEA) technique. The approach should indicate which TD items should be repaid to maximize the value of a repayment activity within a specific cost constraint. We will provide the team with the necessary libraries and algorithms. Skills Java and JavaScript. Java GUI development is a plus. Contact Reem Alfayez ([email protected])

Page 5: Spring 2021: Project Descriptions - Home - CSSE

Research: Analyzing Technical Debt Using NLP Overview In this project we will analyze a data set using natural language processing (NLP) techniques to have a better understanding regarding TD topics that developers discuss. We aim to identify which tools the developers utilize to manage TD, how they manage TD, challenges, … etc. Skills Python Natural language processing(NLP) Contact Reem Alfayez ([email protected])

Page 6: Spring 2021: Project Descriptions - Home - CSSE

Research: Extensions for Executable Domain Models Overview This is a research project. But most design work has been done. Students are mainly working on the development of desired features and exploring potential ideas.

We have been developing a toolkit which generates code for a microservices infrastructure. The input for this code generation is one or multiple domain models which are created and updated during the development iterations of a project lifecycle. In this semester, we want to enhance and extend its abilities from following aspects (as highlighted in the figure above). Objectives:

1. Domain Identification: Transform User stories (Natural Language) to UML class. Specifically, we want to automatically extract domain model (entities, attributes, behaviors, relationships) from user stories via preprocessing of the sentences and analysis of Pos-tags and Type Dependencies. Students will be working on existing code from the previous semesters and are expected to improve, fix and evaluate the code. Keywords: NLP, Domain Model Extraction

2. Service Deployment: After code generation, the code is expected to be automatically deployed. We have one solution from the previous semesters and are expected to be improved, fixed and evaluated. Keywords: Docker, Gogs, Ubuntu

3. Some work of improvement on the current framework, including but not limited to web development, UI enhancement, data analysis, etc.

Skills (you may need or learn) • Objective 1: Python, Stanford NLP API, NLP • Objective 2: Docker, Ubuntu • Objective 3: HTML/CSS, JavaScript, Python

Contact Bo Wang ([email protected])

Page 7: Spring 2021: Project Descriptions - Home - CSSE

Research: Meta-data Analysis for A Better Software Quality Overview Many software developers nowadays are using Version Control Systems (such as Git) and Online Platforms (such as GitHub) for a better, more interactive, well-organized development. All these provided, we have been able to fetch large amount of meta-data of projects for mathematical analysis. In this project, we will be using the data, which we have already collected and will be collecting, for various data analysis techniques, visualizing the results and drawing conclusions of how to develop software in a higher quality. Depending on student's skills, interests and DR units, one could take part in one or more tasks of the following:

• Project evaluation and data fetching • Data analysis with data mining or machine/deep learning techniques • Data visualization

This project is in collaboration with SQUAAD project. Skills Language (not mandatory): Java, Linux/MacOS Bash or Windows power shell scripts, python3. Others (not mandatory): Data mining, analysis, visualization experiences (with Tableau, SPSS, SAS, etc.), Machine/Deep Learning experiences Roles Data Analyst. Coder. Contact Jincheng He ([email protected])

Page 8: Spring 2021: Project Descriptions - Home - CSSE

Research: Attention Mechanisms for Source-Code Understanding Overview Many approaches are emerging in understanding source code artifacts using Deep Learning approaches. Most approaches use techniques most suitable for natural language and are unable to handle the long-range dependencies found in a software system.

In this project we will:

• Collect large amounts of data from publicly available repositories • Modify a transformer architecture variant • Train a variety of models in an unsupervised manner • Fine-tune and evaluate the models on a downstream task • Write and publish an academic paper

References:

• A Transformer-based Approach for Source Code Summarization https://arxiv.org/pdf/2005.00653.pdf

• Unsupervised Translation of Programming Languages https://arxiv.org/pdf/2006.03511.pdf

Roles • Researcher / Developer

Skills

• Pytorch • Tensorflow 2 • Tensorflow 1 • XLA • Academic Writing

Contact Iordanis Fostiropoulos ([email protected])

Page 9: Spring 2021: Project Descriptions - Home - CSSE

Generic Website for Academic and Education Centers Overview The project focuses on building a smart web portal for academic and educational entities (e.g., Center for Systems and Software Engineering). The goal is to reduce the manual effort of updating the information when possible and to build an active community of students and alumni. We want to help students (like yourself) leverage their institution’s alumni network. This is a fun project that will directly help all current students and alumni of CSSE and potentially other academic entities. You can see the latest version of the portal at http://csse.usc.edu/. The following screenshot includes the integration of Instagram and Twitter.

Our technology stack includes Bootstrap, JavaScript, HTML/CSS, Node, PostgreSQL, CI/CD pipelines, and AWS Infrastructure. We plan to improve the project in the following areas:

• Improve the integration of third-party services (Instagram, Facebook, Twitter, Linkedin, DBLP, and Google Drive).

• Develop smart user management features to build a reliable and updated network of students and alumni.

• Develop an automated newsletter generator. • Improve the UI/UX aspects of the portal by changing the structure and

color pallets. • Potentially transform the front end into a React application.

Page 10: Spring 2021: Project Descriptions - Home - CSSE

Each participant will work on specific tasks depending on their experience and interest. Regardless of the assigned tasks, all participants will learn how to work with different capabilities of GitHub and Slack, will be participating in code reviews, and will collaborate with other team members. Participants with different levels of experience are welcome to join the project as the tasks will be tailored based on each person’s experience and interest. There will be mandatory weekly group meetings, optional personal meetings, and short (but mandatory) written daily updates (an alternative for a daily stand-up meeting in an agile process.) Please feel free to contact Dr. Behnamghader at [email protected] for any questions. Contact Dr. Behnamghader ([email protected])

Page 11: Spring 2021: Project Descriptions - Home - CSSE

CSSE: COCOMO II Web App Overview COCOMO II is one of the most prevalent software cost estimation tools that was developed by Dr. Barry Boehm (the professor for the course). Since the original implementation of the cost model had become outdated, some students have built a new implementation in Java. Previous DR students worked on the development of an API for COCOMO® users that desire to integrate the tool with other scripts/tools for elaborate processes and built a Web-based COCOMO® tool based on the API developed. This semester we will continue to improve the web app to make it available through CSSE DR server. Skills ● Java ● Web design ● Web app development ● React

Contact Elaine Venson ([email protected])

Page 12: Spring 2021: Project Descriptions - Home - CSSE

CSSE: UCC-Java Overview Unified Code Count Java Version (UCC-J) is an application developed by DR students over more than ten years. There are two primary uses of the UCC-J system – (1) counting source lines of code (SLOC) and (2) differencing baselines.

UCC-J counts SLOC (source lines of code) in accordance with Software Engineering Institute’s (SEI) code counting standards. UCC-J output metrics include Physical and Logical SLOC, blank lines, comments, compiler directives, executable instructions, keywords, differencing, duplicates, and cyclomatic complexity.

UCC-J is intended so that non-technical as well as technical users can easily obtain SLOC and metrics results. The US Government is an advocate of UCC-J as a standard software metrics tool.

This project will provide students with the opportunity to work on a project that is used by people, use and learn software engineering skills and programming best practices, and an initial introduction to software maintenance.

Some tasks that will be worked on this project are: code integration, improving testing capabilities, and developing maintainability index for new languages. Skills ● Java ● Automated Test Frameworks ● Quality Assurance ● Debugging ● GitLab

Contact Elaine Venson ([email protected])

Page 13: Spring 2021: Project Descriptions - Home - CSSE

Machine Analytics: Manufacturing Things in a smarter way Overview Machine Analytics is a startup founded by USC Computer Science graduate student seeking to invent the next generation connectivity technologies for manufacturing industry. There are millions of machines currently in action on manufacturing floors in the United States. They are often operated offline and independent from each other. We are working on creating systems that allows companies to connect their machines and capture / analyze data generated by these systems. Such data will allow us to predict system breakdowns and optimize production for them. We are building the next Facebook but for Machines. This project entails building an MVP prototype for discrete manufacturing industry. It has multiple phases. We are going to work on phase 2 during Spring 2021. For this phase, I am looking for students who are interested to work in some or all the following areas: 1) Computer Vision:

Keywords: OpenCV, PCL, Python/MicroPython, C/C++, NoSQL/MongoDB This involves acquiring RGB-D data from one or multiple sensors and process data using OpenCV and PCL.

2) Computer Graphics: Keywords: PCL, OpenGL, XeoGL, OpenSCAD/OpenJSCAD, ... This involves 3D CAD data reconstruction using data acquired from depth cameras.

3) AI Research: Keywords: Artificial Intelligence, 3D data, Deep Learning, PyTorch3D This involves scanning research from AI community, reading articles and creating summaries. Some examples are: Paper 1 | Paper 2 | Paper 3

Having taken courses in the following areas will be helpful but not necessary:

1) Artificial Intelligence 2) 3D Computer Graphics

Page 14: Spring 2021: Project Descriptions - Home - CSSE

3) Computer vision 4) Machine Learning 5) Deep Learning 6) Database systems

Contact Pedram Safi ([email protected])

Page 15: Spring 2021: Project Descriptions - Home - CSSE

Project “Minions” Overview Category: AdTech - Loyalty Gamification Concept: PokemonGo MEETS Loyalty System MEETS Ethereum Project Stage: MVP – functional BETA! CONCEPT: Project Minions is an Loyalty Gamification system that leverages Augmented Reality (AR), “Virtual Pets,” and the collecting of AR objects in the physical World! Players battle their Minions in AR “Pop-up” arenas for prizes and rewards. We have a functional BETA! Our self-service platform utilizes intelligent, and often mischievous, virtual pets with engaging gameplay mechanics to facilitate and strengthen emotional bonds between Consumers and Brands. It’s addicting and an incredibly fun-filled experience!

The technologies and methods YOU will use &/or learn range from RESTful API Development & Integration, Amazon Web Services (AWS), Analysis of Blockchain Networks (Ethereum), NLP w/ ML, Analysis of Social Networks (FB, Twitter, Yelp, etc.), NoSQL, Azure Spatial Anchors, Large-Scale Data Mining and Analysis, & UI/UX.

As a DR590 Candidate, YOUR PREFERENCE and skillsets will determine which one of the three (3) teams you will land: Frontend, Backend, or Data Science. Even then you will be part of a sub-team responsible for a specific focused effort. Hence, you do NOT need to have all the qualifications in the job descriptions below. We are solving the problem of: “How to get people back into retail and event spaces!” Join the Team & Network of Alumni (300+ “Minions” DR students) to execute a really cool app! YOU WILL HAVE OR WILL GAIN TECHNICAL SKILLSETS IN THESE AREAS DURING OUR DIRECTED RESEARCH: 1. Backend Development (A couple or a few of these qualities):

• Great fundamentals in designing elegant REST APIs w/ Node.js or Express

Page 16: Spring 2021: Project Descriptions - Home - CSSE

• Experience with NPM & PostMan to test endpoints and write Test Scripts for your APIs

• Database knowledge: NoSQL (DynamoDB) & interacting between app to backend cloud service

• Experience with Amazon Web Services (AWS) including Elastic Beanstalk & APIGateway

• Familiar with C# and Microsoft Azure Spatial Anchors • Knowledge in using and implementing various 3rd Party APIs & IDEs (Plaid,

GoogleFit, HealthKit, FB, etc.) • Understand and Experience with Website Scraping technology (examples:

BeautifulSoup, Scrapy, etc.)

2. Frontend Developer (A couple or a few of these qualities): • Familiar with C# & Unity3D (e.g. scripting, textures, animatin, and GUI) • Knowledgable of RestAPI function and integration • Ability to create use cases and flowcharts (e.g. draw.io, etc.) • Previous experience with iOS/Android development a plus • Familiar with the Photon Unity Networking (PUN) suite to integrate

Multiplayer functionality • Knowledge of developing Mobile apps using ARFoundation and Azure

Spatial Anchors is preferred • Gameplay mechanics (RPG, FPS, etc.) programming a plus.

3. Frontend UI/UX Designer (Should have a few of these qualities): • Excellent communication, presentation, and interpersonal skills • Understand human-centric design with the ability to create use cases and

flowcharts (e.g. draw.io, etc.) • Familiar with UI/UX prototyping & wireframing tools (examples:

Balsamiq/Sketch/Figma/Illustrator/etc.) • Experience with mobile/Web design • Self-motivated/Positive attitude with the ability to work in a fast-paced

and often ambiguous environment • Capable of acting as a product manager when needed, able to think at

a high level re: product strategy • Game design experience and knowledge of Unity3D with C# is preferred

4. Data Science developer (Should have a couple of these qualities): • You are passionate in uncovering insights and information in Large User-

Generated data sets and content • Hands on coding with Python, R, or MATLAB and thorough understanding

of XML, JSON, Web Services tech, NoSQL, and Data Structure fundamentals

Page 17: Spring 2021: Project Descriptions - Home - CSSE

• Background in Probability Theory, Graph Theory, Time Series Analysis, Pattern Recognition, or Large Scale Data Mining

• Experience building and analyzing graphs using frameworks such as SPARK, GraphFrames, or GraphX

• Experience with Data Visualization and tools (e.g. Gelphi, GraphViz, Plotly, Bokeh, etc.)

• Natural Language Processing (NLP) and web scraping experience a plus • “CARC” (Center for Advanced Research Computing) access &/or

experience preferred

Contact Joey Foldi ([email protected])

Page 18: Spring 2021: Project Descriptions - Home - CSSE

TikiMan-Go Game Overview Interested in learning about game development? Want to gain some experience with Unity3D and augmented reality? Want to test a mobile game for course credit? Join the tiki team! Tiki-Man-Go is a Hawaiian-themed, Pokemon-Go style game which uses both virtual reality and augmented reality techniques. Players “throw” lava fireballs at animated Tiki Men to gain territory while conquering the big island of Hawaii. In VR mode the game is played “inside” a spherical image of a location on the island, while in AR mode the phone’s camera provides the background.

TikiMan Go is available on Google Play and on the App Store

We need developers and testers to complete augmented reality

Page 19: Spring 2021: Project Descriptions - Home - CSSE

Our core technologies are Unity 3D, Mongo DB and Node JS (MEAN stack) along with ARCore and ARKit for augmented reality, and the game’s VR Mode is fairly well developed. We published the first edition of the game a few months ago (watch our trailer video here), and are currently adding a list of new features including Augmented Reality and Achievements. You can download the game at www.tikiman.app.

We're upgrading our Rewards and Achievements system this semester

Join the tiki team and you’ll learn about game development, gain some experience with Unity3D and Augmented Reality, and have a lot of fun along the way. And you might be involved in integrating some new enemies into the game.

Help us make TikiMan Go monstrously great

Contact Doug Rosenberg ([email protected])

Page 20: Spring 2021: Project Descriptions - Home - CSSE

Parallel Agile CodeBot UX, Database and API code generation Overview

Parallel Agile has developed a re-targetable code generator (CodeBot) that builds complete working applications from a domain model and UX wireframes. The generated system includes database schema, database access functions, REST APIs, and front-end applications that we will be extending to a variety of UI platforms – web frameworks, Android/iOS etc. CodeBot ( https://parallelagile.net ) is a key enabler of the Parallel Agile Development process. You can gain experience with:

• UX frameworks and design (React JS, React Native, Vue JS, Angular, Flutter)

• Code generation approaches and techniques • API development and microservice architecture • Database design (including typeORM) • DevOps (Docker, Kubernetes, Helm, etc.) • Client side APIs (Java, C#, Swift, etc.) • Interpreting UML models and wireframes

Page 21: Spring 2021: Project Descriptions - Home - CSSE

CodeBot UX generates React JS applications from wireframes

UX specialists take note: We’ll further explore UI code generation from visual model storyboards and state machine diagrams. A key requirement is to make the generated UIs follow modern UX guidelines for criteria like consistent whitespace, fonts, visual hierarchy and overall layout.

Generated applications include back ends with multiple DBMS targets supported and a Node JS API

Our original targets for CodeBot were MongoDB and Node.js. Over the last 2 semesters we’ve extended CodeBot in a number of areas, including: UX-based app generation for React Bootstrap; automated testing using code-generated JUnit and POSTMan test scripts; and additional target platforms for MySQL, Postgres and Oracle. We’ll soon be moving these new capabilities into our production CodeBot release. There’ll also be opportunities to add brand-new features to CodeBot along the way, e.g. additional databases or UI platforms. We’re also extending CodeBot to make the generated apps easier to package and deploy into a cloud-native or DevOps environment. This involves generating integration hooks for CI servers such as Jenkins, Gitlab and CircleCI; automatically pushing generated apps to Github; and generating Docker, Kubernetes and Helm configurations.

Page 22: Spring 2021: Project Descriptions - Home - CSSE

CodeBot uses the latest DevOps technologies including AWS Lambda, Docker, and Kubernetes

If learning any of the above skills is interesting to you, please apply to join CodeBot team! Contact Doug Rosenberg ([email protected])

Page 23: Spring 2021: Project Descriptions - Home - CSSE

CarmaCam Overview

CarmaCam (www.carma-cam.com) uses crowdsourcing to help eliminate bad drivers from the road system. It has been developed over multiple semesters of CS590 following the Parallel Agile process and we have patents pending on the use of crowdsourcing for traffic incident management. CarmaCam includes a dashboard camera mobile app (for iOS and Android) that continuously records video and uploads it to the cloud via a touch-screen interface.

CarmaCam includes emergency reporting and parking citation generation

Page 24: Spring 2021: Project Descriptions - Home - CSSE

Once uploaded, the license plate number of the offending vehicle is identified and a short report filled out. After the report is filed, a crowd-sourced review process occurs where randomly selected reviewers must all agree that the video shows bad driving. Reports that pass this test are added to a database that can be accessed by insurance companies who subscribe to the service.

CarmaCam’s machine learning capability differentiates it from other dashboard camera systems

We have been doing extensive amounts of machine learning work (see video) to quality control the CarmaCam database. Much of this semester’s work will involve integrating our Machine Learning classifiers into the crowd-sourced review system. Technologies used include Android, iOS, Angular JS, Mongo DB, and Node JS. In other words, the Angular JS web app connects to our Mongo database via Node API – aka MEAN stack. The API connects our dashboard camera apps to the database as well. Additionally, we’re using TensorFlow and Open CV for machine learning. Joining the CarmaCam project is a great way to gain experience with some cutting edge technologies while helping to improve traffic safety and save lives. Contact Doug Rosenberg ([email protected])

Page 25: Spring 2021: Project Descriptions - Home - CSSE

Edtera student engagement and teacher productivity app Overview Edtera is building an app to support student engagement and teacher productivity through collaboration networks and artificial intelligence. One of the key objectives of the app is to apply machine learning and artificial intelligence models to drive personalized learning as well as ensure precision and convenience in a student’s learning journey. The Edtera app is an end to end engagement system that is aimed at ensuring student proficiency in the subject matter rather being conditioned to be test takers. Edtera was borne out of the idea that large number of students in middle school through college struggle to receive the assistance they need when they are stuck. Since different students learn at different pace, personalizing learning becomes critical. Edtera expands the possible universe of helpers a student could turn to for assistance much beyond the primary network a student belongs to in their immediate classroom. In order to optimize collaboration. Edtera is unlocking the power subject mastery as a means of building confidence, resilience and self-esteem. By providing a menu of tools to move the student away from just being a test taker, Edtera is helping to build the leaders of tomorrow who will become experts in their fields. Skills

• Java • Javascript • Springboot • Data Science • Python • R Programming Language

Roles

• Data Scientists • Front end application Developers • Back end application developers • Project Managers • Software Testers • Software Integrators

Contact Uzo Okolo ([email protected])