Title: Software Design: The Next Step
1Software Design The Next Step
- A presentation by Sean Matthews
2Kruchen, P. 2005. "Editor's Introduction
Software Design in a Postmodern Era." Software,
IEEE 22 (2) 16-18.
Kruchten, P. 2005. "Casting software design in
thefunction-behavior-structure framework."
Software, IEEE 22 (2) 52-58.
3Intro
- Weve reached a plateau in software design
- What are the next directions?
- Where are we?
- Where do we go from here?
4Where are we?
- we can systematically harvest and organize our
collective knowledge, experience, and wisdom
variously captured in design principles and
heuristics, patterns, best practices, and bad
smells into a coherent whole.
5Where do we go from here?
- We need to
- Bridge the gap between user needs and the way we
express requirements - Improve design analysis, validation, and
verification techniques - Bridge the gap between design and code that
programmers create manually
6Requirements Engineering
GAP
Design
GAP
Coding
7Where do we go from here?
- Expand the boundaries of software design to fill
in the gaps - When we program and test, were making decisions
about the system under construction this is
doing design. - Design activities should be included in other
parts of the software development process
8Analogous situations
- To demonstrate how and why design should be
combined with other phases of the SD process, the
author casts it in a general, recently formulated
engineering framework.
9Functional-Behavior-Structure
- A development framework applicable to any
engineering discipline - John Gero, design scientist
- 8 processes link a set of five elements that lead
us from a set of abstract functions to a design
description
10Functional-Behavior-Structure
- FBS Elements
- F functions
- Be expected behaviors
- Bs behaviors (actual)
- S synthesis
- D documentation
11Functional-Behavior-Structure
- FBS Processes
- Formulation (F ? Be)
- Synthesis (Be ? S)
- Analysis (S ? Bs)
- Evaluation (Be ? Bs)
- Documentation (S ? D)
- Structural reformulation (S ? S)
- Behavioral reformulation (S ? Be)
- Functional reformulation (S ? F)
12FBS Framework
13Applying FBS to SE
- design is making choices that will shape the
final product. - Requirements, coding, and testing activities all
involve some design - Traditionally, design means building a model of
the system to be constructed up to the point at
which coding can begin.
14Applying FBS to SE
15Applying FBS to SE
16SE lessons from FBS
- Lack of fundamental theory
- Physics has its laws
- Evaluation process is experimental
- Concrete S, almost no addition to D
17SE lessons from FBS
- Legacy systems
- D ? S ? Be ? F
- Reuse
- F ? Be ? S
- catalogue look-up
18SE lessons from FBS
- Modeling
- to automate the coding and deployment artifacts
- to describe a systems expected behavior (Be),
and thereby facilitate the synthesis (S) process
19SE lessons from FBS
- Design patterns
- If F1 and Bs1 F2 and Bs2, then the designs
are analogous - We can communicate design fragments and share and
reuse practical solutions for recurrent problems.
20The BIG picture
- In software production, programming is primarily
a design activity - In software manufacturing it is not
- Decisions about structure and the way something
is done - Also, testing to a smaller extent
- Assessment of test results determine whether
design needs reworking
21Conclusions
- Generally, something gets lost between design and
implementation. - With FBS, design becomes part of coding and
implementation. - SE needs to find approaches to describing
software that easily translate to static analysis
and code generation.
22References
Kruchen, P. 2005. "Editor's Introduction
Software Design in a Postmodern Era." Software,
IEEE 22 (2) 16-18.
Kruchten, P. 2005. "Casting software design in
thefunction-behavior-structure framework."
Software, IEEE 22 (2) 52-58.