Reuse and COTS Reuse Introduction How differs from

  • Slides: 13
Download presentation
Reuse and COTS

Reuse and COTS

Reuse: Introduction • How differs from COTS? – Assume have source code, not a

Reuse: Introduction • How differs from COTS? – Assume have source code, not a commercial product bought from someone else • Ariane 5, Therac-25, British ATC, … [Do you have any favorite examples? ] • Expectation: – Significantly lower development costs and time when reuse – Costs more to make reusable, but can amortize costs among all users and uses and will come out ahead over time • Assumptions: – Will be reused enough to recoup extra costs – Can easily and cheaply integrate components into a new environment (interoperability)

Reuse: Empirical Data • High reuse in some limited environments, not widespread however. •

Reuse: Empirical Data • High reuse in some limited environments, not widespread however. • NASA Goddard Study • Garlan, Allen, and Ockerbloom – Performance problems (from large size and complexity) – Complexity frequently inappropriate for tasks performed. – Trouble fitting components together. • In some cases, took significant reengineering to make them interoperate properly. – Maintaining synthesized system difficult in absence of low-level understanding.

Reuse: Empirical Data (2) • Siemens (hardware ASICS) reuse study – Time to build

Reuse: Empirical Data (2) • Siemens (hardware ASICS) reuse study – Time to build a reusable component can be 120 -150% of time needed to develop component for single use (excludes documentation). – For reusable component, needed to develop new documentation, which took one to two times the effort of designing the component. – Overhead to develop a reusable component (design + documentation) recaptured after fifth use. – Frequency of reuse increases with degree of comprehensibility. – “Habitability” even more important: • Measure of how “at home” a potential user of reusable component feels • Highly subjective but effect even greater than that of comprehensibility

Reuse: Technical Issues • Configuration control problems – May change continuously (and developer may

Reuse: Technical Issues • Configuration control problems – May change continuously (and developer may be able to check it out of library and change it) • Unneeded functionality (interoperability and performance issues) – May need to write software utilities (e. g. , restrictive wrappers) to restrict functionality • Much of savings may be offset by need for more testing (Weyuker) • Debugging may be significantly more difficult (Weyuker) • Longevity: does potential for reuse decrease over time? • Reuse designs rather than finished products?

Reuse: Other Issues and Experiences • Does it fit management reward structures? • Platforms

Reuse: Other Issues and Experiences • Does it fit management reward structures? • Platforms and reuse at Xerox (success story) – One organization within Xerox reports they use half dozen different software platforms to build dozens of different products – Achieve approximately 80 -90% reuse • What is your experience?

COTS (Commercial Off-The-Shelf) Software • Main difference from reuse is lack of source code

COTS (Commercial Off-The-Shelf) Software • Main difference from reuse is lack of source code • Potential advantages: – Reduce front-end acquisition or development costs • Amortize costs over large number of users • Compensate for lack of expertise (e. g. , GPS) – Allows for more rapid infusion of new technology • But new risk drivers – Loss of market control (less control leads to higher risks) – High-speed market • Must deal with rapid obsolescence (shortened lifetimes) • New versions of releases brought to market frequently – For government, shift from “buyer’s” market to “seller’s market”

COTS: Management Issues • Lower development costs offset by higher lifetime costs? – “Sustainment”

COTS: Management Issues • Lower development costs offset by higher lifetime costs? – “Sustainment” costs substantial: need to be planned and managed • What if vendor goes out of business or stops producing and will not maintain old versions? – Even if escrow agreements, hard to maintain software you did not write and must hire developers expert in that code. • Dependency on vendor: Can charge anything or make other demands (see Microsoft monopoly case findings of fact) • Higher speed of change requires greater strategic flexibility – Need flexible and proactive system evolution management

COTS: Technical Issues • Functionality provided may not remain what you need over time.

COTS: Technical Issues • Functionality provided may not remain what you need over time. • Few parts in a software system are truly independent – My need wrappers and patches as substitutes for real source-codebased maintenance. – Differences (e. g. , timing) may be introduced in new products • What happens when support from COTS vendors ceases? – Can user change requests be satisifed? • May be Trojan horses or security flaws in COTS software and almost certainly will not know until too late.

COTS: Technical Issues (2) • Must be accepted “as is” and may not satisfy

COTS: Technical Issues (2) • Must be accepted “as is” and may not satisfy user requirements. Compromises may be required. • May be difficult or impossible to certify (e. g. safety) – Need to defend yourself from mistakes in supplier’s code – May be developed to commercial not government or safety standards • Requires continuous lifetime system engineering effort. – Identify and integrate product obsolescence information with technology trends and new user requirements. Your experiences and comments?

Readings and Thoughts Read, summarize, and critique • Ariane 5 Accident Report • Kruger,

Readings and Thoughts Read, summarize, and critique • Ariane 5 Accident Report • Kruger, Software Reuse [This is an excellent survey of reuse, but it is also very long so you can just skim it if you are not interested in becoming an expert on the topic. You need not write a summary of the Kruger paper. ] • Weyuker, Testing Components • Glass, Reuse: What's Wrong with This Picture? • Leveson and Weiss, Making Embedded Software Reuse Practical and Safe • Gomez, Lessons Learned from Two Years of On-Orbit GPS Experience on International Space Station • OPTIONAL: Goodman, Lessons Learned from Flights of "Off the Shelf" Aviation Navigation Units on the Space Shuttle (Not required but may be of interest to those working with COTS products

Takeaways • Reuse and COTS may not be the great solution to all our

Takeaways • Reuse and COTS may not be the great solution to all our software problems that some people think. – Most component selling companies have disappeared. – Everybody reuses their own code to some degree, but much harder to be successful if you didn’t write it yourself. • May be good reasons to reuse or to use COTS, but be aware of extra costs and requirements. • Not as easy as it sounds. Remember, software is very different than hardware.