Podcast
Questions and Answers
What does the actor desire from the system?
What does the actor desire from the system?
What is the primary function of the system administrator in the use-case diagram?
What is the primary function of the system administrator in the use-case diagram?
What type of elements are described as scenario-based in the analysis model?
What type of elements are described as scenario-based in the analysis model?
Which of the following is NOT considered a behavioral element in the analysis model?
Which of the following is NOT considered a behavioral element in the analysis model?
Signup and view all the answers
What should be conducted to elicit requirements effectively?
What should be conducted to elicit requirements effectively?
Signup and view all the answers
Which of the following would you include as a functional element in the analysis model?
Which of the following would you include as a functional element in the analysis model?
Signup and view all the answers
What is associated with the actor's response to an alarm event?
What is associated with the actor's response to an alarm event?
Signup and view all the answers
What is the primary focus of requirements engineering?
What is the primary focus of requirements engineering?
Signup and view all the answers
Which phase of requirements engineering involves establishing a foundational understanding of the problem?
Which phase of requirements engineering involves establishing a foundational understanding of the problem?
Signup and view all the answers
In addition to scenario-based elements, which other type of element is implied by scenarios?
In addition to scenario-based elements, which other type of element is implied by scenarios?
Signup and view all the answers
What is NOT a part of the specification phase in requirements engineering?
What is NOT a part of the specification phase in requirements engineering?
Signup and view all the answers
What are stakeholders involved in during the elicitation phase?
What are stakeholders involved in during the elicitation phase?
Signup and view all the answers
Which of the following best describes validation in requirements engineering?
Which of the following best describes validation in requirements engineering?
Signup and view all the answers
What is an essential outcome of the negotiation phase in requirements engineering?
What is an essential outcome of the negotiation phase in requirements engineering?
Signup and view all the answers
Which aspect is typically addressed during the elaboration phase of requirements engineering?
Which aspect is typically addressed during the elaboration phase of requirements engineering?
Signup and view all the answers
What is one of the challenges that validation seeks to identify within requirements?
What is one of the challenges that validation seeks to identify within requirements?
Signup and view all the answers
What best describes the purpose of a pattern name in analysis patterns?
What best describes the purpose of a pattern name in analysis patterns?
Signup and view all the answers
Which component describes how a pattern can be applied to a problem?
Which component describes how a pattern can be applied to a problem?
Signup and view all the answers
What does the 'Motivation' aspect of an analysis pattern illustrate?
What does the 'Motivation' aspect of an analysis pattern illustrate?
Signup and view all the answers
What should be minimized throughout the system according to the rules of thumb?
What should be minimized throughout the system according to the rules of thumb?
Signup and view all the answers
Which of the following is NOT a recommended consideration for the analysis model?
Which of the following is NOT a recommended consideration for the analysis model?
Signup and view all the answers
Which component addresses the implications and trade-offs of applying a pattern?
Which component addresses the implications and trade-offs of applying a pattern?
Signup and view all the answers
What does the 'Forces and context' section describe in analysis patterns?
What does the 'Forces and context' section describe in analysis patterns?
Signup and view all the answers
What is the first step in domain analysis?
What is the first step in domain analysis?
Signup and view all the answers
Which statement best reflects the role of 'Known uses' in analysis patterns?
Which statement best reflects the role of 'Known uses' in analysis patterns?
Signup and view all the answers
Object-oriented domain analysis primarily focuses on identifying which of the following?
Object-oriented domain analysis primarily focuses on identifying which of the following?
Signup and view all the answers
In analysis patterns, how are related patterns defined?
In analysis patterns, how are related patterns defined?
Signup and view all the answers
What should the analysis model provide insight into?
What should the analysis model provide insight into?
Signup and view all the answers
What activity is typically performed in the 'System status = ready' state?
What activity is typically performed in the 'System status = ready' state?
Signup and view all the answers
According to the rules of thumb, what characteristic should each element of the analysis model have?
According to the rules of thumb, what characteristic should each element of the analysis model have?
Signup and view all the answers
Which aspect should be delayed until the design phase according to the rules of thumb?
Which aspect should be delayed until the design phase according to the rules of thumb?
Signup and view all the answers
Domain analysis is mainly aimed at which purpose?
Domain analysis is mainly aimed at which purpose?
Signup and view all the answers
What does function deployment primarily determine in a system?
What does function deployment primarily determine in a system?
Signup and view all the answers
In the context of non-functional requirements, what is the first phase of determining compatible NFRs?
In the context of non-functional requirements, what is the first phase of determining compatible NFRs?
Signup and view all the answers
What is the purpose of task deployment in a system?
What is the purpose of task deployment in a system?
Signup and view all the answers
What does value analysis help to determine in requirements gathering?
What does value analysis help to determine in requirements gathering?
Signup and view all the answers
Which of the following best describes a Use-Case?
Which of the following best describes a Use-Case?
Signup and view all the answers
What is NOT a key question answered in a Use-Case scenario?
What is NOT a key question answered in a Use-Case scenario?
Signup and view all the answers
How are non-functional requirements (NFRs) classified during prioritization?
How are non-functional requirements (NFRs) classified during prioritization?
Signup and view all the answers
What is an actor in the context of Use-Cases?
What is an actor in the context of Use-Cases?
Signup and view all the answers
What is the primary purpose of defining the tasks performed by the actor in a use-case?
What is the primary purpose of defining the tasks performed by the actor in a use-case?
Signup and view all the answers
What should be considered when reviewing a primary scenario in a use-case?
What should be considered when reviewing a primary scenario in a use-case?
Signup and view all the answers
Which statement best describes the role of exceptions in a use-case?
Which statement best describes the role of exceptions in a use-case?
Signup and view all the answers
What is a key activity during the creation of a use-case diagram?
What is a key activity during the creation of a use-case diagram?
Signup and view all the answers
Why is it essential for an actor to inform the system about changes in the external environment?
Why is it essential for an actor to inform the system about changes in the external environment?
Signup and view all the answers
What benefit does brainstorming provide when identifying exceptions in a use-case?
What benefit does brainstorming provide when identifying exceptions in a use-case?
Signup and view all the answers
In the context of a use-case, what does the term 'validation function' refer to?
In the context of a use-case, what does the term 'validation function' refer to?
Signup and view all the answers
What should a use-case template include after the narrative form is written?
What should a use-case template include after the narrative form is written?
Signup and view all the answers
Study Notes
Software Requirements Engineering
- Software requirements engineering is about understanding what the customer wants in a software system.
- This involves understanding how end users will interact with the software, what the software should process, the technical environment of the system, and how the software fits into business processes.
Requirements Engineering is the First Task
- Requirements engineering is the first task in the software development process.
- It involves analysis, design, development, and testing phases.
Requirements Engineering
- Inception: Understanding the problem, the people who want a solution, and the nature of the desired solution involves preliminary communication and collaboration between the customer and developer.
- Elicitation: Gathering requirements from all stakeholders.
- Elaboration: Creating a model that identifies data, function, and behavioral requirements.
- Negotiation: Agreement on a realistic deliverable system between developers and customers.
Requirements Engineering Specification
- Specification: Can be a written document, a set of models, formal mathematical analysis, a collection of user scenarios (use cases), or a prototype.
- Validation: A review mechanism to look for errors in content or interpretation, areas needing clarification, missing information, and inconsistencies.
Inception
- Identify stakeholders ("who else do you think I should talk to?").
- Recognize multiple points of view.
- Work toward collaboration.
- The first questions: who is behind the request, who will use the solution, what is the expected benefit of a successful solution, is there another source for the solution.
Eliciting Requirements
- Meetings are attended by both software engineers and customers to establish rules and a meeting agenda.
- A facilitator (customer, developer, or outsider) controls the meeting.
- Definition mechanisms (work sheets, flip charts, wall stickers, electronic bulletin board, chat room or virtual forum) are used to identify the problem, propose solution elements, negotiate different approaches, and specify preliminary solution requirements.
Elicitation Work Products
- A statement of need and feasibility.
- A statement of scope for the system or product.
- A list of customers, users, and other stakeholders who participated in the elicitation process.
- A description of the system's technical environment.
- A list of requirements (organized by function) and domain constraints.
- Usage scenarios showing system usage.
- Prototypes to define requirements.
Quality Function Deployment
- Function deployment: Determines the value (as perceived by customers) of each function required from the system.
- Information deployment: Identifies data objects and events.
- Task deployment: Examines the behavior of the system.
- Value analysis: Determines the relative priority of requirements.
Non-Functional Requirements
- Non-Functional Requirements (NFR) are quality attributes, performance attributes, or general system constraints.
- A two-phase process determines compatible NFRs.
- Phase one: Create a matrix with NFRs as columns, and system SE guidelines as rows.
- Phase two: Prioritizes each NFR using rules to determine whether NFRs and guidelines are complementary, overlapping, conflicting, or independent.
Use-Cases
- A collection of user scenarios that describe the usage thread of a system.
- Each scenario considers the actor's perspective—a person or device interacting with the software.
- Questions include: actor roles, goals, preconditions, tasks, extensions, variations, information exchange, external environment changes, information desired, and reactions to unexpected changes.
Use-Case Diagram
- Depicts the interaction between actors and the system.
- Example actors/use cases: homeowner (accessing system, setting alarm), administrator (reconfiguring).
Building the Analysis Model
- Contains scenario-based elements (functional processing narratives for software functions; descriptions of interactions between actors and the system).
- Contains implied scenarios, behavioral elements (state diagrams), and flow/oriented elements (data flow diagrams).
Eliciting Requirements (Flowchart)
- Elicit requirements (gather information from different stakeholders)
- Conduct FAST meetings (focus on the specific issue or user requirements and how that affects the system)
- Create a list of constraints, functions and classes
- Prioritize requirements using QFD
- Draw use-case diagram to formalize the use-cases
- Define actors and write the scenarios for each use case
Class Diagram (SafeHome system Example)
- Part of the analysis model for the Safe Home system.
- Illustrates classes and attributes like sensor name, id, type, location, characteristics, enable, disable, and reconfigure.
State Diagram
- Shows the state of the system in response to user actions.
- Examples are commands (system ready, enter cmd, status steady), entry/subsystem ready, user input panel, interpreting user input.
Analysis Patterns
- Describes the essence of a pattern (name, intent, motivation, forces, solution, consequences, design, known uses, and related patterns).
Negotiating Requirements
- Identify key stakeholders involved in the negotiation.
- Determine stakeholder "win conditions."
- Negotiate toward "win-win" requirements.
Requirements Monitoring
- Distributed debugging: Identifies and determines the cause of errors.
- Run-time verification: Checks if software conforms to its specification.
- Run-time validation: Assesses if evolving software satisfies user goals.
- Business activity monitoring: Evaluates if the system meets business goals.
- Evolution and codesign: Provides evolving system information to stakeholders.
Validating Requirements (Parts I & II)
- I: Each requirement must align with the overall objective, correctly abstract details and be necessary.
- II: Requirements should be achievable in the system's technical environment, testable, model the information/function/behavior, and be progressively more detailed to expose information about the system. Requirements patterns should be used to simplify the model. All patterns should be properly validated and consistent with customer requirements.
Requirements Analysis
- Specifying software's operational characteristics.
- Showing the interaction of the software with other system elements and establishing constraints.
Elements of Requirements Analysis
- Scenario-based models (use cases, user stories).
- Behavioral models (state diagrams, sequence diagrams).
- Flow models (data flow diagrams).
- Class models (class diagrams).
Requirements Modeling
- Scenario-based: System from the user's point of view.
- Data: How data are transformed within the system.
- Class-oriented: Defines objects, attributes, and relationships.
- Flow-oriented: Shows how data are transformed.
- Behavioral: Impact of events on system states.
A Bridge
- Illustrates the connections between system description, analysis model, and design model.
Rules of Thumb
- Model should focus on visible requirements within the problem domain.
- Each model element adds insight into the systems information domain, function, and behavior.
- Delay consideration of infrastructure until design.
- Minimize couplings.
- Model should provide value to all stakeholders and be simple.
Domain Analysis
- Identifying, analyzing, and specifying common requirements from a specific application domain.
- For reuse across multiple projects in that domain.
Domain Analysis Process
- Define the domain.
- Collect a representative sample of applications (within the domain).
- Analyze each application.
- Develop an analysis model for the objects.
Scenario-Based Modeling
- Use cases as an aid for understanding what exists outside the system and what should be performed by the system.
- Questions: what should be written about, how much, how detailed, and how to organize use case descriptions.
What to Write About?
- Gathering information for writing use cases (inception, elicitation, requirements gathering, QFD, other mechanisms).
- Identifying stakeholders, scoping the problem, defining operational goals and priorities, outlining functional requirements, and describing system elements.
- Listing functions or activities performed by specific actors to facilitate use case development.
How Much to Write About?
- Writing use cases in an informal narrative format initially.
- Use case rewriting using a structured format if more formality is needed.
Use-Cases
- A scenario describing the usage thread of a system, where actors represent roles, and users might have multiple roles in a given scenario.
Developing a Use-Case
- Identifying the main tasks/functions of the actor.
- Describing system information acquisition, production, or change.
- Determining how the external environment will be informed about changes.
- Defining information desired from the system, and the actors reactions to unexpected changes.
Reviewing a Use-Case
- Initial narrative use case description followed by mapping use cases to templates.
- Reviewing and refining primary scenarios to explore possible alternative interactions.
- Checking for possible actor actions, error conditions, and additional behaviors.
Use-Case Diagram (Example - SafeHome)
- Illustrates interactions between a homeowner and the SafeHome system.
- Shows aspects such as camera access, SafeHome configuration parameters, and setting an alarm.
Exceptions
- Describing system unusual behaviors (failures/user choices).
- Deriving exceptions for use cases using brainstorming.
- Finding cases of validation function occurrences for use cases, and when supporting functions don't respond appropriately.
- Considering situations where poor system performance might lead to unexpected, improper usage.
- Possible creation of additional use cases to address exceptions.
Activity Diagram
- Visual representation of the interaction flow within a specific use case scenario.
Swimlane Diagrams
- Visual representation demonstrating the activities of multiple actors in a specific use case.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore the fundamentals of software requirements engineering in this quiz. Learn about the various phases such as inception, elicitation, elaboration, and negotiation as you understand how to accurately capture user needs for software systems. This essential knowledge is critical for success in the software development process.