home *** CD-ROM | disk | FTP | other *** search
- Path: senator-bedfellow.mit.edu!dreaderd!not-for-mail
- Message-ID: <smalltalk/ENVY-faq_1082200966@rtfm.mit.edu>
- Supersedes: <smalltalk/ENVY-faq_1079601013@rtfm.mit.edu>
- Expires: 31 May 2004 11:22:46 GMT
- X-Last-Updated: 1998/01/11
- Organization: none
- From: vmalik@ipass.net (Vikas Malik)
- Newsgroups: comp.lang.smalltalk,comp.answers,news.answers
- Subject: ENVY/Manager FAQ (v.1.0)
- Followup-To: poster
- Approved: news-answers-request@MIT.EDU
- Originator: faqserv@penguin-lust.MIT.EDU
- Date: 17 Apr 2004 11:27:57 GMT
- Lines: 393
- NNTP-Posting-Host: penguin-lust.mit.edu
- X-Trace: 1082201277 senator-bedfellow.mit.edu 576 18.181.0.29
- Xref: senator-bedfellow.mit.edu comp.lang.smalltalk:144698 comp.answers:56874 news.answers:269926
-
- Archive-name: smalltalk/ENVY-faq
- Posting-Frequency: monthly
- Last-modified: Oct 26,1997
- Version: 1.0
- URL: http://www.ipass.net/~vmalik/envy.html
-
- ____________________________________________________________________________
-
-
- 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 !!!
-
-