Software Abstractions Lit Review
Comments
Content
Rasheed
Wihaib
–
Software
Abstractions
and
Systems
Integration.
Week
1
1.
What
do
the
authors
mean
by
“concept”,
“conceptual
model”,
and
“conceptual
integrity”?
Give
examples
illustrating
these
definitions
from
a
system
different
from
those
discussed
in
the
paper.
Concepts
are
explicitly
referred
to
on
the
first
line
of
the
second
section,
they
are
said
to
mean
the
“constructs
and
notions
either
that
the
system
deals
with,
…,
or
that
are
invented
for
the
purpose
of
structuring
the
functions
of
the
system”.
They
are
said
to
have
“psychological
content”,
and
each
concept
will
have
corresponding
cognitive
processes
from
the
user
when
using
thinking
about
the
application.
A
concept
is
the
“Timeline”
on
Twitter,
this
structures
some
of
the
functions
of
system
such
as
displaying
posts
and
interacting
(retweeting,
favouriting,
sharing)
with
posts.
Conceptual
model
refers
to
a
specification
that
focuses
on
concepts
rather
than
details
of
behavior.
Twitter’s
conceptual
model
has,
at
it’s
core,
a
micro
blogging
platform
with
constraints
on
post
lengths.
Then
there
are
interlinked
concepts
such
as
follow’s
and
retweets
that
incorporate
a
social
element
into
the
system.
These
are
all
concepts
of
the
system
and
do
not
specify
any
particular
behavior
on
the
part
of
the
system.
Conceptual
integrity
encapsulates
three
principles;
orthogonality,
propriety
and
generality.
One
could
argue
that
Twitter
upholds
conceptual
integrity
as
following
another
user
is
the
only
way
one
can
receive
updates
from
that
user
on
their
own
timeline,
demonstrating
orthogonality.
It’s
minimalist
user
interface
and
restrictions
from
its’
design
have
also
allowed
for
propriety.
Generality
can
also
be
found
in
the
system
as
favouriting
a
tweet
does
not
only
allow
a
user
to
save
a
tweet,
it
also
could
place
the
tweet
in
the
‘discover’
news
feed
of
their
followers.
2.
What
is
their
main
criticism
of
Git’s
conceptual
model?
The
authors
claim
that
“Git
is
far
more
complicated
that
it
needs
to
be”,
claiming
that
the
level
of
complexity
is
greater
than
the
“limited
functionality”.
They
attribute
these
flaws
to
its
conceptual
model.
In
their
graphical
representation
of
the
conceptual
model
(figure
1),
they
show
some
key
concepts
of
Git
such
as
a
“Tracked
File”
and
a
“Branch”.
Their
illustration
of
the
relation
between
a
File
and
a
Version
demonstrates
their
criticism
very
clearly;
this
reveals,
amongst
other
things,
over
complication
of
the
concept
of
file
versions.
3.
Do
you
agree
with
their
analysis?
Their
argument
is
indeed
compelling
and
as
a
Git
user,
I
have
suffered
the
same
frustrations
when
using
the
system
so
can
vouch
for
much
of
their
analysis.
Their
criticisms
with
regards
to
the
conceptual
integrity
and
the
conceptual
model
do
hold
but
they
are
not
handled
independently
of
each
other.
The
criticism
of
the
conceptual
integrity
of
Git
is
done
in
the
analysis
of
the
conceptual
model,
and
while
a
conceptual
model
is
specified
to
not
focus
on
details
of
behavior,
the
authors
comprehensively
analyse
the
model
by
its
behavior.
Despite
this
causing
some
ambiguity
in
their
arguments,
I
generally
agree
with
their
analysis
of
Git.
I
did
feel
some
concepts,
namely
rebasing,
have
not
been
considered
and,
in
the
case
of
rebasing,
removes
the
need
for
their
“more
general
branching
concept”.
Sponsor Documents