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

Software Fault, Error, and Failure
Software Fault, Error, and FailureSoftware Fault, Error, and Failure
Software Fault, Error, and Failurenethisip13
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewRajiv Kumar
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsAmr E. Mohamed
 
Distributed & parallel system
Distributed & parallel systemDistributed & parallel system
Distributed & parallel systemManish Singh
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingMoutaz Haddara
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software EngineeringUpekha Vandebona
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)ShudipPal
 
20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with python20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with pythonSungman Jang
 
Methods for handling deadlock
Methods for handling deadlockMethods for handling deadlock
Methods for handling deadlocksangrampatil81
 

What's hot (20)

Software Fault, Error, and Failure
Software Fault, Error, and FailureSoftware Fault, Error, and Failure
Software Fault, Error, and Failure
 
Software design
Software designSoftware design
Software design
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief Overview
 
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMIEvolving role of Software,Legacy software,CASE tools,Process Models,CMMI
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
 
Distributed & parallel system
Distributed & parallel systemDistributed & parallel system
Distributed & parallel system
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Cyclomatic complexity
Cyclomatic complexityCyclomatic complexity
Cyclomatic complexity
 
Software design
Software designSoftware design
Software design
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Need for Software Engineering
Need for Software EngineeringNeed for Software Engineering
Need for Software Engineering
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with python20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with python
 
System Modelling
System ModellingSystem Modelling
System Modelling
 
Methods for handling deadlock
Methods for handling deadlockMethods for handling deadlock
Methods for handling deadlock
 
Ooad
OoadOoad
Ooad
 

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

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

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