Page 127 - DCAP405_SOFTWARE_ENGINEERING
P. 127
Software Engineering
Notes The same is true for the artifacts that we build, including software: People do not approach them
in isolation. Every object appears in a context of expectations that is generated by the history of
previous objects and experiences, and by the surroundings in the periphery—the physical,
social, and historical context in which the object is encountered.
Design has Social Consequences
Much of the discussion on software design uses examples from generic mass-distribution software,
such as word processors, operating systems, spreadsheets, graphics programs, and games.
Although many key concerns of software design are addressed in these applications, others are
not. These highly visible applications are part of a larger picture that includes a vast number of
vertical applications (for example, a medical-office billing application) and systems designed
for a specific workplace setting. In these more targeted applications, the designer can see and
take into account the specific effects of the design on the people who will inhabit it.
Organizational aspects of software design in which we build integrated computer systems for
specific organizations and workplaces. The needs and concerns of the people in those workplaces
can lead to complex—and, at times, controversial—design considerations, which we can address
only by making the social and political dimensions an explicit part of the analysis and of the
design dialog. The designer takes on a role that includes organizational as well as technical
design, and can enlist workers directly in this process through techniques such as participatory
design.
Design is a Social Activity
In concentrating on the activity of an individual designer, we can fall into the error of assuming
that the overall quality of a design is primarily a result of the qualities and activities of the
creative individual. As Kelley points out, the designer operates in a larger setting, which is both
facilitated and constrained by interactions with other people.
Self Assessment
Fill in the blanks:
1. Software design is a process of problem solving and ………………… for a software solution.
2. Designing software is an exercise in managing………………….
3. Design cannot be neatly divided into compartments for ……………………. and for devices.
4. Design always implies a medium of construction, and new technologies bring with them
new ……………………. for design.
5. …………………………… teams also tend to be fluid, likewise often changing in the middle
of the design process.
8.3 Design Quality
Software design principles represent a set of guidelines that helps us to avoid having a bad
design. The design principles are associated to Robert Martin who gathered them in “Agile
Software Development: Principles, Patterns, and Practices”. According to Robert Martin there
are three important characteristics of a bad design that should be avoided:
Rigidity: It is hard to change because every change affects too many other parts of the
system.
120 LOVELY PROFESSIONAL UNIVERSITY