Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Metrics for Process and Projects
Metrics for Process and Projects
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Benjamin J. Deaver Advisor – Dr. LiGuo Huang Department of Computer Science and Engineering Southern Methodist University.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
The Experience Factory May 2004 Leonardo Vaccaro.
Documentation Testing
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
SWE Introduction to Software Engineering
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
I n t e g r i t y - S e r v i c e - E x c e l l e n c e Business & Enterprise Systems Introduction to Hewlett Packard (HP) Application Lifecycle Management.
Software Process and Product Metrics
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 2 What is software quality ?. Outline What is software? Software errors, faults and failures Classification of the causes of software errors Software.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CPIS 357 Software Quality & Testing
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering Software Process and Project Metrics.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
Software Measurement & Metrics
Testing Workflow In the Unified Process and Agile/Scrum processes.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
1 Chapter 4 Software Process and Project Metrics.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
1 Introduction to Software Engineering Lecture 1.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Advanced S/w Eng - s/w productivity issues 1 Software Productivity Issues Why do software projects fail? Advanced Software Engineering COM360 University.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Configuration.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
Introduction to Software Project Management Lecture1.
Advanced Software Engineering Dr. Cheng
Software Project Configuration Management
Software Engineering (CSI 321)
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Project Sizing and Cost Estimation
11/29/2018 Department of Software Engineering and IT Engineering
Overview: Software and Software Engineering
Chapter 1 Introduction(1.1)
Software Engineering I
Software metrics.
Measurement What is it and why do it? 2/23/2019
Introduction Software maintenance:
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning Applications in Software Engineering

Introduction 2 In software engineering, there are three categories of entities: processes products resources

Introduction 3 Processes are collections of software related activities, such as: constructing specification, detailed design, or testing. Products refer to artifacts, deliverables, documents that result from a process activity, such as: a specification document, a design document, or a segment of code. Resources are required by a process activity, such as: personnel, software tools, or hardware.

Introduction 4 Machine learning methods have been utilized to … develop better software products and … to make software development process more efficient and effective.

Challenges in Software Engineering 5 Essential difficulties in developing and maintaining large software by:  Complexity  Conformity  Changeability  Invisibility

Challenges in Software Engineering 6 Complexity: “Software entities are more complex for their size than perhaps any other human construct.” “Many of the classical problems of developing software products derive from this essential complexity and its nonlinear increases with size.”

Challenges in Software Engineering 7 Conformity: Software must conform to the many different human institutions and systems it comes to interface with.

Challenges in Software Engineering 8 Changeability: “The software product is embedded in a cultural matrix of … applications, users, laws, and machine vehicles. These all change continually, and … their changes inexorably force change upon the software product.”

Challenges in Software Engineering 9 Invisibility : “The reality of software is not inherently embedded in space.” “As soon as we attempt to diagram software structure, we find it to constitute not one, but several, general directed graphs, superimposed one upon another.”

Applications of ML in SE 10 Software quality prediction: These predictions will then be the basis for ranking modules … thus enabling a manager to select as many modules from the top of the list as resources allow for reliability enhancement.

11 Software size estimation: Work planning and … estimations of the effort required based on the estimate of the size of the software. Software size can be measured in lines of code (LOC) Applications of ML in SE

12 Software development cost prediction Project or software effort prediction Maintenance task effort prediction Software resource analysis to identify classes of software modules that have high development effort or faults Applications of ML in SE

13 Correction cost estimation Software reliability prediction: Software reliability growth models can be used to characterize how software reliability varies with time and other factors. The models offer mechanisms for estimating current reliability measures and for predicting their future values. Applications of ML in SE

14 Defect prediction Reusability prediction Software release schedule: Testability of program modules prediction Applications of ML in SE

15 Discovery of sub-system structures: Sub-systems are composed and … Results may be evaluated using software engineering principles like high cohesion and low coupling Association Rule Mining for Program Understanding Discover loop invariants: Loops which don't terminate or terminate without achieving their goal behavior Applications of ML in SE

16 Software Categorization Keeps developers informed about related software for: Learn the “best practice” Increase software reuse Detecting Copy-Paste-Related Bugs Copy-pasted code is common in large systems because of code reuse This manner is Prone to bugs E.g., identifiers are not changed consistently Therefore, must detect copy-paste code and … handle minor modifications? Applications of ML in SE

17 Analyzing Bug Reports Most open source software development projects have bug repositories. They have valuable information for both developers and users.  Bug repositories contain duplicate bug reports  Bug report assignment is time-consuming therefore d eveloper recommendation is another application Applications of ML in SE

18 Fault Localization Running tests produces execution traces Some tests fail and the other tests pass Given many execution traces generated by tests... we can suggest likely faulty statements Applications of ML in SE

19 Stabilizing Buggy Applications Users may report bugs in a program … those bug reports can be used to prevent the program from crashing Given a program state S and an event e, predict whether e likely results in a bug based on  Positive samples: past bugs  Negative samples: “not bug” reports Applications of ML in SE

20 Guiding Software Changes Programmers start changing some locations … Suggest locations that other programmers have changed together with this location E.g., “Programmers who changed this function also changed …” Applications of ML in SE

Reference 21 Du Zhang, and Jeffrey JP Tsai, Advances in machine learning applications in software engineering, Idea Group Publishing, Du Zhang, and Jeffrey JP Tsai. "Machine learning and software engineering." Software Quality Journal 11.2 (2003): Xie, Tao, et al. "Data mining for software engineering." Computer 42.8 (2009):