Process Driven Software Development

Agenda

First Part Gregor Gisler, ITpearls AG

  • Abstract
  • Dozens of Processes? Start managing Business Processes
  • BPM Rooted in the Enterprise Strategy
  • From Strategy to Projects
  • Process Maps as part of the Business Architecture
  • Invest along your top 3 Business Priorities
  • Agile Modelling of the top priority Processes
  • How to bring your BPMN2 Models into Eclipse Stardust (Cloud Solution)
  • 2nd Part Bob Brodt, RedHat Inc.

  • BPMN2Modeler Runtime Extensions
  • Mandate 1: Make it BPMN 2.0 spec. compliant
  • Mandate 2: Make it Extensible
  • Mandate 3: Leverage Graphiti
  • Extension Points
  • Screen Shot
  • Get involved
  • Appendix
  • Abstract

    With BPM maturing over time new customers buy into BPM or improve their existing infrastructure. These new BPM initiatives aim at raising the abstraction level with end to end modeling capabilities, harvesting SOA investments made in the last years, and take advantage of new BPM engines. With higher abstraction in place combined with agile methods the development cycles tend to be shorter and the cost for functional units are decreasing. This leads to a surge in processes to be automated. An increasing number of implemented processes leads to more complexity. In this presentation you will be shown ways on how to tame the complexity with a development process that includes business architecture, iterative (roundtrip) process development and deployment based on Eclipse Stardust.

    Presenters: Gregor Gisler, ITpearls AG; Bob Brodt, Red Hat, Inc.

    Dozens of Processes? Start managing Business Processes

    BPM Rooted in the Enterprise Strategy

    From Strategy to Projects

    Process Maps as part of the Business Architecture

    Invest along your top 3 Business Priorities

    Enterprise Architecture, Capabilities and Processes

    Agile BPMN2 Modeling

  • Model together with Business – ensure all Stakeholders participate
  • Model in short iteration cycles – keep the momentum
  • Use a modelling method like “Method&Style”
  • Don’t model generic – force the people to be concrete
  • Don’t model just for documentation reason’s to fill your process maps – invest your time and energy modelling processes that are identified as “strategic” (within top 3 business priorities and failed in the assessment) and have FUNDING!
  • Have a proper tool at hand that encourages Business to model (including Model Wizard, Model Interchange Group proven and more)
  • Demand a role model from Business early – there is no time to define this in one iteration – usually there is lots of infrastructure involved with this
  • Don’t forget the BOM – Business knows a lot about their data and what is needed to run the processes successfully
  • Define input- and output data early and separate Process from User Data
  • Know the environment and how to access the data (EAI Landscape)
  • Establish a model repository that is easy to use and enforce proper usage
  • How to bring your BPMN2 Models into Eclipse Stardust

    Instrument the BPMN2 Models in BPMN2 Modeler

    Deploy n Models into your Runtime Environment

    BPMN2 Modeler Runtime Extensions (Bob Brodt, RedHat Inc.

    BPMN2Modeler

    In 2012 Red Hat sponsored development of the original prototype for what was to become the BPMN2 Modeler.

    BPMN2 Modeler is an eclipse project under the SOA top-level project and, as such, is open source so we invite the community to use the product, make suggestions for improvement, and contribute bug fixes and enhancements.

    Mandate 1: Make it BPMN 2.0 spec. compliant

    The mandates for the project were simple:

    First, Make it BPMN 2.0 spec compliant. The BPMN 2.0 specification is huge and overly complex in my opinion because it tries to be all things to everyone. In our case compliance does not necessarily mean exposing the entire specification through the UI, but make that which is implemented, conform to the specification.

    The editor uses the Eclipse BPMN2 metamodel project as the underlying model. This model does indeed implement the complete BPMN 2.0 spec so the editor can surface all of the BPMN2 elements through the UI. However, for simplicity we chose not to do so for the core editor. This leads us to the second mandate...

    Mandate 2: Make it Extensible

    Mandate 2: Make it extensible. I’m not aware of any execution engine that implements the entire BPMN 2.0 spec, and each has different requirements depending on the applications it is designed for. Our baseline during development of the editor’s public API, was jBPM which is Red Hat’s offering in the BPM space. The jBPM engine implements a rich subset of BPMN 2.0 but also defines several extension elements. So, not only does the editor’s plugin API need to be able to surface these extension elements through the GUI, it also needs to hide those elements which are not supported by the engine.

    Mandate 3: Leverage Graphiti

  • Flat learning curve
  • Fast development of graphical editors
  • Common look and feel
  • Accessibility
  • Mandate 3: Leverage the eclipse Graphiti graphical editor framework. Graphiti is an abstraction layer on top of eclipse GEF and Draw2d which makes it relatively simple to build rich graphical editors with very little coding. There are several benefits to using such a framework:

    A flat learning curve: the user interaction and graphical rendering is all handled by Graphiti and provides reasonable defaults. The developer needs to focus only on managing the model and responding to model changes triggered by user interactions.

    Fast development: because most of the editor is already implemented in the framework itself, developing a new editor is relatively simple.

    Common look and feel: Graphiti provides all of the features you would expect from a graphical editor, including Drag-n-drop support, tool palette, an Overview page, Property pages, hover help and tooltips, etc.

    Accessibility: refers to a software tool’s usability by disabled persons. This is already part of the Graphiti framework.

    Extension Points

  • BPMN2 model extensions
  • “Bring your own” EMF model"
  • Define certain extensions at runtime via configuration files
  • Tool Palette extensions
  • Tool Profiles
  • Custom Activities, Connections, Artifacts, etc.
  • DSL for defining compound elements
  • Tabbed Property Sheets
  • Add, omit or replace individual tabs
  • Customize presentation of graphical elements
  • Hook into Graphiti’s Feature Container framework
  • Hook into Graphiti’s Tool Behavior Provider
  • Override default presentation, or provide a “custom look”
  • Customize file parsing/serializing
  • EMF Resource Factory
  • Override default BPMN2 modeler resource behavior
  • Hook into object lifecycle for handling custom creation, decoration, change notification, etc.
  • Screen Shot

    Highlights:

  • Graphical drawing canvas
  • Mulitpage tabs at top – diagrams
  • Multipage tabs at bottom – sub processes within a diagram
  • Property Sheet
  • Alternative: use popup dialogs to save screen space
  • Tool Palette
  • Profiles
  • Outline
  • Business Model
  • Diagram Interchange Model
  • Thumbnails
  • Get Involved!

  • Eclipse BPMN2 Modeler Project: https://www.eclipse.org/bpmn2-modeler/
  • source code: git clone
  • Wiki:https://wiki.eclipse.org/BPMN2-Modeler
  • Forum: BPMN2Modeler Forum
  • My email: Bob Brodt
  • Links

  • OMG BPMN Model Interchange Working Group: http://www.omgwiki.org/bpmn-miwg/doku.php?id=start
  • Value Driven BPM: Peter Franz and Mathias Kirchmer: http://www.accenture.com/SiteCollectionDocuments/PDF/Accenture-Value-Driven-Business-Process-Management-Transcript.pdf
  • The Business Capability Map: The «Rosetta Stone» of Business/IT-Alignment – Cutter Consortium