Title: LittleJIL
1Little-JIL
- Karthik Chandran
- Ghaffari Abu
2Background
- Improve quality by improving processes
- Build in quality in, dont test in quality
(manufacturing) - Use processes to manage complex activities
- Many observed process errors
- Proposed approach
- Use computers to help perform processes
- Analyze processes to determine and eliminate
defects - Use demonstrably superior processes to identify
risks, mitigate their consequences, demonstrate
quality
3Software Processes
- Is it a Device ?
- Indirect nature
- Software processes are devices for creating,
modifying, analyzing, understanding software
artifacts and products - The set of activities, methods, and practices
that are used in the production and evolution of
software - Hypothesis Processes are software
4Process as Software
- Consist of Requirements, Specification, Design,
Code, Evaluations - Process Requirements
- Process Specification/Modeling/Design
- Process Code
- Process Measurements and Evaluation
- Process Maintenance / Process Improvement)
- Process development process
5Software Process Code
- Provides details and elaborations upon process
design - Tries to include details omitted from
model/design - Supports more detailed, precise, definitive
reasoning - Vehicle for meshing process control with product
data at arbitrarily low levels of detail - Provides superior visibility enabling better
control - Basis for better predictability
- Basis for process enaction/execution
- Blueprint for tool integration
6Software Process Definition Formalism
- Key considerations
- concurrency
- exception handling
- resource specification
- self-modification/long lifetime
- constraint management
- artifact specification/management
- real-time
- visualizability
- Approaches tried
- Languages
- procedural
- rule-based
- object-oriented
- Modeling formalisms
- Petri Nets
- Flow graphs
- Data flow diagrams
7Little-JIL
- Hypothesis
- Co-ordination structure is separable from other
process language issues. - Processes are executed by agents that know how to
perform their tasks but benefit from
co-ordination support. - Design Principles
- Simplicity
- Expressiveness
- Precision
8Little-JIL
- Little-JIL is an agent coordination language.
Programs in Little-JIL describe the co-ordination
and communication among agents that enables them
to perform the process. - Little-JIL a language for programming
co-ordination in process is an executable,
high-level language with formal yet graphical
syntax and rigorously defined operational
semantics. - Focal point of coordination step
9Features of Little JIL
- Explicit agent specifications
- Explicit resource specification
- Agent communication via agendas
- Visualization
- Proactive and reactive control constructs
- Explicit data flow
- Precondition and postcondition guards
10Coordination Paradigm
- Coordination is the process of building of
program by gluing together active pieces and is a
vehicle for building programs that can include
human and software processes. - Collection of agents, communication mechanism,
distribution mechanism, assignment of tasks to
agents.
11A step of Little-JIL
- Step provides scoping mechanism for control,
data exception flow, and for agent and resource
assignment. - Steps are organized into static hierarchy, but
can have a highly dynamic execution structure
including the possibility of recursion and
concurrency. - Step is a specification of a unit of work that
is assigned to an agent. unit of encapsulation
12Watch the Step
Interface Badge (includes resources)
Prerequisite Badge
Postrequisite Badge
TheStepName
X
X
Sequencing
Handlers
Reactions
13Little-JIL steps Badge
- Control flow 4 non-leaf steps
- sequential, parallel, try, choice
- Requisites Mechanism to add checks before and
after a step is executed - pre-requisite, post-requisite
- Exception handlers augment the control flow
construct of the step - Messages Reactions reactive power and
expressive power
14Little-JIL steps Badge (cont.)
- Parameters passed between steps allow
communication of information necessary for the
execution of a step and for the return of step
execution results. - Resources are representations of entities that
are required during steps execution e.g.. Steps
execution agents, permission to use tools,
physical artifacts
15Step in action/execution
Completed
Started
Terminated
Posted
Retracted
16States of step
- Posted step eligible to start
- Reactive element, resource and agent with
specific agenda - Started agent wish to begin the step
- Resource acquired and pre-requisite checked
- Completed work specified is finished
- Post-requisite checked, sub-steps ended parent
informed - Terminated failed step
- Exception, propagated up from a sub-step,
resources less - Retracted removed from agents agenda
- Un-chosen alternatives or exception
17Step Interface
- Interface to step specifies the resources used by
the step and messages that may be propagated from
the step - Resource declarations
- Parameter declarations
- Exception Declarations
- Message Declarations
- Specified interface badge should be colored
18Resources
- Any entity that is required to execute a step
- Product of one step may be resource to another
- Agent Special resource, named as agent
- Declared in the step interface with a dot
- Passed to agents via agenda manager as parameters
- Resource Unknown, Resource Unavailable
19Parameters
- Transmit objects between parents and children in
the sub-step hierarchy using PP - Parameter name, type( agen. att.) , mode
- Modes In, Out, In/Out, Locals
- Passed via parameter bindings
- Sub-step-parameter arrow parent-step-par.
- Appears in center section of the interface
- Parameter Unavailable
- Parameter compatible
20Requisites
- Requisites provide a mechanism to define guards
on the entry to exit from the steps - Failed requisites throws exception
- Multiple requisites are grouped ordered
- Colored badge if requisites specified
- No out or in/out parameters (side effects)
- Exception considered as failure terminate
21Exceptions
- unavailable resource or parameter (interp.)
- Incomplete a step (agent)
- Implicit not needed to be specified in step
- Handlers
- Continue, restart, complete, rethrow
- name value
- exception match same/super type
- attrib. value exception attrib. value for
specific.
22Messages
- Allow processes to react to their own execution
(sent by interpreter, in appendix) - Indicate event of interest (sent by agent)
- Exceptions by step (specified at interface)
23Reactions
- Specify event to listen to and step to handle
event - Performed in parallel with other sub-steps
- Pre-defined events for step execution and
completion - Agents can send events
- Specified as type, and set of attributes with
name/value pair - Matching rules are same as exceptions
24Little-JIL
- Little jil is a tree of steps whose leaves
represent the smallest specified unit of works
and whose structure represents the way in which
this work will be coordinated.
25Example
- Lets consider a trip planning process coded in
Little JIL. - The process involves 4 people
- Traveler
- Travel agent
- Two secretaries
- We try united first then USAir.
26If the traveler has gone over budget, and a
Saturday stay over was not included, the dates
should be changed to include a Saturday stay over
and other attempts should be made. After the
airline reservations are made and the travel date
and times are set, car and hotel reservations
should be made. The hotel reservations may
either at Days Inn or, if budget is not tight, a
Hyatt. The car reservations may be made with
either Avis or Hertz.
27(No Transcript)
28- Step Kinds
- Figure 2 depicts the overall structure of the
Little JIL trip planning process program. - The following four step kinds are used,
- A sequential step is used to make plane
reservations before hotel and car reservations. - A try step is used to try united first then
USAir.
29- A parallel step is used to allow two secretaries
to make car and hotel reservations
simultaneously. - Choice steps are used to allow a secretary to
choose which hotel chain or car company to try
first. - The process program can handle any changes to the
system, for example , we can make preference
while choosing a hotel or a car rental company,
we can attempt all reservations in parallel, just
by changing step kinds.
30Requisites A post requisite is used in the Plane
Reservation step to check if the airfare has not
exceeded the budget. A prerequisite is used for
the HyattReservation step. If the secretary
reserves a room at Hyatt and the budget is tight
that step aborts immediately.
31(No Transcript)
32Exception and Handlers In Figure 3, if the
PlaneReservation agent finds that the budget has
exceeded it throws the NotInBudget exception to
the parent. The parent steps handler
IncludeSaturdayStayover would check to see if a
Saturday stayover was already included. If not,
it would change the travel dates and restart the
PlanTrip step with the new travel dates.
33If there was already a Saturday stayover, the
handler could throw another exception that would
go higher up the tree or terminate the
process. Different continuation badges would
create different executions. For example, if
Include SaturdayStayover were to rewritten to
make alternate plans, then the continuation badge
would be changed to complete indicating that
the exception step had provided an alternate
implementation of PlanTrip.
34(No Transcript)
35Messages and Reactions In Figure 3 the handler
for a message is shown. When the meeting
cancelled message is generated, the CancelAnd
Stop substep of PlanTrip is assigned to the
traveler. Its assumed that the agent will take
appropriate action by calling up the travel agent
and secretaries and asking them to abort.
36Parameters Information is passed between steps
via parameters. Parameter passing is indicated by
annotations made on the step connections. There
are 3 parameter passing modes defined in little
JIL. Arrows attached to the parameters indicate
whether a parameter is copied into the sub steps
scope from the parent, copied out or both.
37Little JIL focuses on coordination of a process.
It specifies at what points during execution
parameter values should be copied to and from
steps. It does not specify the computations to
be performed on the parameter values.
38Resources Resource requirements for a step are
indicated by annotations on the steps interface
specification. Identifying and acquiring
resources at run time enables Little JIL program
to adapt to different environments. This allows
dynamism during process execution.
39In figure the execution agent resources are
specified as annotations on the interface badge.
The steps for HotelReservation and
CarReservation specify a secretary as agent
responsible for the task. Resources can be
agents or any artifact.
40Merits of Little-JIL
- Semantically rich and yet easy to use
- Formal yet graphical syntax
- Independent agent can benefit from the
coordination with other agents - Flexibility to operate/level of details
- Resource bounded recursion and parallelism
41Demerits of Little-JIL
- No data type model for parameters and resources
- Omits expressions and commands
- Relies of the agents to know how the tasks
represents by leaf steps are performed - Specifies coordination and not execution
- computation
- Juliette
- resource manager, agenda management systems, java
type system model
42Conclusions
- Tools (java based on windows/linux)
- Graphical editor, interpreter, distributed object
substrate, agenda management system, resource
manager - Applied to data mining, robot team coordination,
E-commerce, multiple designer doing booch/ood,
bug tracking system
43References
- http//laser.cs.umass.edu/
- A. Wise. Little JIL 1.0 Language Report.
- A. Wise ,A.G. Cass, B.S. Lerner, E.K. McCall,
L.J. Osterweil, S.M. Sutton Jr. Using Little-JIL
to Coordinate Agents in Software Engineering. - Content of this presentation directly or
indirectly refers to the work of Leaon J.
Osterweil.