Software Reuse -

lumpysteerΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 4 χρόνια και 7 μήνες)

110 εμφανίσεις

Software Reuse

Course: # 605.703.

The Johns
Hopkins University

Montgomery County Campus

Fall 2000

Lecture # 1

September 7, 2004

Contact Information

Thomas Pole

571 226 1790 (day)

Class Requirements (1 of 3)

Text: “Software Reuse”, by Jacobson, Griss and
Jonsson, ISBN 0

Development Platform: PC running a 32 bit
Windows platform, Win98, NT 4.0 or Win 2000

An IDE (Integrated Development Environment)
capable of supporting

Component development (e.g. COM, JavaBeans,
CORBA, .NET assemblies)

C++, Java or Visual Basic development

Visual Studio 6.0 or .NET strongly suggested

(if you want debugging help from me)

Class Requirements (2 of 3)

You will need to understand before you complete
this course:

Traditional Software Development Life Cycle process.

System Requirements analysis

System design

Component Development

Component Integration

Domain definition

Domain analysis

Component Based Software Engineering

Class Requirements (3 of 3)

You will need to be able to do before you
complete this course

Generic Application Design

Component Design

Component Implementation

Language of your choice from options listed earlier.

Component Integration

Requirements and/or design traceability.

Discuss and write about (in clear concise English) the
issues and methods in Reuse

Software Reuse: Definition

Precise definitions have not only evolved, they have
propagated. The more definitions you have, the less
meaning in the term ‘Reuse’.

Good definitions exist for: Reusable Asset, Leveraged
Reuse, Systematic Reuse

Bad definitions exist for: ‘Software Reuse’ itself

Contradictory, inexact, some published definitions are almost

We will define these terms in this course, for this course.

Other texts, classes, and organizations will define them somewhat
differently, but in this class we’ll have specific definitions we can

Software Reuse Definition

Software Reuse is a method of increasing the
efficiency of developing new software, by
reusing existing software assets on a new project,
that were created outside of and usually prior to
that new project.

More details later.

A software asset is any work product created in
the normal software development life cycle.

Major Trends in Reuse

As we cover the rest of tonight’s letter, think
about where you and your company fit in.

SW represents knowledge management of

SW implementation knowledge

Problem solving knowledge

Business and Engineering Domain knowledge.

Therefore, reuse of SW requires knowledge
management skills.

Defining Knowledge

Managing what an organization, its staff, its
customers, and its user base know about:

The business domain that organization participated in.

The products that organization creates.

The engineering domains the organization employs to
perform its tasks and reach its goals.

The organization itself.

More Definitions


When any product (or by product) of a
software development effort which occurred
before, or independently of a second separate
development effort, is also used in that second
development effort.

Reuse potential

Is the commonality stable
enough and the predictable variability great
enough to support the expense of a reuse driven

Still More Definitions

Software Module

source and object code reuse.

DIAE Component (or simply Component)

Dynamically Integrable. Autonomously
Executable software module.

Framework or Architecture Based Reuse

generic architectural captures the commonality,
swappable individual components represent the
variability of a framework for building
applications from a software framework.

State of: Modules and

Modules: Java applets, classes, Java Beans
etc. C++ libraries, language or application
specific libraries.

Components: COM component, CORBA
components, Web Services.

State of: Reuse Tools

A marketplace sadly in great disarray.

Oversold by the marketers, similar to the
Artificial Intelligence Winter syndrome of the
mid 1990’s.

Desperately needed if we are to progress in reuse
process maturity.


E.g. component collections, library/archive
mechanisms, process support tools, training.

State of: Reuse Training

Fallen on bad times.

Replaced with some success by technology
specific training:

VB/COM/COM+ training

CORBA training

framework SDK training

Reuse process and systematic reuse
training almost non

Reuse Potential Self Exam

To ask yourself:

What is my potential to reuse software ?

What is my potential to enable reuse ?

What is my org’s potential to reuse?

What is my org’s potential for systematic
reuse ?

What is my org’s potential to enable reuse
in other organizations ?

Reading Assignments

See Chapters listed in Schedule

these chapters PRIOR to the lectures.

No assignment this week other than too get
your work station/PC set up with a
recommended Integrated Development
Environment (IDE)

Questions ?

See you next week.