Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSEPM - A Continuous Software Engineering Process Metamodel

CSEPM - A Continuous Software Engineering Process Metamodel

Presentation at the RCoSE Workshop 2017 in Buenos Aires, Argentinia

Stephan Krusche

May 22, 2017
Tweet

More Decks by Stephan Krusche

Other Decks in Education

Transcript

  1. [email protected] - www.skrusche.de - @skrusche
    RCoSE 2017
    Stephan Krusche and Bernd Bruegge (May 22, 2017)
    CSEPM - A Continuous Software 

    Engineering Process Metamodel

    View Slide

  2. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    Introduction
    2
    • The term “software engineering” (SE) was proposed in the 1960s to overcome
    “chaos” (software crisis) using a defined process control model
    • In the 1990s, agile methods changed the emphasis from defined to empirical process control
    Empirical Process
    Not entirely planned
    Inspect and adapt
    Defined Process
    Planned
    Follows strict rules
    Avoids deviations

    View Slide

  3. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    Motivation
    • Jez Humble defined a model for continuous delivery: the goal is to keep software in a
    state so that changes to it can be released at any time
    • Jan Bosch coined the term continuous software engineering (CSE)
    • However, there has not yet been an attempt to model software engineering continuously
    • Main objective: create a software process metamodel to describes the continuous and
    unexpected nature of SE through workflows that can be interrupted by change events
    ➡Continuous Software Engineering Process Metamodel: CSEPM
    ➡Improve communication about CSE and formalize tailoring, customization and extension
    possibilities
    3

    View Slide

  4. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    CSEPM in the Meta Object Facility
    4
    MOF Layer Type Example
    M3 - Meta
    Metamodel
    Meta Object
    Facility
    M2 - Metamodel
    (Generic concepts)
    CSEPM
    M1 - Model
    (Way of working)
    Process
    Model
    M0 - Reality
    (What actually
    happens)
    Concrete
    Process
    Class
    <>
    Work Queue
    <>
    <>
    Work Item
    <>
    *
    <>
    Sprint Backlog
    <>
    <>
    Backlog Item
    <>
    *
    <> <>
    Sprint 1 Backlog
    ID Name Difficulty
    1 Search available Pedelecs Medium
    2 Check working radius Large
    <>

    View Slide

  5. CSEPM: Static process
    metamodel (simplified)
    5
    Workflow Model
    Change Model
    -load
    -state : State
    +customize()
    +activate()
    +sleep()
    +receive(Event)
    Workflow
    +modifyItem()
    +proritizeItem()
    Work Queue
    Configuration Management Model
    -state : State
    -priority : Int
    +interrupt()
    +resume()
    Work Item
    Artifact
    (Resource)
    Sleep
    Ready
    Running
    Blocked
    Finished
    < < e n u m > >
    State
    Activity
    Project Management Model
    +tailor()
    Process
    Project
    Outcome
    Controlled
    Item
    +send()
    Event
    +addObserver()
    +removeObserver()
    +notify()
    Event Subject
    +update()
    Event Observer
    Service
    (Tool)
    Feedback Task
    Version
    Milestone
    Phase
    Review
    Release
    Iteration
    *
    *
    *
    *
    *
    1
    *
    *
    0..*
    *
    1..*
    *
    *
    *
    depend on
    require
    create
    activate
    subscribe
    / create

    View Slide

  6. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    CSEPM: Lifecycle for a Workflow
    6
    Active Finished
    Blocked
    activate sleep
    stop
    resume
    interrupt
    Sleep
    End
    Start
    Rugby
    Receive Event
    Rugby Send
    Event

    View Slide

  7. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    CSEPM: Lifecycle for a Workflow (Example)
    7
    Design Change
    Analysis
    Design
    New
    Requirement
    Design
    Change
    New
    Requirement
    Active Finished
    Blocked
    activate sleep
    stop
    resume
    interrupt
    Sleep
    End
    Start
    Rugby Send
    Event
    Feature
    Change
    Architecture
    Change
    Implementation
    Change
    Rugby
    Receive Event

    View Slide

  8. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    CSEPM: Dynamic process metamodel
    8
    Start
    Workflow
    Perform
    Work
    Incoming
    Event
    Activate
    Workflow
    Workflow
    Outgoing
    Event
    Stop
    Workflow
    Project End
    Workflow
    Customization
    Stop
    Workflow
    Customize
    Workflow
    Workflow
    Start
    Workflow Start
    Workflow
    Start
    Subscribe
    to Events
    Project End
    Sleep
    Work
    finished?
    Sleep
    Project
    Start
    Sleep
    No
    Yes
    Start
    Workflow
    Perform
    Work
    Incoming
    Event
    Activate
    Workflow
    Workflow
    Outgoing
    Event
    Stop
    Workflow
    Project End
    Workflow
    Customization
    Stop
    Workflow
    Customize
    Workflow
    Workflow
    Start
    Workflow Start
    Workflow
    Start
    Subscribe
    to Events
    Project End
    Sleep
    Work
    finished?
    Sleep
    Project
    Start
    Sleep
    No
    Yes
    Start
    Workflow
    Perform
    Work
    Incoming
    Event
    Activate
    Workflow
    Workflow
    Outgoing
    Event
    Stop
    Workflow
    Project End
    Workflow
    Customization
    Stop
    Workflow
    Customize
    Workflow
    Workflow
    Start
    Workflow Start
    Workflow
    Start
    Subscribe
    to Events
    Project End
    Sleep
    Work
    finished?
    Sleep
    Project
    Start
    Sleep
    No
    Yes
    Start
    Workflow
    Perform
    Work
    Incoming
    Event
    Activate
    Workflow
    Workflow
    Outgoing
    Event
    Stop
    Workflow
    Project End
    Workflow
    Customization
    Stop
    Workflow
    Customize
    Workflow
    Workflow
    Start
    Workflow Start
    Workflow
    Start
    Subscribe
    to Events
    Project End
    Sleep
    Work
    finished?
    Sleep
    Project
    Start
    Sleep
    No
    Yes
    Start
    Workflow
    Perform
    Work
    Incoming
    Event
    Activate
    Workflow
    Workflow
    Outgoing
    Event
    Stop
    Workflow
    Project End
    Workflow
    Customization
    Stop
    Workflow
    Customize
    Workflow
    Workflow
    Start
    Workflow Start
    Workflow
    Start
    Subscribe
    to Events
    Project End
    Sleep
    Work
    finished?
    Sleep
    Project
    Start
    Sleep
    No
    Yes

    View Slide

  9. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    CSEPM Instance of a Sequential Model: Waterfall
    9
    Requirements
    Elicitation
    Problem
    Statement
    Elicit
    requirements
    Analysis
    Requirements
    Analysis
    Document
    Analyze
    ...
    ...
    ...
    Deployment
    Deployed
    Software
    Deploy
    Requirements
    Elicitation
    finished
    Requirements
    Elicitation
    finished
    Analysis
    finished
    ...
    ...
    Testing
    finished
    Project
    Start
    Software
    deployed
    Project
    End
    Project
    Start
    Project
    End
    Sleep
    Sleep
    Sleep
    Sleep

    View Slide

  10. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    CSEPM Instance of an Iterative Model: Unified Process
    10
    Inception
    Candidate
    Architecture
    Iterate
    Elaboration
    Iterate
    Executable
    Architecture
    Construction
    Iterate
    Intermediate
    Release
    Transition
    Iterate
    Final Release
    Lifecycle
    Objective
    Lifecycle
    Architecture
    Lifecycle
    Objective
    Lifecycle
    Architecture
    Initial
    Operational
    Capability
    Initial
    Operational
    Capability
    Product
    Release
    Project
    End
    Project Start
    Project
    Start
    Iteration
    needed?
    Iteration
    needed?
    Iteration
    needed?
    Iteration
    needed?
    Project
    End
    No
    Yes
    No
    Yes
    Yes
    Yes
    No
    No

    View Slide

  11. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    CSEPM Instance of an Agile Model: Scrum
    11
    Sprint N
    Kickoff
    Meeting
    Create
    Product
    Backlog
    Initial
    Product
    Backlog
    Revise
    Product
    Backlog
    Sprint Planning
    Meeting
    Create
    Sprint
    Backlog
    Sprint
    Backlog N
    Develop
    Backlog Item
    Build
    Product
    Increment
    Product
    Increment N
    Sprint Review
    Meeting
    Feedback
    Revised
    Product
    Backlog
    Time based
    Release
    Feedback
    Report
    Project
    End
    Product
    Backlog
    revised
    Product
    Backlog
    created
    Product
    Backlog
    created
    Feedback
    Report
    Time
    based
    Release
    Project finished?
    Development
    done?
    Project
    Start
    Project
    End
    No
    Yes
    Yes
    No
    Paradigm Standard(TUM - Institut fuer Informatik - Lehrstuhl 1)

    View Slide

  12. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel 12
    Development
    Review
    Management
    Release
    Management
    Feedback
    Management
    Requirements
    Elicitation
    Analyze
    Finished?
    Backlog Item ready
    for development
    Merge Request
    Merge Request Review
    Quality ok?
    yes
    yes
    Backlog Item finished
    Merge
    Need feedback?
    Release Request
    no
    yes
    no
    Improvement Request
    Improvement Request
    Release Request
    Release Feedback Report
    Feedback Report
    Analyze
    Feedback
    New Backlog Item
    Backlog Item ready
    for Development
    Is new
    requirement?
    New Backlog Item
    Change Request
    yes
    no
    Change Request
    Specify Prioritize
    Design
    Implement
    Test
    CSEPM Instance of a Continuous Model: Rugby (simplified)
    Backlog Item finished
    Use …

    View Slide

  13. Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel
    Conclusion
    • CSEPM is an empirical process metamodel for continuous software engineering
    • It also allows to model instances for sequential, iterative and agile process models
    • It treats development activities as parallel running workflows to enable rapid cycles
    • It allows tailoring, customization and extension
    ➡ CSEPM helps to understand the continuous and unexpected nature of software
    engineering
    13

    View Slide

  14. [email protected] - www.skrusche.de - @skrusche
    RCoSE 2017
    Stephan Krusche and Bernd Bruegge (May 22, 2017)
    CSEPM - A Continuous Software 

    Engineering Process Metamodel

    View Slide