45
/ Faculteit Wiskunde en Informatica PAGE 1 03/02/15 Organisation Quartile 3: • Lectures: Monday: 13:45-15:30 (MF 8 ) PAV M.23 Wednesday: 10:45-12:30 (LG -1.19) AUD 10 from Feb 11, onwards http://www.win.tue.nl/~aserebre/2IS55/2014-2015/ http://videocollege.tue.nl/ Master students: CSE, ES, BIS, AT, 5 ECTS = 140 hours 140 – 2*14 = 112 hours [email protected] 3595, MF 6.087 Assistants: Ana Sutîi 2012 Josh Mengerink 2013

Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

/ Faculteit Wiskunde en Informatica PAGE 1 03/02/15

Organisation

•  Quartile 3: •  Lectures: − Monday: 13:45-15:30 (MF 8) PAV M.23 − Wednesday: 10:45-12:30 (LG -1.19) AUD 10 from

Feb 11, onwards •  http://www.win.tue.nl/~aserebre/2IS55/2014-2015/ •  http://videocollege.tue.nl/

•  Master students: CSE, ES, BIS, AT, … •  5 ECTS = 140 hours

•  140 – 2*14 = 112 hours •  [email protected]

•  3595, MF 6.087

Assistants: Ana Sutîi 2012 Josh Mengerink 2013

Page 2: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Learning objectives

•  list important challenges associated with software evolution;

•  develop and discuss methods and tools addressing these challenges, their advantages and disadvantages;

•  apply the methods and tools to existing software systems;

•  interpret the results obtained in a scientifically responsible way.

/ SET / W&I PAGE 2 03/02/15

Page 3: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Assignments and NO EXAM!

•  http://peach.win.tue.nl/ •  5 assignments

•  “Assignment 0” – technical/administrative preparation. •  Final grade = average of the four best grades + correction •  Correction

0, if you submit 4 assignments or more -0.5, if you submit 3 assignments -1, if you submit 2 assignments or less

•  Zero is grade!

/ SET / W&I PAGE 3 03/02/15

Page 4: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Assignments

•  A1, A3 and A5 are individual; A2 and A4---in pairs •  Estimate your strengths and weaknesses when teaming up. •  Look at the assignments in advance. •  If something is not clear, ask. •  Workload might seem higher since you work mostly during

the semester and not during the exam period

/ SET / W&I PAGE 4 03/02/15

A1 manual analysis of requirements, visualization A2 tool building, learning a new programming language/tool A3 large-scale experimentation, replication, visualization, tool A4 large-scale experimentation, statistical analysis, tool, threats

to validity A5 experiment design, statistical analysis, threats to validity,

literature review

Page 5: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

A typical assignment

•  Report •  What problem will you study? •  What software system(s) will you study? •  How did you design your experiment? −  Design decisions and tools used to obtain, analyse and

visualize data −  Reproducibility: include all commands/source code you

have used •  What results have you obtained? •  How do you interpret these results? •  What might have affected validity of your results?

/ SET / W&I PAGE 5 03/02/15

Page 6: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Software evolution and others…

•  No formal prerequisites •  “Generic language technology” is recommended •  Basic statistics is an advantage (e.g., correlation)

•  Interest in •  analysis of software systems •  tool development •  social aspects of software development

•  Programming skills •  Java (read, understand, theory of OO) •  scripting languages (program)

/ SET / W&I PAGE 6 03/02/15

Page 7: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Reading material (mostly…)

/ SET / W&I PAGE 7 03/02/15

Page 8: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

What is this course about?

/ SET / W&I PAGE 8 03/02/15

Page 9: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

/ SET / W&I PAGE 9 03/02/15

Software Evolution. In the beginning.

•  Royce 1970, “Waterfall model”.

Where does the money go?

Page 10: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Why is maintenance so expensive?!

•  Software is •  crucial for modern society •  more complex than any other human artifact •  subject to change

/ SET / W&I PAGE 10 03/02/15

abstraction Model

Real World

reification Program

change change

change

Toyota Prius. 160,000 vehicles recalled. Ariane 5. Launch failed

Page 11: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Change?

•  GNOME project •  Sarma, Maccherone, Wagstrom, and Herbsleb ICSE’09 •  10 years, 1000 developers •  2.5 millions changes

•  Mozilla •  Lanza •  6 years, hundreds of developers •  > 1 million changes

•  Lots of small changes leading to a new behaviour…

/ SET / W&I PAGE 11 03/02/15

Page 12: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Evolution: one change a top of another one

Evolution is staged process of progressive change over time in the

properties, attributes, characteristics, behaviour of some material or

abstract, natural or artificial, entity or system

/ SET / W&I PAGE 12 03/02/15

Charles Darwin

Meir Manny Lehman

Page 13: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Evolution vs. Maintenance

/ SET / W&I PAGE 13 03/02/15

“Software development” (Royce 1970)

1.0

“Software maintenance” (Royce 1970)

maintenance activities

Software evolution

Page 14: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Why do we want to study software evolution?

•  Software = the weakest link (often) •  Evolution “in general” makes things more complex

•  Science: −  What is the nature of software evolution? − Psychology, sociology and organization theory,

economics, law… •  Engineering: −  Where did the things go wrong? −  incorrect, too complex, out of sync with other artefacts

−  Where can/will the things go wrong? −  prediction, week spot identification, …

−  What can we do to prevent the things from going wrong?

/ SET / W&I PAGE 14 03/02/15

Page 15: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Three questions for today

•  What software artefacts are subject to evolution?

•  Why do they evolve?

•  How do they evolve?

/ SET / W&I PAGE 15 03/02/15

Page 16: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

/ SET / W&I PAGE 16 03/02/15

What does evolve?

Evolution of different artefacts should be consistent.

This is called the co-evolution problem.

Requirements evolution

Design (architecture) evolution. Data, code, documents, technology evolution

Tests and proofs evolution

Page 17: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Co-evolution is time-dependent!

•  Assumption: files committed together are co-evolving.

/ SET / W&I PAGE 17 03/02/15

D’Ambros, Gall, Lanza, and Pinzger. “Analysing Software Repositories to Understand Software Evolution”

Page 18: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Source/Test Files Co-evolution

/ SET / W&I PAGE 18 03/02/15

Added Source Modified Source Added Test Modified Test

Andy Zaidman, Bart Van Rompaey, Serge Demeyer and Arie van Deursen. “Mining Software Repositories to Study Co-Evolution of Production & Test Code”

Page 19: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

/ SET / W&I PAGE 19 03/02/15

Co-evolution: Points of discussion

•  What should co-evolve? •  Code and database table definitions •  Code and design documentation •  Code and tests •  Code and programming language •  Code and 3rd party software •  Different code elements (packages, modules, files…) •  …

•  What constitutes inconsistency? •  How to detect inconsistencies? •  How to ensure absence of inconsistencies?

Page 20: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Why does software evolve?

Swanson 1976

•  corrective maintenance: to address processing, performance or implementation failure;

•  adaptive maintenance: to address change in the data or processing environments;

•  perfective maintenance: to address processing efficiency, performance enhancement and maintainability

Which maintenance type tries to address the co-

evolution problem?

/ SET / W&I PAGE 20 03/02/15

Page 21: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

How do the system evolve?

•  Evolution in small: series of changes

•  Each change has to be understood and confirmed: impact analysis

•  Yau and Collofello 1980

/ SET / W&I PAGE 21 03/02/15

Page 22: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Do all programs evolve?

•  What about your student assignments?

•  There is a specification •  Specification is complete and fixed

•  All that matters has been completely defined •  Changed specification = new specification

•  Correctness wrt the specification is all it matters •  No “extra” requirements

•  S-type systems [Lehman 1985a] = no evolution •  NB: Presence of specification: not enough for S-type

/ SET / W&I PAGE 22 03/02/15

Page 23: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

S-type systems

•  Rarely observed in practice: Why?

•  Important: •  Some design approaches aim at improving formality •  But implicitly assume absence of evolution −  S-type systems definition clarifies shortcomings of

such approaches (Acme ADL, …)

•  Are S-type systems useless in practice?

/ SET / W&I PAGE 23 03/02/15

Page 24: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

P-type: Restricted evolution

•  Problem [Lehman 1980] or paradigm [CHLW 2006] •  P-type systems = systems that should always be

consistent with a single external paradigm: •  Virgo: laws of physics

•  Standards can be regarded as a paradigm

•  What are the differences between a paradigm and a specification?

•  In what way is the evolution of P-type systems restricted?

/ SET / W&I PAGE 24 03/02/15

Page 25: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

P-type systems and reuse

•  Reuse techniques foster P-type solutions •  Design patterns •  “Stable intermediate forms” (Simon 1969) −  Building blocks to construct more complex systems

/ SET / W&I PAGE 25 03/02/15

Complex systems P-type

Page 26: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

E-type systems

•  E-type systems = systems that operate in the real world (or address it)

•  Should evolve since the real world evolves:

/ SET / W&I PAGE 26 03/02/15

abstraction Model

Real World

reification Program

abstraction Model

Real World

reification Program

Page 27: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

E-type systems

•  “Unrestricted evolution”

•  Lehman has observed 8 laws of software evolution •  Experience-based •  Some might sound obvious •  Have been changed and reformulated a number of times…

•  We will look at them one by one…

/ SET / W&I PAGE 27 03/02/15

Page 28: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

1. Continuing Change

•  An E-type system must be continually adapted, else it becomes progressively less satisfactory in use

•  Follows from: •  E-type systems operate in the real world (or address it) •  Real world changes

•  Would you use today?

/ SET / W&I PAGE 28 03/02/15

Page 29: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

/ SET / W&I PAGE 29 03/02/15

Step aside: is the continuous change always possible?

Loss of architectural

integrity Patches

too costly?

architecture decay

•  Bennett and Rajlich (2000)

Start thinking about migration or reengineering

Page 30: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

2. Increasing complexity

•  As an E-type system is changed its complexity increases and becomes more difficult to evolve unless work is done to maintain or reduce the complexity.

/ SET / W&I PAGE 30 03/02/15

Wermelinger, Yu, Lozano, ICSM 2008

Number of internal dependencies in Eclipse: added, kept, kept from r1, deleted.

Page 31: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Increasing complexity

•  How do we define complexity? •  Dependencies, execution paths, inheritance, … •  Metrics

•  How do we detect trends, changes and outliers? •  Visual inspection •  Statistical analysis

•  How we map the change points to recorded improvement activities? •  Logbooks •  Automatic detection of refactorings

/ SET / W&I PAGE 31 03/02/15

Page 32: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

3. Self Regulation

•  Global E-type system evolution is feedback regulated.

/ SET / W&I PAGE 32 03/02/15

Theories, models procedures, laws of application and system domains

Application concept

Application domain

Computational procedures

and algorithms

Stakeholders’ views

Evolving understanding and structure

Requirements analysis

Program definition

M.M. Lehman: Software evolution as a feedback loop (simplified)

Operational program feedback

Page 33: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Feedback and Growth Pattern

•  Feedback necessitates ability to react , i.e., control.

•  Repeated cyclic pattern is typical for feedback.

•  More? Ch. 17 of

/ SET / W&I PAGE 33 03/02/15

Lehman and Belady 1972, 1985

Page 34: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

4. Conservation of Organizational Stability

•  The work rate of an organization evolving an E-type system tends to be constant over the operational lifetime of that system or phases of that lifetime.

•  Rather controversial: managers have no power? •  Supported, e.g., by Gefen and Schneberger •  No evidence found, e.g., by Lawrence

•  “Phases of that lifetime” – discontinuity!

/ SET / W&I PAGE 34 03/02/15

Page 35: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

5. Conservation of Familiarity

•  In general, the incremental growth (growth rate trend) of E-type systems is constrained by the need to maintain familiarity.

•  Lehman: growth is linear •  Godfrey and Tu: not for Open Source (Linux) •  Wermelinger, Yu, Lozano: linear for architecture (Eclipse)

/ SET / W&I PAGE 35 03/02/15

Godfrey and Tu 2000

Page 36: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

6. Continuing Growth

•  The functional capability of E-type systems must be continually enhanced to maintain user satisfaction over system lifetime.

•  In earlier versions the law talked about “size”.

/ SET / W&I PAGE 36 03/02/15

Page 37: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

6. Continuing Growth (cntd.)

•  How to measure functional capability? •  Is it reflected in # lines

of code, modules, etc.? •  Measure of

functionality: Function points −  Usually require

description to be calculated

−  Description ≠ functionality

•  Continuing(?) growth

/ SET / W&I PAGE 37 03/02/15

Staged growth: typical for Open Source Software?

Growth in Gaim (Ramil, Capiluppi 2004)

Page 38: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

7. Declining Quality

•  Unless rigorously adapted and evolved to take into account changes in the operational environment, the quality of an E-type system will appear to be declining.

•  Again, would you use

•  How would you define quality? Adaptation?

/ SET / W&I PAGE 38 03/02/15

Page 39: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

8. Feedback system

•  E-type evolution processes are multi-level multi-loop multi-agent feedback systems.

/ SET / W&I PAGE 39 03/02/15

•  This process model is far too simplistic!

•  Agents: corporate managers, process managers, product managers, SW architects, SW developers, SW testers, marketers, users, …

•  Loops: document/code reviews •  Levels: granularity, parallel versions, …

Page 40: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

In fact…

/ SET / W&I PAGE 40 03/02/15

Application Concept

Operational Program

Views (Predictive)

Evolving Understanding and Structure

Theories, Models Procedures, Laws of Application and System Domains

Requirements Analysis

Computational Procedures

and Algorithms

Program Definition

Program

Corporate Management

Marketeers Users

User Support

Project & Process

Managers

Exogenous Change

.

M.M. Lehman

Page 41: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Laws of Software Evolution: Summary

1.  Continuing change 2.  Increasing complexity 3.  Self-regulation 4.  Conservation of organizational stability 5.  Conservation of familiarity 6.  Continuing growth 7.  Declining quality 8.  Feedback system

/ SET / W&I PAGE 41 03/02/15

Page 42: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Laws of SW Evolution: Limitations and critique

•  Applicability to “non-standard” software? •  Open source, co-developed, based on dev. frameworks

•  Applicability to “non-standard” languages? •  Specification languages, process models, domain-

specific languages, Excel?! •  Applicability to “non-standard” artefacts?

•  Requirements documents, architecture, test scripts? •  Empirical validation

•  Case studies conducted and more case studies needed •  Statistical validity of the results?!

•  Vagueness

/ SET / W&I PAGE 42 03/02/15

Page 43: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Summary so far…

•  Software usually undergoes numerous small changes ⇒ evolution

•  What, why and how of software evolution •  Why: types of maintenance •  How: types of software systems: −  S-type: fixed spec, no evolution −  P-type: fixed paradigm, restricted evolution −  E-type: the general case −  Lehman’s laws of software evolution

/ SET / W&I PAGE 43 03/02/15

Page 44: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

Topics for the coming lectures

•  Requirements Evolution •  Reverse Engineering and Evolution of SW Architecture •  Code Duplication and Differencing •  Mining Software Repositories

•  Including StackOverflow & Github! •  Code Measurement: Size and Complexity •  Controlling Evolution: Refactoring and Reengineering

•  Is there a topic not listed you are interested in? •  Please let me know!

/ SET / W&I PAGE 44 03/02/15

Page 45: Organisation - Eindhoven University of Technologyaserebre/2IS55/2014-2015/1.pdf · Assignments • A1, A3 and A5 are individual; A2 and A4---in pairs • Estimate your strengths and

/ SET / W&I PAGE 45 03/02/15

Software Evolution @ TU/e

•  Software metrics, aggregation, repository mining and statistical analysis – Alexander Serebrenik

•  Reverse engineering, tooling – Serguei Roubtsov •  Tooling, case studies – Reinier Post •  Automotive software architecture – Yanja Dajsuren •  Evolution of models and meta-models – Josh Mengerink •  All of the above – Mark van den Brand