COSYSMO Reuse Extension COSYSMO Workshop – USC CSSE Annual Research Review March 17, 2008 Ricardo Valerdi Gan Wang Garry Roedler John Rieff Jared Fortune Overview Background • COSYSMO currently assumes all system components are new – …but most systems are not entirely new, have a significant amount of reuse • Current goal is to develop an approach for handling reuse – Organizations can adapt to their own business model Objectives • Provide an overview of research – Proposed terminology – Possible methodology • Identify next steps 2 Background on Software Reuse Main size driver = KSLOC • Adapted Source Lines of Code (ASLOC) • Percent of Design Modification (DM) AAF • Percent of Code Modification (CM) • Percent of Integration Required for Modified Software (IM) • Percentage of reuse effort due to Software Understanding (SU) • Percentage of reuse effort due to Assessment and Assimilation (AA) • Programmer Unfamiliarity with Software (UNFM) From COCOMO II Model Definition Manual (p. 7-11) 3 Proposed Reuse Terminology • New: – • Items that are completely new, generally unprecedented and with low level of familiarity Modified: – Items that are inherited, but require a limited amount of tailoring to be incorporated • Adopted: – • Deleted: – • Items that are incorporated unmodified, “black-box” reuse Items that are removed from a system (in legacy but not current system) Managed: – Items incorporated unmodified and untested (subcontractor effort) 4 Reuse Continuum New 1.0 Reuse weight Modified Deleted Adopted Managed 0 5 Approaches for Handling Reuse in COSYSMO Reuse Capture reuse-class cost parameters for different classes of reuse Calculate equivalent requirements weights for size drivers Solve for the weights (requires data from projects) Activity-based/Bottoms up (requires effort data by activity) Num. Requirements New 100.00% Easy 0.5 Nominal 1 Difficult 5 Managed 15.36% 0.0768 0.1536 0.768 Adopted 43.37% 0.21685 0.4337 2.1685 Modified 64.65% 0.32325 0.6465 3.2325 Deleted 50.70% 0.2535 0.507 2.535 Managed 15.36% 0.16896 0.43008 0.96768 Adopted 43.37% 0.47707 1.21436 2.73231 Modified 64.65% 0.71115 1.8102 4.07295 Deleted 50.70% 0.5577 1.4196 3.1941 Managed 15.36% 0.33792 0.62976 1.7664 Adopted 43.37% 0.95414 1.77817 4.98755 Modified 64.65% 1.4223 2.65065 7.43475 Deleted 50.70% 1.1154 2.0787 5.8305 Managed 15.36% 0.95232 2.21184 4.608 Adopted 43.37% 2.68894 6.24528 13.011 Modified 64.65% 4.0083 9.3096 19.395 Deleted 50.70% 3.1434 7.3008 15.21 Num. Interfaces Easy Nominal Difficult New 100.00% 1.1 2.8 6.3 Num. Algorithms Easy Nominal Difficult New 100.00% 2.2 4.1 11.5 Num. Scenarios Easy Nominal Difficult New 100.00% 6.2 14.4 30 6 Bottoms-Up Activity-Based Step 1: Define the discriminating, lifecycle systems engineering activities. Correlate defined activities with EIA-632 defined tasks to ensure that there is no obvious gaps. Step 2: Define the levels of reuse based on the lifecycle SE activities (without adjectives) Step 3: Evaluate % systems engineering effort for each level of reuse in terms of EIA632 process groups and ISO-15288 life cycle to derive the weights of reuse 7 Activity-based/Bottoms up Num. Requirements New 100.00% Easy 0.5 Nominal 1 Difficult 5 Managed 15.36% 0.0768 0.1536 0.768 Adopted 43.37% 0.21685 0.4337 2.1685 Modified 64.65% 0.32325 0.6465 3.2325 Deleted 50.70% 0.2535 0.507 2.535 Managed 15.36% 0.16896 0.43008 0.96768 Adopted 43.37% 0.47707 1.21436 2.73231 Modified 64.65% 0.71115 1.8102 4.07295 Deleted 50.70% 0.5577 1.4196 3.1941 Managed 15.36% 0.33792 0.62976 1.7664 Adopted 43.37% 0.95414 1.77817 4.98755 Modified 64.65% 1.4223 2.65065 7.43475 Deleted 50.70% 1.1154 2.0787 5.8305 Managed 15.36% 0.95232 2.21184 4.608 Adopted 43.37% 2.68894 6.24528 13.011 Modified 64.65% 4.0083 9.3096 19.395 Deleted 50.70% 3.1434 7.3008 15.21 Num. Interfaces Easy Nominal Difficult New 100.00% 1.1 2.8 6.3 Num. Algorithms Easy Nominal Difficult New 100.00% 2.2 4.1 11.5 Num. Scenarios Easy Nominal Difficult New 100.00% 6.2 14.4 30 8 Next Steps • Reach conclusion on reuse weights – Thoughts on bottoms up calculations vs. solving for weights? • Determine scalability of reuse – How to deal with commonalities across multiple projects/organizations? • Examine effect of SE “designed” for reuse – What are the penalty/savings? Where do they occur in lifecycle? • Apply methodology – Who else has reuse data? 9 Author Contact Information Ricardo Valerdi, MIT rvalerdi@MIT.edu Gan Wang, BAE Systems gan.wang@baesystems.com Garry Roedler, Lockheed Martin garry.j.roedler@lmco.com John Rieff, Raytheon John_E_Rieff@raytheon.com Jared Fortune, USC fortune@usc.edu 10