Now that we know what the requirements are and
their main types, let's discuss where requirements come from and
there are many possible sources for requirements so I'm
going to list here the main ones. The first one are
clearly stakeholders, anybody who is effected by the system
and its functionality. Customers, users, and so on. The second
typical social requirement is the application domain. For example,
the fact that my software is running within a bank,
or within a school. Why is the application domain a
social requirement? Well, because there are constraints that are characteristics
of the application domain that will affect the functionality of
the system. For a simple example, just think about regulations.
So banking regulations and school regulations in these cases. Those
are things that might affect the functionality of my system
and, therefore, that may become part of my requirements. And,
finally, documentation can be an additional source of requirements. For example,
notes, papers, manuals, books. So everything that refers to
the functionality of the system that we're going to build.