Top 19 Software Requirement Analysis And Specifications Interview Questions You Must Prepare 16.Apr.2024

Prototyping is building user interface without adding detail functionality for user to interpret the features of intended software product. It helps giving better idea of requirements. If there is no software installed at client’s end for developer’s reference and the client is not aware of its own requirements, the developer creates a prototype based on initially mentioned requirements. The prototype is shown to the client and the feedback is noted. The client feedback serves as an input for requirement gathering.

SRS stands for Software Requirements Specification, which is a document that fully describes the expected behavior of a software system. Functional requirements are documented in an SRS, as are non-functional requirements such as performance goals and descriptions of quality attributes.

An informal debate is held among various stakeholders and all their inputs are recorded for further requirements analysis.

Requirements analysis, also called requirements engineering, is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. In software engineering, such requirements are often called functional specifications.

Static program analysis is the analysis of computer software that is performed without actually executing programs (analysis performed on executing programs is known as dynamic analysis). In most cases the analysis is performed on some version of the source code, and in the other cases, some form of the object code.

Static program analysis is the analysis of computer software that is performed without actually executing programs (analysis performed on executing programs is known as dynamic analysis). In most cases the analysis is performed on some version of the source code, and in the other cases, some form of the object code.

In requirements engineering, requirements elicitation is the practice of collecting the requirements of a system from users, customers and other stakeholders. The practice is also sometimes referred to as "requirement gathering".

There is no single precise template for writing good Software Requirement Specifications.

The contents of an SRS document depends on the software product being developed and also on the expertise of the people doing the requirement elicitation. Different business/technology domains in a company usually have their own customized version of SRS template. Still a good Software Requirement Specification (SRS) usually contains project scope section, functional requirements, requirement analysis models, external interface requirements and non functional requirements.

Software Requirement Validation : After requirement specifications are developed, the requirements mentioned in this document are validated. User might ask for illegal, impractical solution or experts may interpret the requirements incorrectly. This results in huge increase in cost if not nipped in the bud. Requirements can be checked against following conditions -

  • If they can be practically implemented.
  • If they are valid and as per functionality and domain of software.
  • If there are any ambiguities.
  • If they are complete.
  • If they can be demonstrated.

Software Requirements : We should try to understand what sort of requirements may arise in the requirement elicitation phase and what kinds of requirements are expected from the software system.

Broadly software requirements should be categorized in two categories:

  1. Functional Requirements.
  2. Non-Functional Requirements.

A software requirements specification (SRS) is a document that captures complete description about how the system is expected to perform. It is usually signed off at the end of requirements engineering phase.

A software requirements specification (SRS) is a description of a software system to be developed. It lays out functional and non-functional requirements, and may include a set of use cases that describe user interactions that the software must provide.

Every software falls into some domain category. The expert people in the domain can be a great help to analyze general and specific requirements.

Team of engineers and developers may analyze the operation for which the new system is required. If the client already has some software to perform certain operation, it is studied and requirements of proposed system are collected.

A System Requirements Specification (abbreviated SyRS when need to be distinct from a Software Requirements Specification SRS) is a structured collection of information that embodies the requirements of a system.

Software Requirements is a field within software engineering that deals with establishing the needs of stakeholders that are to be solved by software.

Functional Requirements :Requirements, which are related to functional aspect of software fall into this category.They define functions and functionality within and from the software system.

EXAMPLES -

  • Search option given to user to search from various invoices.
  • User should be able to mail any report to management.
  • Users can be divided into groups and groups can be given separate rights.
  • Should comply business rules and administrative functions.
  • Software is developed keeping downward compatibility intact.

Non-Functional Requirements :Requirements, which are not related to functional aspect of software, fall into this category. They are implicit or expected characteristics of software, which users make assumption of.

Non-functional requirements include -

  • Security
  • Logging
  • Storage
  • Configuration
  • Performance
  • Cost
  • Interoperability
  • Flexibility
  • Disaster recovery
  • Accessibility

 

SRS should come up with following features:

  • User Requirements are expressed in natural language.
  • Technical requirements are expressed in structured language, which is used inside the organization.
  • Design description should be written in Pseudo code.
  • Format of Forms and GUI screen prints.
  • Conditional and mathematical notations for DFDs etc.

UI is an important part of any software or hardware or hybrid system. A software is widely accepted if it is -

  • easy to operate.
  • quick in response.
  • effectively handling operational errors.
  • providing simple yet consistent user interface.