Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP-18035-2003 New Topics for Software Evolution Miloš Radovanović.

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Professor John Hosking, Dean of Engineering and Computer Science Models, Modelling, MBSE.
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
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.
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.
Software Construction and Evolution - CSSE 375 Software Visualization Tools and Software Evolution Shawn and Steve.
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
1 The Laws of Software Evolution Tori Bowman CSSE 375, Rose-Hulman September 25, 2007 *based on Don Bagert’s lesson.
Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP Developing New Material for the Software Evolution.
Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP Module SE-C-01 Requirements Engineering Experiences.
1 Software Maintenance and Evolution CSSE 575: Session 9, Part 1 Software Evolution and Visualizing That! Steve Chenoweth Office Phone: (812)
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Introduction to Software Evolution and Maintenance
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Lecturer: Dr. AJ Bieszczad Chapter Lehman’s system types S-system: formally defined, derivable from a specification P-system: requirements based.
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
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.
Software evolution.
Software evolution.
A short report on Tempus project Zoran Budimac. Reminder “Joint MSc Curriculum in Software Engineering”. On September 1, started the last year of the.
Advanced Topics in Software Engineering ATSE 2009 Topics, participants and results Gordana Rakic, Zoran Budimac.
Unit Testing CS 414 – Software Engineering I Don Bagert Rose-Hulman Institute of Technology January 16, 2003.
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Semantic Web Technologies Lecture # 2 Faculty of Computer Science, IBA.
On Roles of Models in Information Systems (Arne Sølvberg) Gustavo Carvalho 26 de Agosto de 2010.
Software Metrics *** state of the art, weak points and possible improvements Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics, Faculty.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Maintainability of FLOSS Projects
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Content The system development life cycle
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved COS240 O-O Languages AUBG,
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Deriving Operational Software Specification from System Goals Xin Bai EEL 5881 Course Fall, 2003.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
Evolution in Open Source Software (OSS) SEVO seminar at Simula, 16 March 2006 Software Engineering (SU) group Reidar Conradi, Andreas Røsdal, Jingyue Li.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Migrating Embedded Systems from Assembler to C Using the Fermat Transformation System.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
CS223: Software Engineering Lecture 32: Software Maintenance.
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
Exploring Software Evolution Using Spectrographs Jingwei Wu, Richard C. Holt, Ahmed Hassan School of Computer Science University of Waterloo Waterloo ON.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Overview Software Maintenance and Evolution Definitions
Software Metrics 1.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
1.1.1 Software Evolution.
Chapter 27 Software Change.
PPT11: System maintenance
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Introduction Software maintenance:
Presentation transcript:

Supported by: Joint MSc curriculum in software engineering European Union TEMPUS Project CD_JEP New Topics for Software Evolution Miloš Radovanović and Zoran Budimac

SE-O-01 – Software Evolution 2 Current Course Structure  Topic 1: Software Evolution  Topic 2: Program Comprehension  Topic 3: Transformation Theory  Topic 4: Abstraction  Topic 5: Slicing  Topic 6: Wrapping  Topic 7: Assembler Migration

SE-O-01 – Software Evolution 3 Current Course Structure: The Focus  The course is focused on Techniques for  Program comprehension  Reengineering Particularly the reverse engineering step The approach using formal transformations, FermaT and FME tools

SE-O-01 – Software Evolution 4 A More Detailed Look  Topic 1: Software Evolution (Introductiory) Motivation Definitions, taxonomy Lehman's laws of evolution, Parnas briefly Lifecycles (software process)  Topic 2: Program Comprehension (Introductiory) Several simple illustrative examples Short introduction to techniques: abstraction, slicing Introduction to tools: FermaT, FME Motivatory introduction to software metrics Flowcharts  Topic 3: Transformation Theory Motivation: retargetting, porting, migration WSL language, semantics Weakest preconditions Denotational semantics Proving the correctness of program transformations

SE-O-01 – Software Evolution 5 A More Detailed Look  Topic 4: Abstraction Type 1: Abstraction as the opposite of refinement Type 2: Replacing program parts with higher level operations Type 3: Translation of data The use of software metrics Examples  Topic 5: Slicing Motivation: program comprehension, abstraction FermaT slicers: simple, syntactic, semantic Examples  Topic 6: Wrapping Java application project: wrapping compilers for SvetoVid  Topic 7: Assembler Migration Application project: a translator from a subset of x86 assembler to WSL

SE-O-01 – Software Evolution 6 Current State of Material  Topic 1: Software Evolution Slides (in progress)  Topic 2: Program Comprehension Slides with examples (usable)  Topic 3: Transformation Theory Slides (usable)  Topic 4: Abstraction Slides with examples (in progress)  Topic 5: Slicing Slides with examples (usable)  Topic 6: Wrapping Application project (in progress)  Topic 7: Assembler Migration Application project with seminar paper

SE-O-01 – Software Evolution 7 Current and Future Goals  Complete “in progress” topics  Because of their importance, devote a separate topic to software metrics  Extend material with topics not strictly related to reverse engineering or formal methods, but still relevant to software evolution Seamlessy integrate with existing material, possibly allowing “optional topics”

SE-O-01 – Software Evolution 8 New Material  Topic: Software Metrics Slides with examples (usable)  Topic: Open Source Software Evolution Slides (usable)  Topic: Refactoring Slides with examples (in progress)

SE-O-01 – Software Evolution 9 Topic: Software Metrics  Software metrics are (to be) referred to from almost all other topics, thus we felt they deserve a topic on their own  Important for topics: Program Comprehension Abstraction Slicing Assembler Mirgation Open Source Software Evolution Refactoring  Current slides are usable, but may be changed as the needs of other topics dictate

SE-O-01 – Software Evolution 10 Topic: Software Metrics  Contents: LOC Metrics Function Points Cyclomatic Complexity Information Flow Halstead’s Metrics OO Metrics (CK & MOOD) Software Package Metrics

SE-O-01 – Software Evolution 11 Topic: Open Source Software Evolution  Suitable for an end discussion, as it challenges many established views, i.e., Lehman’s Laws (the ones in bold): Law 1: Continuing change Law 2: Increasing complexity Law 3: Self regulation Law 4: Conservation of organizational stability (invariant work rate) Law 5: Conservation of familiarity Law 6: Continuing growth Law 7: Declining quality Law 8: Feedback system

SE-O-01 – Software Evolution 12 Topic: Open Source Software Evolution  Observations: When Lehman’s laws were proposed  Most of the systems were developed in-house by a dedicated group of engineers  Hierarchical management control  Waterfall-like process Laws are difficult to test empirically, since they are informal statements Growth patterns of OSS less regular than those of proprietary systems OSS evolutionary trends more difficult to predict Discontinuity in OSS evolution

SE-O-01 – Software Evolution 13 Illustration: Change in OSS  Wu (2006) analyzed 3 OSS, incl. Linux  Evolution spectrograph visualization technique x-axis: time y-axis: files ordered by creation date Horizontal lines follow a property (e.g. no. of dependencies)  Property change – darker color Emergent vertical lines indicate major changes in the system  Change in OSS is segmented

SE-O-01 – Software Evolution 14 Outgoing dependency change

SE-O-01 – Software Evolution 15 Summary  Software Evolution is a vibrant field, with regularly emerging new topics  Besides OSS Evolution and Refactoring, other possible topics include: Clone detection Fault detection Architecture evolution Managerial aspects …  We will focus our efforts on topics which enable active participation of students, and provide usable practical knowledge