Top Banner
Software Design: Software Design: The Next Step The Next Step A presentation by A presentation by Sean Matthews Sean Matthews
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Design: The Next Step A presentation by Sean Matthews.

Software Design: The Software Design: The Next StepNext Step

A presentation byA presentation by Sean Matthews Sean Matthews

Page 2: Software Design: The Next Step A presentation by Sean Matthews.

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.

Page 3: Software Design: The Next Step A presentation by Sean Matthews.

IntroIntro

We’ve reached a plateau in We’ve reached a plateau in software designsoftware design

What are the next directions?What are the next directions? Where are we?Where are we? Where do we go from here?Where do we go from here?

Page 4: Software Design: The Next Step A presentation by Sean Matthews.

Where are we?Where are we?

“…“…we can systematically we can systematically harvest and organize our harvest and organize our collective knowledge, collective knowledge, experience, and wisdom– experience, and wisdom– variously captured in design variously captured in design principles and heuristics, principles and heuristics, patterns, best practices, and patterns, best practices, and bad smells– into a coherent bad smells– into a coherent whole.”whole.”

Page 5: Software Design: The Next Step A presentation by Sean Matthews.

Where do we go from here?Where do we go from here?

We need to…We need to… Bridge the gap between user Bridge the gap between user

needs and the way we express needs and the way we express requirementsrequirements

Improve design analysis, Improve design analysis, validation, and verification validation, and verification techniquestechniques

Bridge the gap between design Bridge the gap between design and code that programmers create and code that programmers create manuallymanually

Page 6: Software Design: The Next Step A presentation by Sean Matthews.

RequirementsEngineering

Design

Coding

Page 7: Software Design: The Next Step A presentation by Sean Matthews.

Where do we go from here?Where do we go from here?

Expand the boundaries of Expand the boundaries of software design to fill in the software design to fill in the gapsgaps ““When we program and test, we’re When we program and test, we’re

making decisions about the making decisions about the system under construction: this is system under construction: this is doing design.”doing design.”

Design activities should be Design activities should be included in other parts of the included in other parts of the software development processsoftware development process

Page 8: Software Design: The Next Step A presentation by Sean Matthews.

Analogous situationsAnalogous situations

To demonstrate how and why To demonstrate how and why design should be combined with design should be combined with other phases of the SD process, other phases of the SD process, the author casts it in a general, the author casts it in a general, recently formulated engineering recently formulated engineering framework.framework.

Page 9: Software Design: The Next Step A presentation by Sean Matthews.

Functional-Behavior-StructureFunctional-Behavior-Structure

A development framework A development framework applicable to any engineering applicable to any engineering disciplinediscipline

John Gero, design scientistJohn Gero, design scientist 8 processes link a set of five 8 processes link a set of five

elements that lead us from a set elements that lead us from a set of abstract functions to a design of abstract functions to a design descriptiondescription

Page 10: Software Design: The Next Step A presentation by Sean Matthews.

Functional-Behavior-StructureFunctional-Behavior-Structure

FBS ElementsFBS Elements F: functionsF: functions Be: expected behaviorsBe: expected behaviors Bs: behaviors (actual)Bs: behaviors (actual) S: synthesisS: synthesis D: documentationD: documentation

Page 11: Software Design: The Next Step A presentation by Sean Matthews.

Functional-Behavior-StructureFunctional-Behavior-Structure

FBS ProcessesFBS Processes Formulation (F Formulation (F Be) Be) Synthesis (Be Synthesis (Be S) S) Analysis (S Analysis (S Bs) Bs) Evaluation (Be Evaluation (Be Bs) Bs) Documentation (S Documentation (S D) D) Structural reformulation (S Structural reformulation (S S) S) Behavioral reformulation (S Behavioral reformulation (S Be) Be) Functional reformulation (S Functional reformulation (S F) F)

Page 12: Software Design: The Next Step A presentation by Sean Matthews.

FBS FrameworkFBS Framework

Page 13: Software Design: The Next Step A presentation by Sean Matthews.

Applying FBS to SEApplying FBS to SE

“…“…design is making choices that design is making choices that will shape the final product.”will shape the final product.”

Requirements, coding, and Requirements, coding, and testing activities all involve some testing activities all involve some designdesign

Traditionally, design means Traditionally, design means “building a model of the system “building a model of the system to be constructed up to the point to be constructed up to the point at which coding can begin.”at which coding can begin.”

Page 14: Software Design: The Next Step A presentation by Sean Matthews.

Applying FBS to SEApplying FBS to SE

Page 15: Software Design: The Next Step A presentation by Sean Matthews.

Applying FBS to SEApplying FBS to SE

Page 16: Software Design: The Next Step A presentation by Sean Matthews.

SE lessons from FBSSE lessons from FBS

Lack of fundamental theoryLack of fundamental theory Physics has its lawsPhysics has its laws Evaluation process is Evaluation process is

experimentalexperimental Concrete Concrete SS, almost no addition to , almost no addition to DD

Page 17: Software Design: The Next Step A presentation by Sean Matthews.

SE lessons from FBSSE lessons from FBS

Legacy systemsLegacy systems D D S S Be Be F F

ReuseReuse F F Be Be S S ““catalogue look-up”catalogue look-up”

Page 18: Software Design: The Next Step A presentation by Sean Matthews.

SE lessons from FBSSE lessons from FBS

ModelingModeling ……to automate the coding and to automate the coding and

deployment artifactsdeployment artifacts ……to describe a system’s expected to describe a system’s expected

behavior (Be), and thereby behavior (Be), and thereby facilitate the synthesis (S) processfacilitate the synthesis (S) process

Page 19: Software Design: The Next Step A presentation by Sean Matthews.

SE lessons from FBSSE lessons from FBS

Design patternsDesign patterns If FIf F1 1 and Bsand Bs1 1 = F= F2 2 and Bsand Bs22, then , then

the designs are analogousthe designs are analogous We can communicate design We can communicate design

fragments and share and reuse fragments and share and reuse practical solutions for recurrent practical solutions for recurrent problems.problems.

Page 20: Software Design: The Next Step A presentation by Sean Matthews.

The BIG pictureThe BIG picture

In software production, In software production, programming programming is primarily a design activityis primarily a design activity In software manufacturing it is notIn software manufacturing it is not Decisions about structure and the way Decisions about structure and the way

something is donesomething is done Also, testing to a smaller extentAlso, testing to a smaller extent

Assessment of test results determine Assessment of test results determine whether design needs reworkingwhether design needs reworking

Page 21: Software Design: The Next Step A presentation by Sean Matthews.

ConclusionsConclusions

Generally, something gets lost Generally, something gets lost between design and between design and implementation.implementation.

With FBS, design becomes part With FBS, design becomes part of coding and implementation.of coding and implementation.

SE needs to find approaches to SE needs to find approaches to describing software that easily describing software that easily translate to static analysis and translate to static analysis and code generation.code generation.

Page 22: Software Design: The Next Step A presentation by Sean Matthews.

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.

ReferencesReferences