The document discusses the software maintenance framework, which consists of interconnected factors including the user requirements, organizational and operational environments, maintenance process, software product, and maintenance personnel. It defines these components and describes how changes in one area, such as the operating environment or user requests, can impact other parts of the framework and drive the need for software maintenance. The relationships between these different factors are important to understand in order to predict problems and improve maintenance activities.
The document discusses the software maintenance framework, which consists of interconnected factors including the user requirements, organizational and operational environments, maintenance process, software product, and maintenance personnel. It defines these components and describes how changes in one area, such as the operating environment or user requests, can impact other parts of the framework and drive the need for software maintenance. The relationships between these different factors are important to understand in order to predict problems and improve maintenance activities.
The document discusses the software maintenance framework, which consists of interconnected factors including the user requirements, organizational and operational environments, maintenance process, software product, and maintenance personnel. It defines these components and describes how changes in one area, such as the operating environment or user requests, can impact other parts of the framework and drive the need for software maintenance. The relationships between these different factors are important to understand in order to predict problems and improve maintenance activities.
Objectives Look in detail at the context in which software maintenance activities are carried out. Discuss in depth the components of the maintenance framework and show how they interrelate.
Lec02 Maintenance Framework 2
“Everything is connected to everything” [Mercury Rising: Film 1998]
Lec02 Maintenance Framework 3
Introduction Software maintenance is not an activity carried out in a vacuum. It affects, and interacts with the environment within which it is carried out. It is changes and interactions in the surrounding environment that bring about the need for change. Understanding the framework, and the relationship between the factors comprising this framework allows prediction of problem areas and the ability to avoid them.
Lec02 Maintenance Framework 4
Definitions Environment The totality of conditions and influences which act from outside upon an entity. Environmental factor An agent which acts upon the entity from without and influences its form or operation. Framework A set of ideas, conditions, or assumptions that determine how something will be approached, perceived, or understood.
Lec02 Maintenance Framework 5
Definitions Information gap The discrepancy between the body of knowledge that system users and system maintainers possess and the body of knowledge that each needs to have in order to satisfy a request for change. Maintenance challenge The need to keep systems running. Far more complex Software is not subject to physical wear and tear, but to influences less easy to identify and address area.
Lec02 Maintenance Framework 6
Definitions Maintenance personnel The individuals involved in maintaining a software product. Maintenance process Any activity carried out, or action taken, either by a machine or maintenance personnel during software maintenance. Operating environment All software and hardware systems that influence or act upon a software product in any way.
Lec02 Maintenance Framework 7
Definitions Organizational environment All non-software or non-hardware related environmental factors. Safety-critical A system where failure could result in death, injury or illness, major economic loss, environmental or property damage. Safety-related A system where failure could significantly increase the risk of injury or damage. Software maintenance framework The context and environment in which software maintenance activities are carried out.
Lec02 Maintenance Framework 8
Components of a software maintenance framework User requirements Organizational environment Operational environment Maintenance process Software product Maintenance personnel
Lec02 Maintenance Framework 9
Lec02 Maintenance Framework 10 User Individuals who use the system, regardless of their involvement in its development or maintenance. Features Requests for additional functionality, error correction and improving maintainability Request for non-programming-related support
Lec02 Maintenance Framework 11
Environment Operating environment Hardware innovations The hardware platform on which a software system runs may be subject to change during the lifetime of the software When a processor is upgraded, compilers that previously produced machine code for that processor may need to be modified Software innovations Changes in the host software may warrant a corresponding modification in the software product. E.g. of host software systems whose modification may affect other software products Operating systems, database management systems and compilers
Lec02 Maintenance Framework 12
Environment Organisational environment Changes in policies A change in the business rule (the procedures used by an organisation in its day-to-day operation) or taxation policy leads to a corresponding modification of the programs affected. Competition in the market place Organisations strive towards having a competitive edge over their rivals. This can imply carrying out substantial modifications so as to maintain the status of the product – reflected in the level of customer satisfaction – or to increase the existing ‘client base’.
Lec02 Maintenance Framework 13
Maintenance Process Capturing change requirements The process of finding out exactly what changes are required. It poses a lots of problems. It’s difficult to capture all requirements a priori. Requirements and user problems only really become clear when a system is in use Many users know what they want but lack the ability to express it in a form understandable to the analyst of programmer. Information gap
Lec02 Maintenance Framework 14
Maintenance Process Variation in programming practice Differences in approach used for writing and maintaining programs Paradigm shift An alteration in the way we develop and maintain software As well as the many systems still in use that were developed using low-level programming languages and those developed prior to the advent of structured programming techniques, there are many programs in operation and in need of maintenance that were developed without the means to take advantage of the more advanced and more recently developed techniques. Lec02 Maintenance Framework 15 Maintenance Process Paradigm shift Such programs inherit a number of characteristics They were designed using techniques and methods that fail to communicate essential features such as program structure, data abstractions and function abstractions. The programming languages and techniques used to write the code did not take visible and obvious the program structure, program interfaces, data structures and types, and functions of the system The constraints that affected their design no longer present a problem today.
Lec02 Maintenance Framework 16
Maintenance Process Paradigm shift To address the weaknesses and reap the benefits of modern development practices and the latest programming languages, existing programs may be restructured or completely rewritten. Structured programming, object orientation, hierarchical program decomposition, automated code upgrading. Error detection and correction ‘Error-free’ software is non-existent. The costs gets higher if the errors are detected during the maintenance phase. Lec02 Maintenance Framework 17 Lec02 Maintenance Framework 18 Software Product Aspects of a software product that contribute to the maintenance challenge include Maturity and difficulty of the application domain Quality of the documentation Malleability of the programs Ad hoc software changes may have unknown and even fatal repercussions. This is particularly true of safety-related or safety-critical systems Inherent quality The nature of the evolution of a software product is very closely tied to the nature of its associated programs. Lec02 Maintenance Framework 19 Maintenance Personnel Include maintenance managers, analysts, designers, programmers and testers The personnel aspects that affect maintenance activities include Staff turnover Domain expertise Working practices
Lec02 Maintenance Framework 20
Relations between maintenance factors Relation between product and environment The software is embedded in a cultural matrix of applications, laws and machine vehicles. These all change continually, and their changes inexorably force change upon the product Relation between product and user Interaction between personnel and product
Jewelry 7000 Years An International History and Illustrated Survey From The Collections of The - Hugh Tait - May 1991 - Abradale Books - 9780810981034 - Anna's Archive