Reuse [Compatibility Mode]

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