Software Reuse - ComputerTrainingGuild.org

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

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

80 εμφανίσεις

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)

Prof@HisDomain.net

http://www.ComputerTrainingGuild.org/JHU
/SoftwareReuse_Fall04

Class Requirements (1 of 3)


Text: “Software Reuse”, by Jacobson, Griss and
Jonsson, ISBN 0
-
20
-
192476
-
5


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
useless.


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
use.

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.
(SDLC)

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
Management


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


Reuse
-

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
process.

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


A
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
Components


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.


NOT A SOLVED PROBLEM.


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
-
existent.

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
-

read
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.