Institute for Software Research, International
Download
Report
Transcript Institute for Software Research, International
Methods of Software Development
Problem Frames 1
(This lecture is largely based on material graciously
provided by Professor Mary Shaw)
Institute for Software Research, International
1
Are there any questions?
Institute for Software Research, International
2
Overview: This course is about
deciding what to design.
Problem
Engineering approach
Knowledge of past solutions
Business & market constraints
Here a
Miracle
Happens
Regulations
Solution
Institute for Software Research, International
3
Course contents
Identifying
the problem
Problem
frames is for representing problems.
Contextual inquiry is for studying & representing the
context of use.
Use cases are for describing generalized scenarios that
the software will support.
Designing
a solution
Prototyping
identifies ways to refine software designs.
Usability deals with making the software easy to use.
Business and regulatory issues constrain choices about
which markets to enter, and how to enter them.
Institute for Software Research, International
4
Moving on to today’s lesson…
Institute for Software Research, International
5
A question to get you thinking…
Which of these problems is not like the others?
1.
Writing a report for school
Creating a spreadsheet for a business
Browsing the web
2.
3.
Institute for Software Research, International
6
A question to get you thinking…
Which of these problems is not like the others?
1.
Making a heart pacemaker beat once per second
Steering a nuclear missile into a city
Encrypting a bank database
2.
3.
Institute for Software Research, International
7
The key idea in problem frames is
recurring problem types
Different
problems share characteristics.
If
you stand back from the details of your current
problem, you may recognize it as a known problem.
Many
known types of problems are already solved.
A
problem frame represents a “well-known” type of
software problem.
Institute for Software Research, International
8
Problem frames are a way of representing
certain software-related expertise.
The
nature of expertise
Experts
have about 50,000 chunks of knowledge
It takes them about 10 years to become experts
This is true across many domains
Experts recognize these chunks instead of deriving them
What passes for insight or intuition is often recognition
The
idea in problem frames
Frames
represent chunks of knowledge
Knowing more variations will allow you to recognize
more pre-solved problems and apply prior art
This is easier and less risky than analyzing from scratch
Institute for Software Research, International
9
Basic steps in applying problem frames
1.
2.
3.
4.
Break the context into pieces (called domains).
Identify the shared phenomena (called interfaces)
among the domains.
Represent the domains and their interfaces in a
context diagram
Add the conditions (called requirements) that the
software must bring about.
A context diagram that has been augmented with
requirements is called a problem diagram.
A problem diagram that recurs a lot is called a
problem frame.
Institute for Software Research, International
10
A sample problem diagram:
editing a “periods & ranges” database
n
Periods &
ranges
X
o
PREdit
machine
Data entry
m
Medical
staff
m: MS! (EnterPeriod, EnterRange,
EnterPatientName, etc) [C1]
m
B
n: PM! (EditOperations) [C2]
o: PR! (DataValues) [Y3]
Institute for Software Research, International
11
The different types of domains
Causal
(C) – has predictable relationships among
physical phenomena
The
machine domain, which has a double stripe, is
always a causal domain.
Biddable
(B) - physical but unpredictable
Humans
are the most common biddable domain.
Lexical
(X) – physical representation of data and
symbolic phenomena
Designed
domains, which have a single stripe, are
usually lexical domains.
Institute for Software Research, International
12
Examples of each type of domain
Causal
(C)
LCD
screens
Heart pacemakers
Nuclear missiles
Biddable
(B)
Humans
Lexical
(X)
Word
documents
Spreadsheets
HTML documents
Bank databases
Institute for Software Research, International
13
The different types of phenomena
Causal
(C or E) – the events that one domain
initiates in order to influence or control another
domain
Causal
phenomena deal with what happens.
Symbolic
(Y) – values, truths, and states
Symbolic
phenomena are encodings of other phenomena.
Institute for Software Research, International
14
Examples of each type of phenomenon
Causal
(C or E)
DrawLine(x1,y1,x2,y2),
supported by LCD screens
MakeElectricalPulse(voltage), supported by pacemakers
FireThruster(duration), supported by nuclear missiles
InsertRow(), supported by Microsoft Excel
ClickHyperlink(url), supported by humans
Symbolic
(Y)
ListOfParagraphs(),
supported by Word documents
GridOfCells(), supported by spreadsheets
LevelOfEncryption(), supported by bank database
Institute for Software Research, International
15
A sample problem diagram:
editing a “periods & ranges” database
n
Periods &
ranges
o
X
Databases are lexical.
PREdit
machine
All machine domains
are causal.
Data entry
m
Medical
staff
m
B
Humans are biddable.
Sending SQL to the database is causal.
m: MS! (EnterPeriod, EnterRange,
EnterPatientName, etc) [C1]
The act of giving inputs to the machine is causal.
n: PM! (EditOperations) [C2]
o: PR! (DataValues) [Y3]
The values are symbolic.
Institute for Software Research, International
16
There are 5 basic problem frames.
Required
behavior
Control part of the physical world to satisfy a condition.
Commanded
behavior
Control part of the physical world according to operator
instructions.
Information
display
Obtain state/behavior information from the physical world
and present it as required.
Simple
workpieces
Build a tool to create & edit persistent information objects
Transformation
Transform information inputs to required outputs
Institute for Software Research, International
17
Required behavior
Machine
sends commands (C1) to controlled
domain, which may provide feedback (C2)
Control
Machine
CM ! C1
CD ! C2
Controlled
Domain
C
CD ! C3
Required
Behavior
The
requirement is that the controlled domain must
demonstrate some behavior (C3).
Note that the required behavior (C3) is different
from the commands (C1) that are sent to try and
cause that behavior.
Institute for Software Research, International
18
Commanded behavior
Now
a human operator sends certain events (E4)
that implicitly specify the required behavior (C3).
Control
machine
CM ! C1
CD ! C2
OP ! E4
Controlled
Domain
CD ! C3
Obedience
C
OP ! E4
Operator
B
Institute for Software Research, International
19
Information display
The
real world (or sometimes a lexical domain)
sends some phenomena (C1) to the machine, which
sends commands (E2) to the display device.
Information
Machine
RW ! C1
IM ! E2
Real
World
RW ! C3
C
Show
Status
DD ! Y4
Display
Device
C
Note
that the real state of the world (C3) might not
be entirely visible to the machine, yet the symbolic
state (Y4) of the display should still be right!
Institute for Software Research, International
20
Workpieces
A
user’s editing commands (E3) implicitly specify
what the document’s symbolic state (Y4) should be.
Editing
Tool
ET ! E1
WP ! Y2
US ! E3
Work
pieces
WP ! Y4
X
Command
effects
US ! E3
User
B
In
many cases, the symbolic state seen by the
machine (Y2) matches the real symbolic state (Y4).
Institute for Software Research, International
21
Transformation
The
machine reads the input document’s symbolic
state (Y1) and actually constructs a totally new
symbolic state (Y2) in an output document.
Transform
Machine
In ! Y1
TM ! Y2
Input
IN ! Y3
X
IO
Relation
OU ! Y4
Output
x
Usually
the symbolic states seen by the machine (Y1
and Y2) match the true states (Y3 and Y4).
Institute for Software Research, International
22
Things to think about on your own:
Problem Frames and some sample problems.
What
should the problem diagram look like for
each of the following example problems?
Writing
a report for school
Creating a spreadsheet for a business
Browsing the web
Making a heart pacemaker beat once per second
Steering a nuclear missile into a city
Encrypting a bank database
Institute for Software Research, International
23
Things to think about on your own:
Problem frames uses separation of concerns.
Separation
of Concerns is a classic technique for
managing complexity
Focus
on one thing at a time, allocate responsibility
Assumes that partial solutions can be combined
In
problem frames,
Different
domains capture different concerns
Domains scope the problem (ie: if it’s not in the
diagram, then the developers can ignore it)
What
other mechanisms do we have in software
engineering for separation of concerns?
Institute for Software Research, International
24
Things to think about on your own:
Problem Frames is a language.
A
language has syntax - what the language looks like
Primitive
elements – boxes, lines, and letters in this case
Primitive operations – hooking boxes, lines, etc together
Encapsulation, abstraction, and composition
mechanisms – we’ll discuss this in another lecture
To
be useful, it also has semantics – what it means
You
need rules that describe the relationship between
things in your notation and things in the real world.
Boxes
are domains, lines are phenomena interfaces, etc.
Problem
frames is a problem description language.
Can you think ways to improve the language?
Institute for Software Research, International
25
Things to think about on your own:
How would you apply this in a business?
Status
of Problem Frames: a thoughtful proposal
Not
actually in common use yet, no tools, not complete
But there’s a growing community of interest
So at present, it’s a good conceptual tool
How
would you need to modify Problem Frames so
that you could use it in a software development
organization?
What kind of information would you need from
your clients so that you could apply Problem
Frames?
Institute for Software Research, International
26
Are there any questions?
Institute for Software Research, International
27