|
[XML-DEV Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
RE: [OT] Enhancing the richness of an information system [was:
Title: Message
Could
we say that a system is extensible if one or more of its external interfaces
support the addition of new components - which thus become an integral part of
the resulting "extended" system?
Also,
could we say that a system is extensible if one or more of its *internal*
interfaces support the addition of new components or the replacement of a
component with a new component with an extended interface?
In
both cases, additional entire external interfaces can be made available as the
result of the extension.
I
still think that "evolvability" has totally different connotations, which relate
to the ease, cost, and elegance of changes to be made to meet new
requirements/constraints. (Whereas "extensibility" would only mean that an
addition or replacement is possible - i.e., explicitly supported by some
interface - and can be safely ignored by the user.)
(Which
means that one can have evolution with or without extension - in many
cases, breaking extensibility.)
(Or
vice versa. Say, adding a second keyboard to my PC may or may not be
considered as "evolution" of my PC.)
Alessandro Triglia
Hi
Folks,
Many thanks to those who responded to my last message.
This message is a follow-up.
From the responses it is evident that the difference between
"extensibility" and "evolution" can be slippery. I like the distinction
that Ken Laskey gave:
"To
be extensible allows you to do things for which you have a current
understanding but to do it over a wider range of instances." (Thus,
adding new keywords, or adding new book categories are examples of
extending the system, not evolving the system)
"To show
evolution, you need to do something in a new way or do something you hadn't
done before."
In
the following discussion I will use the terms "extensibility" and
"evolution" using these definitions.
I would like to hear your
thoughts on ways to enhance the richness of an information
system.
I see two ways of
enhancing the richness of an information system:
1. Horizontal
Extension
2. Vertical
Evolution
Below I explain what I
mean by these terms.
Horizontal
Extension
A typical method of
growing a system is to "add more stuff". For example, Amazon can grow by
adding more ways for users to locate information:
- add
a keyword search capability,
- add
a way to locate information based upon book category,
- add
a way to locate information based upon author name,
-
etc.
By "adding more stuff"
Amazon has extended its "access mechanisms". The system has
expanded horizontally with new access methods. I refer to this method of
enhancing the richness of a system as horizontal
extension.
Advantages: this method
of enhancing the richness of an information system is well understood and is
controllable.
Disadvantages: no matter
how many ways Amazon provides for accessing information, it will never be
enough. The need for new ways
to access information changes as
information changes (e.g., new fields of study) and as users change. (I
offer as evidence the constantly changing face of the Amazon web
site)
Vertical
Evolution
When I was a child I used
to enjoy building things with Legos. Starting from simple Lego building
blocks I was able to build up rich structures. The Lego building block
"interface" was fixed (i.e., the blocks snapped together in certain
ways). But that simple interface was sufficient to enable creation of
tremendously rich structures. The richness of the structures was
limited only by my imagination.
Analogously, a
method for enhancing the richness of a system is to "build up" the system
from building blocks. The system is thus designed to support
different mechanisms for "connecting" the pieces. After
launching the system, the ways that the system changes is dictated by how the
users connect the pieces together.
For example,
suppose that Amazon provides a "related to" mechanism for connecting
information. Further, suppose that Amazon does not have a keyword search
capability. The system could "evolve" to support keyword searches by
using the "related to" mechanism:
XSLT
--------------------> XSLT: Programmer's Reference by Michael
Kay
"related-to"
"XSLT" is a
user-defined keyword.
"XSLT:
Programmer's Reference by Michael Kay" is a basic information building block
within the Amazon system.
It is important to
note that no new functionality was introduced. Existing functionality
was utilized to enhance the richness of the system. That is, the
"related to" connection mechanism was used to create the keyword search
mechanism. I refer to this method of enhancing the richness of a system
as vertical evolution.
Advantages: the
system is able to quickly respond/adapt to user needs. In fact, it is
the users that evolve the system! The system simply provides the
mechanisms for the user to "snap together the building
blocks".
Disadvantages: it is important that the system provide guides to ensure
that evolution occurs in a useful direction. (The system guides, but does not control the
evolution)
What are your thoughts on this?
/Roger

|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
| RSS 2.0 |
 |
| Atom 0.3 |
 |
| |
Stylus Studio has published XML-DEV in RSS and ATOM formats,
enabling users to easily subcribe to the list from their preferred news reader application.
|
Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website.
they were not included by the author in the initial post. To view the content without the Sponsor Links please
click here.
|
|