38
Introduction to Object Oriented Modeling R K Joshi IIT Bombay

Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

Introduction to Object Oriented Modeling

R K JoshiIIT Bombay

Page 2: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Page 3: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Concepts to Realization

Page 4: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Realization to Conceptual Understanding

Page 5: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Need to Model Different aspects of/for the software to be built

Page 6: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Page 7: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

Page 8: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

End goals

Page 9: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

End goals

User interfaces

Page 10: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

End goals

User interfaces

Product Implementation Models

Page 11: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

End goals

User interfaces

Product Implementation Models

Deployment Models, N/W, Architecture

Page 12: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

End goals

User interfaces

Product Implementation Models

Deployment Models, N/W, Architecture

Man month

Page 13: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

End goals

User interfaces

Product Implementation Models

Deployment Models, N/W, Architecture

Man month Financial Model

Page 14: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Conceptual ideas

End goals

User interfaces

Product Implementation Models

Deployment Models, N/W, Architecture

Man month Financial Model

The software development process

Page 15: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Modeling

Page 16: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Modeling

Modeling tools

Page 17: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Modeling

Modeling tools Microscopic views&

Iterative Refinement

Page 18: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Modeling

Modeling toolsMicroscopic views

&Iterative Refinement

Documentation

Page 19: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Product Models

Structure Dynamics

Page 20: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Static Modeling

Furniture?Rooms?

Flats?

Building?Electrical Wiring?

Water pipelines

Air ducts?

Page 21: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Models throughout the Lifecycle

• Per class• Per object• Collaborating classes• Collaborating objects• Collection of classes (source code)• Location of classes, modules ..

Page 22: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Structural (Static) Modeling

• Class diagrams• Object Diagrams• Deployment Diagram• File directory hierarchy• Component Package diagrams• Entity Relationship

Page 23: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

A Static Model

Push ()Pop()Size()

Stack

Page 24: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Visualcomponent

draw ()

Decorator

draw()Component->draw()

TextView

operation ()

Borderdraw()

drawBorder()

Scrollerdraw ()

drawScroller

component

Decorator::draw()drawBorder()

Another Static Model

Page 25: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Dynamic Modeling

Page 26: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Dynamic Modeling

How does the groupcollaborate?

Page 27: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Dynamic Modeling

How does the groupcollaborate?

How does the individualrespond?

Page 28: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

What happens amongst the objects?

Page 29: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Interaction Diagram: Item issue use case

:Operator iw:IssueWin tr1: Issue b:Book u:User

committed

issue(bid,uid)

supply bid,uid

isIssuable?hasToken?

issue (b)

issue (u)

destroy

create

bind using bid

bind using uid

Page 30: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

What happens inside an object?

Page 31: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

A State Machine

Full

Empty Partial

insert [size <MAX-1]

insert [size =MAX-1]

insert [size =MAX-1]

fetch [size >1]

fetch [size =1]

fetch [size =1]

Initial stateinsert [size <MAX-1]

Page 32: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Including Error Conditions

Full

Empty Partial

insert [SIZE <MAX-1]

insert [SIZE =MAX-1]

insert [SIZE =MAX-1]

fetch [SIZE >1]fetch

[SIZE =1]

fetch [SIZE =1]

Initial state

fetch / signal error

insert / signal error

insert [size <MAX-1]

Page 33: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

How are various interactions/activities

linked with each other?

Page 34: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Activity Diagram Scan

User’s barcode

ScanBook barcode

enter user id by hand

[scanner failed][scan okay]

Performreturn transaction

enter bookid by hand

[scanner failed]

[scan okay]

Page 35: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

How much can you model?

• Can the full system be specified during modeling?

• What other modeling languages exist?

• Can the full system be generated from the model?

• Benefits of Modelchecking• Modeling language vs.

implementation language

Page 36: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Code Generation

• Class structures• Basic Relations• Basic constructions• Helper Code• Service Orientation

– Intermediate formats and Platform dependent code generation techniques

Page 37: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Traceability

• Models – Seamlessness

• Moving from early conceptualization to construction and eventually into delivery and maintenance

• Changes reflected back

Page 38: Introduction to Object Oriented Modelingrkj/talks/modeling.pdf · Introduction to Object Oriented Modeling R K Joshi IIT Bombay. R.K. Joshi, IIT Bombay. R.K. Joshi, IIT Bombay Concepts

R.K. Joshi, IIT Bombay

Summary

• Model ---> Implementation• Implementation --> Model• Forward engineering

– Specify/model first and then go on to build

• Many facets of a system --> many models

• Consistency between models• Traceability to Implementation• Automatic Code Generation