Maintainability also includes the. Addition of new functionality or the adaptation of software to meet new requirements for the customer needs. Software maintainability is the degree of an application to repaired or enhanced it. During the system development life cycle SDLC this phase requires more development effort than any other phase.
Approximately 75 percent of the cost is related to software maintenance. Maintainability increases the reliability, efficiency or safety of the software. It is also used to make future maintenance easier. It is used to increase the lifetime of the software. Maintainability repair or replace the faulty components and make the software even better as compared to the previous condition of the software.
Software maintenance is required when the customer demands new features and new functions in the software. Sometimes maintenance is required when the hardware of the system is changed then the modification of software is needed.
Market conditions and organization changes are also the reasons for software modification. Developers take care of maintainability by continuously adapting software to meet new customer requirements and address problems faced by customers. This includes fixing bugs, optimizing existing functionality and adjusting code to prevent future issues. Software maintenance is the most expensive phase of development, typically consuming more than half of development budgets. It is important to plan maintenance into the development lifecycle so you can maintain software efficiently.
There are a number of reasons to maintain software after you have delivered it to the customer:. Software quality and code quality can make a world of difference for software maintenance. Poor quality software is harder to maintain. Bad code requires a larger effort and costs more to adapt to new requirements. Software is more easily maintainable if it has high-quality code that is readable and well-documented, so keep good coding practices in mind while your software is still in development.
So, how can you measure the maintainability of your application? Imagine you have access to the source code of two applications — A and B. Can you tell, albeit subjectively, whether you think one is more maintainable than the other? What does the adjective maintainable imply for you when making this comparison — think about this for a second before we move on. So, how did you define maintainability? Most software engineers would think of some combination of testability, understandability and modifiability of code, as measures of maintainability.
That is, is there a mapping from code to requirements and vice versa that could be discerned from the code base itself? These core facets can be broken down further, to gain further insight into the maintainability of the application:. Those are the four major dimensions on which one can measure maintainability. Each of the facets can and is broken down further for a more granular comparison.
These may or may not be the exact same ones that you thought of, but there will be a great deal of overlap. Also, not every criterion is equally important. That is, they may care a lot more about the presence of test cases depth and breadth than deep inheritance trees or a slightly more tightly coupled design. It is thus vital to know which dimension of maintainability is more important for your maintenance team when measuring the quality of your application and carry out the reviews and refactoring with those in mind.
The table below, towards the end of the article, shows a detailed breakdown of the above dimensions of maintainability and elaborates on their relevance to measuring the quality of the source code [2]:.
There is no single metric that can accurately capture the notion of maintainability of an application. The use of this metric is debatable but could be used in conjunction with the above metrics or your team could create a compound metric based on the above dimensions!
0コメント