home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / smalltalk / ENVY-faq
Internet Message Format  |  2004-04-18  |  15KB

  1. Path: senator-bedfellow.mit.edu!dreaderd!not-for-mail
  2. Message-ID: <smalltalk/ENVY-faq_1082200966@rtfm.mit.edu>
  3. Supersedes: <smalltalk/ENVY-faq_1079601013@rtfm.mit.edu>
  4. Expires: 31 May 2004 11:22:46 GMT
  5. X-Last-Updated: 1998/01/11
  6. Organization: none
  7. From: vmalik@ipass.net (Vikas Malik)
  8. Newsgroups: comp.lang.smalltalk,comp.answers,news.answers
  9. Subject: ENVY/Manager FAQ (v.1.0)
  10. Followup-To: poster
  11. Approved: news-answers-request@MIT.EDU
  12. Originator: faqserv@penguin-lust.MIT.EDU
  13. Date: 17 Apr 2004 11:27:57 GMT
  14. Lines: 393
  15. NNTP-Posting-Host: penguin-lust.mit.edu
  16. X-Trace: 1082201277 senator-bedfellow.mit.edu 576 18.181.0.29
  17. Xref: senator-bedfellow.mit.edu comp.lang.smalltalk:144698 comp.answers:56874 news.answers:269926
  18.  
  19. Archive-name: smalltalk/ENVY-faq
  20. Posting-Frequency: monthly
  21. Last-modified: Oct 26,1997
  22. Version: 1.0
  23. URL: http://www.ipass.net/~vmalik/envy.html
  24.  
  25. ____________________________________________________________________________
  26.  
  27.  
  28. ENVY/Manager Frequently Asked Questions
  29. Copyright =A9 1994 Vikas Malik
  30. All Rights Reserved
  31.  
  32. This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
  33. as long as it is posted in its entirety and includes this copyright=
  34.  statement.
  35.  
  36. This FAQ may not be distributed for financial gain.
  37.  
  38. This FAQ may not be included in commercial collections or compilations
  39. without express permission from the author.
  40. ____________________________________________________________________________
  41.  
  42. Vikas Malik - vmalik@ipass.net
  43. Knowledge Systems Corporation
  44. ____________________________________________________________________________
  45.  
  46. Contents
  47.  
  48. * What is ENVY/Manager?
  49. * What are the different software components of ENVY?
  50. * What are the various stages a software component goes through during its
  51. development
  52.  life cycle in ENVY?
  53. * What is the difference between an edition and version of a software
  54. component in ENVY?
  55. * What do I mean by the release of a software component in ENVY?
  56. * What do I mean by the term configuration in ENVY?
  57. * What are the different system components of ENVY?
  58. * What is an Application?
  59. * What is a Subapplication?
  60. * What is the difference between an application and a subapplication?
  61. * What is a class extension?
  62. * What is the difference between a class and a class extension?
  63. * What are the different types of relationships between software components?
  64. * What is the difference between a parts and a contains relationship?
  65. * What are prerequisites?
  66. * What are the prerequisite applications for Kernel application?
  67. * Can subapplications have prerequisites?
  68. * Can I define a class with the same name in two applications?
  69. * Can a subapplication be a part of more than one application?
  70. * Can I extend or subclass a class that is not visible?
  71. * What are visible classes?
  72. * What is a private class?
  73. * How do I make a class private?
  74. * What is a private method?
  75. * Does ENVY prevents the illegal use of private methods?
  76. * Can I change a version of a software component?
  77. * What is a scratch edition?
  78. * Can I release a class in a scratch edition of an application?
  79. * How do I scratch an application programatically?
  80. * What is a Configuration Map?
  81. * Is loading a software component in ENVY an atomic operation?
  82. * What is the difference between class owner and class developer?
  83. * Can I version an application edition that has an open edition of a class?
  84. * Can I create a new edition of a class in a versioned application?
  85. * Can I release an edition of a subapplication in an application edition?
  86. * Can I release an edition of a class in the containing application edition?
  87. * Can the class developer release a class to its containing application?
  88. * Can the subapplication manager release his subapplication to its enclosing
  89. application?
  90. * Can the application manager release his application in a configuration=
  91.  map?
  92. * What do I mean by cloning the ENVY library?
  93. * What do I mean by purging of a component?
  94. * What do I mean by salvaging a component?
  95. * What is the #loaded method used for in ENVY?
  96. * What is the #removing method used for?
  97. * What is the #failedRemove method used for?
  98. * What are Application lineups?
  99. * What do I mean by ENVY baselining process?
  100.  
  101. Q. What is ENVY/Manager?
  102. Ans. ENVY/Manager is a software engineering environment that provides the
  103. services=20
  104. like configuration, history and change management required for development
  105. and maintenance=20
  106. of large software systems. ENVY is based on "What you saved is what you get"
  107. paradigm.
  108.  
  109. Q. What are the different software components of ENVY?
  110. Ans. Methods, classes, class extensions, applications, subapplications and
  111. configuration
  112. maps are various software components of ENVY.
  113.  
  114. Q. What are the various stages a software component goes through during its
  115. development=20
  116. life cycle in ENVY?
  117. Ans. A software component progresses through stages, from edition to version
  118. to release.
  119.  
  120. Q. What is the difference between an edition and version of a software
  121. component in ENVY?
  122. Ans. An edition is a component that is open for change. An edition
  123. represents work-in-progress.
  124. Declaring an edition to be a version disables changes. A version is simply
  125. immutable edition.
  126.  
  127. Q. What do I mean by the release of a software component in ENVY?
  128. Ans. Releasing a version of a component to its containing component makes
  129. that version the
  130. one that is part of the configuration and at which point those who load the
  131. containing=20
  132. component get the new part.
  133.  
  134. Q. What do I mean by the term configuration in ENVY?
  135. Ans. The configuration describes, for a given component edition, the
  136. versions and editions=20
  137. of the components referred to by that edition.
  138.  
  139. Q. What are the different system components of ENVY?
  140. Ans. 1. Library is the multi-user repository which contains the software
  141. components developed=20
  142. by the users.
  143. 2. Users
  144.  
  145. Q. What is an Application?
  146. Ans. An Application is a collection of classes that together serve some
  147. useful purpose.
  148.  
  149. Q. What is a Subapplication?
  150. Ans. A SubApplication is an application that is a part of another=
  151.  application.=20
  152. Subapplications are used to isolate platform dependencies and to organize
  153. classes within=20
  154. a large application. SubApplications may themselves contain SubApplications.
  155.  
  156. Q. What is the difference between an application and a subapplication?
  157. Ans. An Application has prerequisites and whereas a SubApplication is not
  158. allowed to specify=20
  159. prerequisites.
  160.  
  161. Q. What is a class extension?
  162. Ans. A class can be extended in a separate application or subapplication by
  163. adding new methods=20
  164. to a previously defined class.
  165.  
  166. Q. What is the difference between a class and a class extension?
  167. Ans. Classes include the class definition and class comment, while the class
  168. extensions include=20
  169. only methods.
  170.  
  171. Q. What are the different types of relationships between software=
  172.  components?
  173. Ans. 1. Parts relationship
  174. 2. Contains relationship
  175. 3. Prerequisite relationship
  176.  
  177. Q. What is the difference between a parts and a contains relationship?
  178. Ans. In a parts relationship, the enclosed component can be part of other
  179. objects whereas in a=20
  180. contains relationship, the enclosed component cannot exist outside of the
  181. enclosing component.=20
  182. For example, an application can be part of several configuration maps
  183. whereas a method is said=20
  184. to be contained by a class.
  185.  
  186. Q. What are prerequisites?
  187. Ans. Prerequisites must exist in a system before a dependent component can
  188. be allowed. An=20
  189. application defines prerequisite applications, indicating that the
  190. prerequisite applications=20
  191. are required by the application before it can function.
  192.  
  193. Q. What are the prerequisite applications for Kernel application?
  194. Ans. None.
  195.  
  196. Q. Can subapplications have prerequisites?
  197. Ans. No, the root application of a subapplication specifies the necessary
  198. prerequisites.
  199.  
  200. Q. Can I define a class with the same name in two applications?
  201. Ans. Two applications in the same library can define classes with the same
  202. name, but those two=20
  203. applications would not be able to coexist in the same image. Each class in
  204. an image is defined=20
  205. in one and only one application.
  206.  
  207. Q. Can a subapplication be a part of more than one application?
  208. Ans. Yes, a subapplication may be part of several applications but these
  209. applications cannot=20
  210. coexist in the same image.
  211.  
  212. Q. Can I extend or subclass a class that is not visible?
  213. Ans. No.=20
  214.  
  215. Q. What are visible classes?
  216. Ans. Visible classes are those classes that are defined by an application,
  217. one of its=20
  218. subapplications or one of its prerequisites.
  219.  
  220. Q. What is a private class?
  221. Ans. A private class cannot be referenced, subclassed or extended from
  222. outside of its=20
  223. application.
  224.  
  225. Q. How do I make a class private?
  226. Ans. By sending #private message to aClass.
  227.     aClass private.=20
  228.  
  229. Q. What is a private method?
  230. Ans. Private method should not be called outside of its inheritance=
  231.  hierarchy.
  232.  
  233. Q. Does ENVY prevents the illegal use of private methods?
  234. Ans. No.
  235.  
  236. Q. Can I change a version of a software component?
  237. Ans. No, a version is immutable. Modifications can be made to component
  238. editions only.
  239.  
  240. Q. What is a scratch edition?
  241. Ans. A scratch edition allows the modification of an existing application
  242. version in a=20
  243. user's image. However, no changes can be made to the application version's
  244. state in the=20
  245. library. Scratch editions prevent the unnecessary creation of an application
  246. edition by=20
  247. the application manager.=20
  248.  
  249. Q. Can I release a class in a scratch edition of an application?
  250. Ans. No.
  251.  
  252. Q. How do I scratch an application programatically?
  253. Ans. AnApplication asScratch.=20
  254.  
  255. Q. What is a Configuration Map?
  256. Ans. A Configuration Map is a named collection of applications. An
  257. application may be part=20
  258. of any number of configuration maps. A configuration map is "one button" way
  259. to load a group=20
  260. of applications. Most teams use a configuration map to periodically rebuild
  261. their image,=20
  262. bringing in the latest integrated and tested versions of all their=
  263.  applications.
  264.  
  265. Q. Is loading a software component in ENVY an atomic operation?
  266. Ans. Yes, loading a component is atomic. The image is never left in an
  267. inconsistent=20
  268. state - loading either succeeds completely or fails completely.
  269.  
  270. Q. What is the difference between class owner and class developer?
  271. Ans. Class owner is the only user authorized to release a class version to
  272. its containing=20
  273. application & delete it from an application. Class developer can create
  274. editions of the class,=20
  275. make changes and version the result.
  276.  
  277. Q. Can I version an application edition that has an open edition of a class?
  278. Ans. No, a component that has parts or contains other components can only be
  279. versioned if all=20
  280. the subcomponents are themselves versions.
  281.  
  282. Q. Can I create a new edition of a class in a versioned application?
  283. Ans. No, if a component has been versioned, none of the components that it
  284. contains may be made=20
  285. into editions without first making it an edition. Before making an edition
  286. of a class, the=20
  287. application that contains it must be an edition.
  288.  
  289. Q. Can I release an edition of a subapplication in an application edition?
  290. Ans. Yes.
  291.  
  292. Q. Can I release an edition of a class in the containing application=
  293.  edition?
  294. Ans. No, classes may only be released to their containing application after
  295. being versioned.
  296.  
  297. Q. Can the class developer release a class to its containing application?
  298. Ans. No, the class owner is the only user authorized to release the class to
  299. its containing=20
  300. application.
  301.  
  302. Q. Can the subapplication manager release his subapplication to its
  303. enclosing application?
  304. Ans. No, the manager of the enclosing application is the only user
  305. authorized to release a=20
  306. subapplication. The subapplication may be either a version or an edition.
  307.  
  308. Q. Can the application manager release his application in a configuration=
  309.  map?
  310. Ans. No, only the manager of the configuration map edition may release
  311. applications to it.=20
  312. The application may either an edition or a version.
  313.  
  314. Q. What do I mean by cloning the ENVY library?
  315. Ans. Cloning a library exports all the versioned configuration maps and
  316. applications to another=20
  317. library. In other words, all versioned configuration maps, their
  318. applications, subapplications=20
  319. and classes are copied to new library. Cloning removes purged components
  320. from the library and=20
  321. typically shrinks the library size by 50%. Only the library supervisor is
  322. allowed to clone the=20
  323. library.
  324.  
  325. Q. What do I mean by purging of a component?
  326. Ans. Purging a component instructs ENVY that the component is no longer of
  327. interest to the user=20
  328. and should be omitted from the user interface. Purging a component does not
  329. free up the disk=20
  330. space occupied by that component.
  331.  
  332. Q. What do I mean by salvaging a component?
  333. Ans. Salvaging retrieves a purged component and makes it available in the
  334. user interface.
  335.  
  336. Q. What is the #loaded method used for in ENVY?
  337. Ans. The #loaded method is implemented by an application to initialize its
  338. classes or variables=20
  339. each time it is loaded. The #loaded message is sent to an application after
  340. it has been loaded=20
  341. or reloaded.
  342.  
  343. For example:
  344.     ApplicationPorsche class>>#loaded
  345.         Porsche911 initialize.
  346.         PorscheBoxster initialize
  347.  
  348. Q. What is the #removing method used for?
  349. Ans. The #removing method is implemented by an application to eliminate
  350. specific instances of=20
  351. its classes contained in class, shared or global variables, prior to
  352. unloading the application.=20
  353.  
  354. Q. What is the #failedRemove method used for?
  355. Ans. The #failedRemove method is implemented by any application which
  356. defines a #removing method=20
  357. to counteract anything done in #removing method.
  358.  
  359. Q. What are Application lineups?
  360. Ans. Application lineups specify  different configurations of application
  361. prerequisites and=20
  362. subapplications for different platforms or conditions. Each platform or
  363. condition is specified=20
  364. by a Configuration expression which evaluates to a boolean.=20
  365.  
  366. For example, application Swapper has the following lineups for its
  367. prerequisites and subapplications.
  368.  
  369. Prerequisites
  370.     System vmType =3D 'WIN'    FileSystem R1.0
  371.     System vmType =3D 'st80'    FileSystem R1.0
  372.  
  373. SubApplications
  374.     System vmType =3D 'WIN'    SwapperCrossloadingToSTV R3.50
  375.                 SwapperSTV R3.50
  376.     System vmType =3D 'st80'    SwapperCrossloadToST80 R3.50
  377.                 SwapperST80 R3.50
  378.  
  379. Q. What do I mean by ENVY baselining process?
  380. Ans. A baseline provides a snapshot of the methods, classes and applications
  381. that are part of=20
  382. the system at a specific point during development. ENVY baselines control
  383. versions of software=20
  384. released to external entities and to synchronize Classes, Applications and
  385. Configurations=20
  386. between developers so that the most up-to-date versions of these are readily
  387. available to the=20
  388. entire development team.
  389.  
  390. *********************************************************************
  391.  
  392.          _________
  393.          \        \
  394.           \        \               ___    __
  395.            \        \              \  \  / |
  396.            /\        \              \  \/  |
  397.          O/  \ *****  \____________  \ /   |
  398.      \ /   ############## ***+++^^^^^^^\   \
  399.       X **################***+++^^^^^^^ \   \
  400.      / \   ############## ***+++^^^^^    \___\
  401.                / \       \          \o
  402.              O/   \       \
  403.                    \       \
  404.                     \       \
  405.                      \       \
  406.                       \_______\    =20
  407.                                   =20
  408.  
  409.  
  410.          I'D  RATHER  BE  FLYING  !!!
  411.  
  412.