<<

Software Deployment, Maintenance & Evolution

REKAYASA PERANGKAT LUNAK Semester Ganjil 2015/2016

ADAM HENDRA BRATA

Deployment

Software Deployment, Software Evolution & Maintenance Definition

 The delivery, assembly and management at a site of the resources necessary to use a version of a  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

Software Deployment, Software Evolution & Maintenance Urgency

 Software systems are no longer merely stand- alone 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, Software Evolution & Maintenance

Processes

Software Deployment, Software Evolution & Maintenance Processes

 Release  Interface between developers and actors/users  The software is assembled into packages containing sufficient to describe the resources on which it depends  It includes packaging and advertising  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

Software Deployment, Software Evolution & Maintenance Processes

 De-Activation  In many systems this is required prior to adaptation or reconfiguration where a piece of software must be passivated and rendered non- invocable  the inverse of activation  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, Software Evolution & Maintenance 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  integration

 Security

Software Deployment, Software Evolution & Maintenance Deployment Challenges

 Mobile applications  Heterogeneity and number of the devices  Intermittent network connections  The lack of centralized control

 Personal owned

Software Deployment, Software Evolution & Maintenance

Maintenance

Software Deployment, Software Evolution & Maintenance 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

Software Deployment, Software Evolution & Maintenance Examples

 Y2K  many, many systems had to be updated  language analyzers (find where changes need to be made)  Anti-Virus Software  don't usually have to update software, but must send virus definitions  Web-based applications  73% of total cost of e-commerce used to re- design the website after its first

implementation

Software Deployment, Software Evolution & Maintenance Examples

 Windows NT  30 million LOC added within 6 years

Growth of Windows NT

35 30

25

20

15 WINDOWS NT 4.0

10 WINDOWS NT 3.51

5 WINDOWS NT 3.5 Lines of Code (millions) WINDOWS NT 3.1 0 1992 1993 1994 1995 1996 1997 1998 1999 2000

Year

Software Deployment, Software Evolution & Maintenance Types

 Adaptive  changes in the software environment (DBMS, OS)  Perfective  new requirements  Corrective  diagnosing and fixing errors  Preventive  prevent problem in the futures (increasing software maintainability and reliability)

 Facts:  75% on adaptive and perfective; 21% on

corrective; 4% on preventive

Software Deployment, Software Evolution & Maintenance Processes

 Depending on the types of software being maintained, the development processes used in an organization and people involved in the process

Change Impact Release Change System requests analysis planning implementation release

Perfective Adaptive Corrective

maintenance maintenance maintenance

Software Deployment, Software Evolution & Maintenance 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%)  Other factors (1994 study)  Quality of original application  Documentation quality  Rotation of

maintenance people

Software Deployment, Software Evolution & Maintenance Difficulties

 More factors (Yip ’95 study)  Lack of human resources  Different programming styles conflict  Lack of documentation and tools  Bad maintenance management  Documentation policy

 Turnover

Software Deployment, Software Evolution & Maintenance Maintenance Cost Factors

 Team stability  Maintenance costs are reduced if the same staff are involved with them for some time  Contractual responsibility  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, Software Evolution & Maintenance

Evolution

Software Deployment, Software Evolution & Maintenance Evolution

 What is evolution ??

Software Deployment, Software Evolution & Maintenance 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   bug fixing or error correction

 Software evolution  adaptive and perfective

Software Deployment, Software Evolution & Maintenance Software Change

 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, Software Evolution & Maintenance 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

Software Deployment, Software Evolution & Maintenance Lehman’s Law Law Description Continuing A program that is used in a real-world environment must necessarily change change, or else become progressively less useful in that environment. Increasing As an evolving program changes, its structure tends to become more complexity complex. Extra resources must be devoted to preserving and simplifying the structure. Large program Program evolution is a self-regulating process. System attributes such as evolution size, time between releases, and the number of reported errors is approximately invariant for each system release. Organizational Over a program’s lifetime, its rate of development is approximately stability constant and independent of the resources devoted to system development. Conservation of Over the lifetime of a system, the incremental change in each release is familiarity approximately constant. Continuing The functionality offered by systems has to continually increase to maintain growth user satisfaction. Declining quality The quality of systems will decline unless they are modified to reflect changes in their operational environment. Feedback system Evolution processes incorporate multi-agent, multi-loop feedback systems

and you have to treat them as feedback systems to achieve significant Maintenance & Evolution & Maintenance Software Deployment, Software product improvement. Stage Model : Software Life Cycle

Initial development

first running version evolution changes

Evolution

code decay servicing patches

Servicing

servicing discontinued

Phase-out

Switch-off

Close-down

Software Deployment, Software Evolution & Maintenance Versioned Stage Model

Initial development

first running version

evolution changes

Evolution Version 1 servicing patches

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 Phase-out Version 2

Evolution Version . . . Maintenance & Evolution & Maintenance Software Deployment, Software Close-down Version 2 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

Software Deployment, Software Evolution & 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, Software Evolution & Maintenance

Evolution : ROI

Software Deployment, Software Evolution & Maintenance 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 and software team

knowledge make evolution possible

Software Deployment, Software Evolution & Maintenance 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

Software Deployment, Software Evolution & Maintenance Phase-out and Close-down

 Phase-out  no more servicing is being undertaken  system still may be in production/use  Close-down  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?

Software Deployment, Software Evolution & Maintenance Next

Advanced Research and Development  Software  Information Technology Industrial Management  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, Software Evolution & Maintenance

Terimakasih v^^

Software Deployment, Software Evolution & Maintenance