What is software requirement ? Briefly explain functional , non-functional requirement, domain requirement.
Software Requirement
-The requirements for a system description of the services provided by the system and its operational constraints. These requirements reflect the needs of customers for a system that helps to solve problems such as controlling a device, placing an order or finding out, analyzing, documenting, and checking those services and constraints is called requirement engineering.
- The requirement themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process. It may range from a high-level abstract statement of a service or of a system constraint to be a detailed mathematical functional specification.
Types of Software Requirements
1) User Requirement
2) System Requirement
1) User Requirement
It means the high-level abstract requirements. These are statements, in a natural language plus diagrams, of what services the system is expected to provide and the constraints under which it must operate. If code is writing user requirements, we should not use software jargon, structured notation or formal specifications.
OR,
User Requirement
- User requirements are the statements in a natural, language plus a diagram of what services the system is expected to provide and the constraints under which it must operate.
- These often referred to as user needs, describe what the user does with the system, such as what activities users must be able to perform.
- User requirement comes from the user or other type of stakeholders and expresses a property of domain or business process that the introduction of a new system will bring about.
- User requirements are generally documented in user requirement documents using narrative text. User requirements are generally signed off by the user and used as a primary input for creating system requirements.
- An important and difficult step of designing a software product is determining what the user actually wants it to do. This is because the user is often not able to communicate the entirety of their needs and wants and the information they provide may also be incomplete, inaccurate, and self-conflicting. This is why user requirements and generally considered separately from system requirements.
2) System Requirement
It means a detailed description of what the system should do. It set out the systems functions, Services, and operational constraints in detail. The system requirement document sometimes called a functional specification should be practice. It should define exactly what is to be implemented. It may be part of the contract between the system buyer and the software developer.
OR,
System Requirement
- System requirements set out the systems function; services and operational constraints in detail.
- System requirements are the building blocks that the developers use to build the system. These are the traditional "Shall" statement that describes what the system shall do.
- System requirement document is a structured document setting out the detailed description of the system services written as a contractor between client and contractor.
Software system requirements are often classified as functional and non-functional or domain requirements:
a) Functional requirements
-These are statements of services the system should provide, how the system should react to particular inputs and how the system should behave in a particular situation. These requirements depend on the type of software being developed the expected users of the software and generated approach In the functional requirements may also explicitly state what the system should not do.
- These requirements depend on the type of software being developed the expected users of the software and generated approach taken by the organization when writing requirements.
- Functional user requirement may be a high-level statement of what the system requirement should describe the system services in detail.
- There are many ways of expressing functional requirements for e.g., natural language, a structured or formatted language with no rigorous syntax and formal specification language with proper syntax.
Or,
a) Functional requirements
- Functional requirements define the basic system behavior. Essentially, they are what the system does or must not do, and can be thought of in terms of how the system responds to inputs.
-These are statements of services the system should provide, how the system should react to particular inputs and how the system should behave in a particular situation. In some cases, functional requirements may also explicitly state what the system should not do.
- These requirements depend on the type of software being developed the expected users of the software and generated approach taken by the organization when writing requirements.
- When expressed as user requirements, the functional requirements should be written in natural language, so that the system user and manager can understand them.
- Functional user requirements may be a high-level statement of what the system should do but functional system requirements should describe the system service in detail.
- They should describe the system functions, their inputs and outputs, and exceptions in detail.
- Functional requirements are the main things that the user expects from the s/w for eg: if the application is a banking application, that application should be able to create a new account, update an account, delete an account, etc.
- The functional requirement for the system should be both complete and consistent Completeness means that all services required by the users should be defined and consistency means that requirements should not have contradictory meanings.
Example: functional requirement of a University library management system
1) The user shall be able to search either all of the initial sets of databases or select a subset from it.
2) The system should provide appropriate viewers for the users to read documents in the document store.
3) Every order should be allocated a unique identifier ( order2), which the user shall be able to copy to the account's permanent storage data.
Advantages of Functional Requirement
- Functional requirements document helps you to check whether the application is providing all the functionalities that were mentioned by the user for that application.
- A functional requirement document helps you to define the functionality of a system or one of its subsystems.
- Functional requirements along with requirement analysis help identify missing requirements. They help clearly define the expected system service and behavior.
- Errors caught in the Functional requirement gathering stage are the cheapest to fix.
- Support user goals, tasks, or activities for easy project management
- Functional requirements can be expressed in Use Case form or user story as they exhibit externally visible functional behavior.
b) Non- functional requirements
-These are constraints on the services on functions offered by the system. They include timing constraints on the development process and standards. They may relate to emergent system properties such as reliability, response time, and store occupancy.
- They define constraints on the System such as the capabilities of input/output devices and the data representation used in system interfaces.
- Non-functional requirements may be more critical than functional requirements If these are not met then the system is useless.
OR,
b) Non- functional requirements
-Non-functional requirements are requirements that are not directly concerned with specific functions delivered by the system to it’s user, but they are concerned with emergent system properties. Non-functional requirements specify how the system should do it. Non-functional requirements do not affect the basic functionality of the systems.
- These are constraints on the services or functions offered by the system. They include timing constraints, constraints on the development process, and constraints imposed by standards.
- Non-functional requirements often apply to the system as a whole rather than individual system features or services.
- They may relate to emergent system properties such as reliability, response time, and store occupancy.
- They define constraints on the system such as the capabilities of input/output devices and the data representation used in system interfaces.
- Non-functional requirements may be more critical than functional requirements If these are not met then the system is useless.
Example of the non-functional requirement of the online account
- Users must change the initially assigned login password immediately after the first successful logic.
- Employees are never allowed to update their salary information. Such an attempt should be reported to the security administrator.
- Every unsuccessful attempt by a user to access an item of data shall be recorded on an audit trail.
- A website should be capable enough to handle 20 million users without affecting its performance
- The software should be portable. So moving from one OS to another OS does not create any problems.
- Privacy of information, the export of restricted technologies, intellectual property rights, etc. should be audited.
Advantages of Non-functional requirement
- The non-functional requirements ensure the software system follows legal and compliance rules.
- They ensure the reliability, availability, and performance of the software system They ensure good user experience and ease of operating the software.
- They help in formulating the security policy of the software system.
c) Domain Requirement
- Domain requirements are the requirements that are characteristic of a particular category or domain of projects. These requirements are derived from the application domain of the system rather than from the specific needs of the system users.
- Domain requirement reflects the environment in which the system operates. It includes specialized domain terminology or reference to domain concepts. These requirements are therefore identified from that domain model and are not user-specific.
- Domain requirement is important because they often reflect the fundaments of the application domain, if these requirements are not satisfied, it may be impossible to make the system work satisfactorily.
.png)
Comments
Post a Comment