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.
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.
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
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.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
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.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Leading Change strategies and insights for effective change management pdf 1.pdf
An introduction to LSCITS
1. Introduction to LSCITS, York EngD programme, 2010 Slide 1
Large-scale Complex IT Systems
Prof. Ian Sommerville
2. Introduction to LSCITS, York EngD programme, 2010 Slide 2
St Andrews
• Small Scottish town, on
the north-east coast of
the UK
• Home of golf
• Scotland’s oldest
university (founded in
1413)
• Small university
focusing on research
and teaching
excellence
3. Introduction to LSCITS, York EngD programme, 2010 Slide 3
About me
• Background in
traditional software
engineering
• Author of widely-used
textbook in this area
• Now primarily
interested in human,
social and
organisational
influences on
software systems
design and
dependability
4. Introduction to LSCITS, York EngD programme, 2010 Slide 4
Objectives
• To introduce the notion of an LSCITS and to explain
the differences between an LSCITS (large-scale
complex IT system) and an LSITS (large-scale IT
system)
• To explain why it is difficult to establish an
unambiguous definition of an LSCITS and to describe
characteristic features of an LSCITS that may be
used to decide whether or not a large system is an
LSCITS
• To explain why the characteristic features of an
LSCITS lead to complexity
5. Introduction to LSCITS, York EngD programme, 2010 Slide 5
Computing systems
Definitions of different types of computing system
6. Introduction to LSCITS, York EngD programme, 2010 Slide 6
Systems and programs
• Program
– A single executable entity that operates on a computing platform
• System
– One or more programs that are intended to work together to deliver
functionality to support some organisational purpose
• Systems of systems
– A set of systems that work together to serve some organisational purpose,
which is usually broader than can be supported by a single system
• System portfolios
– A set of systems, some of which may work together as systems of systems
• Socio-technical systems
– A set of systems plus organisational processes, policies, standards and
procedures that are used in operating these systems
7. Introduction to LSCITS, York EngD programme, 2010 Slide 7
Program
• A set of instructions that can be executed by a computer without
other programs e.g. the calculator on an iPhone, a video game,
MS Word.
• Normally, a program has defined functionality and makes use of
the services provided by an operating system to interface with
the computer hardware and (sometimes) with middleware to
access databases and other computers.
• All seems simple and straightforward but:
– The program may depend on external libraries and components and
have no control over their evolution or non-functional characteristics
– The program depends on the operating system and, often, other
middleware and database systems. Again, the evolution of these
systems may be outside the control of the program.
8. Introduction to LSCITS, York EngD programme, 2010 Slide 8
System
• System is an over-used term and means different things to
different people
• My definition is:
– One or more programs that cooperate purposefully to help achieve
some objective or goal.
• The key distinction between a program and a system is that the
system is designed for some broader organisational purpose.
• So, you can think of a program as a general-purpose tool; a
system might be a set of programs that is intended to support
some activity, such as software engineering or tax collection.
• Changes to the activity supported lead to changes in the
programs.
9. Introduction to LSCITS, York EngD programme, 2010 Slide 9
Systems of systems
• A system of systems (SoS) is a system where the
elements are systems (i.e. sets of programs) rather
than individual programs. The purpose of a system of
systems is usually broader than that of an individual
system
– There is a system of systems to support air traffic
management
– There are individual systems to support flight information
display, radar display, etc.
• SoS are more complex than systems as the
constituent systems are usually independently
procured and managed. They may be owned and
evolved by different organisations or different parts of
10. Introduction to LSCITS, York EngD programme, 2010 Slide 10
System portfolios
• A collection of systems that is owned or used by an
organisation to run its business.
• For example, an audit at BMW showed that they used
4500 separate programs/systems in their business.
• Within the collection, there are likely to be both weak
and strong dependencies between different members
of the collection.
• These dependencies are not always obvious and
change to one system can have unexpected effects
on other systems in the portfolio.
11. Introduction to LSCITS, York EngD programme, 2010 Slide 11
Socio-technical systems
• Socio-technical systems include IT systems and the
social and organisational environment in which these
systems are used
– Operators – the people who use the system
– Procedures and Processes – ways of working that use the IT
system
– Policies – rules and regulations that govern work and the way that it
is done
– Standards – definitions of how work should be done across the
organisation
– Culture – the ways in which work is done in a local, professional and
national setting
12. Introduction to LSCITS, York EngD programme, 2010 Slide 12
What is an LSCITS?
Establishing the differences between a large-scale IT
system (LSITS) and a large-scale complex IT system
(LSCITS)
13. Introduction to LSCITS, York EngD programme, 2010 Slide 13
Large-scale IT Systems
• Large-scale IT systems (LSITS) are programs or
systems which are (a) large in size i.e. include
thousands of instructions (b) under the control of a
single agency and (c) where the design of the system
is not influenced by individual operating environments
• Typically, an LSITS deliberately limits and controls
interactions with its environment to avoid uncertainty
– e.g. MS Excel is an LSITS because it is (a) large –
reputedly 5 million lines of code (b) controlled by
Microsoft and (c) based on an set of environmental
assumptions that were established by the developers
of the system
14. Introduction to LSCITS, York EngD programme, 2010 Slide 14
Complexity
• System complexity stems from the relationships between
the components of the systems
• These relationships may be a mixture of:
– Static relationships, which do not change after they have been
established
– Dynamic relationships, that change over time, in response to
changes in the system and events from the systems
environment
• Evidence of system complexity
– Unpredictable emergent system properties (behavioural and
non-functional)
– Systems of systems managed by different authorities
– Problems of implementing changes to systems
15. Introduction to LSCITS, York EngD programme, 2010 Slide 15
Unknown and known unknowns
• Inherent complexity
– Elements of the system have dynamic dependencies
that change over time and in response to
environmental stimuli
• Epistemic complexity
– Practical impossibility of understanding the
relationships in a system (even if they are static)
16. Introduction to LSCITS, York EngD programme, 2010 Slide 16
Complex IT systems research
• Understanding the nature of dynamic dependent
relationships in large IT systems
– Socio-technical systems
• Managing epistemic complexity
– Formal modelling and methods
– Agile processes
17. Introduction to LSCITS, York EngD programme, 2010 Slide 17
What is an LSCITS?
• There is no simple way to relate the concept of an
LSCITS to these notions of
programs/systems/systems of systems etc.
• 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
18. Introduction to LSCITS, York EngD programme, 2010 Slide 18
LSCITS and STS
• I subscribe to the view that LSCITS can be engineered but
socio-technical systems can only evolve, within an
organisational context
• An LSCITS is normally a collection of systems that is embedded
in a wider socio-technical system or systems.
– There may be occasional exceptions to this e.g. a program could be an
LSCITS e.g. a complex embedded control system in an area where the
physics of the device being controlled is not completely understood. This
system is part of a larger hardware assembly (e.g. an aircraft engine) rather
than part of a socio-technical system
• There are complex relationships between the LSCITS and the
STS that makes use of the LSCITS and it is practically
impossible to consider one or the other in isolation.
• From some viewpoints, the LSCITS and the STS are likely to be
indistinguishable
19. Introduction to LSCITS, York EngD programme, 2010 Slide 19
An LSCITS model
S1
S3
S4
S5
S6
S7
S2
STS 1
STS 2
20. Introduction to LSCITS, York EngD programme, 2010 Slide 20
LSCITS and SoS
• There is an emerging discipline of extended systems
engineering concerned with systems of systems i.e. systems
whose constituent parts are other systems
• In some cases, when people talk about a ‘system of systems’
they mean a system with the same characteristics as an
LSCITS. In other cases, an LSCITS is part of a SoS.
• In other cases, the SoS is something that is more controlled e.g.
an aircraft or a car where one authority is responsible for all of
the systems that are part of the SoS. Electrical and mechanical
systems have more significance.
• Whatever definition is used, SoS and LSCITS have much in
common
21. Introduction to LSCITS, York EngD programme, 2010 Slide 21
LSCITS by example
• Examples of LSCITS
– A digital music system that provides users with the
capabilities to acquire and play digital music and provides
artistes with the ability to sell and distribute their music over
the internet
– A national identity management system that maintains a
database of information about citizens and provides ‘identity
cards’ to authenticate citizens.
– The set of interacting control systems in an aircraft
• Examples of large systems that are not LSCITS
– An iPhone
– An image management system for medical images
22. Introduction to LSCITS, York EngD programme, 2010 Slide 22
System boundaries
• When you are procuring and designing a system, it is important
to define the system boundaries so that you understand what is
and is not part of a system.
• The system boundaries are used to establish the allocation of
functionality:
– To the IT systems that are being developed
– To other existing or proposed IT systems
– To the operational processes of system use
– To the broader organisation
• Positioning the system boundary can reduce or increase
complexity – so an LSITS can be a component of an LSCITS
23. Introduction to LSCITS, York EngD programme, 2010 Slide 23
A digital music system
Music
player
iPod/iPhone
iTunes
iTunes store
Music companies
Artistes
LSCIT
S
LSITS
24. Introduction to LSCITS, York EngD programme, 2010 Slide 24
Complexity avoidance
• One reason why Apple have been successful in their
digital music business because they have extended
the boundaries of the LSITS to the sale of the digital
music, so that they can control the user experience
• Other companies who produced technically superior
music players have failed because the LSCITS
boundary has been extended downwards to include
the sale and distribution of music.
• This added complexity to the system as a whole,
which dissuaded users from interacting with the
system
25. Introduction to LSCITS, York EngD programme, 2010 Slide 25
LSCITS and complexity
The characteristics of an LSCITS that lead to complexity
26. Introduction to LSCITS, York EngD programme, 2010 Slide 26
Common characteristics of an
LSCITS
• Large-scale
• Operational independence of the system elements
• Managerial independence of the system elements
• Geographic distribution
• Multi-organisational systems
• Multiple stakeholder viewpoints
• Evolutionary development
• Emergent behaviour
• Data intensive
27. Introduction to LSCITS, York EngD programme, 2010 Slide 27
System size
• The notion of a ‘large scale’ system is quite a difficult one to
define
• One definition might be in terms of size of source code so a
large scale system might be a system with more than 500, 000
lines (say) of source code
• But should this include code that is ‘reused’?
• What about systems of systems that are created by integrating
several smaller-scale systems, with relatively little new code
added?
• So ‘large-scale’ is a subjective notion that depends on the
viewpoint of the person making the judgment
28. Introduction to LSCITS, York EngD programme, 2010 Slide 28
Operational independence
• Operational independence means that different
systems, which may be part of an LSCITS, have
been designed for separate, independent operation
• This means that the operation of these LSCITS
components may be incompatible or error-prone
– Differences in user interface may mean that when switching
from one system to another users are confused and make
operational errors
– Differences in control assumptions may cause operational
problems (e.g. user drives system vs system drives user)
– Differences in data management may make data exchange
difficult or only possible at primitive levels (e.g. cut and paste)
29. Introduction to LSCITS, York EngD programme, 2010 Slide 29
Managerial independence
• The different components of the LSCITS may be
owned and managed by different authorities
• These different authorities have different priorities
and, often, business goals
• This means that the managed systems may evolve
independently, without regard for the other systems
that are part of the LSCITS. Those changing the
system may not even realise that their system is part
of a wider LSCITS
30. Introduction to LSCITS, York EngD programme, 2010 Slide 30
Geographic distribution
• The components of an LSCITS are often not co-located but may
be located in different parts of an organisation, may be located
in different organisations that are not in the same place or may
be located in the ‘cloud’
• This means that communication is reliant on external networking
and introduces additional dependencies on the network provider
• It also makes it difficult to coordinate the people who are
responsible for operating and evolving the different system
components
• Even contacting the people involved in system management
may be difficult or impossible
31. Introduction to LSCITS, York EngD programme, 2010 Slide 31
Multi-organisational systems
• Many rules enforced in different ways by different systems.
• No single manager or owner of the system . Who do you call
when failures occur?
• Information is distributed - users may not be aware of where
information is located, who owns information, etc.
• Processes involve remote actors so process reconfiguration is
more difficult
• Restricted information channels (e.g. help unavailable outside
normal business hours; no phone numbers published, etc.)
• Lack of trust. Owners of components will blame other
components for system failure. Learning is inhibited and trust
compromised.
32. Introduction to LSCITS, York EngD programme, 2010 Slide 32
Stakeholder perspectives
• Different stakeholders in an LSCITS will often have
different perspectives on what the system boundaries
(and hence the system functionality) should be
• Therefore, there is the potential for stakeholder
conflict as each stakeholder defines the system to be
what is most advantageous for them
• Because of professional and culture differences, any
stakeholder agreement is inevitably provisional and
subject to change as role holders change and
organisational priorities evolve
33. Introduction to LSCITS, York EngD programme, 2010 Slide 33
Emergent behaviour
• Emergent behaviour is system behaviour that can
only be observed when the elements of the system
are integrated and the system is put into use. It
cannot be predicted by analysis of the individual
system elements
• Examples of emergent system properties are:
– Performance
– Reliability
– Usability
• A common characteristic of all of these is that they
depend on the interactions between system
components and the ways in which the system is
34. Introduction to LSCITS, York EngD programme, 2010 Slide 34
Data intensive
• Typically the data that is managed by an LSCITS is several
orders of magnitude larger than the LSCITS itself
– E.g. consider the volume of digital music in iTunes compared to the
sizes of the programs involved in managing and delivering that
music to users
• Consequently, data storage and management is a major
overhead in operating an LSCITS. The data management may
be subject to external regulation
– E.g. personal information may not be stored outside the EU
• Data lifetime will, typically, far exceed the lifetime of the
programs in the system and the working lifetimes of the people
who established the LSCITS
35. Introduction to LSCITS, York EngD programme, 2010 Slide 35
Key points
• It is practically impossible to establish a simple definition of an
LSCITS. You can only establish if a system is an LSCITS by
examining its characteristics and comparing these to a list of
LSCITS characteristics.
• The key distinguishing feature of an LSCITS is uncertainty. This
affects both the operation and the evolution of LSCITS. The
sources of uncertainty primarily derive from the organisational
and operational environment of the system.
• LSCITS are part of broader socio-technical systems and there
is a tangled relationship between an LSCITS and these socio-
technical systems. The design and operation of an LSCITS must
always consider the broader STS of which it is a part.