State of The Art and Future Directions Dept. of Computer Science

Slides:



Advertisements
Similar presentations
Introduction to Research Methodology
Advertisements

Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Introduction To System Analysis and Design
Introduction to Research
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.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Process and Product Metrics
S/W Project Management
A Taxonomy of Evaluation Approaches in Software Engineering A. Chatzigeorgiou, T. Chaikalis, G. Paschalidou, N. Vesyropoulos, C. K. Georgiadis, E. Stiakakis.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Chapter 6 : Software Metrics
Evaluation of software engineering. Software engineering research : Research in SE aims to achieve two main goals: 1) To increase the knowledge about.
Introduction To System Analysis and Design
This chapter is extracted from Sommerville’s slides. Text book chapter
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
Software Project Management Lecture 11. Outline Brain Storming session  Some simple discussion on questions and their answers  Case studies related.
Institute of Professional Studies School of Research and Graduate Studies Introduction to Business and Management Research Lecture One (1)
1 Introduction to Software Engineering Lecture 1.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
META-ANALYSIS, RESEARCH SYNTHESES AND SYSTEMATIC REVIEWS © LOUIS COHEN, LAWRENCE MANION & KEITH MORRISON.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15a: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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.
WERST – Methodology Group
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Introduction to Research. Purpose of Research Evidence-based practice Validate clinical practice through scientific inquiry Scientific rational must exist.
PSY 432: Personality Chapter 1: What is Personality?
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
1 Prepared by: Laila al-Hasan. 1. Definition of research 2. Characteristics of research 3. Types of research 4. Objectives 5. Inquiry mode 2 Prepared.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Advanced Software Engineering Dr. Cheng
Chapter 2 Object-Oriented Paradigm Overview
CompSci 280 S Introduction to Software Development
Software Quality Control and Quality Assurance: Introduction
INTRODUCTION The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned.
Chapter 1: Introduction to Systems Analysis and Design
Fundamentals of Information Systems, Sixth Edition
Modern Systems Analysis and Design Third Edition
Leacock, Warrican and Rose (2009)
Principles of Information Systems Eighth Edition
MGT-491 QUANTITATIVE ANALYSIS AND RESEARCH FOR MANAGEMENT
Object-Oriented Software Engineering Using UML, Patterns, and Java,
The Systems Engineering Context
Software Engineering (CSI 321)
Research Process №5.
Software Requirements
Software Quality Engineering
Textbook Engineering Web Applications by Sven Casteleyn et. al. Springer Note: (Electronic version is available online) These slides are designed.
Foundation Degree IT Project
Software Engineering Experimentation
Modern Systems Analysis and Design Third Edition
Chapter 20 Object-Oriented Analysis and Design
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Need for the subject.
Chapter 13 Quality Management
Modern Systems Analysis and Design Third Edition
CS385T Software Engineering Dr.Doaa Sami
Chapter 1: Introduction to Systems Analysis and Design
Measurement What is it and why do it? 2/23/2019
Chapter 19 Technical Metrics for Software
BBA V SEMESTER (BBA 502) DR. TABASSUM ALI
Dept. of Computation, UMIST
Debate issues Sabine Mendes Lima Moura Issues in Research Methodology
Chapter 1: Introduction to Systems Analysis and Design
Meta-analysis, systematic reviews and research syntheses
Presentation transcript:

State of The Art and Future Directions Dept. of Computer Science Empirical Studies of Object-Oriented Artifacts, Methods, and Processes: State of The Art and Future Directions Li Jingyue Dept. of Computer Science NTNU 18th,Oct. 2002

Agenda State of the Art Research Directions Success Factors for Empirical Studies

State of The Art Challenges Existing Empirical Studies Methodology for formal definition and empirical validation of OO measures Empirical Assessment of OO Design Principles Empirical Evaluation of Quality Models for OO Software Empirical Evaluation of Testability of OO software Common Problems and Open Issues

Challenges (1) OO technologies are claimed to improve the quality of software product deliverables, to support reuse and reduce the effort of developing and maintaining the software product But … Little evidence exists to support the claims

Challenges (1) Example: Inheritance and polymorphism are claimed to provide benefits such as greater extensibility and reusability of OO system.However, some examples showed results suggesting that,beyond a certain level, inheritance is a serious hindrance to maintainability.

Challenges (2) The goals or hypotheses underlying many of the proposed measures are often not clearly stated The measures are often not defined in a fully operational form So … It difficult to replicate the studies by other researchers

Challenges (3) Some early investigations on testing approaches for OO software have already been performed and published But … These partial solutions have not been compared, not attempt to combine them has been made

State of The Art Challenges Existing Empirical Studies Methodology for formal definition and empirical validation of OO measures Empirical Assessment of OO Design Principles Empirical Evaluation of Quality Models for OO Software Empirical Evaluation of Testability of OO software Common Problems and Open Issues

Methodology for formal definition and empirical validation of OO measures Goal of this research is to evaluate software measures and to qualify the use of certain statistical techniques

Methodology for formal definition and empirical validation of OO measures Example: (Brinand 1999) proposed methodologies for the definition and construction of OO coupling and cohesion measures.

Empirical Assessment of OO Design Principles Goal of this research is to empirically compare OO technologies and processes to traditional structured techniques.

Empirical Assessment of OO design principles (cond) Example: (Houdek 1999) conducted an experiment comparing traditional structured methods and OO methods applied to embedded software system. The results identified only minor difference in development time and quality of the developed system.

Empirical Evaluation of Quality Models for OO software Goal of this research is to relate structural attribute Encapsulation, Inheritance, Coupling, cohesion to external quality indicators Fault proneness, development effort, Test effort, rework effort, Reusability, maintainability.

Empirical Evaluation of Quality Models for OO software (cond) Example: (Binkley,1998) collected maintenance data from four development projects written in COBOL, C, C++ and Java,respectively. The result suggested that ”a significant impediment to maintenance is the level of coupling between modules”. Modules with low coupling were subjected to less maintenance effort and had fewer maintenance faults and fewer run-time failures

Empirical Assessment of Testability of OO software Goal of this research is to empirically study the feasibility and adequacy of the proposed testing techniques

Empirical Assessment of Testability of OO software (cond) Example: (kung 1995) and (Labiche 1999) propsed two different testing approaches. Both approaches are based on a class test model which captures the static dependencies between the classes and objects, but they have different limitations that have still to be empirically compared.

Common Problems and Open Issues State of The Art Challenges Existing Empirical Studies Methodology for formal definition and empirical validation of OO measures Empirical Assessment of OO Design Principles Empirical Evaluation of Quality Models for OO Software Empirical Evaluation of Testability of OO software Common Problems and Open Issues

Common Problems and Open Issues How to investigate artifacts from earlier states of the life cycle, e.g.,requirement, architectural design, in order to build early quality models How to investigate the existing product measures , following thorough, rigorous, and complete analysis procedures, within the context of well-designed empirical studies How to replicate studies across many environments to draw more general conclusions.

Identify Important Factors Research Directions Identify Important Factors Evaluation of OO Technologies Building Quality and Productivity models Meta-level issues

Identify Important Factors The proposed metrics are mainly related to static aspects of OO systems. Measurement of dynamic attributes (e.g., coupling at run-time) has not yet been considered in depth. Measurement of single class has been investigated to a great extent, measurement of class cluster(e.g., when using COTS) has not been fully investigated.

Identify Important Factors (cond) The number of measures that have been proposed for OO products is very large. We need to better understand what these measures are really capturing, whether they are really different, and whether they are useful indicator of quality or productivity properties of interest

Identify Important Factors (cond) The application domain is usually seen as a major factor determining the usefulness of measurement or the effectivness of technologies. We should characterize the type of functionality delivered, the type of development technologies used, the scale of development and any other characteristic which is typically associated with a domain

Evaluation of OO Technologies Research Directions Identify Important Factors Evaluation of OO Technologies Building Quality and Productivity models Meta-level issues

Evaluation of OO Technologies It is important to investigate the use of UML more thoroughly. The tools that support UML-based development need to be evaluated and their prerequisite for successful use must be investigated The development processes, such as Rational, should be carefully monitored since it is likely that they will require some degree of tailoring in each organization

Building Quality and Productivity models Research Directions Identify Important Factors Evaluation of OO Technologies Building Quality and Productivity models Meta-level issues

Building Quality and Productivity models Quality models need to be available earlier in the life cycle in order to drive and ensure early built-in quality. Productivity (cost to product characteristics) model should be used earlier so that accurate project planning and risk analysis can be performed

Research Directions Meta-level issues Identify Important Factors Evaluation of OO Technologies Building Quality and Productivity models Meta-level issues

Meta-level issues Results need to be combined and conclusions need to be generalized

Success Factors for Empirical Studies Nature of theData Consistent Terminology Nature of the Research

Nature of the Data Ensure the reliability, completeness and efficiency of the data collected. Ensure the data are clearly justified and its underlying assumptions are made explicit as to aid the interpretation of result. Ensure any measurement reported be defined in an operational and unambiguous manner

Consistent Terminology A common problem in SE community is the inconsistent use of terminology and notation. For example: There are many forms of coupling that can arise in systems. Establishing the different forms of coupling are still open research questions. So… Ensure the terminologies used in SE empirical studies are consistent and unambiguous

Nature of the Research Some empricial researches are understaken without establishing beforehand whether the problem is either worth investigating, is too complex at this stage of knowledge or addresses a different underlying issues So… Ensure you have clearly defined the problem and the results of which are useful to the community.

Conducting Realistic Experiments in Software Engineering Li Jingyue Dept. of Computer Science NTNU 18th,Oct. 2002

Agenda Introduction Realism in SE Experiments Conclusion Realistic Tasks Realistic Subjects Realistic Environment Conclusion

Introduction (1) The ultimate criterion for success in an applied discipline such as software engineering research is the widespread adoption of research results into everyday industrial practice

Introduction (2) Most of the studies in software engineering that have emphasized realism are case studies. However, many variables vary from one case study to another so that comparing the results to detect cause-effect relationships is difficult. Therefore, controlled experiments should be conducted to complement case studies in empirical software engineering

Introduction (3) To convince industry about the validity and applicability of the controlled experimental results, the tasks, subjects and the environments of the experiments should be as realistic as possible

Agenda Introduction Realism in SE Experiments Conclusion Realistic Tasks Realistic Subjects Realistic Environment Conclusion

Realistic tasks:Challenge The challenge is concerned with the size, complexity and duration of the involved tasks Of course, the world is diverse, so the realism of a task must be considered relative to a certain part or aspect of the world.

Realistic tasks:Solution A systematic way to define realistic tasks according to a given application area in a given context, is to collect information about the kinds and frequencies of tasks in the actural enviroment and then create "benchmark tasks", i.e. a set of tasks that is a representative sample of tasks from the population of all tasks.

Agenda Introduction Realism in SE Experiments Conclusion Realistic Tasks Realistic Subjects Realistic Environment Conclusion

Realistic Subjects:Challenge This challenge is concerned with the selection of subjects to perform the experimental tasks, that is, to what extend do the selected subjects represent the population that we wish to make claims about? A common criticism of experiments in software engineering is that most of the subjects are students, which might make it difficult to generalise the results to setting with professionals.

Realistic Subjects Students versus professionals Semi-professionals experience and skill level use of professional methods and tools team work versus individual work Semi-professionals

Realistic Subjects Variations among the professionals Age Education(number of credits in general, number of credits in computer science) General work experience Programming experience(OO, Java, C++) Knowledge of system developments methods and tools Subjective description of their own programming skills

Realistic Subjects:Solution To generalise from experiments with a given group of subjects, we should get the information about the ability and the variations among the subjects and the group of people to which the results will be generalised.

Agenda Introduction Realism in SE Experiments Conclusion Realistic Tasks Realistic Subjects Realistic Environment Conclusion

Realistic Environment:Challenge The challenge is to configure the supporting technology( process, methods, tools, etc.) that resembles an industrial development environment.

Realistic Environment:Solution Conducting an experiment on the usual work site with professional development tools implies less control of the experiment than we would have in a classroom setting with pen and paper.

Experiment Supporting Technology Administrator Researcher 1.Define experiment 5.Analyze results 2.Define users Simula Experiment Support Environment 3.Questionnaires task descriptions source code 4.Answer questions task solutions source code Subjects Professional developers, at usual work place using normal development tools

Agenda Introduction Realism in SE Experiments Conclusion Realistic Tasks Realistic Subjects Realistic Environment Conclusion

Conclusion Increasing the realism of SE experiment requires an increase in the resource needed to conduct such experiments Given the importance and challenges of software industry, the empirical SE community should apply national and multi-national research bodies to fund realistic experiments