14
Essence-Based, Goal-Driven Adaptive Software Engineering Professor June Sung Park Korea Advanced Institute of Science and Technology (KAIST) Workshop on a General Theory of Software Engineering

Essence-Based, Goal- Driven Adaptive Software Engineering-Presentation

Embed Size (px)

DESCRIPTION

The OMG Essence standard has recently been published as the kernel for software engineering methods [1]. We show that the Essence view of software engineering is reminiscent of a nondeterministic, multidimensional finite state machine, and that the Essence lends support to a semi-Markov decision process model of software engineering which, in practice, facilitates a goal-driven adaptive software engineering. We develop an activity-state mapping algorithm and a goal-activity cover algorithm based on the Essence, which can help automate the health monitoring of project states and the adaptive planning of project activities in a software engineering project.

Citation preview

  • Essence-Based, Goal-Driven

    Adaptive Software EngineeringProfessor June Sung Park

    Korea Advanced Institute of Science and Technology (KAIST)

    Workshop on a General Theory of Software Engineering

  • State of Software Engineering Project

    How is the

    project

    going?

    Oh, I guess

    its goingOK?

  • Alphas in Essence Kernel

    Yeah, this

    is the

    current

    state.

    st = [st , ], i.e., st = Really?

    Youresure?

    Essence Alpha project state spaceproject state vector

  • Alpha State Checklists

    I use state

    checklists.

    How do

    you know

    where we

    are?

    Alpha State Card state checklistEssence Alpha Card

  • Goal State

    So whatsnext to do?

    Well, I will show

    you how I

    determine the

    next activities

    to achieve the

    next goal state.

    goal statecurrent state

  • ActivityActivity SpaceAlpha StateSoftware Engineering PracticeEssence KernelProject Process

  • Alpha State at Completion of Activity Spacetarget 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()

    You may easily

    combine multiple

    practices, if described

    using Essence kernel,

    into your project

    method without

    overlaps and gaps.

    software engineering practice

    Essence Alpha practice work product Essence Activity Space practice activity

  • Alpha State when an Activity is Donetarget 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 Problem

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

    Goal: Choose a subfamily of with thesmallest cardinality given by

    = arg min

    ( +1) .

    Goal-Activity Cover Algorithm

    1 : = ;2 Repeat

    3 = arg

    () ( +1) ;

    4 = {};5 = {};6 +1 = ( +1) ();7 For each 8 () = () ();9 End;

    10 Until +1 = +1 = ;

  • Automation Tool

    OK, I see

    the value

    of Essence

    now.

    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.

  • Conclusion

    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.

    Wed betterlearn and use

    Essence.

    I think so,

    too. It really

    makes our

    team agile.