SLIDE 3 LF Basel October 2006
Complexity
Software is inherently complex
because
w e attempt to solve
problems in complex domains
w e are forced by the size of
the problem to w ork in teams
softw are is incredibly
malleable building material
discrete systems are prone
to unpredictable behavior
softw are systems consist
w hich communicate.
Some factors that impact on
and reflect complexity in software
The number of names
(variables, functions, etc) that are visible
Constraints on the time-
sequence of operations (real-time constraints)
Memory management
(garbage collection and address spaces)
Concurrency Event driven user
interfaces.
LF Basel October 2006
How do humans cope w ith complexity in everyday life?
Humans deal with
complexity by abstracting details away.
E.g., Surfing the Internet
doesn't require know ledge of internal processors registers; sufficient to think of a computer as simple visualization tool.
To be useful, an
abstraction (model) must be smaller than what it represents.
E.g., road map vs
photographs of terrain vs physical model.