140 likes | 246 Views
Image from http://www.lancashire.gov.uk/environment/waste/reduction/reuse.asp?print=yes. Reuse and Reusability (Chapter 8 of maintenance text). Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture. Today. Your feedback on HW2 Armadillo Run & requirements discussion
E N D
Image from http://www.lancashire.gov.uk/environment/waste/reduction/reuse.asp?print=yes. Reuse and Reusability(Chapter 8 of maintenance text) Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture
Today • Your feedback on HW2 • Armadillo Run & requirements discussion • Lab time – Help on project design & coding • Reuse & reusability – this
Using “Reuse Maintenance Process Model” (from Chapter 5) • Advantages • Can use components, etc. from other projects • Code is modular • Disadvantages • Overhead in designing for reuse
A prime example of reuse strategy – Product lines • Enhance & maintain a base platform • Enhance & maintain multiple products on top of that base • Where’s the reuse advantage? Image from www.hobbsamerica.com/ .
Product lines – and where’s the overhead? A typical ongoing activity – extract commonalities for upcoming releases: Image from www.jot.fm/issues/issue_2004_03/column6/ .
Targets for Reuse • Process • Specific – like “how we adapted the last system to work with Oracle” • Personnel • No such thing as a “technical head count year” • Product • More of a business strategy, maybe – adapt software to a new target market
Targets for Reuse, cntd • Data • Especially reusing test data • Design • Higher level = more useful • Why isn’t this done more? • Why is it done in compilers? • Program • This is the one you’d expect
Maintenance Motivations • Reduction in time and effort • Higher quality • Improve maintainability • Code “transportation” • PC to Mac • Stand-alone to server-based • US to Japan Image from jcmc.indiana.edu/vol9/issue1/nishimura.html .
Approaches to Reuse – Composition • Essence of the “Reuse model” – Fig 5.18 • Components • Black box • White box • Classes • Keep spawning children,intelligently! Image from www.ppsv.net/WeProvide.htm .
Approaches to Reuse – Generation • Parameterized systems • Application generators
Approaches to Reuse – Transformation • Input the requirements… • Output a new system! • Two kinds: • Stepwise refinement • Linguistic transformation
Intro to Components • Two strategies: • Horizontal – use in lots of domains • Vertical – use to solve common problems in a domain • Require domain analyses • “Essence of OO”
Intro to Components – cntd • Characteristics of reusable components: • Generality • Cohesion vs coupling • Interaction – with user, utility fns • Uniformity and standardization • Data & control abstractions • More on these – Read Sec 8.7