Requirement Gathering & Analysis for Software Development

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is the primary role of a system analyst in the software development process?

  • Testing and debugging the software
  • Gathering and analyzing customer requirements (correct)
  • Writing code for the software application
  • Designing the user interface of the software

Which of the following activities is NOT typically involved in the requirement gathering phase?

  • Studying existing documents
  • Analyzing market demand
  • Developing a prototype of the software (correct)
  • Interviewing end-users

What is the primary goal of requirement analysis?

  • To write the code for the software application
  • To identify and resolve inconsistencies in customer requirements (correct)
  • To create a detailed design for the software
  • To estimate the cost of developing the software

Which of the following is NOT a typical method for eliciting requirements?

<p>Formal mathematical modeling (C)</p> Signup and view all the answers

Which of the following is a key aspect of analyzing software requirements?

<p>Assessing the feasibility, completeness, and consistency of the requirements (D)</p> Signup and view all the answers

What is the purpose of recording software requirements?

<p>To ensure clear communication within the development team (A)</p> Signup and view all the answers

Which of the following questions is NOT typically considered during requirement analysis?

<p>What is the marketing budget for the software? (C)</p> Signup and view all the answers

What is the primary characteristic of a neat decomposition in software development, according to the content?

<p>High cohesion and low coupling (A)</p> Signup and view all the answers

Which type of cohesion represents the weakest functional strength in a module?

<p>Coincidental cohesion (A)</p> Signup and view all the answers

Which of the following is NOT an advantage of modularity in software development?

<p>Increased development time (D)</p> Signup and view all the answers

Which cohesion type describes a module that handles error handling, input, and output functions, but lacks a strong functional relationship between these tasks?

<p>Logical cohesion (C)</p> Signup and view all the answers

Which of the following statements best describes the relationship between cohesion and coupling?

<p>High cohesion and low coupling lead to better modularity. (B)</p> Signup and view all the answers

What type of cohesion is present in a module that performs initialization and cleanup functions?

<p>Temporal cohesion (D)</p> Signup and view all the answers

In which type of cohesion do module elements have a very loose relationship to each other?

<p>Coincidental cohesion (D)</p> Signup and view all the answers

Besides cohesion, what other modularization criteria is often considered alongside it?

<p>Coupling (D)</p> Signup and view all the answers

What is the key benefit of using prewritten code in modular development?

<p>Reduced development time (C)</p> Signup and view all the answers

Which of the following is NOT a requirement for a maintainable SRS (Software Requirements Specification)?

<p>Modular (A)</p> Signup and view all the answers

What is the main purpose of a Software Requirements Specification (SRS) document?

<p>To ensure that the final product meets the user's needs. (B)</p> Signup and view all the answers

Which category of requirements focuses on the system's technical functionalities, including services provided to end users?

<p>Functional requirements (D)</p> Signup and view all the answers

What type of constraint limits the system's performance based on factors like speed, response time, and resource consumption?

<p>Performance constraint (A)</p> Signup and view all the answers

Which characteristic of a good SRS emphasizes clarity and conciseness, avoiding unnecessary detail?

<p>Concise (D)</p> Signup and view all the answers

Which characteristic ensures that the SRS document provides a clear and understandable representation of the system's concepts and functionalities?

<p>Conceptual integrity (B)</p> Signup and view all the answers

Which characteristic of a good SRS emphasizes that the requirements should be consistent throughout the project development?

<p>Consistent (B)</p> Signup and view all the answers

Which of these is NOT a characteristic of a good SRS?

<p>Detailed (A)</p> Signup and view all the answers

What is the main benefit of an SRS being adaptable?

<p>It allows the development team to make changes based on user feedback. (B)</p> Signup and view all the answers

Which aspect of the SRS describes the characteristics of the system that cannot be expressed in terms of specific functionalities?

<p>Non-functional requirements (C)</p> Signup and view all the answers

Which of these is considered a non-functional requirement?

<p>The system should be accessible to all users regardless of their location. (D)</p> Signup and view all the answers

What is the primary goal of the Requirements Recording & Storing phase?

<p>To gather, document, and organize all software requirements. (A)</p> Signup and view all the answers

What are the three primary problems that a system analyst must address during the Requirements Analysis phase?

<p>Anomalies, Incompleteness, and Inconsistency. (D)</p> Signup and view all the answers

What is the main difference between a 'what' and a 'how' requirement in an SRS?

<p>A 'what' requirement describes the user's desired outcome, while a 'how' requirement defines the technical implementation. (C)</p> Signup and view all the answers

Which of the following is NOT a benefit of a well-written SRS?

<p>Increased development time and cost. (D)</p> Signup and view all the answers

Why is an SRS considered a black-box specification?

<p>Because it describes the system's external behavior without detailing the internal implementation. (B)</p> Signup and view all the answers

Why is it important for an SRS to be carefully written?

<p>All of the above. (D)</p> Signup and view all the answers

Which of these factors can potentially affect the Requirement Analysis process?

<p>All of the above. (D)</p> Signup and view all the answers

What is the role of the system analyst during the Requirement Analysis phase?

<p>To gather and document the software requirements. (C)</p> Signup and view all the answers

What is the primary output of the Requirement Gathering and Analysis activity?

<p>Software Requirement Specification (SRS). (A)</p> Signup and view all the answers

Which type of coupling is considered the most problematic in software development?

<p>Content Coupling (A)</p> Signup and view all the answers

What is a characteristic of a module with high cohesion and low coupling?

<p>It is functionally independent of other modules. (A)</p> Signup and view all the answers

Which type of coupling occurs when two modules communicate using shared global data?

<p>Common Coupling (D)</p> Signup and view all the answers

What is an advantage of functional independence in software design?

<p>Allows for easier error isolation and independent module development. (D)</p> Signup and view all the answers

Which of the following is a non-functional requirement?

<p>The system must respond to user requests within 2 seconds. (C)</p> Signup and view all the answers

Signup and view all the answers

Flashcards

Requirement Gathering

The process of collecting all information from customers about a software product.

System Analyst

A professional responsible for gathering and analyzing software requirements.

Requirement Analysis

The process of understanding and organizing customer requirements for software.

Eliciting Requirements

The activity of communicating with customers to identify their exact needs.

Signup and view all the flashcards

Analyzing Requirements

The process of making requirements complete, clear, and unambiguous.

Signup and view all the flashcards

Recording Requirements

Storing requirements in forms like use cases or documents for reference.

Signup and view all the flashcards

Market Research

The activity of studying market demand and features for competitive analysis.

Signup and view all the flashcards

Requirements recording

Documenting requirements in various formats like use cases or specifications.

Signup and view all the flashcards

Anomaly

Ambiguity or unclear language in requirements.

Signup and view all the flashcards

Inconsistency

Contradictory requirements that cannot coexist.

Signup and view all the flashcards

Incompleteness

Missing information in the requirements that leads to gaps.

Signup and view all the flashcards

Software Requirement Specification (SRS)

A document detailing what a proposed software system should do.

Signup and view all the flashcards

Black-box specification

SRS describes inputs and outputs without revealing internal workings.

Signup and view all the flashcards

Communication enhancement

SRS improves understanding between customer and developer.

Signup and view all the flashcards

Validation process

Checking if the software meets requirements outlined in SRS.

Signup and view all the flashcards

Development cost reduction

A quality SRS minimizes time and money spent on development.

Signup and view all the flashcards

Stamp Coupling

Modules are stamp coupled when they communicate using composite data items like records or structures.

Signup and view all the flashcards

Control Coupling

Control coupling exists when one module uses data from another to direct its execution order.

Signup and view all the flashcards

Common Coupling

Common coupling occurs when multiple modules share data through global items.

Signup and view all the flashcards

Functional Independence

A module is functionally independent if it has high cohesion and low coupling with others.

Signup and view all the flashcards

Functional vs Non-functional Requirements

Functional requirements specify what the system should do; non-functional describe how it should behave.

Signup and view all the flashcards

SRS

Software Requirements Specification; a document outlining system requirements.

Signup and view all the flashcards

Functional Requirements

Specifications of services expected by end users in a system.

Signup and view all the flashcards

Non-Functional Requirements

Characteristics that describe system quality beyond functionality.

Signup and view all the flashcards

Constraints

Restrictions on what the system can or cannot do.

Signup and view all the flashcards

Concise SRS

An SRS that presents brief and direct information about the project.

Signup and view all the flashcards

Complete SRS

A document that is comprehensive enough for developers and clients to fully understand the project.

Signup and view all the flashcards

Consistent SRS

An SRS that maintains agreement and does not conflict in requirements throughout development.

Signup and view all the flashcards

Conceptual Integrity

SRS should present clear and understandable concepts of the system.

Signup and view all the flashcards

Structured SRS

An SRS that is organized logically to facilitate understanding and implementation.

Signup and view all the flashcards

Verifiable SRS

An SRS that can be checked and validated by clients or customers.

Signup and view all the flashcards

Maintainable SRS

A Software Requirements Specification that can be easily updated for future changes.

Signup and view all the flashcards

Portable SRS

An SRS that can be used across similar types of development projects.

Signup and view all the flashcards

Unambiguous SRS

An SRS that avoids any ambiguous interpretations.

Signup and view all the flashcards

Traceable Requirements

Requirements that can be linked back to original sources throughout the development.

Signup and view all the flashcards

Modularity

The practice of dividing a software program into smaller, manageable modules.

Signup and view all the flashcards

Cohesion

A measure of how closely related and focused the tasks within a module are.

Signup and view all the flashcards

Low Coupling

Minimizing dependencies between different modules in software development.

Signup and view all the flashcards

Coincidental Cohesion

The lowest form of cohesion where module elements have no meaningful relationships.

Signup and view all the flashcards

Logical Cohesion

When module elements are logically related but do not have to be executed together.

Signup and view all the flashcards

Temporal Cohesion

When module elements are related by time and executed together.

Signup and view all the flashcards

Study Notes

Requirement Gathering & Analysis

  • Requirements of a customer are crucial for software development.
  • A system analyst performs the task of gathering and analyzing requirements.
  • The analyst collects information from the customer and analyzes it to remove ambiguities and inconsistencies.
  • Requirement gathering is typically the first step in software development, forming the foundation for the whole process.
  • Its goal is to understand customer needs thoroughly to ensure no incompleteness or inconsistencies.
  • This phase involves meetings with customers, market analysis, and examining existing documents.
  • Requirement analysis follows requirement gathering.
  • Its objective is to thoroughly understand the customer's exact requirements.
  • IEEE defines requirement analysis as understanding user needs and refining system requirements (hardware or software).
  • Requirement analysis helps to understand, interpret, classify, and organize software requirements, ensuring feasibility, completeness, and consistency.

Requirement Analysis Activities

  • Eliciting requirements: understanding customer needs through communication.
  • Analyzing requirements: clarifying and making requirements complete, clear, and unambiguous.
  • Recording requirements: documenting requirements in different formats (use cases, specifications, etc.).
  • Solving questions like: what is the problem? What are the inputs and outputs? What are the complexities?

Requirement Analysis Considerations

  • Changes in the environment or technical aspects can impact the process.
  • The analyst identifies and resolves problems related to anomalies, inconsistencies, and incompleteness in requirements.

Software Requirement Specification (SRS)

  • The output of requirement gathering and analysis is the SRS document.
  • It's a detailed description of the software to be developed, describing the system's complete behavior.
  • The SRS should define the "what" without describing the "how".
  • It serves as a reference document for developers and helps clarify project guidelines.
  • It's a contract between the developer and the end-user, mediating potential disagreements.
  • It translates customer ideas into formal documents.
  • It acts as a black-box specification, focusing on observable behaviors instead of internal details.
  • It works as an input to the design phase.
  • Enables better communication between customer and developer.
  • Facilitates project planning and helps in verification/validation.

Cohesion and Coupling

  • Modularity (breaking down a program into smaller modules) is crucial for software development.
  • Cohesion measures the internal strength of a module.
  • High cohesion means modules focus on a single functionality; low cohesion indicates unnecessary interdependencies within the module.
  • Coupling measures the interdependency between modules.
  • Low coupling promotes independence among modules.
  • High coupling increases the complexity in software development, as modules are highly reliant on each other.
  • Types of cohesion include: coincidental, logical, temporal, and procedural, with functional cohesion being the most desirable.
  • Types of coupling include: data, stamp, control, common, and content, where data coupling is the least coupled and content coupling is the most coupled.

Characteristics of a Good SRS

  • Concise: provides clear, brief information
  • Complete: includes all necessary project information
  • Consistent: avoids contradictory requirements throughout the project
  • Conceptual Integrity: clearly defines and explains the system's concepts
  • Structured: well-organized for easy understanding
  • Verifiable: able to be confirmed by customers
  • Adaptable: permits future changes
  • Maintainable: allows for modifications and updates in the future
  • Portable: can be applied to similar projects in the future
  • Unambiguous: avoids multiple interpretations

Functional and Non-Functional Requirements

  • Functional requirements define what the system does.
  • Non-functional requirements describe how the system behaves (e.g., quality, reliability).

Communicational Cohesion

  • Modules perform multiple, related tasks that operate on the same data. (e.g., functions on an array, queue)

Sequential Cohesion

  • Modules perform sequential operations. For instance the input, validation, and output steps in a TPS.

Functional Cohesion

  • Modules focus on a single, well-defined task. (e.g., calculation, sorting).

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

System Analysis Quiz
45 questions

System Analysis Quiz

WorldFamousTuba avatar
WorldFamousTuba
ACS2913 Software Requirements Analysis
29 questions
Use Quizgecko on...
Browser
Browser