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^^