1 Evolution: a Grand Challenge Pennine Forum September 2004 Keith Bennett School of Engineering, Durham

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Conference xxx - August 2003 Fabrizio Gagliardi EDG Project Leader and EGEE designated Project Director Position paper Delivery of industrial-strength.
Lecture 5: Requirements Engineering
Sixteen Questions About Software Reuse William B. Frakes and Christopher J. Fox Communications of the ACM.
Chapter 4 Design Approaches and Methods
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
1 Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) Cell: (937)
Software Evolution Managing the processes of software system change
System Design and Analysis
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Design, Implementation and Maintenance
Chapter 9 – Software Evolution and Maintenance
CS4/542- Software Engineering  Software Design and Development  Required Text -- Code Complete by Steve McConnell  (Focuses on the problems of designing.
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
Introduction to Information System Development.
Introduction to Systems Analysis and Design Trisha Cummings.
Foundation Degree IT Project Methodologies (for reference)
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Sarah Drummond Dept. Computer Science University of Durham, UK MSc Research An Investigation into Computer Support for Cooperative Work in Software Engineering.
Human Resource Management Lecture 27 MGT 350. Last Lecture What is change. why do we require change. You have to be comfortable with the change before.
Software Engineering Lecture 20 Software Maintenance.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
© S. Demeyer, S. Ducasse, O. Nierstrasz Intro.1 1. Introduction Goals Why Reengineering ?  Lehman's Laws  Object-Oriented Legacy Typical Problems  common.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Activities covered by project management Feasibility study Is project technically feasible and worthwhile from a business point of view? Planning Only.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
The roots of innovation Future and Emerging Technologies (FET) Future and Emerging Technologies (FET) The roots of innovation Proactive initiative on:
1 Introduction to Software Engineering Lecture 1.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Software Maintenance Hiren Variava SE682 4/26/04.
Formal Methods in Software Engineering
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
1 SWE 513: Software Engineering People II. 2 Future Experience What will you be doing one year from now? Ten years from now?
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
Sixteen Questions About Software Reuse William B. Frakes and Christopher J. Fox Communications of the ACM.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Aspect Oriented Security Tim Hollebeek, Ph.D.
Petter Nielsen Information Systems/IFI/UiO 1 Systems development Methodologies IN364.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CERN IT Department CH-1211 Genève 23 Switzerland t Migration from ELFMs to Agile Infrastructure CERN, IT Department.
Building the TERENA Greenhouse TERENA TTC Amsterdam, Netherlands 19 th September 2013 Nicole Harris PDO
Introduction to System Analysis and Design MADE BY: SIR NASEEM AHMED KHAN DOW VOCATIONAL & TECHNICAL TRAINING CENTRE.
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
The information systems lifecycle Far more boring than you ever dreamed possible!
.  Evaluators are not only faced with methodological challenges but also ethical challenges on a daily basis.
A service Oriented Architecture & Web Service Technology.
MANAGEMENT INFORMATION SYSTEM
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 18 Maintaining Information Systems
Software Life Cycle “What happens in the ‘life’ of software”
Systems Analysis and Design
Software Engineering (CSI 321)
Project Plan Template (Help text appears in cursive on slides and in the notes field)
Foundation Degree IT Project
Chapter 9 – Software Evolution and Maintenance
CS385T Software Engineering Dr.Doaa Sami
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Re- engineeniering.
Presentation transcript:

1 Evolution: a Grand Challenge Pennine Forum September 2004 Keith Bennett School of Engineering, Durham

2 Contents What is the Grand Challenge programme? Evolution: the problem space Evolution: the solution space Discussion Next steps

3 The Grand Challenge in Computing ges/ ges/ Tony Hoare proposed the idea of identifying grand challenges in computing, to focus the community, to address important long term problems, and to influence bodies like EPSRC Currently some 6 areas – Pennine is involved in GC6 “Strong Software Engineering”, with a focus on software evolution. Our motto “right first time, every time”

4

5 Where are we? Several workshops (KHB, DB) Workshop next week (OPB, NEG) Steering committee Politics

6 Problem domain It is still the case that evolution as a problem is not well understood

7 Problem 1 Software maintenance/evolution is not just “one activity”, (post initial implementation). As software ages, it goes through a number of irreversible stages: Strategic change Servicing Phase out Close down

8 Problem 2 There is very little evidence-based analysis of evolution methods, processes and tools. Coupled with lack of theory, there is very little objective understanding (that’s not to say maintenance isn’t done well; some organisations such as IBM have super mature processes)

9 Problem 3 Over the lifetime of much software, all lifecycle products evolve, not just the code. So we must sustain requirements, design, test suites, configuration, general documentation etc. in synchronism. It is not just code: data evolves too, and meta data and semantics.

10 Problem 4 Over the lifecycle, the context changes: staff education, the technology, trust, legal aspects, performance, acceptable behaviours, user expectation etc. The domain evolves. Lifecycle processes evolve. In a modern distributed system, components will be drawn from software with a great variety of age.

11 Problem 5 Over the lifecycle, human domain expertise leaks away (retirement, promotion etc.)

12 Problem 6 For much evolution, the software will be required to change in ways inconceivable to the original designers.

13 Summary Even with experienced software engineers, the problems of evolution are not fully appreciated. I think there is actually a deep understanding now – the issue is that we do not understand the solution space!! It’s a wicked problem at its most general

14 Solution space Strategy: To partition the solution space into a spectrum of difficulty Need: a coherent framework for evidence- based analysis of results. Without this, how can we judge when we are successful? Read alongside the criteria for a grand challenge

15 Solution 0 Design software systems to be flexible and easy to change from the outset. Almost certainly, this will involve getting rid of early binding in of design decisions. What level of granularity are the components? This sounds great, but in fact we know very little, and we are unsure even how to partition the solution space or give criteria for success (so we know when we have an answer)

16 Solution 1 Anticipate change at requirements capture time. Future changes can then be provided for by parameterisation, inheritance etc. This is low cost (and the cost can often be estimated during requirements).

17 Solution 2 Apply a delta. If a system is well defined (even, formally defined), we can think of techniques which will ripple through changes. We make lots of assumptions e.g that only one technology is used, that staff are au fait with it. There are probably a number of approaches

18 Solution 3 Maybe we can identify some standard problems using open source, for researchers to try their solution on. (Benchmarks).

19 Solution 4 Determine processes and maturity models which lead to successful evolution.

20 Solution n Coping with old legacy software, in obsolete technology, with poorly qualified staff, with poor cost models. I personally don’t think that reverse engineering helps. I can see that converting old legacy code into a modern language may help, as may coding tidying. But we ask business to invest in a very expensive, error prone task with no defined benefits.

21 Next steps Sheffield workshop on SE GC workshop on SE (solutions not problems) I would like to put lots of input to GC; but actually, I think it needs (i) more thought and (ii) more community agreement first.

22 Discussion The problem lies in the solution space for evolution –How do we formulate evidence –How do we identify a spectrum of solutions –How do we build new software which is flexible? –How do we use an open source repository as a test for the community