Page 125 - DCAP405_SOFTWARE_ENGINEERING
P. 125
Software Engineering
Notes interaction. As humans, we experience the world in aesthetic, affective, and emotional terms as
well. Because computing evolved initially for use in the laboratory and the office, non-cognitive
aspects have been largely ignored, except by creators of computer games. Yet, whenever people
experience a piece of software—whether it be a spreadsheet or a physics simulation—they have
natural human responses. They experience beauty, satisfaction, and fun, or the corresponding
opposites.
As computing becomes integrated into technologies for entertainment, and as the typical user
moves from the well-regimented office to the home recreation room, software designers will
need to focus more on the affective dimensions of human response. We can learn from the
history of other human communication media, and can adapt the principles and techniques of
novelists, film makers, composers, visual artists, and many other designers in what are loosely
called the arts. Designing for the full range of human experience may well be the theme for the
next generation of discourse about software design.
Perhaps even more difficult than the task of defining software is the task of defining design. A
dictionary provides several loosely overlapping meanings, and a glance at the design section in
a library or bookstore confuses the issue even more. Although we label it with a noun, design is
not a thing. The questions that we can ask fruitfully are about the activity of designing.
Design is Conscious
People may refer to an object as being well designed whenever it is well suited to its environment,
even if this suitability resulted from a process of unintentional evolution. In this book, we
concentrate on what happens when a designer reflects on and brings focus to the design activity.
Consciousness about designing does not imply the application of a formal, consistent, or
comprehensive theory of design or of a universal methodology. Systematic principles and
methods at times may be applicable to the process of design, but there is no effective equivalent
to the rationalized generative theories applied in mathematics and traditional engineering.
Design consciousness is still pervaded by intuition, tacit knowledge, and gut reaction.
Design keeps Human Concerns in the Center
All engineering and design activities call for the management of tradeoffs. Real-world problems
rarely have a correct solution of the kind that would be suitable for a mathematics problem or
for a textbook exercise. The designer looks for creative solutions in a space of alternatives that
is shaped by competing values and resource needs. In classical engineering disciplines, the
tradeoffs can often be quantified: material strength, construction costs, rate of wear, and the like.
In design disciplines, the tradeoffs are more difficult to identify and to measure. The designer
stands with one foot in the technology and one foot in the domain of human concerns, and these
two worlds are not easily commensurable.
As an example, it is easy for software designers to fall into a single-minded quest, in which ease
of use (especially for beginning users) becomes a holy grail. But what is ease of use? How much
does it matter to whom? A violin is extremely difficult for novices to play, but it would be
foolhardy to argue that it should therefore be replaced by the autoharp. The value of an artifact
may lie in high-performance use by virtuosos, or in ease of use for some special class of users,
such as children or people with disabilities. There is room for the software equivalents of high-
strung racing cars alongside automatic-transmission minivans.
Design is a Dialog with Materials
The ongoing process of designing is iterative at two levels: iteration by the designer as a piece
of current work develops, and iteration by the community as successive generations reveal new
118 LOVELY PROFESSIONAL UNIVERSITY