Software Deployment, Maintenance Evolution
Software Deployment,
Maintenance &
Evolution
REKAYASA PERANGKAT LUNAK
Semester Ganjil 2015/2016
ADAM HENDRA BRATA
Software Deployment,
Maintenance & Evolution
Deployment
Software Deployment,
Maintenance & Evolution
Definition
The delivery, assembly and management at a
site of the resources necessary to use a version
of a software system make a software
system available to its users
A software system is a coherent collection of
artifacts, such as executable files, source code,
data files, and documentation, that are needed at
a site to offer some functionalities to the end
users
Urgency
Software Deployment,
Maintenance & Evolution
Software systems are no longer merely standalone applications
Increasingly, software systems are the integration
of a collection of components, both executable
and data, possibly dispersed over numerous
heterogeneous networked nodes
Software Deployment,
Maintenance & Evolution
Processes
Processes
Release
Interface between developers and actors/users
The software is assembled into packages
containing sufficient metadata to describe the
resources on which it depends
It includes packaging and advertising
Software Deployment,
Maintenance & Evolution
Installation
The software is transferred to the customer and
configured in preparation for activation
Activation
The process of starting the software execution or
putting in place triggers that will execute the
software at an appropriate time
Processes
De-Activation
In many systems this is required prior to
adaptation or reconfiguration where a piece of
software must be passivated and rendered noninvocable the inverse of activation
Software Deployment,
Maintenance & Evolution
Update
The process of changing a piece of installed
software usually triggered by the release of a new
version by the developers
Special case of installation de-activation and
re-activation
De-Installation
Removing the deployed software from the
machine on which it was deployed
Obsolence (De-Release)
No longer supported by developers
Software Deployment,
Maintenance & Evolution
Deployment Issues
Change management introducing hardware
and software changes
Dependencies management among software
components
Large-scale content distribution network
reliability
Interoperability of heterogeneous platforms
Deployment coordination and customization
big-bang or incremental
Internet integration
Security
Deployment Challenges
Mobile applications
Software Deployment,
Maintenance & Evolution
Heterogeneity and number of the devices
Intermittent network connections
The lack of centralized control
Personal owned
Software Deployment,
Maintenance & Evolution
Maintenance
Software Deployment,
Maintenance & Evolution
Definition
The modification of a software product after
delivery to correct faults, to improve performance
or other attributes, or to adapt the product to a
modified environment (IEEE)
The modification of a software product after
delivery to correct faults, to improve performance
or other attributes (ISO/IEC)
The software product undergoes modification to
code and associated documentation due to a
problem or the need for improvement. The
objective is to modify the existing software
product while preserving its integrity
Examples
Y2K
many, many systems had to be updated
language analyzers (find where changes need to
be made)
Anti-Virus Software
Software Deployment,
Maintenance & Evolution
don't usually have to update software, but must
send virus definitions
Web-based applications
73% of total cost of e-commerce used to redesign the website after its first
implementation
Examples
Windows NT
30 million LOC added within 6 years
Growth of Windows NT
Lines of Code (millions)
Software Deployment,
Maintenance & Evolution
35
WINDOWS 2000
30
25
20
15
WINDOWS NT 4.0
WINDOWS NT 3.51
10
WINDOWS NT 3.5
5
WINDOWS NT 3.1
0
1992
1993
1994
1995
1996
Year
1997
1998
1999
2000
Types
Adaptive
changes in the software environment (DBMS, OS)
Perfective
new user requirements
Corrective
diagnosing and fixing errors
Software Deployment,
Maintenance & Evolution
Preventive
prevent problem in the futures (increasing
software maintainability and reliability)
Facts:
75% on adaptive and perfective; 21% on
corrective; 4% on preventive
Processes
Software Deployment,
Maintenance & Evolution
Depending on the types of software being
maintained, the development processes used in
an organization and people involved in the
process
Change
requests
Impact
analysis
Perfective
maintenance
Release
planning
Change
implementation
Adaptive
maintenance
Corrective
maintenance
System
release
Difficulties
Factors adversely effect maintenance
Lack of models or ignorance of available models
(73%)
Lack of documentation (67.6%)
Lack of time to update existing documentation
(54.1%)
Software Deployment,
Maintenance & Evolution
Other factors (1994 study)
Quality of original application
Documentation quality
Rotation of
maintenance people
Difficulties
More factors (Yip ’95 study)
Software Deployment,
Maintenance & Evolution
Lack of human resources
Different programming styles conflict
Lack of documentation and tools
Bad maintenance management
Documentation policy
Turnover
Maintenance Cost Factors
Team stability
Maintenance costs are reduced if the same staff
are involved with them for some time
Contractual responsibility
Software Deployment,
Maintenance & Evolution
The developers of a system may have no
contractual responsibility for maintenance so there
is no incentive to design for future change
Staff skills
Maintenance staff are often inexperienced and
have limited domain knowledge
Program age and structure
As programs age, their structure is degraded and
they become harder to understand and change
Software Deployment,
Maintenance & Evolution
Evolution
Software Deployment,
Maintenance & Evolution
Evolution
What is evolution ??
Software Deployment,
Maintenance & Evolution
Definition
Changing a software product after delivery to
adapt such system to the ever-changing user
requirements and operating environment the
system operates in or address a problem or
activity of a real world
Software maintenance bug fixing or error
correction
Software evolution adaptive and perfective
Software Change
Software Deployment,
Maintenance & Evolution
Software change is inevitable
New requirements emerge when the software is
used
The business environment changes
Errors must be repaired
New computers and equipment is added to the
system
The performance or reliability of the system may
have to be improved
A key problem for all organizations is
implementing and managing change to their
existing software systems
Software Deployment,
Maintenance & Evolution
Urgency
Organisations have huge investments in their
software systems - they are critical business
assets
To maintain the value of these assets to the
business, they must be changed and updated
The majority of the software budget in large
companies is devoted to changing and evolving
existing software rather than developing new
software
Lehman’s Law
Description
Continuing
change
A program that is used in a real-world environment must necessarily
change, or else become progressively less useful in that environment.
Increasing
complexity
As an evolving program changes, its structure tends to become more
complex. Extra resources must be devoted to preserving and simplifying
the structure.
Large program
evolution
Program evolution is a self-regulating process. System attributes such as
size, time between releases, and the number of reported errors is
approximately invariant for each system release.
Organizational
stability
Over a program’s lifetime, its rate of development is approximately
constant and independent of the resources devoted to system
development.
Conservation of
familiarity
Over the lifetime of a system, the incremental change in each release is
approximately constant.
Continuing
growth
The functionality offered by systems has to continually increase to maintain
user satisfaction.
Declining quality
The quality of systems will decline unless they are modified to reflect
changes in their operational environment.
Software Deployment,
Maintenance & Evolution
Law
Feedback system Evolution processes incorporate multi-agent, multi-loop feedback systems
and you have to treat them as feedback systems to achieve significant
product improvement.
Stage Model : Software Life Cycle
Initial development
first running version
evolution changes
Evolution
Software Deployment,
Maintenance & Evolution
code decay
servicing patches
Servicing
servicing discontinued
Phase-out
Switch-off
Close-down
Versioned Stage Model
Initial development
first running version
evolution changes
Evolution Version 1
servicing patches
Software Deployment,
Maintenance & Evolution
Servicing Version 1
evolution of new version
evolution changes
Phase-out Version 1
Evolution Version 2
servicing patches
Close-down Version 1
Servicing Version 2
evolution of new version
Evolution Version . . .
Phase-out Version 2
Close-down Version 2
Software Deployment,
Maintenance & Evolution
Initial Development
Developing the first version
System architecture proposed even with some
lack features
System knowledge acquired: application domain,
user requirements, data formats, algorithms,
operating environment, etc. crucial for the
evolution
Evolution
Software Deployment,
Maintenance & Evolution
The stage in a software system’s life cycle where
it is in operational use and is evolving as new
requirements are proposed and implemented in
the system
The first version already released successfully
Successful in the marketplace
User demand is strong
Revenue streams are buoyant
The organization is supportive
ROI is excellent
Software Deployment,
Maintenance & Evolution
Evolution : ROI
Software Deployment,
Maintenance & Evolution
Evolution
Adapts the application to the ever-changing user
and operating environment
Adds new features
Corrects mistakes and misunderstandings
Responds to both developer and user learning
Program usually grows during evolution
Both software architecture and software team
knowledge make evolution possible
Software Deployment,
Maintenance & Evolution
Servicing
Software maturity no longer evolvable
The software remains useful but the only
changes made are those required to keep it
operational i.e. bug fixes and changes to reflect
changes in the software’s environment small
tactical change
No new functionality is added
Code decay loss of system knowledge due to
the loss of key personnel system goes to
servicing
Transition from evolution is irreversible
technical and knowledge problems must be
addressed
Phase-out and Close-down
Phase-out
no more servicing is being undertaken
system still may be in production/use
Close-down
Software Deployment,
Maintenance & Evolution
the software use is disconnected
towards replacement
an ‘exit strategy’ is needed :
changing to another system requires retraining
what to do with long-lived data?
Next
Software Deployment,
Maintenance & Evolution
Software Engineering Advanced Research and
Development
Software Project Management
Information Technology Industrial Management
Software Quality Assurance
“As long as we live in this digital era, we are needed”
Who are we ?
We are IT Engineer
Whatever your majority !
Software Deployment,
Maintenance & Evolution
Terimakasih v^^
Maintenance &
Evolution
REKAYASA PERANGKAT LUNAK
Semester Ganjil 2015/2016
ADAM HENDRA BRATA
Software Deployment,
Maintenance & Evolution
Deployment
Software Deployment,
Maintenance & Evolution
Definition
The delivery, assembly and management at a
site of the resources necessary to use a version
of a software system make a software
system available to its users
A software system is a coherent collection of
artifacts, such as executable files, source code,
data files, and documentation, that are needed at
a site to offer some functionalities to the end
users
Urgency
Software Deployment,
Maintenance & Evolution
Software systems are no longer merely standalone applications
Increasingly, software systems are the integration
of a collection of components, both executable
and data, possibly dispersed over numerous
heterogeneous networked nodes
Software Deployment,
Maintenance & Evolution
Processes
Processes
Release
Interface between developers and actors/users
The software is assembled into packages
containing sufficient metadata to describe the
resources on which it depends
It includes packaging and advertising
Software Deployment,
Maintenance & Evolution
Installation
The software is transferred to the customer and
configured in preparation for activation
Activation
The process of starting the software execution or
putting in place triggers that will execute the
software at an appropriate time
Processes
De-Activation
In many systems this is required prior to
adaptation or reconfiguration where a piece of
software must be passivated and rendered noninvocable the inverse of activation
Software Deployment,
Maintenance & Evolution
Update
The process of changing a piece of installed
software usually triggered by the release of a new
version by the developers
Special case of installation de-activation and
re-activation
De-Installation
Removing the deployed software from the
machine on which it was deployed
Obsolence (De-Release)
No longer supported by developers
Software Deployment,
Maintenance & Evolution
Deployment Issues
Change management introducing hardware
and software changes
Dependencies management among software
components
Large-scale content distribution network
reliability
Interoperability of heterogeneous platforms
Deployment coordination and customization
big-bang or incremental
Internet integration
Security
Deployment Challenges
Mobile applications
Software Deployment,
Maintenance & Evolution
Heterogeneity and number of the devices
Intermittent network connections
The lack of centralized control
Personal owned
Software Deployment,
Maintenance & Evolution
Maintenance
Software Deployment,
Maintenance & Evolution
Definition
The modification of a software product after
delivery to correct faults, to improve performance
or other attributes, or to adapt the product to a
modified environment (IEEE)
The modification of a software product after
delivery to correct faults, to improve performance
or other attributes (ISO/IEC)
The software product undergoes modification to
code and associated documentation due to a
problem or the need for improvement. The
objective is to modify the existing software
product while preserving its integrity
Examples
Y2K
many, many systems had to be updated
language analyzers (find where changes need to
be made)
Anti-Virus Software
Software Deployment,
Maintenance & Evolution
don't usually have to update software, but must
send virus definitions
Web-based applications
73% of total cost of e-commerce used to redesign the website after its first
implementation
Examples
Windows NT
30 million LOC added within 6 years
Growth of Windows NT
Lines of Code (millions)
Software Deployment,
Maintenance & Evolution
35
WINDOWS 2000
30
25
20
15
WINDOWS NT 4.0
WINDOWS NT 3.51
10
WINDOWS NT 3.5
5
WINDOWS NT 3.1
0
1992
1993
1994
1995
1996
Year
1997
1998
1999
2000
Types
Adaptive
changes in the software environment (DBMS, OS)
Perfective
new user requirements
Corrective
diagnosing and fixing errors
Software Deployment,
Maintenance & Evolution
Preventive
prevent problem in the futures (increasing
software maintainability and reliability)
Facts:
75% on adaptive and perfective; 21% on
corrective; 4% on preventive
Processes
Software Deployment,
Maintenance & Evolution
Depending on the types of software being
maintained, the development processes used in
an organization and people involved in the
process
Change
requests
Impact
analysis
Perfective
maintenance
Release
planning
Change
implementation
Adaptive
maintenance
Corrective
maintenance
System
release
Difficulties
Factors adversely effect maintenance
Lack of models or ignorance of available models
(73%)
Lack of documentation (67.6%)
Lack of time to update existing documentation
(54.1%)
Software Deployment,
Maintenance & Evolution
Other factors (1994 study)
Quality of original application
Documentation quality
Rotation of
maintenance people
Difficulties
More factors (Yip ’95 study)
Software Deployment,
Maintenance & Evolution
Lack of human resources
Different programming styles conflict
Lack of documentation and tools
Bad maintenance management
Documentation policy
Turnover
Maintenance Cost Factors
Team stability
Maintenance costs are reduced if the same staff
are involved with them for some time
Contractual responsibility
Software Deployment,
Maintenance & Evolution
The developers of a system may have no
contractual responsibility for maintenance so there
is no incentive to design for future change
Staff skills
Maintenance staff are often inexperienced and
have limited domain knowledge
Program age and structure
As programs age, their structure is degraded and
they become harder to understand and change
Software Deployment,
Maintenance & Evolution
Evolution
Software Deployment,
Maintenance & Evolution
Evolution
What is evolution ??
Software Deployment,
Maintenance & Evolution
Definition
Changing a software product after delivery to
adapt such system to the ever-changing user
requirements and operating environment the
system operates in or address a problem or
activity of a real world
Software maintenance bug fixing or error
correction
Software evolution adaptive and perfective
Software Change
Software Deployment,
Maintenance & Evolution
Software change is inevitable
New requirements emerge when the software is
used
The business environment changes
Errors must be repaired
New computers and equipment is added to the
system
The performance or reliability of the system may
have to be improved
A key problem for all organizations is
implementing and managing change to their
existing software systems
Software Deployment,
Maintenance & Evolution
Urgency
Organisations have huge investments in their
software systems - they are critical business
assets
To maintain the value of these assets to the
business, they must be changed and updated
The majority of the software budget in large
companies is devoted to changing and evolving
existing software rather than developing new
software
Lehman’s Law
Description
Continuing
change
A program that is used in a real-world environment must necessarily
change, or else become progressively less useful in that environment.
Increasing
complexity
As an evolving program changes, its structure tends to become more
complex. Extra resources must be devoted to preserving and simplifying
the structure.
Large program
evolution
Program evolution is a self-regulating process. System attributes such as
size, time between releases, and the number of reported errors is
approximately invariant for each system release.
Organizational
stability
Over a program’s lifetime, its rate of development is approximately
constant and independent of the resources devoted to system
development.
Conservation of
familiarity
Over the lifetime of a system, the incremental change in each release is
approximately constant.
Continuing
growth
The functionality offered by systems has to continually increase to maintain
user satisfaction.
Declining quality
The quality of systems will decline unless they are modified to reflect
changes in their operational environment.
Software Deployment,
Maintenance & Evolution
Law
Feedback system Evolution processes incorporate multi-agent, multi-loop feedback systems
and you have to treat them as feedback systems to achieve significant
product improvement.
Stage Model : Software Life Cycle
Initial development
first running version
evolution changes
Evolution
Software Deployment,
Maintenance & Evolution
code decay
servicing patches
Servicing
servicing discontinued
Phase-out
Switch-off
Close-down
Versioned Stage Model
Initial development
first running version
evolution changes
Evolution Version 1
servicing patches
Software Deployment,
Maintenance & Evolution
Servicing Version 1
evolution of new version
evolution changes
Phase-out Version 1
Evolution Version 2
servicing patches
Close-down Version 1
Servicing Version 2
evolution of new version
Evolution Version . . .
Phase-out Version 2
Close-down Version 2
Software Deployment,
Maintenance & Evolution
Initial Development
Developing the first version
System architecture proposed even with some
lack features
System knowledge acquired: application domain,
user requirements, data formats, algorithms,
operating environment, etc. crucial for the
evolution
Evolution
Software Deployment,
Maintenance & Evolution
The stage in a software system’s life cycle where
it is in operational use and is evolving as new
requirements are proposed and implemented in
the system
The first version already released successfully
Successful in the marketplace
User demand is strong
Revenue streams are buoyant
The organization is supportive
ROI is excellent
Software Deployment,
Maintenance & Evolution
Evolution : ROI
Software Deployment,
Maintenance & Evolution
Evolution
Adapts the application to the ever-changing user
and operating environment
Adds new features
Corrects mistakes and misunderstandings
Responds to both developer and user learning
Program usually grows during evolution
Both software architecture and software team
knowledge make evolution possible
Software Deployment,
Maintenance & Evolution
Servicing
Software maturity no longer evolvable
The software remains useful but the only
changes made are those required to keep it
operational i.e. bug fixes and changes to reflect
changes in the software’s environment small
tactical change
No new functionality is added
Code decay loss of system knowledge due to
the loss of key personnel system goes to
servicing
Transition from evolution is irreversible
technical and knowledge problems must be
addressed
Phase-out and Close-down
Phase-out
no more servicing is being undertaken
system still may be in production/use
Close-down
Software Deployment,
Maintenance & Evolution
the software use is disconnected
towards replacement
an ‘exit strategy’ is needed :
changing to another system requires retraining
what to do with long-lived data?
Next
Software Deployment,
Maintenance & Evolution
Software Engineering Advanced Research and
Development
Software Project Management
Information Technology Industrial Management
Software Quality Assurance
“As long as we live in this digital era, we are needed”
Who are we ?
We are IT Engineer
Whatever your majority !
Software Deployment,
Maintenance & Evolution
Terimakasih v^^