conceptual modeling agile information systems development · development process ... to define its...

58
Conceptual modeling in agile information systems development Antoni Olivé Universitat Politècnica CatalunyaBarcelonaTech 1

Upload: voxuyen

Post on 12-Apr-2018

217 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Conceptual modeling in

agile information systems development

Antoni OlivéUniversitat Politècnica Catalunya‐BarcelonaTech

1

Page 2: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Questions without definitive answers

Is conceptual modeling a necessary or an optional

activity in information systems development?

agile

2

What is it?

Page 3: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

3

“The main purpose of conceptual modeling is to improve communicationbetween the parties involved in the development process”

“Conceptual data modeling is an indispensable part of information system design and development”

Motivation

Page 4: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

4

“...might be used to facilitate the design and implementation of an information system”

“Once you have the conceptual design, all the other design and implementation activities can and should be grounded in it...”

Motivation

Page 5: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

We are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value:

…Working software over comprehensive documentation…

That is, while there is value in the items on the right, we value the items on the left more.

Manifesto for agile software development

5

Page 6: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Motivation

6

To: antoni.oliveFrom: a studentBody:

Dear professor,

I've started to develop my final career project in the company.

Here they use agile development, and they do not generate any kind of documentation, and the requirements engineering and overall design are not very deep (I understand that this is their development method).

My idea of the project is to approach it in this way...

Page 7: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Objective of the talk

Is conceptual modeling a necessary or an optional

activity in information systems development?

agile

7

Page 8: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Implications

PracticeDo we need to perform conceptual modeling?

TeachingDo we have to teach conceptual modeling?

ResearchWhich is the nature and role of conceptual modeling?

In (agile) information systems development

8

Page 9: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Outline

• Back to basics: the need of requirements

• What are the conceptual schemas? Do we really need them?

• The main driving force of formal conceptual schemas

• Conceptual modeling in agile development. Is it needed?

• Conclusions

9

Page 10: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

You cannot develop a system unless you know its requirements

Objectives

Wish to achieve

Requirements

Can be achieved with a system that has

System

Are the input for the development of

Is deployed into

makes unhappy

The system’s lifecycle

makes happy

evolves

10

Page 11: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

The principle of necessity of requirements

To develop an information system it is necessary

to define its requirements

Before software can be designed, programmed, coded, its requirements must first be reasonably well understood. 

Are there exceptions?11

Page 12: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

12

Infinite monkey theorem

A monkey • hitting keys at random on a typewriter keyboard• for an infinite amount of time • will almost surely type a given text, • such as the complete works of William

Shakespeare.

Page 13: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

13

Infinite programmer theorem

A programmer• hitting keys at random on a typewriter keyboard• for an infinite amount of time • will almost surely type a a program, • that satisfies the stakeholders’ needs

Page 14: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Two types of requirements

• Functional

• Quality

The focus of this talk

14

Page 15: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

The functions of an information system

State

change

Informationsystem

Domain

represents changes

action

output

15

Page 16: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

• Domain concepts represented in the IS• Definitions• Integrity Constraints • Events/Actions:

– Triggering conditions– Constraints– Effect on the state– Output

Functional requirements

16

Page 17: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

The principle of necessity of functional requirements

To develop an information system it is necessary

to define its functional requirements

17

Page 18: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Outline

• Back to basics: the need of requirements

• What are the conceptual schemas? Do we really need them?

• The main driving force of formal conceptual schemas

• Conceptual modelling in agile development. Is it needed?

• Conclusions

18

Page 19: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

Classification of functional requirements

19

Page 20: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Four key classifications offunctional requirements

• Formality

• Verifiability

• Explicitness

• Persistency

20

Page 21: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Formality

Degree of formality of the language

Informal Formal

Natural language LogicUML/OCL

Structured natural language

Semi‐formal

Userstories

21

Page 22: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Verifiability

Non-verifiable Verifiable

Verifiable: A person or a machine can check that the software meets the requirement

OCLconstraint

Ambiguousrequirement

Partlyambiguousrequirement

22

Page 23: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Explicitness

Implicit Explicit

Explicit: Made public in some form

Assumedrequirements

SRSdocument

23

Page 24: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Persistency

Non-persistent Persistent

Verbal

Paper document

Computer file

24

Page 25: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

Classification of functional requirements

25

Page 26: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Functional requirements to be implemented must be made verifiable

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

26

Page 27: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Functional requirements to be implemented must be made explicit

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

27

Page 28: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

Conceptual schema =Explicit, verifiable functional reqs.

28

Page 29: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

29

To develop an information system it is necessary

to define its functional requirements

The principle of necessity of conceptual schemas

To develop an information system it is necessary

to define its conceptual schema

Page 30: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

…conceptual modelers:

(1) describe structure models in terms of entities, relationships, and constraints;

(2) describe behavior or functional models in terms of states, transitions among states, and actions performed in states and transitions; and

(3) describe interactions and user interfaces in terms of messages sent and received and information exchanged.

http://www.conceptualmodeling.org/ConceptualModeling.html

“Official” definitions

30

Page 31: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

… conceptual-model diagrams:

• …

• in some cases automatically generate (parts of) the software application.

“Official” definitions

http://www.conceptualmodeling.org/ConceptualModeling.html

31

Page 32: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Outline

• Back to basics: the need of requirements

• What are the conceptual schemas? Do we really need them?

• The main driving force of formal conceptual schemas

• Conceptual modeling in agile development. Is it needed?

• Conclusions

32

Page 33: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

Conceptual schemas:Formal or informal?

33

Page 34: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Formalization? A cost/benefit analysis

Cost Benefit

34

Page 35: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Userinterface Domain and database layer

Execution platform

Verifiable

From requirements to implementation

Manuallyobtained

Design and construction

Automaticallyobtained

Modeltransformation

Formal

35

Page 36: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Outline

• Back to basics: the need of requirements

• What are the conceptual schemas? Do we really need them?

• The main driving force of formal conceptual schemas

• Conceptual modeling in agile development. Is it needed?

• Conclusions

36

Page 37: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

We are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value:

Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Manifesto for agile software development

37

Page 38: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Conceptual modeling in agile software development

Two views

Working software over comprehensive documentation

The focus of this talk

38

Page 39: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

In consultation with the customer or product owner, the team divides up the work to be done into functional incrementscalled “user stories”.

Functional requirements in agile development:

User stories

39

Page 40: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

User stories

As a role I want feature so that reason

As a bank account holderI want to be informed if my monthly balance 

is projected to go to zero or belowso that I can arrange for an overdraft

40

Page 41: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

One thing the customer wants the system to do.…Should be verifiable.

User stories

41

Page 42: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

User stories

Conceptual schema42

Page 43: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

The principle of necessity of conceptual schemas

To develop an information system it is necessary

to define its conceptual schema

in an agile way

43

Page 44: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Alistair Cockburn’s Cooperative game principle

Software development is a cooperative game…The primary goal of the game is to deliver useful, 

working software.The secondary goal is to set up for the next game. The next game may be:‐ to alter or replace the system or ‐ to create a neighboring system.

Documentation44

Page 45: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

ImplicitExplicit

Informal

Formal

Verifiable

Non‐verifiable

(Verifiable)

(Individual)

(Shared)

Non‐persistent Persistent

Conceptual schemas:Persistent or non-persistent?

45

Page 46: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Persistent or non-persistent?A life-cycle cost analysis

CP = Cost of initial documentation +N * Average cost of updating documentation N : Number of system’s functional updates

Cost

Time

CP

46

Page 47: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

CP = Cost of initial documentation +N * Average cost of updating documentation

Persistent or non-persistent?A life-cycle cost analysis

CNP = M * Average cost of recovering requirements

N : Number of system’s functional updates

M : Number of times functional requirements are needed and not available

47

Page 48: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Persistent or non-persistent?A life-cycle cost analysis

Cost

Time

CP

CNP

Technicaldebt

?

48

Page 49: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

… A metaphor referring to the eventual consequences of poor … software development. The debt can be thought of as work that needs to be done before a particular job can be considered complete. If the debt is not repaid, then it will keep on accumulating interest, making it hard to implement changes later on.

Common causes of technical debt :

Lack of documentation, where code is created without necessary supporting documentation. That work to create the supporting documentation represents a debt that must be paid.

Technical debt

49

Page 50: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Non-persistent may be better when…

CNP = M * Average cost of recovering requirements

M : Number of times functional requirements are needed and not available

• Low cost

• Short life cycle• Few people• Stable team• Team remembers everything always

50

Page 51: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

How to decrease the initial cost

May remain non-persistent requirements that:

• Can be easily observed in the system• Can be easily recovered• Are common-sense• Are obvious (dependent)

51

Page 52: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Sometimes requirementsare easily observed in the system

But not always

52

Page 53: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Agile conceptual schemas?

53

Page 54: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

• Domain concepts represented in the IS• Definitions• Integrity Constraints• Events/Actions:

– Triggering conditions– Constraints– Effect on the state– Output

Agile persistent conceptual schemas?

(*): When may not be known/accessible(**): When not externally visible(***): When not externally visible and independent

(*)

(**)

(***)

54

Page 55: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Outline

• Back to basics: the need of requirements

• What are the conceptual schemas? Do we really need them?

• The main driving force of formal conceptual schemas

• Conceptual modeling in agile development. Is it needed?

• Conclusions

55

Page 56: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Conclusions (I)

To develop an information system it is necessary

to define its conceptual schema

The principle of necessity applies also to agile methods:

Conceptual modeling is a necessary activity

in information systems development

56

Page 57: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

Key distinctions in conceptual schemas:

• Informal/formal– Formalization enables automatic processing

• Non‐persistent/persistent– Has non‐obvious cost implications– Agile conceptual schemas may be an appropriate persistence degree.

Conclusions (II)

57

Page 58: Conceptual modeling agile information systems development · development process ... to define its requirements ... • hitting keys at random on a typewriter keyboard • for an

58

Thanks for your attention