Podcast
Questions and Answers
What is the primary purpose of requirements analysis in software development?
What is the primary purpose of requirements analysis in software development?
- To collect data from stakeholders.
- To design the user interface.
- To perform quality assurance testing.
- To clearly specify functional and non-functional requirements. (correct)
Which component is NOT part of a conceptual model?
Which component is NOT part of a conceptual model?
- Conceptual Design
- Database Schema (correct)
- System Architecture
- Use Case Model
What is an Emergent Requirement?
What is an Emergent Requirement?
- A requirement that is clear and concise.
- A requirement that is only feasible with extensive resources.
- A requirement that relies on the interaction of multiple software components. (correct)
- A requirement that can be addressed by a single software component.
What role do use case scenarios play during requirements analysis?
What role do use case scenarios play during requirements analysis?
Which characteristic ensures that requirements are understandable and unambiguous?
Which characteristic ensures that requirements are understandable and unambiguous?
In a Use Case Diagram, what do the stick figures represent?
In a Use Case Diagram, what do the stick figures represent?
How can use case scenarios be utilized in system testing?
How can use case scenarios be utilized in system testing?
Which of the following is NOT a characteristic of effective software requirements?
Which of the following is NOT a characteristic of effective software requirements?
What is one guideline for writing good natural language requirements?
What is one guideline for writing good natural language requirements?
What does the Use Case Model describe?
What does the Use Case Model describe?
Why is verifiability important in software requirements?
Why is verifiability important in software requirements?
Which of the following statements about use case actors is correct?
Which of the following statements about use case actors is correct?
What is the function of connectors in a Use Case Diagram?
What is the function of connectors in a Use Case Diagram?
Which phrase best describes a requirement that is 'Concise'?
Which phrase best describes a requirement that is 'Concise'?
What does it mean for a requirement to be 'Traceable'?
What does it mean for a requirement to be 'Traceable'?
How should reliability be expressed in software requirements?
How should reliability be expressed in software requirements?
What do non-functional requirements primarily address?
What do non-functional requirements primarily address?
Which statement illustrates a poorly written requirement?
Which statement illustrates a poorly written requirement?
Which phase of the requirements process involves collecting requirements from stakeholders?
Which phase of the requirements process involves collecting requirements from stakeholders?
What is the purpose of Requirements Validation?
What is the purpose of Requirements Validation?
During which phase might analysis lead back to further stakeholder discussions?
During which phase might analysis lead back to further stakeholder discussions?
Which of the following is NOT part of the requirements process?
Which of the following is NOT part of the requirements process?
What does the term 'correctness' imply in the context of requirements?
What does the term 'correctness' imply in the context of requirements?
What does requirement management entail in the context of software development?
What does requirement management entail in the context of software development?
What common attributes do both books and journals share?
What common attributes do both books and journals share?
What type of relationship exists between students and publications in the university library system?
What type of relationship exists between students and publications in the university library system?
Which of the following describes the characteristics of a journal?
Which of the following describes the characteristics of a journal?
In the UML class diagram, what should books and journals inherit from?
In the UML class diagram, what should books and journals inherit from?
Which attribute is NOT associated with students in the library system?
Which attribute is NOT associated with students in the library system?
What is a necessary component to represent the library's interaction with publications?
What is a necessary component to represent the library's interaction with publications?
What element would NOT typically be included in a UML class diagram for a library system?
What element would NOT typically be included in a UML class diagram for a library system?
What is the primary purpose of creating a UML class diagram in this context?
What is the primary purpose of creating a UML class diagram in this context?
What is the primary function of the 'User' actor in the habit tracker system?
What is the primary function of the 'User' actor in the habit tracker system?
Which use case allows the coach to interact with a specific user's habit?
Which use case allows the coach to interact with a specific user's habit?
Which type of relationship describes use cases that are always performed as part of another use case?
Which type of relationship describes use cases that are always performed as part of another use case?
What is the role of the 'Update habit history' use case?
What is the role of the 'Update habit history' use case?
Which of the following is NOT a pre-condition for a use case scenario?
Which of the following is NOT a pre-condition for a use case scenario?
What does the 'Add a comment' use case allow the coach to do?
What does the 'Add a comment' use case allow the coach to do?
What is a distinguishing feature of the 'Extend relationships' in use cases?
What is a distinguishing feature of the 'Extend relationships' in use cases?
How can a use case scenario be structured?
How can a use case scenario be structured?
What does a post-condition in a use case scenario define?
What does a post-condition in a use case scenario define?
Which of the following best describes a Main Success Scenario?
Which of the following best describes a Main Success Scenario?
What are alternative scenarios in use cases typically used for?
What are alternative scenarios in use cases typically used for?
Which type of constraint specifies the programming language to be used in development?
Which type of constraint specifies the programming language to be used in development?
What is indicated by resource constraints in software development?
What is indicated by resource constraints in software development?
What is a required condition for the software regarding network requirements?
What is a required condition for the software regarding network requirements?
What must the software comply with regarding user data?
What must the software comply with regarding user data?
Which of the following should be included to ensure scalability and performance?
Which of the following should be included to ensure scalability and performance?
Flashcards
Emergent Requirement
Emergent Requirement
A requirement that cannot be satisfied by a single software component but depends on the interaction of multiple components.
Correctness in Software Requirements
Correctness in Software Requirements
Every requirement specified must be one that the software must satisfy.
Clarity and Unambiguity in Software Requirements
Clarity and Unambiguity in Software Requirements
Requirements are expressed in a way that's clear, concise, and easy to understand. There should be only one interpretation of a requirement.
Completeness in Software Requirements
Completeness in Software Requirements
Signup and view all the flashcards
Conciseness in Software Requirements
Conciseness in Software Requirements
Signup and view all the flashcards
Consistency in Software Requirements
Consistency in Software Requirements
Signup and view all the flashcards
Feasibility in Software Requirements
Feasibility in Software Requirements
Signup and view all the flashcards
Traceability in Software Requirements
Traceability in Software Requirements
Signup and view all the flashcards
Requirements Analysis
Requirements Analysis
Signup and view all the flashcards
Conceptual Model
Conceptual Model
Signup and view all the flashcards
Conceptual Design
Conceptual Design
Signup and view all the flashcards
Use Case Model
Use Case Model
Signup and view all the flashcards
Use Case Actor
Use Case Actor
Signup and view all the flashcards
Use Case Scenario
Use Case Scenario
Signup and view all the flashcards
Use Case Diagram (UML)
Use Case Diagram (UML)
Signup and view all the flashcards
Use Case Testing
Use Case Testing
Signup and view all the flashcards
Functional Requirements
Functional Requirements
Signup and view all the flashcards
Non-Functional Requirements
Non-Functional Requirements
Signup and view all the flashcards
Requirements Elicitation
Requirements Elicitation
Signup and view all the flashcards
Requirements Specification
Requirements Specification
Signup and view all the flashcards
Requirements Validation
Requirements Validation
Signup and view all the flashcards
Requirements Management
Requirements Management
Signup and view all the flashcards
Iterative Requirements Process
Iterative Requirements Process
Signup and view all the flashcards
Multiplicity in UML
Multiplicity in UML
Signup and view all the flashcards
Primary Actor
Primary Actor
Signup and view all the flashcards
Secondary Actor
Secondary Actor
Signup and view all the flashcards
Include Relationship
Include Relationship
Signup and view all the flashcards
Extend Relationship
Extend Relationship
Signup and view all the flashcards
Precondition in a Use Case Scenario
Precondition in a Use Case Scenario
Signup and view all the flashcards
System Correctness
System Correctness
Signup and view all the flashcards
Post-Condition
Post-Condition
Signup and view all the flashcards
Main Success Scenario
Main Success Scenario
Signup and view all the flashcards
Exception Scenarios
Exception Scenarios
Signup and view all the flashcards
Actor
Actor
Signup and view all the flashcards
Use Case Inclusion
Use Case Inclusion
Signup and view all the flashcards
Development Constraints
Development Constraints
Signup and view all the flashcards
Operational Environment Requirements
Operational Environment Requirements
Signup and view all the flashcards
Development Constraints
Development Constraints
Signup and view all the flashcards
Operational Environment Requirements
Operational Environment Requirements
Signup and view all the flashcards
Inheritance
Inheritance
Signup and view all the flashcards
Association
Association
Signup and view all the flashcards
Composition
Composition
Signup and view all the flashcards
Aggregation
Aggregation
Signup and view all the flashcards
Cardinality
Cardinality
Signup and view all the flashcards
Container Class
Container Class
Signup and view all the flashcards
Subclass
Subclass
Signup and view all the flashcards
Superclass
Superclass
Signup and view all the flashcards
Study Notes
Engineering Requirements
- Requirements are capabilities needed by a user to achieve an objective
- Requirements must be met by the system to satisfy a contract, standard, specification, or other formally imposed documents.
- System requirements apply to the entire system
- Software requirements apply to the software subsystem
Software Requirements Concepts & Process
- Functional Requirements describe functions the software performs.
Example: A Traffic Management System can set the duration of individual traffic signal states. (Red 30-120 seconds, Green 30-120 seconds, Amber 5-10 seconds) - Non-Functional Requirements constrain the solution. Example: The Traffic Management System software must not fail more than once in every 24,000 hours.
- Quality Attributes are characteristics related to performance and usability but unrelated to functionality. Examples include availability, reliability, usability, reusability, maintainability, efficiency, safety and security.
- Emergent Requirements cannot be addressed by a single component, instead require interactions between all components. Example: A system needs a specific increase in traffic throughput during a specific time period.
TMS Case Study
- Traffic Management Systems (TMS) use technologies to manage traffic flow.
- TMS address congestion caused by accidents, slow-moving vehicles, planned events, and extreme weather.
Documentation - Specifying Requirements - SRS Outline
- Introduction
- Team Project Information
- Overall Description
- Product Description and Scope
- Users Description
- Development Constraints
- Operational Environment
- Functional Requirements
- Performance Requirements
- Other Non-Functional Requirements
- Reliability
- Safety Requirements
- Security Requirements
- Maintenance Requirements
- Business Rules
- User Documentation
- References
- Appendix - Use Case Diagram
Software Requirements
- Correct: Every requirement must be satisfied by the software.
- Clear/Unambiguous: Requirements should be precise and easy to understand.
- Complete: All agreed-upon requirements should be included.
- Concise: Use clear and concise language.
- Consistent: No contradictory requirements.
- Feasible: Achievable within the given resources and schedule.
- Traceable: Requirements can be linked back to sources and forward to developed artifacts.
- Verifiable: Criteria for verification and a cost-effective way of checking implementation should exist.
- Prioritized: Requirements should be ranked by importance or stability.
Guidelines For Writing Requirements
- Use complete sentences and active voice.
- Be precise and avoid ambiguity.
- Requirements should be verifiable.
- Keep requirements concise, avoid wordiness.
- Use consistent terminology.
- Avoid compound statements; each statement should represent a single requirement.
- Avoid duplication.
Examples
- Avoid Non-Requirement Statements: Statements describing background information, relationships, negative scenarios, or the system's general design.
- Examples of Functional Requirements: Statements that describe specific system behavior (e.g., "The system must allow users to create and edit profiles").
Examples of Non-functional Requirements
- Pressing a switch to light up a room in less than one second.
- The light must switch off after two minutes when the room is empty.
Example of a Poorly Written Requirement
- The output of the program should usually be displayed within 10 seconds.
- Problems: Uses "usually," lacks specific conditions, undefined output, and unclear starting point for counting seconds.
Requirements Process
- Elicitation (gathering requirements from stakeholders).
- Analysis (studying data and modelling the problem).
- Specification (documenting and organizing the requirements).
- Validation (Confirming requirements meet the needs).
- Requirements Management (managing requirements throughout the entire software life cycle).
Analyzing Requirements
- Purpose of analysis: Understand stakeholder needs, define and specify requirements clearly, correctly and completely, and establish a solid foundation for design, construction, and testing.
- Develop a conceptual model for more effective communication.
- Elements of the Conceptual Model include Conceptual Design (initial system architecture view) and Use Case Model (describing user interactions with the system).
Outputs from Requirements Engineering - Use Case Model
- A model describing the ways users interact with the system.
- A use case actor represents a user or external entity interacting with the system.
- A use case includes a scenario, which details the interactions between the system and actors.
- Scenarios are used to clarify, expand, and correct functionality.
- Use cases are important for system test planning.
- Different approaches to use case modelling exist.
Use Case Model (UML)
- Use Case diagrams show actors, use cases and their relationships.
- Stick figures represent actors
- Ovals represent use cases
- Connectors show relationships between actors and use cases
Multiplicity (in Associations)
- The number of instances of one class potentially interacting with the instance of another class.
- Multiplicities define possible relationships between classes.
- Example: 0..* - Zero or more; 1 - Exactly one; 0..1 - Zero or one.
Use Case Activity
- Defines actors, actions (use cases), their relationships (include/extend), and the conditions for each activity.
Use Case Scenario
- Provides sequence of steps and describes the interaction between system and actors throughout a use case.
- Contains pre-conditions, post-conditions, main success scenarios, exceptions, and any other use cases that are referenced.
Example - DH Sequence Diagram
- Four objects in the given example: GeneralUser, DHServer, DHGateway, and Device Simulator.
- This scenario describes various method calls to update DH device status.
Why Not Just Code?
- Sequence diagrams can help understanding algorithms better than code.
- Sequence diagrams are language-agnostic.
- Easy to implement and understand them by the team, even for non-coders.
- Visual bandwidth (to see several objects/classes at once).
Representing Objects (in Sequence Diagrams)
- Represents objects using boxed shapes.
- Names clarified with object names are preceded by colons.
Messages Between Objects
- Horizontal arrows showing the method calls between objects.
- Write message name and possible arguments above the arrow.
Indicating Selection and Loops (in Sequence Diagrams)
- Boxes (frames) used for including selection and loop conditions in the diagram.
Linking Sequence Diagrams
- Use references or "ref" frames to avoid repeating or expanding sequence diagrams in a larger diagram.
Annotations
- Comments/annotations (additional details) to any part of the UML diagram.
Example - Digital Home
- New homeowners interested in Smart Homes.
- Emphasis on new technologies in home design, construction (e.g., distributed computing, web communications, and intelligent agents).
Basic Concepts of Object-Oriented Programming and UML
- Object
- Class
- Class name
- Attributes
- Operations
UML Diagram Overview
- Structural diagrams (Class, component, deployment, composite structure, package) are descriptions of the structure of a system.
- Behavioral diagrams (activity, state machine, use case) describe system behavior.
- Interaction diagrams (sequence, communication, interaction overview, timing) emphasize object interaction.
Example - Single Inheritance
- Child class (subclass) inheriting properties and methods from a base (parent) class.
Example - Multiple Inheritance
- Child class (subclass) inheriting properties and methods from multiple parent classes (with caution to avoid redundant code).
Association (for Relationships)
- Models semantic connections among classes.
- Multiplicity (defined for each class end and describes relationship cardinality).
- Navigation (specify direction of access).
Example - Library System
- A library system manages publications (books and journals).
- Books and journals inherit from a publications superclass.
- The relation between students and publications is an association with cardinality.
- Library and publication relation is aggregation.
SDS
- Engineering requirements from requirements to design (the specific topic of this presentation).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Test your understanding of requirements analysis in software development with this informative quiz. Covering essential concepts like use case scenarios and characteristics of effective software requirements, this quiz is designed for both beginners and advanced learners in the field.