Software Requirements : Introduction
- Software Requirements are generally known as requirements that caters as the first stage in the Software Development Life Cycle of any software product.
- The software requirements phase deals with the overall documentation of the software product in terms of elicitation, analysis, reviews, requirement engineering, feasibility study and software requirement specifications.
- Business requirements and planning of developing software project are the major focuses of this phase which acts as the backbone to overall project development.
- The whole project depends upon how neatly and clearly the analysis, requirements and planning is done. Making the requirement and planning more understandable, better would be the final out i.e. software product.
Software Requirement Specification
- Software Requirement Specification(SRS) describes the whole details and analysis made on the basis of requirements provided by the client. This information and plan regarding the whole project is documented and is known as Requirement Engineering. This requirement engineering document helps in every stage of the software development life cycle as it contains all the minute details and descriptions along with details of all the features and functionalities of the whole software product as required by the client.
- Software requirement specification is a part of requirement engineering and can be categorized into:
- Functional Software Requirement : Functional Software Requirements are the requirements which defines the functions and features of the whole software product.
- Non Functional Software Requirements : Non-Functional Software Requirements are the requirements which are not mandatory to have but if possible to add, these requirements can increase the function-ability and performance of the software product.
Software Requirements : Use Case Diagrams
- The Use Case Diagrams are the schematic and diagrammatic representation of actual user and a software system. The reason behind generating such a concept is to calculate and measure the feedback and understand how the system will perform when actual user works or takes services from that system.
- The Use Case Diagram is an important part of SRS document and uses various structures to depict and represent the user’s interaction with the software system.
- The sample use case diagram will clear all your doubts.
- In this example of Attendance Management System, the admin can have all the rights students and can update/check details of all the persons, can even generate reports. For the students they can only view the attendance reports. But, in case of teachers they can input the attendance, view reports and also can check details also.
Software Requirements : Data Flow Diagrams
- The Data Flow Diagram(DFD) represents the overall flow of data in any software system. it depicts “How the structure of a software system will look like keeping the logic in together with the physical structure”. It explains the working of system or a part of system. Hence, it acts as a fundamental structure in software requirements.
- Data Flow Diagrams(DFDs) are drawn on the basis of whole system with less emphasize on representing feature & functionalities of the software product. Hence, they are categorized into 3 levels.
- Level-0 DFD : Describes the structure of whole system with less emphasize on representing feature and functionalities and more emphasize on structural attributes.
- Level-1 DFD : Describe the structure of whole system with emphasize on all major functionalities and feature.
- Level-1 DFD : Describes the structure of whole system with emphasize on all the details from major to minor functionalities and feature. It is the most complex form of DFD is which each and every feature is specifically and individually elaborated.
Cohesion : Software Product
- Cohesion is referred to as the connection and bond between the different modules of a software product. It represents the relation among the modules. Hence, higher the cohesion, more functional-able will be the software product.
- Cohesion can be of multiple type:
- Temporal Cohesion.
- Functional Cohesion.
- Logical Cohesion.
- Coincidental Cohesion.
- Sequential Cohesion.
- Procedural Cohesion.
Coupling : Software Product
- Coupling defines “How much, the processes in the modules are dependent upon each other”. Lesser the coupling more better will be the software product.
- Coupling can be categorized as:
- Control Coupling.
- Data Coupling.
- Common Coupling.
- Content Coupling.
- Stamp Coupling.