Agent Employment Opportunities

Knowledge Evolution, Inc.

Knowledge Evolution, Inc.

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

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.


KEI's Vision

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:

and other types of decisions representing the full range of stakeholders in the development process and end-application. Each decision involves an understanding of a problem to be solved and a set of possible solutions. The "problem" is not necessarily a negative phenomenon, but may simply represent the need to get "from A to B."

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:

KEI's current R&D projects and future commercialization plans encompass all of these types of tools.

KEI's Expertise

Key technologies in which KEI specializes are:

Last updated September 9, 1996.

Please notify webmaster@kevol.com of any problems or suggestions. FAMILIAR

FAMILIAR: Formal Alternatives Management Integrating Logical Inference And Rationales

A project under the DARPA/Rome Laboratory Evolutionary Design of Complex Software program

Principal Investigators:


Block Diagram of Familiar Managing design rationale in a way that is scaleable to the problems of large, complex evolutionary systems presents two central and related challenges: managing design alternatives, and integrating informal with formal rationale. Familiar addresses these challenges by integrating ZD [Liver and Allemang], a formal system for representing software based on Functional Representations [Chandra], and KAPTUR [Bailin], a system for managing design alternatives and informal rationales.

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.


The Base Technologies

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.


Technical Plan

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.


Features


References

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.


To Design Rationale Capture at Knowledge Evolution, Inc.


To the Knowledge Evolution, Inc. Home Page Multi-Media Design Narrative

Capturing Software Rationale in a Multi-Media Design Narrative

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.


Phase I Technical Objectives

The overall objective of the project is to package the software design record into an integrated multi-media presentation similar to a computer-based training module. The subject matter of the training is the software design.

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

KEI's Role in EVOLVER

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

Concept diagram

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.


Technology Evaluation

We are assessing how narrative and dramatic techniques in human-computer interaction can be applied to software evolution. This involves collating and analyzing existing work on: In identifying, filtering, and structing this information, we use the techniques of Organization Domain Modeling.

Technology Development

We are developing prototypes of an Authoring/Playback capability that supports narrative-guided navigation of the EVOLVER hypercode infrastructure. The emphasis is on the use of 3D-graphics and virtual reality to support visualization of, and immersion in, the design web.


To Design Rationale Capture at Knowledge Evolution, Inc.


To the Knowledge Evolution, Inc. Home Page. KEI's Approach to Software Reuse and Domain Engineering

Software Reuse and Domain Engineering

A Case-Based Approach, with Emphasis on Evolution

Difference-Based Engineering Flow Diagram KEI's approach to software reuse follows from our view of software development as knowledge creation. We view software reuse as the re-application of known solutions to known types of problems.

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:


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.

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.


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.

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.


Difference-Based Engineering

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.


To the Knowledge Evolution, Inc. Home Page