Similar documents
UsingAutomaticMemoizationasa SoftwareEngineeringToolin

UML TUTORIALS THE USE CASE MODEL

UML TUTORIALS THE COMPONENT MODEL

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

USB CASH DRAWER INTERFACE. Introduction

4.4 What is a Requirement? 4.5 Types of Requirements. Functional Requirements


Functional Requirements Document -Use Cases-

Modeling a Problem Scenario with UML

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML

Appendix... B. The Object Constraint

ESCI 386 IDL Programming for Advanced Earth Science Applications Lesson 6 Program Control

Case Study Solutions. This appendix contains the solutions to the Acme Mining Company Case Study.

The Workflow Management Coalition Specification Workflow Management Coalition Terminology & Glossary

Rational Software. Course Registration System Use-Case Model

Hybrid Planning in Cyber Security Applications

Best Practices for Data Dictionary Definitions and Usage Version

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment Marque Browne Manuel Honegger


WESTMORELAND COUNTY PUBLIC SCHOOLS Integrated Instructional Pacing Guide and Checklist Computer Math

desired behaviour (global constraints) composite system putative behaviour: putative agents, actions, etc.

From Business Process Models to Use Case Models

Software Requirements Specification of A University Class Scheduler

BCS Certificate in Systems Modelling Techniques Syllabus

Requirement engineering Exercise the POS System solution

Scenario-driven Testing of Security-related Domain-specific Language Models

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Formally speaking: How to apply OCL

Home Assignment 4 OCL

Etudes de cas en OCL avec l outil USE 2

Model Driven Security: Foundations, Tools, and Practice

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Compliance ow - managing the compliance of dynamic and complex processes

SmartConnect Use Case: C7 Utility Uses SmartConnect Data for Targeted Marketing Campaigns December 29, 2009

Capital Works Construction Project. [Insert Project Title] [Insert Sponsoring Agency]

Rigorous Software Development CSCI-GA

Sofware Requirements Engineeing

Specification of the UFT Web-Based Fitness Tracking Software

ABAP QUERY AN EXAMPLE

The Authoring Process of the UML-based Web Engineering Approach

Chapter 4: Design Principles I: Correctness and Robustness

Storage and File Structure

5 Process Modeling using UML

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions

Design by Contract beyond class modelling

causeddroppingofthetos-basedroutingrequirementfromtheospfspecication.

BUSINESS ARCHITECTURE MEETS STRATEGIC PLANNING. 9/16/2014 Austin, TX

Dr.-Ing. Rainer Rasche dspace GmbH Rathenaustrasse Paderborn automotive testing expo June 22, 2010

M2-R3: BUSINESS SYSTEMS

UML Modeling Guidelines

LECTURE 17: LIBRARY CASE STUDY. Software Engineering Mike Wooldridge

UML for e-commerce. Doug Rosenberg ICONIX Software Engineering, Inc. iconixsw.com.

Case Study: Design and Implementation of an Ordering system using UML, Formal specification and Java Builder

Proceedings of the International MultiConference of Engineers and Computer Scientists 2013 Vol I, IMECS 2013, March 13-15, 2013, Hong Kong

From Use Cases to Test Cases. Step-by-step approach to ensure the quality of specifications and to derive test cases based on a use case model

Loop Invariants and Binary Search

Application of UML in Real-Time Embedded Systems

SERIES M: TELECOMMUNICATION MANAGEMENT, INCLUDING TMN AND NETWORK MAINTENANCE Integrated services digital networks

Software Requirement Specification

How To - Implement Clientless Single Sign On Authentication in Single Active Directory Domain Controller Environment

Adapting C++ Exception Handling to an Extended COM Exception Model

User Requirements Document

Click DVDs. Just click to pick. CS4125 Systems Analysis and Design Chantelle Geoghegan Danielle Frawley

Quotes from Object-Oriented Software Construction

Unit testing using Python nose

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

Unified University Inventory System (UUIS) Software Requirements Specifications

SYSTEMS AND SOFTWARE REQUIREMENTS SPECIFICATION (SSRS) TEMPLATE. Version A.4, January 2014 FOREWORD DOCUMENT CONVENTIONS

ALGORITHMS AND FLOWCHARTS. By Miss Reham Tufail

Using the VMRC Plug-In: Startup, Invoking Methods, and Shutdown on page 4

PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms

How To - Implement Clientless Single Sign On Authentication with Active Directory

How To Design Software

GContracts Programming by Contract with Groovy. Andre Steingress

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

Business Process Integration Methodology A study of RosettaNet

Service Design: Using a GSRM Meta-Model. Ed Buchinski Treasury Board of Canada Secretariat UN/CEFACT TBG-19 Oct. 5 th, 2006

A B C. Decomposition I Y


Model-based Testing of Automotive Systems

Transcription:

ExperienceUsingtheJILProcessProgrammingLanguage tospecifydesignprocesses StanleyM.SuttonJr.,BarbaraStaudtLerner,andLeonJ.Osterweil ComputerScienceDepartment UniversityofMassachusetts Amherst,Massachusetts01003 ABSTRACT Softwaredesignisacomplexprocessthatrequiressignicanthumaninvolvement,collaboration,andcoordinateduseoftoolsandartifacts.Softwaredesignmethodsdescribesoftwaredesigningeneraltermsbutneglectmanydetailsthatareimportanttoexecutingspecicdesignprocesses.Aprocessprogramthatdenes adesignprocessclearlyandpreciselyshouldbeanimportantaidtosupportingandreasoningabouttheprocess.thedemandsplacedonaprocessprogramming languageindeningasoftwaredesignprocessaregreat, includingtheneedforexiblecontrolow,errorhandling,resourcemanagement,agentcoordination,and artifactconsistencymanagement.thispaperdescribes theuseofjil,aprocessprogramminglanguage,inthe denitionofaprocesssupportingboochobject-oriented design.thepaperillustratestheneedforprecisionand clarityindeningsoftwareprocesses,anditindicates howvariousofthefeaturesofjilareeectiveinmeetingtheseneeds. 1Introduction Softwaredevelopmentandmaintenancearewidely agreedtobeparticularlycomplexundertakings.they entailthedevelopmentandmanagementofdiversesoftwareartifacts,throughthecoordinationofvarioushumanandautomatedagents,underthecontrolofnumerouscomplexprocesses.webelievethateective processescanbekeyinsuccessfullycoordinatingagents todeveloptheneededartifacts.ourworkaimstoproduceprocessesthataredemonstrablyeectiveinthese ways.amajorobstacleinpresentingdemonstrablyeffectiveprocesseshasbeenthelackoflanguagesthatare adequatevehiclesforthis. Inourpastworkwehavepresentedlanguagesdesigned tosupporttheclearandpreciseexpositionofprocess. MostrecentlywehaveproposedthattheJIL[16]processprogramminglanguageincorporatesamixoffeaturesandabstractionsthatseemtooerpromiseof supportingtheclearandpreciseexpositionofcomplex ThisworkwassupportedbytheAdvancedResearchProjects AgencyundergrantF30602-94-C-0137andF30602-97-2-0032. softwareprocessideas.whilejilseemspromising,its successhascertainlynotyetbeendemonstrated. Inthispaperwedescribeaneorttovalidatewhether JILcanbeusedtoclearlyandpreciselyexpresscomplex softwareprocesses.weselectedapopularsoftwaredesignmethod,boochobjectorienteddesign(bood), andattemptedtodeterminewhichlanguagefeatures areneededinordertoexpresstheprocessforperformingbood.wealsoevaluatedthedegreetowhichthe featuresandabstractionsincorporatedintojilsupport theseneeds. JILcurrentlyexistsasaprototypelanguagespecicationthatismorecompleteanddetailedinsomeareas thaninothers.onemajorgoaloftheworkdescribed herewastoidentifyareasinwhichfurtherelaboration isneeded,andareasinwhichevolutionofthecurrent languagenotionsisindicated. Theremainderofthispaperisorganizedasfollows.Section2providesbackgroundonobject-orienteddesign processesandindicatessomeofthechallengingaspects oftheseprocesses.section3providesanoverviewofthe JILprocessprogramminglanguage.Section4thendiscussesindetailsomespecicsemanticcomplexitiesof designprocesses,drawingonboodforexamples,and showshowjilcanbeusedtoaddressthosecomplexities.section5presentsanevaluationofourexperience, andsection6describesourstatusandfuturework. 2ObjectOrientedDesignProcess Designisaninherentlycomplexactivitythatisbecomingincreasinglycriticalassocietyanditsinfrastructurebecomeincreasinglycomputerized.Numerousresearchershaveproposedobject-orienteddesignmethods tohelpdesignersapproachdesignprocessesinasystematicfashionwiththegoalofachievinghigherqualitydesignsasaresult[3,11,5,19,7].numeroustools,such asrationalrose,graphicaldesigner,andparadigm Plus1havebeendevelopedtosupportthesemethods, 1RationalRose{http://www.rational.com/products/rose/; GraphicalDesigner{http://www.advancedsw.com/;Paradigm Plus{http://www.platinum.com/products/appdev/pplusps.htm. SubmittedtoICSE'98 1

butthesetoolsareprimarilyaimedatassuringthatdesignartifactsareexpressedincorrectnotation.theydo notaimtosupporttheprocessesbywhichtheseartifactsaredeveloped,evaluated,andevolved.aprocess programcanprovidetheframeworkthatallowssuch toolstobeusedeectivelywithintheguidelinesofthese methods[12]. Evenwhenaspecicmethodisused,object-oriented designremainsanactivitythatisinherentlyiterative, hasaexibleowofcontrol,and,perhapsmostimportantly,islargelydrivenbyhumaninnovation.unlike workowapplications,whichareoftenmoremechanical innature,designprocessesmustallowforagreatdealof exibility,reactivity,andexceptionmanagement.moreover,theusersofaprocessmustfeelthatitisproviding supportandguidanceratherthanauthoritariancontrol. Inthispaper,weuseBoochObjectOrientedDesign (BOOD)[3]asanexamplemethodtodemonstratehow theconstructsinjilprovidethefunctionalitytomeet thedemandsofdesignprocessspecication.bood consistsoffourmainsteps:identifyingclassesandobjects,identifyingthesemanticsoftheclassesandobjects,identifyingtherelationshipsbetweentheclasses andobjects,andimplementingtheclassesandobjects. Thesestepsarerepeatediteratively,typicallystarting withhighlevelsofabstractionanditerativelyadding lowerlevelsofabstraction.eachofthesemajorsteps isfurthersubdividedintosmallersteps.weshowhow JIL'sstepcompositionandproactivecontrolmodelcan meettheseneeds. Inmanycases,thechoiceofwhichsubstepstouseand theorderinwhichtheyareappliedislefttothedesigner.forexample,duringtheidenticationofclasses andobjects,adesignercanapplyanyofthetechniques ofclassicalobject-orientedanalysis,behavioranalysis, orusecaseanalysis.weshowhowjilcansupportthis freedomofchoice.insomecases,however,aproject managermightrequiretheuseofaparticulartechnique, inwhichcasearenementoftheboodprocessprogramcouldrequiretheuseofthattechniqueratherthan makingitoptional.bymodifyingtheprocessprogram, thesevariationsinthemethodcanbespeciedandenforced. ThesuccessfulcompletionofaBOODstepischaracterizedbywell-formednessconditionsondesignartifacts suchasthoserepresentingthedenitionofclasses,objects,andtheirrelationships.thesearemilestonesof theboodprocessandarerepresentedaspostconditionsinthejilprocessprogram.jil'sreactionand exception-handlingmechanismssupportprecisespecicationofactionstotakeintheeventthatpostconditions donothold. Itshouldbeclearfromthisdiscussionthattheroleof humansinthedesigniscentralevenwhenthedesignis formalizedwithaprocessprogram.humansareresponsibleforperformingmanyofthesteps,oftenchoosing whichstepstoperform,checkingmostofthepostconditions,andxingproblemsthatresultinfailuresofthe postconditions.jilsupportshumansinthesetasks, butitalsoprovidestheabilitytotracktheprogress ofthedesignprocess,toassistintheassignmentand reassignmentofstepstoagents,bothhumanandautomated,andtomanagecontentionforresourcesamong theagents.thevalueofthesecapabilitiesincreaseswith morecomplexdesignsandlargerdesignteams. 3OverviewofJIL JIL[16]isaprocess-programminglanguageintendedto supportthedevelopmentofhigh-levelprocessabstractionsthroughacollectionofpowerfulandeasytouse semanticconstructs.jilrepresentsprocessesascompositionsofsteps.thespecicationofastepisdened intermsofanumberofelements.eachelementdenes aspecicaspectofstepsemantics,suchasdata,control, resourceusage,orconsistencyrequirements.formost elements,theactualelementdenitionsappearinaseparatebody.inthissection,wegiveaavorofjilby presentinganexamplestepspecicationanddescribing theelementsthatappearinstepspecications. Figure1containsanexamplestepspecicationinJIL. ThisspecicationrepresentstherststepoftheBOOD process.whilethisexampledoesnotincludeallpossibleelementsofastepspecication,itisrepresentative oftheirbasicstyle.elementsnotpresentinthisexamplewillbeseeninlaterexamples.briey,theelements ofastepspecicationareasfollows: Objectsanddeclarations:Parametersandlocal datausedbythestep. Resources:Specicationsofresourcesneededbythe step,includingpeople,software,andhardware.people mayberepresentedasspecicindividualsorbyroles andskills.softwaremayincludetools,services,and systems.hardwaremayincludecomputersystemsand non-computerobjects. Steps:Identicationofthesubstepsofastep(which arethemselvessteps).thesubstepsareusedwithinthe controlowelementsdescribedbelow. Activity:Identicationoftheunitcontaininganimperativedenitionoftheactionsthesteptakeswhenit isinvoked.thisistypicallyanembeddingofsubstep invocationsintotraditionalprogrammingconstructs.2 2Notethatactivityasusedinthispapergenerallyreferstoa JILlanguageconstruct,nottoelementsofadesignmethodasin Booch[3]. SubmittedtoICSE'98 2

STEPBooch_ProcessIS OBJECTS Req_file: FILE; Data_dictionary: DICTIONARY; Interface_file: FILE;... STEPS: Identify_Classes_and_Objects; Identify_Class_and_Object_Semantics; Identify_Class_and_Object_Relationships; Implement_Classes_and_Objects; Propagate_Requirements_Update; ACTIVITY:Booch_Process_Activity; REACTIONS:Booch_Process_Reactions; PRECONDITIONS: FROMRequirements_ConstraintsUSE Approved(Requirements_File);... POSTCONDITIONS: FROMDesign_ConstraintsUSE Interface_Files_Complete( Data_Dictionary,Interface_Files);... HANDLERS:Booch_Process_Handlers; ENDBooch_Process Figure1:SpecicationforStepBoochProcess Reactions:Identicationoftheunitthatspecies programmedreactionstotriggeringevents.eventsmay includeartifactupdates,processcontrolevents,and non-localexceptions,whilethereactionstypicallyincludesubstepinvocations. Stepexecutionconstraints:Restrictionsonthe relativeexecutionorderofsubsteps.thesecanbeused toconstraintheruntimebehavioroftheactivitiesand reactionsortodrivesubstepexecutiondirectly. Preconditions, constraints, postconditions: Consistencyconditionsthatmustbesatised(respectively)priorto,throughout,andsubsequenttotheexecutionofthestep.Conditionsmayrefertoproduct, process,orresourcestate. Handlers:Identicationofhandlersforlocalexceptions.Handlerscaninvokesubsteps,thusexception handlingcanusethefullpowerofjiltorecoverfrom errors. Theelementsinastepspecicationrepresentavariety ofsemanticsthatareimportanttothedenition,analysis,understanding,andexecutionofsoftwareprocesses ingeneral.stepsareimportantnotonlyasaprocess modelingconstructinandofthemselves,butalsoasa mechanismforbindingandscopingthesemanticsrepresentedbythesevariouselements. AssuggestedbytheexampleinFigure1,JILisafactoredlanguage.Bythiswemeanthateachelementmay beincludedoromittedfromastepspecicationasisappropriateforthestepathand,leadingtoaspecication withorwithoutthecorrespondingfactor.togivejust someexamples,resourcespecicationsorstepexecution constraintsmaybeomitted(asintheexample),orthe activityorreactionsmaybeomitted,orpreconditions andpostconditionsmaybeomitted.thisfactoredapproachallowsprocessestobespeciedinjustenough detail,andinjustthoseterms,thatarerelevanttothe processandtotheneedsofthepeopleandtheorganizationforwhichitisbeingdened.thecombinationof powerfulsemanticconstructswithafactoredlanguage designleadstoalanguagethatisbothexpressiveand exible,therebypromotingprecision,adaptability,and easeofuse. TheJuliaprocess-executionengineisdesignedtosupporttheexecutionofJILprocessprograms(JILstands forjuliainputlanguage).juliawillprovideavarietyofservicesrelatedtotheexecutionofjilprocess programsandmanagementofjilprocesses.thejulia architectureisdiscussedinmoredetailin[15];relevant aspectsarediscussedherewhereappropriate. 4SupportingDesignProcesses Designmethodsaretypicallydescribedinrelativelygeneralterms,omittingmanydetailssoastobeadaptable to,andadoptableby,awidevarietyoforganizations andprojects.ineect,theydenegenericprocessarchitectures[13].designmethodsalsotypicallyemphasizenominalbehavior,thatis,theydescribehowthe designprocesswouldproceedunderidealconditions. Theytendtoomitaspectsrelatedtohandlingerrors, propagatingchanges,andaccommodatinginconsistencies.additionally,designmethodstendtofocusonthe actionsofanindividualdesigneranddonotaddress collaborationamongdesignersortheallocationofresourcestoindividualdesigners.thus,theactualexecutionofdesignprocessesrequiresaddressingmanyissues andperformingmanyactivitiesthatarenotdenedby designmethods.thehandlingoftheseadditionalissuesandactivitiesisasignicantlycomplicatingfactor inactualsoftwaredesignprocesses. Ifactualsoftwaredesignprocesses(asopposedtoprocessarchitectures)aretobedened,thentherangeof relevantconcernsmustbeaddressed.moreover,pro- SubmittedtoICSE'98 3

cessdenitionsshouldbeclearandprecise,soasto promoteunderstandabilityandfacilitateexecutionconsistentwiththeintendeddenition.however,design processeshaveanumberoffeaturesthatmakethemtoo complextobedescribedeectivelyusingsimplework- owmodelsorstandardprogramminglanguages.these featuresofdesignprocessesrevolvearoundthehuman creativeelement,theneedtocopewithachangingenvironment,theiterationandbacktrackingthatarecommonplaceyetunpredictableindesign,themanagement ofteamsofdesignerscontendingforlimitedresources, andtheneedforensuringconsistencyofdesignartifacts eventhoughtheyarebeingdevelopedbymultipledesignersinparallel. Programminglanguagesarecomputationallypowerful buttheirabstractionsarerelativelylowlevelanddo notspeakdirectlytomanyprocessconcerns.workow languagestendtobehigherlevelbutrelativelylimited computationally.forexample,theytypicallylacksupportforsomeimportantkindsofprocesssemantics(e.g., exceptionhandling).manylanguageshavebeenproposedforsoftwareprocessprogramming,butmanyof thesebearcloseresemblancetoprogramminglanguages (e.g.,[4,14,10,9,8,1])ortoworkowlanguages(e.g., [6,2]),andthustheytendtosuerfromthesamelimitations.Inthissection,weelaborateonselectedaspects ofdesignprocesseswithexamplesfrombood,providingexplanationofhowjilsupportstheseaspectsof thedesignprocess.theparticularaspectsofdesign processesweaddressareexiblecontrolow,coordinationofpeopleandtools,copingwitherrors,andartifact consistency. 4.1FlexibleControlFlow Onemajorchallengeindeningadesignprocessliesin providingenoughclarityandprecisiontoassurethecreationofadesignthathasthespecicqualityattributes thathavebeenselectedfortheparticularproject.at thesametime,though,designersmustretainenough exibilitywithintheapprovedprocesstousetheircreativetalentseectively.agooddesignprocessmust alsobeabletoreacttoeventsthatmightaectthenormalowofcontrolthroughtheprocess,suchaschanges intherequirementsoridenticationofanerrorinthe design.inthissection,weprovidesomeexamplesofthe needforclear,precise,yetexiblecontrolowindesign processes,includingthenominalprocessowandreactionstoevents,anddescribehowjiladdressesthese needs. 4.1.1DescribingtheNominalProcessBOODisdescribedintermsofasequenceofsteps.Thestepsare decomposedintoactivities.theorderinwhichtheactivitiesareperformedandthemannerinwhicheach activityisperformedareleftunspecied.forexample, therststepofboodistoidentifytheclassesand objectsforthedesign.theactivitiesincludeclassical object-orientedanalysis,behavioranalysis,anduse-case analysis.booddoesnotspecifyanorderfortheseactivities,oreven,infact,whetherallmustbecarried out.suchquestionsmaybedeterminedbytheorganization,project,orindividualdesignerresponsiblefor thedesign. JILsimilarlydescribesaprocessasacollectionofsteps, whichmaybedividedintosubsteps.jilprovidesavarietyofconstructsforspecifyingthecontrolowbetween stepsandtheirsubsteps.bymeansoftheseconstructs processcontrolowmaybedescribedsimplyorindetail,strictlyorexibly.decisionpointscanbeexplicitly represented,andthosedecisionsmaybemadebyhuman orautomatedagents. JILsupportssimplespecicationsofprocesscontrol owthroughthestepexecutionconstraints.these arestepcompositionoperatorsthattakeastheirargumentsstepsornestedstepcompositionoperators. TheORDEREDoperatorspeciesthatstepsmustbeexecutedinthegivenorder;thisissimplebutrigid.Three otheroperatorsintroducevariousdegreesofexibility intoprocessexecution.theunorderedoperatorspeci- esthatstepsmustbeexecutedinsomesequence,but onethatisnotdenedbytheprocessprogram.the PARALLELoperatorspeciesthatthegivenstepsmust beexecutedaccordingtosomenondeterministicserialor concurrentinterleaving.anexampleshowingthecompositionofoperatorsisshownbelow: Ordered(Parallel(Classical_OO_Analysis; Behavior_Analysis; Use_Case_Analysis), Review_Class_Diagram); AnotherusefulstepcompositionoperatoristheTRY, whichspeciesthatthegivensubstepsaretobeexecutedinthegivenorder,butstoppingwhenonesucceeds.inbood,theneedforthiscontrolconstructis apparentwhenconsideringthesubstepsinvolvedinimplementingclassesandobjects.ifthechosenstandard strategyforimplementingaclassfails,thenacustom implementationistriednext.thiseectisachieved withthetryoperator: TRY(UNORDERED( Look_for_Inheritance, Look_for_Objects_to_Delegate_to, Look_for_Parameterized_Class), Custom_Implementation); Thestepexecutionconstraintsoersimple,clear,preciseconstructorsforspecifyingprocesscontrolows SubmittedtoICSE'98 4

withstrictorexiblebehaviorsandtheopportunityfor humaninvolvementinguidingprocesscontrol.however,theyarenotcomputationallygeneral.fordetailedprocessprogramming,jiloersactivitiesand REACTIONS(thelatterarediscussedinSection4.1.2). TheactivitybodyofaJILstepprovidesforimperative programmingofproactiveprocesscontrolows,thatis, whatthestepshoulddowhenitisinvoked.thejil commandsyntaxincludesfamiliarformsofiterationand branchingstatements.jilalsoaddsaparallelcommandandcommandsbywhichsubstepscanbeinvoked asthreadsorseparateprograms.(theprogrammingof parallelworkowsinjilisdiscussedatlengthin[17].) AnexampleofanactivitybodyrepresentinganimplementationforstepIdentifyClassesAndObjectsispresentedinFigure2.Theprocessprogramforthisactivity,althoughmorecomplexthantheexamplesofstep executionconstraints,isstillstraightforward.moreover,itispreciseandclearaboutmanyimportantaspectsoftheprocess.theclassesandobjectsareiterativelyidentiedandreviewed.theidenticationis performedaccordingtoapreferredanalysistechnique; thetechniqueusedmayvaryfromiterationtoiteration withinasingleexecutionofthestep.theanalysistechniqueisselectedbyaprogrammedstepthatisdenedas partoftheprocess.theimplementationofthatstepis notshownhere,but,dependingontheimplementation, thepreferredtechniquemightbedeterminedbyqueryingtheprojectmanager,queryingthedesignengineer, orqueryingaprojectdatabase.inanycase,theprecise functionusedinselectingthepreferredanalysistechniqueisdenedexplicitlybytheprocessprogrammer, anddierentselectionfunctionsmaydistinguishdierentdesignprocesses.theclassdiagramthatresults fromanalysisisreviewedattheendofeachiteration. Iterationcontinuesuntiltheclassdiagrampassesreview oruntilthedeadlineforthestepisnear(inwhichcase anexceptionisraised). Itiseasytoimagineothersignicantdetailsoftheprocessthatmightbeprogrammeddierently.Forexample,thepreferredanalysistechniquemightbeobtained onceperinvocationofthestepinsteadofonceperiterationoftheloop,orwhenthedeadlineisimminent anextensionmightberequestedinsteadofraisingan exception,ortheiterationthatisnowwithinthestep mightbemovedoutsidethestep.noneofthesespecic issuesissignicantfortheboochmethod,buttheyare indicativeofthewiderangeofconcernsthatmustbe addressedinanexecutableprocess,andallcanbestated preciselyandclearlyinajilstepactivitybody. Althoughtheprocessprogramforthisactivityis straightforward,itwouldbediculttocapturethispro- cessanditsvariantsusingjustthestepexecutioncon- ACTIVITYBODY Identify_Classes_And_Objects_ActivityIS BEGIN Get_Deadline(Deadline); Identify_And_Review:LOOP INVOKESUBPROCESS Get_Preferred_Analysis_Technique(Technique); CASETechniqueIS WHENClassical=>INVOKESUBPROCESS Classical_OO_Analysis(...); WHENBehavioral=>INVOKESUBPROCESS Behavior_Analysis(...); WHENUse_Case=> INVOKESUBPROCESS Use_Case_Analysis(...); ENDCASE; INVOKESUBPROCESSReview_Class_Diagram( Class_Diagram_Approved); exitwhenclass_diagram_approved; IFDeadline_Near(Deadline)THEN RAISEDeadline_Violation; ENDIF; ENDLOOPIdentify_And_Review; ENDIdentify_Classes_And_Objects_Activity; Figure2:ExampleofJILActivityBody straintsorothercomparablysimpleexecutionmodels. ThedicultyisthateventraditionalprogramminglanguageconstructssuchasJILincludes(iteration,branching,etc.)comeinavarietyofformsandreadilyenable theprogrammingofanevenwidervarietyofcompositecontrolstructures.simplecontrollanguagescanbe elaboratedtoaddressmoreandmorefeatures,butat somepointtheyceasetobesimple.whilethejilstep constraintlanguagemaycontinuetoevolvetoimprove theusefulnessofitsconstructs,wewillcontinuetokeep themsimple.activitiesareavailableforcomplicated processesthatcanbemostclearlyexpressedusingtraditionalprogrammingcommands. 4.1.2ReactingtoEventsDuringdesign,thereare typicallyeventsthatoccuroutsideofanindividualdesigner'sactivitythataecttheactivity.forexample,a changetotherequirementsofasystemmayimpactthe designthatisinprogress.booddoesnotdescribesuch externaleventsorhowtodealwiththem.anexecutable processprogram,however,mustbeabletodoso.at aminimum,arequirementschangemustbeevaluated todetermineitsimpactonthedesign.ifadesignisaf- SubmittedtoICSE'98 5

fectedbythechange,thecurrentdesignmustbehalted andmodiedtoaccommodatethechange.changing onecomponentofthedesignmighthaverippleeects onotherpartsofthedesignandperhapseventhebudgetandschedule.again,evaluatingtheeectsofthe changeandadjustingthedesigntoaccommodatethe changerequireextensivehumaninvolvement.theprocesscanassistinsendingnoticationstothedesigners workingonrelatedpartsofthedesign. JILprovidestheREACTcontrolconstructforprogrammingreactionstoevents.Reactionsareattachedto steps.areactionspecicationidentiestheeventto whichthereactionoccursandtheactiontotakeinresponsetothatevent.reactionsmaybeusedincombinationwith,orinsteadof,anactivitybody.ifa stepcontainsbothanactivityandreactions,thereactionscanexecuteinparallelwiththeactivity.reactionscanrespondtoeventsbasedonchangesinartifact state(e.g.,productupdates),changesinprocessstate (e.g.,stepinitiationandtermination),changesinresourcestate(e.g.,aresourcebecomesavailable),and programmer-denedevents(whichmustbeexplicitly signaled). Thefollowingshowsareactionfromthetop-levelBOOD step(figure1): REACTTORequirements_File.UpdateBY INVOKESUBPROCESS Propagate_Requirements_Change; ENDIF; ENDREACT; Thereactionoccursinresponsetotheupdateofthe requirementsle.thereactionistoinvokeasubstepto propagatetheupdatethroughthedesignproduct.this subprocessisitselfastep.inasimpleform,thismight justsendelectronicmailtoallthedesigners.amore complexformofthisstepmightanalyzetheportionof therequirementsthatchanged,and,usinginformation abouttherelationshipsbetweentherequirementsand thedesign,informonlytheaecteddesigners. 4.2CoordinationofPeopleandTools OnelimitationofBOODandotherdesignmethodsis thattheyfocusontheactivitiesthatasingledesigner undertakes.inrealdesignprocesses,however,teams ofdesignersworkconcurrentlytocompleteadesign. Asaresult,apracticaldesignprocessmustaugmenta designmethodwithmanagementactivitiestoschedule andcontroltheuseoflimitedresourcesandtoassign taskstoindividualdesigners.inthissection,wedescribehowjilsupportsthesemanagementactivities. 4.2.1ResourceManagementTocompleteadesign, adesignerrequiresvariousresourcessuchastheartifactsthatserveasinputstothedesignstepandtools andhardwareusedtoassistinthecompletionofthe step.thedesignermayproduceadditionalartifacts thatserveasinputstootherdesignsteps.fromamanager's(orprocess's)perspective,eachdesignerisalsoa resourcebringinguniqueskillstothedevelopmentteam. Whenmultipledesignersworktogether,itisclearthat resourcecontentionbecomesanimportantissue.forexample,concurrentmodicationofdesignartifactsmust becontrolled,theworkloadshouldbebalancedacross theavailabledesigners,individualdesignersshouldbe assignedtasksconsistentwiththeirskills,computerresourcescannotbeoverloaded,anduseofsoftwaretools mustadheretolicensingconstraints. Juliaprovidesaresourcemanagementcomponentthat allowsaprojectmanagerorprocessprogrammertode- nearesourcemodelintermsofasetofprogrammerdenedattributes.theresourcesareorganizedintoa classicationhierarchy.ajilprogramcanreserveand acquireresourceseitherbynamingaspecicresourceor byrequestingaresourcethathasparticularattribute values(includingresourcesofaparticulartype).by usingattribute-valuespecicationstoacquireresources insteadofexplicitnaming,theresourcemanagement systemcanassignresourcesintelligentlytobalancethe loadacrosstheresourcesandadjustforchangesinthe availableresources,allowingthedenitionandexactexecutionoftheprocesstobeguidedbyresourcerequirementsandavailability. Whenthestepisexecuted,theJILinterpreterinJulia processestheresourcespecicationstoobtaintheindicatedresourcesfromthejuliaresourcemanager.julia'sresourcemanagerisamodulethatcouldbeimplementedintheformofahuman,oranautomated system,orasynergisticcombinationofthetwo..if thespeciedresourcescannotbegranted,thejilinterpreterraisesanexception,asdiscussedinsection4.3. Thescarcityorabundanceofresourceshasimportant eectsonexecutionofaprocess.yettheprocessdenitioncannotbespecictothedetailsofresourceavailability.thus,forexample,abundantresources(e.g.,. skilleddesigners)maywellenableconsiderableparallelizationofeort.butitisunreasonabletowritedifferentprocessprogramstodepictdierentdegreesof parallelization.theseparationofresourcespecication injil,fromresourcebindinginjulia,enablesthewritingofonesingleclear,preciseprocessprogramthatwill executedierentlyunderdierentresourceavailability situations. 4.2.2ExternalExecutionAgentsAtsomepointin anydesignprocess,itisnecessarytorelyuponthetalentsofthedesignersandthecapabilitiesofthesoftware toolstocompletethetask.thedevelopmentofadesign SubmittedtoICSE'98 6

issubstantiallyahuman,creativeactivitythatisfacilitatedbyavarietyofsoftwaretools.theconsistency ofadesignisevaluatedwithrespecttoconditionsthat requireamixofmanualandautomatedevaluation.to asignicantdegree,then,thepurposeofadesignprocessandprocessprogramistodene,coordinate,and supporttheworkofpeopleandtools.jilsupportsthe incorporationofpeopleandsoftwaretoolsthroughthe conceptofexternalagents,whichcanbehumanorautomated.activitiesinajilprocesscanbeexported forexecutionoutsidetheprocessbyanexternalagent. ThereisauniforminterfaceinJILfordealingwithboth humanandautomatedagents.thisenablesprocessprogramstoignorethedierencesbetweenthetwotypes ofagentsexceptwhenprocesssemanticsotherwiserequirethatthosedierencesshouldbemanifestedinthe processprogramtext. Agentsandresourcemanagementarerelatedinthe sensethatcertainresources,namelypeopleandsoftware tools,canserveasagentsforastep.bindingagentsto astepisthereforeperformedbyacquiringresourcesto serveastheagentsandthenpostingstepstotheagendas ofthoseagentsusingtheagendamanagercomponentof Julia. Figure3showsthespecicationofagentresources,that is,designers,whowillbeassignedtheresponsibilityof completingtheclassandobjectidenticationstepof BOOD.ThespecicationrequestsanumberofdesignersdeterminedbytheparameterTeamSize;thesedesignersmaybeskilledatanyoftheanalysismethods thatmightbeusedintheprocess. 4.3CopingwithErrors Inadditiontoreactingtoevents,aprocessmustalsobe abletocopewitherrorsthatariseduringtheexecution ofastep.forexample,adesigntoolmightbearesource requiredtoperformastep.theprocessmustbeable todealwitherrorsrelatedtotheinabilitytoacquire resourceswhentheyareneededortotheunexpected lossofaresourceafterithasbeenacquired.theformer mightoccuriftherearealimitednumberoflicenses allowingconcurrentuseofatool,whilethelattermight occurifthelicenseexpiresorthemachineonwhichthe toolexecutesbecomesunavailable. Exceptionhandlingisnotusuallydescribedaspartof anydesignmethod.neverthelesssuccessfulexception handlingiscriticaltotheexecutionofanydesignprocess.jilprovidesanexceptionhandlingmechanismto copewitherrorsthatariseininvoking,executing,and nalizingastep.oftenhumanswillneedtointervene toxtheproblemidentiedbyanexceptionbeforethe stepcanproceed,sojilexceptionhandlerscaninvoke furtherjilsteps,andtheexception-handlingprocess canbedenedinasmuchdetailasappropriate.forex- STEPIdentify_Classes_And_ObjectsIS RESOURCES:Identification_Resources;... End; RESOURCESPECIFICATION Identification_ResourcesIS BEGIN Engineers:Agent_Resource_Handle:= Resource_Manager.Acquire_Agents( Kind=> Designer, Number=> Team_Size, Skill=> (Use_Case_Analysis, Behavioral_Analysis, Classical_OO_Analysis), Duration=>Unlimited); ENDIdentification_Resources; Figure3:ExampleofJILresourcespecication. ample,ifapostconditiononthestepidentifyclasses- AndObjectsfailsbecausesomepartoftherequirements lewasoverlooked,theexceptionhandlermayreinvoke theentiresteponthatpartoftherequirements. Thefollowingisanexampleofahandlerthatcopes withthefailuretoacquireaneededresourceduringthe initializationofastep: HANDLEResource_Acquisition_ErrorBY IFResource_Of( Resource_Acquisition_Error) =Design_Tool THEN AWAITEVENT Resource_Available(Design_Tool); CONTINUE; ENDIF; ENDHANDLE; (Additionalstructuredformsofhandlerarede- ned[16].) Besidesresourcemanagementerrors,exceptionhandlers arealsousefulfordealingwithtypicalprogrammingerrorsandwithexceptionsraisedbyviolationsofconsistencyconditionsondesignartifactsorprocessstate (discussedinsection4.4). Ifastephandlesanexceptionsuccessfully,thestep maybeterminatedsuccessfullyorretried.iftheexceptionwasraisedduringstepinitializationornalization, SubmittedtoICSE'98 7

thoseactivitiesmayalsobecontinued.forexample, supposeanexceptionisraisedduringtheinitialization ofastep,afterthestephasacquiredhalfoftheresourcesitneeds;iftheexceptioncanbehandled,then initializationcanproceedwithoutlossofthepreviously acquiredresources.iftheinterventionisunsuccessful, thestepmaybeterminatedabnormally,inwhichcase itfailsbutitsresultsarepreservedincasetheycanbe reusedinsubsequentiterationsofthestep.alternatively,thestepmaybeaborted,inwhichcaseitfails withthediscardingoftheresults.(propagatinganexceptionisequivalenttoabort.)thus,thereareavariety ofresponsesthatcanbemadetoanexception,themost appropriateofwhichwilldependontheoverallprocess andontheparticularcircumstancesinwhichtheexceptionoccurs. 4.4ArtifactConsistency BOODisdescribedintermsofartifactsandactivities withequalstatus.thatis,tofullyunderstandbood, itisnecessarybothtounderstandthevariousdesigndiagramsthataretheartifactsproducedbytheprocessas wellastheactivitiesthatneedtobeperformedtocreateandmanipulatethosediagrams.inthissection,we brieydiscussartifactdenitionandillustratetheway inwhichjilintegratesartifactconsistencymanagementintotheexecutableaspectsofprocessprograms. 4.4.1ArtifactDenitionInJIL,artifactdenition andmanagementisdoneusingpleiades[18],apersistentobjectmanagementsystem.artifactsaredecomposedintocollectionsofinterrelatedobjects.thisdecompositionallowsforsimpleconcurrentmanipulation ofanartifactbyallowingdesignerstoworkonnonintersectingsetsofobjects.pleiadesalsosupportsthe specicationofbothinter-artifactandintra-artifactrelationships,bothofwhichareusefulinensuringartifact consistency.forexample,whenarequirementchanges, theserelationshipscanbeusedtoidentifythepiecesof thedesignthatareaected.thepotentialrippleeect oftherequirementschangecanbedeterminedbyidentifyingthetransitiveclosureoftherelationshipsbetween andwithintheartifactsemanatingfromtheobjectcapturingtherequirementchange. 4.4.2AssessingMilestonesTheultimategoalof BOODistocreatetheartifactsthatrepresentahigh qualitydesignforthegivenrequirements.eachstepin BOODidentiesmilestones.Reachingamilestoneisindicativeofsuccessfulcompletionofthesteptowhichthe milestoneisattached.foraprocesstodescribebood accurately,itisnecessarytoevaluatetheartifactsto determineifthemilestoneshavebeenreached. JILallowsaprogrammertoattachpostconditionsto steps.thesepostconditionscanbeusedtodetermine ifthemilestoneshavebeenreached.uponcompletion ofastep,allthepostconditionsforthestepareevaluated.ifapostconditionfails,anexceptionisraised thatcanbedealtwithinanexceptionhandler.acommonactiontotakeonfailureofapostconditionisto repeatsomeoralloftheactivitiesinthesteptocorrect forthefailedpostcondition.inthecontextofdesign, manypostconditionsrequirehumanevaluationandexceptionhandlersforfailedpostconditionsrequirehuman action.forexample,apostconditionfortheclassand objectidenticationstepofboodisthattheclasses andobjectsareconsistentlynamed.evaluatingnaming consistencyisnotlikelytobesomethingthatcanbe automatedinanygenerallymeaningfulwayandthus shouldbetheresponsibilityofahumanreviewertoverify.theactiontocorrectfornaminginconsistenciesinvolvesrenamingtheinappropriately-namedclassesand objects.asoftwaretoolcanensurethatthenewnames areappliedeverywheretheyoccurinthedesign,but ahumanmustbeinvolvedinselectingthenewnames. JILquitecomfortablysupportsthespecicationofthese sortsofinteractionsbetweentoolsandhumans. 4.4.3ArtifactFlowArtifactscreatedinonedesign steparetypicallyrequiredasinputforotherdesign steps.jilexplicitlyrepresentstheartifactowbetween stepsusingparameters.artifactowoftenimplicitly constrainstheorderinwhichstepscanbeexecutedand thustheamountofconcurrencythatispossiblebetween steps.forexample,step2ofboodistodenethe semanticsofclassesandobjects.obviously,aclass's semanticscannotbeidentieduntiltheclassitselfhas beenidentiedinstep1.thus,theoutputofstep1 becomestheinputofstep2.note,however,thatacertainamountofconcurrencyispossible,evenexpected, betweenthesetwosteps.inparticular,itisnotnecessarytoidentifyallclassesbeforedeningthesemantics ofsomeofthem.asaresult,step2canbestartedas soonassomeclassesorobjectshavebeenidentied,but nosooner. JILprovidesseveralwaysofspecifyingconcurrencybetweenstepsthatwouldallowthesemanticsofsome classestobedenedwhileotherclassesarestillbeing dened.prematureexecutionofstep2ispreventedby attachingapreconditiontothesteprequiringthatthe datadictionarymustcontainatleastoneclassorobjectwhosesemanticshavenotyetbeendened.failure ofthepreconditionraisesanexceptionwhosehandler delaysinitiationuntilthepreconditionbecomestrue,as shownbelow.inthismanner,thecontrolowthrough thedesignprocesscanbeconstrainedbytheavailability oftheappropriateartifacts. SubmittedtoICSE'98 8

HANDLEVIOLATIONOF Some_Undefined_Classes_Or_Objects ASPRECONDITIONBY AWAITEVENT Artifact_Created(Class)or Artifact_Created(Object); CONTINUE; ENDIF; ENDHANDLE; 4.4.4OptimisticDesignTheevaluationofpreconditionsandpostconditionsfordesignprocessesmaybe complexandpronetodelaysduetotheneedforhuman evaluationorconictsoveraccesstootherrequiredresources.theseproblemsmaybeespeciallyseverefor processesthatarelong-livedandhighlyconcurrent,as designprocessesmaybe.intheworstcase,itmaybe impossibletoevaluatepreconditionsandpostconditions inatimelymanner,leadingtoastateofindeterminacy, introducingpotentiallyunnecessarydelaysinthedesign process.forexample,thereisoftenadelaybetween thecompletionofaportionofadesignandtheformalreviewmeetingtoevaluatethedesignsothatthe reviewershaveadequatetimetobecomefamiliarwith theproposeddesign.ifaprojectisunderanambitious schedule,itmightbeunreasonabletoforcethedevelopertowaituntilthereviewiscompletebeforecontinuingwithmoredetaileddesignorimplementation. Instead,amanagermightwanttotrustthedesignerto identifytheleastriskyaspectsofthedesignandcontinuetheirdevelopmentpriortocompletionofthereview. Tohelpaddresstheseproblems,theJILexecution modelincludesthenotionsofconsistencyvariancesand at-riskexecution.aconsistencyvarianceisavariance fromtheusualenforcementofpreconditionsandpostconditions.incaseswhereaconditioncannotbeevaluatedduetoconictsoveraccesstoneededresources,a stepmaybegrantedavariancefromenforcementofthe condition,thatis,thestepmaybegintoexecutebefore itspreconditionsareveried,oritmaycompletebefore itspostconditionsareveried.thisentailssubsequent at-riskexecution,sincethestepmaylaterbeaborted, orasignicantamountofreworkmayberequiredif theconditionisfoundtobeviolated.thebenetsof increasedconcurrencyandeciencymayoutweighthe risksofapossibleviolation,however.wedonotexpect thatvarianceswillbegrantedautomaticallyingeneral. Rather,weseethisasanotheropportunityforpeople tobeinvolved,thistimeintheroleofprocessmanagers guidingprocessinterpretation. 5Evaluation Inthisproject,weevaluatedtheadequacyofJILfor thespecicationoftheboodprocess.thetwoareasofneedthatwehadidentiedasbeingofprimary interestwereprecisionandclarityoftheprocessspecication.twoadditionalgoalswereprocessexibilityand theabilitytoaccommodatepeopleintheprocess.the abilitytosupportclarityandfostereaseofusethrough visualizationsofprocessprogramswasafurthergoal. 5.1PrecisionandClarity Webelievethattheforegoingsectionstronglysupports ourhypothesisthatthesortsoflinguisticfeaturescontainedinjilarequiteeectiveinenablingtheprecise specicationofboodprocesses.wehaveindicated numerouswaysinwhichprocessdetailsareneededin ordertodistinguishamongseveralalternativewaysof performingbood.thesedistinctionsseemessentialif wearetobeabletoprovidestrongcomputersupportfor executionoftheseprocesses,andtobeabletoreason denitivelyaboutvariousimportantaspectsofthem. WehavedemonstratedthatJILgenerallyhasspecic featuresthatenableustomaketheseveryprecise(and crucial)distinctions. WealsobelievethatJILsupportsclarityintheprocess descriptionswehavedevelopedandexamined.onekey wayinwhichclarityisachievedisthroughtheuseof higher-level,processspecicabstractions.whilethe numberofconstructsinjilmaybegreaterthanina leanprogramminglanguage,theconstructshavenow beenshowntobepresenttomeetdemonstratedneeds. Wehavesoughttoaddtothelanguageconstructsthat succeedinreducingthesizeofprocessprogramsbyexpressingneededhigherlevelsemanticfeaturesinadirectandtersefashion.inadditionwehavestrivento makethesefeaturescleanlyorthogonal,andtoassure thattheyhaveclearsemantics. OurworkhasalsoindicatedsomeareasinwhichJIL didnotreadilyenableustobesucientlyclearorprecise.inparticular,whilethestepcompositionoperators wereuseful,itwouldbebenecialtoextendthissetto includesomesimpleloopingconstructsandtobetter integratethestepcompositionoperatorsintotheproceduralportionsofthestepdescriptions.inaddition, theresourcespecicationcapabilitiesinjilwerefound tobelessprecisethanmightbedesired.thesendingshavehelpedustopinpointareasinwhichfurther developmentofjilshouldbefocussed. 5.2FlexibilityandAccommodationofPeople Thegoalsofprocessexibilityandaccommodationof peopleintheprocessarecloselyrelatedinthatexibilityispartlynecessaryforandpartlyexercisedbypeople intheprocess.flexibilitywasachievedinanumberof ways.someofthestepcompositionoperators(e.g., UNORDEREDandPARALLEL)containanaspectofnondeterminismwherehumandecisionmakingcanoccur. SubmittedtoICSE'98 9

Throughtheintegrationofresourcemanagementinto processexecution,processprogramscanbedecoupled frombindingstospecicagentsandresources.theuse ofpreconditionsandpostconditionsallowstheexecutionofprocessstepstobecontrolledaccordingtodynamicallychangingproductstate.humansalsoserveas agentsforstepexecution,carryingoutstepactivities, reactingtoprocessevents,andhandlingprocessexceptions.thesefeaturesprovedquiteusefulinspecifying alternativeboodprocesses. Wealsonotedsomelimitationsintheseareas.Experimentationisneededwithalternativestrategiesformakingnondeterministiccontroldecisions.Somelinguistic meansofspecifyinghowthosedecisionsshouldbemade wouldalsobehelpful,especiallyforexplicitlydelegating controldecisionstohumanagents. 5.3VisualJIL Anotherwayinwhichtheneedforclarityisbeingaddressedisthroughtheuseofvisualization.Akeyaspect ofthejildevelopmentprojecthasbeentheconcurrentdevelopmentofvisual-jil.visual-jilisaninteractivegraphicalsystemthatsupportsthedevelopment ofprocessprogramswritteninlittle-jil,asubsetofjil thathasbeencarefullyselectedforclearvisualizability andsignicanteect.visual-jilemphasizesfeatures relatedtoagentcoordinationandconcentratesonthe simpler,yetstillexible,processcontrolstructures.itis hopedthatthevisualrepresentation,coupledwiththe relativelysimplebutusefulsubsetsemantics,willfoster theadoptionofprocessprogrammingbymakingiteasy towriteprocessprogramsthatarestillclearandprecise.indeed,ourexperiencewiththeboodprocessis basedonprogramminginbothfulljilandinlittle-jil usingthevisual-jilsystem.theprecisespecication ofmanyaspectsoftheseexampleswaspossiblethrough theuseofvisual-jil,whichoersdistinctvisualization andclarityadvantagesinthoseareasofthelanguageit supports. WebelievethatJIL,Visual-JIL,andJuliaareexamplesofalanguageandsystemthatbalancethelevelof expressivepowerneededtosupportsucientprecision withnecessaryclarityandusability.webelievethis claimissupportedbytheexistenceofboodprocess programsthatareprecise,expressive,andclear. 6StatusandFutureWork Asnotedearlierinthispaper,thedevelopmentofJIL, Visual-JIL,andJuliaareongoingactivities.Evaluation activitiessuchastheonedescribedhereareanintegral partofthedevelopmentoftheselanguagesandsystem. Fromtheseevaluationswearegainingkeyinsightsinto thestrengthsandweaknessesoftheselanguagesand systems.thisparticularevaluationhasreinforcedour beliefthatjilandvisual-jilarelikelytobebroadly usefulincontinuingeortstosupportprocessexecution andpowerfulreasoningaboutrealprocesses.thus,we expecttobeginreleasingjilandvisual-jilspecicationsandprototypesinthecomingyearorso. Simultaneously,evaluationactivitiessuchastheonedescribedherewillcontinue.Forexample,weareextendingtheBOODprocessprogramdescribedheretosupportcollaborativedesigninvolvingmultipledesigners sharingthesamesetofartifactsandresources.indoingthis,weexpecttoevaluatefurthertheeectiveness ofjil'ssupportforresource,agenda,andartifactmanagementandtousethisexperiencetohelpusrenethe abstractionsrequiredduringthesemanagementactivities. WearealsoplanningtouseJILandVisual-JILtodevelopandevaluateprocessprogramsforsuchothersoftwareengineeringactivitiesasregressiontesting,con- gurationmanagement,andincrementaldataowanalysis.weexpecttocontinuetolearnaboutjiland Visual-JILstrengthsandweaknessesfromtheseactivities.Basedontheseexperiences,weexpecttoaddnew featuresforwhichthereisademonstrableneed,delete existingfeaturesforwhichtheneedseemsslight,and therebycontinuetoenhancetheclarityandprecision ofthelanguage.increasingly,moreover,wealsoexpect thattheprocessprogramsthemselveswillbecomeincreasinglyinteresting,useful,andvaluableartifacts. AcknowledgmentsWorkonJIL,Julia,andJILprocessprogramminghasbeenperformedbymanypeople,whosecontributionswegratefullyacknowledge. AlexanderWiseistheprimaryarchitectanddeveloper ofvisual-jil.ericmccallisthedesigneranddeveloperoftheagendamanagementsystemandacontributortovisual-jil.rodionpodorozhnyisdevelopingtheresourcemanagementsystemandhascontributedjilprocessprograms.jinhuangandarvind Nithrakashyapcontributedtotheimplementationofa Booch-productobject-managementsysteminPleiades. PeriTarrprovidedPleiadessupportanddevelopedthe initialjilparser.additionally,chrisprosser,dan Rubenstein,andToddWrighthaveallcontributedJIL processprograms,andwehavebenetedfromthecommentsofnumerouscolleaguesattheuniversityofmassachusettsandelsewhere. REFERENCES [1]SergioBandinelli,AlfonsoFuggetta,andSandroGrigolli.Processmodelingin-the-largewith SLANG.InProc.oftheSecondInternationalConferenceontheSoftwareProcess,pages75{83.IEEE ComputerSocietyPress,1993. SubmittedtoICSE'98 10

[2]GregoryA.BolcerandRichardN.Taylor.Endeavors:Aprocesssystemintegrationinfrastructure.In Proc.oftheFourthInternationalConferenceonthe SoftwareProcess,pages76{85.IEEEComputer SocietyPress,December1996. [3]G.Booch.Object-OrientedAnalysisandDesign withapplications.benjamincummings,redwood City,CA,secondeditionedition,1994. [4]DonCohen.AP5Manual.Univ.ofSouthernCalifornia,InformationSciencesInstitute,March1988. [5]D.Coleman,P.Arnold,S.Bodo,C.Dollin, H.Gilchrist,F.Hayes,andP.Jeremaes.Object- OrientedDevelopment:TheFUSIONMethod. Prentice-Hall,EnglewoodClis,NJ,1994. [6]ChristerFernstrom.PROCESSWEAVER:Adding processsupporttounix.inproc.ofthesecond InternationalConferenceontheSoftwareProcess, pages12{26,1993. [7]I.Jacobson,M.Christerson,P.Jonsson,and G.Overgaard.Object-OrientedSoftwareEngineering:AUseCaseDrivenApproach.ACMPress, NewYork,1992. [8]G.Junkermann,B.Peuschel,W.Schafer,and SWolf.MERLIN:Supportingcooperationinsoftwaredevelopmentthroughaknowledge-basedenvironment.InA.Finkelstein,J.Kramer,and B.Nuseibeh,editors,SoftwareProcessModelling andtechnology,pages103{129.johnwiley& SonsInc.,1994. [9]GailE.Kaiser,NaserS.Barghouti,andMichaelH. Sokolsky.Experiencewithprocessmodelinginthe marvelsoftwaredevelopmentenvironmentkernel. InBruceShriver,editor,23rdAnnualHawaiiInternationalConferenceonSystemSciences,volumeII, pages131{140,konahi,january1990. [10]TakuyaKatayama.Ahierarchicalandfunctional softwareprocessdescriptionanditsenaction.in Proc.ofthe11thInternationalConferenceonSoftwareEngineering,pages343{353.IEEEComputerSocietyPress,1989. [11]J.Rumbaugh,M.Blaha,W.Premerlani,F.Eddy, andw.lorensen.object-orientedmodelingand Design.Prentice-Hall,EnglewoodClis,NJ,1991. [12]XipingSongandLeonJ.Osterweil.Engineering softwaredesignprocessestoguideprocessexecution.inproc.ofthethirdinternationalconference onthesoftwareprocess,pages135{152,1994. [13]XipingSongandLeonJ.Osterweil.Experience withanapproachtocomparingsoftwaredesign methodologies.ieeetrans.onsoftwareengineering,20(5):364{384,may1994. [14]StanleyM.Sutton,Jr.,DennisHeimbigner,and LeonJ.Osterweil.APPL/A:Alanguagefor software-processprogramming.acmtrans.on SoftwareEngineeringandMethodology,4(3):221{ 286,July1995. [15]StanleyM.Sutton,Jr.andLeonJ.Osterweil. Thedesignofanext-generationprocesslanguage. TechnicalReportCMPSCITechnicalReport96-30,UniversityofMassachusettsatAmherst, ComputerScienceDepartment,Amherst,Massachusetts01003,May1996.revisedJanuary,1997. [16]StanleyM.Sutton,Jr.andLeonJ.Osterweil.The designofanext-generationprocesslanguage.in ProceedingsoftheJoint6thEuropeanSoftwareEngineeringConferenceandthe5thACMSIGSOFT SymposiumontheFoundationsofSoftwareEngineering.Springer-Verlag,1997.Toappear. [17]StanleyM.Sutton,Jr.andLeonJ.Osterweil.ProgrammingparallelworkowsinJIL.InProceedings ofthe9thinternationalconferenceonparalleland DistributedComputingandSystems,1997.Toappear. [18]PeriL.TarrandLoriA.Clarke.PLEIADES:An ObjectManagementSystemforSoftwareEngineeringEnvironments.InProceedingsoftheFirstACM SIGSOFTSymposiumontheFoundationsofSoftwareEngineering,pages56{70.IEEEComputer SocietyPress,December1993. [19]R.Wirfs-Brock,B.Wilkerson,andL.Weiner.DesigningObject-OrientedSoftware.Prentice-Hall, EnglewoodClis,NJ,1990. SubmittedtoICSE'98 11