SlideShare a Scribd company logo
Rethinking Software EngineeringIan Sommerville
The Flash Crash
Rethinking Software Engineering
Large-scale complex IT systems
Complex software systemsMulti-purpose. Organisational systems that support different functions within an organisationSystem of systems. Usually distributed and normally constructed by integrating existing systems/components/servicesUnlimited. Not subject to limitations derived from the laws of physics (so, no natural constraints on their size)Data intensive. System data orders of magnitude larger than code; long-lifetime dataDynamic. Changing quickly in response to changes in the business environment
Coalitions of systemsOperational independence  Managerial independence  Multiple stakeholder viewpointsEvolutionary developmentEmergent behaviourGeographic distribution
Enterprise information systemsMulti-purpose.  Designed to cross-cut the organisationSystem of systems.  Integrate several systems, including legacy systemsUnlimited.Organisational code bases increasing in sizeData intensive.  Database centric systemsDynamic. Rapid business change
Complex system realitiesThere is no definitive specification of what the system should ‘do’ and it is practically impossible to create such a specificationThe complexity of the system is such that it is not ‘understandable’ as a wholeIt is likely that, at all times, some parts of the system will not be fully operationalActors responsible for different parts of the system are likely to have conflicting goals
There are fundamental reasons why current approaches to software engineering cannot scale to LSCITS engineering
Reductionism and software engineering
ReductionismReductionism “an approach to understanding the nature of complex things by reducing them to the interactions of their parts, or to simpler or more fundamental things”.Its focus is on the parts of a system, not the relationships between those partsReductionism underpins most engineering, including software engineeringSoftware engineeringDevelopments in software engineering have largely adopted a reductionist perspective:Design methodologiesFormal methodsAgile approachesSoftware architectureModel-driven engineeringProcess improvementReductionist approaches to software engineering have been successful in allowing us to construct larger software systems
Complex and complicated systemsReductionist approaches are intended to help deal with complicated systems.We are now building complex systems where is is impossible to acquire and maintain a complete understanding of the system. Elements are independently controlled and often have undocumented side-effects.
Reductionist assumptionsControlReductionist approaches assume that we have control over the organisation of the system. It is then possible to decompose the system into parts that can themselves be engineered using reductionist approachesA rational worldReductionist approaches assume that rationality will be the principal influence in decision makingDefinable problemsReductionist approaches assume that the problem can be defined and the system boundaries established
LSCITS realityReductionist assumptionsOwners of a system control its developmentDecisions made rationally, driven by technical criteriaDefinable problem and clear system boundariesRationalityProblemdefinitionControlWicked problem and constantly renegotiated system boundariesDecisions driven by political motivesNo single owner or controllerLSCITS reality
Reductionism and LSCITSReductionism works (to some extent) for systems that we can control – such as software productsBut, for LSCITS, reductionist assumptions are no longer trueIncremental improvements in software engineering are not enough to help us build complex systems of systems
Research challengesReductionism is essentially based around the notion of a closed systemThe focus in software engineering has been on ‘the software’Models and representationsVerification and validationMethods and techniquesBut LSCITS engineering is an open system problem – not just the software but the environments that affect that software’s acceptability and operation
Short and long-term researchLong-term researchWe need new inter-disciplinary approaches to LSCITS engineering which will involve developing completely new engineering paradigms that are not based on reductionismBut – how do we test and validate these approaches?Enlightened 20+ year funding is needed to develop these approachesShorter-term researchWe have to address some key problems and issues that limit the development of LSCITS as, for sure, these LSCITS are being and will be constructed
Broadening the perspectiveSOCIO-POLITICAL ENVIRONMENTLSCITSENGINEERINGSOFTWARE SYSTEMSOPERATIONAL ENVIRONMENT
Systems in operationHow can we model and simulate the interactions between independent systems?
How can we monitor coalitions of systems and what are the warning signs of problems?
How can systems be designed to recover from failure?
To what extent can coalitions of systems be self-managing?
How should shared knowledge in a coalition of systems be represented?The socio-political environmentHow can systems be designed to recover from failure?How can we integrate socio-technical factors into systems and software engineering methods?How can we manage complex, dynamically changing system configurations?How can we support the agile engineering of coalitions of systems?How should coalitions of systems be regulated and certified?How can we do ‘probabilistic verification’ of systems?
LSCITS EngDStudents have to work on an industrial problem and spend a significant period of time working in industry on that problem. Students take a range of courses that focus on complexity and systems engineering such as systems engineering for LSCITS, socio-technical systems, high-integrity systems engineering, empirical methods and technology innovation. Students don’t have to produce a conventional ‘thesis’ – a book on a single topic but can produce a portfolio of work around their selected area.
LSCITS Masters course?

More Related Content

PDF
Requirements Engineering(Why Requirements Engineering in System Engineering?)
PDF
TREA - transparent enterprise architecture
PPTX
Architecture business cycle ( abc )
PPTX
Abc cycle in sw architecture ashish
PDF
SECURE SERVICES: INTEGRATING SECURITY DIMENSION INTO THE SA&D
PPT
03 basic concepts
PDF
Systemic approach to the Business-IT alignment issue
PPTX
Use DevOps to Respond Faster to End Customers
Requirements Engineering(Why Requirements Engineering in System Engineering?)
TREA - transparent enterprise architecture
Architecture business cycle ( abc )
Abc cycle in sw architecture ashish
SECURE SERVICES: INTEGRATING SECURITY DIMENSION INTO THE SA&D
03 basic concepts
Systemic approach to the Business-IT alignment issue
Use DevOps to Respond Faster to End Customers

What's hot (14)

PPTX
Optimize Systems Management to Improve IT Resilience and Proactivity
PPT
Systems Perspective
PDF
Transparency for-results
PDF
Extreme Problems Challenge
PDF
Challenges of remote working in P3M – identifying, understanding and options ...
PPT
Creativity And Inovation
PPTX
System analysis 1
PPTX
L7 Design For Recovery
PPTX
PDF
Requirements Engineering for Sustainability - Open Lecture at LUT 2016
PPT
Intelligent Decision Support Systems
PPT
Lecture9 Systems The Systems Perspective Of A Dss
PDF
Architectural approaches for implementing Clinical Decision Support Systems i...
PDF
Process Intelligence and Predictive Analytics
Optimize Systems Management to Improve IT Resilience and Proactivity
Systems Perspective
Transparency for-results
Extreme Problems Challenge
Challenges of remote working in P3M – identifying, understanding and options ...
Creativity And Inovation
System analysis 1
L7 Design For Recovery
Requirements Engineering for Sustainability - Open Lecture at LUT 2016
Intelligent Decision Support Systems
Lecture9 Systems The Systems Perspective Of A Dss
Architectural approaches for implementing Clinical Decision Support Systems i...
Process Intelligence and Predictive Analytics
Ad

Similar to Rethinking Software Engineering (20)

PPTX
L6 LSCITS Engineering
PDF
LSCITS engineering
PPTX
LSCITS-engineering
PPTX
An introduction to LSCITS
PDF
IRJET- Scientific-Theoretical Basics of Software Engineering
PPTX
L2 Socio Tech Systems
DOCX
1. Emergence of Software EngineeringIn the software industry, we.docx
PDF
New Software Engineering Paradigm Based On Complexity Science An Introduction...
PDF
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
PDF
The future of software engineering: Visions of 2025 and beyond
PPTX
No silver bullet summary (paper)
PDF
ICSME 2019: Software Engineering Research: Beyond Impacting Practitioners
PPTX
L1 Intro To Lscits
PDF
history of software engineering .pdf
PPT
02 Why Software Engineering?
PPTX
software engineering history2.pptx
PPT
Lukito Edi Nugroho - Information System Engineering
PPTX
Week1.pptx
PPTX
Introduction Software Engineering Basics-Module(01).pptx
PDF
Brochure1501029
L6 LSCITS Engineering
LSCITS engineering
LSCITS-engineering
An introduction to LSCITS
IRJET- Scientific-Theoretical Basics of Software Engineering
L2 Socio Tech Systems
1. Emergence of Software EngineeringIn the software industry, we.docx
New Software Engineering Paradigm Based On Complexity Science An Introduction...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
The future of software engineering: Visions of 2025 and beyond
No silver bullet summary (paper)
ICSME 2019: Software Engineering Research: Beyond Impacting Practitioners
L1 Intro To Lscits
history of software engineering .pdf
02 Why Software Engineering?
software engineering history2.pptx
Lukito Edi Nugroho - Information System Engineering
Week1.pptx
Introduction Software Engineering Basics-Module(01).pptx
Brochure1501029
Ad

More from Ian Sommerville (20)

PPTX
Ultra Large Scale Systems
PPTX
Resp modellingintro
PPTX
Resilience and recovery
PPTX
Requirements reality
PPTX
Dependability requirements for LSCITS
PPTX
Conceptual systems design
PPTX
Requirements Engineering for LSCITS
PPTX
Internet worm-case-study
PPTX
Designing software for a million users
PPTX
Security case buffer overflow
PPTX
CS5032 Case study Ariane 5 launcher failure
PPTX
CS5032 Case study Kegworth air disaster
PPTX
CS5032 L19 cybersecurity 1
PPTX
CS5032 L20 cybersecurity 2
PPTX
L17 CS5032 critical infrastructure
PPTX
CS5032 Case study Maroochy water breach
PPTX
CS 5032 L18 Critical infrastructure 2: SCADA systems
PPTX
CS5032 L9 security engineering 1 2013
PPTX
CS5032 L10 security engineering 2 2013
PPTX
CS5032 L11 validation and reliability testing 2013
Ultra Large Scale Systems
Resp modellingintro
Resilience and recovery
Requirements reality
Dependability requirements for LSCITS
Conceptual systems design
Requirements Engineering for LSCITS
Internet worm-case-study
Designing software for a million users
Security case buffer overflow
CS5032 Case study Ariane 5 launcher failure
CS5032 Case study Kegworth air disaster
CS5032 L19 cybersecurity 1
CS5032 L20 cybersecurity 2
L17 CS5032 critical infrastructure
CS5032 Case study Maroochy water breach
CS 5032 L18 Critical infrastructure 2: SCADA systems
CS5032 L9 security engineering 1 2013
CS5032 L10 security engineering 2 2013
CS5032 L11 validation and reliability testing 2013

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Encapsulation theory and applications.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
KodekX | Application Modernization Development
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
cuic standard and advanced reporting.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
20250228 LYD VKU AI Blended-Learning.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KodekX | Application Modernization Development
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Building Integrated photovoltaic BIPV_UPV.pdf

Rethinking Software Engineering

  • 5. Complex software systemsMulti-purpose. Organisational systems that support different functions within an organisationSystem of systems. Usually distributed and normally constructed by integrating existing systems/components/servicesUnlimited. Not subject to limitations derived from the laws of physics (so, no natural constraints on their size)Data intensive. System data orders of magnitude larger than code; long-lifetime dataDynamic. Changing quickly in response to changes in the business environment
  • 6. Coalitions of systemsOperational independence Managerial independence Multiple stakeholder viewpointsEvolutionary developmentEmergent behaviourGeographic distribution
  • 7. Enterprise information systemsMulti-purpose. Designed to cross-cut the organisationSystem of systems. Integrate several systems, including legacy systemsUnlimited.Organisational code bases increasing in sizeData intensive. Database centric systemsDynamic. Rapid business change
  • 8. Complex system realitiesThere is no definitive specification of what the system should ‘do’ and it is practically impossible to create such a specificationThe complexity of the system is such that it is not ‘understandable’ as a wholeIt is likely that, at all times, some parts of the system will not be fully operationalActors responsible for different parts of the system are likely to have conflicting goals
  • 9. There are fundamental reasons why current approaches to software engineering cannot scale to LSCITS engineering
  • 11. ReductionismReductionism “an approach to understanding the nature of complex things by reducing them to the interactions of their parts, or to simpler or more fundamental things”.Its focus is on the parts of a system, not the relationships between those partsReductionism underpins most engineering, including software engineeringSoftware engineeringDevelopments in software engineering have largely adopted a reductionist perspective:Design methodologiesFormal methodsAgile approachesSoftware architectureModel-driven engineeringProcess improvementReductionist approaches to software engineering have been successful in allowing us to construct larger software systems
  • 12. Complex and complicated systemsReductionist approaches are intended to help deal with complicated systems.We are now building complex systems where is is impossible to acquire and maintain a complete understanding of the system. Elements are independently controlled and often have undocumented side-effects.
  • 13. Reductionist assumptionsControlReductionist approaches assume that we have control over the organisation of the system. It is then possible to decompose the system into parts that can themselves be engineered using reductionist approachesA rational worldReductionist approaches assume that rationality will be the principal influence in decision makingDefinable problemsReductionist approaches assume that the problem can be defined and the system boundaries established
  • 14. LSCITS realityReductionist assumptionsOwners of a system control its developmentDecisions made rationally, driven by technical criteriaDefinable problem and clear system boundariesRationalityProblemdefinitionControlWicked problem and constantly renegotiated system boundariesDecisions driven by political motivesNo single owner or controllerLSCITS reality
  • 15. Reductionism and LSCITSReductionism works (to some extent) for systems that we can control – such as software productsBut, for LSCITS, reductionist assumptions are no longer trueIncremental improvements in software engineering are not enough to help us build complex systems of systems
  • 16. Research challengesReductionism is essentially based around the notion of a closed systemThe focus in software engineering has been on ‘the software’Models and representationsVerification and validationMethods and techniquesBut LSCITS engineering is an open system problem – not just the software but the environments that affect that software’s acceptability and operation
  • 17. Short and long-term researchLong-term researchWe need new inter-disciplinary approaches to LSCITS engineering which will involve developing completely new engineering paradigms that are not based on reductionismBut – how do we test and validate these approaches?Enlightened 20+ year funding is needed to develop these approachesShorter-term researchWe have to address some key problems and issues that limit the development of LSCITS as, for sure, these LSCITS are being and will be constructed
  • 18. Broadening the perspectiveSOCIO-POLITICAL ENVIRONMENTLSCITSENGINEERINGSOFTWARE SYSTEMSOPERATIONAL ENVIRONMENT
  • 19. Systems in operationHow can we model and simulate the interactions between independent systems?
  • 20. How can we monitor coalitions of systems and what are the warning signs of problems?
  • 21. How can systems be designed to recover from failure?
  • 22. To what extent can coalitions of systems be self-managing?
  • 23. How should shared knowledge in a coalition of systems be represented?The socio-political environmentHow can systems be designed to recover from failure?How can we integrate socio-technical factors into systems and software engineering methods?How can we manage complex, dynamically changing system configurations?How can we support the agile engineering of coalitions of systems?How should coalitions of systems be regulated and certified?How can we do ‘probabilistic verification’ of systems?
  • 24. LSCITS EngDStudents have to work on an industrial problem and spend a significant period of time working in industry on that problem. Students take a range of courses that focus on complexity and systems engineering such as systems engineering for LSCITS, socio-technical systems, high-integrity systems engineering, empirical methods and technology innovation. Students don’t have to produce a conventional ‘thesis’ – a book on a single topic but can produce a portfolio of work around their selected area.
  • 26. ConclusionCurrent software engineering methods and techniques are effective in building closed systems (such as software products)But they cannot cope with LSCITS – where we need to consider not just the software but its development and operational environmentSoftware engineering has to change to embrace the wider reality of LSCITS engineeringFailure to do so will put our society at risk as complex software becomes embedded in all aspects of our lives