Вы находитесь на странице: 1из 22

Software Characteristics

CFICSE 2002 SF04



Michelle L. Crane
CFICSE 2002 / SF01 - 2
Reference
Roger S Pressman, Software Engineering: A
Practitioners Approach, Fifth Edition, McGraw-
Hill, 2002
1.2

CFICSE 2002 / SF01 - 3
Outline
Textbook definition of software
Software characteristics

CFICSE 2002 / SF01 - 4
Software
Software is:
1. instructions (computer programs) that when
executed provide desired function and
performance
2. data structures that enable the programs to
adequately manipulate information
3. documents that describe the operation and use
of the programs
Reference: Pressman, 1.2
CFICSE 2002 / SF01 - 5
Characteristics
how is software is different from other things
that we build?

it is a LOGICAL rather than a PHYSICAL
element of a system
as such, it has several key characteristics which are
different than those of hardware
CFICSE 2002 / SF01 - 6
How is Software Manufactured?
We talk about the software manufacturing
process. Is this a viable analogy? How is
software manufactured?

Software is developed or engineered, it is not
manufactured in the classical sense.
CFICSE 2002 / SF01 - 7
What is Software Design?
one of the hallmarks of an engineering
artifact is that a responsible engineer can
certify the artifacts design as being adequate
for its intended purpose.
considering this, what is software design?
what about other stuff thats called design?
interior design, fashion design, industrial design
would you put your engineers stamp on a software
design? Why or why not?
CFICSE 2002 / SF01 - 8
Software Economics
What is software worth?
How is it valued?
Where is the cost?
Where is the profit?
CFICSE 2002 / SF01 - 9
Each Application is Unique
fact or myth?
we would like to build software from
components
but standards are lacking, so the Lego pieces
dont always fit together
anyway software firm can build software in
any way it likes
so, need to either
buy software as a complete unit
be prepared to develop large portions from scratch
adopt and emerging component technology
CFICSE 2002 / SF01 - 10
Complexity
a software project typically has a large
number of requirements
lack of mutual understanding between users
and developers
requirements change; software is seen as
malleable
CFICSE 2002 / SF01 - 11
Sidebar: Understanding Requirements
Shoes
must be
worn
Dogs
must be
carried
CFICSE 2002 / SF01 - 12
Physics vs. Logic
think about the difference between physical
systems, and logical systems such as
software.
CFICSE 2002 / SF01 - 13
Physical Systems are Continuous
(disregarding quantum effects)
continuity means approximations are allowed
allows calculus to be used as a modelling tool
CFICSE 2002 / SF01 - 14
Software is Discrete
any single change can have an arbitrarily large
effect
requires discrete calculus as a modeling tool
models must be essentially complete to be
useful
CFICSE 2002 / SF01 - 15
Hardware Maintenance
all manufactured products have a life-span,
during which time they wear out and
eventually break down
hardware maintenance consists of
preventative maintenance (e.g., oiling, replacing
worn parts)
corrective maintenance (e.g., repairing or replacing
failed parts)

CFICSE 2002 / SF01 - 16
Hardware Failure Curve
f
a
i
l
u
r
e

r
a
t
e

time
infant
mortality
wear
out
Reference: Pressman, Figure 1.1
CFICSE 2002 / SF01 - 17
Software Maintenance
software isnt maintained in the classic sense
software maintenance consists of
modifications to correct deficiencies or
adapt to changes in the real world
you cant oil it
it doesnt wear out
the parts wont fail
CFICSE 2002 / SF01 - 18
Software Failure Curve (Ideal)
f
a
i
l
u
r
e

r
a
t
e

time
defect
removal
residual
defects
(~constant)
CFICSE 2002 / SF01 - 19
Software Failure Curve (~Actual)
f
a
i
l
u
r
e

r
a
t
e

time
Huh?
CFICSE 2002 / SF01 - 20
Spare Parts
when hardware breaks down or wears out,
just replace the part!
software has no spare parts!
every software failure indicates an error in
design (or in the translation from design to
machine executable code)
therefore, fixing a default means considerably
more than just swapping out a part
CFICSE 2002 / SF01 - 21
Summary
characteristics of software
not manufactured
design?
economics
uniqueness
complexity
logical vs. physical
discrete vs. continuous
maintenance
deterioration over time
no spare parts

CFICSE 2002 / SF01 - 22

Вам также может понравиться