home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr6 / proceedings / ascii / latour.ascii < prev    next >
Text File  |  1993-10-19  |  17KB  |  289 lines

  1.     Latour - 1
  2.  
  3.  
  4. Experiments in Hypermedia Support for the
  5. "Understanding for Reuse" Problem
  6.  
  7.  
  8. Larry Latour
  9.  
  10. University of Maine
  11. Department of Computer Science
  12. 222 Neville Hall
  13. Orono, Maine, 04469
  14. Tel: (207) 581-3523
  15. Email: larry@gandalf.umcs.maine.edu
  16. Fax: (207) 581-1604
  17.  
  18.  
  19. Abstract
  20.  
  21. Generic architecture schemas, documentation schemas that capture all 
  22. aspects of the development of system families, are complex, multi-view 
  23. structures that require hypermedia support in order to be complete with 
  24. respect to a domain specific toolkit [6].  We have experimented with 
  25. hypermedia representations of integrated Ada component libraries, and 
  26. have recently been exploring the use of hypermedia tools in university 
  27. courses such as operating systems, database management systems, and 
  28. software engineering. We've noted a number of parallels between the 
  29. university learning environment and a generic architecture development 
  30. environment.  While they are different in many ways, in both cases the 
  31. issue of separating view-dependent information from underlying "raw 
  32. material" is an important one.  We hint at some of our experiments in this 
  33. position paper.
  34.  
  35. Keywords: hypermedia, generic architecture, view independence, 
  36. software engineering databases
  37.  
  38. Workshop Goals: to discuss aspects of generic software architectures that 
  39. will provide insight into the construction of hypermedia webs.
  40.  
  41. Workshop Groups: domain specific software architectures, domain 
  42. specific toolkits, generic code architectures, formal methods.
  43.  
  44. 1   Background
  45. It has long been obvious (to most of us, I hope) that a software system is more 
  46. than just code.  Indeed, code is just one small part of an overall 
  47. documentation schema that IS the system [11].  Extended to system families, 
  48. code for a specific system should be thought of as a generic code architecture 
  49. instantiated within the context of a particular environment [The 3Cs: 5,8,14].  
  50. This generic code architecture in turn is one small part of the documentation 
  51. schema for a system family, recently being referred to with the buzzphrase 
  52. domain specific software architecture [15].  This documentation schema is 
  53. augmented with a wide variety of support tools to provide developers with 
  54. domain specific toolkits [6].  In order for a development team to successfully 
  55. build a system, they need to properly construct, assimilate and apply the 
  56. knowledge of one of these generic documentation schemas.  This IS the 
  57. problem, not the reuse of code components.
  58. At the University of Maine we have been looking at various aspects of this 
  59. problem.  Specifically, we dealt with the construction of generic code 
  60. architectures in [9], using the 3C model as a guideline for organizing 
  61. collections of interconnected code components, and we have experimented 
  62. with hypermedia support for integrated component libraries in [7].  Recently I 
  63. have been involved in three projects that I consider to be closely related.  The 
  64. first concerns multi-media systems and applications, and the development of 
  65. a multi-media minor on the University campus.  The second concerns the use 
  66. of "non-linear" classroom/lab support tools in my computer science 
  67. department courses, and the third concerns the further development of 
  68. hypermedia based software engineering databases to support the construction 
  69. and understanding of complex documentation schemas.  It is the latter project 
  70. that concerns us here, but the first two projects have provided me with a good 
  71. deal of insight into the problems inheritent in a project such as this.  I describe 
  72. some of my experiences in my position.
  73.  
  74. 2   Position
  75. 2.1  Hypermedia Support for Operating Systems 
  76. After (somewhat) successfully using the results of my hypermedia experiments 
  77. with integrated Ada software component libraries in my graduate software 
  78. engineering class, I decided to extend these experiments into the domains of 
  79. operating systems and database management systems.  My operating systems 
  80. experiments were motivated by the use of Andrew Tanenbaum's Minix 
  81. Operating System [13], the complete C source code of which is provided to the 
  82. student, accompanied by a poorly written textbook as the only source of 
  83. documentation.  The DBMS experiments were less extensive but were motivated 
  84. by a more reuse related project, Don Batory's GENESIS configurable database 
  85. system composer [2].  In both cases the courses were "architecture driven".  
  86. That is, both operating systems and DBMS syllabi revolved around the generic 
  87. properties of their respective subsystem components.  A number of interesting 
  88. lessons learned accompanied the development of hypercard-based stacks for 
  89. these courses.  After describing a few interesting pieces of my "documentation 
  90. webs", I will discuss a few lessons learned that seem to apply equally well to 
  91. hypermedia-based reuse environments.
  92. My first example is how user processes interact with the kernel during interrupt 
  93. handling.  It's interesting that long after developing these stacks I recalled 
  94. similar experiments by Ted Biggerstaff while he was with MCC, developing 
  95. hypermedia system software support specifically as an aid to reusability [3].  
  96. The essence of this particular set of cards is to take the student through the 
  97. interrupt handling process step-by-step, stopping along the way to visit a 
  98. number of interesting side issues (or parallelling major issues!).  Slicing two 
  99. cards from the middle of this set doesn't truly demonstrate the usefulness of 
  100. such a tool in class (or in reuse understanding), but with a bit of imagination 
  101. the reader should be able to envision where we came from to get to the card, 
  102. and where we're going when we finish.
  103. In figure 1, process A has made a fork system call, which was translated to a 
  104. software interrupt, subsequently invoking the assembler handler s_call.  After 
  105. saving the state of the processor in the process table, s_call then invokes the C 
  106. procedure sys_call, which adjusts the process table blocked and ready lists and 
  107. handles message transmission.  This is currently the state of figure 1.  
  108. Subsequently s_call regains control of the processor, and a new process is 
  109. loaded and started.
  110.  
  111.                                                
  112. Figure 1: Process Interaction with the Kernel
  113. The diagram above serves two purposes.  First, it gives the user information 
  114. about what is happening at this specific moment in the interrupt handling 
  115. process.  But, more interestingly, it provides a current framework, or view, by 
  116. which the student can gain more information about any of the visible objects 
  117. on the screen.  It is, in a sense, a graphical query language.  The user can, for 
  118. example, click on the general model button (the up-arrow on the right), 
  119. transitioning to the general interrupt handling model of figure 2, 
  120. corresponding to this step in the fork system call.
  121.                                                
  122. Figure 2: General Interrupt Interaction with the Kernel
  123. Note that the source of the general interrupt is defined only as "Hardware 
  124. Interrupt", and the description of this stage in the interrupt handling process 
  125. should apply equally well to any interrupt handler.
  126. Referring again to figure 1, every visible object has meaning and can be 
  127. interrogated by the user.  This is an important issue in hypermedia systems.  
  128. For example, click on the processor object and a description of the processor 
  129. architecture is made visible.  Similarly one can explore the structure of the 
  130. process table, the design of the s_call and sys_call interrupt handling 
  131. procedures, the library procedures, and information regarding both the process 
  132. sending a fork system call and the server process within the Minix system 
  133. proper that receives and processes the system call.
  134. A second, related example, is the protocol in which the fork system call, 
  135. together with related calls wait, exec, and exit, is  used in an application 
  136. program (most commonly in the implementation of a typical Unix shell).  
  137. Figure 3 presents one step in the interaction between a parent and child 
  138. process after the child has been created with a fork system call.
  139.                                                  
  140. Figure 3: Protocol of System Call Usage
  141. Note that the double click request indicates a degree of animation, essentially 
  142. focusing on the transformations between each step in the protocol between 
  143. parent and child.  Again, as with the interrupt handler view, all visible items 
  144. on the screen can be interrogated.  An interesting note here is that this view 
  145. can be arrived at from a number of sources, one indirectly being the view of 
  146. interrupt handling in figures 1 and 2.  The return button is context sensitive in 
  147. that regard.
  148. 2.2 Lessons Learned
  149. A number of interesting issues arose in the construction of the web of 
  150. information surrounding Minix, which incidently is an ongoing project, neither 
  151. complete nor correct with respect to my current thinking.  I list them below, in 
  152. no particular order of importance (they all seem to be!)
  153. - View Independence:  an important issue in any hypermedia web is 
  154. whether the basic information is independent of a particular view one 
  155. wants to study it from.  My initial linear approach to developing these 
  156. stacks was seriously flawed in this regard.  Specifically, informaton about 
  157. process usage (operating system services and user applications, 
  158. specification (the system interface) and implementation (the kernel), 
  159. needs to be defined to a large extent independent of the "direction" one 
  160. views that information from.  This relates somewhat to the redundancy 
  161. probem prevalent in poorly designed database schemas, but there is also a 
  162. modelling issue so important to understanding.  The old saying that you 
  163. don't really know something until you've seen it from at least two 
  164. perspectives is an important issue here.
  165. - Completeness:  if a hypermedia web is incomplete with respect to the 
  166. system it is attempting to model, students quickly tire of it.  For example, 
  167. a primary issue that came up was whether or not the web could be taken 
  168. down to the code level, up to the device driver, file system, and memory 
  169. manager levels, or to generalizations of these subsystems.  The answer in 
  170. my case is, to an extent, but not completely.  For example, I am currently 
  171. considering a hypercard front-end on our PC network, accessing and 
  172. encapsulating the Minix code database on our SUN network.  Related here 
  173. are the issues of view independence and full integration.
  174. - Full Integration: an issue that came when discussing what a system 
  175. family web would look like was the extent to which an instantiated system 
  176. member was integrated into the family web.  That is,  is the mode of 
  177. interaction to access the web and mine for artifacts, or to integrate the 
  178. new system into the web.  This raises subtle issues of version control and 
  179. configuration management that are central to any large software 
  180. management effort.
  181. - Simulation vs. the Real Thing:  multi-media systems such as Hypercard 
  182. and Macro-Media Director, as well as CASE tools such as State-Mate 
  183. provide a rich set of visual simulation tools.  In contrast to this, we have 
  184. discussed providing the hypermedia environment with hooks to explore 
  185. the dynamics of the system as it's being constructed.  This is an important 
  186. issue when considering the following bullet:
  187. - Person-Hours of Development Time:  hypermedia webs take large 
  188. amounts of time to develop, which I suppose is an issue that has hindered 
  189. the development of good "static" documentation throughout the software 
  190. ages.  The issue here, and the domain speficic toolkit developers should 
  191. have a good handle on this, is how this development work can be 
  192. "amortized" across the system family.
  193. - View Formalism:  Considering each screen as a view, is each based on a 
  194. fundamentally sound model?  Furthermore, is the model formal, or does it 
  195. have a formal underpinning?  In our hypermedia experiments with 
  196. integrated component libraries, we defined Ada specification views that 
  197. were based on Larch formal interface specifications [Liskov86], which in 
  198. turn were based on a hierachy of formal algebraic models [Wing90].  An 
  199. issue that we considered, but didn't pursue, was to take advantage of Ada 
  200. and Larch specification language formalism to define much more granular 
  201. connections between artifacts, a task that would require automatic link 
  202. generation support.
  203. - Web Growth: An issue that I've considered and rejected for the present 
  204. with my student hypermedia experiments  is the ability of the student to 
  205. add novice knowledge to the web in a way that grows and is refined as 
  206. progress through the material is made.  One such class project currently 
  207. involves the implementation of a kernel along with accompanying 
  208. memory management and file management support for a small virtual 
  209. machine. There clearly are expert/novice issues involved when 
  210. constructing a complete hypermedia web within a multi-person software 
  211. development effort.
  212.  
  213. 3   Comparison
  214. There are a number of hypermedia-related efforts currently ongoing in the 
  215. WISR community, including the work at Hewlett-Packard on Domain Specific 
  216. Toolkits [6] and the KAPTUR work CTA [1].  In addition a good deal of 
  217. hypermedia-reuse research was done by the MCC group [3].  Related work in 
  218. semantic network construction and navigation was done at Unisys [12] and 
  219. AT&T [4].
  220. In addition to the hypermedia-specific work mentioned above, hypermedia 
  221. systems will benefit greatly from a more complete understanding of the  
  222. structure, formalism, and dynamics of domain specific software architectures 
  223. and their associated toolkits.
  224. There are, of course, many differences between a typical software development 
  225. environment and a University learning environment.  The definition of 
  226. "novice" and "expert" is much more refined in a software development 
  227. environment.  But there are similarities as well.  The difference actually might 
  228. very well be one of view rather than view independent knowledge.
  229.  
  230. References
  231.  
  232. [1]    Bailin, S.C., and Henderson, S., "Towards a Case-Based Software 
  233. Engineering Environment", Fifth Annual Workshop on Software Reuse, Palo 
  234. Alto, CA., 1992.
  235. [2]    Batory, D., "On the Difference Between Very Large Scale Reuse and Large 
  236. Scale Reuse", Fourth Annual Workshop on Software Reuse, Reston, VA., 
  237. 1991.
  238. [3]    Biggerstaff, T., "Hypermedia as a Tool to Aid Large Scale Reuse", Workshop 
  239. on Software Reuse, Rocky Mountain Institute of Software Engineering, 
  240. Boulder, CO., October, 1987.
  241. [4]    Devanbu, P., "Re-use of Software Knowledge: A Progress Report", Third 
  242. Annual Workshop: Methods and Tools for Reuse, June, 1990.
  243. [5]    Edwards, S., "The 3C Model of Reusable Software Components", Third 
  244. Annual Workshop: Methods and Tools for Reuse, Syracuse, 1990.
  245. [6]    Griss, M., "A Multi-Disciplinary Software Reuse Research Program", Fifth 
  246. Annual Workshop on Software Reuse, Palo Alto, CA., 1992.
  247. [7]    Latour, L., and Johnson, E.,"SEER: A graphical retrieval system for reusable 
  248. Ada software modules", Third International IEEE Conference on Ada 
  249. Applications and Environments, Manchester, NH, May, 1988.
  250. [8]    Latour, L., Wheeler, T., and Frakes, W., "Descriptive and Predictive Aspects 
  251. of the 3C Model: SETA1 Working Group Summary", Third Annual 
  252. Workshop: Methods and Tools for Reuse, Syracuse, 1990.
  253. [9]    Latour, L.,"Layered Generic Architectures for Reuse Engineering", First 
  254. International Workshop on Software Reusability, Dortmund, Germany, 
  255. 1991.
  256. [10]    Liskov, B., and Guttag, J., Abstraction and Specification in Program 
  257. Development, McGraw Hill, 1986.
  258. [11]    Parnas, D.L. and Clements, P.C., "A Rational Design Process: How and Why 
  259. to Fake It", IEEE Transactions on Software Engineering, Vol. 12, No. 2, 
  260. February, 1986.
  261. [12]    Solderitsch, J., "An Organon: Intelligent Reuse of Software Assets and 
  262. Domain Knowledge", Fourth Annual Workshop on Software Reuse, Reston, 
  263. VA., November, 1991.
  264. [13]    Tanenbaum, A.S., Operating Systems: Design and Implementation, 
  265. Prentice-Hall, Inc., Englewood Cliffs, NJ, 1987.
  266. [14]    Tracz, W.J., and Edwards, S., "Implementation Working Group Report", 
  267. Reuse in Practice Workshop, Pittsburgh, PA., 1989.
  268. [15]    Tracz, W.J., "A CASE for Domain-Specific Software Architectures", Fifth 
  269. Annual Workshop on Software Reuse, Palo Alto, CA, November, 1992.
  270. [16]    Wing, J.M., "A Specifier's Introduction to Formal Methods", IEEE 
  271. Computer, September, 1990.
  272.  
  273. 4   Biography
  274. Larry Latour is an Associate Professor of Computer Science at the Univeristy of 
  275. Maine, having received his PhD degree in Computer Science from Stevens 
  276. Institute of Technology in 1985.  His work was in the development of a model 
  277. theoretic approach to concurrency control, and he has since looked at how 
  278. algebraic specifications of abstract objects can enhance concurrency control in 
  279. object databases.  At the same time he developed his software engineering 
  280. interests at the Ft. MOnmouth Center for Software Engineering.  He was 
  281. introduced to reuse in 1986 at the Syracuse University Annual Software 
  282. Engineering Workshop in Minnowbrook, NY, where he and a small group of 
  283. Tools and Environments working group members began what is currently the 
  284. National WISR workshop series on software reuse.  In conjunction with this 
  285. workshop he manages the WISR repository at Maine.  As well as hypermedia 
  286. systems his interests include formal methods in reuse, generic code 
  287. architectures, quality university teaching, and computing at the K-12 level.
  288.  
  289.