Configuration Management (CM) is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life. CM can be defined as the management of security features and assurances through control of changes made to hardware, software, firmware, documentation, test, test fixtures, and test documentation throughout the life cycle of an information system. CM for information assurance, sometimes referred to as Secure Configuration Management, relies upon performance, functional, and physical attributes of IT platforms and products and their environments to determine the appropriate security features and assurances that are used to measure a system configuration state. For example, configuration requirements may be different for a network firewall that functions as part of an organization's Internet boundary versus one that functions as an internal local network firewall. In this paper the author discusses about the basic needs of Software Configuration management, the role of preventive Maintenance and predictive maintenance.
Configuration Management was first developed by the United States Air Force for the Department of Defense in the 1950s as a technical management discipline of hardware. The concepts of this discipline have been widely adopted by numerous technical management functions, including Systems Engineering (SE), Integrated Logistics Support (ILS), Capability Maturity Model Integration (CMMI), ISO 9000, Prince2 project management methodology, COBIT, Information Technology Infrastructure Library (ITIL), Product Lifecycle Management, and Application Lifecycle Management. Many of these functions and models have redefined configuration management from its traditional holistic approach to technical management. Some treat configuration management as being similar to a librarian activity, and break out change control or change management as a separate or stand alone discipline. However the bottom-line is always shall be Traceability.
The traditional Software Configuration Management (SCM) process is looked upon by practitioners as the best solution to handling changes in software projects [1]. It identifies the functional and physical attributes of software at various points in time, and performs systematic control of changes to the identified attributes for the purpose of maintaining software integrity and traceability throughout the software development life cycle.
The SCM process further defines the need to trace changes and the ability to verify that the final delivered software has all of the planned enhancements that are supposed to be included in the release. It identifies four procedures that must be defined for each software project to ensure that a sound SCM process is implemented. They are:
These terms and definitions change from standard to standard, but are essentially the same.
Configuration identification is the process of identifying the attributes that define every aspect of a configuration item. A configuration item is a product (hardware and/or software) that has an end-user purpose. These attributes are recorded in configuration documentation and baselined. Baselining an attribute forces formal configuration change control processes to be effected in the event that these attributes are changed.
Configuration change control is a set of processes and approval stages required to change a configuration item's attributes and to re-baseline them.
Configuration status accounting is the ability to record and report on the configuration baselines associated with each configuration item at any moment of time.
Configuration audits are broken into functional and physical configuration audits. They occur either at delivery or at the moment of effecting the change. A functional configuration audit ensures that functional and performance attributes of a configuration item are achieved, while a physical configuration audit ensures that a configuration item is installed in accordance with the requirements of its detailed design documentation.
Configuration management is widely used by many military organizations to manage the technical aspects of any complex systems, such as weapon systems, vehicles, and information systems [2]. The discipline combines the capability aspects that these systems provide an organization with the issues of management of change to these systems over time. Outside of the military, CM is appropriate to a wide range of fields and industry and commercial sectors.
Configuration management is used to maintain an understanding of the status of complex assets with a view to maintaining the highest level of serviceability for the lowest cost. Specifically, it aims to ensure that operations are not disrupted due to the asset (or parts of the asset) overrunning limits of planned lifespan or below quality levels.
In the military, this type of activity is often classed as "mission readiness", and seeks to define which assets are available and for which type of mission; a classic example is whether aircraft on-board an aircraft carrier are equipped with bombs for ground support or missiles for defense.
A theory of configuration maintenance was worked out by Mark Burgess with a practical implementation on present day computer systems in the software Cfengine able to perform real time repair as well as preventive maintenance.
The care and servicing by personnel for the purpose of maintaining equipment and facilities in satisfactory operating condition by providing for systematic inspection, detection, and correction of incipient failures either before they occur or before they develop into major defects [3]. Maintenance, including tests, measurements, adjustments, and parts replacement, performed specifically to prevent faults from occurring.
Preventive maintenance can be described as maintenance of equipment or systems before fault occurs. It can be divided into two subgroups: Planned maintenance and Condition-based maintenance. The main difference of subgroups is determination of maintenance time, or determination of moment when maintenance should be performed. While preventive maintenance is generally considered to be worthwhile, there are risks such as equipment failure or human error involved when performing preventive maintenance, just as in any maintenance operation [4]. Preventive maintenance as scheduled overhaul or scheduled replacement provides two of the three proactive failure management policies available to the maintenance engineer.
Common methods of determining what Preventive (or other) failure management policies should be applied are; OEM recommendations, requirements of codes and legislation within a jurisdiction, what an "expert" thinks ought to be done, or the maintenance that's already done to similar equipment, and most important measured values and performance indications.
Preventive maintenance is conducted to keep equipment working and/or extend the life of the equipment. Corrective maintenance, sometimes called "repair," is conducted to get equipment working again. The primary goal of maintenance is to avoid or mitigate the consequences of failure of equipment [5]. This may be by preventing the failure before it actually occurs which Planned Maintenance and Condition Based Maintenance help to achieve. It is designed to preserve and restore equipment reliability by replacing worn components before they actually fail. Preventive maintenance activities include partial or complete overhauls at specified periods, oil changes, lubrication and so on. In addition, workers can record equipment deterioration so they know to replace or repair worn parts before they cause system failure. The ideal preventive maintenance program would prevent all equipment failure before it occurs.
Predictive Maintenance (PdM) techniques help determine the condition of in-service equipment in order to predict when maintenance should be performed. This approach offers cost savings over routine or time-based preventive maintenance, because tasks are performed only when warranted. The main value of Predicted Maintenance is to allow convenient scheduling of corrective maintenance, and to prevent unexpected equipment failures. The key is "the right information in the right time". By knowing which equipment that needs maintenance, the maintenance work can be better planned (spare parts, people etc.) and what would had been "unplanned stops" are transformed to shorter and fewer "planned stops" thus increasing plant availability. Other values are increased equipment life time, increased plant safety, fewer accidents with negative impact on environment, an optimised spare parts handling, etc.
PdM, or condition-based maintenance, attempts to evaluate the condition of equipment by performing periodic or continuous (online) equipment condition monitoring. The ultimate goal of PdM is to perform maintenance at a scheduled point in time when the maintenance activity is most cost-effective and before the equipment loses performance within a threshold. This is in contrast to time- and/or operation count-based maintenance, where a piece of equipment gets maintained whether it needs it or not. Time-based maintenance is labor intensive, ineffective in identifying problems that develop between scheduled inspections, and is not cost-effective.
The "predictive" component of predictive maintenance stems from the goal of predicting the future trend of the equipment's condition. This approach uses principles of statistical process control to determine at what point in the future maintenance activities will be appropriate [6]. Most PdM inspections are performed while equipment is in service, thereby minimizing disruption of normal system operations. Adoption of PdM can result in substantial cost savings and higher system reliability.
Reliability-centered maintenance, or RCM, emphasizes the use of predictive maintenance (PdM) techniques in addition to traditional preventive measures. When properly implemented, RCM provides companies with a tool for achieving lowest asset Net Present Costs (NPC) for a given level of performance and risk. One area that many times is overlooked is how to, in an efficient way, transfer the PdM data to a Computerized Maintenance Management System (CMMS) system so that the equipment condition data is sent to the right equipment object in the CMMS system in order to trigger maintenance planning, execution and reporting. Unless this is achieved, the PdM solution is of limited value, at least if the PdM solution is implemented on a medium to large size plant with tens of thousands pieces of equipment.
In 2010, the mining company Boliden, as a first, implemented a combined Distributed Control System (DCS) and PdM solution integrated with the plant CMMS system on an object to object level, transferring equipment data using protocols like Highway Addressable Remote Transducer Protocol (HART), IEC61850 and OLE for process control (OPC).
Predictive maintenance tends to include direct measurement of the item. For example, an Infrared picture of a circuit board to determine hot spots. But Preventive Maintenance includes the evaluation of particles in suspension in a lubricant, sound and vibration analysis of a machine. An example is, you have bought an incandescent light bulb. The manufacturing company is telling you that the life span of the bulb is 3 years. So just before expiring 3 years you have decided to replace the bulb with a new one and scheduled for maintenance [7]. This is called preventive maintenance. However, everyday you have the opportunity to observe the bulb operation. After two years, the bulb starts flickering. So you are predicting at that time that the bulb is going to fail very soon and deciding to change with a new one and scheduled for just-in time maintenance. This is called predictive maintenance.
The SCM has a critical role in software development process. The configuration artifacts are used in all subsequent phases of software planning and developing. Developing, testing, deployment and installation are made based on the software configuration. There are several difficulties when trying to synchronize the SCM activities between teams. Most of those difficulties are increased when software development teams are distributed, in fact, some new difficulties can appear. Today most of the software project teams understand the need for SCM to manage change to their software systems. However, even with the best of intentions, software projects continue to fail because of problems that could have been avoided through the use of an SCM tool and appropriate processes. These failures are reflected in poor quality, late delivery, cost overruns, and the incapability to meet customer demands.