Now let's discuss the next phase of software development,
which is software design. Software design is the phase
where software requirements are analyzed in order to produce
a description of the internal structure and organization of
the system. And this description will serve as the
basis for the construction of the actual system. Traditionally,
the software design phase consists of a series of
design activities. Which normally consists of the architectural design phase,
the abstract specification, interface design,
component design, data structure and
algorithm design. And notice that this is just a possible list
of activities. But you can also characterize design activities in
many different ways. And if you're looking at different books, and
different sources, you might find different activities described. But the
core idea, the important point is that we go from sort
of a high-level view of the system, which is the
architectural design, to a low-level view, which is the algorithm design.
And these activities result in a set of design
products, which describe various characteristics of the system. For
example, they describe the architecture of the system, so
how the system is decomposed and organized into components, the
interfaces between these components. They also describe these components
into a level of details that is suitable for
allowing their construction. We will discuss the details of
software design and talk extensively about these different actives and
these different products in the third mini course of this class.