(software) design: an analogy with my closet

25
1 Advanced Software Engineering URL: http://lore.com/Advanced-Software- Engineering-Univaq/ L01: (Software) Design: an analogy with my Closet! Henry Muccini [email protected] DISIM Dep.nt of Information Engineering, Computer Science and Mathe University of L’Aquila, Italy

Upload: henry-muccini

Post on 20-Jan-2015

122 views

Category:

Design


0 download

DESCRIPTION

Advanced Software Engineering course (2014-2015): these slides show an analogy between the design of shelves for a closet, and the need ot software design

TRANSCRIPT

Page 1: (Software) Design: an analogy with my closet

1

Advanced Software EngineeringURL: http://lore.com/Advanced-Software-Engineering-Univaq/

L01: (Software) Design: an analogy with my Closet!

Henry Muccini [email protected]

DISIMDep.nt of Information Engineering, Computer Science and MathematicsUniversity of L’Aquila, Italy

Page 2: (Software) Design: an analogy with my closet

SEA Group

Copyright Notice

The material in these slides may be freely reproduced and distributed, partially or totally, as far as an explicit reference or acknowledge to the material author is preserved.

Page 3: (Software) Design: an analogy with my closet

SEA Group

Software Development you are used so far….

Page 4: (Software) Design: an analogy with my closet

SEA Group

Software Design you may be used so far…

Page 5: (Software) Design: an analogy with my closet

SEA Group

A difficult lesson to teach

Why do we need to Design our Software

Page 6: (Software) Design: an analogy with my closet

SEA Group

Let me use an analogy…

Page 7: (Software) Design: an analogy with my closet

SEA Group

My closet

Drawing my closet

Page 8: (Software) Design: an analogy with my closet

SEA Group

First Design Question

Shall I buy a pre-made shelf?Shall I make it?

That translates into:«Shall I buy the system from the market, or buy some components and assemble the system I need!»

Many factors to be analyzed to make such a

decisionDiscussion

Page 9: (Software) Design: an analogy with my closet

SEA Group

Second Design Question

Which type of construction design pattern shall I use?

Discussion

Page 10: (Software) Design: an analogy with my closet

SEA Group

Page 11: (Software) Design: an analogy with my closet

SEA Group

Important «Environmental» Constraints

Room Dimension

Room Characteristics Two no-nail walls!! Take into account the skirtings No-nail ceiling!!! Antenna cable

«The system and the enterprise provide environments for, and constraints on , the software

architecture» [SAinPractice_Book]

Page 12: (Software) Design: an analogy with my closet

SEA Group

Requirements

Build a stable, no crashing, structure Build shelves that can keep up to 40 kilos Cost = 0 (derived requirement)

Page 13: (Software) Design: an analogy with my closet

SEA Group

The initial design

Drawing the closet design

Page 14: (Software) Design: an analogy with my closet

SEA Group

Resources

Page 15: (Software) Design: an analogy with my closet

SEA Group

Other Resources

Page 16: (Software) Design: an analogy with my closet

SEA Group

Some further design decisions - RISK

How to build the «central» element?

Page 17: (Software) Design: an analogy with my closet

SEA Group

Some further design decisions - RISK

How to make this central element as stable as possible??

Page 18: (Software) Design: an analogy with my closet

SEA Group

Incremental implementation….

Page 19: (Software) Design: an analogy with my closet

SEA Group

Initial big mistake

Page 20: (Software) Design: an analogy with my closet

SEA Group

Fix to this mistake

Page 21: (Software) Design: an analogy with my closet

SEA Group

Fix to this mistake

Page 22: (Software) Design: an analogy with my closet

SEA Group

Hestetic Mistakes

Page 23: (Software) Design: an analogy with my closet

SEA Group

Documentation mistake

Page 24: (Software) Design: an analogy with my closet

SEA Group

Final Version

Page 25: (Software) Design: an analogy with my closet

SEA Group

From my closet to… Software Design

Buy vs. Build

Design Patterns

Design Decisions

Environmental Constraints

Risk mitigation

Incremental design

Resources

mistakes -> learn -> fix -> mistakes ->