(software) design: an analogy with my closet

Post on 20-Jan-2015

120 Views

Category:

Design

0 Downloads

Preview:

Click to see full reader

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

1

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

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

Henry Muccini henry.muccini@univaq.it

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

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.

SEA Group

Software Development you are used so far….

SEA Group

Software Design you may be used so far…

SEA Group

A difficult lesson to teach

Why do we need to Design our Software

SEA Group

Let me use an analogy…

SEA Group

My closet

Drawing 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

SEA Group

Second Design Question

Which type of construction design pattern shall I use?

Discussion

SEA Group

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]

SEA Group

Requirements

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

SEA Group

The initial design

Drawing the closet design

SEA Group

Resources

SEA Group

Other Resources

SEA Group

Some further design decisions - RISK

How to build the «central» element?

SEA Group

Some further design decisions - RISK

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

SEA Group

Incremental implementation….

SEA Group

Initial big mistake

SEA Group

Fix to this mistake

SEA Group

Fix to this mistake

SEA Group

Hestetic Mistakes

SEA Group

Documentation mistake

SEA Group

Final Version

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 ->

top related