Title: Construction by Configuration: An opportunity for SE research
1Construction by Configuration An opportunity
for SE research
- Prof. Ian SommervilleSt Andrews
UniversityScotland
2St Andrews
- Small Scottish town, on the north-east coast of
the UK - Home of golf
- Scotlands oldest university (founded in 1413)
- Small university focusing on research and
teaching excellence
3Software engineering 2008
- Over the past 10 years or so, there has been a
radical shift in development strategy for
large-scale organisational information systems - Instead of developing software by programming in
a conventional language, the primary development
mode is now based around the reuse of
off-the-shelf systems such as ERP systems or
generic systems (COTS) for a specific application
area - Existing approaches to software engineering have
to evolve to take into account this approach to
systems engineering
4Commercial Off-the-Shelf Systems (COTS)
- COTS-based reuse relies on adopting a generic
system that has been developed to deliver some
business function and adapting that systems to
the needs of a particular organisation - Increasingly, new systems are developed by
integrating several existing COTS, sometimes with
different owners. Systems are becoming systems of
systems
5COTS-based reuse
- COTS-based reuse is based around systems for a
specific application domain (e.g. patient
information system in healthcare). - This incorporates generic functionality and
abstractions from the domain which are configured
for each specific customer. COTS are designed for
configuration. - This can be a (very) long-term process
- The current Spanish en-route air traffic control
system is being reconfigured for use in the UK.
The process is anticipated to take 6 years.
6Construction by configuration (C-b-C)
- COTS and ERP systems include a set of reusable
abstractions that represent an application domain - The reusable abstractions have to be configured
to adapt them to their local circumstances of use - This can range from simple parameter setting
through the definition of business rules - Sometimes, configuration may require new,
special purpose component development. - C-b-C also may also include configuring the
process as well as configuring the software that
is the way people work has to change to meet the
model assumed by the COTS system
7Configuration
- I use the term configuration to cover both
customisation and adapting software to a specific
execution environment - Adapting the system to reflect
- The specific needs of a customer (e.g. a
hospital) - The requirements of a user or group of users
(e.g. maternity unit or physiotherapy or both) - Interaction with other systems
- The characteristics of the platform on which the
software executes.
8Configuration activities
- Selecting required system modules
- Defining a data model
- Defining business rules
- Defining workflows
- Defining external interactions
- Defining the user interface
- Defining reports produced
- Setting platform parameters
- Data re-engineering
- Re-defining business processes
9A patient management system
- We have followed the deployment of a patient
management system (PIMS) for mental healthcare in
Edinburgh, Scotland - Based around a generic COTS-package developed for
hospitals in England - This was designed to be adapted for supporting
different kinds of clinic including mental
healthcare - Scotland has its own legal system and laws and
healthcare is a devolved responsibility. The
Scottish government sets its own targets and
priorities for healthcare
10Procurement issues
- A major influence in choosing the particular COTS
system was that it offered the opportunity for
hospital managers (rather than clinical staff) to
control how information was recorded - The government placed a tight deadline on
hospitals for reporting against a set of targets - There was little time to carry out a detailed
comparison of alternatives and this system had
already been successfully deployed elsewhere
11Software engineering
- Configuring the data model required for a
particular set of clinics - Configuring the menus for the particular type of
clinic and the patient information that had to be
recorded - Configuring the reports to be generated by the
system - Configuring the rules that should be applied to
the system data
12Issues and problems
- Objectives conflict
- Management objective - provide reports against a
set of headings defined by the Executive - Clinical objectives - record patient information
according to clinical classification - Invalid configuration assumptions
- The language for defining the rules of the system
was not expressive enough to cover the
requirements of Scots law regarding the forced
detention of patients who were a danger to
themselves or others - Failure to configure the process
- Local process differences meant that different
clinics recorded different information about
patients
13The C-b-C process for COTS
- There is often no clear distinction between
specification, design and development - Systems are rarely completely configured before
being put into use. The configuration process
continues as the system is integrated with
operational processes - There can be extensive (uncontrolled) user
configuration of the system - The expectations of system stakeholders have to
be configured to reflect the realities of he
system
14Process characteristics
- Two-stage system requirements process
- Identify general business requirements to chose a
reusable system - Identify specific requirements from the settings
where the system will be used. - Business process redesign
- The business processes have to be redesigned to
r4flect the constraints of the selected system - Co-design of process and software
- May be more active stakeholder involvement in the
development process. - Limited testing - often post-deployment testing
to iron out problems - Good practices such as configuration management,
reviews, etc. are very difficult to implement
15Choosing a COTS system
- The decision on which COTS system to use is
rarely a transparent process, based on a detailed
analysis of the requirements in a specific
setting - Issues that affect the decision include
- Political issues
- Platform issues
- Cost and schedule issues
- Availability of expertise
- Prejudice!
16Co-design
- For C-by-C, separating requirements and
development/deployment is unlikely to be
successful - Requirements compromises are essential because
the stakeholders real needs need to be matched
with what the system actually provides - Configurability makes co-design, with stakeholder
involvement in the design process, much easier - However, users may misunderstand the (lack of)
system flexibility
17System testing
- Testing is a particular problem for COTS-based
systems - Systems are not designed for running automated
test suites - There is no specification that can serve as a
basis for deriving tests - Failures are often not observable by testers as
they are failures in process support that can
only be recognised by users - Problems that arise are often a consequence of
interactions between the process of use and the
system rather than system failure.
18System evolution
- Handover process from consultants to local IT
staff. Change of system ownership - Limited expertise with system - may be managers
rather than software engineers - Problems of change management exacerbated because
of the system configurability - Increasing system entropy as local configuration
changes are implemented - Evolution of underlying COTS system outside
control of system owners
19Configuration problems
- Understanding the configuration possibilities
- Knowing what can be configured is not easy,
especially if more than one product is included
in the system - Understanding how to configure a system
- Typically, configuration requires both business
knowledge and technical knowledge - Predicting the consequences of configuration
decisions - It is often difficult to understand how changing
a configuration will affect the use and behaviour
of a system while it is in operation - Understanding how a system is configured
20Multiple configuration possibilities
- Ways in which MS Word can be configured (that Im
aware of) - Preferences screen
- Customisation screen
- Organiser screen
- Definition of templates
- Definition of styles
- Definition of macros
- Inclusion of add-ins (e.g. Endnote)
21Understanding how to configure
22Configuration predictability
- If you change a program, it is generally possible
to hypothesise how this will affect the behaviour
of the executing system - When you change a configuration, the relationship
is less obvious - Change becomes a process of ad hoc
experimentation. Gurus evolve who can suggest
what to do but who cant explain why it should be
done that way
23Understanding the configuration
- Once a system has been configured, how can others
understand the configuration. - Requirements/design/code traceability is
difficult enough in conventional systems but much
harder in COTS where - Requirements are not properly documented as a
result of the co-design process - Understanding requires knowledge of the COTS
system knowledge of the configuration. - Change costing and impact analysis is difficult
- E.g. in the healthcare system we looked at, it
was originally estimated that changing menus
would take a few days. It ended up taking several
months.
24Research challenges
- Design for configuration
- Design principles for configurability
- Configuration visibility
- Configuration description
- Configuration engineering
- Knowledge management for system engineering
- System modelling
- Methods and tools for COTS-based system testing
- Adapt supporting software engineering processes
for C-by-C
25Principles for configurable design
- We need a coherent set of tested principles in
this area to guide design and implementation - Possible examples of principles
- Principle of visibility - make configurations
explicit? - Principle of low coupling - reduce dependencies
across configurations? - Principle of scalability - separate configuration
of system deployment from configuration of
functionality? - Principle of localisation - localise volatile
configuration entities? - The diversity of different approaches to C-b-C
mean that identifying unifying principles across
different systems is very difficult
26Configuration visualisation
- In most current systems, configurations are
opaque - it is difficult or impossible to view
the configuration as a whole, at different levels
of abstraction or to navigate through the
configuration space - There is a need for tools that allow engineers to
see the configuration state of a system and to
explore dependencies across that state - What configuration information is most useful to
system developers? - What is the best way to present configuration
views to system developers?
27Configuration description
- Configuration policies
- There is sometimes a wide gap between
organisational policy (especially, security
policy) and the realisation of that policy as a
configuration - Configuration compilation
- Methods and tools are needed to allow higher
level configuration specification and the
automatic generation of a configuration from that
specification
28Knowledge management
- Configuration engineering requires a close
collaboration between different classes of system
user, business analysts and system developers - Our experience has been that major problems arise
because of failure to communicate across and
within the different groups in an organisation - Better knowledge management support is required
to capture, classify and share knowledge about
assumptions, problems, the organisation and the
system itself
29Configuration modelling
- Modelling notations such as the UML are focused
on developing object-oriented models of the
system - While some UML models (such as Use-Case models)
can be used for configuration engineering, the
majority of the UML models are either
inappropriate or cannot be applied in a natural
way when configuring a generic system - What domain-oriented modelling techniques are
most useful, how can they be used and adapted to
support understanding and analysis of systems
being built using CbyC?
30System testing
- Workflow testing
- How can workflow models built into the system be
tested against the reality of work? - Test management
- How can test coverage be assessed and improved?
- How can regression testing be supported?
- Test-first development
- Is this a valid approach for systems developed
using CbC?
31Supporting processes
- Users may be partly responsible for parts of the
configuration process. This causes major problems
with supporting processes - Configuration management
- Existing tools are oriented to source code
- Change management
- Can users be stopped from making ad hoc changes?
How do users find out about changes? - Quality management
- What does a high-quality configuration mean?
32Conclusions
- Construction by configuration is a reality for
modern business software development - Political, technical and business factors mean
that this approach will be increasingly used for
all types of system - Our current ad hoc approaches are not good
enough - we need to adapt software engineering
methods and techniques for this approach.