0% found this document useful (0 votes)
25 views9 pages

Swe 4

Uploaded by

suchismitabose29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views9 pages

Swe 4

Uploaded by

suchismitabose29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

‭Software Requirements Specification (SRS)‬

‭ ‬‭Software Requirements Specification (SRS)‬‭is a detailed‬‭document that‬


A
‭describes the functional and non-functional requirements of a software‬
‭system. It serves as a blueprint for developers, testers, stakeholders, and‬
‭project managers to understand the system's expected behavior, scope, and‬
‭constraints. The SRS bridges the gap between what stakeholders expect and‬
‭what developers deliver.‬

‭Key Components of an SRS‬

‭1.‬ ‭Introduction‬‭:‬
‭○‬ ‭Purpose‬‭: Explains the objective of the system and‬‭the purpose‬
‭of the SRS document.‬
‭○‬ ‭Scope‬‭: Describes the system's scope, including what‬‭it will and‬
‭will not do.‬
‭○‬ ‭Definitions, Acronyms, and Abbreviations‬‭: Lists terms‬‭used in‬
‭the document.‬
‭○‬ ‭References‬‭: Provides links or citations to related‬‭documents,‬
‭standards, or guidelines.‬
‭2.‬ ‭Overall Description‬‭:‬
‭○‬ ‭Product Perspective‬‭: Describes how the system fits‬‭into the‬
‭existing environment, including interfaces with other systems.‬
‭○‬ ‭Product Functions‬‭: Summarizes the major functions‬‭of the‬
‭system.‬
‭○‬ ‭User Characteristics‬‭: Defines the intended users,‬‭their roles,‬
‭skills, and experience.‬
‭○‬ ‭Assumptions and Dependencies‬‭: Lists assumptions about‬‭the‬
‭system's environment and dependencies on external factors.‬
‭3.‬ ‭Functional Requirements‬‭:‬
‭○‬ ‭Specifies the system's behavior, detailing inputs, processes, and‬
‭outputs.‬
‭○‬ ‭Example: "The system shall allow users to reset their password‬
‭via email verification."‬
‭4.‬ ‭Non-Functional Requirements‬‭:‬
‭○‬ D ‭ escribes performance, security, usability, reliability, and‬
‭scalability requirements.‬
‭○‬ ‭Example: "The system shall handle up to 10,000 concurrent‬
‭users with a response time of less than 2 seconds."‬
‭5.‬ ‭External Interface Requirements‬‭:‬
‭○‬ ‭Details how the system interacts with external systems,‬
‭hardware, and users.‬
‭○‬ ‭Includes user interfaces, APIs, and communication protocols.‬
‭6.‬ ‭System Models‬‭:‬
‭○‬ ‭Provides diagrams like use-case diagrams, context diagrams, or‬
‭data flow diagrams (DFDs) to illustrate the system's structure and‬
‭behavior.‬
‭7.‬ ‭Constraints‬‭:‬
‭○‬ ‭Specifies restrictions such as regulatory compliance, hardware‬
‭limitations, or specific technologies that must be used.‬
‭8.‬ ‭Validation Criteria‬‭:‬
‭○‬ ‭Defines how the system will be tested to ensure it meets‬
‭requirements.‬

‭Characteristics of a Good SRS‬

‭1.‬ ‭Correct‬‭: A good SRS should accurately represent the system's‬


‭requirements, ensuring they align with the expectations and needs of‬
‭stakeholders. It must be free from errors, contradictions, and‬
‭misinterpretations, providing a solid foundation for system‬
‭development. Accuracy in capturing what stakeholders truly want‬
‭ensures that the system delivers value and meets its intended‬
‭objectives.‬
‭2.‬ ‭Complete:‬‭The SRS must encompass all functional requirements,‬
‭specifying the behaviors, inputs, and outputs of the system, as well as‬
‭non-functional requirements such as performance, security, and‬
‭usability constraints. It should address every aspect of the system that‬
‭impacts its operation, leaving no gaps that could cause issues during‬
‭development or deployment.‬
‭3.‬ ‭Unambiguous:‬‭Every requirement in the SRS must be clearly defined‬
‭using precise language to prevent multiple interpretations. This avoids‬
‭misunderstandings among stakeholders, developers, and testers,‬
‭ nsuring all parties have the same understanding of the system's‬
e
‭needs and expectations.‬
‭4.‬ ‭Verifiable:‬‭Requirements in the SRS should be stated in a manner that‬
‭makes them measurable and testable. This means providing clear‬
‭criteria for acceptance, enabling the development team to confirm‬
‭during testing that the requirements have been implemented correctly‬
‭and fulfill their intended purpose.‬
‭5.‬ ‭Consistent:‬‭The document should maintain logical coherence,‬
‭ensuring that no requirement contradicts another. Consistency‬
‭eliminates confusion and prevents development errors caused by‬
‭conflicting requirements, promoting a unified approach to system‬
‭design and implementation.‬
‭6.‬ ‭Modifiable:‬‭As requirements often evolve during the development‬
‭process, the SRS should be structured to facilitate easy updates. This‬
‭includes using a clear organization, version control, and consistent‬
‭formatting to accommodate changes without compromising the‬
‭document’s integrity.‬
‭7.‬ ‭Traceable:‬‭Each requirement should have a unique identifier and be‬
‭linked to its origin, such as stakeholder inputs, project goals, or‬
‭regulations. Additionally, requirements should be traceable through all‬
‭stages of development, from design and implementation to testing,‬
‭ensuring that all requirements are fulfilled and accounted for.‬

‭Benefits of SRS‬

‭1.‬ ‭Clarity and Agreement‬‭: Ensures all stakeholders have a common‬


‭understanding of the system.‬
‭2.‬ ‭Guidance for Development‬‭: Acts as a reference for‬‭developers to‬
‭design and implement the system.‬
‭3.‬ ‭Basis for Testing‬‭: Provides a benchmark for verifying that the system‬
‭meets its requirements.‬
‭4.‬ ‭Cost and Time Management‬‭: Reduces the likelihood of‬‭scope creep,‬
‭saving time and resources.‬
‭5.‬ ‭Documentation‬‭: Serves as a formal record of what the system is‬
‭intended to do.‬

‭Requirement Elicitation Techniques‬


‭ equirement elicitation‬‭involves gathering, identifying, and defining the‬
R
‭requirements of a system from stakeholders, users, and other sources. It is a‬
‭critical phase in the software development lifecycle, as well-defined‬
‭requirements ensure successful system design and implementation. Various‬
‭techniques are used to elicit requirements based on the complexity of the‬
‭system, stakeholders involved, and the domain.‬

‭Techniques for Requirement Elicitation‬

‭1.‬ ‭Interviews‬‭:‬
‭○‬ ‭A face-to-face or virtual interaction with stakeholders to gather‬
‭requirements directly.‬
‭○‬ ‭Types‬‭:‬
‭■‬ ‭Structured: Predefined questions are asked.‬
‭■‬ ‭Unstructured: Open-ended and exploratory.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Allows in-depth exploration of needs.‬
‭■‬ ‭Builds rapport with stakeholders.‬
‭○‬ ‭Challenges‬‭:‬
‭■‬ ‭Time-consuming.‬
‭■‬ ‭May lead to incomplete or biased information.‬
‭2.‬ ‭Questionnaires and Surveys‬‭:‬
‭○‬ ‭Distributing a set of questions to stakeholders to collect‬
‭requirements from a large audience.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Cost-effective and scalable.‬
‭■‬ ‭Provides quantitative data.‬
‭○‬ ‭Challenges‬‭:‬
‭■‬ ‭Limited flexibility for clarification.‬
‭■‬ ‭Depends on the quality of the questions.‬
‭3.‬ ‭Workshops‬‭:‬
‭○‬ ‭A collaborative session involving stakeholders and team‬
‭members to discuss and define requirements.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Encourages brainstorming and consensus.‬
‭■‬ ‭Quick resolution of conflicts.‬
‭○‬ ‭Challenges‬‭:‬
‭ ‬ ‭Requires skilled facilitators.‬

‭■‬ ‭Can be challenging to manage diverse opinions.‬
‭4.‬ ‭Focus Groups‬‭:‬
‭○‬ ‭A moderated discussion with a group of users or stakeholders to‬
‭explore their needs and opinions.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Provides diverse perspectives.‬
‭■‬ ‭Identifies shared priorities.‬
‭○‬ ‭Challenges‬‭:‬
‭■‬ ‭Risk of groupthink or dominant voices overshadowing‬
‭others.‬
‭5.‬ ‭Observation‬‭:‬
‭○‬ ‭Watching users perform their tasks to understand their workflow,‬
‭challenges, and needs.‬
‭○‬ ‭Types‬‭:‬
‭■‬ ‭Passive: Observer does not interact.‬
‭■‬ ‭Active: Observer interacts and asks questions.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Captures real-world practices.‬
‭■‬ ‭Identifies implicit requirements.‬
‭○‬ ‭Challenges‬‭:‬
‭■‬ ‭Time-consuming.‬
‭■‬ ‭Users may modify behavior when observed.‬
‭6.‬ ‭Prototyping‬‭:‬
‭○‬ ‭Creating a mockup or working model of the system to gather‬
‭feedback on requirements.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Visualizes requirements for stakeholders.‬
‭■‬ ‭Helps refine unclear requirements.‬
‭○‬ ‭Challenges‬‭:‬
‭■‬ ‭Can lead to scope creep.‬
‭■‬ ‭Stakeholders might confuse prototypes with final products.‬
‭7.‬ ‭Document Analysis‬‭:‬
‭○‬ ‭Reviewing existing documentation, such as manuals, process‬
‭diagrams, or reports, to extract requirements.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Useful for systems with legacy components.‬
‭ ‬ ‭Provides historical context.‬

‭○‬ ‭Challenges‬‭:‬
‭■‬ ‭Documents may be outdated or incomplete.‬
‭8.‬ ‭Brainstorming‬‭:‬
‭○‬ ‭A group activity to generate ideas and potential requirements‬
‭through creative thinking.‬
‭○‬ ‭Advantages‬‭:‬
‭■‬ ‭Encourages out-of-the-box thinking.‬
‭■‬ ‭Identifies innovative solutions.‬
‭○‬ ‭Challenges‬‭:‬
‭■‬ ‭Requires facilitation to stay focused.‬
‭■‬ ‭May produce unfeasible ideas.‬

‭Techniques for Requirement Modeling‬

‭ equirement modeling techniques are used to represent, organize, and‬


R
‭analyze the requirements of a system. These techniques provide a structured‬
‭way to capture functional and non-functional requirements, define system‬
‭behavior, and visualize workflows. Below are detailed descriptions of‬
‭decision tables‬‭,‬‭event tables‬‭,‬‭state transition tables‬‭, and‬‭Petri nets‬‭.‬

‭1. Decision Tables‬

‭ efinition‬‭: A decision table is a tabular representation‬‭of rules or conditions‬


D
‭that define the behavior of a system. It specifies what actions to take under‬
‭different combinations of input conditions.‬

‭Structure‬‭:‬

‭‬ C
● ‭ onditions‬‭: Input factors that influence the decision.‬
‭●‬ ‭Actions‬‭: Outcomes or operations performed based on‬‭conditions.‬
‭●‬ ‭Rules‬‭: Each column represents a unique combination of conditions‬
‭and the corresponding action(s).‬
‭Example‬‭:‬

‭Conditions‬ ‭Rule 1‬ ‭Rule 2‬ ‭Rule 3‬ ‭Rule‬


‭4‬

‭ ser is‬
U ‭Yes‬ ‭Yes‬ ‭No‬ ‭No‬
‭authenticated‬

‭ ayment details‬
P ‭Yes‬ ‭No‬ ‭Yes‬ ‭No‬
‭valid‬

‭Action‬ ‭ roce‬ ‭Retry‬


P ‭Deny‬ ‭Deny‬
‭ed‬

‭Uses‬‭:‬

‭‬ S
● ‭ implifies complex decision-making processes.‬
‭●‬ ‭Ensures all possible combinations of conditions are considered.‬
‭●‬ ‭Useful for systems with many conditional workflows, such as‬
‭e-commerce or banking systems.‬

‭2. Event Tables‬

‭ efinition‬‭: An event table represents events that‬‭trigger processes or actions‬


D
‭in the system and their corresponding responses. It helps map the‬
‭relationship between events, triggers, conditions, and actions.‬

‭Structure‬‭:‬

‭‬
● ‭ vent‬‭: A specific occurrence that triggers a process.‬
E
‭●‬ ‭Trigger‬‭: The condition or input that initiates the‬‭event.‬
‭●‬ ‭Source‬‭: The origin of the event.‬
‭●‬ ‭Action‬‭: The process performed in response to the event.‬
‭●‬ ‭Response‬‭: The output or result of the action.‬
‭●‬ ‭Destination‬‭: The recipient of the response.‬
‭Example‬‭:‬

‭Event‬ ‭Trigger‬ ‭Sourc‬ ‭Action‬ ‭Response‬ ‭Destinatio‬


‭e‬ ‭n‬

‭User Login‬ L
‭ ogin‬ ‭User‬ ‭ alidate‬
V ‭ uccess or‬
S ‭ ser‬
U
‭credentials‬ ‭credentials‬ ‭failure‬ ‭Interface‬

‭ rder‬
O ‭ ubmit‬
S ‭ usto‬
C ‭ rocess‬
P ‭ rder‬
O ‭ ustomer‬
C
‭Placement‬ ‭order‬ ‭mer‬ ‭payment‬ ‭confirmation‬ ‭Email‬

‭Uses‬‭:‬

‭‬ C
● ‭ aptures system behavior in response to real-world events.‬
‭●‬ ‭Ensures completeness by listing all relevant events.‬
‭●‬ ‭Useful in event-driven systems like online booking or IoT applications.‬

‭3. State Transition Tables‬

‭ efinition‬‭: A state transition table models the behavior‬‭of a system in terms‬


D
‭of states, events, and transitions. It defines how a system transitions from one‬
‭state to another based on specific events or conditions.‬

‭Structure‬‭:‬

‭‬
● ‭ urrent State‬‭: The system's state before the event‬‭occurs.‬
C
‭●‬ ‭Event‬‭: The input or trigger causing a transition.‬
‭●‬ ‭Next State‬‭: The system's state after the transition.‬
‭●‬ ‭Action‬‭: The process or response performed during the‬‭transition.‬

‭Example‬‭:‬

‭Current‬ ‭Event‬ ‭ ext‬


N ‭Action‬
‭State‬ ‭State‬

‭Logged Out‬ L
‭ ogin‬ ‭Logged In‬ D
‭ isplay‬
‭Success‬ ‭Dashboard‬

‭Logged In‬ ‭Logout‬ ‭ ogged‬


L ‭End Session‬
‭Out‬
‭Logged In‬ ‭Timeout‬ ‭ ogged‬
L ‭Save Progress‬
‭Out‬

‭Uses‬‭:‬

‭●‬ M ‭ odels systems with discrete states, such as login/logout systems or‬
‭vending machines.‬
‭●‬ ‭Provides clarity in understanding state-dependent behavior.‬
‭●‬ ‭Useful in designing finite state machines.‬

‭4. Petri Nets‬

‭ efinition‬‭: A Petri net is a graphical and mathematical modeling tool used to‬
D
‭describe and analyze the behavior of distributed systems. It represents‬
‭processes in terms of states, transitions, and tokens.‬

‭Components‬‭:‬

‭‬ P
● ‭ laces (Circles)‬‭: Represent states or conditions.‬
‭●‬ ‭Transitions (Rectangles)‬‭: Represent actions or events‬‭that cause state‬
‭changes.‬
‭●‬ ‭Arcs (Arrows)‬‭: Connect places and transitions, showing‬‭the flow.‬
‭●‬ ‭Tokens (Dots)‬‭: Represent the presence of a condition‬‭or resource.‬

‭Example‬‭:‬

‭‬ P
● ‭ lace‬‭: "Payment Initiated".‬
‭●‬ ‭Transition‬‭: "Payment Approved".‬
‭●‬ ‭Token Movement‬‭: When the "Payment Approved" transition‬‭fires, a‬
‭token moves from "Payment Initiated" to "Payment Completed".‬

‭Uses‬‭:‬

‭●‬ M ‭ odels concurrent and asynchronous processes, such as workflow‬


‭management or communication protocols.‬
‭●‬ ‭Allows performance analysis and verification of system properties like‬
‭deadlock or reachability.‬

You might also like