Domain Analysis
Often the first step in attempting to design a new piece of software,
whether it be an addition to an existing software, a new application, a new
subsystem or a whole new system, is, what is generally referred to as
"Domain Analysis". Assuming that the developers (including the analysts) are
not sufficiently knowledgeable in the subject area of the new software, the
first task is to investigate the so-called "domain" of the software. The
more knowledgeable they are about the domain already, the less work
required. Another objective of this work is to make the analysts, who will
later try to elicit and gather the requirements from the area experts, speak
with them in the domain's own terminology, facilitating a better
understanding of what is being said by these experts. If the analyst does
not use the proper terminology it is likely that they will not be taken
seriously, thus this phase is an important prelude to extracting and
gathering the requirements. If an analyst hasn't done the appropriate work
confusion may ensue: "I know you believe you understood what you think I
said, but I am not sure you realize what you heard is not what I meant
Software Elements Analysis
The most important task in creating a software product is extracting the
requirements. Customers typically have an abstract idea of what they want as
an end result, but not what software should do. Incomplete, ambiguous, or
even contradictory requirements are recognized by skilled and experienced
software engineers at this point. Frequently demonstrating live code may
help reduce the risk that the requirements are incorrect.
Requirements Analysis
Once the general requirements are gleaned from the client, an analysis of
the scope of the development should be determined and clearly stated. This
is often called a scope document. Certain functionality may be out of scope
of the project as a function of cost or as a result of unclear requirements
at the start of development. If the development is done externally, this
document can be considered a legal document so that if there are ever
disputes, any ambiguity of what was promised to the client can be clarified. |