Você está na página 1de 14

Workshop on a General Theory of Software Engineering

Essence-Based, Goal-Driven
Adaptive Software Engineering
Professor June Sung Park
Korea Advanced Institute of Science and Technology (KAIST)

State of Software Engineering Project

Oh, I guess
its going
OK?

How is the
project
going?

Alphas in Essence Kernel


project state vector

Essence Alpha

project state space

st = [st , ], i.e., st =
Yeah, this
is
the
current
state.

Really?
Youre
sure?

Alpha State Checklists


Essence Alpha Card

I use state
checklists.

Alpha State Card

state checklist

How
do
you know
where we
are?

Goal State
current state

Well, I will show


you
how
I
determine the
next activities
to achieve the
next goal state.

goal state

So whats
next to do?

ActivityActivity SpaceAlpha State


Project Process

Essence Kernel

Software Engineering Practice

Alpha State at Completion of Activity Space


target state of the activity space
prescribed in Essence kernel

Alphas affected by
the activity space

Semi-Markovian Decision Process of


Software Engineering

A project method can be viewed as a stochastic decision process on state space


and activity space A with a nondeterministic state transition function .

Essence prescribes a healthy progress of the state of software projects (i.e., alpha
states) and checklists to assess the state. You may use them to evaluate the current
state and set the next goal state.

It also suggests completion criteria for activity spaces in terms of alpha states.

By mapping practice activities to Essence activity spaces, you may get a goal list (i.e.,
a list of checkpoints to satisfy) for each activity. This paper provides a new algorithm
to select the next activities to perform to achieve a goal state of the project.

Activity(A)Activity Space(V) Mapping()


software engineering practice

You
may
easily
combine
multiple
practices, if described
using Essence kernel,
into
your
project
method
without
overlaps and gaps.

Essence Alpha

practice work product

Essence Activity Space

practice activity

Alpha State when an Activity is Done


target state of the activity

activity space containing the activity

Activity-State Mapping Algorithm

The Activity-State Mapping Algorithm produces a goal list () for each


project activity .
Activity-State Mapping Algorithm

Step 1: Design the software engineering method for a project determining the set of
activities to be performed.
Step 2: Assign each activity to one or more activity spaces (

).

Step 3: Repeat for each activity listed in Step 1.


Step 3.1: List the alpha states that are pursued by the activity spaces that contain the
activity (
).

Step 3.2: Collect all the checkpoints corresponding to the alpha states listed in Step
3.1, and merge the checkpoints to obtain the default activity goal list ().
Step 4: Customize the default activity goal lists by modifying the set of alphas, alpha
states, alpha state checklists, and the alpha states to be pursued by each activity
space or each activity.

Goal-Activity Cover Algorithm

Given the projects goal state


at epoch t, a set of activities
can be chosen to pursue to achieve the goal state.

Set can be obtained by the minimal set of activities whose goal lists, ()
for all
, cover the checklists for the projects goal state.
Goal-Activity Cover Algorithm

Goal-Activity Cover Problem


Input: The goal state +1 , the set of
() for all , and a family
of subsets of
Goal:

Choose a subfamily of with the


smallest cardinality given by

= arg min

(+1 ) .

1 : = ;
2 Repeat
3
= arg
4
5
6
7
8
9
10

() (+1 ) ;

= {};
= {};
+1 = (+1 ) ();
For each
() = () ();
End;
Until +1 = +1 = ;

Automation Tool
Well, I have shown you how I
determined the next activities to
perform to achieve the next goal
state.

This can be automated if we use a


tool that supports the description
of practices using the Essence
kernel, and build a database of
checklists for alpha states.

OK, I see
the value
of Essence
now.

Conclusion
Wed better
learn and use
Essence.

Essence kernel can be used to describe practices, merge them


into a project method, monitor health and progress of the
project, and adaptively determine project goals and activities
based on the current state assessment.

This is made possible by developing a set of checklists for every


meaningful state along every important dimension, and use the
same set of checklists consistently in assessing the current state,
setting up the completion state of each activity, planning the
future goal state of the project, and determining the set of
activities to perform to fulfill the goal state.

Essence provides generic checkpoints, or general symptoms of


hidden specific states. A project team should extend and
customize the Essence-provided checklists as an ongoing effort
to make them specifically relevant to their project context.

Building a good set of checklists is a learning process and an


important way to optimize the team performance.

I think so,
too. It really
makes
our
team agile.

Você também pode gostar