SoftLab Boğaziçi University Department of Computer Engineering Software Engineering Research Lab

Slides:



Advertisements
Similar presentations
Test Automation Success: Choosing the Right People & Process
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Chapter 22 Product Line Engineering Week 1 CIS 673.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
Difference between project and other assignments  real customer  before programming: negotiations with client to clarify requirements  often.
Ernest Cachia University of Malta “Reuse revisited plus …” Slide No. 1 - Title Slide Reuse Revisited A reminder of basic software reuse gauging techniques.
The Experience Factory May 2004 Leonardo Vaccaro.
Economic Perspectives in Test Automation: Balancing Automated and Manual Testing with Opportunity Cost Paper By – Rudolf Ramler and Klaus Wolfmaier Presented.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.
Planning and Estimating
Managing Reuse Presented by: Aisha Al-Hammadi. Outline Introduction History. The technical and managerial advantages of Reusing Solutions. The main challenges.
CS351 - Software Engineering (AY2005)1 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
12 Steps to Useful Software Metrics
Defect prediction using social network analysis on issue repositories Reporter: Dandan Wang Date: 04/18/2011.
Software engineering on semantic web and cloud computing platform Xiaolong Cui Computer Science.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御.
Chapter 8: Problem Solving
Tennessee Technological University1 The Scientific Importance of Big Data Xia Li Tennessee Technological University.
CS4723 Software Validation and Quality Assurance
Lori Smith Vice President Business Intelligence Universal Technical Institute Chosen by Industry. Ready to Work.™
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Research Approaches zBalancing theory and praxis zHow engineering research differs from scientific research zThe role of empirical.
Evaluation of software engineering. Software engineering research : Research in SE aims to achieve two main goals: 1) To increase the knowledge about.
CS 350, slide set 6 M. Overstreet Old Dominion University Spring 2005.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Introduction to Defect Prediction Cmpe 589 Spring 2008.
ANTs PI Meeting, Nov. 29, 2000W. Zhang, Washington University1 Flexible Methods for Multi-agent distributed resource Allocation by Exploiting Phase Transitions.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Advanced Topics in Software Engineering Cmpe 550 Fall 2008.
Ethics of Software Testing Thomas LaToza CS 210 Final Presentation 12 / 2 / 2002.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
T Iteration Demo Group name [PP|I1|I2] Iteration
Rational Unified Process Fundamentals Module 5: Implementing RUP.
Formal Methods in Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 26 Slide 1 Software cost estimation 2.
1 Chapter 3 1.Quality Management, 2.Software Cost Estimation 3.Process Improvement.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Metrics and Defect Prediction Ayşe Başar Bener.
Three Critical Matters in Big Data Projects for e- Science Kerk F. Kee, Ph.D. Assistant Professor, Chapman University Orange, California
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Advanced Software Engineering Lecture 4: Process & Project Metrics.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M13 8/20/2001Slide 1 SMU CSE 8314 /
Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 SMU CSE 8314 Software Measurement.
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
Managing Qualitative Knowledge in Software Architecture Assesment Jilles van Gurp & Jan Bosch Högskolan Karlskrona/Ronneby in Sweden Department of Software.
PROJECT MANAGEMENT Software Engineering CSE
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Chapter 18 Maintaining Information Systems
Data Science Diversity from the Perspective of a National Laboratory
The Systems Engineering Context
CS701 SOFTWARE ENGINEERING
Advanced Topics in Software Engineering
12 Steps to Useful Software Metrics
DEFECT PREDICTION : USING MACHINE LEARNING
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Model-Driven Analysis Frameworks for Embedded Systems
Overview: Software and Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 13 Quality Management
Automated Analysis and Code Generation for Domain-Specific Models
Advanced Programing practices
Simulation-driven Enterprise Modelling: WHY ?
Presentation transcript:

SoftLab Boğaziçi University Department of Computer Engineering Software Engineering Research Lab

Research Challenges Trend to large, heterogenous, distributed sw systems leads to an increase in system complexity Software and service productivity lags behind requirements Increased complexity takes sw developers further from stakeholders Importance of interoperability, standardisation and reuse of software increasing.

Research Challenges Service Engineering Complex Software Systems Open Source Software Software Engineering Research

Software Engineering Research Approaches Balancing theory and praxis How engineering research differs from scientific research The role of empirical studies Models for SE research

The need to link research with practice Why after 25 years of SE has SE research failed to influence industrial practice and the quality of resulting software? Potts argues that this failure is caused by treating research and its application by industry as separate, sequential activities. What he calls the research-then-transfer approach. The solution he proposes is the industry-as-laboratory approach.. Colin Potts, Software Engineering Research Revisited, IEEE Software, September 1993

Industry-as-Laboratory Approach Stronger connection at start because knowledge of problem is acquired from the real practitioners in industry, often industrial partners in a research consortium. Connection is strengthened by practitioners and researchers constantly interacting to develop the solution Early evaluation and usage by industry lessens the Technology Transfer Gap. Reliance on Empirical Research shift from solution-driven SE to problem-focused SE solve problems that really do matter to practitioners

Industry-as-Laboratory emphasizes Real Case Studies Advantages of case studies over studying problems in research lab. Scale and complexity - small, simple (even simplistic) cases avoided - these often bear little relation to real problems. Unpredictability - assumptions thrown out as researchers learn more about real problems Dynamism - a ‘real’ case study is more vital than a textbook account The real-world complications of industrial case studies are more likely to throw up representative problems and phenomena than research laboratory examples influenced by the researchers’ preconceptions.

Need to consider Human/Social Context in SE research Not all solutions in software engineering are solely technical. There is a need to examine organizational, social and cognitive factors systematically as well. Many problems are “people problems”, and require “people-orientated” solutions.

Theoretical SE research While there is still a place for innovative, purely speculative research in Software Engineering, research which studies real problems in partnership with industry needs to be given a higher profile. These various forms of research ideally complement one another. Neither is particularly successful if it ignores the other. Too industrially focused research may lack adequate theory! Academically focused research may miss the practice!

Software Engineering Research Approaches The Industry-as-Laboratory approach links theory and praxis Engineering research aims to improve existing processes and/or products Empirical studies are needed to validate Software Engineering research Models for SE research need to shift from the analytic to empirical.

Empirical SE Research

Real life Problems

Do parts connect?

Research Questions:

Our Research Question Software development lifecycle: Requirements Design Development Test (Takes ~50% of overall time) Detect and correct defects before delivering software. Test strategies: Expert judgment Manual code reviews Oracles/ Predictors as secondary tools

In Practise Product quality Lower defect rates Less costly testing times Low maintenance cost Process quality Effort and cost estimation Process improvement

Research Question How much test is enough? When to stop testing?

Problem Decision making under uncertainity

Solution CS claims it can be solved Artificial Intelligence

SE Research Intersection of AI and Software Engineering An opportunity to: Use some of the most interesting computational techniques to solve some of the most important and rewarding questions

AI Fields, Methods and Techniques

What Can We Learn From Each Other?

Software Development Reference Model Intersection of AI and SE Research Empirical Software Engineering

Intersection of AI and SE Research Build Oracles to predict Defects Cost and effort Refactoring Measure Static code attributes Complexity and call graph structure Data collection Open repositories (NASA, Promise) Open source Softlab Data Repository (SDR)

Software Engineering Domain Classical ML applications Data miner performance The more data the better the performance Little or no meaning behind the numbers, no interesting stories to tell

Software Engineering Domain Algorithm performance Understanding Data Change training data: over/ under/ micro sampling Noise analysis Increase information content of data Feature analysis/ weighting Learn what you will predict later Cross company vs within company data Domain Knowledge SE ML

Software Engineering Research Predictive Models Defect prediction and cost estimation Bioinformatics Process Models Quality Standards Measurement

Major Research Areas Software Measurement Defect Prediction/ Estimation Effort & Cost Estimation Process Improvement (CMM)

A Testing Workbench

Static Code Attributes void main() { //This is a sample code //Declare variables int a, b, c; // Initialize variables a=2; b=5; //Find the sum and display c if greater than zero c=sum(a,b); if c < 0 printf(“%d\n”, a); return; } int sum(int a, int b) { // Returns the sum of two numbers return a+b; } ModuleLOCLOCCVCCError main() sum()51310 LOC: Line of Code LOCC: Line of commented Code V: Number of unique operands&operators CC: Cyclometric Complexity c > 0 c

Prest A tool developed by Softlab Parser C, Java, C++, jsp Metric Collection Data Analysis

Public Datasets NASA (IV&V Facility, Metrics Program) PROMISE (Software Engineering Repository) Includes Softlab data now Open Source Projects (Sourceforge, Linux, etc.) Internet based small datasets University of South California (USC) Dataset Desharnais Dataset ICBSG Dataset NASA COCOMO and NASA 93 Datasets Softlab Data Repository (SDR) Local industry collaboration Total 20 companies, 25 projects over 5 years Data Sources

Tangible Benefit ProjectsGerçek hatalı dosya sayısı pdpfİncelenen modül sayısı Test eforunda kazanım XXX5%63%931%84 YYY1%100%1027%87 ZZZ1%100%23103%77

Requirements Analysis Coding Design Test Maintenance  ∞ Defect prediction Call Graph / Refactoring Refactoring Matching reqs with defects Test driven development

Emerging Research Topics Adding organizational factors to local prediction model Information about the development team, experience, coding practices, etc. Adding file metrics from version history Modified/added/deleted lines of code Selecting only modified files from each version in the prediction model Confidence Factor Using time factors Dynamic prediction: Constructing a model for each application in a version for each module/package in an application for each developer by learning from his/her coding habits TDD Measuring test coverage Defect proneness Company wide implementation process Embedded systems Cost/ Effort Estimation Dynamic estimation per process