SlideShare a Scribd company logo
1 of 38
University of St Andrews
                                             School of Computer Science




Software Complexity
   CS5031 - Advanced Software Engineering 2010/11




                  James Smith
             jws7@cs.st-andrews.ac.uk


                                                       1
University of St Andrews
                                     School of Computer Science


            Why complexity?
• Software Engineers
   • build systems


• Sometimes there are problems...


• And graduates are not sensitised
  to the issues...




                                               2
University of St Andrews
                  School of Computer Science


Greenfield development




                            3
University of St Andrews
                  School of Computer Science


Real world: Brownfield




                            4
University of St Andrews
                                                   School of Computer Science


        Enterprise is changing
• Dr Alan Brown (IBM)

  – “IBM spent most of their time trying to understand legacy
    systems”

  – Coding is outsourced
    • Separated. How do you integrate?


  – We have 20k contractors but we think we’re getting 3k people’s
    work.


                                                             5
University of St Andrews
                                             School of Computer Science


          Thoughts on failure
• The world economy is losing over six trillion USD per year
  to IT failures and the problem is getting worse.



• Software Engineers need to learn to fail
    - the solution?




                                                       6
University of St Andrews
School of Computer Science




          7
University of St Andrews
         School of Computer Science


LSCITS




                   8
University of St Andrews
                                                      School of Computer Science


                           LSCITS
• Large Scale Complex IT systems
   • I am part of this group


• Led by Prof Dave Cliff (Bristol), Prof Ian Sommerville (St.
  Andrews) and others


• £5m Research proposal


• Emerged after Department of Trade and Industry report
 “Complexity and Emergent Behaviour in ICT Systems”
                                                                9
University of St Andrews
                                            School of Computer Science


                          ITS
• Information Technology Systems
• Or ICT?
    • Communications technology is heavily
• So much of our lives is dominated by ICT. We are in fact
  living in Information Systems.
• ITS in LSCITS covers all of this.




                                                      10
University of St Andrews
                                           School of Computer Science


                    Complex
• Complex Adaptive Systems
• Dominated by emergent behaviour
• Conventionally engineered systems can also be complex
    • functional and non functional behaviour cannot be
      predicted
• likely when we create systems integrating different parts
  (of other systems) which are independently developed and
  managed
• impossible to predict how the characteristics of one
  system will interfere with the characteristics of others
                                                     11
University of St Andrews
                                            School of Computer Science


                  Large Scale
• Not dependent on physical size of spatial dispersion


• Rather the number of components or interactions


     • Birthday Paradox




                                                      12
University of St Andrews
School of Computer Science




          13
University of St Andrews
                        School of Computer Science


      Complex & Complicated
• are not the same...




                                  14
University of St Andrews
                                             School of Computer Science


                 Complicated
• Difficult for a human to understand
• A system which can be understood in theory, but in
  practice rarely is
• May be due to simply the sheer number of components or
  interactions.




• Is this true? - Maybe that there is no difference between a
  complicated system and a complex one.
                                                       15
University of St Andrews
                                          School of Computer Science


 Inherently Complex Systems
• Cannot deduce behaviour from examination of their
  components
• Cannot predict the consequences of changes to these
  systems
• Behaviour and properties are non-deterministic




                                                    16
University of St Andrews
                                             School of Computer Science


Inherently Complex Systems (2)
Inherent complexity stems from dynamic, dependent
relationships between parts of the system
    - relationships evolve in time and according to stimuli
from the system environment
    - new relationships may be created & existing
relationships may change
    - deterministic modelling techniques cannot be used to
make predictions about such systems



                                                       17
University of St Andrews
                                             School of Computer Science


            Adaptive Systems
• Inherent complexity in situations where we have adaptive
  systems
  – dynamic dependencies
  – we cannot have enough knowledge about the system to make
    accurate predications of its behaviour
  – at best we can be probabilistic




                                                       18
University of St Andrews
                                                     School of Computer Science


              Automated Agents
• If we have automated agents
  – i.e. automated traders
    • thousands of operations per seconds
    • linked through unit prices
    • cannot predict behaviour
    • other factors effect prices
    • we have no idea how the agents will interact




                                                               19
University of St Andrews
              School of Computer Science


The Flash Crash




                        20
University of St Andrews
                                                School of Computer Science


              What happened?
• On the 6th of May 2010 at 2.45pm the Dow Jones Market
  plundged over 900 points...


• Traders were selling the shirt of their backs to cut their
  losses...


• Chaos reigned




                                                          21
University of St Andrews
                                                  School of Computer Science


           What happened? (2)
• Within minutes... it recovered

  – It was the second largest point swing (1,010.14 points) and the
    biggest one day decline (998.5) in Dow Jones history


• In 5 minutes billions of dollars were wiped of the face of
  the earth and then found again...


• Why?


                                                            22
University of St Andrews
                                                   School of Computer Science


                           Why?
• A trader initiated a sell program to sell 75,000 contracts...
  – an unusually large number at a volatile time in the market


• High Frequency Traders (HTF) also started aggressively
  selling...


• No buyers... so they kept selling to each other...
• “Hot-potato” effect.
  – Between 2:45:13 and 2:45:27 HTFs traded 27,000 contracts
    49% of the trading traffic

                                                             23
University of St Andrews
                                           School of Computer Science


                   Solution?


• “The rout continued until an automatic stabilizer on the
  futures exchange cut in and paused trading for five
  seconds, after which the markets recovered."




                                                     24
University of St Andrews
                                                  School of Computer Science


                       Lessons
• When you have a large number of dynamic, dependent
  relationships
  – You can’t predict what’s going to happen
  – Incredibly hard to engineer dependable systems of this type



• This is the challenge facing Software Engineers in today’s
  world.




                                                            25
University of St Andrews
                                                   School of Computer Science


                     An analogy

• Complexity is analogous to heat and simplicity is
  analogous to cold

  – There is no such thing as cold, just absence of heat.
  – That is why we have absolute zero - no heat left
  – But no absolute heat - things can always get hotter




                                                             26
University of St Andrews
                                               School of Computer Science


                     Simplicity

• So we can never add simplicity, only remove complexity


• required functionality places a lower limit on the
  complexity required.


• Walking is simpler than a rocket ship… but doesn't solve
  the same problem



                                                         27
University of St Andrews
                                                   School of Computer Science


         Removing complexity
• So the idea is to remove unnecessary complexity


• Some complexity that is required does not excuse the
  surfeit of complexity currently in IT systems.
  – but does this imply the ability to measure complexity?
  – how do we prove that we have removed complexity?




                                                             28
University of St Andrews
                                               School of Computer Science


              Adding people...

• If you consider people to be part of the system
  – then you have dynamic, dependent relationships between
    components


• so are all large, socio-technical systems complex
  systems?


• We would argue that they are...


                                                         29
University of St Andrews
                                              School of Computer Science


         Epistemic Complexity
• (Epistemic: of or relating to knowledge and its validation)
• relates to the predictability of system properties when
  changes are proposed
• if you don't have enough knowledge of the system and its
  components - you cannot make predictions about it
• even if the system does NOT have dynamic, dependent
  relationships between components
• therefore large complicated systems are also complex
  systems when it is practically impossible to aquire the
  necessary knowledge

                                                        30
University of St Andrews
                                            School of Computer Science


             System observer
• Complexity is not only a property of a system but also of
  the system observer.
• If an expert has a knowledge of a system and can reliably
  make changes
• but cannot articulate his knowledge
• then if he leaves, his replacement may never be able to
  accrue the same level of understanding
• therfore a complicated system becomes a complex one



                                                      31
University of St Andrews
                                                   School of Computer Science


  Recap: Types of Complexity
• Adaptive Systems
  – systems of systems where behaviour cannot be predicted


• Socio-technical systems
  – people form dynamic, dependent relationships


• Complicated systems
  – Epistemic complexity
  – Observer knowledge



                                                             32
University of St Andrews
                                             School of Computer Science


                    Combat plan
• So how do we combat these?


• Really an open ended method


• For example, formal methods really don't help with
  dynamic dependancies


• Epistemic complexity may allow us to state 'truths' about
  the system.
  – filling in our knowledge
                                                       33
University of St Andrews
                                            School of Computer Science


    Understand relationships
• Better understanding of dynamic, dependent relationships
  may also be useful in helping manage complexity


• This means that Socio-technical analysis is required
  – Organisational analysis
  – Stakeholders


• May be able to change these relationships from dynamic
  to static
  – and therefore reduce complexity

                                                      34
University of St Andrews
                                             School of Computer Science


                   but really...
• Graduates in Software Engineering will rarely face these
  problems during their studies


• So be aware, be sensitised to the issues


• You WILL come across them in industry


• Be ready for your Kobayashi Maru...



                                                       35
University of St Andrews
                                             School of Computer Science


                   but really...
• Graduates in Software Engineering will rarely face these
  problems during their studies


• So be aware, be sensitised to the issues


• You WILL come across them in industry


• Be ready for your Kobayashi Maru...

                                             but don’t cheat!

                                                       36
University of St Andrews
                 School of Computer Science




over to you...




                           37
University of St Andrews
                                             School of Computer Science


                       Credits
• Slides by me - email jws7@cs.st-andrews.ac.uk for a
  copy.s


• Images from Google Image Search.


• To learn more on LSCITS visit http://www.lscits.org


• Recommended reading:
  – Clay Shirky: Here Comes Everybody


                                                       38

More Related Content

What's hot

Identifying classes and objects ooad
Identifying classes and objects ooadIdentifying classes and objects ooad
Identifying classes and objects ooadMelba Rosalind
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringMeghaj Mallick
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSMikel Raj
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewRajiv Kumar
 
Object and class relationships
Object and class relationshipsObject and class relationships
Object and class relationshipsPooja mittal
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
Characteristics of OOPS
Characteristics of OOPS Characteristics of OOPS
Characteristics of OOPS abhishek kumar
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Need of object oriented programming
Need of object oriented programmingNeed of object oriented programming
Need of object oriented programmingAmar Jukuntla
 
Implementation levels of virtualization
Implementation levels of virtualizationImplementation levels of virtualization
Implementation levels of virtualizationGokulnath S
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)IIUI
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed SystemsRupsee
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
 

What's hot (20)

Ooad unit – 1 introduction
Ooad unit – 1 introductionOoad unit – 1 introduction
Ooad unit – 1 introduction
 
Identifying classes and objects ooad
Identifying classes and objects ooadIdentifying classes and objects ooad
Identifying classes and objects ooad
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software Engineering
 
OOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMSOOAD UNIT I UML DIAGRAMS
OOAD UNIT I UML DIAGRAMS
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief Overview
 
UML
UMLUML
UML
 
Object and class relationships
Object and class relationshipsObject and class relationships
Object and class relationships
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
Class diagrams
Class diagramsClass diagrams
Class diagrams
 
Characteristics of OOPS
Characteristics of OOPS Characteristics of OOPS
Characteristics of OOPS
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Abstraction
AbstractionAbstraction
Abstraction
 
Need of object oriented programming
Need of object oriented programmingNeed of object oriented programming
Need of object oriented programming
 
Implementation levels of virtualization
Implementation levels of virtualizationImplementation levels of virtualization
Implementation levels of virtualization
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed Systems
 
Ooad
OoadOoad
Ooad
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Software process
Software processSoftware process
Software process
 

Viewers also liked

Comparing Apples to Apples - A technique to normalize software complexity and...
Comparing Apples to Apples - A technique to normalize software complexity and...Comparing Apples to Apples - A technique to normalize software complexity and...
Comparing Apples to Apples - A technique to normalize software complexity and...Fernando Ostanelli
 
Essential and Incidental Complexity of Software
Essential and Incidental Complexity of SoftwareEssential and Incidental Complexity of Software
Essential and Incidental Complexity of SoftwareSaleem Siddiqui
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Designlbergmans
 
205515 15 ec79_gjxs_memorice ultima
205515 15 ec79_gjxs_memorice ultima205515 15 ec79_gjxs_memorice ultima
205515 15 ec79_gjxs_memorice ultimayasnacs
 
Organized and disorganized complexity
Organized and disorganized complexityOrganized and disorganized complexity
Organized and disorganized complexityVostrikov Arkady
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages PraShant Kumar
 
From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...Andrea Tomasini
 
Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Md Hossen
 
Impact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewImpact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewAnh Nguyen Duc
 

Viewers also liked (10)

Comparing Apples to Apples - A technique to normalize software complexity and...
Comparing Apples to Apples - A technique to normalize software complexity and...Comparing Apples to Apples - A technique to normalize software complexity and...
Comparing Apples to Apples - A technique to normalize software complexity and...
 
Essential and Incidental Complexity of Software
Essential and Incidental Complexity of SoftwareEssential and Incidental Complexity of Software
Essential and Incidental Complexity of Software
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Design
 
205515 15 ec79_gjxs_memorice ultima
205515 15 ec79_gjxs_memorice ultima205515 15 ec79_gjxs_memorice ultima
205515 15 ec79_gjxs_memorice ultima
 
Organized and disorganized complexity
Organized and disorganized complexityOrganized and disorganized complexity
Organized and disorganized complexity
 
Interpreted and compiled language
Interpreted and compiled languageInterpreted and compiled language
Interpreted and compiled language
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
 
From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...From a Product Vision to a running software... and back again, and agile coac...
From a Product Vision to a running software... and back again, and agile coac...
 
Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.
 
Impact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewImpact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic review
 

Similar to Software complexity

Christoph Barrett - Policy Informatics at Societal Scale
Christoph Barrett - Policy Informatics at Societal ScaleChristoph Barrett - Policy Informatics at Societal Scale
Christoph Barrett - Policy Informatics at Societal ScaleGlobal Risk Forum GRFDavos
 
ESCO: Fifty Shades of Grey
ESCO: Fifty Shades of GreyESCO: Fifty Shades of Grey
ESCO: Fifty Shades of GreyIan Phillips
 
foedumed:Educational Informatics 39-16
foedumed:Educational Informatics 39-16 foedumed:Educational Informatics 39-16
foedumed:Educational Informatics 39-16 Muhammad Ali
 
foedumed: Educational informatics, 39-16
foedumed: Educational informatics, 39-16foedumed: Educational informatics, 39-16
foedumed: Educational informatics, 39-16Maliha Ghazal
 
Icse 2013-tutorial-data-science-for-software-engineering
Icse 2013-tutorial-data-science-for-software-engineeringIcse 2013-tutorial-data-science-for-software-engineering
Icse 2013-tutorial-data-science-for-software-engineeringCS, NcState
 
Dm sei-tutorial-v7
Dm sei-tutorial-v7Dm sei-tutorial-v7
Dm sei-tutorial-v7CS, NcState
 
Career introduction of Engineering Student SSVIT rizwan
Career introduction of Engineering Student SSVIT rizwanCareer introduction of Engineering Student SSVIT rizwan
Career introduction of Engineering Student SSVIT rizwanRizwan Khan
 
Computers and People
Computers and PeopleComputers and People
Computers and Peoplehaochuan
 
Trustworthy Computational Science: A Multi-decade Perspective
Trustworthy Computational Science: A Multi-decade PerspectiveTrustworthy Computational Science: A Multi-decade Perspective
Trustworthy Computational Science: A Multi-decade PerspectiveVon Welch
 
An introduction to LSCITS
An introduction to LSCITSAn introduction to LSCITS
An introduction to LSCITSIan Sommerville
 
The Modern Columbian Exchange: Biovision 2012 Presentation
The Modern Columbian Exchange: Biovision 2012 PresentationThe Modern Columbian Exchange: Biovision 2012 Presentation
The Modern Columbian Exchange: Biovision 2012 PresentationMerck
 
Ultra Large Scale Systems
Ultra Large Scale SystemsUltra Large Scale Systems
Ultra Large Scale SystemsIan Sommerville
 

Similar to Software complexity (20)

Energy Aware Clouds
Energy Aware CloudsEnergy Aware Clouds
Energy Aware Clouds
 
CloudMonitor: Energy Aware Clouds
CloudMonitor: Energy Aware CloudsCloudMonitor: Energy Aware Clouds
CloudMonitor: Energy Aware Clouds
 
Christoph Barrett - Policy Informatics at Societal Scale
Christoph Barrett - Policy Informatics at Societal ScaleChristoph Barrett - Policy Informatics at Societal Scale
Christoph Barrett - Policy Informatics at Societal Scale
 
Reading partymay2010
Reading partymay2010Reading partymay2010
Reading partymay2010
 
Pervasive Computing
Pervasive ComputingPervasive Computing
Pervasive Computing
 
Cloud pres3
Cloud pres3Cloud pres3
Cloud pres3
 
LSCITS engineering
LSCITS engineeringLSCITS engineering
LSCITS engineering
 
ESCO: Fifty Shades of Grey
ESCO: Fifty Shades of GreyESCO: Fifty Shades of Grey
ESCO: Fifty Shades of Grey
 
foedumed:Educational Informatics 39-16
foedumed:Educational Informatics 39-16 foedumed:Educational Informatics 39-16
foedumed:Educational Informatics 39-16
 
foedumed: Educational informatics, 39-16
foedumed: Educational informatics, 39-16foedumed: Educational informatics, 39-16
foedumed: Educational informatics, 39-16
 
LSCITS-engineering
LSCITS-engineeringLSCITS-engineering
LSCITS-engineering
 
Icse 2013-tutorial-data-science-for-software-engineering
Icse 2013-tutorial-data-science-for-software-engineeringIcse 2013-tutorial-data-science-for-software-engineering
Icse 2013-tutorial-data-science-for-software-engineering
 
Dm sei-tutorial-v7
Dm sei-tutorial-v7Dm sei-tutorial-v7
Dm sei-tutorial-v7
 
Career introduction of Engineering Student SSVIT rizwan
Career introduction of Engineering Student SSVIT rizwanCareer introduction of Engineering Student SSVIT rizwan
Career introduction of Engineering Student SSVIT rizwan
 
Computers and People
Computers and PeopleComputers and People
Computers and People
 
Trustworthy Computational Science: A Multi-decade Perspective
Trustworthy Computational Science: A Multi-decade PerspectiveTrustworthy Computational Science: A Multi-decade Perspective
Trustworthy Computational Science: A Multi-decade Perspective
 
An introduction to LSCITS
An introduction to LSCITSAn introduction to LSCITS
An introduction to LSCITS
 
ESSENTIAL of (CS/IT/IS) class 02 (HCI)
ESSENTIAL of (CS/IT/IS) class 02 (HCI)ESSENTIAL of (CS/IT/IS) class 02 (HCI)
ESSENTIAL of (CS/IT/IS) class 02 (HCI)
 
The Modern Columbian Exchange: Biovision 2012 Presentation
The Modern Columbian Exchange: Biovision 2012 PresentationThe Modern Columbian Exchange: Biovision 2012 Presentation
The Modern Columbian Exchange: Biovision 2012 Presentation
 
Ultra Large Scale Systems
Ultra Large Scale SystemsUltra Large Scale Systems
Ultra Large Scale Systems
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Software complexity

  • 1. University of St Andrews School of Computer Science Software Complexity CS5031 - Advanced Software Engineering 2010/11 James Smith jws7@cs.st-andrews.ac.uk 1
  • 2. University of St Andrews School of Computer Science Why complexity? • Software Engineers • build systems • Sometimes there are problems... • And graduates are not sensitised to the issues... 2
  • 3. University of St Andrews School of Computer Science Greenfield development 3
  • 4. University of St Andrews School of Computer Science Real world: Brownfield 4
  • 5. University of St Andrews School of Computer Science Enterprise is changing • Dr Alan Brown (IBM) – “IBM spent most of their time trying to understand legacy systems” – Coding is outsourced • Separated. How do you integrate? – We have 20k contractors but we think we’re getting 3k people’s work. 5
  • 6. University of St Andrews School of Computer Science Thoughts on failure • The world economy is losing over six trillion USD per year to IT failures and the problem is getting worse. • Software Engineers need to learn to fail - the solution? 6
  • 7. University of St Andrews School of Computer Science 7
  • 8. University of St Andrews School of Computer Science LSCITS 8
  • 9. University of St Andrews School of Computer Science LSCITS • Large Scale Complex IT systems • I am part of this group • Led by Prof Dave Cliff (Bristol), Prof Ian Sommerville (St. Andrews) and others • £5m Research proposal • Emerged after Department of Trade and Industry report “Complexity and Emergent Behaviour in ICT Systems” 9
  • 10. University of St Andrews School of Computer Science ITS • Information Technology Systems • Or ICT? • Communications technology is heavily • So much of our lives is dominated by ICT. We are in fact living in Information Systems. • ITS in LSCITS covers all of this. 10
  • 11. University of St Andrews School of Computer Science Complex • Complex Adaptive Systems • Dominated by emergent behaviour • Conventionally engineered systems can also be complex • functional and non functional behaviour cannot be predicted • likely when we create systems integrating different parts (of other systems) which are independently developed and managed • impossible to predict how the characteristics of one system will interfere with the characteristics of others 11
  • 12. University of St Andrews School of Computer Science Large Scale • Not dependent on physical size of spatial dispersion • Rather the number of components or interactions • Birthday Paradox 12
  • 13. University of St Andrews School of Computer Science 13
  • 14. University of St Andrews School of Computer Science Complex & Complicated • are not the same... 14
  • 15. University of St Andrews School of Computer Science Complicated • Difficult for a human to understand • A system which can be understood in theory, but in practice rarely is • May be due to simply the sheer number of components or interactions. • Is this true? - Maybe that there is no difference between a complicated system and a complex one. 15
  • 16. University of St Andrews School of Computer Science Inherently Complex Systems • Cannot deduce behaviour from examination of their components • Cannot predict the consequences of changes to these systems • Behaviour and properties are non-deterministic 16
  • 17. University of St Andrews School of Computer Science Inherently Complex Systems (2) Inherent complexity stems from dynamic, dependent relationships between parts of the system - relationships evolve in time and according to stimuli from the system environment - new relationships may be created & existing relationships may change - deterministic modelling techniques cannot be used to make predictions about such systems 17
  • 18. University of St Andrews School of Computer Science Adaptive Systems • Inherent complexity in situations where we have adaptive systems – dynamic dependencies – we cannot have enough knowledge about the system to make accurate predications of its behaviour – at best we can be probabilistic 18
  • 19. University of St Andrews School of Computer Science Automated Agents • If we have automated agents – i.e. automated traders • thousands of operations per seconds • linked through unit prices • cannot predict behaviour • other factors effect prices • we have no idea how the agents will interact 19
  • 20. University of St Andrews School of Computer Science The Flash Crash 20
  • 21. University of St Andrews School of Computer Science What happened? • On the 6th of May 2010 at 2.45pm the Dow Jones Market plundged over 900 points... • Traders were selling the shirt of their backs to cut their losses... • Chaos reigned 21
  • 22. University of St Andrews School of Computer Science What happened? (2) • Within minutes... it recovered – It was the second largest point swing (1,010.14 points) and the biggest one day decline (998.5) in Dow Jones history • In 5 minutes billions of dollars were wiped of the face of the earth and then found again... • Why? 22
  • 23. University of St Andrews School of Computer Science Why? • A trader initiated a sell program to sell 75,000 contracts... – an unusually large number at a volatile time in the market • High Frequency Traders (HTF) also started aggressively selling... • No buyers... so they kept selling to each other... • “Hot-potato” effect. – Between 2:45:13 and 2:45:27 HTFs traded 27,000 contracts 49% of the trading traffic 23
  • 24. University of St Andrews School of Computer Science Solution? • “The rout continued until an automatic stabilizer on the futures exchange cut in and paused trading for five seconds, after which the markets recovered." 24
  • 25. University of St Andrews School of Computer Science Lessons • When you have a large number of dynamic, dependent relationships – You can’t predict what’s going to happen – Incredibly hard to engineer dependable systems of this type • This is the challenge facing Software Engineers in today’s world. 25
  • 26. University of St Andrews School of Computer Science An analogy • Complexity is analogous to heat and simplicity is analogous to cold – There is no such thing as cold, just absence of heat. – That is why we have absolute zero - no heat left – But no absolute heat - things can always get hotter 26
  • 27. University of St Andrews School of Computer Science Simplicity • So we can never add simplicity, only remove complexity • required functionality places a lower limit on the complexity required. • Walking is simpler than a rocket ship… but doesn't solve the same problem 27
  • 28. University of St Andrews School of Computer Science Removing complexity • So the idea is to remove unnecessary complexity • Some complexity that is required does not excuse the surfeit of complexity currently in IT systems. – but does this imply the ability to measure complexity? – how do we prove that we have removed complexity? 28
  • 29. University of St Andrews School of Computer Science Adding people... • If you consider people to be part of the system – then you have dynamic, dependent relationships between components • so are all large, socio-technical systems complex systems? • We would argue that they are... 29
  • 30. University of St Andrews School of Computer Science Epistemic Complexity • (Epistemic: of or relating to knowledge and its validation) • relates to the predictability of system properties when changes are proposed • if you don't have enough knowledge of the system and its components - you cannot make predictions about it • even if the system does NOT have dynamic, dependent relationships between components • therefore large complicated systems are also complex systems when it is practically impossible to aquire the necessary knowledge 30
  • 31. University of St Andrews School of Computer Science System observer • Complexity is not only a property of a system but also of the system observer. • If an expert has a knowledge of a system and can reliably make changes • but cannot articulate his knowledge • then if he leaves, his replacement may never be able to accrue the same level of understanding • therfore a complicated system becomes a complex one 31
  • 32. University of St Andrews School of Computer Science Recap: Types of Complexity • Adaptive Systems – systems of systems where behaviour cannot be predicted • Socio-technical systems – people form dynamic, dependent relationships • Complicated systems – Epistemic complexity – Observer knowledge 32
  • 33. University of St Andrews School of Computer Science Combat plan • So how do we combat these? • Really an open ended method • For example, formal methods really don't help with dynamic dependancies • Epistemic complexity may allow us to state 'truths' about the system. – filling in our knowledge 33
  • 34. University of St Andrews School of Computer Science Understand relationships • Better understanding of dynamic, dependent relationships may also be useful in helping manage complexity • This means that Socio-technical analysis is required – Organisational analysis – Stakeholders • May be able to change these relationships from dynamic to static – and therefore reduce complexity 34
  • 35. University of St Andrews School of Computer Science but really... • Graduates in Software Engineering will rarely face these problems during their studies • So be aware, be sensitised to the issues • You WILL come across them in industry • Be ready for your Kobayashi Maru... 35
  • 36. University of St Andrews School of Computer Science but really... • Graduates in Software Engineering will rarely face these problems during their studies • So be aware, be sensitised to the issues • You WILL come across them in industry • Be ready for your Kobayashi Maru... but don’t cheat! 36
  • 37. University of St Andrews School of Computer Science over to you... 37
  • 38. University of St Andrews School of Computer Science Credits • Slides by me - email jws7@cs.st-andrews.ac.uk for a copy.s • Images from Google Image Search. • To learn more on LSCITS visit http://www.lscits.org • Recommended reading: – Clay Shirky: Here Comes Everybody 38

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n