Upload
dennis-kutere
View
227
Download
0
Embed Size (px)
Citation preview
8/6/2019 Reuse [Compatibility Mode]
1/14
Software Reusability
Main issues:
Why is reuse so difficult
How to realize reuse
8/6/2019 Reuse [Compatibility Mode]
2/14
8/6/2019 Reuse [Compatibility Mode]
3/14
Reuse dimensions
Things being reused: components, concepts,
Scope: horizontal vs vertical
Approach: systematic or opportunistic
Technique: compositional or generative
Use: black-box or white-box
Product being reused: source code, design,
SE, Reusability, Hans van Vliet, 2008 2
8/6/2019 Reuse [Compatibility Mode]
4/14
Success criteria for component libraries
Well-developed field, standard terminology
Small interfaces
Standardized data formats
SE, Reusability, Hans van Vliet, 2008 3
8/6/2019 Reuse [Compatibility Mode]
5/14
Requirements forcomponent libraries
Searching for components
Understanding/evaluating components found
Adapt components if necessary
Compose systems from components
SE, Reusability, Hans van Vliet, 2008 4
8/6/2019 Reuse [Compatibility Mode]
6/14
Component evaluation, useful information
Quality information
Administrative information (name developer,modification history, etc)
Documentation
Interface information
Test information
SE, Reusability, Hans van Vliet, 2008 5
8/6/2019 Reuse [Compatibility Mode]
7/14
Reuse process models
Software development with reusePassive
Component library evolves haphazardly
Software development for reuse
Active
Reusable assets are developed, rather than found by accident
SE, Reusability, Hans van Vliet, 2008 6
8/6/2019 Reuse [Compatibility Mode]
8/14
Software development with reuse
SE, Reusability, Hans van Vliet, 2008 7
8/6/2019 Reuse [Compatibility Mode]
9/14
Software development for reuse
SE, Reusability, Hans van Vliet, 2008 8
8/6/2019 Reuse [Compatibility Mode]
10/14
Software development for reuse
Often two separate development processes:
Development of components (involving domain analysis)
Development of applications, using the available components
Specific forms hereof:Component-based software development
Software factory
Software product lines
SE, Reusability, Hans van Vliet, 2008 9
8/6/2019 Reuse [Compatibility Mode]
11/14
Reuse tools and techniques
Languages to describe compositions
Module Interconnection Language (MIL)
Architecture Description Language (ADL)
Middleware (CORBA, JavaBeans, .NET)
SE, Reusability, Hans van Vliet, 2008 10
8/6/2019 Reuse [Compatibility Mode]
12/14
Characteristics of successful reuseprograms
Extensive management support
Organizational support structure
Incremental implementation
Significant success
High incentives
Domain analysis done
Attention to architectural issues
SE, Reusability, Hans van Vliet, 2008 11
8/6/2019 Reuse [Compatibility Mode]
13/14
Non-technical aspects of software reuse
Economics: it is a long term investment
Management: it does not happen spontaneously
Psychology: people do not want to reuse someoneelses code
SE, Reusability, Hans van Vliet, 2008 12
8/6/2019 Reuse [Compatibility Mode]
14/14
Reuse devils loop
SE, Reusability, Hans van Vliet, 2008 13
Summary
We can reuse different things: code, design,
Reuse can be systematic (software developmentfor reuse), or opportunistic (software development
with reuse)
Reuse does not just happen; it needs to be planned
SE, Reusability, Hans van Vliet, 2008 14