A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions Fadi (Fadhi) Wedyan CS614 Spring 2007.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

How do you know if your brochure is effective with the targeted audience? Usability research: explores how users interact with a product such as a brochure.
Triangular Numbers An Investigation Triangular Numbers Triangular numbers are made by forming triangular patterns with counters. The first four triangular.
Design Patterns CS is not simply about programming
Design Patterns. What are design patterns? A general reusable solution to a commonly occurring problem. A description or template for how to solve a problem.
Writing Good Software Engineering Research Papers A Paper by Mary Shaw In Proceedings of the 25th International Conference on Software Engineering (ICSE),
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
Chapter 2: Algorithm Discovery and Design
Chapter 3 Planning Your Solution
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Introduction to the design (and analysis) of experiments James M. Curran Department of Statistics, University of Auckland
2.1 The Addition Property of Equality
I want to test a wound treatment or educational program but I have no funding or resources, How do I do it? Implementing & evaluating wound research conducted.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Copyright © Cengage Learning. All rights reserved.
Copyright © Cengage Learning. All rights reserved.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Science Fair December 12.
Copyright © Cengage Learning. All rights reserved.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Program Development Life Cycle (PDLC)
Marking Scheme ISM ISM Top-up. Project Contents Abstract, – A one page summary (max. 400 words) of the Intent, work undertaken. Introduction, – An overview.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Chapter 16 Problem Solving and Decision Making. Objectives After reading the chapter and reviewing the materials presented the students will be able to:
The scientific method is a series of steps that scientists use to answer questions or solve problems. Steps: 1.Make observations 2. Ask a question 3.Form.
For ABA Importance of Individual Subjects Enables applied behavior analysts to discover and refine effective interventions for socially significant behaviors.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
PROPOSAL OF AN INNOVATIVE ARCHITECTURE FOR WEB BASED EDUCATION SYSTEMS CATE 2012 Superior School of Computer Science of National Polytechnic Institute.
An Introduction to Programming with C++ Sixth Edition Chapter 7 The Repetition Structure.
M ATHEMATICAL P RACTICES For the Common Core. C ONNECTING THE S TANDARDS FOR M ATHEMATICAL P RACTICE TO THE S TANDARDS FOR M ATHEMATICAL C ONTENT The.
A Context Model based on Ontological Languages: a Proposal for Information Visualization School of Informatics Castilla-La Mancha University Ramón Hervás.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Testing Extensible Design Patterns in OO Frameworks through Scenario Templates D.S. Sanders Software Verification & Validation.
Chap. 5 Building Valid, Credible, and Appropriately Detailed Simulation Models.
Section 2 Scientific Methods Chapter 1 Bellringer Complete these two tasks: 1. Describe an advertisement that cites research results. 2. Answer this question:
Building Simulation Model In this lecture, we are interested in whether a simulation model is accurate representation of the real system. We are interested.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Article Summary of The Structural Complexity of Software: An Experimental Test By Darcy, Kemerer, Slaughter and Tomayko In IEEE Transactions of Software.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
A way to answer questions & solve problems How we understand the world around us A way or process used to investigate what is happening around you It provides.
Chapter 2 Section 1 Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
THE SCIENTIFIC METHOD. THE SCIENTIFIC METHOD: is a process used to find answers to questions about the world around us is an organized series of steps.
Complex Numbers Day 1. You can see in the graph of f(x) = x below that f has no real zeros. If you solve the corresponding equation 0 = x 2 + 1,
Copyright © by Holt, Rinehart and Winston. All rights reserved. Resources Chapter menu Section 2 Scientific Methods Chapter 1 Bellringer Complete these.
Documenting a function. Documenting a function definition We have a template for information that we need you to put at the top of each function - if.
The influence of pane position on CSCW* task performance in joint action perception space *Computer Supported Collaborative Work G. Metaxas, B. Metin,
Chapter 1 Introduction to Statistics. Section 1.1 Fundamental Statistical Concepts.
Conducting a Scientific Investigation. Steps of the Scientific Method State the Problem State the Problem Background Information Background Information.
Lecture №4 METHODS OF RESEARCH. Method (Greek. methodos) - way of knowledge, the study of natural phenomena and social life. It is also a set of methods.
Lesson 1.  Example 1. Use either elimination or the substitution method to solve each system of equations.  3x -2y = 7 & 2x +5y = 9  A. Using substitution.
Week 2: Interviews. Definition and Types  What is an interview? Conversation with a purpose  Types of interviews 1. Unstructured 2. Structured 3. Focus.
Reflections on Practice Maths Counts Introduction to Linear Equations Laois Education Centre, Portlaoise.
Copyright © Cengage Learning. All rights reserved. Graphs; Equations of Lines; Functions; Variation 3.
Science Fair Project Type your project title here Your name Your teacher’s name Your school.
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions By Prechelt, Unger, Tichy, Brössler, and Votta Presentation by Chris.
Software Design Refinement Using Design Patterns
Introduction to Design Patterns
Copyright © Cengage Learning. All rights reserved.
Part 1 – The Scientific Report Must be presented in the sections listed in your handout Written in past tense Written in third person Presented.
2 Understanding Variables and Solving Equations.
CS 350 – Software Design Principles and Strategies – Chapter 14
Dr. Clincy Professor of CS
Train the Trainer Your Name.
Chapter 2 Section 1.
A VOYAGE THROUGH PERFORMANCE MANAGEMENT TOOLS
Introduction to the design (and analysis) of experiments
Presentation transcript:

A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions Fadi (Fadhi) Wedyan CS614 Spring 2007

Presentation Outlines Introduction Objective Experiment setup Experiment Conduction Validity Threads Conclusions and Comments

Introduction Design patterns aim to simplify maintenance and increase usability. Design patterns increase flexibility and reduce coupling. Design patterns increases program complexity in the case where the flexibility offered by the pattern is unnecessary.

Objective Investigate, with respect to maintenance time, whether it is useful to design programs with design patterns even if the actual problem is simpler than that solved by the design pattern. – Is the complexity introduced by the design pattern always justified?

Experiment Setup Four different programs, well-documented, written for the purpose of the experiment. Two versions of each program are developed: Pattern version (PAT) and Alternative version (ALT). Implementation in C++. Patterns implemented : ABSTRACT, FACTORY, COMPSITE, DECORATOR, FAÇADE, OBSERVER, and VISITOR.

Experiment Setup, Cont’d In each program, at least one of flexibility functionality offered by the design patterns is not needed by the maintenance tasks. 29 subjects are used, all professional SE. - Some of them have theoretical or practical pattern knowledge. - Subjects are distributed into four balanced groups.

Experiment Setup, Cont’d Three Independent variables: – Programs and maintenance tasks. – Program version. – Amount of pattern knowledge. Two dependent variables: – Time. – Correctness.

Experiment Setup, Cont’d SequenceGroup AGroup BGroup CGroup D PRE1 st Prop.ST PATGR PATCO ALTBO ALT PRE2 nd Prob.GR ALTST ALTBO PATCO PAT Pattern Course POST3 rd Prob.CO ALTBO ALTST PATGR PAT POST4 th Prob.BO ALTCO PATGR ALTST ALT Table 1: Order of Programs Per Group

Experiment Conduction First Problem: Stock Ticker (ST) – Directs stocks to one or more displays. – Patterns: OBSERVER Task 1: activate the second display unit. Expectations: – E1: PRE-PAT Subjects require more time (supported) – E2: POST-PAT Subjects require less time. (Not Supported). Conclusion: OBSERVER may be harmful!

First Problem: Stock Ticker (ST), Cont’d Task 2: Allow program to add new displays dynamically. Expectations: – E3: PAT Subjects require less time (supported) Conclusion: Nothing, unfair task? Post and Pre are close for both programs

Second Problem: Communication Channels (CO) Pattern: DECORATOR for adding functionality. Task 1: Enhancing functionality. Expectations: – E1: PAT subjects are faster. (Supported) – E2: Pattern Knowledge enhance the ALT solution (Not supported) Conclusions: – Patterns are preferable (time + correctness). – Positive effect of pattern use is independent of pattern knowledge.

Second Problem: Communication Channels (CO), Cont’d Task 2: Checking channel status Expectations: – E1: ALT faster (Supported) – E2: ALT less errors (Not supported) Conclusions: – Subjects were tired in the afternoon!

Second Problem: Communication Channels (CO), Cont’d Task 3: Create a channel with different functionality. Expectations: – E1: ALT faster (Supported) – E2: ALT less errors (Not supported) Conclusions: Harmful use of patterns? Or bad experiment?

Third Problem: Graphics Library (GR) Patterns: ABSRACT, FACTORY, COMPOSITE. Task 1: Adding an output device type. Expectations: – E1: ALT little faster (Supported) – E2: POST faster (supported) Conclusions: ?

Third Problem: Graphics Library (GR) Task 2: Operation Sequence. Expectations: – E3: No significant different (Supported) – E4: POST faster (not supported) Conclusions: ?

Forth Problem: Boolean Formulas (BO) Patterns: VISITOR, COMPOSITE. Task 1: Evaluating the formula Expectation: – E1: PAT Faster (supported) – E2: POST Knowledge helps (supported)

Validity Threads Internal Threads – Group similarity – Time stamps. External Threads – Original designers and implementers may be the ones who perform maintenance. – Real program are less documented. – Real maintainers implement and test their solutions. – Effect of other design patterns and/or variations.

Conclusions The use of design patterns is usually justified. Common sense works! Some times justified use of design pattern was harmful Some times unjustified use of design patterns was useful