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 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
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 metadata 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 Internet 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 WINDOWS 2000 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 user 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 Software maintenance 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 software architecture 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
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, Software Evolution & Maintenance
Terimakasih v^^
Software Deployment, Software Evolution & Maintenance