vista a visua4l interface for softwareabstract vista - a visual interface for software reuse in...

134
VISTA - A VISUA4L INTERFACE FOR SOFTWARE REUSE IN TROMLAB ENVIRONMENT PRESENTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF ~~STER OF COMPUTER SCIENCE CONCORDIX UNIVERSITY MONTRÉAL, QUEBEC, CANADA

Upload: others

Post on 02-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

VISTA - A VISUA4L INTERFACE FOR SOFTWARE

REUSE IN TROMLAB ENVIRONMENT

PRESENTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF ~ ~ S T E R OF COMPUTER SCIENCE

CONCORDIX UNIVERSITY MONTRÉAL, QUEBEC, CANADA

Page 2: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

National Library I * m of Canada Bibliothèque nationale du Canada

Acquisitions and Acquisitions et Bibliographie Services seivices bibliographiques

395 Wellington Street 395, rue Wellington Ot(awa ON K1A ON4 Ottawa ON KIA ON4 Canada Canada

The author has granted a non- L'auteur a accordé une licence non exclusive licence ailowing the exclusive permettant à la National Library of Canada to Bibliothèque nationale du Canada de reproduce, loan, distribute or sel1 reproduire, prêter, distribuer ou copies of this thesis in microforni, vendre des copies de cette thèse sous paper or electronic formats. la fome de rnicrofiche/film, de

reproduction sur papier ou sur format électronique .

The author retahs ownership of the L'auteur conserve la propriété du copyright in this thesis. Neither the droit d'auteur qui protège cette thèse. thesis nor substantial extracts fkom it Ni la thèse ni des extraits substantiels may be printed or otherwise de celle-ci ne doivent être imprimés reproduced without the author's ou autrement reproduits sans son permission. autorisation.

Page 3: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Abstract

VISTA - A Visual Interface for Software Reuse in TROMLAB

Environment

Rajee Nagarajan

Software relise has the potent ial to increase product ivity and reduce development

costs. Several research and experience reports show that practicing and achiev-

ing high levels of software reuse in the presence of repository and object-oriented

cornputer-aided software engineering (CASE) development methotis pose technical

and managerial challenges. This thesis presents reuse research that seeks to intc

grate ancl enhance software developnierit activity in TROMLAB franiework. an en-

vironment being constructed at Concordia University for a rigorous development of

real- t irne react ive sy stems. We propose a browser- based reuse lramework for auto-

matic search and rctrieval of TROMLAB components. VISTA is a visual medium

embedding the browser for practicing software reuse in TROMLAB applications. The

browser provides facilities to navigate the repositories of reusable cornponents, in-

Y pect components and t heir dependencies. and enable t hc ret rieval and modifications

of components for reuse. The browser also works in conjunction with the graphical

user interface of T R O M LAB. thus providing an environment for active reuse.

Page 4: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Acknowledgment s

I am very much indebted and grateful forever to my mentor. Professor V. S. Alager, for

his invaluable supervision, patience, support and advise throughout the course of rny

stuclies at Concordia University. Dr. Alagar's technical. ethical and moral sensitivity

have inspireci me. I found working witti Dr. Alagar trcmcndously rewarding and truly

feel that t have learnetl from the bcst! I sincerely hope that our research relationship

continues in t h e future.

I am grateful to Dr. Peter Grogono for tiis academic advise and encouragement

throughout my iintlergraduate degree at Concordia. I am thankful to Dr. Kasi

Periasamy for his encouragement and discussions on fornial specification languages.

t\lthough too nurnerous to mention. I would like to thank Dr. Gregory Butler.

Dr. .lamil Masan and Dr. T. Radhakrishnan for their continous encouragement. I am

thankful to Dr. Terril1 Fancott and Dr. Sheridan K. Houghten for their refreshing

viewpoints and suggestions.

Special thanks to Stan Swiercz and al1 the system analysts in the Department of

Cornputer Science for their instant technical support. I am grateful to Robby K r k and Instructional QL. Informational Technology Services (IITS) for their warmth and

friendship. 1 thank the ROSE research group memben for their valuable discussions

about TROMLAB environment.

Most heartfelt t hanks goes to Dr. Debra J. Richardson, University of California

(UC), Irvine, for her enriching constant encouragement and support and for providing

me the excellent research facilt ies and environment to corn plete t his t hesis.

Last, but not the Ieast ROSA TEA research group memben in UC, Irvine, deserve

my gratitude b r t heir warmth and eamest friendship.

Page 5: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Contents

List of Figures viii

1 Introduction 1

2 Technical Issues for an Effective Management of Software Reuse 6 . 2.1 Why Keuse? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Scope of Rcusc 8

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Reuse Management 9

. . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Reuse Experiences 10

2 . 1 . Forma1 Speci fications and Black-Box Reuse . . . . . . . . . . . 12

2.4 Linking Designs to Implernentations . Choice of Language . . . . . . 13

3 Requirements of the Browser 15

. . . . . . . . . . . . . . . . . . . . . . . . . 3.1 TROMLAB Environrnent 15

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Requirements 18

4 Reusable Components of TROM LA0 Environment 22

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Larch Specifications 23

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Structure of TROM '25

. . . . . . . . . . . . . . . . 4.d SCS . System Configuration Specification 31

4.4 Train Gate Controller System . An Example . . . . . . . . . . . . . . 32

. . . . . . . . . . . . . . . . . . . . . . 4.5 The Dynamics of Components 34

5 Designing the Browser 44

. . . . . . . . . . . . . . . . . . . . . . . . . 5.1 Component Repositories 44

. . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Navigation and View 48

5.3 Reuse Promotion . . . . . . . . . . . . . . . . . . . . . . 49

Page 6: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

. . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 4 Browser User Interface 50

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Architecture 52

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 Overview of VISTA 58

. . . . . . . . . 5.6.1 Interaction of VISTA wit h TROMLAB Modules 60

6 Reusing TROMLAB Components 61

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 StorageStructures 61 . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Larch Reuse Environment 66

. . . . . . . . . . . . . . . . . . . . 62.1 How queries are answred? 75 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Managing LCPP Files 79

. . . . . . . . . . . . . . . . . . . . 6.3. L How queries are answered? Y4

. . . . . . . . . . . . . . . 6.3.2 Managing TROMs and Subsystems 85 . . . . . . . . . . . . . . . . . . . . . . . 6.3.3 TROM relationships 86

. . . . . . . . . . . 6.3.4 Queries on TROMs ancl subsystcrns (SCS) 88

. . . . . . . . . . . . . . . . . . . . . . 6.4 CIow t lie qiieries are handled*? Y9

7 The Prototype and Implementation Issues 95 " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c - 1 Riding VISTA !)5

L. . . . . . . . . . . . . . . . . . . . . . r . 1 . 1 Hardware Requirements 96 - . . . . . . . . . . . . . . . . . . . . . . r . 1 . 2 Software Requirements 96

. . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3 Fiinctionalities 96 CI . . . . . . . . . . . . . . . . . . . . . r.l.3.1 Getting Started 96 C+ . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 3.2 Files 97

. . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.3 LSLFiles 97

. . . . . . . . . . . . . . . . . . . . 7.1.3.4 Saving LSLFiles 101

. . . . . . . . . . . . . . . . . . . . . . . 7.1.3.5 LCPP Files 102

. . . . . . . . . . . . . . . . . . . 7.1.3.6 Saving LCPP Files 104

. . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.7 TROMs 105

. . . . . . . . . . . . . . . . . . . 7.1 . 3.8 Saving TROM Files 108

. . . . . . . . . . . . . . . . . . . . . . . 7.1.3.9 Subsystems 108

. . . . . . . . . . . . . . . . . . . . 7.1.3.10 Saving SCS Files 109

. . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.H Query 111

. . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.12 Exit I l l

. . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.13 Help Il3

Page 7: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

7.2 Java Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 - 6 i .J lmplementation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . 1 16

8 Conclusion

Bibliograp hy

Page 8: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

List of Figures

1 '1 c.

:l

-1 . -3

6 LI

1

8

9

10

11

12

13

1 -L

15

16

17'

18

19

20

'LI 3 '1 .. 23

24

25

26

StructureofTROMLAB . . . . . . . . . . . . . . . . . . . . . . . . . . Lti *) *) . . . . . . . . . . . . . . . . . . . . Overview of TROM Methodology --

LSL Trait Specification for a Symbol Table . . . . . . . . . . . . . . . 2.1

Larch Interface Specification for a Symbol Table . . . . . . . . . . . . 25

Anatomy of a TROM . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

. . . . . . . . . . . . . . . . . . . . . . . . . TROM Class Description 28

Template for System Configuration Specification (SCS) . . . . . . . . 28

Class Speci fications for Train . . . . . . . . . . . . . . . . . . . . . . . 30

. . . . . . . . . . . . . . . . . . . . . . . . Class spccifications for Gate 31

Class specificat ions for Cont roller . . . . . . . . . . . . . . . . . . . . . 32

System configiiration specification for Train-Gate-Controller systeni . . 33

Train Gate Controller System with 3 Trains. 2 Controllen and 2 Cates 34

Version Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

LSL Specification of a New Symbol Tablel . . . . . . . . . . . . . . . 313

. . . . . . . . . Larch Interface Specification of a New Symbol Table1 39

LSL Specification of a New Symbol Table2 . . . . . . . . . . . . . . 40

Larch Interface Specification of a New Symbol Table2 . . . . . . . . . 41

Class specifications for NewTrain, NewController and OldCate . . . . 42

Versions in TROMLAB . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Version Hierarchy for Traits . . . . . . . . . . . . . . . . . . . . . . . 43

Architecture of VISTA . . . . . . . . . . . . . . . . . . . . . . . . . . 53

OMT Object Mode1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

. . . . . . . . . . . . . . . . . . . . . . OMT Detailed Class Diagram 57

DAC of Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Version List of reusable LSL traits . . . . . . . . . . . . . . . . . . . . 68

includes List of LSC traits . . . . . . . . . . . . . . . . . . . . . . . . 69

Page 9: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

. . . . . . . . . . . . . . . . . . . . . . . . assumes List of LSL traits 69

. . . . . . . . . . . . . . . . . . . . . . . . Table as a Data Structure 70

. . . . . . . . . . . . . . . . . . . . An Exarnple Data Store of 3 Files ?L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notion of Save 73

Larch/C++ Interface Specification for RFVZone . . . . . . . . . . . . Y L

. . . . . . . . . . . . . . An Example of imports List of LCPP Files $2

. . . . . . . . . . . . . . . . . . . Version List of reusable LCPP files 83 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notion of Save 84

. . . . . . . . . . . . . . . . . . . . . . . . . VlSTAOpening Window 96

Files Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

. . . . . . . . . . . . . . . . . . . . . . . . . . . . LSL Files Window 97

. . . . . . . . . . . . . . . . . . . . . . . . LSL Library Files Window 98

. . . . . . . . . . . . . . . . . . . . . . . . . LSL Inspect File Window 99

. . . . . . . . . . . . . . . . . . . . . . . . . . CSC Edit File Window 100

. . . . . . . . . . . . . . . . . . . . Library File Error Dialog Window 100

. . . . . . . . . . . . . . . . . . . . . . . . . . Save as Dialog Window 101

. . . . . . . . . . . . . . . . . . . . . . . . Update Database Window 102

. . . . . . . . . . . . . . . . . . . . . . . . . . . LCPP Files Window 103

. . . . . . . . . . . . . . . . . . . . . . . LCPP Version Files Window 103

. . . . . . . . . . . . . . . . . . . . . . . . . . LCPP Editor Window 104

. . . . . . . . . . . . . . . . . . . . . . . . . . TROM Classes Window L05

. . . . . . . . . . . . . . . . . . . . . TROM Library Classes Window 106

. . . . . . . . . . . . . . . . . . . . . . . . . . TROM Editor Winclow 101

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SCS Window 109

. . . . . . . . . . . . . . . . . . . . . . . . . . . SCS Editor Window 1 LO

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Query Window i L I . . . . . . . . . . . . . . . . . . . . . . . . Query LSL Traits Window 111

. . . . . . . . . . . . . . . . . . . . Query By [ncludes for LSL Traits 112

. . . . . . . . . . . . . . . . . . Query LCP P Specifications Window 112

. . . . . . . . . . . . . . . . . . . . . . . . . . Query TROM Window i l 2

. . . . . . . . . . . . . . . . . . . . . . . . . . . Exit VISTA Window 113

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Help Window 114

Page 10: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 1

Introduction

Reactive systems are characterized by t heir continuous ongoing st imulus-response

relationship wit h t heir environment. For real-time reactive systerns. the stimulus-

rcsponse behavior is regitlated by timing constraints. Such systems fincl application

in areas sucti as transportation. process cont rol, telephony, and st rategic defence

systerns. In gneral. a reactive system lias infinite behavior: a process in a reactive

system is usually non-terminating. In this respect reactive systenis are different froni

common transformational systems which may be regarded as functions lrotn inputs

available at the start of the computation to outputs provided on termination. Reactive

systcms are also different from interactive systerns, such as human-computer interface.

The major distinction is in the available synchronization mechanism: an interactive

systeni waits for a reply from its environment; on the contrary a reactive system, such

as an alarm system in a boiler plant controller. is ftilly responsible for synchronization

with its environment. Consequently, a reactive system must satisfy two important

reqiiirements:

a stimulus synchronization: the process is always able to react to stimulus

from the environment;

a response synchronization: the time elapsed between a stimulus and its re

sponse is acceptable to the relative dynamics of the environment so that the

environment is still receptive to the response.

Designing a real-time reactive system is an extremely difficult aod chailenging

task. The complexity anses From three sources: (1) the large number of require-

ments, some of which may become available or well-understood only at later stages

Page 11: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

of design; (2) a large number of different executions of the system due to the order-

ings and interleavings of concurrent events; and (3) the real-time constraints on the

even t occurrences and the erecut ion sequerices. These di ficul t ies and the increos-

ing importance of real-time react ive systems in salety-critical applications necessi tate

continiied research into methodologies and tools for speciîying and reasoning about

the design of such systems. One of the ways of reducing the complexity barrier is to

develop cornponents that are dependable, and reuse these components in a large-scale

developrnent environment. This thesis addresses issues involved in reusing reactive

components.

During the last ten years soît ware and hardware engirieers have started employing

graphical representations, such as state machines, timing diagrams, and data Aow

graphs to describe the properties of software systems that they design. Such visual

representations capture and conimunicate the designer's intuitive understanding of a

systeni. Many tools based on visual formalisms are now commercially available. Most

notable ones are Sri'ATEMATE [ l i ] , ObjecTirne [Ml, and Rational Rose [N, 351.

There is a fornial semantics for STATEMATE; howcvcr. the other two graphical

notations do not have fornial sernantics. Although research in cognitive sciences have

revealecl(2Oj that graphical notations do indeed facilitate hurnan comprehension, only

notations stipported by a forma1 semantics provide well-defined meaning and prornote

logical reasoning. TROMLAB [1, 31 is an object-orienteci development environment

founded on (TROM ) Tirned Reactioe Object :Clode1 formalism [LI. It is being designed

and developed at Concordia University for the design and development of real-time

react ive sys tems. The building blocks for developing react ive systems corne frorn

Larch and TROM Formalisms. These basic components have a formal semmtics.

The objective of this thesis has been to develop a tool. called VISTA, supporting

the maintenance and management of reusable reactive components in TROMLAB

environment.

Recent research has shown that software development methodologies that em-

phasize reuse are increasingly recognized in industries in terms of the increased pro-

ductivity and reduced software costs. However, in order for the process of software

development to improve significant ly t here mus t be investment in tools t hat pro-

rnote software reuse. One of the key ingredients for prornoting software reuse is to

build software repositories, and develop methods for retrieving components frorn the

Page 12: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

repositories. In the absence of such a tool to support developers in their search for

identifying and retrieving software cornponents. it is not possible to achieve a sat-

isfactory level of reuse wherein its benefits are fully recognized. The capabilities of

VISTA are appropriate for inspecting, and reusing repository cornponents throiigh

visual interaction.

Viewing the developnient of software as an information management problem is

not new; however, the methods that wc use to design different repositories, one For

each kind of cornponent. and relate them according to TROM development method-

ology are new and novel within the contert of reactive systern development. There

exists several browsers, the internet siipports several. Browsers have been developed

for developing Z [Ti] and Larch 1291 spccifications. However, the tool that we have

developed is both more general and specific. The browser developed in this thesis is

more general than Z and Larch browsers in the sense that in addition to developing

Larch specifications, it can be iised in r much wider context ol TROMLAB. [t is s p c

cific hecause it coexists and cooperates with other tools in TROMLAB environment.

The browser allows navigation tlirough components storecl at different layers of ab-

stractions. whicb include Larch Shurrd Lunguage (LSL) traits, Larch/C++ (LCPP) interface specificat ions. TRO Ms. su bsystems, and t hei r relat ionshi ps. The tool also

manages diflcrent versions of each component. ancl iriheritancc (and subtype) relation-

s hi ps among conipoiients. T tie tool provides a specificat ion development environment

for LSL traits, invokes Larch syntax checker and helps the user develop syntactically

correct LSL traits.

The browser can be invoked either independently or in conjunction with a Graph-

ical User Interface (GUI), another tool in TROMLAB environment. Together they

provide a cornprehensive visual framework for accessing both static and dynamic in-

formation of the system. Invoking the browser at any instant from CUI, one can view

and search among the static information in the databases as well ay the dynarnic

information generated up and until the invocation of the browser. Thus, the tool

combines two approaches:

The provisiou of a combined visibility of the development process and the evolv-

ing product.

The integration of product development process under reuse.

Page 13: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

The tool also permits users to deal with two principal working aspects in an

integrated fashion:

a The definition, enactment, and visualization of the development process.

a The animation of heterogeneous prototypes constructecl by reusing the compo-

nents in the relise li brary.

The browser can be used for the following phases:

a Process Model Support -TROMLAB environment integrates forma1 approaches

with the different stages of a procevs rnoclel. Accordingly, a formal model of the

software unit is constriicted by putting togcthcr a formalized set of requirements

wit h a formai model of the environment. This software unit is then siniulated

to validate the requirenients. Iterative design, simulated debugging ancl reason-

ing, and fornial verification are the successive stages of the process model. The browser gives visi bility and cont rol over the entire set of components used for

the development. This includes querying the database and retrieving suitable

çomponents for reuse in the design. the customization of LSL specifications, the

monitoring and management of prototypes of the system under developnient.

a System Model Configuration - A system is constructed by putting together

components, which may be objects instantisted from TROM classes, or other

su bsystcms. Users can inspect system components and modi fy system configu-

rations selected from the reuse li brary.

Design Animation - Animation is the central piece of the simulator [30] which

is used to valitlate systern reqiiirements. Developers can view the repository for

versions of simulation histories and choose a previously simulated scenario for

reasoning.

Some of the components in the reuse library, such as LSL traits, and TROMs niay be usefiil in other conterts as well. For example, LSL traits rnay be reused

in developing Larch interface specifications for reusable class libracies. TROMs are

extended finite state machines, and may be useful to model the behavior of hybrid

systems when red-t ime computat ions are perrnitted in the states. Consequent ly,

VISTA rnay find applications outside of TROMLAB environment. Keeping this in

Page 14: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

minci, we have designed and implemented the tool su that it may be adapted to reuse

act ivity in any application domain where LSL and TROMs are basic components. The

rationale behind our design is to make the browser easy to use by both novice and

experienced users. The following are the main contributions of this thesis:

1. A rationaie for black-box reuse of TROMLAB components.

2. Design and development of VISTA, a visual tool for inspection, navigation, adap-

tation, and informal reasoning integrated with version management of compo-

nents useci in TROMLAB environment.

3. An interactive facility for LSL trait spccification development environment.

b e r s can browse and reuse LSL traits from a library in cornposing their speci-

k a t ions.

4. Link to Larch/C++ interlace specification repository which can be used by the

implementation phase of TROMLAB environment. when it beconies available.

Page 15: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 2

Technical Issues for an Effective

Management of Software Reuse

Tlic concept of software reuse was iiitro<luced in a seniinal paper by ,CIcllroy[26]

at the 1968 Nato Software Conference-the foundirig date of Software Engineering

discipline. He stated would like to see t he study of software components become

a dignified branch of Software Engineering. 1 would like to see standard catalogs of

roiit ines classifieci by precision. robustness, time-space reqiiirements and binding time

of panmeters'. N t hou& somc progress has been reported [6. 11, 191, it is the case

that twenty five years later, software muse has not yet bccornc a wiclely accepted

practice for software construction. Both tecliriicai and managerial issues rnust be

integrated in pronioting software reuse.

Recognizing t hc rnost obvious benefits of soft warc reuse, such as product ivi ty gain

and improved software cpali ty, many commercial. governrnent and indust rial organi-

zat ions in the USA. Japan, and Europe have recently instituted systematic software

reuse programs (231. Frorn the published reports of their experiences, we can in-

fer that there is no consensus on what approaches work b a t ; it is only clear that

no single approach to software reuse has been found to be best for al1 applications.

There are numerous diverse technical and non-technical issues challenging the wider

practice of software reuse. Among them, the most important technical issue is the

Ianguage used for creating, labelling and retrieving software components for error-free

reuse. The choice of Ianguage has a profound impact on both technicd and manege-

rial aspects O€ reuse. These include (a) supportiag technologies and libraries used to

Page 16: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

accomplish reuse; (b) economic conditions on which reuse practice is justified; and

(c) development, mainteuance, and management of d l future reusable assets such as

requirements, specification, design, and high-level archtectures. The language chosen

for documentation and implementat ion of reusable products is also closely related to

an effective management of reuse program. In order to maxirnize the return on the

investment of the reuse prograrn, an organization should choose the language accept-

able to a large community of users and adaptable for large-scale reiise. Based on

the language, strict guideli nes and standards for developing solt ware components, or

for accpiring software libraries to be used in the developrnent process can be formu-

lated. Moreover, the choice of language impacts the maintenance and management of

raise spectrum [rom domain modcls to domain specific frameworks and architectures.

The language for cornposing specifications in TROMLAB has a simple syntax. The

graphical user interface provides a means to compose diagrammatic representations.

Consequcntly. the reuse factor is likely to he high in TROMLAB environment.

In oiir view. to fully realize the potential of reiise. software cornponerits for Faiilt-

free rcusc miist be made availabk with ttiree pieces OF information: abstraction--

for unambigiious and precise understanding; implernentation for code reiise: and

environment -for enrichment and enhancement. Abstraction of the cornponent is

a precise unambigtious description of its functionality. Implementation provides the

details of concrete data structures and algorithms for iniplementing t lie abstraction in

a cornputer. Environment is the contextual information in which the software cornpo-

nent is designed to perform. The language chosen for reuse must wpport abstraction,

implementation, and contextual constraints.

Given that TROM formalism incliides Larch specifications, and C++ is widely

used in industries, t his t hesis advocates Larch/C++ language for speci fying the in-

terface specifications - thus. linking designs to C++ implementations.

2.1 Why Reuse?

Software development is becoming increasingly capital-intensive, tool dependent, CO-

operative, and requires greater early investment of capital in return for reduced cost

at later stages. Thus reusable sofware is to be viewed as a capital good whose in-

vestment cost is recoverable amortized over a number of yean from its large pool of

Page 17: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

users. The addit ional expected benefits of reuse are:

a It can lead to improved reliability and performance.

a Reuse promotes interoperability between systems.

It supports rapid prototyping.

O It provides a transparent uniformity among systems constructed with the same

cornponents, which in turn leads to sound maintenance.

Recent reports from industries such as Hewlet t-PackardI-31, NEC and Fujitsu[G. 1 11,

Digital[ld]. and IBSI[lJ] also suggest t hat t here is a reduct ion in tlefect ive software,

i ricrease in ret urn on invest ment, iniproved emciency in product delivery and in gen-

eral. a corporate-wide acceptance of reuse. Hence it can be argued that the systemat ic

application of relise to prototyping, developmcnt. and maintenance during the cntire

software dcvelopment process is an effective way to reduce cost and improve software

reliability ancl productivity.

2.2 Scope of Reuse

Systernatic software wuse is a paradigm shift in software development from building

monolithic systems to families of related systems. This kind of paradigrn shift was

successlully applied in the 70's for developing families of algorithms based upon the

design principles of divide and conquer, backtracking etc. The potential effect of

the shifting paradigm in softwarc rcuse is expected to be probtind when error-free

reusable software corn ponents can be repeatedly asseni bled in different applications

by knowing only their interface specifications.

There are two penpect ives to software reuse: one involves careful design for reuse

and is known as forward engineering; the other approach is design recovery and reverse

engineering where soft wase engineers t ry to recover and adapt exist ing requirements,

design and code for reuse in different applications. However, it is strongly believed

that technologies for recovering reusable objects from legacy systems wili face im-

mense challenges. Moreover, it may even be the case that much of existing software

has Little or no reuse value due to its lack of specifications, poor design, undependable

Page 18: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

code and imprecise documentation. Reuse, being the use of existing software com-

ponent in a ne.w context. must necessarily be a design issue. That is, a system must

be designed rvi t h reusabili ty in rnind; ot herwise. components will be ext remely hard

to reuse eveii when coding is correct and the documentation is adequate. This may

be accomplished t hrough abstraction - in initial rnodeling, in data and functions, in

interface design, and in process definitioas. The following issues play a key role in

the design of recisable cornponents:

1. A component wit h reuse potential must havc a prccisc and unambiguous dc-

script ion of its functionality. So, internally the function must be cornpiete.

Externally, its coupling (interface) to the environnient must be simple and well

defined.

2. A cornponent for reuse must be governeci by abstraction principles support-

ing generality so t hat a family of dissimilar funtions may be derived froni one

dcscriptiori.

3. The interface oi a soitware comporient must be made simple and must be stan-

dardized. Only tlien. it will have a large set of poteritial ttsers and the extent

of reuse will be higli.

-4. Object-Oriented (00) concepts such as encapsuiation, inheritance, and subtyp-

ing should be used in developirig reusable hierarchies.

5. Reusable software shocild be easy to modify and be easy to compose.

6. Precise documentation must be provided for software components.

When a software component is developed to satisfy the above principles and is

shown to meet its requirements, it can be released for reuse. It is clear that both

technical and managerial teams should coilaborate to maintain and distribute reusable

products developed according to the above principles.

2.3 Reuse Management

In spite of several challenges faciog widespread reuse, some software development or-

ganizations are making gcod progress in establishing and following reuse programs.

Page 19: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

In the US, commercial organizations like rZT&T and DEC[I4], HP[23], IBM[6], Mi-

crosolt , and Motorola[6] have inst i t uted reuse prograrns and report im proved produc-

tivity and software quality. In Japan, software reuse in different forms have been

practiced institutionally for more than a decade. For example, at the NEC Soft-

ware Engineering Laboratory a software reuse library for its business application was

built and then integrated into t heir software development environment. This en forced

reuse in al1 of their business software applications which resulted in a 6 2 1 productiv-

ity improvement and 2.8: 1 quality improvement. It is also reported [6] that in Perth,

Australia, the reuse prograni at the Universal Deleose Systenis has acciimulated a

library of 396 Ada modules and expects this to grow. In Europe, Siemens, the Eu-

ropean Space Agency and ESPRIT have reported major efforts in establishing reuse

prograrns. The following major conclusions may be derived from these reports: (1)

a strong emphasis must be put on integrating reuse tools with software development

environment: (2) measurenients to show qiiality improvement and productivity int-

provernent must be kept; ( 3 ) full participation in software reuse effort at al1 stages of

software clevelopmen t must he encoiiraged.

2.3.1 Reuse Experiences

It is to be expectcd that because of the encapsidation and data abstraction provided

by the 00 paradigm. progranmiers could reuse classes by understanding the behavior

of classes as specified by the met hods in t heir interfaces. The client of a ciass may view

the method implementations as being contained in a black-box hidden from view. Thot

is. the black-box approach to reuse assumes that a clauses's behavior can be described

succintly and without having to refer to an implementation. In many manuals the

description of reusable class libraries are given only in a natural language. These are

often imprecise, verbose, and potent ially arnbiguous. Due to t hese shortcomings, class

descriptions give rise to different interpretations among reusen. often forcing them to

read and undent and the irnplernentation details. The effort required to understand

the implenientation details of a met hod is often much more t han the effort required

to rewrite it from scratch. Al1 this wasted efforts offsets al1 or part of the productivity

increases which should have resulted in effective reuse of the module. A remedy is to

provide natural language descriptions accornpanied by some formal descriptions.

In code reuse, it is clear t hat rnost of the simple classes such as container classes

Page 20: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

( lists, dict ionaries, queues), strings, date, time, and t racing package would be required

by al1 applications. This is the first level of reuse. In the second level, class designs

t hat are more domain specific would be reused either individually or in clusters by

more sophisticated developers. Informal descriptions of class designs and their inter-

actions in this level are extremely hard to read and understand. As the reuse process

matures more and more cornplex structures, such as design patterns and frameworks,

would be reused. Their informal descriptions and interna1 details are rnuch more di@-

cult to comprehend, if not accompanied by precise descriptions. This thesis addresses

issues reiatetl to the seconci level of reuse in the context of TROMLAB environment.

These factors clearly suggest that, in large part, ceuse efforts would be t hwarted

by t hc abscrtce of documentation specifying the behavior of reiisable components

in a precise ariil cornpletc fashion. The absencc of precise and coniplete interface

documentation c m also result in ttic mis-interpretation of the intended behavior of

availablc components by developers. This may lcad to system integratiori and system

niaintertance problerns, warranting much tirne to be spent during system integration

to rrniove the de fer ts. If the behavior of coniponcnts is not precisely defineci, it is also

difficu lt to determine whet her t hese problems wcre due to incorrect iisage of reusable

coniponents or due to the fact that the components were defective.

Black-box reuse has a number of advantages:

O Black-box rcuse is sinipler for the reuser. Much of the benefits of reuse is lost if

developers are forced to understand the irnplerncnt ation clet ails of a component

in order to understand the behavior of the component.

a The real value of reusable code lies in its properties, such as correctness with

respect to its lormal specification. When changes are made in the code, the

program's behavior is no more predictable and consequently there is no more

invariance of properties. Hence, black-box reuse prevents developen from mak-

ing assumptions of their own about the implementation.

For polymorphic code, failure to rely solely on the specification makes it difficult

or impossible to determine w hat const raints client subclasses must respect to

ensure predictable and reliable behavior.

0 Reuse products cao be thoroughly tested and classified before release.

Page 21: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

0 An efficient maintenance of a reuse library is possible when the products are

not subject to modifications.

O Managing a black-box reuse program is effective because standard conventions

can be imposed for using the products.

2.3.2 Formal Specifications and Black-Box Reuse

Black-box reuse is easy to learn. practice, and administer. What kind of software is

suitable For this lcvel of reuse? If the software is aot useful and does not perforni

as intended, then it does not matter how ceusable it is; it is simply worthless as an

asset. Only aftcr a developer locates and uiiderstands the iisefulness of the software

its relise can be planned. The first step in this planning is to determine t h e behavior

of the software to sec whethcr it will serve the purposes in the plan. Mere is wbere

a good documentation and description of the behavior and interfaces to the prodiict

beconies cssent ial: modiilc descriptions and programming code are simply insufficient

for black- box reusc.

In our opinion. black-box reiise represents a higiier level of rcusc than just source

code reiise sincc it is akin to design reuse. Developers reuse not only the implemcnta-

tion code of a component but also the abstract design of that component, as describeci

in the corn ponent 's interface speci ficat ion. For well-designed, and well document ed

reusable software this is very significant. as a considerable arnocint of eff'ort will have

gone into the clesign of the behavioral interface. In the case of frameworks of classes,

the amoiint of design reuse is even more substantial since the developer reuses not

only the design of individual classes but also the design of the interactions between

classes. which are notoriously difficult to design properly.

In order to tmly support the ability to reuse a cornponent without having to

understand its internai details. the components's interface must convey the abst rac-

tion implernented by the class in a precise and complete manner. Trying to provide

a precise interface specification using standard natural Language specifications can

be a very challenging and time consuming task. One of the reasons is that, unless

great care is taken, providing the necessary levei of precision results in an overly

verbose specification which is difficult to read and understand, thereby reducing the

Page 22: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

effectiveness with which a component can be reused. Recognizing the necessity of pre-

cise interface specifications several researchers in object-oriented community[39, 211

tinve advocated the use of formal speci ficat ions to specify component interfaces. The

syntactic support for creating reusable black-boxes are not sufficient; the semantic

support required to state the behavior of components must also be provided. TROM-

LA0 cornponents have well-defined syntax and sernantics. Consequently, black-box

relise is appropriate in TROMLAB environment.

Wheri the behavior of a reusable component is only informally stated, the reuser

will ei t her misunderstand the component 's behavior ( r a d t ing in improper use of the

class) or turn to read the implemented code (resulting in both loss of time and rigor).

To reniecly this from happening, the functionality of a software component rnust be

statecl witli precision and conçiseness so that al1 users iinderstand its behavior in one

ancl only one way. X forrnal specification language due to its mathematical appara-

tus and forrnal semantics enablc the developer of software to write the Eunctionality

unam bigiiously. In t urn, the reuser can biiild correct systerns froni t hese descriptions.

There are a nuniber of additional advantages to use formal specificatioris in the

context of developing and using reiisable software components. Organizing and retriv-

ing reusable classes from class libraries have only a limitecl scope when purely syntactic

considerat ions are used. Organizing reusable classes according to the su bty pe hierar-

chy provides a logicai and rneaningful view of classes. Moreover. behavioral subtyping

relations between cIasses cannot be deduced wit hout a precise specification of the be-

havior of these classes. The proof system in the Formal specification language c m be

used to formally verify the correct ness of a component's implementation against its

s pecificat ions.

2.4 Linking Designs to Implementations - Choice

of Language

In TROMLAB environment there are three categories of components. The abstract

data type layer is founded on Larch(l51, and conscquently Larch/C++ interface spec-

ifications link the abstractions to a C++ implementation. The Larch family of lan-

guages have the following advantages:

Page 23: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

r Lorch provides a two-tiered approach to specification. In one tier a Larch Inter-

face Language ( H L ) (C++ in the case of Larch/C++) is used to describe the

semantics of C++ program modules. In the other tier, Larch Shared Language

(LS L) is used to specify state-independent , mat hemat ical abstractions, called

tmits. which can be referred to in any LIL specification. Hence, the two tiers

provide a clean separation of concerns.

r The Larch/C++ specification of a C++ module specifies not only the behavior

of th^ h i n c t h n . but also how ~ x a î t l y the f~tnct~iori is r a l l ~ d from C+f rocle.

r Externally observable behavior can be expressed independent of implementation

details.

r Functioris arc described in Larch/C++ using Hoare-style pre- and post- condi-

t ions.

r The LSL t ier is cieclarative and assert ions can be stated and proved using LP. t lie Larch Theorern Prover.

r The syntax for data menibers and rnember Eunctions in interface specifications

are almost the same as in a C'++ program.

Specifications written in Larch/C++ for irnplenientablecomponents serve a useful

piirpose in reiising components. The reuse repository includes a large number of

LSL traits and Larch/C++ specifications developed in the context of formalizing

the interface specifications for a number of classes chosen lrom the Rogue CVave

Tools.h++[JG]. a rich, robust and versatile C++ foundation class library. Virtually

any prograrnrning cliore can be clone using the classes from t tiis library. Tools.h++

is an industry standard. The functionalities provided by Rogue Wave Tools.h++

library suits the requirements OF a wide range of applications in large-scale industrial

development of software. It is claimed[36] that the Rogue Wave Tools.h++ class

library is built to achieve four basic goals: e f i e n c y , simplicity, compactness, and

predictability. This perfectly fits in with the criteria for black-box reuse.

Page 24: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 3

Requirements of the Browser

In this chaptcr. we identify the requirements to build VISTA with which developers

in TROMLAB environnient can interact to access. manage, and navigate the reuse

repository of TROMLAB corriponents. In our context, the term cornponen! is iised

to clenote elements ol the software that are predefined in trrms of the general func-

tionality that they can provide. The components may denote the software artifacts

uscd within TROMLAB as well as its architectural design parts. 'i'he activities that

affect them are the evolutionary changes that occiir amidst interaction of TROMLAB cornponents. The users of VISTA arc the developers and other clients of TROM LAB environment who share reusable software components for building react ive systems.

Below we give a brief overview of T R O M LA0 architecture and defer detailed structural

and betiavioral dcscript ions of the reiisable cornponents to t hc next chapter.

3.1 TROM LAB Environment

TROMLAB is an Object-Oriented (00) softwarc development environment for con-

structing complex real-tirne reactive systems built with TROM. TROMLAB environ-

ment supports specification, design, validation and verification of subsystems built

with TROMs. The environment proposes [2, 31 a two-pronged strategy to contain

cornplexity: the object-oriented framework for modeling reactive system supports it-

erative design, design refinements and hence reduces design cornplexity; the animator

and the verification subsystems provide the tool support necessary for validating the

Page 25: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

design and verifying tirnedependent properties during the evolution of design. Con-

sequent to these design decisions, the components arising in design include TROMs

and components included in t hem, cornponents assernbled using TROMs, and compo-

nents arising from their refinements. The browser includes the reuse libraries of the

components, the editor. and a query processor interacting through a grophical user

interface of the TROMLAB.

Figure 1: Structure of TROMLAB

Figure L shows the context and role of VISTA within the design components of TROM-

LAB.

O LSL traits and Larch/C++ Library - This is a passive component, a library

of LSL and Larch/C++ specifications. The specifications in this repository were

composed, analyzed, and used by researchers in the reuse research project at

Concordia University [4]. Al1 specifications in the repository have been checked

for syntactic correctness and in particular, al1 Larch/C++ specifications con-

form to the requirements stated in Rogue Wave library (361. Al1 specifications

developed by TROMLAB users can also be stored and retrieved from this iibrary:

however, t bey are maintained separateiy from the pre- tested components. The

specificat ions developed by users of TROM LAB are submit t ed to Larch tools

and checked for syntactic accuracy and analysed for semantic consistency.

Page 26: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

r Editor - New LSL traits con be composed, and others may be modified using

an edi tor facility. TRO M class specifications, and subsystem specifications may

also be textually cornposed; however, GUI facilities are better suited for t his

purpose.

r Interpreter - The TROM specification of a reactive object is presented as a

class definition. The interpreter performs Lexical and semantic analysis on the

TRO M class definit ions and on the specificat ion of subsysteni configuration. The

static analysis of TROM classes that are input ta the sirnitlaior van he clone hy

the interpreter via the editor. If the TROM is syntactically correct then it builds

an interna1 representation (AST) of each TROM class and the SC'S. [tt this

point. specifications from the lowest tier (LSL traits) are compiled separately

and checked for consistency using LP. Larch Prover. The TROM classes in the

tniddle t ier can import the LSL traits and are compiled separately independent

of other tiers. New states, transition specifications or time constraintv can be

addcd incrcrnent dly to class Y pecifications. and recompilcd before inclusion to

a subsystem. When the SCS in the upper tier is redefined. it can be separately

recompileci wi t hout reqiiiring a recompilat ion of components in ut her tiers.

Axiom Generator - It uses the logical semantics of TROMs and the subsystem

incliiding theni to gerierate a set of axioms for the specific subsystern. There

are t hree types of axioms: transition specifications; time constrained axioms; and

synchrony axioms. These axioms are used by the simulator for on-line reasoning

abolit the system behavior. In the TROM class specification, the actual times

of occurences of events, the number of ports. and the actiial port at which an

event occurs are dynamic information. They can be obtained only during the

instant iat ion of ob ject configuration and ob ject collaborat ion. But the axioms

generated wi t h the static information of an object of a TROM class specification

can be used by al1 the subsystems t hat includes t his object . Such axiomatization

of TROM ensures completeness of its logical behavior for each predicate in the

axiorns and for each state, event and port. The predicates are reducible to

propositions at any instant by the simulation environment. Thus, reasoning

of system properties becomes decidable in the simulation environment. The

browser may interact with the animator to browse and import Larch/C++

interface specifications and C++ prograrns required for a reasooing session.

Page 27: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a Simulation Tool - This is to perform system validation through simulator. It's

debugging facilities incltide lreezing the simulation and activating the validation

toolset. When simulation is frozen, it allows the user to interact wit h the process

for injecting input events, and query the behavior of the system being simiilated.

The user can walk throiigh the event trace and examine the history of the

simulated scenario. This allows the user to roll back and analyze the change

in the system status and simulate iteratively the corrected designs. Also. the

safety propertics at each each stcp in the design can be verifietl.

a Graphical User Interface (GUI) - A user interacts through the GLU to

compose specifications, to submit them for syntactic and semantic analysis.

to invoke the sirnulator. tu watch the dynamics of siniiilated system. and to

interact with the browser at any stage of the developrnent activity and inspect

arici navigate system components. Interpreter, simulation tool. and verification

manager intcract with the browser ttirough GUI.

r Verificat ion Manager - This cornporient veri fies t i tne-dependent propert ies

in TROM classes and subsystems using PVS [;El.

Q Browser User Interface - This provides the interface For Larch reuse reposi-

tory wheri the browser is invokecl independently [rom TROMLAB. It also inter-

acts with GUI to enable the viewing, navigation, and retncval of TROMs and

siibsysterns.

The Interpreter and the hxiom Cenerator ivere designed and impiementecl by Tao

The Simulation Tool was designcd. and iniplemented by Mut hiayen [3O]. Some Fun-

damental work Ieading to forma1 verification and the design of a Verification Manager

can also be found in Muthiayen [30]. Based upon the works of Tao and Muthiayen,

a reasoni ng sys tem and Y imulated debugging facilities are k i n g designed by Haidar

[L6]. The GUI is being designed by Srhivasan k101. Upon completion of thcse two

works. we expect a full prototype of TROMLAB to become operational.

3.2 Requirements

From the outline given in the previous section, we ideotify the requirements of VISTA, the browser tool. These are:

Page 28: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

L. VISTA should enâble users to read and view LSL traits and Larch/C++ speci-

fications h m the library.

2. VISTA should provide a facility for cornposing new Larch traits with or without

relise of LSL traits from the library.

3. VISTA stiould interact with Larch tools to check the syntactic correctness of

composed LSL traits as well as analyze some of t heir propert ies.

4. [t shoiilcl be possibl~ to rnaintain the relationships arnong LSL traits. These

include the language specific relationships includes. and assumes. and design

relat ionsliips. called versions.

5 . It should be possible to run ail versions of LSL library traits as well as versions

of composed traits against LS L syntax c h e c k Only syntactically correct traits

niust be saved. Users must be given an oppurtunity to modify arid recompose

speci ficat ions.

6. VISTA cnablcs the maintenance of relationships between LSL traits and Larch/C++

in ter face speci ficat ions.

7. Kelationships between Larch/C++ specificat ions must be maintained. This is

the inheritance hierarchy defined in Rogue Wave Library [36].

d. The relations hi p between a Larch/C++ interface speci ficat ion and an impie-

mentation (C++ program) of its member functions must be maintained.

9. VISTA should maintain a repository of syntactically correct TROMs. When

requestcd by GUI, it should releasc or record f ROM specifications from the

reposi tory.

L O. VISTA should maintain the following relat ionships among TRO Ms:

r A TROM should be related to al1 its refinements as defined by the refine-

ment theory of TROMs [II.

rn A TROM should be related to al1 LSL traits inctuded in its definition.

0 A TROM should be related to al1 subsysterns in which an instarice of it is

included.

Page 29: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

11. It should maintain a repository of al1 subsystems composed koni syntactically

correct TROMs and subsystems. When requested by GUI, it should release or

record TROM speci fications from the repository.

12. The foliowing relationships among subsystems should be maintained:

r A subsystem should be related to a11 TROMs instantiated in its definition.

r A subsystem should be relatecl to al1 other subsystems included in its

configuration.

r The port links connecting objects in a subsystem definition must be recorded.

3 . VISTA should provide navigation and viewing facilities for the above components

and th& relationships. In particular, the lollowing basic queries and suitable

combinat ions of t hem must be answered:

(a) Ret ricvc a trait basecl on name.

( b ) Ret rievc a trait based on includes (assumes) relationship.

( c ) Retrieve a trait based on version nurnber.

( c i ) Retrieve a Larch/C++ specification bascd on name.

(e) Ret rieve a Larch/C++ specification based on uses relation.

( I) Ret rieve a Larch/C++ specificat ion based on inlieri tance information.

(g) Retrieve traits incliicled in a given TROM specification.

( h ) Retrieve TROMs included in a given subsystem specification.

( i ) Retrieve ports and port links in a given subsystem configuration.

( j ) Retrieve al1 traits transit ively related by includes (assumes).

( k ) Retrieve ail Larch/C++ specifications transitively related t hrough uses

reiat ion.

The browser should also be able to respond to queries composed from the above basic

queries. Two such examples are:

1. Retrieve the versions of al1 TROMs included in a given subsystem.

2, Retrieve the transitive closure of ail traits mentioned in the uses clause of a

given Larch/C++ specification.

Page 30: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

The browser can be run either in conjunction with or indepeodent of GUI. These

modes c m be switched at any time. To run the browser successfully, the following

are the software and hardware requirements:

1. The Larch syntax checkers lsl, lcpp, and the Larch Prover L P must be available.

2. The browser should run on a Sun SPARC station 10 iisitig Solaris 2.3 operating

system.

4. It shoulcl interact with CUI. and througli CUI with the rest of TROMLAB

sys t erri.

Finally. the browser must reniain useful for botti experienced and naive users of

TROMLAB arid Larch environment. It should be adaptable to evolving need of the

TROMLAB user commtinity.

Page 31: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 4

Reusable Components of TROMLAB

Environment

Hevi ng icleritified the fiinct iond requirenients. software and hardware requirements,

and performance requirements of the browser, we discuss in this chaptcr the st ructiiral

arid behavioral aspects of the reiisable components. In TROMLAB t here are t hree

.'"""" J"', -------L------------, f

I I

L m 1 i 1 1

Sabsystrm t

< a Systcm Conîïguratbn System thtary: t

C ~ ~ ~ U W O I U I Spccillcotba ; S y ~ h . Monria TL : 1 L 1 t I 1

* 1 1 I I

TROM I I

, Tlrncd Rendive Object ! TRCw t h 8 ~ 1 : I

C~ii~ptcaPdoaS : I I hh=sinTL Mode1 a

1 1 1

1 t I

1 1 t 1 . I

& 1 t F h t a&?

< : L ~ ~ h S h r r d ~ w ~ c . +-j I I

I roric LkiPMdrt (ISL) L

I: I

: - - - iogiEai-

Figure 2: Overview of TROM Methodolagy

basic component types:

rn LSL traits, and Larch/C++ interface specificat ions

TRO M, the generic react ive ob ject mode1

Page 32: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

r SCS, subsystem specification

These component s are st ruct urally and behaviorally different ; however, TRO M met hod-

ology, as we briefly review below. uses them at t hree distinct levels and uses corn-

ponents from one level for constructing components in t h e next higher level. Thus,

when components from a lower level are included in composing a component in a

higher level. the structure and beliavior of included components affect the structure

and be havior of t hc defincd component.

TROM rnrtho<lologv in a fusion of 0hjrct.-Oricnteci(00) mrttiodology wi th rml-

time technology. It is a thrce-tiered methodology [LI as shown in (Figure 2). The

top most t ier const i tutes the Systenr Configuration Speci@ition ( S C S ) to descri be

the object iriteraction. The middle- t ier Y pecifics the dctailed specificat ion of reacct ive

objects for a particular problem as described ir i the requirements. The lowest tier

specifies t be data abstractions in Larch Shared Language (LSL) used in TROM class

definitions of the rtiiddle tier.

Since this met~iodology is 00. it inherits riatural 00 techniques such as modu-

lant y. reuse. encapsulation, and hiemrchical decornposition using inheitance. 'This

kat ure en hances the incremental clcvelopment tiiat allows the composition. verifica-

tion and intcgratiori of large and cornplex systcms. In order not to confuse with the

notion of objects in 00, we have called the reusable elements of the three tiers as

componenb. Below we give a description of the components belonging to t hese levels.

4.1 Larch Specificat ions

L a d is a property-oriented specificat ion language. [t uses a t wo-t iered approach

to forma1 specifications. The first tier, using Larch Shared Language (LSL), provides

progamming language independent specifications defining the structure and behavior

of abstract data types and general theories of objects. Each unit of LSL specification

is called a trait. A trait specifies either a data type or any theory to be combined

with a data type. The second tier, using Larch Intexface Languages (LIL), provides

specifications of the components of a software system. The interface language is

particular to the programming language used for the software system and defines the

interfaces of the cornponents of the system. The traits in the LSL tier can be refened

in the interface tier. An LSL trait is written in the equational algebraic style. Each

Page 33: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

equation is an axiom in fint order predicate logic. The interface specifications are

writ ten using Houe style pre- and postconditions.

Sym Ta6 : trait

int rod uces ernp :+ S add : S. fi, V -, S rem: S,K -+ S find : S. Li + I.' isin : S. ii -, Bo01

asserts S generated by ( e rnp. tirid) S partitioned by (J ind . i s in) V (J : S.I;.ki : 1i.o : V )

reni(udd(s . k. u ) . k l ) == if b = kt then s else add(rem(a . k i ) . k . L! )

f ind (add( s .k . u ) , h i ) == if I; = k, then v else find(s. k t ) isin ( ernp, k ) == falsc i s i n ( « d d ( s , k. o), L I ) == (A: = k t ) V isin(3. k l )

implies converts ( rem.find. isin ) exempting ( rem( enip), Jnd( e m p ) )

end Sym Tau

Figure 3: LSL Trait Specification for a Symbol Table

A simple LS L t ier Larch specificat ion for a symbol table is shown in Figure 3. This

specification introduces the trait SymTab, a theory describing a symbol table. The

signature of SyrnTab introduces five functions in the introduces clause. The asserts

clause introduces the equations constraining the function. The implies clause states

the checkable redundancies, which logically follow from the equations. The gener-

ated by clause states that al1 symbol table values can be represented by terms solely

cornposed of two function symbols enip and add. This clause defines an inductive rule

of inference and is useful for proving properties about al1 symbol table values. The

partitioned by clause adds more equivdence between terms i.e., two terms are equal

if they canot be distinguished by any of the luactions listed in the clause. This can

Page 34: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

be used to prove that insertion is commutative. The exempting clause documents

the absence of right sides of equations for rem (emp) and /ind(emp). Error situations

are handled in the interface specification. The converts and exempting clauses

together lorms the completeness of the symbol table specification. There are other

clauses such as includes, assumes, and implies which may bc iised in composing a

trait. See trait Sym Tabi, which is a refinement of Sym Tab.

init = proc() returns (s:symbol-table) ensures s' = emp A n e . w ( ~ )

inscrt = proc(s:synibol+able. k:key. v:val)

{ requires -iisin(s. k ) modifies ( s ) ensures s' = add(s. At. 1 1 )

1

lookup = proc(s:symbol-table. k:key) returns (v:val)

I requires i.vin(s. cl.) ensures o' = / ind(s . k )

1

delete = proc(s:symboLtable. k:key)

I requires isin(s. k) modifies ( 3 )

ensures s' = rern(s. k ) 1

end symbol-table

Figure 4: Larch Interface Specification for a Symbol Table

4.2 Structure of TROM

Larch/C++ interface specification language is appropriate as a language of implemen-

tation for componeots of TROMLAB. the specification in the next tier. Larch/C++

Page 35: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Pori ndition *

pid

I

Events

Events E,, 1 Figure 5: Anatomy of a TROM

Page 36: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

has been discussed in [4] in the context of developing interface specifications for com-

mercial class libraries. The iunctions in the interface tier specification for symbol

table operations are shown in Figure 4. [t has four operations which are explained

below. For each operation, objects specified in the interface specification range over

values denoted by the terms of sort Sym Tab.

r init - initializes the synibol table to be empty

r insert - modifies the table by adding a new binding to symbol table. if the key

k is not in the domain of symbol table

r lookup - rcqiiircs the key I; in the mapping domain and ret urns t h e value of k

and does not change the state of the syrnbol table i.e. new table is equivalent

to the old table. and

O delete - reqiiires the kcy I; in the mapping domairi and modifies the table by

deleting t h c binding associated wit h k from the symbol table

For each operation. the requires arid ensures clause specify its pre- and postcon-

tlitions. :\ precondition on an operation is a predicate that rnust hold in the state

on each invocation of the operation: if it does not holcl. the operation's behavior in

unspecified. :\ postconclition is a predicate that holds in the state iipon returo. An

operation's clients are reporisible for satislying preconditions. and its implementer is

responsible for guaranteeing the postcondi t ion. The modifies clause Iists t hosc ob-

jects whose value may possibly change as a result of executing the operation. Hence,

lookup is not allowed to change the state of its symbol table argument whereas insert

and delete are allowed to change. In the insert operation, we can remove the requires

clause and use a special signals clause in its postcondition to specify that a signal

should be raised if the key k is already found in the symbol table.

:\ TROM is a hierarchical finite state machine augrnented with ports, attributes,

logical assertions on the attributes, and timing constraints. A state in TROM can

represent eit her a red-valued informat ion of an environment object. such as the po-

sition of a moving train. or a system state. A state can be either simple or complex.

In the later case, the state has substates, where each state can be either simple or

complex. A TROM can include two kinds of attributes: port types, and LSL traits.

The inclusion of an LSL trait brings in to the mode! the abstract data mode1 and

Page 37: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

TROM T R O M N A M E ( P O R T ~ P E P . . I R A M S ] Events: (eue nt s) State: (states} Attribut-: (portt ypes) Attribute-function:

states - attributes Transition Spec:

R i : (source,~tute, destinalionlslate); event(po+t-condition); enablingrondit ion -4 post-condit ion;

... . S.. . R:y :

Timc-constrain ts: (TranaitionSpec. euerit. [t 1 , t?] , staîes) (-J

end

Figure 6: TROM Class Description

SCS Systerrr Name Inchdes: Instantiate: Configure:

end

Figure 7: Tcmplate for System Configuration S pecification (SC'S)

conscqtiently the abstract operations definecl on it. A port. has unique port-type and

is an access point for bidirectional cornmimication channel between a TROM and its

cnvironment(e.g. TROMs). :\ port-type determines the allowable messages at a par-

ticular port. A TROM can have multiple ports of same port-type andior different

port-types. An evcnt is an activity that happens in an atoniic interval of time while

an action is an activity that happens in non-atomic interval of time (finite). An in-

formal description of elements defined in a TROM object shown in Figure 5 are as

follows:

O A set of events (E) partitioned into three sets namely, input evcnts (E,,).

out put events (EoUt) , and interna1 eveots ( EiJ . Message passing is represented

by the input and output events suffixed by the symbols ? and ! respectively.

r .A set of states (8) in which a state cm have many substates and the initial

state is marked by the symbol *.

Page 38: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a A set of attributes (,k) in which the attributes could be of either on obstract

data type specifying the data model or a port reference type.

r An attribute-function (6) that defines the association of attributes to states.

If a cornputation is associated with a transition entering a state, only the at-

tributes associated with that state can be modified and al1 the other attributes

remain unchanged.

a A set of transition specifications ( A ) in wliich each specification describes

the computat ional step associated wit h the occurrence of an event. h transit ion

specificat ion has t hree assertions, ( i) preconditios, ( i i) postcondition, and a port-

condition specifying a property of the port at which t lie event can occur. These

assert ions may involve at t ributes. and t lie keyword pid ( port-identifier).

r A set of time-constraints (T) in which each timcconstraint specifies the re-

action associated with a transition. A reaction is t h e firing of an output or an

internal event wit hin a definecl time period. A set of disabling dates arc associ-

ated with cvery reaction. When an object enten any of the disabling states of

the rcaction. an enabled reaction is disabled.

Figure S depicts abstract ly the behavior of a generic TROM [II. The Aow of events

are indicated by filled arrows. An input event is a result of an incoming interaction

caused by external stimulus, the current state of TROM and the port with respect

to port-condition. h computation is triggered by evcry event that updates the states

and attributes determined by an attribute-function.

This cornputation enables a reaction which are indicated by the dashed arrows

corresponding to t ime-constrained reaction. Sirnilarly. an out standing react ion rnay

be disabled because of a state update. An outstanding reaction rnay be fired in the

form of a transition based on the input lrom the global dock, thereby generating an

internal or an output event. As a response to the stimulus, al1 the output events will

result in the port specified by the port-condition.

In t his model, port-condit ions are used to specify the pat tems of interactions

betweeo the components of a system. TypicaI real-time features such as minimal

and maximal delays, exact occurrences, and periodicity of event occurrences, and

combinations of temporal relations (stimulus-response, response-response, etc.) can

also be specified. The model also provides encapsdation of timing constraints by

Page 39: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

TROM Train [@CI Events: iVear!C, Etif!C, In, Out State: *Sl, S2, S3, S4 Attributes: cr :@C Attributt-function:

si, S3. S4 * {); s"L * Cr: Transition Spec:

Ri : (SL, S2); !Vear!(true); true m' = pid; R2 : (S2.5'3); in; true true; Ra : (S3,S4); Out; h u e hue: R d : (S4, SI); Ezit!(pid = rr); true =+ true:

Tirne-constraints: ( R I . I n . p. 51, { } ) (Ri+ Exi t , [O, 81, { ) )

end

Train J PO* gC

Nm!C

Exi t!C

Our

SI: dlc SZ: tocmss S3: m w S4: lave

Pori: @C -> Conuolkr

Figure 8: Class Specificat ions for Train.

preclucling an input event from being a constrained event. In ot her words. a TROM cannot enforcc any timing constraints on the occurrence of input events as they are

iinder the control of the environment. See Figure 6 for the teniplate sharing the

langiiage for a textual description of a TROM. To siimmarize: h reactive object is dcscribed as in the tertual description shown

in Figure 6. We may regard this description as a specification of a reactive object.

The namc of the TROM followed by its elements should bc presented for cornpos-

ing its specification. The modeling elements of a TROM are finite state macllines.

port types, LSL traits, and timing constraints. Each modeling element has a formal

meaning. Consequent Iy, a TRO M description has an abst ract internal descript ion,

called A bstmct Syntaz Tree ( M T ) FkI]. From t his internal reprcsentation, objects

of a TROM class are obtained by iristantiation. Since the characteristics of TROM

classes are encapsulated in t heir definition, it is possible for a TROM class to inherit

the characteristics of another TROM. The specification enviornment in TROMLAB permits the reuse of LSL traits from the library as well as cornposing them on the

By. In either case, it is the browser's responsibility to make them available. hfter

composing a TROM from a set of modeling elements, it is submitted to the Inter-

pmter. If it is syntacticdly correct, the browser may be invoked to Save it in the reuse

library. The relationship between a new TROM class, and LSC traits is automatically

computed and updated in the reuse repository.

Page 40: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

TROM Gate [@SI Events: Lower?S, Raise?S, Down, U p State: *GI,C2, G3,G4 Transition Spec:

Ri : (Cl, (32); Lower?(true); t r u e a true; RI : (G2,G3); Dozun; t t u e 3 true; R3 : (G3, G4); Raise?(true); t ~ l e a [ n i e ; & : (G4,GI); Irp; true -4 true;

Timtconstraints:

( R I , Down. [O, 21, (1) ( R s , U p , [ 2 , 4 ] , 0)

end

Pori: @S

Down / bQ1

Gl: opened G 2 ftoClox

Figure 9: Class specifications for Gate.

4.3 SCS - System Configuration Specification

.A Systeni Configuralion SpeciJicntion (SC4 defines a subsystem composed of TROM objects. Figure ï shows the templatc of SCS, which has I n d u d e , Instantinte. and

CenJigurr sect ioris. Here < rianie> represents the name of a systern being developed.

and Inrlude clause is usecl to import other subsysterns. The tnslaniiale clause is

used to define a reactivc object by parametric substitutions to cardinality of ports for

eacli port-type ancl initializing attributes ( i f any) in the initial state of the TROM.

The objects specified in the Instantinte clause and the irnported subsystems in the

Incivde clause are composed to obtain a configuration through t h e Configuration

clause. The commiinication links between compatible ports of interacting objects are

set up through thc composition operator -. If the set of input niessage seqiiences at

one port is a subset of the output message sequenca a t the other port, then the two

ports are compatible and thiv relationship is symmetric.

A siibsystem is composed only froni objects instantiated from compiled TROM classes. It is also possible to include an already composed subsystem in defining a

new su bsystem. h su bsystem is implemented by recunively aggregat ing al1 included

stibsystems, and suitably defining port links. In a subsystem, port links are estab-

lished between TROM objects whereas in the included subsystems, the port links are

established with the TROM objects. This facilitates the development of large sub-

systems as the available components c m be reused as such. After composition, a

subsystem may be saved by invoking the browser. Al1 inherent relationships within a

subsystem, and the relationships between a new subsystem and those subsysterns in

Page 41: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

TROM Cont roller [Q P,@G] Events: Near? P, Exit? P, Lower!G, RaiselG State: +Cl, C2, C3, C4 Attributs: inset : P S d ; Traits: Set[@P. PSet] /* Link to LSL tier */ Attri bu te-function:

Cl + ( 1 ; C2,C3.C4c- ( inSe t ) ; Transition Spec:

Ri : (C l , C2); .Vear?(t rue); t r u e -4 inSett = insert(pid, inse t ) ;

R2 : (C2, C2), ( C l , C'3); :Vear?(-.(pid E inse t ) ; t rue a inSett = insert(pid , inse t ) ;

Rn : (C2. C3): Lower!(true): t m e true: RI : (C3. C3): Erit?(pid E inse t ) ;

(si:e(inSet) > 1) inset' = delete(pid,inSel); R5 : (C3, Cd) ; Erit?(pid E inset);

(si:e(inSet) = 1 ) -4 inset' = Jelete(pid, inse t ) ; Rt; : (C4, CL); Raise!(true); true true;

Timoconstraints: (Ri, Lo.wer, [O, 21, { } ) ( Ra, Raise. [ O . 21, (1)

end

Cl: idle C1: xtivarc C3: rnoniior CJ: Jtocfivotr

P ~ @ P - > T i 3 i n , @ G - > G a

Figure 10: Çlass specifications for Çont roller.

the reiise Iibrary are automatically recompiited and updated in the reuse rcpository.

4.4 Train Gate Controller System - An Example

h generalized version of Trnin-Gale-Cor! roller ( T C C ) problem has becn used in

TROMLAB simulation and verification [3]. To illustrate the reuse assistance t hat

can be provided by the browser for applications based on trains and gates in trans-

portation doniain, we use the coniponents from t his example in building the test bed

database for the browser.

in the TGC system, more than one train can cross a gate simuItaneously frorn

multiple parallel t racks. .4 train can independent Iy choose the gate it wiil cross, based

on its destination. So the interacting entities in the systern are trains, controllers

and gates. Figures 8, 9, 10 show the TROM class specifications of train, gate, and

controller and their state machine descriptions.

In Figure S, a train first sends the message Near (Ent) to a controller indicating

that it is approaching (exiting) the gate. After sending the Near message, the train

Page 42: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

SCS TrainCateSystem Include: Instantiate:

AL.. . .,.- 1, :: Troin[@C : n] .Create() Bi. . . . . B, :: Cont roller[@ P : m , @ C : l].Create( ) Ci, . . . , C, :: Gate[ iW : l l .Create()

Configure: Vie L.- .m, j e L. . .n -4; .@ci Bj .(@pi * . @gt - c, .(@SI

end

Figure 1 1 : System configuration speci ficat ion Cor Train-Gate-Cont coller system.

triggers an internal event I n within a range of 3 to 5 time units and sends an Ezii

message within S time units. Alter receiving the Xenr message while in the idle

state. a controller sends the message Lower ( Ruise) within 'l time iinits to the gate

it is controlling, inclicating that the gate has to be lowered (raised). The Raise

message is then sent after receiving the Enl message from the last train leaving the

crossing. A fter receivirig the Lower message from the cont rol ler, the gate t riggers

an internal event Dotun within 2 time units ancl after receiving the Raise message

triggers an internal event U p within a range of 2 to -L tinie iinits. An important safety

recpirement is that the gate must be closed when a train is crossing the gate and that

the gatc mitst be monitered by a controller. hlso, the gate must be eventually raised

and must remain so for a certain pied of time before it is lowered again to prornote

better operation of the system. The SCS of the TCC system is shown in Figure 11

and is obtained by cornposing the instances of TROM classes. For exarnple, a system

confiyred with three trains, two controllers, and two gates will have the following

ports and links. That is, each train will have two ports of the same type referring

to the controller; each controller will have two ports of the same type referring to

the train and one port referring to gate; each gate will have one port referring to

controller; one gate is linked to only one controller by linking the unique port of the

gate to t hat port of controller referring to gate; each train is linked to both cont rollers

by Iinking the two ports of that train to one port referring to train in each controller.

Hence SC'S permits configuration of a systern in a succint manner. See Figure 12 for

the port links in this system configuration. A set of m trains, n controllers and n

Page 43: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Ttstias Controllers Gates

Ports

Figure 12: Train Gate C'ontroller Systern with 3 Trains. 2 Controllers ancl 2 Gates

gates are composcd as shown below:

3. Gate Ports - Gi : 4. L l i l n

ïherefore, the port links are between trains and controllers. and controllers and gates

as below.

4.5 The Dynamics of Components

Dunng the development of reactive systems, TROM specifications should be composed

and compiled first and then cm be foilowed by a composition of SCS. h TROM

Page 44: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

V,(Design Object)

Figiiie 13: Version CIierarchy

specitication niay include one or rnore LSL traits. .A TROM specification rnay be

writ tcn frorn scratch or niay reuse anot her TROM specifications. Similarly, LSL traits

niay cither be reused from the LSL iibrary or written from scratch. Consequently, al1

TROMLAB coniponents uiidergo changes and versioning during the diiferent phases of

cleveloping a reactivc system. This section discusses in detail the clynamics of change

of TROMLAB componenta.

A version is a semantically rrieaningful snapshot of a design coniponent at a point

in time. Iti general. the versions createcl For different applications have a hierarchical

relationship as shown in Figure 13. A child component is a version of its parent;

convenely, a child version is a derived version of its parent. .A derived version may

inhent From its parents. That is, I.; rnay inherit b3 and i& rnay inherit but not

direct ly b. bloreover, siblings do not have any relationship between t hem.

The LSL traits shown in Figures 14 and 16 are different versions of the LSL trait

shown in Figure 3. These versions include new axiorns, new fiinctions and new inter-

face operatioos. The main significance of the symbol table in Figure 3 is that it does

not allow more than one occurrence of a (key, value) pair whereas this restriction is

relaxed in the version shown in Figure 14. These two versions niay be required in two

different contexts and hence bot h are semantically meaningful. The trait in Figure 16

is another refinernent of S p T a b , which allows deletion of values of different occur-

rences for the same key. The function f id-al1 in Figure 14 creates a list of all values

having the same key. in order t o allow the construction of tables having multiple

Page 45: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

values. the pre-condition for operation insert has been removed in the new version

(Figure 15). Consequently, pairs of the form (1, 2), (1, 3). . . . etc.. can be added to

the symbol table. The axioms for tsia is still valid for the new version. However,

its interpretation is that it returns true if the search key lrl matches the most recent

insertion of a pair (k , v) , k = kl . Consequently. no change in the interface function

lookup is necessary.

The axiom for rem is not changed in S p T u b (Figure 16). Consequently, the

delete operation iii the interface specification Figure 17) which uses rem in the post-

condition ensures that the most recently inserted key in the synibol table is removed.

Sirnilarly, in Figure 17. the function delete-al1 removes a list of al1 values having the

sanie key. The axiorn for rem-al1 is added in the trait SymTab* (Figure 16) and the

posl~ondit ions for delete operat ion is unchanged in Figure 17.

With these new interpretations, the traits SymTabl and SymTab2 and their cor-

responding interface s peci ficat ions rnay be regardetl as refinernents of Sym T'b. T heir

theories correspond to maintaining syrnbol tables arising in compilers for handling

nested scoping riiles in im perat ive programrning languages such as Pascal.

CVe tlefine a Larch/C++ interface specification C' to be a venion of anothcr

Larch/C++ specification C if the uses clause of C' tnentions an LSL trait which is a

version of an LSL trait in the uses clause of C. This property can be checked h m

the syntax of interface specifications. Another type of version relation can be defined:

the interface specification C' associated with the trait specification T' is a version of

the interface specification C. if the trait T' is a version of the trait T' associated with

C'.

Venioning between TROM classes cari be defined in a multitude of ways. An

exarnple of venioning is shown in Figure 19. The New Train and iVewCoatroller

objects are instances of classes shown in Figure 18. These are versions of OldTrain,

and OkdController, which are instances of classes defined in Figures Y and 10. For

TROM class objects. a version is a descendent of some existing venion (if not the fint

venion) and can serve as an ancestor of additional versions in the form of hieruchical

trees. New versions can also be created as part of the design process only if the changes

that were made are consistent with the rules for inheritance [l] and are syntactically

correct. It is the responsibility of the users to venfy the inheritance properties.

If the new versions of train (NewTroin) and controller (NetuControllerf) TROMs

Page 46: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

are used along with the oltl Gate TROM in defining a subsystem, a new Train-Gate-

Controllersystem TCGI will be created. We cal1 TCG1 a version of the old subsystem

TCC. Notice that replacing one component C of a system SI by its version C' leads to

a version S2 of the systern SI. Hence, a system may have several unrelated versions.

and each version may give rise to several oew versions. Consequently, managing

su bsys t en1 versions poses greater challenge t han managing TRO M versions.

As discussed above, there are three kinds of design components. It is important

to maintain and manage versions of eacli kind separately from other kinds. For

composing new LSL specificat ions, only LSL traits and t heir versions will be required.

A version of an LSL trait is allowed to add new signature and equat ions to the parent

trait. Ml traits which are venions of a trait are groupcd together to facilitate thcir

viewing and reuse. However. versions and newly composed traits (totally unrelated

to traits in the repository ) are no1 part of the rcuse repository. The versions of traits

are mariaged hicrarchically. ancl clifferently Irorn the traits in the reuse repository.

Separahg those traits thet have b e n verified to be semantically correct from those

that are their versions (which rnay be syntactically correct) ensiire both safety and

Hexibilitp for reiise. For example, the trait Sel includes the two traits Bo01 and Nat.

The traits Set 1 and Set? are refinements of Set. The trait Sel3 ici a refinement of SeE

The traits Se t 1. Sel" and Set3 may bc incluclecl in t hree different TROM classes. see

Figure 20. Similar clesigri principlps can be followed in composing subsys tems. The

tool manages versions of a11 components to assist t heir effective reuse.

Page 47: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

SymTab, : trait

includes Bo01 , Set

int roduces ernp :+ S add : S. Ii, V -, S rem : S,fi -, j' Jnd : S. Ii + Cf isin : S. Ii -+ Bool find-al1 : S. Ii -+ C'L

assert s S generated by ( ernp. add) .s' partitioned by ( f ind . isin ) V ( J : S. k.Pi : K.<) : V )

rrm(odd(s . k. v ) . k l ) == if k = kl then s else add( rem(+ kl ), k. u ) jirid(a<id(s. k, v ) , k t ) == if k = kl then u else f i n d ( s . k l ) is ir(emp, k) == Jdse k i n ( ad& k . O), / F I ) == ( k = kI ) V isin(s, B I ) Jnd-all(add(.v, P . o ) . kl ) == if k = kl then {O} U j n d d ( s . kI ) else

firad-all(~. kl )

implies converts ( rem, J n d , isin ./ind - a l / ) exempting

(rem(emp)Jind(emp),find-all( emp))

eadSym Tab,

Figure 1-4: LSL Specification of a New Symbol Tabiei

Page 48: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

syrnbol-table1 is datatype based on S from SymTab1

init = proc() returns (s:synibol-table) ensures s' = emp A new(s)

insert = proc(s:symbol-table. k:key, v:val)

t modifies (s) ensures sr = add(s. k. u )

1

lookup = proc(s:symbolfable, k:key) returns (vxal)

I requires iuin(s. k) ensures t*' = f ind(?i. I r )

1

Iookup-al1 = proc(s:syrnbolfable. k:key) returns (v1:vset)

( requires isirr(s. L ) ensures ut' = f i n d a l l ( s , k)

1

delete = proc(s:symbolfable. k:key)

( requires isin(s. k) modifies (s) ensures d = rern(3. k)

} end symbolfable 1

Figure 15: Larch Interface Specificat ion of a New Symbol Table1

Page 49: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Sym Tab, : trait

includes 8001. Set

int roduces emp :+ S udd : S. K. V -+ S rem : SJi + S

J r d : S. Ii --+ V isin : S. II' -, 6001 j i n d - d l : S, [î - C'L rem-al1 : S. Ii -+ S

asserts S generated by ( emp. ndd) S partitioned by (Jind. isin ) V ( s : S . L . k , : I i . u : CI)

rem(a<l<l(s. k. L ? ) . k i ) == if k = k1 then Y else a&( reni(3. kl ). k. u ) f in$(add(a . L. u). k l ) == if A. = hl then v else firrd(s. k l ) &in( emp, k ) == Jalse is in(add(s . k, O), k l ) == ( k = k l ) V i s in(a . kt) Jnd-a l l (add(s . k. o ) . ki ) == if b = ki then ( u } U Fnd-all(s , Ic i ) else

find-all(s. k i ) re.m-aU(add(s, k, u ) , CI) == if k = kl then

.$ u add(rern-all(s , ti) , k , { o } ) ehe odd( rem - d l (y, Li ), k, (v } )

implies converts ( rem, find, isin. f ind-dl, rem-ail) exempt ing

( r e m ( e m p jJnd(emp) , f ind -a l l ( emp) , rem-all(ernp))

Figure 16: LSL Specification of a New Symbol Table2

Page 50: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

symbol-table2 is datatype based on S from SymTab2

init = proc( ) returns (s:syrnbolfable) ensures s' = emp A new(s)

insert = proc(s:syrnbol-table, k:key, v:vai) { modifies ( s ) ensures s' = add(s. k, v )

1

lookup = proc(s:symbol+able. k:key) returns (v:val) ( requires &in($. k ) ensures ~i' = Jind(s, k)

1

lookup-al1 = proc(s:synibol-table. k:key ) ret urns (v1:vset) { requires i ~ i n ( s . k ) ensures PI' = find-all(s. k )

1

deletc = proc(s:synibol-table. k:key) { requires ia in(s . k ) modifies ( 3 )

ensures s' = rem(s. k) 1

deleteid1 = proc(s:symbol+able. k:key) { requires isin(s, k) modifies (s) ensures s' = re*m(s, k )

1 end syrnbol-table:!

Figure 17: Larch Interface Specification of a New Symbol Table2

Page 51: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

TROM Train [@Cl Events: Near!C, Ezit!C, In , O.ut State: *SI , S2,S3, S4 Attributs: m :@C Attribute-function:

Sl ,S3,S4-(1; 5'2-m: Transition Sptc:

R i : (SI, S2); Near!(true); true e cr' = pid: R2 : (S2, S3); In; truc true; R3 : (S3,S4); Out; true true: & : (S4,Sl); Ecft!(pid = cr); true true;

Tirne-constraints: (RL, In, r%:l], [ } ) ? ( R l T EzilT [0,6], { } )

end

TROM Cont r d e r [@ P.(PG] Events: Near'? P. Exit? P. Lotuer!G, Raise!G State: d'1, C:!, C3, C4 Attributes: inset : PSet; Traits: Set [IBP, PSel] /* Link to LSL tier */ Attributofundion:

Cl +- ( 1 ; C2,C3.C4c {inset}; Transition Spec:

Ri : (Cl . C2): ,Vearl?(true); 1 rue inset' = insert(pid, inset);

R2 ; (CZ. C"), (C3. C3); iVear?(-(pid E inset); true -4 inSet' = inserf (pid, inset);

RJ : (C2, Ca); Lower!(true); true a true; & : (C3, C l ) ; Erit?(pid E inset);

(si:e(inSet ) > 1 ) inset' = delete(pid, inset); Ra : (C3, Cd); Ezit?(pid E inset);

(~i:e(inSet) = 1) =+ inset' = delete(pid, inset); Rs : (C4,Cl); Raise!(tme); true true:

Timoconstraints: ( R i , Lower. [O, 11, {}), (Rs, Raise. [O. 11, { } )

end

TROM Gate [ (OS] Events: Lower?S, Raise?S, Down, U p State: *Cl, GZ, G3, G4 Transition Spec:

RI : (Gl,G2); Lower?(true); t rue true; R2 : (C2, C3); Down; true true; R3 : (G3,G4); Raise?(true); true a hue; 4 : (G4, Cl) ; CJp; t rue t rue:

Time-constrain ts: ( R I y DownT [O, 11, {)), (R3, Up, [l, 21, {})

end

Out

S1: idle S2:toCrwf S3: mss S4: leave

Port: @C --> Cmmllcr

-

CI: idk C2: activate C3: manitor C.l: Jcûctivatc

Pom @ P -> Train. @G -> Gate

Figure LS: Class specifications for NewTrain, NewController and OldGate

42

Page 52: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Oldsymbol TabMLSL trait)

T ~ ~ I C I T&Z

/ Set 1

Figure 19: Versions in TROMLAB

Fixed LSL Libnry Structure

Figure 20: Version Hierarchy for Traits

Page 53: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 5

Designing the Browser

The t l i r e major funct ionalities of t h browscr are: navigation and vie W. rnanagernrat

of cornponent repositorier. and reuse promotion. It can be invoked iti tcvo ways:

through CUI of TROMLAB system, and directly through VISTA. the browser user

interface. Navigation and vicwing are accompanied by the associated act ivit ies such

as qiierying. retrieving componcnt information, retlefining components. and recording

redefined componerits in the retise rcpository. Repository design for large-scale reuse

of software componcnts is a challenging task. We review some approaches in this

chapter. CVe have decidecl to sirnplify the task, for reasons explained later, by adopting

UNIX files and directories to coniprisc the database. The directory stnictures, and

algori t hms for ret rieving reusabie components and managing versions are descri bed in

the next chapter. The reuse phase composes ncw components using components frorn

the library. invoking other software libraries and editors to assure completeness and

consistency of the component. The browser design takes into account other criteria,

such as providing good user interaction facilities at VISTA, in orcler to fulfill the above

goals.

5.1 Component Repositories

The structure of a good repository is key to obtaining good retrieval results. If corn-

poneut s are not indexed and st mct ured properly, even intelligent ret rieval algori t hms

will fait to produce satisafactory results. Currently, component-based software reuse

faces a big dilemma: in order for the approach to be uselul, the repository must

Page 54: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

be built effectively and populated with trusted components, and efficient retrieval

techniques mus t be made available. Several ret rieval techniques inherent to classical

information retrieval technologies cm be considered as viable candidates for finding

relevant cornponents. Met hods based on formai speci ficat ions have been st udied re-

cently [8] for retrieving software cornponents. These met hods match signatures to

retrieve a specification. But very little research has been done into the issues involv-

ing proper and effective design of databases for component-based reuse. Narayanan

[ 3 11, has put lorth an object-oriented database schema for the storage and retrieval of

design patterns: however experience on using that approacli has not yet been reporteci.

The retrieval niethods used For software repositories can be divided into three

categories: encimeratcd classification, faceted. and free-text indexing (121. Hypertext

systenis also need some form of retrieval for navigation.

Fnumerated classification is a well- known rctrieval met hod used by -4 CM Cornpul-

irrg Re v i e ws Classification Systetn. Iri t his met hod. information is placed i n categories

that are striictured in a hierarchy of subcategories, miich like h i x file system. This

schemc has the ability to iteratively divide information into smaller pieces that re-

diices the aniount of information that nwds to be viewed. The major drawback in

this scherne is its inherent inflexibility and possibly difficulties in understanding large

hierarchies. O ne sliould coni promise between the clep t h of a classification hierarchy

and the niirnbcr of categories.

Most irnportantly, once the hierarchy is in place it gives just one view of the repos-

itory, namely the hicrarchical division of categories. In order to use this repository,

users must have a good understanding of the structure and contents of the reposi-

tory. In particular, users must be able to distinguish between class labels; otherwise

retrieval will be incffective.

Faceted classification defines attribute classes that can be instantiated with dif-

ferent terms [33]. This is a slight variation of the relational mode1 in which t e m s

are grouped into a fixed number of mutually exclusive facets. Components may be

searched by specifying one term for each facet. The number of facets used per do-

main is fixed, and within each lacet classification methods cm be provided to help

users choose terms for retrieval. An aclvantage of this scheme over enumerated clas-

sification is that individual facets can be redesigned without decting other facets.

Howvever, usen must have an understanding of the significance of the facets, and the

Page 55: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

term that are used in the facet. I t may become hard for users to find the right corn-

bination of terrns that accurately describe the information needed, especially in large

and corn plex in format ion domains.

Free-tezt indet-ing (automatic indexing) met hods use the text from a document for

indexing. After removing fluffy words such as "and", and "the" from the extractcd

text. the rest of the tcxt is used as an index to the document. Users specify a query

using keywords t hat are applied to the indices to find matching documents. Alt hough

no classification effort is required, ofteo human indexers augment the aiitomatically

extracteci text to rcfine the index terrns, Statistical measures are used to rank re-

t &ved information [KI. These iridcxing schemes are most sui table for ret rieving text

documents. becaiise they use Iiriguistic terms and are easy to build ancl use. The

low cost of building the repository coiipled with tlieir acceptable performance have

macle t his scheme popular in commercial text retrieval systerns and World Wide Web

engines such as Yahoo or Alta Vista. Software components such as spccification,

design. and source code are nonlinguistic. Indexing rnethods can be made to work

on the docurnented text of a software eoniponent. In this case. the retrieval is based

on informal descriptions - it is not even dependent on the syntax of the component.

Sincc effective component retrieval requires both the syntax and semantics of the

components. indexing schemes are not applicable to retrieval of software componcnts.

These methodu define a spectrum from enumerated classification, which has a rich

structure. to indexing. wtiich requires no structure. In this spectrum. the cost and

the difficuity of construction decrease from classification to indexing. It seerns that

good s t ructiire is necessary for effective ret rieval. The important question not clearly

answered in literature is the following: what is the relationship between structure

and effectiveness of retrieval and can adequate retrieval effectiveness be accomplished

wit h minimally structured reposi tories?

Very litle researcti has gone into answering the above question for the reuse of

reactive system components. This thesis iu the first attempt to put forth a reuse

methodology within the frarnework of a browser. We are attempting to accomplish

it in the context of TROMLAB components. Because of the experimental nature of

t his st udy, we follow a middle ground wherein the structure of the integrated envi-

ronrnent, and information structures that are cheaply derived €rom the knowledge

of the environment are effectively utilized. So, we use UNLY system directories of

Page 56: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

files produced at different stages of the software development process as our repos-

itory. and build indexes on top of them for retrieval of components. The resulting

repository will be complete and consistent. Completeness is ensured by the processes

and activities t hat produce and consume the components. We ensure consistency by

separating the libraries of different types of cornponents. and within each library we

retain relationship among components and t heir versions. A key virtue of cornplete-

ness and consistency is that information relevant to a query is always retrieved with

"no confusion nor junk'.

Therc is an inhercnt hierarchical structure, the one available for UNIX directories,

for the repository. At each level of the hierarchy information in a file niay be tertual.

or organizccl as a linketl list or organized Iiierarchically. Consequently oiir retrieval

algorithms are based on simple and effective algorithms that searcii and manipulate

hicrarchical and linked structures. An overall advantage of this approach is that the

initial set-up cost is Iow and costs are incurred only incrementally on an as-needed

basis. There is no extensive iip-front cost, which would be unavoiclable had we opted

for a clatabase approach. A clatabase based approach. as uscd in faceted classification,

is more general, more structured. and is more appropriate for a large-size reuse.

Howcver. tlesigini ng a schema for the reposi tory and building in ference engines for

logical- based reasoni ng and ret rieval of reusable cornponen ts is a challenging research

direct ion.

CVe have assurneci that most of the iisen are aware of the fornialisms, and lan-

guages governing the components. That is, users are also familiar with the classifi-

ration hierarchy and contents of the repository. VISTA is designed to help users in

understanding the formalism of the system, structure and behavior of design compo-

ncnts. and TROM LAB features.

During the development phase, new components (not related to components i r i

the repository) may be constmcted. Several versions of a cornponent existing in the

repository may be under develapment. The developer can invoke the version control

mechanism in the tool to manage these components in the repository. For example,

wheo the developer creates a new LSL trait, it is recorded as an original version. If it

is modified later in deriving a new trait, the refined trait is recorded as a version in

the reuse library. Versioning of TROM and subsystem components are also controlled

by the tool in a similar manner. We discuss version control of components in a later

Page 57: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

section.

A s remarked earlier, components of the same type may be related, and there may

exist relationship between components of different types. For example, a trait may

be included in rnany traits. This is a static relationship between LSL traits. A

trait may be used in several Larch/C++ specifications. This is a tat tic relationship

between components of two different types. A trait may be an attribiite of several

TROMs. This is another relationship between components of different types. Some of

thesc relationships rnay be used to define new relationships: two TROMs are related

if t bey share a trait. A dynamic relat ionship arises w hen su bsystenis are const ructed

lrom TROM instances. These relat ionships are recordecl in the browscr tool and are

usecl in navigation algorit hms.

5.2 Navigation and View

The search engines on the repository structures arc buried iinder VISTA, which fa-

cilitate navigation. view. ancl other tasks. Navigation is a guided tour, a metaphor

borrowed €rom hypertet t . Rat lier t hari confineci to a linear order of clocunients. users

are able to niove t hrough a Iiypertext dociimeiit by following links rcpresented on t hc

window by buttons. The basic biiilding blocks of a hypertext are nodes and links.

Each nodc is associated with a unit of iriformation. Nodes can be of different types.

For example. node type may depend on the data type stored in a node (text. graphics.

auclio, specification. prograrn) or the domain type whose objects are stored in a node

( programs. LC P Ps, LSLs. TROMs). Links define relat ionships bet ween nodes.

For example. a link can connect a trait in LSL with a TROM indicating that the

trait is an attribute of the TROM abject. Some links are directed, and some are bidi-

rect ional (symrnet rical relationshi p), and some links can bc t ransitively traversed. A

guided tour constrained by the direction of navigation in a link enhances the power

of navigation. When confronted wit h a large number of navigational possibilities,

the yided tour approach usually will constrain to a few important choices. Corn-

ponents can be inspected by moving froni one cornpanent type library to another

and within each repository taking a guided tour offered by VISTA. These naviga-

t ional capabilities facilitate rapid traversal of the reposi tories to locate target ob jects

for reuse. Since links are set up based on the semantic information of components,

Page 58: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

navigation is helplul in zeroing in on the component with a required functionality.

Whenever the semantics of a TROMLAB cornponent changes, it should be recorded

and the links changed to reflect the change. As the information on the components

undergo changes, and the nimber of components in the repository varies. both nodes

(components in repositories). and links (semantic relationship) must be modified. A

software developer can become disoriented if the resulting hypertext network is too

corriplex and the navigation produces too many choices. This complexity is avoided

by localising the y ided tours: the guided tours are non-intersecting and within each

guicled tour only components of one type can be viewed and navigated.

Navigation built on hypertext mctaphor seems most stiitable for retrieving reusable

coniponeri ts. Developers can act ively refine t heir search by inspect ing soft.ware corn-

potients and decicfing the direction for lurther navigation. That is, developers are

in control of the identification process. and consequently will be able to conduct a

t horoiigh search. The interactive nature of navigation and component inspection will

result in a better understanding of the repository contents. This in turn reduces

search time and cost or search in future rndeavour. 'ïbe hy pertcxt based search can

withstard the growth of repository coritents. Components within each type c m bc

addecl without affecting the searcti performance. New component types can also be

adclcd witliout affecting the quality of search. The benefits of t his navigat ional aid

provided in VISTA will have a favorable impact on the potential for reusing compo-

nents in TROMLAB environment,

5.3 Reuse Promotion

Software reuse in the context of repositories of compooents can be acconlplished in

two ways: ( i ) when an application makcs a cal\ to a component that already exists in

the repository. and (ii) when a developer designs an application by making a cal1 to a

component that was developed in the context of another application, and, as a result,

has b e n stored in the repository. The browser enables reuse of the second instance;

that is, the focus is on reuse that occurs during software construction, where software

developers experience the greatest di fficult ies in finding reusabk software products.

Reusc of components is usually preceded by an exploration of the set of candi-

dates from the repository. This is accomplished by querying and navigation. VISTA

Page 59: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

provides t hese capabilit ies. W hen the identification process is concludecl, the user

will have located and retrieved a small set of applicable components that can be

reused. More important ly, t his process will yield informat ion about w het her t here

are cornponents wit h t h e appropriate funct ionality that are in the repository. This

decision will assist the developer in deciding whether or not to build a component

from scratch. Navigating through the basic components may also lead to viewing

venions of the cornponents. which have already been tried in different applications.

The various guided tours group together components which have similar but distinct

Ririct ionali ty. Developers can easily inspect similar ob jects by following t hese guided

tours.

Some of the retrieved components inay not be relevant to the construction task

ancl the developer miq wish to refine some of these components to fit the task. Using

the editing facilities offered by VISTA. a retrieved component rnay be edited. After

a new cornponent is obtained. VISTA facilities for syntw checking should be invoked

before recording changes to the cornponents in their repositories. The developer is

responsible for the semantics of the component: it can be tested by invoking LP For

LSL cornponents. ancl the simulator for TROM components.

5.4 Browser User Interface

VISTA provides textual and graphical descriptions of the LSL traits. Larch/C++ spec-

ifications. TROM classes and subsystems and will display their informal descriptions

in a multiple window environment. Components can be querieci, viewed, loaded,

edited, and compiied in an easy interactive mode. When a user queries about a

particular trait. VISTA displays the type along with the newly derived versions of

that type, textual description of the respective traits and gaphical version history

tree (hierarchy). This will indeed enable the user to find the best trait needed for

the application being developed or choose one that will require minimal change to

achieve the rquired functionality. For example, a software designer Iooking for 00

class specifications only has to know the types of classes available, and the types of

messages each ob ject of a class can receive and act upon. in such a case, the designer

has only need to determine what objects are required, what the various object types

should do and how the various objects or versions of objects relate to each other.

Page 60: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

VISTA provides lacilities for accomplishing these tasks.

VISTA provides high-level editing operations. and it provides templates for con-

structing LSL and Larch/C++ specifications. The menu and button interface enables

the user to load a specification component into the editor allocate area, and compose

into a more compler specification. There are buttons in the edit window that permit

the user to create a new specification, submit a specification for compilation, store a

specificat ion, arid invoke Larch software tools.

VISTA can be invoked in two modes: (i) as part of the TROMLAB envirotiment.

or ( i i ) as a stand alone browser. When invoked from TROMLAB envirorinient. the

following tasks niay be perfornied:

r The user can create a riew LSL trait or modify an existing trait Ironi the reuse

library to incliide in the T R O M classes or subsystems.

0 The user can choose to search for .i particular LSL trait. TROM class. or a

su bsystern using keywords siicti as data types. trait names. class names. T R O M name. su bsystem name and speci fy relations hips among componentu.

r The user can navigate through the entire set of stored information space.

When iised as a staricl alone browser. VISTA offers the following features. which are

rcst ricted to Larcli Ii brary :

a h complete directory listing of LSL trait filenanies and LCPP specification file-

names available in the library database are provided side-by-side on the window.

0 The filenames are hypertexts and has the capability of opening up the corrc

sponding file upon a mouse click.

The user rnay open (LSL trait or LCPP) a file by a mouse click:

- The respect ive hypermode hierarchy t ree of t raits/classes at different levels

of abstraction is displayed in a srnali window (hierarchical hypertext trees:

hierarchy for traits and inheritance tree for classes). This will not interrupt

the interface communication between the opened file and the user.

- When the hypertext traitname in the tree is clicked, a window is opened

wi t h the display of corresponding trait file. If the chosen trait has includes

Page 61: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

or assumes clauses defined, then the trait window also has hypertext links

to them and c m be viewed by a mouse click.

- The hierarchy level of the hypertext tree may be restricted to 5 t raits/classes.

This reduces the flood of information which rnay lead to confusion.

The user can choose to search For traits/classes using keywords which can be

data type names, trait nanies, class names.

r The closest possible rriatches to the qiiery will be displayed in the hypertext

mode and then the user can repeat ironi any item to further probe the specifi-

cations.

r If no forma1 specification exist, then the user will be asked if a new specifi-

cation should be constructed. In this case. the user is provided with the LSL ( Larch/C++) speci ficat ion teniplate and a C++ code development area to ver-

ify its correctneus. Ttie user niay requcst the newly created class to be added

to the repository.

a Ttie user can niodify an cxisting class to suit the needs of a new application

and acld to tlie existing database as a new claus.

r Components can be aclcled to existing hierarchies and new hierachies c m be

constructecl.

The above functionalities are consistent and cornplete with respect to the require-

ments of VISTA statecl in Chapter 3.

5.5 Architecture

The design components of VISTA are shown in Figure 2 1. To support modularity and

extcndibility of the tool. we followed the 00 design principles. The tool consists of the

lollowing classes: a kvorkspace Manager ( WM), an Object Manager (OM), a Que.y

Halaadter (QH). a repository of LSL traits, a repository of LSL versions, a repository

of Larch/C++ Versions, and a Visual Interface for Software Reuse of TROMLAB

Applzcations(V1STA). QH is supportecl by Q Y-LSL, a query handler for LSL traits,

Q YLCPP, a query handler for Larch/C++ specifications, and Q Y-TRSCS, a query

bander for TROMs and subsystems.

Page 62: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

QU lor QU for QH for Bi C++ Compkr a Figure 21: Architecture of VISTA

Page 63: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

r Workspace Manager - This component manages the allocation and dealloca-

tion of specification workspace (current version of the LSL trait to be developed)

of the browser. Wb1 is invoked by the Object Manager for the purpose of edit-

ing files. Whenever a file is to be edited. the narne of the file and a reference

to the file are communicated to the Workspace Manager. Upon receiving t his

information. the Workspace Manager allocates a temporary buffer where in the

contents of the files are copied. It also allocates an editor for editing the buffer.

A t the complet ion of the edit ing session, the Workspace Manager saves the file,

ei t her by overwri t ing or by creat ing a new file as conimanded by t be user. and

returns the file to t h e Object EvIanager.

r Object Manager - It maintains and manipulates versions of al1 TROMLAB cornponents. CUI invokcs the Objcct Manager whenever a file has to be in-

spected or edited. The O bject Manager iiiitiates the search for the file. If the

search is sticcessful, the rcference to the file is then passed on to the FVorkspace

Manager. The Query Handler can also invokc the Object Manager by specifying

a filename or certain keywords. The keywords may refer to the rianies of the

traits. TROMs and or Subsystems.

r Query Handler - This process hanilles ail the yueries about TROMLAB coniponents in the database and lias t h e e subclasses. QH for traits, QH for

LCPP arid QFI for TROM classes. Query Handlcr can initiate the following

type of queries froni a user.

I. List the names of subsystems.

2. List the names of available TROM classes.

3. List the LSL traits used by a particular TROM.

4. List the LSL traits of a particular type (original as well as derived).

5. List the hierarchy of versions of a particular type of TROM systems or LSL

traits.

6. List the hierarchy tree of included TROM subsystems within a system, and

LSL traits included in each TROM dong with its textual description. For

each trait, the version hierarchy c m aIso be requested.

Page 64: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

7. Dis play the text ual descript ion of components; if grap hical descriptions are

requested, VISTA invokes GUI, and GUI takes over the dialogue with the

user.

QH invokes the query handler t hat is spccific to one component type and returns

the results to WM, who in turn displays the results to the user.

O LSL Traits Repository - This is a directory of UNlX files of Larch traits.

Some o l them are taken trom Larch library (151; however. a rnajority of them

wcre developed at Concordia University I L ] in the context of developing specifi-

cations for Rogue Wave Library C++ [36] classes. Al1 traits have been checked

for syntact ic and semant ic correct ness. Traits developed by uscrs are maintained

in a separate File; howcver, thcy are also part of the reuse library.

O LSL Tkaits Versions - Many traits in LSL repository have differcnt versions

which have similar but distinct betiavior. The versions are maintained in a

hierarchy. where the root of every hierarchy is a trait in the LSL repository.

[t is up to t tie user to declare whether a refined Larch trait is a version. No

semantic checking is made to ascertain the logical relationship between versions.

The user can make use of LP to check for desirable properties in a trait before

declaring it as a version.

O LCPP Repository - This reposi tory contains Larch/C++ interface specifica-

t ions for Rogue Wave Library tools.h++ [36]. They have been type checked by

the Larch/C++ tool. These cornponents can be included in the simulation tool

during the validation phase.

O LCPP Versions - A Larch/C++ specification can be a subtype of another

Larch/C++ specification [9, 22, 251. The user should use Lorch/C++ tools to

ascert ain such a relat ionshi p. The browser maintains versions of Larch/C++

spccification in a hierarchical structure.

O Visual Interface for Software Reuse of TROMLAB Applications - VISTA provides graphicd representations of the hierarchy trees, provides information

on the components in the repositories, enables querying, and navigation of the

TROMLAB components.

Page 65: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

There is a dialog between the VISTA and GUI of the TROMLAB system at the

following instances.

- a user wants to fetch an LSL trait or an LCPP from the Larch/C++ Reuse

Library

- a user wants to Save a version of the trait, or Larch/C++ specification.

- a user wants to inspect (save) a TROM class object or a subsystem.

Temptite Edftor t-l

QU rot QH for QH lot

Subsyste

LCPP Data G

1

1 LCPP Data 1

Figure 22: OMT O bject Mode1

User Interface

a

The (OMT) object mode1 and class diagrams with interfaces for the design corn-

ponents of VISTA are shown in Figures 22, 23.

Object Wnager

O I

Query HandledQW

Page 66: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

VISTA CLASS DIAGRAM

FilrName[701: char

WorkspaccMluiager(c tiar *FileNamel OpenFW); EditFik() Add-A-LSL() Add-A-LCPP() Add-A-l'ROM() Ad J-A-SCSO

1 Global Functions 1 S E : const int - 25 MAX : const int = 226

/ MAXSIZE : const int = 150

int Sc;uch(chiu X[][SiZEJ, int SIZE, chat *Key) int MkAmy(chrv Componcnt(][SlZE 1, in t MAXSUE, char *FNamc) int MatLsl(int Matrix[J[MAXSIZE], charTniit[][SIZEl, int No, char *FNmc) int MotLcpp(int Matrix[l[MAXSEEl, char Spcc[][SIZEl, int No. char *FNmc) int MatAusurnzs(int Matrix[][MAXSiZEJ, charTrait[l[SIZEl, int No, char *FName) int MatUscs(int Mavix[jfMAXSIZEl, char Spcc[][SiZEJ, int MAXSIZE, c~nrTmit[l[SIZEl, int No. char int MzttTroms(int Mauix[][MAXSIZEl, char Tmm[j[SiZEl, int Num. c h Traitn[SIZEl, int MAX, char *FNamc void Updatc(char *FileNmc. c h *NewComponcntName) void ClesirWords(chaf *UserScring) int Relationship(int X[]IMAXSiZEJ, int Y [J[MAXSIZEl, int SUE) int GctVersions(char TraitName[], char Vcrsions[]][SIZE], in! S E ) void Rcplace(chnr *SLine, char *LslNme) void GctMatrix(int Matrix[][MAXSEE], int y, chu Trom[]fSEEl. int Xsize, char SCSULSm, int pl int Vcrsions(char *FNrimc. char Vcrsions[l[SIZE), int SIZE)

Query LSLO void Initiate() void TClosurcIncl() void IncludcdBy() vaid Hicrlncludcs() void CommIncldBy() void Qw Puameters() void TClosurcAssu() vaid AssumedBy() void HicrAssumcs() void CommAssudBy( void InInclu&() void InAssumes() void TClosumVers() void HicrVwion() void VersmOfO

Qucry LCPPO void Initiate() void TCI~urclmpo(: void TClosurcUscsO void HicrUscs() void LSLinLCPPs()

QucryTROM,SCS() void Initia&() void LSLinTRAssu() void tSLinTRlncf() void LSLinTRVm() void TClnclSCS() void ObjInstSCS() void PortLinksSCS() void TRInclSCS{) void LSLinclSCS() void TlUnhcritanccûf(

Figure 23: OMT Detailed Class Diagram

57

Page 67: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

5.6 Overview of VISTA

When the browser is invoked as a stand alone tool, the main window opens and offers

the user four options dong with buttons to invoke external Larch tools and a C++ compiler:

a "Files"

4 -C++ Compiler" - if user would like to clevelop code for the formal specifications

he/she created using VISTA

a "Exit"

See Figure 35. By clicking on one of the options. t h e user can exercise the function-

alities in that option. When clicked on the "Help* button. the system provides a

glossary of technical terms. references to t heir usage. simple exam ples, and a brie€

sunima- to VISTA. if the "Exit" btitton is clicked. the systern gives two options:

to exit froni TROMLAB systern or enter into GUI: ancl to Save unsaved files. Lf the

'Query' button is clicked, t h e user is given five options; see Figure 5%:

a Qiiery LSL traits

Que- LCPP files

a Qiiery TROMs and subsystems

a Exit

O Close (to go back to the previoiis window)

If the "Files" option is made in the main menu, the system opens up a window

(Figure 36) in which there are four options to choose from:

a LSL files

LCPP fiies

Page 68: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

O TROM files

0 Subsystem files

By clicking on any one of these options. the system responds with a menu having two

options: Library files. and Version files. When an option is clicked, the system opens

u p a window which contains the narnes OF files in the chosen collection. For example. if

LSL files was choscn followed by "Versions", al1 LS L version files will be on the screen

within the window. This window, shown in Figure has three buttons "[rispect",

&EclitV. *New" and "Cancef". When a file name is selected in the window and the

button *inspectW is clicked, the contents of the file is opened in a separate window (see

Figure -10) for inspection. If the button "New" is clicked. space is allocated in a new

wintlow and an eclitor is assignecl for composing a component. The "Cancel" button

cancels the previously choscn option. II the "Edit7 buttori is clicked. either after

inspecting or belorc clicking on "Inspcct" button. the browser allocates an editor

to the file. and the fiIr can be edited in a new wintlow allocated for this purpose.

Howevcr. rio LSL file from the main Iibrary can be editecl: it can only bc viewed.

copied. rcuscd ir i a design. In general, this window has wSave'. "Save As", "Update

DB". -Close*. and "Exit" buttons. These buttons have the following functionalities:

O "Save" - overwrites the file.

0 *Save As' - the file will be saved tinder a new narne given by the user.

a -Close'' - closes the session, but confirms any opened unsaved file.

0 "Exitn - closes the window and erits from the window to the previous menu.

0 "Update DBn - the update options differ for different components; for example,

a trait may become a version of another trait. a TROM object may become part

of a subsystern, or a trait rnay be included in a TROM. The functionality of this

button is to maintain the databaire behind VISTA to manage the TROMLAB

components.

The user can perform "Update DBn on LSL venions. The "Update" operation on

TROMs and subsystems axe done by the Object Manager at the request of GUI.

This is because, semantic checking on TROM components are done by TROMLAB components that interact with GUI.

Page 69: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

We explain in the next chapter the window structures, query input facilities and

viewing facilities of query reponses and a complete prototype description is provided

in Chapter 7.

5.6.1 Interaction of VISTA with TROMLAB Modules

VISTA interacts througli CUI, the grapliicd user interface tool of TROMLAB. with

some of the components of TROMLAB. A TROM systern comprises of TROM classes

which include LSL traits and TROM subsystems. The editor in G U interact~ with

VISTA to fetch the TROM classes and subsystems stored in the VISTA'S repositories.

When a reqiiested component is not availahle in the repository, WM allocates storage

and an editor to compose the TROM component. This can be done from scratch

or by invoking the browser again to retrieve suitable components for reuse. Alter

cornpositiori and syntax analysis. a syntactically correct component rnay be savecl by

invoking the browser. The tiscr will he required to give full information on the type of

component and its stat ils (version). The browser deterniines the relat ionship of t hc

ncw corn poncrit to ot her coniponents ir i the rcposi tory ancl records the relat ionship

in the repos i t o r .

Both Interpreter. and the Simulation Tool interact with the browser to record

changes to TROM class specifications during the process of simulation. and debugging

in the dcbuqger mode. To specify the behavior ofsirnulated actions the user interface

rnay interact with the browser to fetch Larch/C++ specifications from the reuse

library. Whenever subsystems are required for a simulation mn, the browser may be

invoked to retrieve a subsystem based on information such as includecl TROM names,

and port links.

If the system is initialized for simulation in the defaault mode, the interpreter

let ches the necessary TROM classes, su bsys tem configurations, and LSL traits from

the browser and proceeds with the simulation. Once the systern is initialized for simu-

lation in the debugger mode, the lnterpreter recornpiles TROM classes, and subsystem

configurations, and the browser ensures that LSL traits are syntact ically correct, and

then resumes simulation. There is also a provision in the browser to invoke C++

compiler. This feature will be used in future when the TROMLAB environment is

ertended with a code generation environment. The Larch/C++ classes ~rovide the

framework to develop semanticaliy correct code.

Page 70: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 6

Reusing TROM LAB Components

h prototype relise search system to oporate within TROMLAB object repositories has

been built. In t liis chapter. we clisciiss the contents and st nict ure of rcuse repositories.

give the basic algorit hms for riavigation ancl query processing. ancl present the featiires

of VISTA visual interface featurcs.

6.1 Storage Structures

The repository is a collection fivc directories: LSL. LCPP. Subsystems and TROMS.

VISTA-C++. The directory LSL contains al1 relevant ".texw and Ysl" trait files; LCPP

contains al1 " .lcc.texV and ".lccq Ries for al1 the LCP P Specifications; VISTA-C++ has

five directories Stagef. Stage2 Stage3. Stage4 and Stage-5; TROMS contains al1

the TROM files. Subsystems contains al1 the Subsystem files.

The directory Stage-1 ha in turn two directories: Assumes and Includes. The

directory Assumes contains five programming files for the queries of assumes relation

(see below) and three data files. The Includes directory contains six programming

files and three data files.

1. Assues directory

(a) Data file descript ions:

O assumes .dat contains the set of tupies, where each tuple is a trait in

the assumes relation followed by the traits related to it by the assumes

relation.

Page 71: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a trait-ass . dat contains only those LSL traits which have non-empty

assumes relation.

closure. dat contains the (0, l ) matrix representation of the assumes

relation.

(b) Programming file descriptions:

hierachy.cpp which on execution gives the hierachy representation

of the assumes relation for a given LSL trait.

intersection. cpp which coniputes the common LSL traits that two

LSLtraits assumes.

a traitaxist .cpp wtiich checks i f the given trait is already in the as-

sumes relation or not.

matrix . cpp which on cxecut ion gives the transitive closiire o l the as-

sumes relation and also the total number of traits in the assunies

relation for a given LS L trait.

a assumed. cpp which on execution gives tlie number of traits and the

list of trait names assumed by a given trait.

2. Includes directory

(a) Data file clescriptions:

a 1nputFile.dat contains tuples, wherc each tuple is a trait in the

includes relation followed by the traits related to it by the includes

relation.

a TraitFile .dat contains dl LSL traits for which the includes relation

is non-emp ty.

a matrkdat contains the (0,l) matrix representation of the includes

relation.

( b ) Programming file ciescrip t ions:

h-tree.cpp which on execution gives the hierachy representation of

the includes relation for a given LSL trait.

O common. cpp which gives the cornmon LSL traits included by two LSL traits.

Page 72: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a relation. cpp which on execution gives the transitive closure of the

includes relation for a given LSL trait and also the total number of

traits it inciiicies.

r paramtr.cpp which on execution with a trait in the form A(p for X, q

for Y) returns the filename of the trait matching the trait substituted

wi t h the given act ual paranieters.

a existence. cpp which on execution checks if the given trait is already

in the trait file of the includes relation or not.

included. cpp which on execution gives the number of traits and the

list of traits a given trait includes.

The directory Stage2 has two sub-directories: Imports and Uses. ïhe Imports clirectory contains one programming file and ttiree data files. The Uses directory

coritains t hree programming files and t wo data files.

L. Imports directory

(a) Data file descriptions:

a Imports . dat contains tuples. where rach tuple is a Larch/C++ spec-

ification followed by Larch/C++ specifications related to it by the

imports relation.

LSpecif i c a t i o n s . dat contains al1 the LCPP Specificatiotis having

non-empty imports relation.

a Impo~atr ix . dat contains the (0 , l ) matrix representation of the im-

ports relation.

( b) Programming file descript ion:

Relnimports. cpp which on execution gives the transitive closure of

the imports relation for a given LCPP Specification.

2. Uses directory

(a) Data file descriptions:

uses. dat contains the LCPP Specifications in the uses relation and

the related LSL traits.

Page 73: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

r Lspecif ications . dat contains LCPP Specifications which have non-

empty uses relation.

( b) Progamming file descriptions:

a Reh-uses . cpp which on execution gives the transitive closure of the

uses relation for a given LCPP Specification.

r Hierachywses . cpp which on execution gives the hierachy represen-

tation of the uses relation for a given LCPP Specification.

O Usad-by.cpp which on execution gives the iist and the number of a11

LCCP Specificat ions which uses a given LSL trait.

The directory Staged has the version files for LSL traits and also contains the

programniirig files for the qiieries of "version of" relation and one data file. The data

file Version.dat contains tuples, where each tuple consists of a trait followed by its

versions iii t hc "version o f relat ions hi p. There are t hree programrning files:

a query-versionaf . cpp wbich on execution with a trait A and a version V of

A will find the versions of V in the hierarchy rooted at A.

versionriosure. cpp which on execution with a trait A. and a version V of

;\ will find the transitive dosure of the version V in the "version of" relation . When the version V is not given, the prograni outputs ail the versions of A.

a hierachy-versions. cpp which on execution with a trait A and one of its ver-

sion V will find the hierachy of the version V. If the version is not given, then

the hierachy of versions for the trait A is given.

The directory Stage-4 has the programming files for updating version files of LSL traits. It uses data files from Stage3 clirectory. The programming files are:

Addit i o n s . cpp which on execution with a trait A and a new version VL of V,

adds version VL as a version of V in the hierarchy rooted at A. If the version V

is not given theo V1 is addecf as a new version of A.

0 Delet ions .cpp which on execution with a trait A, a venion VI of version V,

deletes version Vl. If version V is not given, then VI is assumed to be the first

level version of the trait A and is deieted from "Versioo.datn file.

Page 74: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

O A d d ~ t r a i t . cpp which on execution adds a newly composed LSL trait to the

"Version.datn file, by checking if it is a valid LSL trait and it also creates a

version file for that LSL.

At present the reposi tory does not have version files for Larch/C++ specificat ions.

When they become available, they will be organized and manipulated similar to the

way LS L traits have been organized.

The directory Stage5 has two directories TRDMS and SCS. I t contains eleven pro-

grarnming files and five 4at.a film The data files are:

r SCS . dat contains subsystern names.

r SCS-TROMS . dat contains tuples. wliere cach tuple is a subsystem followed by a

list of instantiated TROM objects.

r SCSDATA.dat contains tupies, where each tupic is a subsystem foilowed by

subsystems included in configiiririg it.

TROMS . dat contairis the list of TROM narnes.

O Tromdata. dat contains tiiples. where each tuple is a TROM name. followed by

a list of parameters and a list of traits it includes.

The prograrnming files are:

O h-assumes . cpp which on execu tion gives the hierachy relationship of the as-

sumes relation of the LSL traits included in a given TROM.

r hincludes. cpp which on execution gives the hierachy relationship of the in-

cludes relation of the LSL traits t hat a given TROM includes.

h-versions . cpp which on execution gives the hierachy relationship of theaversion

of" relation of the LSL traits that a given TROM includes.

O Query2 .cpp which on execution gives the transitive closure of the includes

relationship for a given subsystem.

a Query3. cpp which on execution determines al1 the TROM objects instantiated

in a given subsystem.

Page 75: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

r QueryA.cpp which on execution shows the port links in a subsystem.

r Queryd . cpp which on execution gives al1 the subsystems which include a given

T'ROM.

O Query-6.cpp which on execution determinesall the traits included in theobjects

within the given subsystem.

r AddaScS. cpp which on execution adds a given TROM file to the directory of

TROPVIS.

a Adda-TROKcpp which ori execution adds a given subsystem file to the directory

SCS.

r Querysersion . cpp which on execution with a TROM. which is an inheritance

of ariot her TROM, gives the TROM nanie in the "iriheritance or' relat ionship and

also the type ol t he inheritance (eit her behavioural. extensional or polymorphic).

6.2 Larch Reuse Environment

When VISTA is invoked to compose a new LSL trait, an LSL De.ueloprnent PVindow is

provided to the user. Both LSL and LCPP tlevclopment windows have basically the

same fiinctionality: the differences will be noted. See Figures -10, 46.

The Deueloprneat tvindolv consist s of a srollable editable speci fiçat ion text area,

and a non-editahle file path text field. The Specifieation text field indicates the

corresponding LCPP specification file of the currently loaded LSL trait into the De-

velopmed CVindow. The full directory of the path name of the selected file is shown.

The scrollable text area is where the text of the specification is developed. As ex-

plained in t hc previous chapter, only traits in the venion repository can be modified.

When the modification or composition of the specification is complete, the user can

submit it for syntax checking, and then Save the file before quitting. The options on

the window are used to achieve the following functionalities:

a Loading a known specification.

r Composing a new specification.

a Editing a specification loaded h m venion repository.

Page 76: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a Checking the syntax of a irait. The output of the syntax checker is displayed

in a text window.

r Checking the axioms in a, trait using LP. The Larch Prover interface results are

displayed in a text window.

0 Saving a file after edit ing; the file is saved under the same file name.

r Saving a file with a new file name.

r Exiting to the main window.

Browsing and inspecting a selected trait can be done independent of any develop-

nient nctivity. An important featurc of VISTA is the provision of templates for LSL traits. The ternplate shown in the Developrrienl I.l.fndo.uy is the LSL template. Each

section of the template is labeled by a keyword. The user must enter the keyword

and the piinctuations in the respective sections bcfore cntering the text appropriate

to the section. The template Eeatiire allows the user to edit any of the scroilecl areas

of tlic specification. 'The -ResetY button may be clicked at any instant to retiirri the

specification to the state it was in when originally loadecl irito the template. LSL traits have t wo relat ionships: includes and assumes. The includes section lists al1

traits that are necessary for coniposing the ciirrent trait. The seniantics of an in-

cliidecl trait is that the signature, equations and theories implied by it and those of

al1 the traits transitively included in it are imported into the current specification.

The semant ics of assumes is slightly weaker: t here is a proof obligation. in the sense

that any trait that irnports a trait with an assumes clause cannot have the implied

theories automatically included; they need to be proved. The "Help" facility of the

browser provides on-line implementat ion of the semantics.

Bot h includes and ussames relations are irreflexive, antisyrnmetric and transit ive.

The transit ive closure of inchdes( assumes) can be compu ted using Wars hall's algo-

rithm [LOI. This closure includes al1 pairs (A, B) such that A ilcludes (assumes) B.

Similar statement is t rue for assumes. During design, several uersions of an LSL trait

may be created. The relation "A is a version of B" is reflexive, antisyrnrnetric and

not transit ive.

In Figure 24, B is a uersios of A, C is a version of B, D, E are versions of C

and F is a uersion of D and E. Both hcludes and assumes axe static relationships.

Page 77: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 24: DA(; of Versions

Traits: Set BW Container SetV BagV ConV

Set1 Set2 Bagl Ba@ Con1 Con2

A V A Set3 Set4 Bag3 v con3 Con4

set5

Figure 25: Version List of reusable LSL traits

Page 78: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Includes List:

Figure 16: includes List of LSL traits

Assumes List:

Figure 27: assumes List of LSL traits

Page 79: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Version Includes Assumes File.1~1 List List List

1 Set ( SetV 1 seth ( ~ e t ~ s 1

Figure 28: Table as a Data Structure

However. the uersio-rc relationship is dynamic. For each trait in the library, several

uerrions as sliown in Figure 25 may exist. The uersion files are not part of the reusc

library. Hawever, each LSL uersion will have its own iiicludes list. assumes list, and

uersion list. I f we were to maintain the includes list, assumes list, uersion list for each

LSL trait in niachine memory, the data structures shown in Figures 25. 26, 27, 28

woultl be appropriate. Figures ?ô and 27 show the template for a collection of linked

iists for three LSL traits Set, Bag and Container. The table in Figure 28 has four

entries per row, where each entry is associated with an LSL trait: The First entry is

the narnc of a trait: the second entry is a pointer to the uersion Iist of the trait; the

third entry is a pointer to the incfudes list; and the fourth entry is a pointer to the

assumes Iist. Figure 29 illustrates a comprehensive storage organization for a sample

set of reusable components. The data structures in t hese Four figures also portray the

various files that we maintain in the repositories and their interrelationships.

Whenever a uersioa Y of the LSL trait X is created, Y is inserted in the versions list

of X, an entry for Y is made in the table and pointer to the includes and assumes list

are recorded in the table. Note t hat the files t hemselves are stored in their respective

directories and only pointers are kept in the table. Whenever a version Y of X is

Page 80: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Set a 4

Inchdes List:

Version Includes Assumes List List List

1 1 i

Version List:

S yrn bolTable Nash

Figure 29: An Example Data Store of 3 Files

SyrnboITabkln HwhMupln BTreeDictJn ( S y mbolTablc l ln SyrnbolTable2In l I

Bo01 Btne Boot 1 Bo01 1 I

Page 81: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Jsl File

New Old

File File' File Fie'

Figure 30: Notion of Save

deletecl. t heri t lie following changes are niade to the data structures.

a Y is delcted from the version list of ,Y.

a The entry for Y from the table is removeci.

These relationships among LSL traits may be viewed at any t imr by querying the

system. The different contexts for saving aii LSL file is shown in Figure 30.

A @ e r g Session Wind0.u as shown in Figure 52 may be created at any time

by the user to query the properties of the specification in the repository. In this

window. there is a radio button corresponding to each query. A query is stated in

natural language against the button. By clicking on a button, the user is asking for

information against that query. The systeni opens up a dialog box for the user to

input the parameters required to pmcess the query. Upon complet ing the dialog box

information sections. the user must click on "Apply" button to activate the search

methods for retrieving the information from the repository. The system response is

displayed in a text window. The following sequence of dialogs leads to query selection:

1. If the user chooses Query on LSL traits, the user is asked to choose one of

the following:

Query on includes or assumes relation of LSL traits

Query on version relationship on LSL traits

Page 82: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

0 Exit

a Close - go to previous menu

2. If Query on includes o r assumes relation of LSL traits is chosen, the

user is asked to choose one of the following options:

a Query on includes relation

a Query on assumes relation

a General information (Statistics j

a Exit

a Close - go to previous menu

3. query on includes relation - The following queries are answered here:

a Query-1 Find the transitive closure for the inchdes relation. The niimber

of traits includetl in a particular trait is also given as part of the response.

'ïhc member h n c t ion Query-l() of the ciass QH-LSL processes tlic above

query.

a Query-2 Find al1 the LSL traits that includes a particiilar trait and also

the niimber of traits. This query requcsts the ircluded by relation. The

rnember function Que y-.>() of the clasv QH-LSL processes the above

qiiery.

a Query-3 Find the hierachy relation for each trait in the includes relation.

The member hnct ion Query-30 of the class QH-LSL processes the above

qiiery.

Query-4 Find the common traits included by two given traits. The mem-

ber function QueriJ-60 of the class QH-LSL processes the above query.

Query-5 Civen a trait namc with parameten, replace the existing pararn-

eters in the trait file and put the modified file in a temporary file.

The rnember function Query_J() of the class QH-LSL processes the above

query.

4. Query on assumes relation - The following queries are answered here:

Page 83: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

0 Query-1 Find the transitive closure for the assumes relation. It also gives

the number of traits a particular trait assumes . The member function Query_6() of the class QH-LSL processes the above

query.

0 Query-2 Find al1 the LSL traits that assumes a particular trait and also

the number of traits. It requests the assumed 69 relation.

The niember function Query_'l() of the class QH-LSL processes the above

query.

0 Query-3 Firid the hierachy relation for the trait in the asstmes relation.

The rnernber fiinction Q u e r y B ( ) of the class QH-LSL processes the above

query.

0 Query-4 Find the comrnon LSL traits assumed by two given traits.

The mernber function Query_S() of the class QH-LSL processes the above

y iie ry.

5. General Informat ion - The following queries are answered here:

0 Query-1 Find i f the given trait is already in the trait file of the includes

reiat ion or not.

The mernber function Query_lO() of the class QH-LSL processes the

above query.

0 Query-2 Find if thc given trait is already in the trait file of the assumes

relation or not

The member function Query_I 1 () of the class QH-LSL processes the

above query for assumes relation.

O Query-3 Find the number of traits that includes or assumes a particular

trait.

The member function Query_l() of the class QH-LSL processes the above

query for includes relation and the member function Query-60 of the clavs

QH-LSL processes the above query for assumes relation.

a Query-4 Find the number of traits included by or assumed bg a particular

trait.

Page 84: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

The member function Queryd() of the class QH-LSL processes the above

query for included by relation and the member function Query-70 of the

class QH-LSL processes the above query for assumed by relation .

6 . Query on version relationship on LSL traits - The following queries are

answered here:

0 Query-1 Find the transitive closure of the version V o l trait A in the

uersioa of relations hi p.

The meniber function Q-ueryX?() of the class QH-LSL processes the

above qtiery.

0 Query-2 Find the hierachy of the version V . of a given trait A. If the

version V is ornitted find al1 the versions of A.

Tlic member function Querr/_lJ() of the class QH-LSL processes the

above query.

0 Query-3 Given A. the root ol a version tree. and a version V oE A. find

al 1 the versions ol =L

The member fiinction Querc~_l I ( ) of the class QH-LSL processes the

above qiiery.

6.2.1 How queries are answered?

The data st riict lire shown in Figure 28 is a good descript ion of LSL files had t hey been

storecl in ternally in machine memory. For an understanding of query processing, t his

cliagramrnatic representation is helpful. Sce Appendix A for the full path names of

directories and files. The table in Figure 28. which portrays the relationship of files

in these directories, consists of a main index of LSL traits. Each row has three indexes

where t lie first is an index list of version filenames of the LSL trait. the second one

is a list of includes clause of filenames and the third one is a List of assumes clause

of filenames. The main index has a Bag which indicates whether the file is protected

or unprotected. The protected files are those that are in the LSL reuse l i b m y and

the unprotected files are the versions or new files created by users. So whenever the

user wants to browse a file, the includes list of hyperlink file narnes are provided for

the includes clause dong with the ue-rsh filenôme links, if any. Similady, the as-

sumes List of hyperlink file narnes are provided for the assumes clause dong with the

Page 85: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

version filename links. The t hree relat ionships assumes, includes, and version have

same abst ract propert ies: irrepexive, antisymme hic, t ransitiue. We use Wars hall's

algorithm [IO] to compute the transitive closure of a generic relation represented by

a (O,[) matrix. ancl instantiate this to realize the traits in the three respective rela-

t ionships. These relationships are precomputed; t hey will be updated automatically

aRer changes occur in the version repository. Based on the file structures given in

hppendix -4, and the precomptited relations, the queries are handled. An informal

description of query handling met hods is descri bed below:

Querying the LSL library

r Query-1 Civen a trait h to output al1 the traits ancl the number of traits

which A includes.

The qiiery is answered as follows:

WC search the file niatti.r.dat [or trait A. and display the traits corrcsponding

to the value 1 in the row of trait A. The prograrnming file rnatrizcpp in the

directory "VISTA-C++/Stage-i/assumesn cornputes the resporise to the query

for t lie asswnes * relation and the programming file relation.cpp in the direc-

tory "VISTtI-C++/Stage-L/incliides7 answcrs the above que- for the includes * relation.

r Query-2 Civen a trait A to output ail the traits and the niimber of traits

incliiclccl by A.

The query is answered as follows:

We search the file rnatrkdat for trait A, and display the traits corresponding

to the value L in the column of trait A. The programming file assumed.cpp

in the directory "VISTA-C++/Stage~l/assumes~cornputes the response to the

query for the assumes* relation and the programming file included.cpp in

the directory "VISTA-C++/Stage-l/includes3 answers the above query for the

includes * relation.

a Query-3 Civen a trait A to check if the given trait is in the trait file of the

(includes/assumes) relation.

The query is answered as follows:

We search the file trait-ass.dat for trait A, and display if the trait exists or not.

Page 86: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

The programming file trait-esist.cpp in the directory "VISTA-C'++/Stage-l/assumes"

cornputes the response to the query for the assumes* relation and the pro-

gramming file etist eaee.cpp in the directory "VISTA-C++/Stage-l/includesV

answers the above query for the includes* relation.

a Query-4 Civen two traits,to find the included traits common to them.

The query is ariswered as follows:

bVe search the file rnatri.r.dd and find the transitive closure of bot h the traits

aiicl I tirri litid the traits coiliriioii to t hem. The progronittiitig file iti lerseclion. q p

in the directory "VISTA-C++/S tage-1 /assumesn answers the above query for

the assumes* relation. The progamrning file cornnion.cpp in the directory

-VISTA-C++/Stage-l/includes" rcsponds to the above qucry for the includes*

relation.

O Query-5 Given a trait in the lorm A(p for X,q for Y). it is reqiiired to return

the filenarnc niatching the trait substittited with the given actiial paranieters.

The query is answered as follows:

Wr! search the InputFile.dut to see if the trait exists with the given number of

parameters. If a match is not foiind retiirn an error niessage saying t hat the

trait is incompatible with the given number of parameters. or does not exist.

tlowever. if a match is found a copy of the trait's file is niadc in a temporary

file and the parameters p for X and q for Y. are substituted in the text of the

trait and t hc user is provided wit h the ternporary filenanie. The programming

file pnramtr.cpp in the directory "VISTA-C'++/Stage-l/includesY answers the

above qtiery for the inclttdes relation.

Querying the Versions

O Query-1 Givcn a trait A and a venion V of A to find the corresponding venion

in the version of relationship.

The query is answered as follows:

The query can be answered only if the venion V is not in the first level because

the solution for this query should only be a version and not the name of the

trait. The version file for the given trait A is opened and the (0,L) matrix

for the versions is formed and then the versions that V was derived from are

Page 87: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

sent to the screen. The programming file query-version-okcpp in the directory

'VISTA-C++/Stagefn processes the above query.

a Query-2 Given a trait A, and a version V of A , find the transitive closiire

of the version V in the oersion of relation . I l the version is not given ,then

output al1 the versioris of A.

The query is answered as follows:

if both A and V are given. the program outputs all the versions transitively

iiicluded in V. tlowever if oiily A is given. thcn for each version of h (in the

first level as given in Lrersion.da[ file), we cornpute and output al1 versions

transit ively inclucled in it . The progranirning file version-closu*m.cpp in t lie

directory VISTA-C++!Çtage3" processes the above query.

a Query-3 Civen a trait A and one of its venion V filid the hicrachy of the

version V. IF t h e version is riot given, then display the hierachy of versions for

trait L!.

The qoery is answvered as follows:

In order to fincl the first level versions of A . tlie file Gérsion.dat is used and the

hieractiy for t hose versions are obtained from t lie version file of t lie trait. If the

version is given then only version file of the trait is used. The programming file

hie mch~uersioris.cpp in the di rectory "VISTA-C++/S tagef" processes the

above qucry.

Updates to LSL Versions

It is possible to add or delete a version to the version file of the given trait. A file

consisting of a set of traits and their first level versions arc in the file Version.dat

in the clirectory *VISTA-C++/Stage-~l". Each LSL trait has itTs own version file as

explainrd earlier. Al1 the version files are in the directory "VISTA-C++/StageAfl.

a Query-1 Given a trait A, a new version V1 can be added as a venion of V. If

V is not given then VL is added as a new venion of A.

The query is answered as follows:

The version file for the given trait is opened and the (0,l) matrix for the version

relation is formed . The new version VI is added as a venion of the already

Page 88: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

existing version V and then the corresponding changes are made to the version

file of the trait. I l the version V is not given then it is added as a new version to

the version file. The programming file Addition-u.cpp in the directory "VISTA-

C++/StageAn processes the above query.

0 Query-2 Given a trait A delete the version V l which is a uersion of V. If V

is not given. then VI is assumed to be the first level version of the trait A.

The query is answered as follows:

The version tile for the given trait is opened and the (0, l) mat rix for the version

relation is formecl . The version V 1 which is the version of the aiready existing

version. V is deletecl anci t hen the corresponding changes are made to the version

file of the trait. If the version V is not given then changes are made to the

Version.dat file. The programming file Ueletion-u.cpp in the directory *VISTA-

C'++/Stage-$' processes the above query.

0 Query-3 To add a new trait A to the Vers ioda t file.

The query is ariswered as follows:

ï h e given trait is validatecl to check if it is a trait. if it is not already present

in the I/'e.rsion.dat fi le t hen i t is added to the file. The version file for the trait

is also forrnccl. The prograrnming file Add-a-trait.cpp in the directory"V1STA-

C++/S t age-4" processes the above query.

6.3 Managing LCPP Files

The Specification Deuelopmenl window for LCPP specifications has features similar

to the LSL development window. The major distinction is the template structure.

The LCPP template is showri in Fi y r e 46. When the template is displayed in "Edit"

mode. any of the scrolled text areas can be edited. Functions are listed in the Func-

lions list. To view or edit a function. double click on that lunction in the list, and the

function template will appear. After editing the text in the function template, click

"ApplyF to record the change and close the function template. By clicking "Reset",

instead of 'Apply", the text is not changed. The button "Close" can be used at any

time to close the function template without making change. To create a new mem-

ber function of a class, click on "New". A function template wili be opened. After

Page 89: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

entering the text, click "Apply". The new function is added to the function list in

Fun ct io ns.

An interface specification allows one or more other specifications to be imported.

As an example. the interface specification RWZone shown in Figure 31 imports type-

defs, another Larch/C++ interface specification. RWZone is a partial specification

for the Rogue CVave description of Zone classes (561.

The langiiage does not allow an interface specification to import itsell. Moreover,

if a specification A imports specification B and the specification B imports another

specification C t hen A imports C. This transitive relationship is not permitteci to

include cycles. As ex plained iri the previous section. t his relat ionship and i ts transit ive

closure are computecl and saved in LCPP repository. The Imports area in the LCCP tcmplate Iists all LCPPs importcd by the LCPP being edited (or cornposed) in the

template. Whcnever the text in t liis area is edited, aricl the changes are recorcled. the

relations hip in t hc rcposi tory is redefinecl.

An interface specification sets up a link to Larch tier through the uses clause.

For exarnple. the uses clause in RWZone mentions three traits: Zone, Time. String.

hIorcover. the paratneters for Time. and String are specifiecl. In general, the uses

clause lists al1 the LSL traits and the actual parameten to be used for each trait.

'Rie L k s box in the LCPP ternplatc lists t h e traits used by the LCPP coniposed

(or edited) in the window. The text in t his box can be edited: parameters for traits

rnay bt. refined. traits may be added or removed from the list. At t lie t ime of edi t ing

tliis box. the LSL window rnay be opened to view the traits listed in the box. After

complet ing an edi t ing session the changes made rnay be commit ted. t hus recording

the revised LCPP. Alternately, the status of the box rnay be Left unchanged.

An interface specification rnay be refined to another interface specification pre-

serving the list of imported specifications and the list of LSL traits used in the speci-

fication. For example, a specification F obtained by modifying one or more member

functions of an interface specification C is a refinement of Cr. Another possible way

of refinement is to let F include al1 member functions of G and have new rnember

functions which use the same LSL traits used by G. Bath types of refinements Lead to

a new version. it is easy to see t hat the uersion relationship on the set of al1 LCPPs is bot h irrefiexive and transit ive. The hierarchical dependency of version relationship is

computed using Warshail's algorithm [IO]. A hierarchy can be viewed or traversed. A

Page 90: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

typedef int Zone; typedef int RWCString; imports typedefs; struct RFVDaylightRule; extern Zone local; extern Zone standard; enum DstRule NoDST, NoAm, WeEu; extern RWDaylightRule *rules[J]; enum StclZone zone;

abstract class RWZone I uses Zane. Time(RWBoo1ean for Bool), string(RWCString for C); public:

virtiial int t imeZoneOffset()

( eiisures r e s d l = ~el/^.s tandardO/ / se t ;

1

virtiial int aitZoneOffset()

t ensures result = ~e l f .DST0 f f d e i :

1

virt iial RWBoolean day light Observecl()

l ensures result = duglightObserved(sei~);

}

virttial RWBoolean isDaytight(const struct tm* tspec)

{ requires dayfighlObserved(self) A (*tspec)'.trn-wduy = tueek-(day(date((*tspec).tmday, ( * t ~ p e c ) ~ . t m m m t h (* t~pec)- . tm-gear) ) ) ; ensures 31 : Tirne(resu1t = ( t = get((tspec*)*))A obser.vedDST(t.gear. s e l f ) < > NON ~(observedDST(t .yeor . del f) = A H E A D * (cmvert( t ) >= convert(6egin DST(t.year, self ))A convei*t(t) <= convert (endDST(t.year, 3 e l f ) ) ) ) A (obsentedDST(t.year, s e l f ) = B E H I N D * (convert(t) <= con.vert(beginDST(t.y ear, self))^ converi(t) >= convert (endDST(t . year, se l /^) ) ) ) ) ; } ...

Figure 31: Lad@++ Interface Specification for RWZone

Page 91: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Imports List:

Figiire 32: ,411 Example of imports List of LCPP F i b

version may be addecl or deleted from a hierarchy by namiag the root of the hierarchy

and the immediate predecessor of the version; see query struct urcs below.

M e r completing the editing of the boxes in the LCPP template. click *CenerateV

to generate the edited specification in the text area of the *Development Window'.

W hen a new specificat ion is generatcd. the system recomputes the relat ionships b c

tween the new LC'PP \vit h LSL and ottier LCPPs. The relationships of the rcvised

LCPP to ot her coniponents in t hc relise repository are recordecl by changirig the file

pointers associatecl wi t h t lie LCPP. It is easier to understand the changes by following

the links in the striictures shown ir i Figures 32. 33. 51. By clicking on "Rcvcrt", the

specification is reverted to the text it was when loaded in the tcrnplate. The template

can be closcd by clicking on "Close" wit hout recording any of the changes.

h Query Session tVindo.w a s shown in Figure 52 may be created at any time by

t hc user to query the propcrties of the LCPP specifications in the repository. In this

window. thcre is a radio button corresponding to each query. A query is stated in

nat ural language against the but ton. By clicking on a but ton, the user is asking for

information against that query. The systern opens up a dialog box for the user to

input the parameters required to process the query. Upon completing the diaiog box

information sections, the user rnust click on 'Apply" button to activate the search

methods for retrieving the information from the repository. The system response is

displayed in a text window. The following sequenceoldiaiogs leads to query selection:

RWDateImp

1. If the user chooses Query on LCPP, the user is asked to choose one of the fol-

lowing:

RWCollectableIm~

m Query on irnports or uses relationship

RWHashtableIrnp RWTimeImp RWZoneImp

RWZone RWFile r

RWCollec tion RWZone typede fs

Page 92: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

RWFile RWZone

RWDate RWFile RWZone

Figure 33: Version List of reusable LCPP files

Qucry on version relationship

Exit

Previous Menu

2. I F Query on imports or uses relation is chosen. the user is askecl to cboose

orle of the following options:

Query on irnports relation

Query on uses relation

Ceneral information (Statistics )

a Exit

a Previous Menu

3. Imports , Uses, and Version Relations - The following queries are answered

here:

Query-l Find the transitive ciosure of the imports relation for a given LCPP S peci ficat ion.

Page 93: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

edit hprts Ud edit &es Ud edlt member Ilinctiom

I snve as new file î" save as uew üie f (not a version) (F is a vetsion off)

1. Updatc Table 1. Updating the version file off 2. Update Table

Fi y r e 34: Notion of Save

The membcr function Q u e r y - f () of the class QH-LCPP processes the above

query.

a Query-2 Fintl the transitive closure of the uses relation for a given LCPP

Specification . The niember function Q u e r y ~ ) ( ) of the class QHLCPP proccsses the above

cpery.

r Query-3 Find the tiierachy representation of the irnports or uses or version

relation for a given LCPP Specification .

The member function Query-SI) of the class QH-LCPP proccsses the above

query.

0 Query-4 Find the list and numbcr of LCPP Specifications which uses a given

LSL trait.

The member function Query-40 of the clas QH-LCPP processes the above

query.

6.3.1 How queries are answered?

In the current repository we do not have versions of LCPP specifications. So, we

rest rict to queries on the ot her two relations.

Query-1 Given a LCPP specification A, output dl the LCPP specifications

imported (used) by A.

Page 94: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

The query is answered as Eollows:

We search the file Impo-matrk.dal and display the specifications which have the

value 1 corresponding to the specificat ion A. The programming file Reln-imports. cpp

in the directory "VISTA-C++/Stage2/importsn answers the above query for

the irnp0i.t~ ' relation . The programming file Reln-uses.cpp in the directory

"VISTA-C++/Stage2/usesn answers the above query for the uses* relation.

r Query-2 Gven a trait. output al1 the LCPP specifications which uses A.

The qiirry is ariswered as lullows:

CVe display al1 the LCPP specificat ions which have the LSL trait in the uses rela-

tion. The programming file used-5p.cpp in the directory "VISTA-C++/Stage2/usesn

answers t hc above qcicry for the uses" relation.

r Query-3 Giveri a LCPP specification A. fincl the other LCtPP specifications

which are imported by A .

T h e que- is answered as follows:

WC scarch the file Imports.dat for the L C P P speçifiçation and return al1 LCPP

spccificatior~s following the LCPP specification A.

r Query-4 Civen a LCPP specification A. find the hierachy of the LSL traits

that A iiscs. Ttie query is answered as follows:

The hierachy algorithni iised for the inchdes relation is used. In order to find

the fint level traits that h uses .the file Imporhia i is used and the hierachy

for those LSL traits are obtained by using InputFile.dat for al1 other traits.

6.3.2 Managing TROMs and Subsystems

The template For TROM is identical to its textual structure and is shown in Figure 49.

A TROM class can be viewed or edited in this template. The text of LSL traits

included in the TROM currently loaded in the template can also be viewed; however,

they cannot be edited. in order to edit traits included in the TROM currently viewed

in the ternplate, the user should first invoke the SpeciJcation Development Window

for LSL, load the trait to be edited in that window, edit and Save it. When the TROM is reloaded in i ts template the modified trait will be part of its description.

Page 95: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

The ternplate for a subsystem is shown in Figure 51. This is identical to the

specification template shown in TGC Example. A subsystem can only be viewd in

this template. The GUI of TROMLAB need not be invoked for editing or composing

a subsystem.

6.3.3 TROM relationships

Two TROMs may be related through one or more of the following properties:

O 'I'hey share a nonempty subset of traits.

O One of them incliides a trait A which is a version of trait B included in the

othcr trait.

O 'Th- &are a nonenipty subset of port types.

rn They sliare the same set of external (input/output) eveiits.

In atltlition. there may exist relationship at the object level: an object of a TROM

class .-I and an object of a TROM class B arc related by the fact that they are both

incluclecl in a subsystern.

The TROM t heory [I l defines t hree kinds of siibtypc inheritance relationship.

which in turri procluce three kirids of venioning for a TROM class. The inheritance

propertics should be checked by the user; the browser only manages versioris. A b i e f

infornial basis on which versions may be based is given below: consult [II for a forma1

treatment.

inheritance is a relationship hetween two classes. Since a class represents a TROM,

a subclass defined by inheriting a class also represents a TROM. In other words.

inheritance helps to define a TROM using the class definition of another TROM. A

forma1 definition of inheritance in the framework of the TROM mode1 is given below.

Inheritance

Let C' be a class representing a TROM A' = (Cf . 8'. .Yf, 7', W . A', Y'). Let C be

a class derived from Cf by inheritance. Then the TROM represented by C is defined

as A = ( C , 8 . X . T . @ , A. Y)such that,

Page 96: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

where t means redefinition.

It follows from the definition that, al1 the cvents, states, and traits in the parent

class are available in the child class. New events. states, and traits rnay be added.

FIowevcr. tlierc is no means to block an event. a state. or a trait from beirig intietited.

With regarcl to the attribiite set. new attribiites rnay bc introcliicetl or the types of

the existing attribiites rnay bc modified. Similarly new state hierarchy function or

attribute fiinction rnay be addcd or the existing functions be modifiecl. :\lso riew

transit ion specificat ions and t irne-const raints rnay be introcluced or t lie exist ing ones

rnay be rnodified. CUI provides the facili ties for verifying inhcri tance relat ionship.

Sultyping ensures some form of behavioral relationsliip bctween two types. Hence

siibtyping is defined in terms of the relationship betwcen the computations of two

types. 'The notion of subtyping is useful for modular reasoning. That is, a property

verifietl to be true in a type T will necessarily be trite in a subtype of T. Modular

reasoning can be iisefiil in ttie design and verification of concurrent reactive systems

sincc verifiecl subsystems can be put together to build larger systerns without reprov-

ing already provecl proof obligations. For example, checking that an object Qi is a

siibtype of object O2 requires one to make sure that use of object Oi does not in-

validate any assumptions made about the behavior t h a t one could derive lrom t h e

specification of object O*. tntuit ively, if A is a subtype of B t hen A preserves al1 the

properties of B. The three kinds of subtyping are:

Behauioral-subtyping: ensures the principle of substitut ivity and preserves al1

the pmperties of the supertype. An important purpose of behavioral-subtyping

is to move from an abstract level to a detailed level by adding more cornputa-

tional behavior.

Page 97: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a Eztensioaal subtyping: does not ensure the principle of su bstitutivity. How-

ever, al1 the properties of the supertype axe preserved. Exterisional subtyping

provides more detail for state-space, differentiating individual states into sub-

states and possibly provides more cvents enriching the signature and behavior

of ports. An important purpose of extension to speciaiize a common supertype

into variants possibly. by introducing additional stirnulus-response behavior.

a Polymorphic subtyping ensures the substitutivi ty principle. That is, any object

conforrriirig to a polyrnorphic-subtype can be used whenever an objcct coa-

lorming to the supertype is expected. Polymorphic Y iibty ping usually appears

where a supertype is used to characterize the common aspects of several types.

In this Form of subtypirig, a siibtype preserves the behavior of its supertype

in the cnvironment of the supertype. I-Iowever, the behavior is not guaranteed

to be preservccl in other enviroiirnents. Intuitively. this form of inheritance

corresponds to adding more features to an existing model.

6.3.4 Queries on TROMs and subsystems (SCS)

:\ riitniber of different relationships betwvmn su bsystenis could be clefined based on

the relationships among the TROMs composing it. The most important one is the

inchsion relationship; see Train-Gate-Cont roller example. Ot her relations include

the common TROMs instantiated, and refinernents. These are not eonsidered in the

present version of TROM LAB development environment.

The following queries are answered here:

a Query-l Find the hierachy relationship of the assumes relation of the LSL

traits that a given TROM includes.

The mernber function Query-f () of the class QH-TRSCS processes the

above query.

a Query-2 Find the hierachy relationship of the includes relation of the LSL traits t hat a given TROM includes.

The member function Quen@() of the class QH-TRSCS processes the above

q',"W

Page 98: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a Query-3 Find the hierachy relationship of the version of relation of the LSL traits that a given TROM includes.

The member function Query-3() of the class QH-TRSCS processes the

above query.

a Query-4 Find the transitive closure of t h e includes relation for a given SCS.

The member function QueryJ(J of t he class QH-TRSCS processes the

abovc query.

Query-5 Find al1 the objects instantiated by a given SCS.

The member function Q u e . y J ( ) of the class QH-TRSCS processes the

above query.

r Query-6 Fincl the port links in the given SCS .

The member function Query-G() of the class QH-TRSCS processes the

a bove qiiery.

a Query-7 Find al1 the Subsystenis which include the given TROCI.

The niember fiinction Queny-7() of the class QH-TRSCS processes the

above query.

Query-8 Find al1 the LSL traits incliided in tlie objects within the given Sub-

systcm.

The mernber function Q u e n y J ( ) of the class QH-TRSCS processes the

above query.

Query-9 Find the TROM name in the inheBtance of relationship ancl also the

type of the inheritance .

The mernber funct ion Que y-9(y) of the class QH-TRSCS processes the

above ciuery.

6.4 How the queries are handled?

VISTA supports the foilowing queries.

Page 99: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

O Query-1 Given a TROM narne, find if the TROM exists or not in the database

and if it exiets give the included traits and for each trait included in the TROM, show the includes hierachy, the assumes hierachy and the version hierachy.

The query is answered as follows:

We form the rnatrix representation for the TROMs and the LSL traitsit includes.

Wc use InputFile.dat , which contains the iacludes relation of a given LSL trait

to cornpute the includes hierachy. The assumes relation uses .4 ssunies. dat

and the version of relation uses Version.dat in order to forni the hierachy.

The programming file h-includes.cpp in the directory "VISTA-C++/StageSV

gi ves the includes hierachy. The prograrnming file h-assumes. q p in the direr-

tory *VISTA-C++ /S tage- 5" gives the assumes hierachy. The programmirig

file h-uerszoas. c p p in the directory "VISTA-C++/S tage-Sn gives the venions

hierachy.

9 Query-2 Given a subsystem A, determine the transitive closure of the includes

relationship for subsystem.

The query is answerecl as follows:

The included subsystems for the given subsysteni are extracted from the file

SC'S-Drlr4.dal and the union of the TROM objects instantiated are extractecl

[rom the file SCS-TROMS.dat . The programming file Q u e ~ 2 . c p p in the

directory *VISTA-C-t-tJStagc-5" processes the above query.

Query-3 Civen a subsystem. determine al1 the objects instantiated in the

subsystern.

The query is answered as follows:

The subsystem file is opened and the list of instantiated objects given under

the sub-title Inst: are displayed. The programming file Q u e r y - J . q p in the

directory *VISTA-C++/StageSW processes the above query.

a Query-4 Given a subsystem, show dl the port links in the subsystem.

The que- is answered as follows:

The subsystem file is opened and the list of port links given under the sub-title

Conjig: are displayed. The programming file Query-d.cpp in the directory

"VISTA-C++/S tage5" processes the above query.

Page 100: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a Query-5 Given a TROM, determine ail the subsystems which include this

TROM.

The query is answered as follows:

The file SCS-TRO~tlS.dat is used to form the (OJ) matrin having the subsys-

terns in the rows and the TROMs as columns. The corresponding subsystems

which have the value 1 for the given TROM are displayed. The programming

file Q w y S c p p in the directory 'VISTA-C++/StageJq processes the above

query.

a Query-6 Civen a subsystem, determine al1 the traits included in the objects

within the subsystem and for al1 the included subsystems.

'The query is answered as fol!ows:

ï h c list of included subsystems and the instantiated objects of each of the sub-

systcms are determinecl using t lie t wo data files SC'S- DA TA .dat and SC'S- TROiblS.dat

and t tien the list of traits are found iising t lie file Trom-data.dat . The program-

rnirig file Querg-üqp in the directory "V ISTh-C++/StageST processes the

above query.

it is possible to adcl a TROM file to the TROMs directory and adtl a subsystem

file to the SCS tlircctoty

r Query-1 Civcn a TROM file, add the file to the reuse repository.

The query is answered as follows:

The TROM file is scarined to get its name, its parrrneters and the list of traits

i t includes.

- Case 1: TROM name exists

Case 1.1 :List of parameters match

tf the TROM narne already exists in the file Ti0.m-dala-dat and the pa-

rameters and LSL name match. then no change to Trom-data.dat file is

necessary and the already exist ing file in the TRO Ms directory is overwrit-

ten.

Case 1.2 : List of parameters do not match

In case the parameters and the LSL narnes do not match in the file Trum-datadut

we find whether or not the given TROM file is a new version of the already

Page 101: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

exist ing one. If yes. t hen the version file is updated and the file is saved as

a new version in the TROMs directory; otherwise the old file is overwritten

to Save the new changes to the TROM file.

- Case '2: TROM Iiarne does not exist

If the TROM name does not exist in Trom,data.dat then the TROM is

added to the Tro.m,data.dat and TR0121S.dat files and the file is saved in

to the directory TROMs.

In al1 the above cases, if the new file includes new LSL traits then the files,

TraitFile.dat and Input File.dat are updated.

The progra~nniing file .-ldd-a-TROM.c.cpp in the directory "VISTA-C++/Stage-5"

processes t he a bovc query.

0 Query-2 Adcl a given SCS file to add the reuse repository

'The qucry is answerecl as follows:

The SC'S file is scanned to get tlie SCS name.and the list of objects instantiated

by i t and t h e subsystems inclucled by it.

- Case 1: SCS nanie exists

Cawt i. i : List of parameters match

If the SCS name exists in SCS.dal and the pararneters . the instantiated

objects and the included subsystcms match t hen the old fi le is overwri t ten.

Case L .:! : List of parameters do not match

Lf the SCS name does not exist and the iristantiated TROMs are al1 defined

then it is essential to find if the new file is a version file. If yes, the file is

saved as a version file and otherwise the old file is overwritten.

- Case 2: SCS name does not exist

Case 2.1: List of instantiated objects exist

if the SCS namedoes not exist in file SCS.dat but the list of TROM names

instantiated are present in TROib1S.dat then the file is saved in the direc-

tory SCS and the updates are made in the SCS.dat ancl SCS-TROMSdat

files.

Case 2.2: List of instantiated objects does not exist

If the SCS name does not exist in file SCS.dat and the list of TROM names

Page 102: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

do not exist in the TROMS.dat then an error message is displayed and

the file is not saved.

The programming file .-ldd-aSCS.cpp in the directory "VISTA-C++/StageSW

processes the above query.

Query-3 Given an LSL trait file to add the file to LSL directory.

The query is nnswered as follows:

The LSL file is scanned to get the trait name, its parameters and t hc list of LSL

traits i t includes.

- Casc 1: LSL namc does exist

Casc 1. L : List of LSL traits included matches

if the LSL name already exists in the file TraitFife-dut and the list of LSL

traits it includes match, t hen no change to InputFile.dat file is ncccssary

ancl the already existing trait file in the LSL directory is overwritten.

Case 1.2 : List of LSL traits included do not match

In case the iricludecl LSL names do not match in the file 1nputFile.dat a

question is askcd to find il the given trait file is a new version of the already

exist ing one. If yes. t hen the version file is updated and t hc file is saved as

a new version in the LSL directory and the user is questioned il the TROMs

that include t his LSL trait uses the old version or the tiew version . The

corresponding changes are made in the TROM files. If the given trait file

is not a version. then the old file is overwritten to Save the new changes to

the trait file.

- Case 2: LSL narne cfoes riot exist

If the LSL name does not exist in 7'raitFile.dnt then the LSL is added to

the TrailFile.dat and InpatFile.dat files and the file is saved in to the

directory LSL.

The programming file Add-aLSL.cpp in the directory "VISTA-C++/StageSn

processes the above query.

a Query-4 Given a TROM, find the TROMs it inherits from and the nature of

inheri t ance.

Page 103: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

The query is answerecl as follows:

Given the TROM name, we find the nature of its inheritance from the file inher-

ils.dat and corresponding to the inheritance. we examine the file p i n h e n k d a t

or, e i n h e r h d a t . or b i n h e r i k i a t to find the uersion of relationship.

The programming file query-uersion.cpp in the directory "VISTA-C++/Stage-5'

processes the above query.

Page 104: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 7

The Prototype and

Implementat ion Issues

.A prototype reusc search support system to operate within the TROMLAB environ-

ment lias bcen built. The reuse repository contains more than 100 LSL traits. 50

Larch/C++ speci ficat ions. and about a dozen TROMs and siibsysterns. There are

several TROM classes. and siibsysterns to be added to t hc repository. Since the reuse

context is specific to TROMLAB, we designed the reuse facility on top of and as a

nat ural extension of system files ancl directories generatcd by TROM LAB development

components. The repository is fully implernented and tested. 11 can be run either as

part of TROMLAB or a stand alone browser. In the later case, only Larch components

can be viewed. composed. and edited.

tVc Iiavc designed and implemented a Visual Interface for Software Reuse in TROM-

LAB Applications (VISTA). to intcract independently with usen of Larch components

as well as with GUI, the Graphical User Interface of TROMLAB. VISTA is implemented

in Sun Microsystems's JAVAJJDK-I 2.

7.1 Riding VISTA

VISTA is a reuse support CASE tool which has two-tiers, namely the visual interface

( front-end) and the DE3 Manager (back-end). VISTA is platform independent as it

implemented in JAVA. In this section, we present the visual interface features of the

tooI and walk-through the user to iostall and ride VISTA.

Page 105: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

7.1.1 Hardware Requirement s

VISTA runs on any platform such as Solaris 2.5, Windows 95, Mac OS as long as

Sun's Java Virtual LIachine(JVM) for JAVA/JDK-1.2 is installed and added to the

pat h.

7.1.2 Software Requirements

We have provided linkage to erternal software packages lrom the VISTA to make i t

a complete software specification development environment and are optional to use

the VISTA. 'rhe~e software packages include Larch syntax checkers, Isl. [cc, lp and a

C++ conipiler (optional).

The Browser erivironment is very useful for botti experienced ancl riew Larch spec-

ification dcvelopers andior TROMLAB navigators. The users can easily navigate.

qiiery, nianipulate and manage the relise library and versions of the TROMLAB corn-

ponents. This section provides a description of ttie choices and functionality of each

of the VISTA'S windows.

7.1.3.1 Getting Started

Defore starting the VISTA. the hardware and the software requirenients should be

met.

To start the VISTA, type java ObjectBm~wser at the cornmand line on a Solaris or

at the hIS-DOS prompt on a Windows 95 operating systern and the opening window

as shown in Figure 35 will appear.

Figure 35: VISTA Opening Window

Page 106: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

7.1.3.2 Files

Figure 36 shows the list available TROMLAB components to browse. The TROMLAB

components consists of LSL, LCPP, TROM and SUBSYSTEM.

Figure 36: Files Window

. . . . . . . . . . -. -. . -. . . - -. . . . . . . . . ...

Figure 37: LSL Files Window

7.1.3.3 LSL Files

When the LSL button is clicked. the LSL Files window appears with 2 choices of

browsing the "Library" or "Versions" as shown in Figure 37. Then LSL Libmry Files

window appears (Figure 38) if the "Library" is clicked. Similarly, the LSL Version

Files window appears if the "Versions" is clicked. These windows provides a directory

listing and the user can either highlight or type the n a m e of the lsl file and "Inspect"

(Figure 39) or "Edit" (Figure 40) it or click "Newn to create a new lsl file. The main

important point here is that the library files cannot be edited instead a dialog window

as shown in Figure 41 pops up and asks the user if he would like to Save it as a version

file.

Page 107: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 38: LSL Library Files Window

Page 108: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

. . , .'. , ';.: *<.,; cf,;. ' . A " d'' 9;" .," -, , . .- .\' ,: ?. . : - : ......... r , - . . . C . .

-.y . - . , .. , , , ' O """ _ . _ a _ . . . . . . . : .. .a.,. i . , :_ 1 . . *,-. : : , . . . . . . . . ... y ... :' .....,. . -

, . ,2 . A., . ' ,.,.<-,A,

Figure 39: LSL Inspect File Window

Page 109: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 40: LSL Edit File Window

Figure 41: Library File Error Dialog Window

Page 110: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

O If the user chooses "Inspect", the file is opened in a inspect mode in the LSL template. The corresponding LCPP filename is displayed in the template win-

dow in the hypertext mode and user can choose to "Inspect" it as well.

a If the user chooses "Edit", the file is opened in edit mode in the LSL template.

Each division of the LSL template is scrollable and allows you to enter the

contents in a friendly way. For example. the user can choose enter each of

filenames in the inclvdes clause seperated by commas in a new line or choose

to enter thcm in a single. The format is preserved cwn if the file is re-cpcned.

The Iist of filenanies in the includes clause are hypertevt and user can again

choose to either "Inspect" or "Edit" it on the spot. The corresponding LCPP

filename is displayed in the ternplate window in the hypertext mode and user

can choose to *Editn it depending on t hc file opened mode.

7.1.3.4 Saviag LSL Files

Figure 42: Save as Dialog Window

In the "Edit" mode. the user has the 3 options to Save a file that is opened in t

template.

r If the user chooses "Save", the file is saved in the same file name. When a

new file is created and if the user tries to *Savev. then a "Save as" (Figure -12)

dialog pops up and asks for a filename as opposed to a typical Save kature in

the commercial softwares which will Save the file as unt itled.

Page 111: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 43: Update Database Window

a if the user chooqes "Save As" and if the user enters t hc samc filenarrie as the

opened one. a warning clialog pops to confirrn the overwrit ing of an existing file.

This buttori behaves the same way for both old and new files. If the user docs

not enter any filename, then a n error dialog window warns the user.

a [f ttic itser chooses "Update DB', then the user can add or delete the LSL trait

to or from ttie version database. The ~iptlate D B Window is shown in Figiirc -LX

'rtiis option is not perrnitted for the LSL li brary database. The main purpose of

this fiinctionality is to providc version management and answer queries to the

user froni the database.

7.1.3.5 LCPP Files

When the LCPP button is clicked, the LCPP Files window appears with 2 choices

of browsing the *Library9 or "Versionsq as shown in Figure 44. Then LCPP Library

Files window appears i l the "Library" is clicked. Similarly, the LCPP Version Files

window (Figure 45) appears if the "Versions" is clicked. These windows provides a

directory listing and the user can either highlight or type the name of the LCPP file and "Inspect" or 'Edit" it or click "New" to create a new LCPP file. The main

important point here is that the library files cannot be edited instead a dialog window

pops up and asks the user if he would like to Save it as a version file.

0 If the user chooses "Inspect", the file iu opened in a inspect mode in the LCPP

template. The corresponding LCPP filename is displayed in the template win-

dow in the hypertext mode and user can choose to 'hspectn it as weL

Page 112: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 44: LCPP Files Window

Figure 45: LCPP Version Files Window

Page 113: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure -16: LCPP Editor Window

If the user chooses *Edit*(Figure 46), the file is opened in edit mode in the

LCPP template. Each division of the LCPP ternplate is scrollable and allows

you to enter the contents in a friendly way. For example, the user can choose

enter each of filenames in the imports clause seperated by commas in a new line

or choose to enter them in a single. The format is preserved even if the file is re-

opened. The list of filenames in the inchdes clause are hypertext and user can

again choose to eit her "Inspectn or "Edit" it on the spot. The corresponding

LCPP filename is displayed in the ternplate window in the hypertext mode and

user can choose to "Edit" it depending on the file opened mode.

7.1.3.6 Saving LCPP Files

In the %ditn mode, the user has the 3 options to save a file that is opened in the

template.

O If the user chooses "Saven, the file is saved in the same file name. When a

new file is created and if the user t k to "Save", then a "Save asn (Figure 42)

dialog pops up and asks for a filename as opposed to a typicai save feature in

Page 114: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

the commercial software3 which wiil Save the file as untitled.

O If the user chooses "Save As' and if the user enters the s m e filename as t hc

opened one, a warning dialog pops to confirm the overwrit ing of an existing file.

This but ton behaves the same way for bot h old and new files. If the user does

not enter any filename, then an error tlialog window warns the user.

If the user chooses "Update DB", then the user can add or delete the LCPP

trait to or from the version database. The update DB Window is shown in

Figure -LX This option is not permittecl for the LCPP library database. The

main purpose of this functionality is to provide version management and answer

cperies to the user lrom the database.

7.1.3.7 TROMs

CVhen the TROM button is clicked. t h e TROM Classes window appears with 2 choices

of browsing the "Library" or "Versions" as sliown in Figure 47. Then TROM Library Clnsses window appears ( Figiire -18) if the "Li brarf is clicked. Similarly. the TROM Version Files window appears if the "Versions" is clicked. These windows provides

a directory listing and the user can either highlight or type the name of thc TROM class and "Inspect" or *EtLitV it or click "New' to create a new TROM class. The

main important point here is that the library files cannot be edited instead a dialog

window as sliown in Figure 41 pops up and asks the user if he would like to Save it

as a version file.

Figure 47: TROM Classes Window

Page 115: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

O i I e r output S .

Figure 4Y: TROM Library Classes Window

Page 116: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 49: TROM Editor Window

Page 117: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a If the user chooses "Inspect", the file is opened in a inspect mode in the TROM template. The corresponding TROM filename is displayed in the template win-

dow in t h e hypertext mode and user can choose to "Inspect" it as well.

If the user chooses "Edit", the file is opened in edit niocle in the TROM template

( Figure 49). Each division of the TROM template is scrollable and allows p u

to enter the contents in a friendly way. The format is preserved even if the file

is re-opened.

7.1.3.8 Saving TROM Files

In the *Edit" mocle, the user has the 3 options to save a file that is opened in the

tcrnplate.

r [C the user chooses "Save", the file is saved in the sanie file name. When a

new fil<? is creatcd and if the user tries to "Save". t hen a "Save as" ( Figure 42)

dialog pops u p and asks for a filename as opposeci to a typical Save Feature in

t h e commercial softwares whicti will Save the file as untitled.

e If the user chooses -Save A s and if the user enters the same filcname as the

opened one. a warning dialog pops to confirm the overwri ting of an exist ing file.

This button behaves the sarne way for both old and new files. If the user does

not enter any filenanie. thcn an error dialog window warns the user.

r If the user chooses "Update DB". then the user can add or delete the TROM clas to or from the version database. The Update DB Window is shown in

Figure 43. This option is not permittetl for the TROM Iibrary database. The

main purpose of this functionality is to provide version management and answer

queries to the user from the database.

7.1.3.9 Subsystems

When the SCS button is clicked, the SC'S windom appears with 2 choices of browsing

the "Library" or Venions" as shown in Figure 50. Then TROM Libmry Classes

window appears if the 'Library" is clicked. Similarly, the SC'S Version Files window

appears if the "Versions" is clicked. These windows provides a directory listing and

the user c m either highlight or type the name of the SCS and "Inspectn or uEditn

Page 118: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

it or click "New" to create a new SCS. The main important point here is that the

Library files cannot be edited instead a dialog window pops up and asks the user if he

would like to Save it as a version file.

Figure 50: SCS Window

a I f t h e iiscr chooses *Irispectn. the file is opened in a inspect mode in the SCS

tcmplate. 'i'he corresponding SCS filenarne is displayed in the template window

in the hypertext mode and user can choose to "Inspect" it as well.

r If the user chooses "Edit". the file is opened iri edit mode in the SCS template

(Figure 51). Each division of the SCS template is scrollable and allows you to

enter the contents in a lriendly way. The format is preserved even if the file is

rc-opened.

7.1.3.10 Saving SCS Files

In the *Edit9 mode, the user has the 3 options to Save a file that is opened in the

ternpiate.

a If the user chooses 'Saven, the file is saved in the same file name. When a

new file is created and if the user tries to uSave", then a "Save as" (Fi y r e 42)

dialog pops up and asks for a filename as opposed to a typical Save feature in

the commercial softwares which will Save the file as unt itled.

If t be user chooses "Save Asn and if the user enters the same filenarne as the

opened one, a waniing didog pops to confirm the overwriting of an existing file.

This button behaves the same way for both old and new files. If the user does

not enter any filename, then an error dialog window warns the user.

Page 119: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 51: SCS Editot Window

Page 120: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

If the user chooses "Update DBn, t hen the user can add or delete the SCS class

to or [rom the version database. The update DB Window is shown in Figure 43.

This option is not permitted for the SCS Iibrary database. The main purpose

of this functionality is to provide version management and answer queries to

the user from the database.

7.1.3.11 Query

The design and algorithm for the processing of different types of queries are described

in detail on chapter 6. When the Query button is clicked, the Que y window appears

with -L choices of query: "Qtiery LSL'. "Query LCPPn, "Query TROMn and "Query

SCSw as stiown in Figure 52. Depending on the user's preference, the respective Query

windows appears as shown in Figures 53, 54, 55, 56. When the user chooses certain

search criteria and click "Apply". the query is processed and the results are displayed

in the Que y Resull (s) w indow.

Figure 52: Query Window

Figure 53: Query LSL Traits Wiodow

7.1.3.12 Exit

When the user chooses to *Exitn, the EXIT window appears with 2 choices as shown

in Figure 57. If the user chooses "Exit VISTAn, the VISTA quits or if the user chooses

"Exit to TROMLAB", VISTA takes you to the TROMLAB GUI.

Page 121: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 54: Query By Includes for LSL Traits

Figure 55: Query LCPP Specifications Window

Figure 56: Query TROM Window

Page 122: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Figure 57: Exit VISTA Window

7.1.3.13 Help

h textual help is provitlcd based on the context of the "Helpn button clicked. For

example. if the *Helpw button is clicked from a LSL Editor Window, a sample trait

woultl be providecl with textual description of the Larch trait specification. A sample

help window is shown in Figure 58.

7.2 Java Classes

Each of the irnplemented Java classes of VISTA are designed in such a way that

tliey arc. indepericlent of each other and can be reusecl or extcnded in a another

clars and modifiecl easily. T tie java files are located under "VISTA-Java" directory.

The documentation and the java. class hierarchy crcated by "javadoc" utility in the

"HTML' format are iinder *VISTA-Java/DOCn .

a Vista-java - Main class file for VISTA. 11 mils "Filesy, the "Qiieryn, TxitSys*

classes and invokes a C++ compiler such as * g ~ + ~ in a Solaris operating sys-

tem.

a Fi1es.java - Handles file events for the LSL, LCPP, TROM and Subsystem corn-

ponents

a LSLFiles.java - Manages LSL files under Library and Versions and calls *LSLFilesLibn

and "LSLFilesVern classes

0 Fi1eViewer.java - Provides a file inspection viewer super class for al1 the TROM- LAB components and LCPP files in their respective templates.

Page 123: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

elp on Larch Formal Specifications:

. The second tier, uslng Latch Interface Languages &IL). provides

styie. Each equation is an axiom in first order predicate loglc. The specMcations are written using pre- and postconditions in a style

Figure 58: Help Window

Page 124: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a LCPPFiles-java - Manages LCPP files under Library and Versions and calls

"LCPP FilesLib" and "LCPP Filesver" classes

a LSLFilesLib-java - Provides dynamic directory listing of library files in a list

window wi th file manipulation operations

a LSLFilesVer.java - Provides dynamic directory listing of version files in a list

window with file manipulation operations

LSLFileViewer.java - Provides the LSL template editor and the liypertext func-

tionality for browsing the hierarchies based on iacludes. (rss-urne$ clauses. It

calls 'UpDatetlb' class to update the relationships of trait files (e.g. includes)

library or version files

r LCPPFi1esLib.java - Provides dynamic directory listing of library files i i i a list

window wi t h file rnariipiilat ion opcrat ions

a LCP PFilesVer.java - Provicies tlynamic directory listing of version files in a list

window wit h file rnanipulatiori operations

a LCPPFileViewrrjava - Provides the LCPP template cditor and the hypertert

tunctionality for browsing the hierarchies basecl on uses clatise. Lt calls "Up-

Datedb7 class to iipdate the relationships of LCPP files with trait files and the

uses (e.g. includes) library or version files

a Query.java - Handle Query events for the LSL, LCPP, TROM and Subsystem

componcnt s

a Query LS L. java - Displays and process query based on different search criteria

described iri Ctiapter 6.

r QueryLSLInclude.java - Handies query based on Includes relationship in LSL traits

a SCSFilesjava - Manages Subsystem files under SCS and Versions and calls

*SCSFilesLib9 and "SCSFilesVerV classes

SCSFilesScs.java - Pmvides dynamic directory listing of TROM LAB Subsystem

files in a list window with file manipulation operations

Page 125: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

a SCSFilesVer.java - Provides dynamic directory listing of version files in a list

window wit h file manipulation operations

0 SCS FileViewer.java - P rovides the SCS template edi tor and the hypertext func-

tionality for browsing the hierarchies based on included LSL traits or TROM

classes

0 TROMFiles.java - Manages Subsystem files under TROMs and Versions and

calls "TROMFilesLi b" ancl "TROh/IFilesVer" classes

0 'i'ROMFilesTrorns.java - Provides dynamic directory listing of TROM classes in

a list window with file manipiilation operations

a TRO kI FilesVer.java - Provides dynamic directory listing of version Hies in a list

window with Ale manipulation operations

O TROiCIFileVicwer.java - Provides the SCS ternplate etlitor and the hypertext

functionality for browsing the hierarchies based on incltided LSL traits

a UpDatedb.java - Provides an update diaiog window to add/delete a trait to the

database nianager

O ExitSys.java - This class Quits VISTA or takes the iiser to the TROMLAB GUI.

7.3 Implementation Issues

Two important irnplernentation considerations became evident through the develop-

ment of the prototype. First, t he cornponents in the reuse repository evolve over

two time frameworks: (1) during the development of an application; and (2) during

the independent development of Larch cornponents for various applications, not nec-

essarily confined to real-time reactive systems. The evolution of cornponents in the

First category are handled by the update queries in the systern. That is, the devel-

open may invoke these query windows to Save new components. Components of the

second kind rnay be added to the system manually. In either case, the relationship

among components will be computed after each update. Second, the system rnust be

evaluated lrom the experiences of people using the TROM LA0 environment. For ex-

ample, slow response t imes, imprecise ret rieval, and incomplete informat ion retrieved

Page 126: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

will lead developers lose faith in the system. They theo would be reluctant to use

the search facility. A compromise would be to investigate more appropriate storage

schemas and migrate the reuse repository to the new data store. We caution that

our browser is not a general purpose reuse engine: it promotes reuse within a very

specific conteut.

Page 127: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Chapter 8

The major motivation for the thesis came [rom two directions: ( 1 ) to provide aii

on-line facility to view. select and reuse LSL traits and LCPP specifications created

by the black-box reuse research (BBRS) group under ttie guidance of Dr. Alagar

and (2) to providc an active reusc method for TROMLAB components. Since LSL and

LC'PP are themselves components in TROMLAB. it was decided to builcl VISTA to

achieve bot h the objectives.

Very lit t le research work has been reported in the reuse of real-t ime react ive system

components. In general. very lit t le reuse is possible wit h tradit iorial design met hocl-

ologies. ï h e difficulties are mainly due to the complexity in designs. Modularity of

components is an essential aspect for reuse promotion. Designs lacking modularity.

composi t ionali ty, and specializat ions are hard to adapt for reuse in assembling large

systems. However, these are the foundationai fcatures of abject-oriented (00) tech-

niques. Conseqiient ly, i t beconies essent ial to integrate 00 techniques wi t h reai-t irne

reqtiirements. The work on TROM formalism (11 is one of the fint attempts in t his

direction. The advantages ot combining real-time with 00, and the challenges it

poses in a smoot h semant ic integration are discussed in (11. TROMLAB environment

promotes t his integrat ion in the design and development of rea1-t ime react ive systems,

and hence t tie components of TROMLAB are best suited for black-box reuse.

LSL, LCPP, TROM. and SCS components cm be reused either individually or

collectively in constnicting a real-time ceactive systems. VISTA provides some limited

support for white- box reuse as well. For example, LSL traits from the repository can

be reused in either a black-box fashion or can be rnodified, type checked, and then

Page 128: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

included in a design. Similady, a TROM class can be reused in different ways:

a with no change

a developing new classes consistent with the three types of inheritance

0 instantiating different objects from it, and using the objects in one or more

su bsystenis

Note that when time coostraints are modifiecl, even if changes are certified to be

syntactically correct by the hterpreter . both sirnulator and verifier should be invoked

to analyze the complete behavior of t he system iri which it is a component. The

TROMLAB GUI should be iised for such purposes.

The contributions of this research are:

I. We have brought out the significant advantages of black-box reuse, botb in its

tcchnical and managerial perspectives.

'2. CVe have proposcd a simple approach for the integration of a hypertext-basricl

navigation with a repository of UNLX directories of files for black-box reuse of

TROMLAB components.

3. We tiavc shown that repository coniponents can be inspected. edited. composed

integratecl witti a vcrsioning mechanism during the process of reuse.

-I. VISTA is implernentd in Java and is ready for integration with TROMLAB.

Some of the future research directions are:

a Application of VISTA during the entire Software Life Cycle

O Enhance VISTA to trace dependencies betwecn objects/components at any phase

a Apply heterogeneous database technologies for efficient ret rieval and manipula-

tion of objects/cornponents in VISTA

a Create/Integrate an automatic Lach formai specification-based testing tool(s)

in VISTA

a Apply this work in a reai industry to study the benefits and challenges of Soft-

ware reuse

Page 129: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Among t hese the challenging direction of Eurt her research is the integration of het-

erogeoeous database technologies with Cornputer-Aided Software Engineering (CASE) environment for automating the different phases of reuse process. This is the natural

step to take when TROMLAB is iised by a large community of researchers for the

development of large mal-t ime react ive systems.

Page 130: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

Bibliography

[ l] K. Achuthan, "A Fornial Modcl for Object-Oriented Development of Real-Time

Reactivc Systerns." Ph.D. Thesis, Department of Computer Science, Concordia

University. Montreal, Canada. 1995.

[2] V.S. Alagar. R. hchiithan. D. kluthiayeri, "TROMLAB 1 .* .-I CM TOSEiCl (re-

viscd version) September 1998.

[4] V.S. Alagar. R. hchuthûn. D. Muthiayen, "Animating Real-'rime Reactive Sys-

tems." In Proceedings o j S t ~ o n d IEEE lnternntional Conference on Engineering

Cvomplex C'ornputer Systerns. ICECCS '96. blontreal. Canada. October 1996.

[4] V.S. Alagar. P. Colagrosso. A. Loukas, S. Narayanan, and A. Protopsaltou.

Tormal Çpecifications for Effective Black-Box Reiise". Technical Reports (2

volumes), Department of Computer Science, Concordia University, blontreal.

Canada, February 1996.

[5] V.S. Alagar, P. Colagrosso. A. Celer, 1. Urnansky, R. hchuthan, Forma1 Specifi

cations /or Effective Black-Bot Reuse: Phase I Progress Report, Department of

Computer Science, Concordia University, Montreal, Canada, Septembcr 1994.

[6j CL. Braun. 'Reuse, in Ericyclopedia of Software Engineering' .l. Marciniak (ed),

John Wiley and Sons, 1066-1069 (1994).

7 A. Celer, Role o f Fonnal Specifications in Black- Boz Testing of Object-Oriented

Software, Master of Computer Science Thesis, Depart ment of Computer Sci-

ence, Concordia University, Montreal, Canada 1995.

[SI P. S. Chen, R. Hennicker, and M. Jarke, "On the Retrievd of Reusable Software

Cornpooents," In Advanees in Sofiware Reuse, IEEE Computer Society Press,

Los Alarnitos, California, 1993, pp. 99- 108.

Page 131: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

[9] P. Colagrosso, "Formai Specificatioo of C++ class Interfaces br Software

Reuse," M.Comp.Sci. Thesis, Department of Computer Science, Concordia Uni-

versity, Mont real? Canada. 1993.

[IO] T.U. Cbrrnen, C. E. Leiserson and R. L. Rivest. Introduction To Algon'thrns.

MIT Press, 1991.

[ I l ] W. Frakes and S. [soda, 'Success Factors for Systematic Reuse' IEEE Software.

15-19 September ( 1994)

[12] W. B. Frakes, and P.B. Cantlelt "Represent ing Reusable Softwaren, In/. So fi W .

Tech.. 32, 10. 1990, pp. 659-664.

[13] J.E. Caffnq and R.D. Cruickshank, 'A Gencral Economics Motlel of Soltware

Reuse' Proceedings of L4th International Conference on Software Engineering,

IEEE Computer Society Press. Los Alamitos. CA, 327-:137 ( 1992).

[i4] E. Guerrieri. 'Case St udy: Digital's Application Generator' IEEE Solt ware.

9 5 9 6 September ( i'39;i).

[Ir>] J.V. Cuttag, and J.J. tlorning, Larch: Languages and Tools fur Fo~mal Speci-

ficnt ion. S pringer-Verlag, 1993.

[16] G. Ciaidar. 'Simulated Rcasoning and Debugging of TRObILAB Environment,"

Master of Computer Science Thesis, Department of Computer Science, Concor-

dia University, Montreal, Canada. (Expected: Winter 1999).

1 D. Harel, H. Lachover. A. Naamad, A. Pnueli, M.Politi, R. Sherman, A. Htull-

Trauring, hl. Trakhtenbrot. "STATEMATE: A Worki~ig Environment for the

Development of Corn plex React ive Systems," IEEE Transactions on Sofiwure

Engineering, Vol. 16. No. 4, April 1990, pp. 403414.

[Ml T. Isakowitz and R. Kauffman, "Supporting Search for Reusable Objects,",

lEEE Transactions on Sofhare Engineering, Vol. 22, No. 6, Juae 1996.

(191 R. Joos, 'Software Reuse at Motorola' IEEE Software, 42-47, September ( 1994).

[?O] KR. Koedinger and J.R. Anderson, "Abstract PIaning and Perceptual Chunks:

Elements of Expertise in Geometry," Cognitive Science, Vol. 12, No.& December

1990. pp. 51 1-550.

Page 132: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

[21] T. Korson and J.D. McGregor, 'Technical Criteria for the Specification and

Evaluation of Object-Orientecl Libraries' Software Engineering Journal, March

( 1992).

[22] G.T. Leavens, Larch/C++ Releresce Manuai, Dra ft : Revision 5.1, February

1997.

[23] W.C. Lirn, 'Effects of Reuse on Quality, Productivity and Econoniics' [EEE Software. 11. 23-30 ( lY941).

['24] G. Leavens. Y. Cheon. rl Qukk Overwiew of Lnrch/C++. TR No. 93- 18. De-

part ment of Computer Science. Iowa State University, June ( 1993).

[-51 C:.T.Leavens and Y.Chmn, "Preliminary Design of Larch/C++." in U.Martin

and .J. Wing ( Ecls.), Proceedirrgs of the First International Workshop on Larch,

CVor ks hops in Corn puter Science Serics, Springer-Verlag, 1992.

[26] LI. D. klcllroy. ' Mass Procluced Software Components. in Software Engineering:

Report on a Conference by the NATO Science Cornmittee (Carmish. Germany)'

P. Naur, D. Ranclell, EAS. NATO Scientific Affain Division. 138-150, Brusselu.

Beigiurn ( 1968).

['L'il L. Mikusiak, V. Vojtek, J. Hasaralejko, J. Hanuelova, *L- Browser - Tool for

Visualisatiori of L Specifications.' Technical Report. Department of Computer

Science and Software Engineering.

['LS] I.E. Closer. Y .S. Ramakrislina, G . Kiitty, P.M. Melliar-smith, and L.K. Dillon.

"A Graphical Erivironment for the Design of Concurrent Real-Time Systems,'

. K M TOSEM, Vol. 6. No. 1. January 1997, pp. 31-79.

[29] M.J. Morin, B.H.C. Cheng, 'User Manual for Larch Development Environ-

ment." Technical Report, Department of Computer Science, Michigan State

University. East Lansing, MI 48824, 1994.

[30] D. Muthiayen, 'Animation and Forma1 Verïfication of Real-Time Reactive Sys-

terns in an Ob ject-Oriented Environment ," Master of Corn puter Science The- sis, Department of Computer Science, Concordia University, Montreal, Canada,

1996.

Page 133: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

[31] S. Narayanan, "Forma1 Methods For Reuse Of Design Patterns And Micro-

Architectures," Master of Corn puter Science Thesis, Depart ment of Computer

Science. Concordia University, Montreal, Canada, 1996.

[W] S. Owre, J. M. Rushby. and N. Shankar, "PVS: A Prototype Verification Sys-

tem.' Proceedirgs of 1 lth International Conference on ;Iutomated Deduetion,

CADE 1992, Vol. 607 of Lecture Notes in Artificial Intelligence, Springer-Verlag,

. pp. 748-752.

133) R. Prieto- Diaz. " Im plcmenting Faceted Classification for Software Reuse."

Comnrunications oJ dK'ibf. Vol. 34, No. 6. May 1991, pp. 89-97.

[34] LWL NoVotation Guide. Version 1.1. Rational Software Corporation. Septernber

1997.

[35] &CIL Sernunlics, Version 1.1, Rational Software Corporation. Septernber 1997.

[36] Rogue Wavc. Toooob.h++ Clnss Librrzry, Version 6.0, Rogue Wave Software. 1993.

[37] C. Sa1 ton ancl ,LI. CL .LIcGill. Introduction to klo( len ln forrnation R e t n e uni,

hIcGraw Hi11. Ncw York. 1983.

[Ml B. Selic. C. Ciilleckson. and P. T. Ward. ReaGTime Object-Oriented iktodeling.

Wiley. 1994.

[3Y] R. Sessions, *The System Object Mode1 (SOhI): A Technology for Language

independent ObjectsT Tutarial Notes, OOPSLA (1993).

[-IO] V. Srinivasan. *An Intelligent Graphical User Interface Systcm for TROII-

LAB," Master of Computer Science Thesis, Department of Computer Science.

Concordia University, Mont red, Canada, ( Expected: Winter 1999).

[-L 11 A. Tao, "Static Analyzer: A Design Tool for TROM," Master of Computer Sci-

ence Thesis, Department of Computer Science, Concordia University, Montreal,

Canada, 1996.

[42] 1. Lhansky, "Completeness of Larch/C++ S pecificat ions for Black-Box Reuse,"

Mast er of Corn puter Science Thesis, Depart ment of Corn pu ter Science, Concor-

dia University, Montreal, Canada, 1995.

Page 134: VISTA A VISUA4L INTERFACE FOR SOFTWAREAbstract VISTA - A Visual Interface for Software Reuse in TROMLAB Environment Rajee Nagarajan Software relise has the potent ial to increase product

[43] J. Wing, "A Two-Tierecl Approach for Specifying Programs," Technical Re-

port TR299, Massachussets [nstitute of Technology, Laboratory for Cornputer

Science, 1983.

[44] J . Wing, " Writ ing Larch Interface Language S pecificat ions." A CM Transadions

on Programming La.nguages and Systems, Vo1.9, No. 1, January 198'7, pp. 1-24.

[Xi] J. Wing, "A Specifier's Introduction to Formal Met hods," IEEE Cornputer,

Vol.23, No.9, September 1990. pp. 8-24