|

-
- 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". Another objective of this work is to make
the analysts who will later try to elicit and gather the
requirements from the area experts or professionals, speak with
them in the domain's own terminology and to better understand what
is being said by these people. Otherwise they will not be taken
seriously. So, this phase is an important prelude to extracting
and gathering the requirements. The following quote captures the
kind of situation an analyst who hasn't done his homework well may
face in speaking with a professional from the domain:
Software Elements Analysis The most important task in
creating a software product is extracting the
requirements. Customers typically know what
they want, but not what software should do, while incomplete,
ambiguous or contradictory requirements are recognized by skilled
and experienced software engineers. Frequently demonstrating live
code may help reduce the risk that the requirements are incorrect.
Specification Specification is the task of precisely describing the
software to be written, possibly in a rigorous way. In practice,
most successful specifications are written to understand and
fine-tune applications that were already well-developed, although
safety-critical software systems are often carefully specified
prior to application development. Specifications are most
important for external interfaces that must remain stable.
Software architecture The
architecture of a software system refers to an abstract
representation of that system. Architecture is concerned with
making sure the software system will meet the requirements of the
product, as well as ensuring that future requirements can be
addressed. The architecture step also addresses interfaces between
the software system and other software products, as well as the
underlying hardware or the host operating system. Implementation (or coding Reducing a design to code may be
the most obvious part of the software engineering job, but it is
not necessarily the largest portion. TestingTesting of
parts of software, especially where code by two different
engineers must work together, falls to the software engineer.
Documentation An important (and often overlooked) task is documenting the
internal design of software for the purpose of future maintenance
and enhancement. Documentation is most important for external
interfaces. Source:http://en.wikipedia.org/wiki/Software_development_process
|
|