SlideShare a Scribd company logo
Rogerio Atem de Carvalho, Instituto
                     Federal Fluminense
        Bjorn Johansson, Lund University




Towards More Flexible EIS
Introduction

●
    Flexibility: capacity of being adaptable in a cost
    and effort effective way
●
    Flexibility through relational databases based
    configuration is limited
●
    EIS Patterns: a testbed for testing new
    techniques for developing EIS
●
    Based on ideas brought from 10 years of
    participation in the open source ERP5 project
●
    Focused on the software development aspects
Environment
●
    Python, high level, dynamic programming
    language
●
    Automated testing:
    ●
        Test Driven Development (TDD)
    ●
        Behavior Driven Development (BDD)
    ●
        On the way: Business Language Driven
        Development (BLDD)
●
    Django Web development framework
Structure
Implementing Processes
●
    Business processes implementation: “a Process
    coordinates Nodes to perform Operations on
    Work Items”
●
    “a Movement encapsulates an Operation”:
    ●
        An operation represents a production task
    ●
        When trigged by an event in a Process, it
        defers the actual execution to a pre-
        configured node's method
    ●
        This execution is logged by a movement
        object, which stores all parameters, date and
        time, and results of this execution
Implementing Processes
●
    Therefore, an operation is an abstract
    concept which can be configured to defer
    execution to different methods, from
    different objects, in accordance to the intents
    of a specific business process instance
●
    Keeps business processes abstraction, while
    customization can be obtained by
    configuration
Decorators
●
    Subclassing avoidance:
    ●
        Subclassing adds behavior to all instances of
        the original class, decoration can provide new
        behavior, at runtime, for individual objects:
        “pay-as-you-go” approach to adding
        responsibilities
    ●
        Decorators allows mix-and-matching of
        responsibilities
    ●
        Decorators facilitates system configuration
    ●
        Problem: typically, it is necessary to deal with
        lots of small objects
Decorators and Contracts
●
    In order to decorate a Node, it is necesssary to
    check if this node is compatible with the
    decorator
●
    Should-dsl, a language created for writing more
    readable tests is used to check contracts
●
    Contracts are tested automatically, and can also
    be queried
●
  An example rule for given someone manager
  responsibilities:
candidate_node |should|
be_decorated_by(EmployeeDecorator)
Natural Language Processing
●
    Used to check requirements written in text
●
    Significant terms are used to parse decorators'
    documentation
●
    Operations are special methods that can be
    cathegorized, for instance as, financial,
    logistics, manufacturing...
●
    After finding candidate decorators, rules written
    in should-dsl are ran to check the compatibility
    between them and candidate nodes
Inoculable Workflow Engine
●
    WfE usally are of two types:
    ●
        App development platforms: configurable,
        but you must use the platform
    ●
        Software libraries: you can use your
        platform, but you need to program and use
        the library's objects
●
    xFluidity:
    ●
        Inoculable and expellable: transparent
    ●
        Configurable – even at runtime
Conclusions
●
    EIS Patterns is a testbed for:
    ●
        Automated testing techniques
    ●
        Dynamic programming languages
    ●
        Use of Domain Specific Languages (DSL) for
        testing, designing, and checking contracts
    ●
        Use of decorators for extenting and
        customizing behavior
    ●
        Use of NLP for requirements analysis
    ●
        Use of a transparent workflow engine
●
    Works with relational databases

More Related Content

Towards More Flexible Enterprise Information Systems

  • 1. Rogerio Atem de Carvalho, Instituto Federal Fluminense Bjorn Johansson, Lund University Towards More Flexible EIS
  • 2. Introduction ● Flexibility: capacity of being adaptable in a cost and effort effective way ● Flexibility through relational databases based configuration is limited ● EIS Patterns: a testbed for testing new techniques for developing EIS ● Based on ideas brought from 10 years of participation in the open source ERP5 project ● Focused on the software development aspects
  • 3. Environment ● Python, high level, dynamic programming language ● Automated testing: ● Test Driven Development (TDD) ● Behavior Driven Development (BDD) ● On the way: Business Language Driven Development (BLDD) ● Django Web development framework
  • 5. Implementing Processes ● Business processes implementation: “a Process coordinates Nodes to perform Operations on Work Items” ● “a Movement encapsulates an Operation”: ● An operation represents a production task ● When trigged by an event in a Process, it defers the actual execution to a pre- configured node's method ● This execution is logged by a movement object, which stores all parameters, date and time, and results of this execution
  • 6. Implementing Processes ● Therefore, an operation is an abstract concept which can be configured to defer execution to different methods, from different objects, in accordance to the intents of a specific business process instance ● Keeps business processes abstraction, while customization can be obtained by configuration
  • 7. Decorators ● Subclassing avoidance: ● Subclassing adds behavior to all instances of the original class, decoration can provide new behavior, at runtime, for individual objects: “pay-as-you-go” approach to adding responsibilities ● Decorators allows mix-and-matching of responsibilities ● Decorators facilitates system configuration ● Problem: typically, it is necessary to deal with lots of small objects
  • 8. Decorators and Contracts ● In order to decorate a Node, it is necesssary to check if this node is compatible with the decorator ● Should-dsl, a language created for writing more readable tests is used to check contracts ● Contracts are tested automatically, and can also be queried ● An example rule for given someone manager responsibilities: candidate_node |should| be_decorated_by(EmployeeDecorator)
  • 9. Natural Language Processing ● Used to check requirements written in text ● Significant terms are used to parse decorators' documentation ● Operations are special methods that can be cathegorized, for instance as, financial, logistics, manufacturing... ● After finding candidate decorators, rules written in should-dsl are ran to check the compatibility between them and candidate nodes
  • 10. Inoculable Workflow Engine ● WfE usally are of two types: ● App development platforms: configurable, but you must use the platform ● Software libraries: you can use your platform, but you need to program and use the library's objects ● xFluidity: ● Inoculable and expellable: transparent ● Configurable – even at runtime
  • 11. Conclusions ● EIS Patterns is a testbed for: ● Automated testing techniques ● Dynamic programming languages ● Use of Domain Specific Languages (DSL) for testing, designing, and checking contracts ● Use of decorators for extenting and customizing behavior ● Use of NLP for requirements analysis ● Use of a transparent workflow engine ● Works with relational databases