Software Maintenance and Support
- Correcting defects
- Adapting application to a changing business environment
- Implementing enhancement at the request of stakeholders.
- Supporting users as they integrate an application into their personal and business workflow.
What is Maintainable Software ?
- Maintainable software exhibits effective modularity
- It makes use of design patterns that allow ease of understanding.
- It has been constructed using well-defined coding standards and conventions, leading to source code that is self-documenting and understandable.
- It has undergone a variety of quality assurance techniques that have uncovered potential maintenance problems before the software is released.
- It has been created by software engineers who recognize that they may not be around when changes must be made.
Supportability of Software
The software should contain facilities to assist support personnel when a defect is encountered in the operational environment.
Reengineering
To support new business rules, existing software may be modified or rebuilt.
Business Process Reengineering
Business Process Reengineering is the fundamental rethinking and radical redesign of business processes to achieve dramatic improvements in critical contemporary measures of performance, such as cost, quality, service, and speed, according to Hammer and Champy.
Model of BPR |
The general software reengineering principles are ?
- Inspect the product
- Inspect the structure of the product, rebuild if it is weak, remodel if it is structurally sound
- Understand how well the original was built before you rebuild
- If you begin rebuild, use only the best methods, tools, resources etc
- Be disciplined about it – use practices that will result in high quality
Software Reengineering Process Model |
Inventory Analysis
Analyze and prioritize to select candidates for reengineering.
Document Restructuring
Weak documentation is the trademark of many legacy systems.
Reverse Engineering
Recreate design and specification information from the source code.
Code Structuring
Violations of structured programming constructs are noted and code is then restructured.
Data Structuring
Data architecture has a strong influence on program architecture and the algorithms that populate it, changes to the data will invariably result in either architectural or code-level changes.
Forward Engineering
Forward engineering process applies software engineering principles, concepts, and methods to re-create an existing application.
Lehman’s Law of Software Evolution shouldn't be input in module 8 as the series of laws are not match with our topic about maintenance of software. This is because the law is not applicable in real case where student only have to know software supportability.
The good methods to study this module will be categorized the topic into maintenance and software elements which topics that we can memorize and the second part will be ways and criterias of reengineering software.
Teh Kok Harng
IS085779
No comments:
Post a Comment