Professional Documents
Culture Documents
Evolution
Dasar Pengembangan Sistem Informasi
§ 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
Examples
§ Windows NT
§ 30 million LOC added within 6 years
Growth of Windows NT
35
WINDOWS 2000
Lines of Code (millions)
30
25
20
15 WINDOWS NT 4.0
10 WINDOWS NT 3.51
5 WINDOWS NT 3.5
WINDOWS NT 3.1
0
1992 1993 1994 1995 1996 1997 1998 1999 2000
Year
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 maintainability and
reliability)
§ Facts:
§ 75% on adaptive and perfective; 21% on corrective; 4% on
preventive
Proses
§ Depending on the types of software being
maintained, the development processes used in an
organization and people involved in the process
§ Software evolution
§ adaptive and perfective
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
Urgensi
§ 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 laws
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 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 constant
stability 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 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.
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
First running
Evolution Switch-off
version
changes
Evolution Close-down
Code
Servicing
decay
patches
Servicing
Service discontinued
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
§ 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
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
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
§ 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?
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