Software Tips
Proper Modeling of Software Reuse in TruePlanning
for IT's Software Cost Model
As the software development community continues to mature, one fact becomes glaringly obvious. There's a lot of software out there! It's already been designed, developed and tested and can realistically be used to meet many current and future software requirements. Effective and sensible software reuse is a great way to improve project productivity.
Software reuse takes many forms. Commercial packages can be purchased and integrated into your new software system. Existing design, code and test artifacts can be used 'as is' or modified to meet requirements of your current software project. An important part of requirements analysis on any software project should include a thorough and thoughtful analysis of available options for reuse. This analysis should focus not just on the functionality of reusable software but also on the affordability of a solution that includes reuse.
TruePlanning for IT provides a complete solution for understanding the affordability aspects of any type of reuse you may be considering. It provides a comprehensive solution for estimating all of the costs associated with using Commercial Off the Shelf (COTS) Software to meet required functionality. It also allows you to describe your software development efforts in terms of New, Adapted and Reused Code. It is important to understand these many faces of reuse in order to properly model your projects properly.
- New Code represents functionality that is being designed and built from the ground up. The algorithms in the model assume that the full complement of design, code and test activities need to be performed to deliver this functionality.
- Adapted Code represents functionality for which there are artifacts available for reuse that will need to be modified to some degree. The user is required to indicate what percentages of design, code and test adaptation are needed to meet project requirements. The algorithms in the model assume, based on this percentage, a different amount of effort for design, code and test activities will be required than in the case where all of the functionality is New. It is important to note that the effect is not linear - a 5% adaptation will require significantly more effort than 5% of the effort required to develop the functionality New. There is always a 'start up' cost associated with familiarization with the code to be adapted.
- Reused Code represents functionality that will be integrated into the current software project with absolutely no modification. The algorithms assume that there is no effort associated with making changes to this functionality although there is some effort associated with integrating the Reused Code with any New and Adapted Code described in the Software component. A component with only Reused Code will generate no effort or cost for its activities but will contribute to activities of its parent Assembly cost object. Reused code should only be used in cases where there are no activities related to evaluation, selection, tailoring or customization of the reused functionality.
- The COTS Software component is the best option for any software that comes from an outside source, whether it is a shrink-wrapped commercial purchase or simply furnished from somewhere else. The COTS component covers all of the activities associated with finding and tailoring the COTS, as well an activities associated with developing glue code or modifying the COTS functionality (although this is generally a bad idea with software from an outside source). The algorithms in the model take into account the productivity impacts associated with unfamiliarity of the code as well as those associated with training requirements, documentation quality, and supplier cooperation and availability.
In this fast paced world where customers want their software requirements met yesterday, it is necessary for the software development industry to capitalize on the benefits that software reuse brings to the table. It is important to have a credible methodology that allows you to model the many faces of reuse properly so that activities are not overlooked or underestimated. TruePlanning for IT offers a comprehensive set of options to describe the software reuse in your project completely.
Back to Top