Analysis of Machine Learning Approaches for Software Development Estimation; Analysis of the Evolution of Privacy Methods to be Compatible in Agile Environments

Author:
Sonnakul, Thrishna, School of Engineering and Applied Science, University of Virginia
Advisors:
Brunelle, Nathan, University of Virginia
Ferguson, Sean, University of Virginia
Li, Jundong, EN-Elec/Computer Engr Dept, University of Virginia
Abstract:

The shift to Agile methodology in software development has been very rapid the past couple of years. As an iterative way to develop software in which each step (Requirements, Plan, Design, Develop, Test, Release) allows for changes to easily take place compared to alternative method of waterfall development that restricted change mid-process. A novel aspect to this methodology is the development cycle being repeated in formats of sprints, so planning, developing, and testing takes place incrementally. The general plan is made at the initial start of the project and then each sprint has a planning stage in the beginning to accommodate new decisions and changes to the project. To make planning more effective, there has been advancements to utilize machine learning techniques to estimate effort for a project using various project details of past projects as the data. For my capstone project, I have analyzed a recently published peer-reviewed article that proposes a new and improved machine learning approach and algorithms to determine effort estimation. This ability to accurately to estimate during the planning process will make agile more appealing to companies as it allows another opportunity to save money.

Being a new methodology, this changes the approach to develop software by improving the process in some respects as well as highlighting new or already existing concerns. One of these concerns, is privacy regarding software as they become more data driven. Securing consumer data is a necessary priority but addressing and maintaining privacy standards may be complex or require further attention in Agile development as the requirements and software are continuously evolving. In this dynamic development, privacy cannot be determined in the beginning of the process and then evaluated at the end. It requires new evaluation methods to work with Agile speed continuously throughout the process. Therefore, this STS research delves deeper into the current privacy concerns discussed within the Software Development community and analyzes the way privacy approaches have evolved to become more compatible in an Agile Development environment. As a result of this research, it can be shown that Agile presents more opportunities for privacy to be discussed, addressed, and evaluated throughout the development process among developers as well as non-technical team members through active team collaboration.

Both research topics highlight the benefits of Agile methodology for software development. My technical capstone successfully analyzes a proposal to improve the agile process using an advanced machine language technique. In parallel, my STS research effectively evaluated new and improves security protocols for Agile environments. With the findings from both papers, it can be concluded that Agile has greater potential than Waterfall methods to efficiently develop secure software.

I would like to thank Professor Ferguson, Professor Brunelle, and Professor Li for continuous guidance as I wrote my STS thesis and technical Capstone.

Degree:
BS (Bachelor of Science)
Keywords:
Agile, Privacy, Waterfall, Machine Learning, Software Development Methods, Effort Estimation
Notes:

School of Engineering and Applied Science

Bachelor of Science in Compter Science

Technical Advisor: Nathan Brunelle

STS Advisor: Sean Ferguson

Language:
English
Rights:
All rights reserved (no additional license for public reuse)
Issued Date:
2021/05/10