Download Lecture 2 and more Lecture notes Information and Computer Technology in PDF only on Docsity!
SOFTWARE
ENGEENERING
SOFTWARE EVOLUTION
Definition
Software Evolution i s the process of developing a software product using software engineering principles and methods Software evolution refer to the process of developing software initially, then repeatedly updating it for various reasons.
Software Evolution Laws
Lehman has given laws for software evolution. He divided the software into three different categories:
- (^) Static-type (S-type)
- (^) This is a system, which works strictly according to defined specifications and solutions
- (^) These are simple systems are generally not subject to evolution
- (^) Example, calculator program,
Cont.
- (^) Practical-type (P-type)
- (^) The p-type software have their requirements defined precisely and formally,
- (^) But its intended solution is not immediately ostensible
- (^) and its acceptability is dependent on the environment in which the program is being used
- (^) P-type programs are iteratively developed in order to improve their effectiveness.
- (^) Example, gaming software
- (^) Embedded-type (E-type)
- (^) This software works closely as the requirement of real-world environment
- (^) This software has a high degree of evolution as there are various changes in laws, taxes etc.
- (^) Example, Online trading software
Cont.
- (^) 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.
Cont.
- (^) Declining quality
- (^) The quality of systems will appear to be declining unless it is rigorously maintained and adapted to operational environment changes
- (^) Feedback system
- (^) Evolution processes incorporate multi-agent, multi-loop feedback systems and must be treated to achieve significant product improvement.
Software Development Paradigm
- (^) This is also known as software engineering paradigms; where all the engineering concepts pertaining to the development of software are applied.
- (^) This phase consist of:-
- (^) Requirement gathering
- (^) Software design
- (^) Programming
Software Design Paradigm This paradigm is a part of Software Development and includes –
- (^) Design
- (^) Maintenance
- (^) Programming Programming Paradigm This paradigm is related closely to programming aspect of software development. This includes –
- (^) Coding
- (^) Testing
- (^) Integration
Change identification and evolution
Software Evolution Process
Importance of evolution
- (^) 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 evolving existing
- (^) software rather than developing new software.
Key points
- (^) Software development and evolution should be a single iterative process.
- (^) Lehman’s Laws describe a number of insights into system evolution.
- (^) The process of evolution is driven by requests for changes from system stakeholders.
- (^) The business value of a legacy system and its quality should determine the evolution strategy that is used.
THANK YOU