låseværktøj

Software Innovation
Ivan Aaen
Institut for datalogi – Aalborg Universitet
23. oktober 2012
tirsdag 23. oktober 2012
Nogle grundbegreber
•
•
•
•
•
tirsdag 23. oktober 2012
Ide
Kreativitet
Innovation
Problem ≠ opgave
Metode ≠ metodologi
Emphasis on Structures
•
Roles: Personal responsibilities and
knowledge
•
•
Views: Defined common viewpoints
tirsdag 23. oktober 2012
Vision: Representation and maturation of
research and project vision
196 _____________________________________________________________ Components
The Generic Architecture Pattern
You can use the layered architecture to elaborate basic systems that include interface, function, and model components. The model component,
containing the model of the object system, can be the lowest layer, followed
by a system functions layer and, on top, the interface component. You can
often decompose the interface layer into two separate parts: user interface
and system interface. Figure 10.5 shows this simple and basic architecture.
«component»
Interface
«component»
User interface
«component»
System interface
«component»
Function
Project
«component»
Model
«component»
Technical platform
«component»
«component»
«component»
_______________________________________________________________
UIS
DBS
NS
Prioritize _______________________________________________________________ 185
9.4 Prioritize
Method
Having considered the general object-oriented criteria and the specific conditions, you can now prioritize which criteria should govern your design activity. This helps you convert OOA&D to a specific strategy for your project,
supports the planning of evaluation activities, and helps you decide when
the design process is complete. The table in Figure 9.4 can serve as a checklist in this process. You can assign priorities to the classical software-quality criteria, and add criteria that reflect your specific design conditions.
Users
Other
Figure
10.5: The generic architecture pattern
for asystems
system
In most cases, it is a good idea to incorporate components that serve as
well-defined interfaces to certain parts of the technical platform. With the
basic architecture, you can, for example, have an interface to the library
that implements the user interface. This library can be encapsulated in a
separate user-interface system component (UIS). You can do the same
thing with a database system (DBS) that stores the model contents, and
with communication or network software (NS) that implements the systems interface. You can construct
these three components as parts of a layInterface
er, which at the lowest level makes up the interface to, and thus encapsu-
Very important
Functions
Model
System
70 ________________________________________________________________ Structure
Figure
1.2:1 A general system architecture
Customer
Important
Less important
Irrelevant
Easily
fulfilled
Usable
Process
Product
Criterion
Secure
Efficient
Correct
Reliable
Maintainable
Testable
Flexible
Comprehensible
r concentrate our efforts on points
of uncertainty in the system6s imReusable
0..∗
0..∗ to the programming activities.
ntation and leave the rest
Portable
Appointment
reasonable architecture gives us
an overview of the system. Even
1
Interoperable
systems contain so1 many classes and objects that the system easily
Additional
\
1
1..∗
mes unwieldy. AsEmployee
a tool for
handling
system
Day
Schedule complexity, OOA&D uses
criteria
\
\
1
onents, which are groups of classes and objects.
\
entifying the relevant components in a concrete system is a crucial is1..∗
Figure 9.4: Checklist for prioritizing design criteria
object-oriented
The choice of architecture will
always reflect
Apprenticedesign.
Assistant
26 ____________________________________________________________ System Choice
164 _______________________________________________________________
Interfaces
Time Period
ncrete situation, and selecting one is a highly iterative process. In
Quality assurance follows classical plan-do-check-act cycles. These activiDescribe
the Situation
&D, we start with a very basic architecture with three components: a
ties 2.3
underline
the iterative
nature of system development and especially of
Our understanding of the users8 situation must be rich and abundant. To
______________________________________________________
1
design. They are repeated for different parts and versions of the design, and
component, a function component,
and an interface Behavior
component.
achieve this, we must be open and disposed toward discussion. Thus, we
the
termination
of
one
cycle initiates the planning of the next. At this stage,
Free which reflects
Other
gure 1.2 shows this basic Work
architecture,
the system6s
emphasize the following principle:
you should consider how to evaluate (check) the system and its parts. Basixt. The model component contains a dynamic model of the system6s
the situation.
cally, twoPrinciple:
methods Appreciate
are relevant:
reviews and experiments. Given these
Gardener
Figure 4.1:
Class diagram for the Hair Salon System (Chapter 20)
tomer
em
domain. We
structure
the model component to agree with the usmethods, several questions arise. Which quality criteria and which parts of
account opened
By working with Erich pictures,F we can explicate important user views of a
System
ew of thetural
problem
domain,
and update
important
changes ocrelations between
the(date)
classes
and objects it
in when
our model.
Figure 4.1
situation, facilitate debate, and get an overview of the situation quickly.
Application
shows an example
of adomain
class diagram.
n an air traffic
control
system,
the model component contains a repreThe purpose here is not to create a detailed description of all possible ciraccount closed
cumstances, but rather to obtain an overview.
tion of planes,
flight departures, flight corridors, positions, and the re4.1 Object-Oriented Structures(date)
Open
s amongWhen
them.
we extend our problem-domain model with object-oriented strucRich Pictures
tures, we continue to employ the fundamental distinction between object
he function
component contains the facilities through which users upA rich picture is an informal drawing that presents the illustrator8s underand class introduced in Chapter 3.
the concrete
object level, we
ask: What
are the specific
relations
bend use theOn
model
component.
When
planes
change
position
in the airstanding of a situation. Figure 2.2 shows an example of a rich picture from
tween objects in the problem domain? To answer this, we view a phenomea hospital8s system development project. The rich picture describes a
air space,
detects
the
movement
andproperties
sendsthat
a signal
to a system
Problem
domain
nonradar
in the problem
domain
as an
object, with
certain
deterchange from six autonomous wards to a new structure in which the wards
amount
deposited amount withdrawn
Greenhouse1
mine
its
identity,
state,
and
behavior.
For
example,
we
might
consider
a
e function which
changes the
model component6s state. If the model
become part of a larger unit. The purpose of this organizational change is to
amount)
(date,
person (date,
as a company
employee,
butamount)
not as a family member or a person
Find Actors
and Use Cases _______________________________________________ 127
improve coordination and resource sharing among the wards.
onent6s state
shows hobby.
thatIntwo
planes
are
about
toobject,
collide,
a warning
with a particular
viewing
this person
as an
employee
we
122 ___________________________________________________________________Usage
Figure
8.15:
The
context
for
a
greenhouse-monitoring
system
on her name, address, department, and salary. At the same time we
on sendsfocus
a
signal
to
air
traffic
controllers
that
the
planes6
flight
coursignore
such properties
as spouse,
hobbies,
political opinion,
and so
#1
1: A simple
statechart
diagram
forchildren,
a class
JCustomerL
in aclasses
bank
beenon.read.
During
execution,
one
object
from
each
of
these
two
typiTradition vs.
This illustrates
how, through what is denoted as abstraction, we simpliuld be changed
immediately.
insert card
Card inserted
cally exists for each of the devices that should be read. When the device obchange
Choosing the System______________________________________________________ 25
ject performs a read, it calls the operation CmeasurementD in the memory
payment
prompt for code
Individual info.
he result
iswhich
expressed
graphically
in athat
statechart
diagram,
as
#2
object,
takes care
of storing the value
was read. With
regards to
the
rest
of
the
system,
the
memory
object
serves
as
the
interface
to
the
exFigure 5.1.
Waiting for code
«actor»
Paradigm
ternal device through a call to the operation Clatest-value,D which returns a
desired readingFtypically the latest. If more readings must be stored, the
vioral Pattern and Attributes
reject
Exit
name
n entityGreenhouse
with identity,
state, and behavior. In the
class activiClicking here terminates
Greenhouse 1set of second
the system’s
execution an
havior simply
as the unordered
events that
involve
Temperature display
Theactivity,
temperature is shown
behavior
we describe behaviorminute
more precisely by add15 min.
in both digital and analog
24
Choice of period
ve timing
is
defined
by
an event
formof events. An objectFs behavior
hour
User chooses the time
over which the
Choice of display
hibits a certain
ordering of events
over
time: interval
current
average
average should be
User chooses whether to
continuously show the
«actor»
Account
owner
enter code
calculated
race: Acurrent
sequence
value or the of events involving a specific object.
Waiting for amount
choose amount
Liquidity
monitor
Situation
#3
Ideas
cancel
payment
Amount approved
approve amount
«actor»
Creditor
Standard info.
#4
account
information
registration
tirsdag 23. oktober 2012
Resources
#5
Systems
«actor»
Administrator
Amount chosen
monitoring
ce is unique for a specific object; it is the precise event amount
se- not approved
Figure 8.16:
diagram
for a greenhouse
he object is involved
in Window
during
a time
interval.system
For example,
Figure 6.5: Statechart diagram for Ocash withdrawalP
error correction
he class JCustomerL in Figure 5.1 might have the following
uring its lifetime:
in the target system. We delimit a use case based on the specific actors?
Figure 6.3: Use-case diagram for the automatic payment system
object-oriented problem-domain analysis is on objects,
Reorganizing
Personnel info.
credit
information
System definition
Plans
#6
average over the selected
period
pened M amount deposited M amount withdrawn M
t deposited M account closed
Pool
money transfer
Code entered
code accepted
cash withdrawal
Coordinating
New entity
Figure 2.1: Subactivities in choosing a system
viewpoint and application-domain tasks. The goal is to collect the many
an actor table or a use-case diagram. We prefer the actor table, as it
possible ways of using the target system in a few well-chosen either
use cases.
consumes
less space; UML recommends the use-case diagram.
Taken together, your use cases should give an overview; individually
they
The account owner is involved in four use cases: payment, cash withshould be abstractions that are both logical and meaningful to the
involved
drawal, money transfer, and account information. Credit card payments alAs Figure
but
for
actors.
ways occur through the creditorEan interactive process involving both actors.
Cash withdrawals occur at publicly accessible ATM machines, which
You can produce a list of possible use cases by examining the
applica-
2.2 Choosing the System
2.1 shows, system choice is based on three subactivities. The first
Figure 2.2: Example of a rich picture with focus on change
Report
Paradigm
tirsdag 23. oktober 2012
Example:
Little Red Riding Hood App
•
Little Red Riding Hood is either at home
or at her friends’ home. Both places are
too far away from Granny’s house to
walk, so she has to take a bus
•
If Little Red Riding Hood fails to show up
at her Granny’s house at the expected
time, Granny will get very upset and call
anyone from the King down
•
There are three busses available to the
woods, lines A, B, and C
•
•
She must avoid Mr. Wolf and not come
near his house, but some trails in the
woods come dangerously close to it
The parents want to know how things
are going when she is under way to
Granny
•
The parents use laptops and mobile
phones
•
She is great friends with Mr. Hunter, and
he will come to her rescue if alarmed
•
•
Granny is old but young at heart. She is
used to text messages and computers
Little Red Riding Hood is a dashing young
lady sporting a posh, top-of-the-line
smartphone with compass, GPS,
gyroscopes, accelerometers, etc.
•
Still, she is very young and not used to
busses. She might miss a stop, take a
wrong direction, get off the bus too early,
etc.
•
And even though she has a sophisticated
smartphone, she is not a seasoned user
of it
•
tirsdag 23. oktober 2012
Granny dislikes unexpected knocking on
her door, and wants guests to make an
appointment first
Example: Paradigm
tirsdag 23. oktober 2012
Example: Paradigm
iPhone
10:15 PM
iPhone
10:15 PM
NO!
NO!
Ta
k
el
e ft
Ta
k
tra
il
Take GrannyTrail
Silent Alarm
tirsdag 23. oktober 2012
el
eft
tr a
il
Take GrannyTrail
Go normal
Example: Paradigm
In the woods
Safe
Scared
Departure
Arrival
On
track
Lost
Scared
Visible
tirsdag 23. oktober 2012
Hidden
Product
tirsdag 23. oktober 2012
Example: Product
tirsdag 23. oktober 2012
Project
tirsdag 23. oktober 2012
Example: Project
tirsdag 23. oktober 2012
Example: Project Research Strategy
tirsdag 23. oktober 2012
Poka Yoke
strategy?
Feasibility: Can
NFC validate
bus and
payment?
Avoid wrong bus
Validate bus and
payment and
enforce
response
Example: Project Research Strategy
tirsdag 23. oktober 2012
Can Fast Fourier
Transformation
be used?
Feasibility: Can
we see if she is
hurtling?
Can we use gait
to determine if
she is scared?
Hurtling
detection
Example: Project -Vision
as Elevator Pitch
For Little Red Riding Hood and family
Who wants to ensure a safe visit to her granny
The LRRH Travel Aid is a smartphone app
That guides her way, helps calling for help, and keeps her family
informed
Unlike ordinary travel aid apps
Our product has a dual focus on travel aid and safety
tirsdag 23. oktober 2012
Toulmin Structure Vision
Challenge
Grounds
Qualifier
Warrant
tirsdag 23. oktober 2012
Rebuttal
Idea
Process
tirsdag 23. oktober 2012
Example: Process
tirsdag 23. oktober 2012
Example: Process Evaluation
© 2012 Ivan Aaen, draft - do not quote without permission
Strengths
Simple to implement
Effective Poka-Yoke solution
Weaknesses
Requires NFC enabled smartphone
Requires NFC-based ticketing systems
Might frustrate user
Bus data might be inaccurate
Opportunities
Threats
Can prove useful for later travel apps if Privacy and security issues?
we identify a broader market
The bus company may not cooperate
NFC-based ticketing may not be available yet
Figure 6.2: SWOT analysis of Near Field Communication (NFC) research
Value Analysis tries to identify potential gains from the research and this method
therefore is more focused than SWOT. Our example (Figure 6.3) evaluates the
potential in researching panic identification based on step detection.We are contirsdag 23. oktober 2012
Using PMI (Figure 6.5) we list what we think are strengths (Plus), weaknesses
(Minus) and what could be interesting aspects and features (Interesting) of these
three ideas. Our analysis shows that none of these ideas can detect hiding behavior alone. Each idea has severe weaknesses and important strengths, and each of
them may be combined with the others.
Evaluation
Idea
Plus
No movement
Step detection
Standing still may
(few or slow steps) not imply hiding
Stationary GPS
May be combined
with the other two
ideas
Location good for
hiding
Combines GPS
and maps
Position accuracy
Map accuracy
May be combined
with the other two
ideas
Does not detect
hiding with no
movement
May be combined
with the other two
ideas
Furtive movements Step detection
(unique pattern)
GPS (furtive
means slow)
Minus
Interesting
Figure 6.5: PMI-evaluation of ideas for identifying hiding
Based on these observations, the recommendation could be to go on by combining two or three of these ideas into one. No movement and furtive movement
could
easily be combined into one feature. The location idea relies on extirsdag 23.
oktoberprobably
2012
Afrunding
tirsdag 23. oktober 2012
Nogle grundprincipper
•
•
•
•
•
tirsdag 23. oktober 2012
Learning by doing
Diversitet
Eksperimentel udvikling
Inkrementel udvikling
Usikkerheder
Eksempler til
undervisning
•
Fysioterapi i hjemmet ved brug af Kinect
eller WII og Skype
•
Rundvisningsguide til frilandsmuseum
baseret på smartphone
tirsdag 23. oktober 2012