Software Requirement Analysis and Specifications

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

What is the significance of high-quality requirement specifications in software development?

High-quality requirement specifications are of importance in software development

What role do the key system interfaces play in system elements?

Key system interfaces play an important role in system elements.

Name some of the things explored during software requirement analysis.

Information flow, structure definitions, basic diagrams, and major functions

What are the factors that determine the success of a software development?

<p>Level of detail recorded, quality of the software specification, integrity, accuracy, established development processes, rigor, reviews and audits, accuracy of models, effectiveness of the test and integration, level of preparation for system maintenance.</p> Signup and view all the answers

Use cases are known as functional requirements.

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

Non-functional requirements impose constraints on the design or implementation.

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

How many phases are in the analysis phase of software requirement specification?

<p>Two</p> Signup and view all the answers

What are the types of software requirements?

<p>Functional, non-functional, and domain requirements.</p> Signup and view all the answers

What do Functional Requirements describe?

<p>Functional requirements describe what the software should do.</p> Signup and view all the answers

What are Domain Requirements?

<p>Domain requirements are specific to the domain or industry in which the software operates.</p> Signup and view all the answers

Give examples of Functional Requirements.

<p>User Authentication, Search Functionality, Report Generation</p> Signup and view all the answers

Give examples of Domain Requirements.

<p>Healthcare, Finance, E-commerce</p> Signup and view all the answers

Define Performance in Software Requirements.

<p>Develop performance requirements interactively across all functions; characterize requirements by certainty, criticality to system success, and relationships with other requirements.</p> Signup and view all the answers

What is the definition of Design in Software Requirements?

<p>The 'build to,' 'code to,' and 'buy to' requirements for products and 'how to execute' requirements for processes expressed in technical data packages and technical manuals.</p> Signup and view all the answers

What are Allocated requirements?

<p>This is a requirement that is established by dividing or otherwise allocating a high-level requirement into multiple lower-level requirements.</p> Signup and view all the answers

What are Derived Requirements?

<p>The requirements are implied or transformed from the higher-level requirement.</p> Signup and view all the answers

What does software architecture define?

<p>Structure of a system, behavior of a system, component relationship, communication structure, balances stakeholder's needs, influences team structure, focuses on significant elements, captures early design decisions</p> Signup and view all the answers

What characteristics should a good system analyst have for required determination?

<p>Impertinence, impartiality, relaxed constraints, attention to details, reframing.</p> Signup and view all the answers

What are deliverables for the requirement determination?

<p>Information collected from conversations or observations of users, existing written information, and computer-based information.</p> Signup and view all the answers

Name some typical participants in JAD.

<p>JAD Leader, Key Users, Managers, Sponsor, System Analysts, Scribe, IT Staff</p> Signup and view all the answers

What are the advantages of JAD?

<p>Improved collaboration, increased efficiency, faster development, enhanced quality, greater user satisfaction.</p> Signup and view all the answers

What are the situations where development of prototype is useful?

<p>Where the user is unable to specify the requirements in advance; where users can't visualize the desired system he wants; and when the environment is new and not fully understood by the user or the analyst.</p> Signup and view all the answers

In radical methods for system requirement, how many activities the model defines?

<p>Six activities</p> Signup and view all the answers

What do operational requirements define?

<p>The basic need and, at a minimum, answers to the questions posed in the following listing.</p> Signup and view all the answers

Name some questions that relate to operational requirements

<p>Operational distribution/deployment, mission profile/scenario, performance and related parameters, utilization environments, effectiveness requirements, operational life cycle, environment.</p> Signup and view all the answers

What is requirement engineering?

<p>Requirement engineering involves determining the goals, functions, and constraints of hardware and software systems.</p> Signup and view all the answers

What does Requirements documentation provide?

<p>Provides a detailed description of what the software does or is expected to do.</p> Signup and view all the answers

Give an example of what Technical Documentation refers to.

<p>Software documentation detailing various aspects of its operation.</p> Signup and view all the answers

What does User Documentation focus on?

<p>Describing how the software is used rather than detailing its source code.</p> Signup and view all the answers

List the ways user documentation can be organized.

<p>Tutorial, Thematic, List of Reference</p> Signup and view all the answers

Flashcards

Software Requirement

The process to determine what the system and software should do with customer analysis.

Software Requirement Specification (SRS)

A complete description of the software to be developed including use cases.

Use Cases

Also known as functional requirements; Describes user interactions with the software.

Non-Functional Requirements

Requirements that impose constraints on design/implementation, e.g., performance or design.

Signup and view all the flashcards

Planning Phase

System definition, project plan and preliminary user's manual.

Signup and view all the flashcards

Software Requirement Specification

A table of contents for software requirements.

Signup and view all the flashcards

Functional Requirement

Describes what the software should do.

Signup and view all the flashcards

Non-Functional Requirements

Describes how the software performs tasks, defining quality and performance.

Signup and view all the flashcards

Domain Requirements

Requirements specific to the industry, like healthcare or finance.

Signup and view all the flashcards

Performance Requirements

Requirements characterized by certainty and criticality to the system's success.

Signup and view all the flashcards

Allocated Requirement

Subdividing a high-level requirement into multiple lower-level requirements.

Signup and view all the flashcards

Derived Requirement

Requirements implied or transformed from a higher-level requirement.

Signup and view all the flashcards

Software Architecture

Defines fundamental structure and organization of a system.

Signup and view all the flashcards

Impartiality

Find the optimum solution regardless of personal feelings.

Signup and view all the flashcards

Relaxed Constraints

Assume and eliminate anything is impossible.

Signup and view all the flashcards

Attention to Details

Every fact connects with other facts to avoid system failure.

Signup and view all the flashcards

Traditional Requirement Collection

Observing users, questionnaires, and interviews to ascertain requirements.

Signup and view all the flashcards

Joint Application Development (JAD)

Users, analysts, and managers work together using collaborative approach.

Signup and view all the flashcards

JAD Design

Team defines new system requirements, and plans a solution.

Signup and view all the flashcards

CASE Tools in JAD

Enters models in CASE tool for consistency.

Signup and view all the flashcards

GSS with JAD

Group Support Systems support JAD meetings.

Signup and view all the flashcards

Greater User Satisfaction

Software has user satisfaction.

Signup and view all the flashcards

Defining Goals

Cost reduction or faster processing as a goal.

Signup and view all the flashcards

Geographically

Treat geographically dispersed resources as though they were centralized.

Signup and view all the flashcards

Customer Requirements

Fact and assumptions define system expectation.

Signup and view all the flashcards

Requirements Analysis

Analyze the needs of the system and its stakeholders.

Signup and view all the flashcards

Requirements Documentation

Details software behavior or what the software must do.

Signup and view all the flashcards

Technical Documentation

Details software, precise code document for maintenance.

Signup and view all the flashcards

User Documentation

Explains feature and guide user to utilize them effectively.

Signup and view all the flashcards

Tutorial

New users use guides. Ideal for beginners.

Signup and view all the flashcards

Thematic

Intermediate users in IT. Focuses on specific area topics.

Signup and view all the flashcards

List of Reference

Advanced users. Has cross referenced indexes.

Signup and view all the flashcards

Study Notes

  • Aims to discuss software requirement analysis and specifications.

Objectives

  • To understand the importance of high-quality requirement specifications in software development.
  • To identify key system interfaces and their role in system elements.
  • To explore information flow, structure definitions, basic diagrams, and major functions.
  • To recognize design constraints and technological risks in system development.
  • To analyze alternative software requirements and validate the system.
  • To address issues like inconsistencies and module redundancy.
  • To learn various tools and techniques for determining system requirements.

Software Requirement Specification Topics

  • Introduction to Software Requirement Specification
  • Software Architecture and Requirement
  • Software Requirement Collection
  • Software Requirement Classification
  • Software Requirement Analysis
  • Software Requirement Documentation

Introduction to Software Requirement

  • System and software requirements must be documented and reviewed with the customer for further analysis.
  • Requirement analysis includes eliciting, analyzing, and recording requirements.
  • Eliciting requirements includes communicating with customers and users to determine their requirements, sometimes called requirements gathering.
  • Analyzing requirements involves determining whether the stated requirements are unclear, incomplete, ambiguous, or contradictory, and then resolving these issues.
  • Recording requirements may be in various forms, such as natural-language documents, use cases, user stories, or process specifications.

Success Factors for Software Development

  • The level of detail in which the team activities are recorded.
  • The quality of the software specification.
  • The integrity of the software specification.
  • The accuracy of the software specification.
  • Established development processes.
  • Rigor with which the established processes are followed.
  • The quality and number of reviews and audits.
  • The accuracy of the models used to estimate software attributes.
  • The effectiveness of the test and integration plan, specification, and test data.
  • The level of preparation for system maintenance.

Software Requirement Specification (SRS)

  • SRS provides a complete description of the behavior of the system to be developed that includes a set of use cases.
  • Use cases are also known as functional requirements.
  • Non-functional requirements impose constraints on the design or implementation.

Two analysis phases exist

  • Planning results in system definition, a project plan, and a preliminary user manual.
  • Software requirement definition activity is recorded in the software specification.
  • Technical requirements for the software product will be specified completely, concisely, and unambiguously.

Example Table of Contents for SRS

  • Introduction
  • General description
  • Functional Requirements
  • Interface Requirements
  • Performance Requirements
  • Design Constraints
  • Non-Functional Attributes
  • Preliminary Schedule and Budget
  • Appendices
  • Uses of SRS document
  • FAQs on SRS Format
  • Conclusion

Types of Software Requirements

  • Functional - Describe what the software should do and define the functions or features the system must have.
  • Non-Functional - Describe how the software performs a task rather than what it should do that define the quality attributes, performance criteria, and constraints.
  • Domain - Specific to the domain or industry in which the software operates, and include terminology, rules, and standards relevant to that particular domain.

Examples of functional requirements

  • User Authentication: The system must allow users to log in using a username and password.
  • Search Functionality: The software should enable users to search for products by name or category.
  • Report Generation: The system should be able to generate sales reports for a specified date range.

Examples of Non Functional Software Requirements

  • Performance: The system should process 1,000 transactions per second.
  • Usability: The software should be easy to use and have a user-friendly interface.
  • Reliability: The system must have 99.9% uptime.
  • Security: Data must be encrypted during transmission and storage.

Examples of Domain Software Requirements

  • Healthcare: The software must comply with HIPAA regulations for handling patient data.
  • Finance: The system should adhere to GAAP standards for financial reporting.
  • E-commerce: The software should support various payment gateways like PayPal, Stripe, and credit cards.

Additional Definitions for Software Requirements

  • Performance requirements should be developed interactively across all functions, and characterized by certainty, criticality to system success, and relationships with other requirements.
  • “Design” includes“build to,” “code to,” and “buy to" requirements for products and “how to execute requirements for processes expressed in technical data packages and technical manuals.
  • “Allocated” refers to a requirement established by dividing or allocating a high-level requirement into multiple lower-level ones.
  • “Derived” refers to requirements that are implied or transformed from the higher-level requirements.

Software Architecture

  • Software architecture defines the fundamental structure and organization of a system.
  • Specifies how components are assembled and how they communicate.
  • Serves as a blueprint for software development.
  • Simplifies the development process by offering a framework that ensures consistency and efficiency.
  • Defines the structure of a system, behavior of a system, component relationships, and communication structure.
  • Balances stakeholder's needs, influence team structure, focuses on significant elements, and captures early design decisions.

Importance of Software Architecture:

  • It’s a key part of the design phase in the software development life cycle and one of the initial steps in the process.
  • Proceeding without it is like building a house without a blueprint.
  • Plays a critical role in software application development by selecting quality attributes that can be optimized, facilitates early prototyping, allows systems to be built in component wise, and helps in managing changes in the system/s.

Software Requirement Collection principles for a System Analyst

  • Impertinence: Question everything.
  • Impartiality: Find the best solution for a business problem.
  • Relaxed constraints: Assume anything is possible and eliminate the infeasible.
  • Attention to detail: Every fact must fit with every other fact.
  • Reframing: Analysis is a creative process.

Requirement Determination Deliverables include:

  • Information collected from conversations with users i.e. interview transcripts, questionnaire responses, meeting minutes, etc.
  • Existing written information i.e. Business strategy statements, sample business and reports, procedures, manuals, documentation etc.
  • Computer-based information i.e. Joint application design sessions, CASE repository contents, system prototypes.

Traditional Methods for System Requirements

  • Interviews and Questionnaires
  • Listening
  • Observations

Questionnaire facts

  • Choose a representative sample
  • Design a questionnaire that covers all requirements
  • Conduct group discussion and brainstorming
  • Document and analyze all the findings

Modern Methods for System Requirement collection

  • Joint application development (JAD) involves users, managers, and analysts working together to design to develop software applications.
  • Objective is to bring key users, managers, and system analysts together to discuss needs.
  • This group defines new system requirements, designs a solution and monitors project until completed.

Typical JAD Participants

  • JAD Leader: Organizes the session, sets the agenda, and keeps the discussion on track.
  • Key Users: People who use the system directly and understand the daily operations
  • Managers: Provide insight into organizational goals
  • Sponsor: Overall director and support
  • System Analysts: Learn from users and managers to gather requirements
  • Scribes: Document the session discussions
  • IT staff: provide support for feasibility and implementation

JAD Advantages

  • Improved Collaboration and efficiency
  • Increased effectiveness for development
  • Enhanced quality and user satisfaction

CASE tools in JAD

  • Running a CASE tool during JAD allows analysts to enter system models directly in a CASE tool, providing a strong reliability and consistency on joint model building process.

GSS with JAD

  • Group Support Systems (GSS) can be used to support group meetings and alleviate problems that can be caused in group meetings.

Prototyping for system requirement is useful

  • When users cannot specify the requirements in advance.
  • When the desired system cannot be visualized
  • When the environment is new and not well understood by participants

Model defines for activities in software requirement collection

  • Define Goals: Specific Goals are identified such as cost reduction, faster processing, or employee empowerment
  • Identify Processes: Determine which processes need improvement.
  • Evaluate Processes: Understanding their strength and weaknesses by analyzing
  • Design New Processes: Creating new and better practices
  • Test New Processes: Improving prototypes before implementation
  • Implement New Processes: Integrate improved process into the business.

Seven Principles of Re-engineering by Michael Hammer and James Champy to Streamline Work Process

  • Organize around outcomes and costs
  • Identify and prioritize processes for redesign depending on urgency for said redesign
  • Integrate information processing work into real work
  • Treating geographically dispersed resources as they are centralized.
  • Linking parallel activities instead of integrating results
  • Putting decision point where work is performed
  • Capturing information and at the source.

Types of Customer Requirements

  • Operational distribution or deployment: Where will the system be used?
  • Mission profile or scenario: How will the system accomplish its mission objective?
  • Performance and related parameters: What are the critical system parameters to accomplish the mission?
  • Utilization environments: How are the various system components to be used?
  • Effectiveness requirements: How effective or efficient must the system be in performing its mission?
  • Operational life cycle: How long will the system be in use by the user?
  • Environment: What environments will the system be expected to operate effectively?

Software Requirement Analysis

  • It is known as requirements engineering concerned with the goals, functions, and constraints of software systems.
  • It is a sub-discipline of systems engineering beginning with a feasibility study, leading to a feasibility report.
  • Requirements analysis determines the needs and conditions for new or modified products while addressing conflicting requirements from stakeholders, such as users and beneficiaries.

Software Requirement Documentation

  • It provides a detailed description of what the software is or is expected to do.
  • Documentation acts as a central reference point throughout development.
  • Documentation acts as a communication tool and a basis for agreements.
  • The documentation is essential for guiding the development process.

Technical Documentation

  • It refers to software documentation detailing various aspects of operation, written by API writers
  • Code documentation should be detailed yet concise for easy maintenance
  • Documentation includes guides that include developers, testers, and end-users to interact with the software.

User Documentation

  • It focuses on describing how the software is used rather than detailing its source code.
  • Explains features and guides users on how to utilize them effectively.
  • It includes troubleshooting assistance to help resolve issues.
  • Documentation should be clear, up-to-date, and easy to understand.
  • Emphasizes consistency and simplicity to ensure usability.

Organizing user documentation through three broad ways

  • Tutorial: Guides new users step-by-step through tasks
  • Thematic: Focuses on specific areas or topics in chapters or sections
  • List of Reference: Grouping commands or tasks logically with cross-referenced index.

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser