the design of a next-generation process language? - citeseer

18

Upload: others

Post on 09-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Design of a Next-Generation Process Language? - CiteSeer

The Design of a Next�Generation Process

Language�

Stanley M� Sutton� Jr� and Leon J� Osterweil

Department of Computer ScienceUniversity of MassachusettsAmherst� MA ����������

Abstract� Process languages remain a vital area of software process research� Amongthe important issue for process languages are semantic richness� ease of use� appropriateabstractions� process composability� visualization� and support for multiple paradigms�The need to balance semantic richness with ease of use is particularly critical�JIL addresses these issues in a number of innovative ways� It models processes in termsof steps with a rich variety of semantic attributes� The JIL control model combinesproactive and reactive control� conditional control� and more simple means of control��ow modeling via step composition and execution constraints� JIL facilitates ease ofuse through semantic factoring� the accommodation of incomplete step specications�the fostering of simple sub�languages� and the ability to support visualizations� Thisapproach allows processes to be programmed in a variety of terms� and to a variety oflevels of detail� according to the needs of particular processes� projects� and program�mers�

� Introduction

Process language research was an early emphasis of software process studies�It has remained vital for several reasons� First� no language has gained generalacceptance or widespread use� This is not just a linguistic problem� as the useof languages depends also on organizational� methodological� and technologi�cal support� Second� �rst�generation languages generally have obvious limita�tions� This is in part because many of these languages were based on existingparadigms that were not particularly well adapted to the domain of softwareprocess ��� ��� ��� �� ��� � ��� Finally� research in other areas of software pro�cess has a�ected our ideas about what can and should be done with processlanguages� In this paper we report on the design of a �next�generation processlanguage that is intended to capitalize on lessons learned from �rst�generationlanguages� overcome limitations of those languages� and explore issues emergingfrom ongoing process research�

Section � identi�es our primary language design goals� which are based onour experience with �rst�generation process languages� Section � describes the

� This work was supported in part by the Air Force Materiel Command� RomeLaboratory� and the Advanced Research Projects Agency under Contract F��������C������Published in Software Engineering � ESEC�FSE ���� LNCS ����� M� Jazayeri andH� Schaure eds��� Springer� ����� pp� �������

Page 2: The Design of a Next-Generation Process Language? - CiteSeer

design of JIL� our next�generation process language� including examples basedon the Booch object�oriented design process� Section discusses the multi�modalinterpretation of JIL programs� An assessment of the JIL approach is presentedin Section �� and our status is discussed in Section ��

� Language Design Goals

Process programming proposes that it is feasible and valuable to represent soft�ware processes using programs written in compilable� executable coding lan�guages ���� ��� Our experience with APPL�A ��� has validated this proposal�We now take many properties of coding languages as fundamental to representingsoftware processes� including formal syntax� well�de�ned semantics� executabil�ity� analyzability� object management� and consistency management� These is�sues have been the focus of much previous work �e�g�� ���� ��� �� ��� �� ��� ����and they should continue to be addressed by second�generation process lan�guages� Our focus here� however� is on the issues outlined below�

��� Semantic Richness

Software processes are multi�faceted and technically challenging applications�To support this domain� a process programming language must provide manykinds of interrelated semantics� This pressure for semantic richness is re�ectedin �rst�generation process languages� Many of these are based on extensionsof conventional programming languages or paradigms� including functional lan�guages ���� ��� rule�based or reactive languages ����� ��� ��� ��� imperativelanguages ������ and Petri nets ��� ���� Conversely� where process languageshave neglected certain areas of semantics �e�g�� re�exivity� resource modeling��process programs have su�ered� Process language semantics must be both richand rigorous� They must cover an adequate range of process semantics� and theymust do so with appropriate models that support reasoning about processes�

��� Ease of Use

Ease of use is an important requirement for process programming languagesbecause the individuals and organizations responsible for de�ning software pro�cesses are often not experienced at programming� The semantic richness of pro�cess languages means� however� that signi�cant software engineering skills arerequired to program in them e�ectively� This is an impediment to the widespreadadoption of process languages� A key issue for process languages is thus balancingthe need for technical rigor with this need for ease of use�

��� Appropriate Abstractions

The clear and concise representation of software processes requires appropri�ate kinds and levels of abstraction� The development and maintenance of pro�cess programs is complicated if the user must construct process�speci�c abstrac�tions from lower�level abstractions� as with process languages that are based on

Page 3: The Design of a Next-Generation Process Language? - CiteSeer

general�purpose programming languages �e�g�� APPL�A�� Process programminglanguages should provide built�in concepts and constructs that map naturallyinto the software process domain� �Languages that do this with varying degrees ofsuccess include MVP�L ���� ProcessWeaver ���� LOTOS ���� and Oikos �����

��� Composability

Programming of software processes in general is di�cult� Thus it is importantto be able to readily compose larger processes out of smaller components and tosupport reuse�based process programming� Also� the ability to program processesby composing elements having di�erent language paradigms or representing dif�ferent semantic aspects would introduce additional �exibility and incrementalityinto process program development� Composition is also recognized as importantin the subject�oriented view of object�oriented programming ����

��� Clarity through Visualization

Many �rst�generation process languages are textual� A few process languagessupport graphical representations of process control �e�g�� Slang ��� Melmac ����Process Weaver ���� and Hakoniwa ����� Visual process representations greatlyaid understanding and communication of some processes� Simple ideas are oftenmost simply represented visually� and this can aid greatly in process design andveri�cation� On the other hand� more complex and dynamic process structuresmay be easier to express in textual languages� since visual representations canbecome cluttered and unwieldy and often tolerate ambiguity in order to cultivatesimplicity of expression� Thus� strictly visual representations are likely to be un�suitable for complex processes in general �especially if they are complex enoughto support process execution ����� In light of these tradeo�s� our goals for asecond�generation process language give top priority to the expressive power af�forded by textual languages� while supporting the use of visual representationswhere they are workable�

��� Multiple Paradigms

In our opinion� one of the most useful features of APPL�A is its incorpora�tion of triggers into a largely imperative language �Ada�� We relied heavily onthis combination of proactive and reactive control in our process programming�Some combination of these two types of control is also found in many other pro�cess languages �e�g�� Adele ���AP� ��� EPOS ���� HFSP ��� �� Marvel ����Merlin ���� and ProcessWeaver ����� ALF �� is another process project that isexplicitly multi�paradigmatic in combining proactive and reactive control alongwith preconditions and postconditions� and Pleiades demonstrates that multipleparadigms are also important in software object management ���� And multipleparadigms have also been found useful in requirements speci�cation ���� In mostprocess languages� however� one control paradigm typically predominates while

Page 4: The Design of a Next-Generation Process Language? - CiteSeer

the other is secondary� Thus� many languages primarily support one style of pro�gramming �such as rule�based programming in Merlin or Marvel� or functionalprogramming in HFSP� among others�� Our experience and observations suggestthat emphasizing one paradigm becomes problematic when another paradigmis more natural for a particular process� Thus� one of our goals is to supportmultiple paradigms without favoring any of them�

� Design of JIL

In this section we discuss the design of JIL� emphasizing process steps� the controlparadigm� and exception handling� Examples are based on a process for softwaredesign following the principles of Booch Object�Oriented Design ���

��� Process Steps

The central construct in JIL is the step� A JIL step is intended to represent a stepin a software process� A JIL program is a composition of steps� each of whichmay contain a set of subunits �representing di�erent aspects of the step� andsupplementing units �such as separate procedures and packages�� The elementsof a step speci�cation represent kinds of semantics that are important to processde�nition� analysis� understanding� and execution� Brie�y� the elements include�

� Objects and declarations� The parameters and local declarations for softwareartifacts used in the step

� Resource requirements� Speci�cations of resources needed by the step� in�cluding people� software� and hardware

� Substep set� The substeps of a step �which are themselves steps�� Step constraints� Restrictions or prescriptions on the relative execution orderof substeps

� Proactive control speci�cation� An imperative speci�cation of the order inwhich substeps are to be executed �direct invocation�

� Reactive control speci�cation� A reactive speci�cation of the conditions orevents in response to which substeps are to be executed �indirect invocation�

� Preconditions� constraints� postconditions� De�ne artifact consistency condi�tions that must be satis�ed �respectively� prior to� during� and subsequentto the execution of the step

� Exception handlers� Handlers for local exceptions� including handlers for con�sistency violations �e�g�� precondition violations�

An example of a JIL step speci�cation is shown in Figure �� This speci��cation represents the �rst step in a �simpli�ed� Booch Object�Oriented Designprocess ��� The step speci�cation has a template�like syntax �i�e�� it is composedof various �elds�� The substeps are listed within the speci�cation� The proactivecontrol speci�cation �Section ����� reactive control speci�cation �Section �����and exception handlers �Section ���� are all contained in separate� named sub�units� The preconditions and postconditions are de�ned in separate units �see

Page 5: The Design of a Next-Generation Process Language? - CiteSeer

STEP Identify�Classes�And�Object IS

OBJECTS� Reqts�Spec�

Requirements�Specification�Specification�Type�

DECLARATIONS� Class�Candidate�List� Object�Candidate�List�

Booch�Product�Definition�Name�List�

�� Substeps

STEPS� Browse�Requirements�

Extract�Class�Candidates�

Identify�Classes�

Extract�Object�Candidates�

Identify�Objects�

Edit�Class�Object�Dictionary�

�� Proactive control specification �Separate subunit��see Figure ��

ACTIVITY� Identify�Classes�And�Objects�Activity�

�� Reactive control specification �Separate subunit��see Figure �

REACTIONS� Identify�Classes�And�Objects�Reactions�

PRECONDITIONS� �� �Separate package�

FROM Requirements�Consistency�Conditions USE

Passed�ReviewReqts�Spec��

POSTCONDITIONS� �� �Separate package�

FROM Booch�Product USE

Unique�Name�Per�ClassBooch�Product�Class�Diagram��

Every�Object�Has�A�ClassBooch�Product�Object�Diagram�

Booch�Product�Class�Diagram��

���

�� Exception handlers �Separate subunit��see Figure ��

HANDLERS� Handle�Class�And�Object�Errors�

END Identify�Classes�And�Objects�

Fig� �� Example of a JIL step speci�cation�

Section ����� Some parts of the step speci�cation are unspeci�ed� An example ofa possible step constraint is shown later �Section ����� Some general commentson the language follow before speci�c features are discussed in more detail�

As the division of elements in a step speci�cation may suggest� JIL is a fac�tored language� That is� it provides independent representations for independentsemantics� insofar as possible� This has several consequences� First� the variousaspects of a step can be speci�ed relatively independently of one another� Forexample� the substeps for a step can be given without indicating any proactive

Page 6: The Design of a Next-Generation Process Language? - CiteSeer

or reactive control �ow� and control �ow can be speci�ed without regard toresources or preconditions and postconditions� �The elements of a step are notentirely independent� however� For example� consistency conditions will typicallyreference objects used by the step� and control speci�cations must refer to thesubsteps of the step�� Second� the relative independence of elements in the stepspeci�cation allows steps to be de�ned using just a subset of the elements �inother words� many elements are optional�� This promotes �exibility in processspeci�cation� since just those elements that are relevant to a particular purposeneed be used� However� this imposes additional requirements on process inter�pretation� since various kinds and combinations of elements may be present in astep� Implications for interpretation are discussed in Section �

��� Control Paradigm

JIL a�ords a unique variety of control paradigms that enable alternative ap�proaches to specifying process control �ow� The JIL control paradigm is charac�terized by three primary features�

� The combination of proactive and reactive control� the value of which wasdemonstrated by �rst�generation process languages�

� The integration of preconditions and postconditions� which have also beenwidely used�

� The ability to specify loosely organized processes without requiring detailedprogramming�

Particularly important� though� is the �exibility that JIL a�ords in the use ofthese control paradigms� Any or all may be used within a single program �eachstep interpreted independently according to the elements it contains�� Addition�ally� elements may be combined in a single step �which is interpreted accordingto the particular combination of elements�� These di�erent aspects� and the re�sulting interpretation paradigm� are discussed below�

Proactive Control The proactive control speci�cation of a JIL step providesa context in which the execution of substeps can be imperatively programmed�The step speci�cation designates a separate subunit to represent the proactivecontrol speci�cation for the step� This has two parts� a speci�cation and body�The speci�cation lists the entry calls and signals that can be received by theexecuting instance of the proactive part of the step� �These support interpro�cess communication�� The body provides the imperative code that controls theexecution of substeps� The syntax of the imperative code is based on Ada� in�cluding loop and conditional commands� entry�call accept statements� and a newparallel command with mandatory and optional branches� �Space limitationspreclude presentation of an extensive example here� but see �����

An explicit �invoke command is used to distinguish substep invocation fromordinary procedure invocation� A substep can be invoked as a �subprocess or�process� In the former case� the substep executes as a child process of the

Page 7: The Design of a Next-Generation Process Language? - CiteSeer

calling step� in the latter case� the substep executes as an independent process�i�e�� as a separately invoked program�� Subprocesses� in turn� can be invokedsynchronously� like a procedure call� or asynchronously� as a parallel thread ofcontrol �like an Ada task��

Reactive Control The step speci�cation also designates a separate subunitfor the speci�cation of reactions to events� The JIL event model recognizes andde�nes four types of events related to product state� process state� resource state�and exceptions �Table ��� Most �rst�generation process languages focus on eventsof one kind �e�g�� product state events in APPL�A� AP�� and Marvel� processevents in Adele�� The de�nition of an event kind corresponding to exceptions isan important feature of JIL in that it allows for a generalization of the exceptionhandling model �described in Section ����� The reactions triggered in responseto these events can include commands of the same sorts as used in the proactivecontrol speci�cation� in particular� substeps can be invoked reactively�

Event Category Examples

Product state events Artifact updatesArtifact state transitions

Process state events Control events e�g�� step invocation�Signals explicitly generated�

Resource state events Resource accessResource access con�icts

Exceptions Runtime exceptionsConsistency violations e�g�� of preconditions�

Table �� Categories of events in JIL�

An example reactive control speci�cation is shown in Figure �� This �gureshows two types of reactions� The �rst is to a process event� the terminationof the substep Identify Objects� The reaction is to restart the step if the classdiagram is still being modi�ed �since those modi�cations may outdate the objectdiagram�� The second is to an update of the requirements� upon which the workof this step depends� The reaction is to terminate the current step�

Preconditions and Postconditions A step may have preconditions and post�conditions� These are de�ned in separate packages that may be shared by multi�ple steps� The conditions are intended to help control the execution of the stepaccording to varying aspects of product� process� and resource state�� �Con�

� Process and resource states are also accessed implicitly in the step specicationthrough the step constraints and resource requirements� respectively�

Page 8: The Design of a Next-Generation Process Language? - CiteSeer

REACTIONS Identify�Classes�And�Objects�Reactions IS

�� Reactions for Booch Process Step Identify�Classes�And�Objects

BEGIN

REACT TO COMPLETION OF Identify�Objects BY

IF NOT CompleteIdentify�Classes� THEN

INVOKE SUBPROCESS Identify�Objects�

END IF�

END REACT�

REACT TO UPDATE OF Reqts�Spec BY

TERMINATE Identify�Classes�And�Objects�

END REACT�

END Identify�Classes�And�Objects�Reactions�

Fig� �� Example of a JIL reactive control speci�cation�

straints can also be speci�ed for a step� Constraints are syntactically like pre�conditions and postconditions� but they are enforced during the execution of thestep� Constraints thus support intra�step consistency� while preconditions andpostconditions support inter�step consistency��

As the default� a step should not execute unless its preconditions are satis�ed�and it should not terminate normally unless its postconditions are satis�ed�However� we believe that this model is too restrictive for software processes ingeneral� thus JIL includes several generalizations and extensions of it�

One generalization is that steps may be granted variances that allow themto be initiated before their preconditions are veri�ed or to terminate before theirpostconditions are veri�ed� Variances may be granted in cases where the condi�tions cannot be evaluated �e�g�� due to contention for objects or other resources�or where there is good reason for overriding the programmed condition ���� Thegranting of variances is supported through a runtime service�

A second generalization is that alternative responses may be made whenviolations occur� For example� when a step violates a postcondition the step maybe aborted and its inconsistent results discarded� Alternatively� the step may beterminated abnormally but its results retained� this would interrupt the normal�ow of the process but avoid the loss of work� In other cases� it may be moredesirable to allow the step to terminate normally while leaving the product in aninconsistent state� This would allow the process to continue normally but withthe product in need of some repair �this is somewhat analogous to the approachto handling inconsistency described in ���� The coding of such approaches isdone in the exception handlers �Section �����

At present� we are using Pleiades ��� as our product de�nition language andPleiades constraints as our primary form of preconditions and postconditions�Pleiades generates an Ada package speci�cation and the constraints representarbitrary Ada functions� Other invokable functions �e�g�� independently de�ned

Page 9: The Design of a Next-Generation Process Language? - CiteSeer

functions in Ada� may also be used as preconditions or postconditions�

Loose Process Organization The proactive and reactive control speci�ca�tions allow the �ow of control within a step to be programmed in great detail�The preconditions and postconditions allow for further �ne�grained conditionalcontrol� However� it is not always necessary in JIL to specify process control �owin great detail� it is often only necessary to indicate the composition of steps fromsubsteps� This is important because it allows the execution agent �e�g�� a humandeveloper� to determine the order in which to attempt to execute the substeps�although preconditions and postconditions may restrict what the user can ac�tually do�� If appropriate� simple control relations among the substeps of a stepcan be speci�ed using the step constraint functions� These are comparable tothe control speci�cations of ALF ��� which represent path expressions ���

An example of a step constraint speci�cation is shown in Figure �� Thisconstraint allows the extraction of class and object candidates to proceed inparallel� followed by the identi�cation of classes and objects in parallel� �Ad�ditional step constraint functions include Unordered �arbitrary sequence�� Any�nondeterministic�� and Alternate �choice��� If step constraints are given alongwith an activity speci�cation� then the step constraints are used to constrain theprogrammed behavior of the activity �violation of a step constraint by the ac�tivity leading to an exception�� If step constraints are given without an activityspeci�cation� they are used instead to drive the execution of substeps accordingto the indicated control pattern�

STEP CONSTRAINTS Restrict�Identify�Classes�And�Objects IS BEGIN

OrderedParallelExtract�Class�Candidates�

Extract�Object�Candidates��

ParallelIdentify�Classes�

Identify�Objects���

END STEP CONSTRAINTS Restrict�Identify�Classes�And�Objects�

Fig� �� Example of step�ordering constraints�

��� Exception Handling

Two main models of exception handling have been used in �rst�generation pro�cess programming languages �and in programming languages generally�� Thesemay be characterized as block�oriented and rule�based� The block�oriented modelis represented by Ada and C�� and was used in APPL�A ���� In this approach�an exception handling block is attached to the scope in which the exception mayoccur� This approach is especially appropriate for process�speci�c exception han�dling� where di�erent occurrences of the exception should be handled in context

Page 10: The Design of a Next-Generation Process Language? - CiteSeer

sensitive ways� It is cumbersome� though� when the exception must be handledin a uniform way� regardless of where it arises� The alternative model is rule�based exception handling� in which exceptions trigger exception�handling rules�The consistency rules of AP� �� and Marvel ��� are examples� This approachis ideally suited to the case in which an exception can be handled uniformly re�gardless of where it originates� but it is much more cumbersome when exceptionsmust be handled according to the context in which they arise�

Exception handling in JIL combines these complementary approaches to ex�ception handling� Global exception handling is provided through the reactivecontrol mechanism� in which exceptions are treated like �normal events outsidethe process in which they occur� This allows one process to react in a normal wayto an exception in another process� Local exception handling can be provided fora step through exception handlers� An example is shown in Figure � in whicheach handle statement represents an exception�handling block�

The exceptions shown in Figure correspond to violations of preconditionsand postconditions� The handling takes a variety of forms showing some of thepossibilities for terminating or continuing the step� The ABORT command ter�minates the step abnormally� either with or without raising an exception� TheTERMINATE command terminates the step normally� The REDO command termi�nates the current execution of the step and begins another� The AWAIT REPAIR

command suspends the execution of the step pending the repair of the failed con�dition� The repair must be e�ected by some other step� which may be invoked�for example� as a reaction to the condition violation� Two compound forms ofthe handle statement are the HANDLE UNLESS �not shown� and HANDLE UNTIL�These allow for the speci�cation of primary and secondary handling actions� theprimary action is taken� respectively� unless some given condition is met or untilsome given deadline is reached� in which case the secondary action is performed�

As with the variety of control models� the combination of local and global ex�ception handling contributes to semantic richness and availability of alternativeparadigms� It also allows �exibility that can contribute to ease of use�

��� Other Features

As noted� we are using the Pleiades ��� language to de�ne our products andproduct consistency conditions� Pleiades provides several high�level type con�structors that are especially appropriate for software products� including graphs�relations and relationships� and sequences�

A resource model and resource speci�cation language are under development�The model includes both project�oriented and system�oriented representationsof resources� including categories of human� software� and hardware resources�We believe that this model will be more general than those typically used insoftware systems and software processes to date�

Process state has been recognized as an important consideration in processcontrol� management� and evaluation ���� �� ��� We plan to have the JIL runtimesystem maintain key components of the process state automatically� Addition�

Page 11: The Design of a Next-Generation Process Language? - CiteSeer

HANDLER Handle�Class�And�Object�Errors IS

BEGIN

HANDLE FAILURE OF Requirements�Specification�Not�Empty

AS PRECONDITION BY

ABORT RAISE Requirements�Error�

END HANDLE�

HANDLE FAILURE OF No�Duplicate�Class�Names

AS POSTCONDITION BY

REDO STEP�

END HANDLE�

HANDLE FAILURE OF Every�Object�Has�A�Class

AS POSTCONDITION BY

AWAIT REPAIR�

UNTIL DeadlineIdentify�Classes�And�Objects� THEN

ABORT�

END HANDLE�

END Handle�Class�And�Object�Errors�

Fig� �� Example of JIL exception handlers�

ally� the JIL event model de�nes events related to changes in process state� thesecan be used to trigger re�exive reactions�

The investigation of transaction modeling� including consistency manage�ment� was a major theme of APPL�A� In JIL� for simplicity and naturalness�steps provide a framework for de�ning units of concurrency control� atomicity�and consistency� However� for �exibility� as in the APPL�A model� these proper�ties can be relaxed for a given step� Thus� for example� a step may be serializablewithout being atomic� Additionally� artifacts can be accessed in shared modes toallow collaborative work� Collaboration is further supported through an agendamanagement system� which allows group agendas and shared agenda items�

� The Interpretation of JIL Programs

The interpretation of JIL programs is itself a process� for which the Julia envi�ronment provides an execution engine� Since JIL interpretation is a process� theJIL interpreter is itself a process program� This program provides an operationalspeci�cation of JIL semantics� To bootstrap our execution capabilities� we areprogramming a preliminary �level � JIL interpreter in Ada� Using that� we planto program more sophisticated and �exible interpreters in JIL� This will provideus with a basis for experimentation with alternative interpretation strategies andalso with alternative language semantics�

A full treatment of Julia is beyond the scope of this paper �but see ����� Toillustrate the Julia philosophy and approach� we elaborate here on one key issue

Page 12: The Design of a Next-Generation Process Language? - CiteSeer

in the interpretation of JIL� namely multi�modal interpretation�JIL o�ers great �exibility in specifying process control �ow� particularly for

substep invocation� Such �exibility imposes a corresponding requirement for �ex�ibility on the JIL interpreter� Depending on the elements present in a step spec�i�cation� the step is interpreted in one of several modes� The choice of mode isdetermined primarily by three elements in the step speci�cation�

� Commands� These include both proactive commands �activity speci�cations�and reactive commands �reactions�� Substeps can be invoked by both�

� Execution constraints� These constrain the execution of substeps invoked byother means �e�g�� commands�� but they can also be interpreted directly todrive substep invocation�

� Substep preconditions and postconditions� These guard the execution of in�dividual substeps invoked by other means� but they can also provide a basisfor inferring when substeps may be automatically invoked�

The presence or absence of these elements in various combinations dictate variousmodes of interpretation� Table � summarizes the combinations that determineparticular modes� the modes are described brie�y below�

Programmed A step that has any command elements �activity speci�cation or re�actions� is interpreted in the programmed mode� In this mode it is assumed thatsubsteps of the step are invoked by commands in the proactive or reactive partsof the step� �The programmed mode thus supports any combination of proac�tive and reactive styles of programming� without any preference for either�� Ifsubsteps have preconditions or postconditions� these guard the substeps invokedvia commands� If execution constraints are also present� then the programmedsubstep invocations must conform to the constraints at runtime or an exceptionis raised� In both cases� programmed control �ow is locally constrained�

Guided A step with execution constraints but no commands or substep condi�tions is interpreted in the guided mode� In this mode� the execution constraintsare interpreted as a speci�cation of an order for automatic invocation of substeps�

Step FeaturesCommands Step Substep Interpretation Mode

Constraints Conditions

Present Secondary� Secondary� Programmed

Absent Present Absent Guided

Absent Absent Present Inferred

Absent Present Secondary Guided�Guarded

Absent Secondary Present Inferred�Constrained

Absent Absent Absent Unconstrained

Table �� Summary of applicability of JIL interpretation modes�

Page 13: The Design of a Next-Generation Process Language? - CiteSeer

Inferred A step with substep pre� and postconditions but no commands or ex�ecution constraints is interpreted by inference� In this mode� the conditions areused to infer an order for the automatic invocation of substeps�

Guided�Guarded and Inferred�Constrained A step may lack commands but haveboth execution constraints and substep conditions� For such cases� there are twopossible modes of interpretation� In the guided�guarded mode� the executionconstraints are given priority and used to determine which substeps to invoke�the substep conditions are used to guard the invocations as in the programmedmode� In the inferred�constrained mode� the substep conditions are given priorityand used to infer which substeps to invoke� inferences are subject to runtimechecking of the execution constraints� as in the programmed mode� The choicebetween the guided�guarded and inferred�constrained modes cannot be basedjust on the presence or absence of elements in a step speci�cation� A default modemay be stipulated� but the alternative can be allowed via interpreter directives�

Unconstrained The simplest mode of interpretation is the unconstrained� inwhich a step has substeps but lacks commands� execution constraints� or substepconditions� In this case the steps are invoked automatically in some nondeter�ministic order� possibly in parallel�

JIL programs can be composed of steps with heterogeneous interpretationmodes� The availability of multiple interpretation modes addresses the needsfor semantic richness and alternative paradigms� The ability to specify processcontrol �ow in greater or lesser detail facilitates �exibility and ease of use�

� Discussion

Fundamental Requirements JIL is a formally de�ned� executable programminglanguage with semantics are based on Ada� APPL�A� and Pleiades� This directlysupports the fundamental goals described in the introduction to Section �� Thelanguage will support a variety of kinds of analyses related to control and data�ow� concurrency control� exception propagation� resource usage� etc�

Semantic Richness JIL addresses an unusually wide variety of semantic domains�including process control� product artifacts� and project resources� Maintenanceof process state will also be supported through the language runtime system�The JIL semantic model builds on important lessons learned from �rst genera�tion process languages �e�g�� in integrating product and process representations�and in combining proactive and reactive control�� However� JIL goes beyond �rstgeneration languages in several important respects such as the availability of al�ternative control paradigms� the degree of �exibility in consistency management�and the generality of the exception handling mechanism�

Ease of Use JIL facilitates ease of use in several ways� The allowance for looselyspeci�ed process control means that process programs can be constructed and

Page 14: The Design of a Next-Generation Process Language? - CiteSeer

organized simply� without requiring detailed programming� The factoring of steprepresentations into relatively independent elements allows these to be treatedmore or less individually� Thus specialists in particular domains �e�g�� productde�nition or resource modeling� can work in their areas of expertise withoutneeding a detailed understanding of the whole language� The availability of al�ternative control models means that programmers can program in styles withwhich they are most comfortable or that are most appropriate to their processapplication� Support for visualization of processes and process programs shouldalso facilitate process understanding and de�nition by technical specialists andnon�specialists alike� We are committed to supplying templates� visual icons� andother high�level representations to facilitate the �coding of JIL programs�

Appropriate Abstractions JIL is at a level of abstraction that is directed to theprogramming of important aspects of software processes� The central constructin the language is the step abstraction� Specialized step attributes address es�sential semantics of the process� product� and resource models� Additionally� thevariety of control paradigms allows process control �ow to be expressed in termsthat are appropriate to a speci�c process or project� Although the language con�structs are intended to be especially appropriate for software processes� they arestill general purpose� The control model o�ers high�level control constructs� butimposes no particular control model� The Pleiades type model o�ers high�leveltype constructors� but imposes no required product model� This preserves the�exibility to program process�speci�c semantics in particular process programs�

Composability Composability of JIL programs is provided by the ability to cre�ate a process step from existing substeps� It is further supported by the �exibleinterpretation model� which allows composed substeps to be interpreted in a wayappropriate to their individual programming� It is also supported by the abilityto attach resource speci�cations to steps� which enables analysis of their com�bined resource requirements and allows planning for their integrated execution�

Clarity through Visualization The JIL language is textual� but we hope to pro�vide several sorts of visual windows into JIL programs and processes� We fore�see the development of several kinds of adjunct visual programming languages�for example� for composing process steps� organizing control �ow of substepswithin a step� specifying step execution constraints� associating software objectsto steps� associating resources to steps� and so on� Additionally we expect tosupport visualizations of process execution state �such as those provided by theProcessWall ����� resource usage� and other runtime concerns�

Multiple Paradigms JIL is especially rich in alternative control paradigms� It ac�commodates both simple and completely programmed representations of processcontrol� It combines proactive and reactive mechanisms� and incorporates condi�tional control� Step execution constraints can be used to guide process executiondirectly or to constrain execution that is programmed using other mechanisms�JIL also takes advantage of Pleiades support for multiple paradigms for software

Page 15: The Design of a Next-Generation Process Language? - CiteSeer

object management� for example� the alternative views of data structures� andthe provision of navigational and associative access to data�

� Status

We have been experimenting with preliminary versions of the JIL� writing pro�cess programs and re�ning the syntax and semantics� The JIL de�nition hasprogressed to a stable initial version with which we are continuing developmentof process programs� language support technology� and environment infrastruc�ture� We have de�ned the BNF for the JIL grammar and generated a parserthat translates JIL source code into an IRIS �� internal representation� We aredeveloping an interpreter and a JIL�to�Ada command translator� We are also de�veloping visual language �implemented in Java� for a subset of JIL� Our primaryprocess programming e�orts are directed at a design process based on BoochObject Oriented Design �� and a data�ow�analysis process based on iterative�incremental improvement of analytic accuracy ���

Acknowledgments

The Julia�JIL project re�ects the work of many people� The Julia�to�IRIS trans�lator was built by Peri Tarr� The resource model has been developed by RodionPodorozhny� The agenda�management system has been programmed by Eric Mc�Call� The Booch product server was programmed in Pleiades by Jin Huang andArvind Nithrakashyap� Elements of the user interface have been programmed bySandy Wise� Process programs in JIL have been written by Peri Tarr� RodionPodorozhny� Jin Huang� Dan Rubenstein� Chris Prosser� and Todd Wright�

References

�� D� Baker� D� Fisher� and J� Shultis� The Gardens of Iris� Incremental SystemsCorporation� Pittsburgh� PA� �����

� R� Balzer� Tolerating inconsistency� In Proc� of the ��th International Conferenceon Software Engineering� pages ��� � ���� IEEE Computer Society Press� May�����

�� S� Bandinelli and A� Fuggetta� Computational re�ection in software process mod�eling� the SLANG approach� In Proc� of the ��th International Conference onSoftware Engineering� pages �������� IEEE Computer Society Press� �����

�� S� Bandinelli� A� Fuggetta� and S� Grigolli� Process modeling in�the�large withSLANG� In Proc� of the Second International Conference on the Software Process�pages ������ IEEE Computer Society Press� �����

�� N� Belkhatir� J� Estublier� and M� L� Walcelio� ADELE�TEMPO� An environ�ment to support process modeling and enaction� In A� Finkelstein� J� Kramer�and B� Nuseibeh� editors� Software Process Modelling and Technology� pages ��� �� John Wiley � Sons Inc�� �����

�� G� Booch� Object�Oriented Analysis and Design with Applications� The Ben�jamin�Cummings Publishing Company� Inc�� second edition� �����

Page 16: The Design of a Next-Generation Process Language? - CiteSeer

�� R� H� Campbell and A� N� Haberman� The Specication of Process Synchroniza�tion by Path Expressions� In Operating Systems Proc� of an Int� SymposiumRocquencourt France� volume �� of Lecture Notes in Computer Science� pages ������ Springer� �����

�� G� Canals� N� Boudjlida� J��C� Derniame� C� Godart� and J� Lonchamp� ALF� Aframework for building process�centred software engineering environments� InA� Finkelstein� J� Kramer� and B� Nuseibeh� editors� Software Process Modellingand Technology� pages ��� � ���� John Wiley � Sons Inc�� �����

�� D� Cohen� AP� Manual� Univ� of Southern California� Information Sciences Insti�tute� March �����

��� R� Conradi� C� Fernstr�om� and A� Fuggetta� Concepts for evolving software pro�cesses� In A� Finkelstein� J� Kramer� and B� Nuseibeh� editors� Software ProcessModelling and Technology� pages � � ��� John Wiley � Sons Inc�� �����

��� R� Conradi� M� Hagaseth� J��O� Larsen� M� N� Nguy�en� B� P� Munch� P� H� Westby�W� Zhu� M� L� Jaccheri� and C� Liu� EPOS� Object�oriented cooperative processmodelling� In A� Finkelstein� J� Kramer� and B� Nuseibeh� editors� Software Pro�cess Modelling and Technology� pages �� � ��� John Wiley � Sons Inc�� �����

�� R� Darimont and A� van Lamsweerde� Formal renement patterns for goal�drivenrequirements elaboration� In Proceedings of the Fourth ACM SIGSOFT Sympo�sium on the Foundations of Software Engineering� pages �������� Oct� �����

��� W� Deiters and V� Gruhn� Managing software processes in the environment mel�mac� In Proc� of the Fourth ACM SIGSOFT Symposium on Practical SoftwareDevelopment Environments� pages ������� ACM Press� ����� Irvine� California�

��� M� B� Dwyer and L� A� Clarke� Data Flow Analysis for Verifying Properties ofConcurrent Programs� In Proceedings of the Second ACM SIGSOFT Symposiumon Foundations of Software Engineering New Orleans� pages ����� ACM Press�December �����

��� W� Emmerich� S� Bandinelli� L� Lavazza� and J� Arlow� Fine grained process mod�elling� An experiment at british airways� In Proc� of the Fourth International Con�ference on the Software Process� pages ��� IEEE Computer Society Press� Dec������

��� C� Fernstr�om� PROCESS WEAVER� Adding process support to UNIX� In Proc�of the Second International Conference on the Software Process� pages � � �������

��� W� Harrison and H� Ossher� Subject�Oriented Programming� A Critique of PureObjects� In Proceedings of the Eighth Annual Conference on Object�Oriented Pro�gramming Systems Languages and Applications� pages ������� October �����Published as ACM SIGPLAN Notices � ����

��� D� Heimbigner� Experiences with an Object�Manager for A Process�Centered En�vironment� In Proceedings of the Eighteenth International Conf� on Very LargeData Bases� Vancouver� B�C�� ��� August ����

��� D� Heimbigner� The ProcessWall� A Process State Server Approach to ProcessProgramming� In Proc� Fifth ACM SIGSOFT�SIGPLAN Symposium on Soft�ware Development Environments� pages �������� Washington� D�C�� ���� Decem�ber ����

�� H� Iida� K��I� Mimura� K� Inoue� and K� Torii� Hakoniwa� Monitor and navigationsystem for cooperative development based on activity sequence model� In Proc� ofthe Second International Conference on the Software Process� pages �� � ��� IEEEComputer Society Press� �����

Page 17: The Design of a Next-Generation Process Language? - CiteSeer

�� G� Junkermann� B� Peuschel� W� Sch�afer� and S� Wolf� MERLIN� Supporting co�operation in software development through a knowledge�based environment� InA� Finkelstein� J� Kramer� and B� Nuseibeh� editors� Software Process Modellingand Technology� pages ��� � ��� John Wiley � Sons Inc�� �����

� G� E� Kaiser� N� S� Barghouti� and M� H� Sokolsky� Experience with process mod�eling in the marvel software development environment kernel� In B� Shriver� edi�tor� ��rd Annual Hawaii International Conference on System Sciences� volume II�pages �������� Kona HI� January �����

�� G� E� Kaiser� S� S� Popovich� and I� Z� Ben�Shaul� A bi�level language for softwareprocess modeling� In W� F� Tichy� editor� Con�guration Management� number in Trends in Software� chapter � pages ����� John Wiley � Sons� �����

�� T� Katayama� A hierarchical and functional software process description and itsenaction� In Proc� of the ��th International Conference on Software Engineering�pages ��� � ���� IEEE Computer Society Press� �����

�� C� Montangero and V� Ambriola� OIKOS� Constructing process�centered sdes� InA� Finkelstein� J� Kramer� and B� Nuseibeh� editors� Software Process Modellingand Technology� pages �� � ��� John Wiley � Sons Inc�� �����

�� L� J� Osterweil� A Process�Object Centered View of Software Environment Ar�chitecture� In R� Conradi� D� T� and D� Wanvik� editors� Advanced ProgrammingEnvironments� pages �������� Trondheim� ����� Springer�Verlag�

�� L� J� Osterweil� Software processes are software� too� In Proc� Ninth InternationalConference on Software Engineering� pages ���� IEEE Computer Society Press������ Monterey� CA� March �� � April � �����

�� H� D� Rombach and M� Verlage� How to assess a software process modeling formal�ism from a project member�s point of view� In Proc� of the Second InternationalConference on the Software Process� pages ��� � ���� IEEE Computer SocietyPress� �����

�� M� Saeki� T� Kaneko� and M� Sakamoto� A method for software process modelingand description using LOTOS� In Proc� of the First International Conferenceon the Software Process� pages �� � ���� IEEE Computer Society Press� �����Redondo Beach� California� October� �����

��� S� M� Sutton� Jr� Preconditions� postconditions� and provisional execution in soft�ware processes� Technical Report CMPSCI TR ������ University of Massachusettsat Amherst� Computer Science Department� Amherst� Massachusetts ������ Au�gust �����

��� S� M� Sutton� Jr�� D� Heimbigner� and L� J� Osterweil� APPL�A� A language forsoftware�process programming� ACM Trans� on Software Engineering and Method�ology� � �������� July �����

�� S� M� Sutton� Jr� and L� J� Osterweil� The design of a next�generation processlanguage� Technical Report CMPSCI Technical Report ������ University of Mas�sachusetts at Amherst� Computer Science Department� Amherst� Massachusetts������ May ����� revised January� �����

��� S� M� Sutton� Jr� and L� J� Osterweil� Programming parallel work�ows in JIL�In Proceedings of the �th International Conference on Parallel and DistributedComputing and Systems� ����� To appear�

��� M� Suzuki and T� Katayama� Meta�operations in the process model HFSP for thedynamics and �exibility of software processes� In Proc� of the First InternationalConference on the Software Process� pages � � ��� IEEE Computer SocietyPress� ����� Redondo Beach� California� October� �����

Page 18: The Design of a Next-Generation Process Language? - CiteSeer

��� P� L� Tarr and L� A� Clarke� PLEIADES� An Object Management System forSoftware Engineering Environments� In Proceedings of the First ACM SIGSOFTSymposium on the Foundations of Software Engineering� pages ������ IEEE Com�puter Society Press� Dec� �����