Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

ENVY/Manager FAQ (v.1.0)


[ Usenet FAQs | Web FAQs | Documents | RFC Index | Zip codes ]
Archive-name: smalltalk/ENVY-faq
Posting-Frequency: monthly
Last-modified: Oct 26,1997
Version: 1.0
URL: http://www.ipass.net/~vmalik/envy.html

See reader questions & answers on this topic! - Help others by sharing your knowledge
____________________________________________________________________________


ENVY/Manager Frequently Asked Questions
Copyright =A9 1994 Vikas Malik
All Rights Reserved

This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
as long as it is posted in its entirety and includes this copyright=
 statement.

This FAQ may not be distributed for financial gain.

This FAQ may not be included in commercial collections or compilations
without express permission from the author.
____________________________________________________________________________

Vikas Malik - vmalik@ipass.net
Knowledge Systems Corporation
____________________________________________________________________________

Contents

* What is ENVY/Manager?
* What are the different software components of ENVY?
* What are the various stages a software component goes through during its
development
 life cycle in ENVY?
* What is the difference between an edition and version of a software
component in ENVY?
* What do I mean by the release of a software component in ENVY?
* What do I mean by the term configuration in ENVY?
* What are the different system components of ENVY?
* What is an Application?
* What is a Subapplication?
* What is the difference between an application and a subapplication?
* What is a class extension?
* What is the difference between a class and a class extension?
* What are the different types of relationships between software components?
* What is the difference between a parts and a contains relationship?
* What are prerequisites?
* What are the prerequisite applications for Kernel application?
* Can subapplications have prerequisites?
* Can I define a class with the same name in two applications?
* Can a subapplication be a part of more than one application?
* Can I extend or subclass a class that is not visible?
* What are visible classes?
* What is a private class?
* How do I make a class private?
* What is a private method?
* Does ENVY prevents the illegal use of private methods?
* Can I change a version of a software component?
* What is a scratch edition?
* Can I release a class in a scratch edition of an application?
* How do I scratch an application programatically?
* What is a Configuration Map?
* Is loading a software component in ENVY an atomic operation?
* What is the difference between class owner and class developer?
* Can I version an application edition that has an open edition of a class?
* Can I create a new edition of a class in a versioned application?
* Can I release an edition of a subapplication in an application edition?
* Can I release an edition of a class in the containing application edition?
* Can the class developer release a class to its containing application?
* Can the subapplication manager release his subapplication to its enclosing
application?
* Can the application manager release his application in a configuration=
 map?
* What do I mean by cloning the ENVY library?
* What do I mean by purging of a component?
* What do I mean by salvaging a component?
* What is the #loaded method used for in ENVY?
* What is the #removing method used for?
* What is the #failedRemove method used for?
* What are Application lineups?
* What do I mean by ENVY baselining process?

Q. What is ENVY/Manager?
Ans. ENVY/Manager is a software engineering environment that provides the
services=20
like configuration, history and change management required for development
and maintenance=20
of large software systems. ENVY is based on "What you saved is what you get"
paradigm.

Q. What are the different software components of ENVY?
Ans. Methods, classes, class extensions, applications, subapplications and
configuration
maps are various software components of ENVY.

Q. What are the various stages a software component goes through during its
development=20
life cycle in ENVY?
Ans. A software component progresses through stages, from edition to version
to release.

Q. What is the difference between an edition and version of a software
component in ENVY?
Ans. An edition is a component that is open for change. An edition
represents work-in-progress.
Declaring an edition to be a version disables changes. A version is simply
immutable edition.

Q. What do I mean by the release of a software component in ENVY?
Ans. Releasing a version of a component to its containing component makes
that version the
one that is part of the configuration and at which point those who load the
containing=20
component get the new part.

Q. What do I mean by the term configuration in ENVY?
Ans. The configuration describes, for a given component edition, the
versions and editions=20
of the components referred to by that edition.

Q. What are the different system components of ENVY?
Ans. 1. Library is the multi-user repository which contains the software
components developed=20
by the users.
2. Users

Q. What is an Application?
Ans. An Application is a collection of classes that together serve some
useful purpose.

Q. What is a Subapplication?
Ans. A SubApplication is an application that is a part of another=
 application.=20
Subapplications are used to isolate platform dependencies and to organize
classes within=20
a large application. SubApplications may themselves contain SubApplications.

Q. What is the difference between an application and a subapplication?
Ans. An Application has prerequisites and whereas a SubApplication is not
allowed to specify=20
prerequisites.

Q. What is a class extension?
Ans. A class can be extended in a separate application or subapplication by
adding new methods=20
to a previously defined class.

Q. What is the difference between a class and a class extension?
Ans. Classes include the class definition and class comment, while the class
extensions include=20
only methods.

Q. What are the different types of relationships between software=
 components?
Ans. 1. Parts relationship
2. Contains relationship
3. Prerequisite relationship

Q. What is the difference between a parts and a contains relationship?
Ans. In a parts relationship, the enclosed component can be part of other
objects whereas in a=20
contains relationship, the enclosed component cannot exist outside of the
enclosing component.=20
For example, an application can be part of several configuration maps
whereas a method is said=20
to be contained by a class.

Q. What are prerequisites?
Ans. Prerequisites must exist in a system before a dependent component can
be allowed. An=20
application defines prerequisite applications, indicating that the
prerequisite applications=20
are required by the application before it can function.

Q. What are the prerequisite applications for Kernel application?
Ans. None.

Q. Can subapplications have prerequisites?
Ans. No, the root application of a subapplication specifies the necessary
prerequisites.

Q. Can I define a class with the same name in two applications?
Ans. Two applications in the same library can define classes with the same
name, but those two=20
applications would not be able to coexist in the same image. Each class in
an image is defined=20
in one and only one application.

Q. Can a subapplication be a part of more than one application?
Ans. Yes, a subapplication may be part of several applications but these
applications cannot=20
coexist in the same image.

Q. Can I extend or subclass a class that is not visible?
Ans. No.=20

Q. What are visible classes?
Ans. Visible classes are those classes that are defined by an application,
one of its=20
subapplications or one of its prerequisites.

Q. What is a private class?
Ans. A private class cannot be referenced, subclassed or extended from
outside of its=20
application.

Q. How do I make a class private?
Ans. By sending #private message to aClass.
	aClass private.=20

Q. What is a private method?
Ans. Private method should not be called outside of its inheritance=
 hierarchy.

Q. Does ENVY prevents the illegal use of private methods?
Ans. No.

Q. Can I change a version of a software component?
Ans. No, a version is immutable. Modifications can be made to component
editions only.

Q. What is a scratch edition?
Ans. A scratch edition allows the modification of an existing application
version in a=20
user's image. However, no changes can be made to the application version's
state in the=20
library. Scratch editions prevent the unnecessary creation of an application
edition by=20
the application manager.=20

Q. Can I release a class in a scratch edition of an application?
Ans. No.

Q. How do I scratch an application programatically?
Ans. AnApplication asScratch.=20

Q. What is a Configuration Map?
Ans. A Configuration Map is a named collection of applications. An
application may be part=20
of any number of configuration maps. A configuration map is "one button" way
to load a group=20
of applications. Most teams use a configuration map to periodically rebuild
their image,=20
bringing in the latest integrated and tested versions of all their=
 applications.

Q. Is loading a software component in ENVY an atomic operation?
Ans. Yes, loading a component is atomic. The image is never left in an
inconsistent=20
state - loading either succeeds completely or fails completely.

Q. What is the difference between class owner and class developer?
Ans. Class owner is the only user authorized to release a class version to
its containing=20
application & delete it from an application. Class developer can create
editions of the class,=20
make changes and version the result.

Q. Can I version an application edition that has an open edition of a class?
Ans. No, a component that has parts or contains other components can only be
versioned if all=20
the subcomponents are themselves versions.

Q. Can I create a new edition of a class in a versioned application?
Ans. No, if a component has been versioned, none of the components that it
contains may be made=20
into editions without first making it an edition. Before making an edition
of a class, the=20
application that contains it must be an edition.

Q. Can I release an edition of a subapplication in an application edition?
Ans. Yes.

Q. Can I release an edition of a class in the containing application=
 edition?
Ans. No, classes may only be released to their containing application after
being versioned.

Q. Can the class developer release a class to its containing application?
Ans. No, the class owner is the only user authorized to release the class to
its containing=20
application.

Q. Can the subapplication manager release his subapplication to its
enclosing application?
Ans. No, the manager of the enclosing application is the only user
authorized to release a=20
subapplication. The subapplication may be either a version or an edition.

Q. Can the application manager release his application in a configuration=
 map?
Ans. No, only the manager of the configuration map edition may release
applications to it.=20
The application may either an edition or a version.

Q. What do I mean by cloning the ENVY library?
Ans. Cloning a library exports all the versioned configuration maps and
applications to another=20
library. In other words, all versioned configuration maps, their
applications, subapplications=20
and classes are copied to new library. Cloning removes purged components
from the library and=20
typically shrinks the library size by 50%. Only the library supervisor is
allowed to clone the=20
library.

Q. What do I mean by purging of a component?
Ans. Purging a component instructs ENVY that the component is no longer of
interest to the user=20
and should be omitted from the user interface. Purging a component does not
free up the disk=20
space occupied by that component.

Q. What do I mean by salvaging a component?
Ans. Salvaging retrieves a purged component and makes it available in the
user interface.

Q. What is the #loaded method used for in ENVY?
Ans. The #loaded method is implemented by an application to initialize its
classes or variables=20
each time it is loaded. The #loaded message is sent to an application after
it has been loaded=20
or reloaded.

For example:
	ApplicationPorsche class>>#loaded
		Porsche911 initialize.
		PorscheBoxster initialize

Q. What is the #removing method used for?
Ans. The #removing method is implemented by an application to eliminate
specific instances of=20
its classes contained in class, shared or global variables, prior to
unloading the application.=20

Q. What is the #failedRemove method used for?
Ans. The #failedRemove method is implemented by any application which
defines a #removing method=20
to counteract anything done in #removing method.

Q. What are Application lineups?
Ans. Application lineups specify  different configurations of application
prerequisites and=20
subapplications for different platforms or conditions. Each platform or
condition is specified=20
by a Configuration expression which evaluates to a boolean.=20

For example, application Swapper has the following lineups for its
prerequisites and subapplications.

Prerequisites
	System vmType =3D 'WIN'	FileSystem R1.0
	System vmType =3D 'st80'	FileSystem R1.0

SubApplications
	System vmType =3D 'WIN'	SwapperCrossloadingToSTV R3.50
				SwapperSTV R3.50
	System vmType =3D 'st80'	SwapperCrossloadToST80 R3.50
				SwapperST80 R3.50

Q. What do I mean by ENVY baselining process?
Ans. A baseline provides a snapshot of the methods, classes and applications
that are part of=20
the system at a specific point during development. ENVY baselines control
versions of software=20
released to external entities and to synchronize Classes, Applications and
Configurations=20
between developers so that the most up-to-date versions of these are readily
available to the=20
entire development team.

*********************************************************************

         _________
         \        \
          \        \               ___    __
           \        \              \  \  / |
           /\        \              \  \/  |
         O/  \ *****  \____________  \ /   |
     \ /   ############## ***+++^^^^^^^\   \
      X **################***+++^^^^^^^ \   \
     / \   ############## ***+++^^^^^    \___\
               / \       \          \o
             O/   \       \
                   \       \
                    \       \
                     \       \
                      \_______\    =20
                                  =20


 		I'D  RATHER  BE  FLYING  !!!

User Contributions:

Comment about this article, ask questions, or add new information about this topic:


[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
vmalik@ipass.net (Vikas Malik)





Last Update March 27 2014 @ 02:12 PM