02291: system integrationdisciplined agile development (dad) i hybrid agile development method...

61
02291: System Integration Week 10 Hubert Baumeister [email protected] DTU Compute Technical University of Denmark Spring 2018

Upload: others

Post on 16-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

02291: System IntegrationWeek 10

Hubert [email protected]

DTU ComputeTechnical University of Denmark

Spring 2018

Page 2: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Last Week

I Principles of good design: layered architectureI Software Development ProcessesI Introduction to Examination Project

Page 3: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Contents

Software Development Process

Agile Modeling

Model Driven Architecture

More UML Diagrams

Page 4: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Resource Triangle

Plan Driven

D I TA

Time

Features

Release date

Agile

Database / Infrastructure Layer

Presentation Layer

Application Layer

Domain Layer

UserStory

UserStory

UserStory

Page 5: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

eXtreme Programming (XP)I Kent Beck 1999I 12 Practices

Kent Beck, Extreme Programming 1st ed.

Page 6: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Scrum

Working incrementof the software

Sprint Backlog SprintProduct Backlog

30 days

24 h

file:///Users/huba/Desktop/Scrum_process.svg

1 of 1 /18.3.13 24:16

Wikipedia

I Robert Martin (Uncle Bob) about ”The Land that ScrumForgot”http://www.youtube.com/watch?v=hG4LH6P8Syk→ History about agile methods, the agile manifesto, and

Scrum and its relationshop to XP

Page 7: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Lean Software Development

I Lean Production:I Value for the customerI Reduce the amount of waste in the production processI Generate flow

I Waste: resources used which do not produce value for thecustomer

I time needed to fix bugsI time to change the system because it does not fit the

customers requirementsI time waiting for approvalI . . .

Page 8: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Generating flow using Pull and Kanban

WIP = Work in Progress Limit

1324

A T IWork Item DoneDQueue WIP Queue QueueQueue WIP WIP WIP

8

7

9

10

5

6

BlahComposite

Leaf Assembly4 2 3

3 3 3 3

Page 9: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Flow through Pull with Kanban

I Process controlling: local rulesI Load balancing: Kanban cards and Work in Progress

(WIP) limitsI Integration in other processes

Figure from David Anderson www.agilemanagement.net

Page 10: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Online Kanban Tool: Trello

I www.trello.com: Electronic Kanban board useful foryour project

I Kanban board the exam project example https://trello.com/b/CqzwTiRT/02291-example-lean

I Another Example https://trello.com/b/4wddd1zf/kanban-workflow

Page 11: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Contents

Software Development Process

Agile Modeling

Model Driven Architecture

More UML Diagrams

Page 12: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Agile Modelling

I Traditional modelling: Requirements model, design model→ waterfall

I What is the role of modelling in agile softwaredevelopment?

I XP and documentsI XP and modelling

→ Agile modelling

Page 13: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Agile Modelling

I Agile Modelling: values, principles, and practicesI References

I http://www.agilemodeling.com (Scott Ambler)I ”Agile Modelling” Scott Ambler, Wiley 2002

Page 14: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Agile Modelling Values

I CommunicationI SimplicityI FeedbackI CourageI Humility

http://www.agilemodeling.com/values.htm

Page 15: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Agile Modelling Principles

I Core PrinciplesI Software is your primary goalI Enabling the next effort is your secondary goalI Travel lightI Incremental changeI Model with a purposeI Multiple models

. . .

Page 16: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Practices

I Core PracticesI Supplementary PracticesI Real Good Ideas

Page 17: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Core Practices

I Active Stakeholder ParticipationI Collective OwnershipI Model in Small IncrementsI Create Several Models in ParallelI Iterate to Another ArtifactI Display Models PubliclyI Model With OthersI Prove it With CodeI Use the Simplest ToolsI . . .

List of practices:http://www.agilemodeling.com/practices.htm

Page 18: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Disciplined Agile Development (DAD)I Hybrid Agile development method evolved from

I Agile ModellingI Agile Unified Process

I Based on

SAFe: Scaled Agile Framework, Outside In Dev.: Focus onstakeholder requirements, Evo: Evolutionary Development

http://disciplinedagileconsortium.org

Page 19: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Iterative Processes: E.g. Rational Unified Process(1996)

Page 20: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

DAD

Focus on complete lifecycle

A*High*Level*Lifecycle*

© Disciplined Agile Consortium 4

http://disciplinedagileconsortium.org

Page 21: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

DAD

DAD + Lean

12

Options

Business Value

Expedite

Fixed Delivery Date

Intangible

Work items are pulled when

capacity is available to address them

Replenishment modeling session

Operate and

support solution in production

Enhancement Requests and Defect Reports

New features

Initial Require-ments

Initial Architectural Vision

Initial modeling,

planning, and organization

Daily work

Retrospective

Demo

Release solution into production

CoordinationMeeting

Construction Transition

Continuous stream of developmentStakeholder vision

Sufficient functionality

New features

Feedback

Learnings

Strategy

Inception

Production readyDelighted stakeholders

Proven architecture

Identify, prioritize, and select projects

Initial Visionand Funding

Envision the future

Business Roadmap, Technology Roadmap

strategies should enhance the ability of DAD teams

to deliver business value to their stakeholders in

a cost eff ec ve and mely manner. Unfortunately

many exis ng IT governance strategies are based on a

command-and-control, bureaucra c approach which

o en proves ineff ec ve in prac ce. Chapter 20 of the

DAD book provides a comprehensive discussion of

agile governance [3].

Open and honest monitoring.• Although agile

approaches are based on trust, smart governance

strategies are based on a “trust but verify and then

guide” mindset. An important aspect of appropriate

governance is the monitoring of project teams

through various means. One strategy is for anyone

interested in the current status of a DAD project

team to a end their daily coordina on mee ng

and listen in, a strategy promoted by the Scrum

community. Although it’s a great strategy that we

highly recommend, it unfortunately doesn’t scale very

well because the senior managers responsible for

governance are o en busy people with many eff orts

to govern, not just your team. Hence the need for

more sophis cated strategies such as a “development

F®¦çÙ� 10. T«� DAD L��Ä ½®¥��ù�½�.

intelligence” approach supported via automated

dashboards.

Being enterprise aware has several important implica ons

for the delivery lifecycle. First, to help teams understand

the enterprise context that they operate in we should

explicitly depict major collabora on fl ows with other

parts of the organiza on. Figure 9 shows how to do so by

evolving the governed agile delivery lifecycle of Figure 4.

Note that these fl ows are not necessarily ar fact based,

they may represent other forms of communica on such

as face-to-face discussion.

The second implica on is that one lifecycle does not fi t all. We have worked with several organiza ons, some

as small as thirty IT staff , that had teams that followed

very diff erent lifecycles. For teams that are new to agile

the lifecycle of Figure 9 is a great place to start. But,

because of the agile philosophy of ac vely striving to

learn and improve your approach teams start to evolve

away from the Scrum-based lifecycle. It is common for

them to realize that prac ces such as itera on planning,

itera on modeling, retrospec ves, and demos do not

need to be on the same cadence, that instead they

http://disciplinedagileconsortium.org

Page 22: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Contents

Software Development Process

Agile Modeling

Model Driven Architecture

More UML Diagrams

Page 23: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Traditional Development to MDA

Page 24: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Traditional Development to MDA

Page 25: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Traditional Development to MDA

Page 26: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

MDA

I Model Driven Architecture (MDA)→ Derive code from models through transformations

I LiteratureI Anneke Kleppe, Jos Warmer, Wim Bast ”MDA Explained”,

2003, Addison Wesley ProfessionalI MDA Website by OMG (http://www.omg.org/mda/)

Page 27: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Example I: Attributes

Platform Independent Model (PIM):

Page 28: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Example I: Attributes

Platform Specific Model (PSM) for Java:

Transformation PIM → PSMI Introduce getter and setter methods for each attribute

Page 29: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Example II: Associations

PIM:

Page 30: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Example II: Associations

PSM for Java

Transformation PIM → PSMI Introduce an attribute for a navigable association

Page 31: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

PIM for Rosa’s Breakfast Service

Page 32: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

MDA for Rosa’s Breakfast Service

I Three PSM’sI Relational database modelI Enterprise Java Beans implementationI Web interface

Page 33: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

PSM Relational database model

Page 34: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

PSM EJB

Page 35: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

PSM Web Interface

Page 36: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Communication Bridge EJB relational DB

Page 37: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Principles of MDA: Models

Page 38: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Principles of MDA: Models

Page 39: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Principles of MDA: Models

Page 40: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Principles of MDA: Transformations

Page 41: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Principles of MDA: Transformations

Page 42: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Principles of MDA: Transformations

I Another example: Java Emitter Templates

Page 43: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Transformations

I Standard transformationsI Customised transformations

Page 44: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Example Transformation

Transformation classes to DB schema (Pseudo Code)

if the association A to B is adorned by an association classor the multiplicity at both ends is more-than-one

then create a table representing the association class or theassociationand create foreign keys in both the table representing A andthe table representing B referring this new table

else if the multiplicity at one end is zero-or-onethen create a foreign key in the table representing the class

at that end, referencing the other endelse // the multiplicity of the association is one-to-one

create a foreign key in one of the tables, referencing theother end

endifendif

Page 45: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

MDA and Metamodels I

Page 46: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

MDA and Metamodels II

Short notation for the previous diagram

Page 47: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

MDA and Metamodels III

I UML: Meta Object Facility(MOF)

I EMF: Eclipse ModellingFramework

I 02162 SoftwareEngineering II

Page 48: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

The MDA/MDA promise

Page 49: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

The MDA/MDA promise

Page 50: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

MDA

I BenefitsI Higher productivityI PortabilityI InteroperabilityI Maintenance and Documentation

I IssuesI Modelling is abstraction

I Transformations need to add thingsI Multiple models

I Behavioural models

Page 51: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Contents

Software Development Process

Agile Modeling

Model Driven Architecture

More UML DiagramsObject DiagramsPackage DiagramsDeployment Diagram

Page 52: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Object Diagram Example

Class Diagram Object Diagram

Page 53: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Object Diagram Purpose

I Snapshot of a running systemI objects: Instance of a classI links: instance of an association

I Communication diagram

Page 54: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Update operation of Account

State before executingupdate(n)

a: Account

bal = b

h: History

bal = m

{ n + b > = 0 }

State after executingupdate(n)

h1: History

bal = b

h: History

bal = m

a: Account

bal = b + n

prev

Page 55: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Notation

I Variant 1: an object with name and class

I Variant 2: an anonymous object of a class

I Variant 3: a named object of unknown class

Page 56: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Notation

I Value Specifications

I Slots

I Links to other objects

Page 57: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Package Diagram

I Groups model elements: classes, objects, use cases,packages, . . .

I Structures the model , not the systemI c.f. component diagram

I Define a name spaceI P::C means class C in package P

→ Java packages

Page 58: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Package notation

I Notations for packages

Page 59: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Examples

I Dependencies between packages

Page 60: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Deployment Diagram

Martin Fowler, UML Distilled

Page 61: 02291: System IntegrationDisciplined Agile Development (DAD) I Hybrid Agile development method evolved from I Agile Modelling I Agile Unified Process I Based on SAFe: Scaled Agile

Next Week

I Validation of models: Model checkingI Summary of the course