Title: Software Engineering with Reusable Components
1Software Engineeringwith Reusable Components
- RiSEs Seminars
- Sametingers book Chapters 19, 20 and 21
- Ana Paula Cavalcanti
2Summary
- Reuse Measurement in Literate Programs (Chapter
19) - Motivation
- Line and Word Runs
- Case Study
- Documentation Reuse (Chapter 20)
- Motivation
- Source Code Inheritance
- Documentation Inheritance
- Conclusion (Chapter 21)
- A Paradigm Shift
- Limits of Component Reuse
- Prospects
3Reuse Measurement in Literate Programs
4Motivation
Reuse Measurement in Literate Programs Chapter
19
- To focus is to determine the amount of ad-hoc
reuse in literate programs (description of
problems and solutions) - Provide and example of reuse measurement
- Demonstrate the need fort systematic reuse of
documentation
5Line and Word Runs
Reuse Measurement in Literate Programs Chapter
19
- Similarities and differences of texts have to be
determined - Comparison of lines and words
L line Len Length
- high line reuse ? Good indication of reuse
- low line reuse, high word reuse ? much reuse has
taken place, modification - low reuse low, low word reuse ? not much reuse
6Case Study
Reuse Measurement in Literate Programs Chapter
19
- TEX converts plain text file containing
document markup into a device independent
graphics metafile - MetaFont reads a source file (metadescription)
and does graphics interpretations - MetaPost file layouts as input and book
quality figures as output
7Case Study ? consequences
Reuse Measurement in Literate Programs Chapter
19
- Reuse measurement based on line and word runs can
be used for many different purposes - Evaluation of white-box reuse
- Finding (legal/illegal) reuse in
technical/scientific papers, determining the
amount of modifications from one version of
software to another - Finding potential locations for redesign
- Finding the amount of reuse in programs handed
in by students for programming courses
8Documentation Reuse
9Motivation
Documentation Reuse Chapter 20
Adequate documentation is mandatory for software
maintenance as well as for economic reuse of
software components. Overlapping information is
typical both for source code and for
documentation. Therefore, the inheritance
mechanism should be applied to the documentation
as well.
10Source Code Inheritance
Documentation Reuse Chapter 20
- A class may inherit structure and behavior of
another class and additionally extend and modify
it.
11Documentation Inheritance
Documentation Reuse Chapter 20
- Inherits the content of its base documentation
- Chapters Classes
- Sections Methods
- Abstract Classes
- Predefined structure for a certain group of
elements guarantees uniform and consistent
appearance - Information should not be spread over several
files and/or directories Inclusion and
References
12Documentation Inheritance
Documentation Reuse Chapter 20
- Information filtering is important for efficient
access - Categories definition
- Various views
- To meet different documentation needs of various
readers - Documentation Hierarchies
The goal is to have software systems built from
reusable components and to have their
documentation built upon theses components
documentation.
13Conclusion
14A Paradigm Shift
Conclusion Chapter 20
There is still a long way to go until systematic
reuse of software components, especially beyond
company boundaries. It requires more research in
various areas as well as commitment from
companies to systematic reuse.
- unexpected discoveries may prove inconsistent
with the prevailing paradigm. This may trigger a
scientific revolution. - Involve the development of new ideas, concepts,
methods and problems - Provides a way of doing software engineering
better and more efficiently.
15Software reuse and software components contribute
to a paradigm shift in Software Engineering?
16A Paradigm Shift ? Software Components
Conclusion Chapter 20
- Components arbitrary reusable entities
including macros and functions. - Component-based systems as a system that has
components as primitive description units and
communication between components as computation
units.
17A Paradigm Shift ? Software reuse
Conclusion Chapter 20
- Many new activities for software engineering are
introduced through software reuse - Domain analyses
- Development for/with reuse, reuse measurement
- Reuse certification
- Reuse classification
- Repository compilation
- Discipline concerned with construction related
systems that share many commonalties and very in
regular and identifiable ways
18Limits of Component Reuse
Conclusion Chapter 20
- The most challenging aspect is component
integration - Coordination
- Communication
- Interoperation
- Can we raise abstraction levels of components and
at the same time achieve high-performance systems
by using these components?
19Prospects
Conclusion Chapter 20
Different way to build software systems
- More productivity
- The goal to evolve software
- The landscape of software systems will constantly
change from closed monolithic to open systems of
reusable components.
20References
- SAMETINGER, J. Software Engineering with Reusable
Components. Springer-Verlag, 1997.