
Behavioral Design ◾ 211
substitutability, and support heterogeneous collections but incur the over-
head of runtime binding. Soware maintainability is improved by its use
of a common interface, support of type extension, and “automatic” type
resolution. However, polymorphism is not free. Extra instructions must
be executed at runtime to support the indirect jump needed for runtime
resolution. Most importantly, dynamic function calls cannot be inlined.
7.7 LANGUAGE DIFFERENCES
Soware development should start at a high level, moving from require-
ments to modeling, to architecture, to design, and then to implementation.
By retaining an abst ...