As a result of balloting in ISO, the statement of scope was modified as follows: "This standard describes a process for the management of risk during systems or software acquisition, supply, development, operations, and maintenance. P - IEEE Draft International Standard - Systems and Software Engineering -- Systems and Software Assurance -- Part 4: Assurance in the Life Cycle This document provides guidance and recommendations for assurance of a selected claim about the system-of-interest by achieving the claim and showing the achievement. These relations are demonstrated by means of mapping tables that show relationships between activities and tasks, and process outcomes. This mapping assists users of the edition to transition to using the edition.
|Published (Last):||20 November 2016|
|PDF File Size:||16.21 Mb|
|ePub File Size:||13.41 Mb|
|Price:||Free* [*Free Regsitration Required]|
This paper is organized into three sections. The second section of this paper provides an examination of the six primary categories of maintenance activities as defined by both IEEE Std. Briefly, these processes are maintenance process planning; problem and modification analysis processes, maintenance implementation processes, maintenance review and acceptance processes, system migration processes, and software retirement processes This section provides and an enumeration of each of these categories along with a summary of the processes offered with each of them.
This section services to provide a reiteration of the best practices and common concerns associated with the execution of these processes. IEEE Std. The development of a software maintenance strategy is fundamental in establishing a maintenance effort for it serves to not only to define the purpose and goals behind it, but establishes the spirit and objectives by which all subsequent and component maintenance planning efforts will be defined.
Defining a maintenance strategy should started with an assessment of the maintainability of the system to be supported Assessment through analysis is an important preliminary step for it provides an orientation on the state of the software to be supported.
This analysis should include a review of the existing software code and the technologies used to develop it to derive a list of the skill sets and tools that will be necessary to implement changes. This is important in developing a feel for how difficult it will be to provide modifications and is helpful in determining the level of support that can be provided.
This maintainability assessment should also include a determination of the amount of system expertise and domain knowledge of its original developers if any, that is at hand.
Borrowing from the Staged Model, these two factors i. Intuitively, many successful endeavors are the results of great plans. Great plans are derived from great strategies; which in turn are inspired of great concepts. It defines a maintenance strategy as consists of the two primary components: a maintenance concept, which includes a preliminary high-level definition of the scope, identification of responsibilities, costs, and processes for the maintenance effort.
The second component is the maintenance plan, which essentially defines the tasks and schedule by which the maintenance concept will be implemented and conducted; and a resource analysis, which will provide a high-level estimate of the necessary resources and their associated costs required to execute the plan. As indicated the maintenance concept should define scope, the processes that will be used, the designation of who will be providing the maintenance services e.
The scope of the maintenance concept should express the types of maintenance to be performed. This should be a reflection the assessed maintainability of the system placed in balanced with the support requirements of its users.
The scope should also include a definition of the amount of documentation that will be maintained and expectations of the responsiveness of the maintenance team. It should include an assessment of the level and type of training that will be necessary to provide and should define both the scale of the delivery and helpdesk support.
The maintenance concept should also include a high-level definition of the processes that will be used to provide maintenance support for the intended system. This should not only include identification of the high-level tasks and methodologies necessary to facilitate the declared scope of support; but also, identify the stakeholders and other entities involved with the execution of those activities.
As eluded to in the previous paragraph, the maintenance concept should also include an identification the responsibilities, qualifications, accommodations, and considerations of the costs that will be necessary to provide the desired level of support as defined by its scope. This should include an assessment of the service level required, the requirements pertaining to and availability of space, the qualifications necessary to perform the various tasks ranging from helpdesk to programming, and an estimate of the start-up to long term costs associated with all of it.
Additional considerations offered by it are to include any travel costs associated with user locations; the costs of training the maintenance staff in addition to the users; the costs associated with maintaining the development and testing environment necessary to conduct programming and testing tasks; the estimated personnel costs, to including estimated salaries and benefits. These estimates should not be static. In the beginning these estimations will be based upon assumptions and limited information; and as the effort progresses, these estimates should be revised with new information as it comes to light.
With the maintenance concept established, the next step in formulating a maintenance strategy is to plan on how to turn the concept into to reality -- to formulate a plan for its execution. A maintenance plan will define what resources will be available to provide support; where that support will be performed and when it will commence.
As suggested, it should define not only the protocols of how requests will be submitted, but also define the protocols that will be used to analyze, implement, and provide feedback to those requestors.
It should indicate the documentation that will be generated as a product of those protocols and provide what training and controls will be used to support and monitor the process. With the scope of the effort defined by the maintenance concept and the responsibility for whom will perform the activities and tasks defined, the final component of the maintenance strategy is to perform a resource analysis which will the determine the personnel, environments, and financial resources required to support the plan.
Determining the personnel resources for a maintenance effort is perhaps the most challenging; for not only does the cost of people comprise a large portion of the overall costs; it is also perhaps the most difficult of the resource components to estimate accurately, particularly in advance.
If empirical data from previous maintenance efforts is available, parametric models may be used to provide a statistical estimate of resource costs. The other approach involves the use of non-quantitative, user intuition techniques based on experience, such as Delphi and work-breakdown structures, to estimate staffing needs and their associated costs. While these two categories of may be used individually, the likely best results will be from using them in combination.
By having a consistent methodology established, it can be refined based upon comparisons with actual costs as they are incurred, allowing for improved accuracy in subsequent efforts.
As with its initial development, providing maintenance services for a software system requires, at a minimum, the use of two separate environments. The first is a software engineering environment SEE , to serve as a development environment where software modifications will be implemented in isolation from the production system. The second environment is a software test environment STE , to serve as staging and integration environment that will be used to validate and verify for quality the modifications before they are introduced to the users in production.
This will ensure that all engaged modification efforts are conducted in an appropriate environment that is conducive to the effort. The final component of a resource analysis relates to finances. To effectively provide for maintenance support, a budget needs to be determined that reflects the costs associated with: the salaries of personnel; the costs of training and technical materials for personnel; software and hardware licenses costs for the maintenance environments, and travel requirements for personnel So far some of the IEEE Std.
In the following section, the maintenance processes that will define the individual activities and tasks that will be work items of a maintenance plan will be discussed. The first category of processes consists of those that are associated with the implementation of process itself. These implementation processes are the set of practices by which the maintainer of the system establishes the plans and procedures to be used during over all the Maintenance Process. If establishment of the maintenance plan coincides with the original development of the system, it is important that the development of the Maintenance Plan begin in parallel with the development of the Development Plan.
It is also important for the maintainer to establish the organizational interfaces necessary to support the Maintenance Process. Much like a battle-plan, the maintenance plan serves to document the strategy and overall goal of the maintenance process, while its maintenance procedures serve to describe the activities and tasks that are executed to achieve it.
In order to establish an effective maintenance plan and procedures, the following tasks and considerations should be performed: developing the maintenance concept, determine the scope of the maintenance effort, and to evaluate all the determined organizational alternatives for maintenance; establish, in writing, who will be the maintainer of the system; perform resource analysis to determine the number of personnel and equipment necessary to support the selected effort and the cost associated with that selection.
It is also important at this time, to determine the maintainability of the system. This will factor largely in the aforementioned scope, cost, and resource estimations. At this point, the transition requirements and milestones should be identified and the entirety of the results of these tasks should be documented in the form operating procedures, so that they can be easily referenced.
Of special importance during this phase is the establishment of the modification request MR and problem report PR procedures, for these will be the primary means by which requests for modification of the system will be received and addressed and their resolution communicated. These processes are vital for they establish not only human interfaces i.
Metrics e. An outline of the actual workflow process by which submitters of requests and items will use should be constructed to include a solid mechanism for communicating between the maintenance team members and users. Finally, the items should be placed into configuration management and organized in a database.
So far, the tasks described had been associated with the establishment of the procedures concerning the collection, organization, processing, and retention of work items e. MRs, PRs. The results of these process implementation processes should be: the maintenance plan; the training plan; the maintenance procedures; the project management plan; the problem resolution procedures; the measurement plan; the maintenance manual; plans for user feedback; the transition plan; the maintainability assessment; and the configuration management plan.
Pertaining more to MRs than PRs, the maintainer should also be confident that the implementation of the modification will not affect, or at least understand how it will affect, any ongoing or future projects. Consideration should also be given to how the fulfillment of the request will affect the overall operability of the system. The third category of maintenance processes are "Modification Implementation" processes , p. These processes are associated with the development and testing of modifications to the software system once they have been vetted through the previous set.
The required materials for these practices i. These inputs are used with two sets of sub-category activities: analysis activities and development processes. More specifically, these activities involve accomplishing the following: identifying the software components and interface elements affected by the modification; the documentation that would require modification; and actual updating of documentation to reflect the change.
The development processes of this category are involved with the actual implementation of the modification and should be tailored to meet the needs of the system at hand. This suggests that testing associated with verification of the change should include the normal unit and system level tests; however, this also suggests that a best practice is also to include regression tests to ensure that untouched areas of the system are functioning properly.
This information could also address the accuracy of the impact analysis. This is a best practice that ensures not only the ability to roll back any changes, but also preserves the history of changes for sake of knowing where potential issues where introduced. The end result of the Modification Implementation activities should include not only the modified source code; but also, the updated, test plans, test procedures, test reports, and system documentation that were impacted by this change.
This should include: the updated modification request with completed resolution to it; a detailed analysis report that lists the components affected by this change; updates to the baseline requirements of the system; and the updated user and training manuals the cover the implementation of this change.
In addition to the use of Joint Reviews advocated in the previous category, these processes are designed to ensure that the modifications to the system are made in acceptable manner and in-line with the methodologies and standards established for the system in the maintenance strategy.
These validation and verification associated processes require the modified software and the results of the tests performed on it. This traceability audit should also include verification that all required documentation has been appropriately updated e. Second, so that verification that the modification was performed and functions correctly, and also to ensure that no defects were introduced by the change, there should be a check to ensure that the modified code is testable.
Third, in order to preserve maintainable through conservation of the understandability of the code i. Fourth, there ought to be verification that only and all of the software components identified through the impact analysis have been modified. This check ensures that the implementation of the change did not go beyond what was necessary while simultaneously ensuring that all necessary components were changed.
The fifth process suggested is that an effort be made to test the end result of the modification on a compiled and fully integrated system.
Finally the last process offered is to compile the results of these component activities into a final test report. With regards to seeking final approval and acceptance of the modification, if it was not previously sought before the implementation of the modification, the test report would prove valuable in encapsulating the results of it. This standard suggests that the following activities be performed in support of this. There results of these activities, those being of the fourth category of maintenance process activities offered by IEEE Std.
In order to accomplish this, the activities described here will support the maintainer in determining the necessary actions to successfully accomplish and guide them through the process of developing and documenting these actions. In order to begin these processes, a copy of the existing and target i.
These artifacts are necessary in developing a new migrated or ported version of the software. There are two corner stone activities that comprise this category: the tasks associated with the establishment of a migration plan and the implementation of it.
The composition of a migration plan, supported by input from the users, should consist of the following activities: an analysis of the migration requirements. This is important for three reasons; first, it allows for the determination the scope of the effort; second, it facilitates the traceability necessary to establish a successful porting effort; and third, it permits the completion of an impact analysis that the implementation of the migration requirements will have to the baseline system.
Continuing on, other activities that support the establishment of a migration plan are the establishment of a migration schedule and the identification of the risks associated with the migration. With risks identified, mitigation strategies can be developed whose implementations would be represented in the composed schedule.
In addition to the identifying of risk items and mitigation strategies, the tools necessary support the migration effort should be identified; this should include the any tools which must custom-developed. Since often the migration of a software platform must be performed in parallel with the support of the existing system the resources required to support the existing system need to be determined, acquired, and assembled.
After composing a migration plan and orchestrating schedule by which the software components and data items will be migrated, the next set of activities are associated with the implementation of that plan.
Software Maintenance Process of IEEE Standard 14764-2006
This paper is organized into three sections. The second section of this paper provides an examination of the six primary categories of maintenance activities as defined by both IEEE Std. Briefly, these processes are maintenance process planning; problem and modification analysis processes, maintenance implementation processes, maintenance review and acceptance processes, system migration processes, and software retirement processes This section provides and an enumeration of each of these categories along with a summary of the processes offered with each of them. This section services to provide a reiteration of the best practices and common concerns associated with the execution of these processes. IEEE Std.
IEEE 14764 PDF
Shajar Natural language processing Knowledge representation and reasoning Computer vision Automated planning and scheduling Search methodology Control method Philosophy of artificial intelligence Distributed artificial intelligence. Software maintenance and evolution of systems was first addressed by Meir M. Below describe some of the factors and the range of impact on software maintenance. And this is the main cause of any problem during software evolution and maintenance. Not only iere error-prone modules troublesome, but many other factors can degrade performance too. Key technical issues are: Note also that some academic institutions [ who? Unsourced material may be challenged and removed.