JavaTM Virtual Reality Applications and
Related Technologies

"Freedom" Service-Oriented Methodology

Overview  Process      Levels  Models  Definitions  Papers  Training

Space Station Freedom
Develop with Freedom
Freedom is an advanced object- oriented (OO) software development methodology developed for the Space Station Freedom Program in 1990. Authorized for public release by NASA in April of 2003, Freedom has been adapted for use by Freedom Ship (hence the name "Freedom"), JReality and others.

Freedom Ship

Dr. David Parnas
Reduce the cost of new software:
Encapsulate requirements
The goal of Freedom is to promote software cost reduction by extending information-hiding, as defined by Dr. David Parnas [interview], 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 requirements. Freedom's 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:

Life-Cycle Phases
Level Build versus Buy Requirements Object Design Implem & Test Release Evolution
6 Tools . . . . . .
5 Products . . . . . .
4 Processes . . . . . .
3 Principles . . . . . .
2 Definitions
1 Concept
Black Box
Black Box
Gray Box
White Box
White Box
White Box

"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 Freedom process 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 technical approach.

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 available from JReality.

about downloads gallery goal plan products
e-commerce future science & engin you & me

Copyright (C) 2000-2003 LDJ Trust