JavaTM Virtual Reality Applications and
"Freedom" Service-Oriented Methodology
Space Station Freedom
Develop with Freedom
Freedom is an advanced object- oriented (OO) software development methodology
developed for the
Space Station Freedom Program
Authorized for public release by
in April of 2003, Freedom has
been adapted for use by
(hence the name "Freedom"),
JReality and others.
Dr. David Parnas
Reduce the cost of new software:
The goal of Freedom is to promote software cost reduction
by extending information-hiding, as defined by
Dr. David Parnas
to encapsulation of software requirements.
Requirements encapsulation eases requirements change over the
life of the software.
Straightforward cost analysis with reasonable
assumptions indicates requirements encapsulation should
reduce software lifetime maintenance cost by 20%, and total software cost by
16%. While only estimates, the potential for such savings
warrants serious consideration of extending one's OO techniques
to include Freedom and encapsulation of requirements.
Kill two birds with one stone:
Requirements = = External Interfaces
In achieving the goal of cost reduction via requirements encapsulation,
Freedom draws heavily upon the work of the late
Dr. Harlan Mills to precisely define
definition of requirements not only enables requirements encapsulation,
but leads naturally to an emphasis on
interfaces. The emphasis on interfaces
results in an "outside-in" development process where software is viewed
successively as a
black box for requirements and system test purposes, a
gray box for design and regression testing, and a
white box for implementation and unit testing, as proposed by Mills.
Dr. Harlan Mills
Dr. C.W. McKay
Develop on a firm foundation:
Concepts and definitions are essential
Freedom is built in "levels of abstraction" starting with
fundamental concepts (invariant) up through products and tools (evolvable),
as recommended by
Dr. Charles McKay.
Freedom's concepts and definitions are its essence. Different
higher-level artifacts such as processes, products or tools can be
substituted providing the new artifacts are consistent with all existing
lower-level artifacts, especially the fundamental concepts and definitions.
Freedom's foundation of black, gray and white box models, plus its abstraction
levels, give it the following high-level structure:
"Freedom" High-Level Structure
Help customers identify their needs:
UI mockup and quality drivers
Being interface-centric leads naturally to Freedom being customer-centric
as well. The
specifies that the external user interface
code be written first, and a User Interface
(UI) mockup prototype be
delivered to the customer extremely early in the development process.
The UI mockup helps the customer verify the correctness and
completeness of the requirements, which are themselves
defined in an interface-centric manner consistent with the work
of Mills and Parnas. Freedom's
Quality Requirements further enhance its customer-centric
nature by servicing the customer's needs for software quality
(i.e., "service-oriented") at each step in the development process.
Multiply your powers:
Divide technical and management methodologies
Freedom's box-based concept models offer much guidance in technical
matters but do not strongly support software project management.
Thus, Freedom is not a software
management methodology but, rather, is strictly a technical methodology.
Far from being a weakness, management-neutrality permits Freedom to
be paired with most any management methodology
to support spiral, incremental, evolutionary, early release,
frequent release, prototyping, offshoring, and other management models.
Projects thus gain flexibility to reduce cost and risk in a manner
appropriate to their unique needs while leveraging Freedom's powerful
Getting it together with Freedom:
Customers and their interfaces come first
In summary, Freedom produces lower cost, higher quality software by being
The net result of using Freedom is higher quality software delivered
to the customer sooner, and software that is less costly to enhance
when adding or modifying required capabilities. Hands-on practice using
Freedom can be obtained via Freedom
professional training courses
- interface-centric -- applies information-hiding to requirements,
- customer-centric -- involves the customer in specifying and verifying requirements,
- service-oriented -- continuously services customer needs for quality at each development step,
- management-neutral -- pairs with most any software management methodology or process.
science & engin
you & me
Copyright (C) 2000-2003 LDJ Trust