SoftwareAnalysis

Relevant categories: Process & Methodology

Software Analysis is one of the most important activities in developing software. Before creating any software we need to know what we really expect from our system. We have to find out all the features and behavior required for our system. Software analysis is trying to solve different problems in the software by examining different requirements and structures.

In Software Analysis we should break up a problem into smaller parts. Then we inspect each part so we can find the exact requirement that we expect. We improve each part separately and extract information from them. At last we sum up all the information and this will help us gain a better understanding of the whole project. Thus, Software Analysis is very important for discovering the requirements of a system.

There are several types of requirements:

  1. Customer requirements: These are the requirements that are extracted by the customer needs; e.g. in which environment/for how long/by which user/… will the system be used?
  2. Functional requirements: Those requirements and tasks necessary for a business system to be accomplished.
  3. Performance requirement: Systems functionality has some operational and hosting considerations. For example, the software quality, quantity of requests / load, efficiency in terms of response time and performance, etc. These requirements are investigated and assessed during software analysis phase according to the availability characteristics we expect from each component of the system.
  4. Derived requirement: Those that are driven from higher–level requirements. Such requirements are not direct business needs, but rather a necessity for other requirements to be actualized.
  5. Allocated requirement: These requirements are established by dividing a higher-level requirement into several lower-level requirements.

There are different methods used for generating requirements document in software analysis stage. Various tools can be used to help produce such artifacts such as UML use cases. Another example is Software Requirement Specification (SRS) which contains both functional and non-functional requirements.


Links: