Title: Information and Knowledge Base Systems To Support Software Architecture Extraction and Search for Re
1 Information and Knowledge Base Systems To
Support Software Architecture Extraction and
Search for Reusable Software Components
- CPRE 416-Software Evolution and
Maintenance-Lectures 11-13
2Contents
- Introduction a broad picture of the software
engineering problems we are trying solve. - Theme we need a language to think about
software is structured, how it operates .. - Discussion of one paper LaSSIE system.
- What language does LaSSIE use? Why?
3Introduction No Silver Bullet
- Four essential difficulties in building large
software - Complexity The complexity of development
process, application domain etc. - Conformity Software cannot have a regular formal
structure because it must adapt to and interact
with human and institution needs - Changeability software changes often
- Invisibility The structure of software is hidden
- Brooks, F. P., No Silver Bullet Essence and
Accidents of Software Engineering, IEEE Computer
Magazine, April, 1987.
4LaSSIE a Knowledge-based Software Information
System
- Address the invisibility problem directly and
the complexity is addressed indirectly. - Invisibility implies it is hard to look for
things of concern another way to say that
searching is hard. - Their view of challenges (a) semantic
proliferation, (b) multiple views, (c)
intelligent indexing. - Their solution Knowledge representation and
reasoning technology.
5Discovery Task
- Discovery Acquiring the knowledge of application
domain, architecture and design, specific
practices. - Discovery takes 30 to 60 of developers time.
6Discovery Series of Questions
- Typical questions about the ATT Telephone
Switching System
7Answers require different views
- Answers depend on knowledge associated with views
of the system
8A view of invisibility
9Retrieve reusable components
- My interpretation of this line of research
- Software is considered as a collection of
artifacts. - A mechanism to retrieve artifacts.
- Retrieval Mechanisms (RMs) keyword-based,
faceted-index-based, or semantic-net based .. - The retrieval mechanism uses a language to
refer to software artifacts and the relationships
between those artifacts.
10Problems with Keywords
- Semantics of the keywords not available to the
retrieval or the storage mechanism. - Different keywords for the same thing.
- Meaning of the keyword changes depending on the
context.
11Faceted Classification
- Examples of facets functions, objects etc.
- Values for the function could be add, subtract,
append, open, read, write .. - Values for the object could be array, file ..
- Retrieval by specifying facets and their values.
- Classification scheme is static.
- Weak representation cannot express constraints.
12Why are the RMs inadequate
- According to LaSSIE creators
- The RMs are like librarians
- These librarians do not think of the software
artifacts as parts of an architecture. - They organize and retrieve the software artifacts
without using any knowledge of their
architectural organization. - The retrieval does not have an intelligent
indexing scheme that incorporates knowledge about
the architecture.
13Another view of inadequacies
- The language used by RMs is inadequate
- The description of each software artifact should
include constraints on how it should be reused. - The RMs have a language to specify mere
associations not a language to specify
constraints.
14An Observation
- An observation from the LaSSIE paper about RMs
15What LaSSIE attempts
- An information retrieval system with a knowledge
base (KB) to integrate architectural, conceptual,
and code views. - Uses the knowledge representation language called
KANDOR. - Provides a UI with graphical browser and natural
language query processing.
16What goes in the KB
- Actions and Objects
- Choice based on
- Existing work on domain analysis
- Empirical studies of programming knowledge.
- Vocabulary used by programmers at ATT
- Domain analysis includes the description of a set
of components - actions and objects. - Programming Knowledge
- Syntactic structural details of the programming
language - Semantic the action-object paradigm prior work
by another researcher.
17Programmers Vocabulary
- Samples comments from ATT programmers.
- Describe simple actions sometimes caused by other
actions include operands, actors, and contexts
(customer feature in this case).
18Knowledge Representation Language
- Frame-based representation is chosen for LaSSIE.
- Frames represent classes of objects.
- KANDOR language chosen.
19Frame-based Languages
- A frame represents a collection of instances
(related to classes, concepts). - Each frame has a set of slots (also called
attributes) which can be filled by values or
other frames. - Frames can have a kind-of slot (is-a link) to
enable taxonomy. - A script is a type of frame that describes what
happens temporally the usual example given is
that of describing going to a restaurant. The
steps include waiting to be seated, receiving a
menu, ordering, etc. - Ronald J. Brachman wrote a paper titled "What
IS-A is and isn't", wherein 29 different
semantics were found in projects.
20A Frame Example
frame-27 name ("Adam") sex (frame-2)
spouse (frame-28) child (frame-29 frame-30
frame-31)
21More About Frames
- If a frame f is in a relationship r to a frame g,
then we put the value g in the r slot of f. - A frame can be considered just a convenient way
to represent a set of predicates applied to
constant symbols (e.g. ground instances of
predicates.). For example, the previous frame
could be represented by - sex(Adam,Male)
- spouse(Adam,Beth)
- child(Adam,Charles) etc.
22Access Paths
- It is a search mechanism.
- Example
- ( ( parent John ?X) (sister ?X ?Y) )
23Rules
- Logical implications are represented as rules.
- Example
- ((spouse ?X ?Y) -gt ((spouse ?Y ?X)
- It is a forward chaining rule. It says whenever
we learn a relation (spouse f g) we should
immediately conclude (spouse g f)
24Queries and Assertions
- Two basic operations on a knowledge-base --
queries and assertions. - Queries retrieve knowledge from the
knowledge-base, applying if-needed rules. - Assertions add facts to the knowledge-base and
apply if-added rules. - An example of if-needed rule
- (( aunt ?Z ?Y) ?(parent ?Z, ?X) (sister ?X, ?Y)