This document discusses the challenges of engineering large, socio-technical systems where there are significant unknown factors (LSCITS). It argues that the traditional reductionist approach to engineering breaks down for these systems. LSCITS engineering must account for scale, uncertainty, and the entanglement of social and technical aspects. Some key challenges identified include managing large scale systems, dealing with uncertainty, reasoning about complex systems, integrating different systems, and developing standards for LSCITS. The document advocates an approach that tempers reductionism with pragmatism and recognition of real-world constraints like imperfect people and organizations.
Essential Complexity in Systems ArchitectureMark Mishaev
In this presentation we will into real system architectures, present essential and accidental complexity and see patterns that could help us to reduce accidental complexity.
Essential Complexity in Systems ArchitectureMark Mishaev
In this presentation we will into real system architectures, present essential and accidental complexity and see patterns that could help us to reduce accidental complexity.
This brief introductory presentation consists of the following topics:
•The Fundamentals of System Dynamics (SD) Modeling
• Key Concepts of SD
• SD Simulation Software
• Examples of Stock and Flow Diagrams (SFD)
• Examples of Causal Loop Diagrams (CLD)
• Modes of Dynamic Behaviour (Such as Exponential Growth, Goal Seeking, Oscillation, S-shaped growth, S-Shaped Growth with Overshoot and Overshoot and Collapse)
• Systems Archetypes (Such as Limits to Growth, Success to Successful, Tragedy of the Commons, Fixes that Backfire, Shifting the Burden, Eroding Goals, Escalation and Growth and Underinvestment)
• Concepts and Accounting Methods of the Water-Energy-Food Nexus
• Applications of SD in WEF Nexus Modeling
Applying Systems Thinking to Solve Wicked Problems in Software EngineeringMajed Ayyad
Software systems are essentially socio-technical systems
and they are not isolated from other systems engineering processes. Unconsciously or by intention, we implement systems thinking in multi-agent systems, microservices, DevOps, distributed systems, API-led integrations and lean based software development life cycles. However, the concrete relationship between systems thinking and software engineering is still a green area and barely highlighted as a common practice among software engineers. In this presentation, we will
elaborate how systems thinking helps us to understand the socio-technical aspects of software engineering. We will discuss why systems thinking is important in the field of software engineering, provide examples where it is currently used and show the general areas where systems thinking applies to tackle complex software problems
Right-sized Architecture: Integrity for Emerging DesignsTechWell
In agile projects, design ideally "emerges" over the course of development. However, if teams primarily focus on independent user stories, they risk losing sight of the product's vision and the integrity of well-thought-out architecture. Ken Kubo shares techniques he's used to improve the chances that a product's design will emerge into a cohesive and coherent architecture that serves its customers for many years. Join Ken to find out how you can incorporate contextual design principles and simple, visual techniques as part of his "A-Little-Before-Its-Time Design" framework. You can add these practices into your agile workflow to maintain a shared team understanding of your product's vision and the system's emerging design. Ken believes that you can only realize all the promises of agile development with a clearly and constantly communicated product vision and a set of architecture goals. Lack of these key principles leads to sub-optimizing system development-or much worse, failure.
DevOps continues to be a buzzword in the software development and operations world, but is it really a paradigm shift? It depends on what lens you view it through.
Roman Garber, an active software security engineering and software team lead thinks so. Ed Adams, Security Innovation CEO, a 20-year software quality veteran and former mechanical engineer, curmudgeonly disagrees.
Explaining what is software architecture from a different point of view and giving the fundamentals for understanding what software architecture is and how it should be created
No Silver Bullet - Essence and Accidents of Software EngineeringAditi Abhang
”There is no single development, in either technology or in management technique, that by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity.”
Leadership Without Management: Scaling Organizations by Scaling Engineersbcantrill
My talk at Surge 2013. Video is at http://www.youtube.com/watch?v=bGkVM1B5NuI Caution: Should not be consumed by stack-ranking six-sigma black belts with fragile constitutions.
Agile and MBSE: Fusion or Fission - Modprod2013Pär Hammarström
When cultures collide: Fusion or Fission?
In order to deal with the inherent complexity of large scale development two clear paradigms have emerged during the last decades:
- Model Based Systems Engineering, where complexity is handled by levels of abstraction, and
- Agile Development, where complexity is handled by delegation and a “frequent inspect and adapt” philosophy
Can these approaches be combined in order to reinforce each other or are they mutually exclusive concepts?
The presentation is a reflection on my experiences of real life development projects where Agile and MBSE ,in various degrees, have been forced to co-exist. Particular attention will be paid to models as facilitators for sensemaking through dialogue and gestalt in large scale system development.
7th MODPROD Workshop on Model-Based Product Development
Linköping University – www.modprod.liu.se – February 5-6, 2013
Building Software In-House: Too Much Control and FlexibilityIvan Ruchkin
This is a slide deck for my ISR CMU Software Engineering PhD practicum (approved in May 2012). Full text: http://www.cs.cmu.edu/%7Eiruchkin/docs/ruchkin12-building-software-in-house.pdf
Abstract:
As domain-specific software becomes more available, businesses face a dilemma: whether to acquire commercial off-the-shelf (COTS) enterprise management systems or to build them in-house. Companies choosing to create a product internally are often rewarded with flexibility and control over their development process and its results. However, when expanding, they can outgrow their ability to support the developed software.
Working as a programmer at a medium-sized logistics company, Si-Trans, in 2010, I witnessed the long-term implications of an initial decision to build an information system in-house. While this decision was appropriate in 1997 because COTS alternatives were scarce and inapplicable, it created a favorable climate for inconsistent, ad hoc management practices within the entire company, in particular, software creation and maintenance. These practices ultimately contributed to Si-Trans' inability to see an opportunity in the early 2000s when it was feasible and advantageous to adopt a COTS-based solution. This solution would have scaled better for the company's growth and would have helped avoid an outstanding technical debt in the old system. By the end of 2011, Si-Trans finally considered the acquisition of an off-the-shelf information system, after having suffered substantial financial losses from the protracted in-house development.
This brief introductory presentation consists of the following topics:
•The Fundamentals of System Dynamics (SD) Modeling
• Key Concepts of SD
• SD Simulation Software
• Examples of Stock and Flow Diagrams (SFD)
• Examples of Causal Loop Diagrams (CLD)
• Modes of Dynamic Behaviour (Such as Exponential Growth, Goal Seeking, Oscillation, S-shaped growth, S-Shaped Growth with Overshoot and Overshoot and Collapse)
• Systems Archetypes (Such as Limits to Growth, Success to Successful, Tragedy of the Commons, Fixes that Backfire, Shifting the Burden, Eroding Goals, Escalation and Growth and Underinvestment)
• Concepts and Accounting Methods of the Water-Energy-Food Nexus
• Applications of SD in WEF Nexus Modeling
Applying Systems Thinking to Solve Wicked Problems in Software EngineeringMajed Ayyad
Software systems are essentially socio-technical systems
and they are not isolated from other systems engineering processes. Unconsciously or by intention, we implement systems thinking in multi-agent systems, microservices, DevOps, distributed systems, API-led integrations and lean based software development life cycles. However, the concrete relationship between systems thinking and software engineering is still a green area and barely highlighted as a common practice among software engineers. In this presentation, we will
elaborate how systems thinking helps us to understand the socio-technical aspects of software engineering. We will discuss why systems thinking is important in the field of software engineering, provide examples where it is currently used and show the general areas where systems thinking applies to tackle complex software problems
Right-sized Architecture: Integrity for Emerging DesignsTechWell
In agile projects, design ideally "emerges" over the course of development. However, if teams primarily focus on independent user stories, they risk losing sight of the product's vision and the integrity of well-thought-out architecture. Ken Kubo shares techniques he's used to improve the chances that a product's design will emerge into a cohesive and coherent architecture that serves its customers for many years. Join Ken to find out how you can incorporate contextual design principles and simple, visual techniques as part of his "A-Little-Before-Its-Time Design" framework. You can add these practices into your agile workflow to maintain a shared team understanding of your product's vision and the system's emerging design. Ken believes that you can only realize all the promises of agile development with a clearly and constantly communicated product vision and a set of architecture goals. Lack of these key principles leads to sub-optimizing system development-or much worse, failure.
DevOps continues to be a buzzword in the software development and operations world, but is it really a paradigm shift? It depends on what lens you view it through.
Roman Garber, an active software security engineering and software team lead thinks so. Ed Adams, Security Innovation CEO, a 20-year software quality veteran and former mechanical engineer, curmudgeonly disagrees.
Explaining what is software architecture from a different point of view and giving the fundamentals for understanding what software architecture is and how it should be created
No Silver Bullet - Essence and Accidents of Software EngineeringAditi Abhang
”There is no single development, in either technology or in management technique, that by itself promises even one order of magnitude improvement in productivity, in reliability, in simplicity.”
Leadership Without Management: Scaling Organizations by Scaling Engineersbcantrill
My talk at Surge 2013. Video is at http://www.youtube.com/watch?v=bGkVM1B5NuI Caution: Should not be consumed by stack-ranking six-sigma black belts with fragile constitutions.
Agile and MBSE: Fusion or Fission - Modprod2013Pär Hammarström
When cultures collide: Fusion or Fission?
In order to deal with the inherent complexity of large scale development two clear paradigms have emerged during the last decades:
- Model Based Systems Engineering, where complexity is handled by levels of abstraction, and
- Agile Development, where complexity is handled by delegation and a “frequent inspect and adapt” philosophy
Can these approaches be combined in order to reinforce each other or are they mutually exclusive concepts?
The presentation is a reflection on my experiences of real life development projects where Agile and MBSE ,in various degrees, have been forced to co-exist. Particular attention will be paid to models as facilitators for sensemaking through dialogue and gestalt in large scale system development.
7th MODPROD Workshop on Model-Based Product Development
Linköping University – www.modprod.liu.se – February 5-6, 2013
Building Software In-House: Too Much Control and FlexibilityIvan Ruchkin
This is a slide deck for my ISR CMU Software Engineering PhD practicum (approved in May 2012). Full text: http://www.cs.cmu.edu/%7Eiruchkin/docs/ruchkin12-building-software-in-house.pdf
Abstract:
As domain-specific software becomes more available, businesses face a dilemma: whether to acquire commercial off-the-shelf (COTS) enterprise management systems or to build them in-house. Companies choosing to create a product internally are often rewarded with flexibility and control over their development process and its results. However, when expanding, they can outgrow their ability to support the developed software.
Working as a programmer at a medium-sized logistics company, Si-Trans, in 2010, I witnessed the long-term implications of an initial decision to build an information system in-house. While this decision was appropriate in 1997 because COTS alternatives were scarce and inapplicable, it created a favorable climate for inconsistent, ad hoc management practices within the entire company, in particular, software creation and maintenance. These practices ultimately contributed to Si-Trans' inability to see an opportunity in the early 2000s when it was feasible and advantageous to adopt a COTS-based solution. This solution would have scaled better for the company's growth and would have helped avoid an outstanding technical debt in the old system. By the end of 2011, Si-Trans finally considered the acquisition of an off-the-shelf information system, after having suffered substantial financial losses from the protracted in-house development.
Introduction to the Module
The lecture will outline the module objectives and the topics to be covered, explain the assessment schedule, introduce the software tools recommended for the module and the resources - textbooks and on-line resources - recommended for use in the module.
Overview of Object-oriented Analysis and Design and UML
Software Engineering as a discipline will be introduced and the core concepts of software life-cycle and software process models will be briefly covered.
The role and the benefits from modelling as a way of dealing with software complexity will be explained. A brief review of the history of the Unified Modelling Language (UML) will be covered. The main UML diagrams will be described and their role in analysis and design.
Research on Architecting Microservices: Trends, Focus, and Potential for Indu...Paolo Di Francesco
5th of April 2017. My presentation done at the 14th International Conference on Software Architecture (ICSA), Gothenburg, Sweden.
Microservices are a new trend rising fast from the enterprise world. Even though the design principles around microservices have been identified, it is difficult to have a clear view of existing research solutions for architecting microservices.
A systematic mapping study methodology has been used to identify, classify, and evaluate the current state of the art on architecting microservices from the following three perspectives: publication trends, focus of research, and potential for industrial adoption. More specifically, we systematically define a classification framework for categorizing the research on architecting microservices and we rigorously apply it to the 71 selected studies. We synthesize the obtained data and produce a clear overview of the state of the art. This gives a solid basis to plan for future research and applications of architecting microservices.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/ICSA_2017.pdf
.NET Fest 2018. Леонид Молотиевский. Как выжить с микросервисамиNETFest
В данном докладе я хочу поделиться опытом, который мы получили, разрабатывая огромную распределенную систему с нуля. Наша команда прошла долгий путь от монолита к микро-сервисной архитектуре. Результатом этого опыта стал как анализ правильных решений, спасших наш проект, так и анализ ошибок, которые его чуть не потопили.
This is an excerpt of the slide deck of the course on Agile Software Architecture for the NISI course. For more information, please contact the author, slinger.jansen@uu.nl.
Discusses sociotechnical issues that arose in the design of a national digital learning system intended for use by more than a million students and their teachers
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
1. LSCITS Engineering, York EngD Programme, 2010 Slide 1
LSCITS Engineering
Prof. Ian Sommerville
St Andrews University
2. LSCITS Engineering, York EngD Programme, 2010 Slide 2
Objectives
• To discuss why the traditional approach to
engineering is not adequate for building LSCITS
• To introduce the notion of LSCITS engineering and to
introduce LSCITS engineering challenges
• To suggest a research agenda for LSCITS
engineering
3. LSCITS Engineering, York EngD Programme, 2010 Slide 3
What is an LSCITS?
• The key difference between an LSCITS and other
classes of large system is that there are significant
‘unknowns’ in the environments in which LSCITS is
procured, developed and operated.
• An LSCITS is an LSITS (or a collection of LSITSs)
where unknown, unstable and uncontrollable factors
in the systems procurement, development and
operational environment affect the design and use of
the system
• LSCITS have a close and entangled relationships
with the socio-technical systems that rely on these
LSCITS
4. LSCITS Engineering, York EngD Programme, 2010 Slide 4
An LSCITS model
S1
S3
S4
S5
S6
S7
S2
STS 1
STS 2
5. LSCITS Engineering, York EngD Programme, 2010 Slide 5
The basis of engineering
A discussion of the fundamental assumption that is a
foundation for engineering and systems development
6. LSCITS Engineering, York EngD Programme, 2010 Slide 6
Reductionism
• Reductionism
– “an approach to understanding the nature of complex things
by reducing them to the interactions of their parts, or to
simpler or more fundamental things”.
• Reductionism underpins most engineering, including
software engineering
• We see reductionism in notions such as
• Contractor/sub-contractor relationships
• Top-down design
7. LSCITS Engineering, York EngD Programme, 2010 Slide 7
Reductionist assumptions
• Control
– Reductionist approaches assume that we have control over the
organisation of the system. It is then possible to decompose the
system into parts that can themselves be engineered using
reductionist approaches
• Understandable relationships
– The relationships between the parts are visible and understandable
• A rational world
– Reductionist approaches assume that rationality will be the principal
influence in decision making
• Definable problems
– Reductionist approaches assume that the problem can be defined
and the system boundaries established
8. LSCITS Engineering, York EngD Programme, 2010 Slide 8
Software engineering
• Developments in software engineering have largely adopted a
reductionist perspective:
– Design methodologies
– Formal methods
– Agile approaches
– Software architecture
– Model-driven engineering
• Reductionist approaches to software engineering have been
successful in allowing us to construct larger software systems
• More effective reductionist approaches allow us to deal with
increasingly complicated systems.
9. LSCITS Engineering, York EngD Programme, 2010 Slide 9
Problems with reductionism
• Scale
• When things get too big, then reductionist approaches
become intellectually unmanageable because of the
complexity of the interactions between the parts of the whole
• Environment
• The relationships between a system and its environment are
often uncontrollable
• People
• Who refuse to behave in a rational and deterministic way
10. LSCITS Engineering, York EngD Programme, 2010 Slide 10
Engineering project failures
• Engineering projects ‘fail’ (go over schedule and
budget) when reductionist assumptions break down
• Edinburgh tramways project
– Environment problems. There are no maps of existing utilities
and there have been complex problems of moving pipes and
cabling to accommodate the tram system
– There has been considerable political wrangling between the
local government and the national government
• Software project failures
– Relatively common because, even for LSITS, reductionist
assumptions are dubious
11. LSCITS Engineering, York EngD Programme, 2010 Slide 11
Complex and complicated
systems
• Reductionist approaches are intended to help deal
with complicated systems i.e. systems where the
relationships between elements are largely static and
which can (in principle) be understood and controlled
• However, LSCITS are complex systems, with
dynamic relationships between elements. It is is
impossible to acquire and maintain a complete
understanding of the system and where elements are
independently controlled and often have
undocumented side-effects
13. LSCITS Engineering, York EngD Programme, 2010 Slide 13
LSCITS development
Software capabilities
S1
S2
S3
S4
LSCITS
Systems contribute
capabilities
Used to construct
Systems Development
Creates
new
???
???
14. LSCITS Engineering, York EngD Programme, 2010 Slide 14
Continuous development
• It is rare (perhaps unknown) for an LSCITS to be
developed from ‘scratch’
• Rather, an LSCITS emerges from an assembly of
existing technical and socio-technical systems that
are supplemented by the development of new
software to help achieve a broad set of goals
• LSCITS engineering is a continual process of
procurement, development, deployment, operation
and de-commissioning
15. LSCITS Engineering, York EngD Programme, 2010 Slide 15
Brownfield development
• LSCITS are rarely, if ever, developed from scratch
• It is often the case that an LSCITS emerges after
experience with a range of individual systems
• By the time we recognise the need for an LSCITS, we
have already accumulated a range of constraints:
– Legacy systems
– Technologies
– Socio-technical systems
– Laws and regulations
16. LSCITS Engineering, York EngD Programme, 2010 Slide 16
Alternatives to reductionism
• Bricolage
– Systems are developed opportunistically by integrating
available systems and components and by using whatever
integration mechanisms work at the time
– Mashups, where different web services are combined
opportunistically, are examples of bricolage
• Problems with fit to socio-technical world, security,
dependability, maintainability
17. LSCITS Engineering, York EngD Programme, 2010 Slide 17
Alternatives to reductionism
• Emergence
– Systems are developed using an evolutionary ‘survival of the
fittest’ approach based on genetic algorithms, etc.
– The argument is made that this is what underlies the
development of the web
• Problems
– Uncontrollable. You cannot be sure that you get the system
that you need or that the system will not have undesirable
properties
– Visibility. It is hard to demonstrate compliance, safety, etc.
– Scale. Notwithstanding the example of the web, there is no
evidence that current approaches based on emergence scale
to large systems
18. LSCITS Engineering, York EngD Programme, 2010 Slide 18
Has reductionism had its day?
• At the moment, reductionism is the only tool that we
have for the specification, design and construction of
LSCITS
• The problem is not in reductionism in itself, but in
believing that it is all that is required to engineering
complex systems
• We need to move to a situation where we use
reductionism as far as possible but recognise that we
need to temper this with a dose of reality
19. LSCITS Engineering, York EngD Programme, 2010 Slide 19
Better software engineering?
• LSCITS engineering problems cannot be solved by
– improved software processes, process maturity, quality
management etc.
– better tools and technology
– more rigorous methods of development
– Better project management
• These can all contribute and are worth doing but
break down in the face of large-scale uncertainty
• A key requirement for LSCITS engineering is the
ability to represent, model and demanage both scale
and uncertainty
20. LSCITS Engineering, York EngD Programme, 2010 Slide 20
LSCITS Engineering
• LSCITS Engineering (LSCITS-E) is the process of creating,
evolving and managing LSCITSs.
• Not just a technical discipline – needs involvement of people
with a wide range of expertise (social science, psychology,
engineering, management, etc.)
• We need new systems and software engineering approaches
(e.g. designing for failure) that take into account the inherent
complexities of LSCITS and the need to cope with uncertainty
• LSCITS-E will incorporate current software engineering
activities(notably requirements engineering and system
architecture), you should bear in mind that current methods are
what we’ve got rather than what we need
21. LSCITS Engineering, York EngD Programme, 2010 Slide 21
The realities of LSCITS-E
• Social and technical are inseparable
– Focus on the social and the technical together rather than consider
technical issues in isolation
• Perfection is unattainable
– Adopt a pragmatic acceptance of the world as it is, populated by
imperfect people
• You can’t win
– Accept that systems will always be a compromise, with multiple,
often conflicting, notions of what is meant by ‘success’ and where
the system boundaries lie
• Things will go wrong
– Adopt a view of dependability where partial failure is normal and
tolerable
22. LSCITS Engineering, York EngD Programme, 2010 Slide 22
LSCITS-E Challenges
Problems that we have to address to make LSCITS
engineering a reality
23. LSCITS Engineering, York EngD Programme, 2010 Slide 23
LSCITS – E challenges
• Managing scale
• Dealing with uncertainty
• Thinking and reasoning about LSCITS
• Making systems work together effectively
• Standards for LSCITS
24. LSCITS Engineering, York EngD Programme, 2010 Slide 24
Scale causes problems
• No centralised or unified understanding of the ‘system as a
whole’
• The ability to understand an individual constituent of the system
and its relationships decreases as the number of constituents
increases
• Problems of management and governance are exacerbated and
increase as new systems are added and the overall LCSITS
increases in size
• The (socio-technical) effects of changes to constituents of the
system become impossible to predict
• Size makes it more difficult to reach consensus about system
requirements
25. LSCITS Engineering, York EngD Programme, 2010 Slide 25
Coping with uncertainty
• Uncertainty is a universal characteristics of LSCITS and the
principal cause of system problems is unpredicted events and
behaviour in both the technical and socio-technical systems
– Aleatory uncertainty
• Uncertainty that relates to the fact that the world is uncertain.
– Epistemic uncertainty
• Uncertainty that arises because our knowledge of the world is incomplete
• Coping with uncertainty is about designing for flexibility and
utilising the abilities of people to deal with unseen problems
• Will be discussed in more detail in the following lecture
26. LSCITS Engineering, York EngD Programme, 2010 Slide 26
LSCITS abstractions
• Our existing abstractions (functions, objects, component, etc.)
that we use in defining software systems are based on a
reductionist view of the world
• We need new abstractions which are more effective at
representing large-scale systems and accommodating
uncertainty to allow us to represent and reason about LSCITS
• Examples of possible abstractions
– Responsibilities
• A duty to achieve, maintain or avoid some state, subject to constraints.
– Capabilities
• The ability to completely or partially discharge a responsibility
27. LSCITS Engineering, York EngD Programme, 2010 Slide 27
Interoperability and integration
• The constituents of LSCITS have to interoperate
(ensuring that constituent systems that can operate
smoothly together) and integrate (ensuring that
constituent systems can exchange information in a
controlled way)
– Interoperability is about control; integration is about data
– Integration is not just about physical data exchange but also
must take into account business rules and data regulations
• To achieve effective interoperation and integration,
we need to pay attention to socio-technical issues,
system requirements and architecture
28. LSCITS Engineering, York EngD Programme, 2010 Slide 28
Standards
• General interoperability/integration can only be
achieved if standards are widely adopted and
systems are built that implement these standards
• Currently, the standards that have been accepted
and that are widely adopted are low-level standards
– Standards for data exchange
– Standards for service syntax
• We need standards based on semantics if true
interoperability is to be achieved
29. LSCITS Engineering, York EngD Programme, 2010 Slide 29
Research agenda for LSCITS
engineering
• Requirements engineering for LSCITS
– LSCITS means uncertainty and we need better tools and
techniques for understanding where uncertainties exist and
how the system should cope with these uncertainties.
– Better techniques are required to understand the
requirements from the socio-technical environment in which
the LSCITS is used
• Managing failure
– Moving from a world where failure is something to be avoided
to a world where failure is normal and simply has to be lived
with
– Ensuring the ‘small failures’ do not cascade to ‘large failures’
30. LSCITS Engineering, York EngD Programme, 2010 Slide 30
Research agenda for LSCITS
engineering
• LSCITS architecture
– Abstractions for representing LSCITS architecture
– Architectural styles and patterns for LSCITS
– Architecture trade-offs and system consequences
• Dynamic systems
– Integration mechanisms that allow systems to evolve rapidly
in response to changing demands and capabilities,
governance, standards and regulation
– Methods of understanding and managing these systems
31. LSCITS Engineering, York EngD Programme, 2010 Slide 31
Key points
• Reductionism is the basis of engineering, including
software engineering. However reductionism cannot
cope effectively with complexity
• Better reductionist approaches are not adequate, in
themselves, for building LSCITS but we cannot
simply discard our current approaches
• Key challenges for LSCITS engineering are
managing scale, developing new abstractions to
model LSCITS, integration and interoperation and
challenges