Knowledge Evolution, Inc. (KEI) is a small business that was incorporated in October, 1995 in Washington, DC.
KEI's primary mission is to perform research and development in knowledge-based software engineering and intelligent agents. We intend to bring early commercial versions of the developed technology to market.
A secondary mission is to explore multi-media as a vehicle for both intellectual and artistic communication. We will develop products supporting or demonstrating this potential.
This home page contains information on KEI's founder, our vision, and our areas of expertise (including current projects).
KEI's founder and President is Dr. Sidney C. Bailin (sbailin@kevol.com) Before forming KEI, Dr. Bailin was a Vice President of Engineering at CTA, Inc., where for 12 years he played a leading role in that company's software technology program.
Dr. Bailin received his B.A. in mathematics from Columbia University in 1974, the M.Sc. in mathematics from Oxford University in 1976, and a D.Phil. in mathematical logic from Oxford in 1986. Since then he has published roughly two dozen papers on software engineering and automated reasoning.
He has been active in the Software Reuse community since the Minnowbrook Workshop in 1987. The now international WISR workshops grew out of the working group that he co-led there.
He has served as a referee for IEEE Computer, the Journal of Symbolic Logic, the Journal of Software Engineering and Knowledge Engineering, the Journal of Automated Software Engineering, and Communications of the ACM.
He has served as a peer reviewer for the National Science Foundation, as well as on the program committees of the Washington Ada Symposium and the International Conference on Software Reuse, and as a reviewer of book proposals on software technology for John Wiley and Sons and the IEEE Computer Society Press.
In addition to his computer interests, Sidney Bailin is deeply involved in the arts, particularly music and, more recently, film. He began composing at the age of 6, learned formal species counterpoint at the age of 10, spent four years in his teens at the Juilliard School studying piano and composition, and continues to compose (and occasionally perform) today. In Washington, DC, where he lives, he is a member of the Capital Composers Alliance and a performing member of the Friday Morning Music Club. More recently, Dr. Bailin has initiated a film production project within KEI.
Knowledge Evolution, Inc. was formed to pursue a vision of software development as a reasoning activity. The company's mission is to develop technology supporting this vision, refine it to the level of commercial quality tools, and bring these tools to market.
In KEI's view, the "reasoning" that constitutes software development is found in the series of decisions that go into creating and maintaining a software system. These include:
Frequently these decisions are hidden because either the problem itself or the available solutions are not articulated. In such cases the basis for the decision may be an unanalyzed perception of the "easiest solution," or convention, or unawareness of any alternatives. One of our main contentions is:
Successful software development efforts are characterized by asking the right questions and investigating the right set of alternative solutions, at the right time.In this way, reasoning becomes the essence of the software development process. Tools that help surface the key questions and potential answers become a core part of the necessary technology.
KEI views the necessary tooling as both human- and machine- based:
Key technologies in which KEI specializes are:
Please notify webmaster@kevol.com of any problems or suggestions.
A project under the DARPA/Rome Laboratory Evolutionary Design of Complex Software program
Principal Investigators:
This project will transfer the extant capabilities of both systems, adapting them as appropriate to the demands of design rationale capture, to form a new system called Familiar (Formal Alternatives Management Integrating Logical Inference And Rationales). The capabilities of Familiar will be enhanced by synergistic interactions between these two technologies. Drawing on the capabilities of ZD, Familiar will support the combination of designs for which the rationale is already known, drawing attention to conflicts, raising design obligations, or instantiating known design patterns as appropriate. Drawing on the capabilities of KAPTUR, Familiar will manage alternative designs and trade-offs; it will record and manage both informal rationales and those derived from analysis by external tools.
A number of features of the formal system ZD make it particularly appropriate for integration with an alternatives management system like KAPTUR. ZD provides the capability to verify the consistency of a combination of "devices" (i.e., components) that have been formally described, generating design obligations to compensate for any conflicts that have been found. Because ZD separates the description of devices from the semantics of their implementation, it can represent more than just program code, and it has been applied to several types of teleological artifacts (of particular interest for Familiar are data structures, design patterns, task structures, and business processes). ZD represents devices at several levels of detail. It is possible in ZD to have a formal description of a device, even if details are not known down to the level of program language semantics. This characteristic is one of the keys to integrating ZD with the alternatives management model of KAPTUR.
The main contribution of KAPTUR to Familiar is the notion of managing alternatives through a feature model. Alternative solutions to a design problem are characterized by their distinctive features. Each feature is associated with a set of tradeoffs in relation to the overall system goals. Judgment is typically required to decide which compromises will have the least negative impact on a design. KAPTUR currently allows for recording and managing informal rationales in the form of natural language annotations. In Familiar, we intend to support formal rationales (generated by ZD) within the alternatives management schema, and to support the incremental formalization of alternatives as a domain matures.
Some of the work of this project will be to adapt the existing capabilities to a single design rationale system. ZD has been used primarily for diagnosis and repair of software systems, and will have to be modified to accommodate the different demands of design rationale. KAPTUR's user-interaction model for visualizing alternatives will be enhanced on the basis of lessons that were learned in the KAPTUR project.
The real value of Familiar, however, will follow from the integration of ZD and KAPTUR capabilities. Constraints generated by ZD will be used as features for the alternatives manager (the new incarnation of KAPTUR). Conflicts and design obligations can then be traded off against one another, or against other features, to provide a context for making a design decision. This can be done incrementally, without having to formalize all the alternatives to be considered, by taking advantage of ZD's abstraction capability. The more detail to which the alternatives are formalized, the more ZD can be used to generate decision criteria.
We will explore methods of hiding the ZD formalism through the visualization support capabilities of the alternatives manager. This would allow us free the user of the need to learn ZD. The user could, for example, pose questions of the form, "I want something like that, but in this context." Seen in this way, management of alternatives is not just an end in itself; it is, rather, the basis of a domain evolution path from informal to formal rationales.
We expect that ZD's abstraction capability and KAPTUR's support for informal rationales will enable Familiar to manage more than just design decisions. Tradeoffs, decisions, and rationales by a variety of stakeholders in a variety of contexts will be representable and manageable by the tool.
Bailin, S.C. KAPTUR: Knowledge Acquisition for Preservation of Tradeoffs and
Underlying Rationales. CTA Inc., 1991.
Chandrasekaran, B., Goel, A., and Iwasaki, Y. Functional representation as design
rationale. IEEE Computer, vol. 26, no. 1, pages 48-56, 1993.
Liver, B. and D. Allemang, "A Functional Representation for Software Reuse and
Design", Journal of Software Engineering and Knowledge Engineering, vol. 5, no. 2,
1995.
A Small Business Innovation Research project sponsored by DARPA ITO
Principal Investigator: Sidney Bailin, Knowledge Evolution, Inc. (sbailin@kevol.com))
The MMDN will fuse the expressive and communicative power of multi-media with the explanatory and imaginative power of narrative to convey the contents of a cumulative design record.
In this project, Knowledge Evolution, Inc. (KEI), supported by the University of Southern California's Information Sciences Institute (ISI), is developing a Multi-Media Design Narrative (MMDN) capability that can fundamentally alter the way software design knowledge is communicated among designers and, indeed, all stakeholders of a software system.
The MMDN will build on three complementary technologies:
In the resulting environment, a software design will take shape as a compelling and continually embellished story that has purpose and meaning to those who make decisions about the system.
The project will introduce explicit narrative structure into the software design record and package it in a multi-media presentation similar to computer-based training. For any particular task, the narrative structure will lead the developer along the most relevant threads in the web of recorded decisions and artifacts.
At a more basic level, the narrative structure will raise the stakes of the design process in the eyes of the developer by engaging her in a dialog, inviting her to become an actor in the ongoing story, highlighting and giving substance to the implications of decisions she has to make.
The fundamental insight that we are using to structure the multi-media presentation is that the design record should tell a story. The idea of documenting software through a narrative about the decision process comes from Literate Programming. Knuth's contention was that program documentation should read like literature, if the author expects other developers to pay attention to it.
We are taking this observation a step further by proposing a dramatic (rather than strictly literary) paradigm, and taking advantage of multi-media in rendering it. The dramatic paradigm is distinguished from the strictly literary by the focus on actors (stakeholders) and their actions, and a more direct audio-visual presentation of the content.
Phase I of the project will establish a practical basis for constructing multi-media design narratives: a non-intrusive approach to data capture and composition of MMDN modules, and building blocks in the form of reusable design-narrative patterns.
While an ambitious designer could use the raw materials of the World Wide Web to construct a multi-media design narrative (by creating multiple pages and carefully structuring the links between them), he currently has no support in deciding what series of links will make an effective design narrative. The situation is analogous to creating a computer-based training course using a raw multi-media presentation tool: it can be done, but a good CBT authoring tool will provide added value by packaging the educational knowledge that is required in creating an effective course.
The need for such support is especially clear in the area of software design and explanation. Software developers are usually under severe time pressure, and they operate more often than not with tunnel vision directed at their immediate tasks. It is unlikely that a developer in these circumstances will take the time (much less achieve the cognitive distance) necessary to construct an effective design narrative - if she has only raw media-editing tools at her disposal. At best, she may construct some helpful Web pages and insert them into the larger network. The placement of the pages, and the overall effect on the implicit threads, are not likely to receive a lot of attention.
The technology we are developing, in contrast, will assist the designer in constructing effective design narratives. It will do so by providing narrative building blocks - reusable patterns that reflect proven ways of communicating a design narrative. The MMDN capability, through a set of templates and rules, will ensure that the design narrative conforms to such patterns both initially and as it evolves.
To Design Rationale Capture at Knowledge Evolution, Inc.
To the Knowledge Evolution, Inc. Home Page.
Evolutionary Views of Lifecycle Versions, Elements, and Rationales.
KEI is a subcontractor to Lockeed-Martin Tactical Defense Systems on EVOLVER, part of the DARPA/Rome Laboratory Evolutionary Design of Complex Software program
We are collaborating with the University of Maryland, Baltimore Campus (UMBC) in applying multi-media and especially virtual reality to support navigation of the EVOLVER hypercode web.
This work complements that being performed under the Multi-Media Design Narrative SBIR project.
To Design Rationale Capture at Knowledge Evolution, Inc.
To the Knowledge Evolution, Inc. Home Page.
Software reuse, in this sense, is more than the reuse of code components,
even more than the reuse of development-lifecycle products (such as requirements
specifications, designs, and test plans). It is the reuse of software
knowledge which may be embodied in any kind of lifecycle product
or information artifact.
Our view of software reuse as knowledge re-application draws on ideas of
case-based reasoning. The challenge is to solve a software development
problem by relating it to previous efforts ("cases"), identifying the
most relevant previous cases, adapting the previous solutions to the
current problem, and finally adding the new case and its solution to
the case base of available solutions.
This page describes our approach to:
A key aspect of our approach to domain modeling is the identification
and organization of features that distinguish cases from each other.
An equally important aspect is the descriptive modeling of a domain:
incorporating detailed information from existing systems ("exemplars") into the
domain model, and paying close attention to the reasons for any differences
between these exemplars.
It is fashionable in software engineering (and especially software
reuse) circles to bemoan the occurrence of ad hoc decisions by a
developer. We take a different view. If, as we believe, software development
is largely a process of discovery and learning, then ad hoc or
unprecedented decisions play an essential role. The key is to capture
this knowledge and make it part of the evolving case base.
There are both organizational and technical challenges to capturing
ad hoc discoveries and integrating them into the case base. Organizationally, the
challenges have to do with transforming "private" knowledge into "shared"
knowledge, and "tacit" knowledge into "explicit" knowledge. These issues
are addressed in the
LIBRA methodology.
Technically, the challenge is to develop the means to capture discoveries
non-intrusively, and generalize them so they can be applied to
similar problems. KEI is pursuing several avenues towards this goal,
including our work in design rationale capture,
and work in learning maintenance operations by example.
We have combined the above-described approaches to reuse and evolution
into an overall paradigm which we call Difference-Based Engineering (DBE).
We have recently worked with Lockheed-Martin to integrate
DBE into their
Reuse-Oriented Software Evolution (ROSE) process model.
An organization practicing DBE approaches its software development tasks by
relying heavily on its core competencies and its Experience Base, which
is represented in the form of a Case Base. Members of a DBE
organization have confidence that 1) they have done enough of "this type of work"
in the past to be able to excel in any future tasks that come in, and 2) they have the
resources to study, analyze, and draw conclusions about anything new in a given
task. The Experience Base provides a record of past accomplishments and the way
they were achieved, the decisions that went into them, the reasoning behind the
decisions, lessons learned along the way, and encapsulated "how to" knowledge that
summarizes the most useful experiences and packages them for future use.
The figure at the top of this page shows how systems are developed in a DBE
organization. A task order
comes in with a set of requirements for a new software system. The first thing that
the engineers do is to interpret these requirements as a set of required features; in
addition to requirements for the system itself, there may be other constraints that
the engineers will have to work within, and these too are interpreted as features.
With the feature specification at hand, the engineers surf the Experience Base to
locate and retrieve the organization's most relevant knowledge - including, in
particular, past systems that share many (if not all) of the current requirements, or
systems that share some especially important requirements with the current task.
The Alternatives Manager in FAMILIAR is intended
to facilitate the process of evaluating the relevance of existing cases.
With the organization's relevant experience at hand, the engineers then assess just
how relevant the experience really is. In the best case, the organization has "done
this before" and the previous accomplishment can be rolled out and delivered. But
if the answer is "we have never done exactly this before, but we have done similar
things" then the engineers try to articulate the differences between the current task
and the past accomplishments.
With the differences articulated, the engineers then investigate how any of the
organization's past accomplishments can be modified to meet the current challenge.
They will usually develop a number of alternative approaches to do this. As they
define the alternatives, they study the implications of each approach and the
tradeoffs between them. Then, on this basis, they select an approach. This is the
classical systems engineering process, which lies at the center of DBE. The key
observations of the analysis process are captured added to the Experience Base.
As the new system is developed, more decisions are made. These too become part of
the design record of the new system, and are incorporated in the Experience Base for
later playback and review, and to guide future efforts.
Domain Modeling
A domain, in our view, is a locus of recurrent practice: a
range of problems that are similar enough to warrant similar solutions.
Each case will be more or less different from the others; as each case is
created, the available software knowledge evolves.
Knowledge Evolution
Our approach is distinguished by the importance we place on the
case-by-case evolution of problem solving knowledge. We recognize
the value of systematic domain modelling as a way to establish and take
advantage of an organization's experience and best practice. Software,
however, is unique among engineering disciplines in its rapid pace of
evolution. Any approach to domain modeling or software reuse that
ignores this is bound to fail.
Difference-Based Engineering