45
ECE444: Software Engineering AI for SE Shurui Zhou

ECE444: SoftwareEngineering

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ECE444: SoftwareEngineering

ECE444: Software EngineeringAI for SE

Shurui Zhou

Page 2: ECE444: SoftwareEngineering

Learning Goals

Understand the AI-enhanced software development processes inpractices

Page 3: ECE444: SoftwareEngineering
Page 4: ECE444: SoftwareEngineering
Page 5: ECE444: SoftwareEngineering

5

Page 6: ECE444: SoftwareEngineering

6

Page 7: ECE444: SoftwareEngineering

The Emerging Role of Data Scientists on Software Development Teams, Kim et al. ICSE' 16

Why are Data Scientists Needed on SW Teams?

Demand for Data Collection RigorWhat about storage, what about speed? What about legal, what about privacy? There is an entire gamut of things that you need to jump through hoops to collect the instrumentation. [P1]

Page 8: ECE444: SoftwareEngineering

What Do Data Scientists Work on?

Page 9: ECE444: SoftwareEngineering

Activities of Data Scientists

Page 10: ECE444: SoftwareEngineering

Data Scientist Working Styles

• Insight Providers • Modeling Specialists• Platform Builders • Polymaths• Team Leaders

Page 11: ECE444: SoftwareEngineering

“Please list up to five questions you would like [a team of data scientists who specialize in studying how software is developed] to answer.”

Page 12: ECE444: SoftwareEngineering

12

Page 13: ECE444: SoftwareEngineering

How would you approach these questions with data?• Where to focus testing effort?• Is our review practice effective?• Is the expensive static analysis tool paying off?• Should we invest in security training?• What is a good team size?

13

Page 14: ECE444: SoftwareEngineering

Evaluate Effectiveness of an Intervention

• Controlled experiments• Compare group with intervention against control group without, • Randomized controlled trials, AB testing, …• Ideally blinded

• Natural experiments, Quasi experiments• Compare similar groups that naturally only differ in the intervention• No randomized assignment of treatment condition

• Time series analyses• Compare measures before and after intervention, preferably across groups

with the intervention at different times

14

Page 15: ECE444: SoftwareEngineering

https://www.kisselev.de/

Page 16: ECE444: SoftwareEngineering

Requirement

Page 17: ECE444: SoftwareEngineering

Watson AI uses natural language processing and understanding to analyze a requirement’s text, suggesting improvements that leverage industry best practices for writing high quality requirements, based on the INCOSE Guidelines for Writing Good Requirements.

https://www.ibm.com/blogs/internet-of-things/iot-ibm-introduces-watson-ai-for-engineering-with-requirements-management-quality-assistant/

Page 18: ECE444: SoftwareEngineering
Page 19: ECE444: SoftwareEngineering

Requirement Analysis• Detection of Hidden Feature Requests from Massive Chat Messages

via Deep Siamese Network . Shi et al. (ICSE), 2020

Page 20: ECE444: SoftwareEngineering

Design

Page 21: ECE444: SoftwareEngineering
Page 22: ECE444: SoftwareEngineering

Coding

Page 23: ECE444: SoftwareEngineering

Code Completion

Page 24: ECE444: SoftwareEngineering

https://www.kite.com/

Page 25: ECE444: SoftwareEngineering
Page 26: ECE444: SoftwareEngineering
Page 27: ECE444: SoftwareEngineering

https://medium.com/syncedreview/deep-tabnine-a-powerful-ai-code-autocompleter-for-developers-70454a5953fe

Page 28: ECE444: SoftwareEngineering

https://twitter.com/sharifshameem/status/1282676454690451457?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1282676454690451457%7Ctwgr%5E%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fanalyticsindiamag.com%2Fopen-ai-gpt-3-code-generator-app-building%2F

Page 29: ECE444: SoftwareEngineering

https://ai.facebook.com/blog/aroma-ml-for-code-recommendation/

Page 30: ECE444: SoftwareEngineering

Debugging

https://deepsource.io/blog/exponential-cost-of-fixing-bugs/

Page 31: ECE444: SoftwareEngineering

Ubisoft : ML catches 70 % of bugs prior to testing

“The statistical nature of machine learning involves us changing the way we work,” he says. Unlike traditional software, in which developers write out rules for the application to follow, machine-learning algorithms use data to guide how the software should act.

-- Yves Jacquier, executive director, production studio services, Ubisoft Montreal

https://www.pmi.org/learning/library/ai-debug-code-11523

Page 32: ECE444: SoftwareEngineering

Debugginghttps://engineering.fb.com/2018/11/06/developer-tools/getafix-how-facebook-tools-learn-to-fix-bugs-automatically/

Page 33: ECE444: SoftwareEngineering

QA

Page 34: ECE444: SoftwareEngineering
Page 35: ECE444: SoftwareEngineering

DeepCode

Page 36: ECE444: SoftwareEngineering
Page 37: ECE444: SoftwareEngineering

Deployment

Page 38: ECE444: SoftwareEngineering

https://siliconangle.com/2019/04/23/continuous-app-delivery-firm-harness-raises-60m/

Page 39: ECE444: SoftwareEngineering

OPSANIhttps://opsani.com/product/

Page 40: ECE444: SoftwareEngineering

Project Management

Page 41: ECE444: SoftwareEngineering
Page 42: ECE444: SoftwareEngineering

“ Tara’s mission is to help teams develop their plans with visibility and predictability.”

Page 43: ECE444: SoftwareEngineering

Trade-off?

Page 44: ECE444: SoftwareEngineering

https://medium.com/@karpathy/software-2-0-a64152b37c35

Page 45: ECE444: SoftwareEngineering