Requirements Modeling and Analysis

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

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

Questions and Answers

Which of the following statements best encapsulates the primary objective of requirements modeling in software engineering?

  • To outline the project's budget, schedule, and resource allocation, ensuring that the software is delivered on time and within budget.
  • To establish a comprehensive and unambiguous representation of the customer's needs, facilitating effective communication and validation throughout the software development lifecycle. (correct)
  • To create a detailed software design specification that can be directly translated into code, minimizing ambiguity and ensuring efficient implementation.
  • To develop a set of test cases that fully exercise the software, ensuring that all requirements are met and that the software is of high quality.

In scenario-based modeling, a formal use case invariably incorporates implementation details to ensure developers have sufficient information for design.

False (B)

Explain the rationale behind prioritizing 'what' over 'how' during the analysis modeling phase in software engineering.

Prioritizing 'what' over 'how' in analysis modeling ensures the focus is on understanding and defining the system's requirements from the user's perspective, leading to a clear and validated set of needs before considering specific implementation strategies.

Within UML, a ______ provides a standardized method for extending an existing model for particular domains or platforms.

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

Match the following requirements modeling activities with their corresponding artifact:

<p>Elicitation = Gathering information Analysis = Understanding information Specification = Documenting information Validation = Testing information</p>
Signup and view all the answers

What fundamental purpose does a CRC (Class-Responsibility-Collaborator) card serve during object-oriented requirements modeling?

<p>It serves as a lightweight artifact for exploring and defining a class's responsibilities and its interactions with other classes to fulfill those responsibilities. (D)</p>
Signup and view all the answers

The analyst using a grammatical parse will identify all of the verbs as legitimate operations for the objects.

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

Elaborate on the significance of 'system coupling' in the context of software requirements modeling and its potential implications on system design and maintenance.

<p>System coupling describes the ways elements of the software are interconnected. It has design implications as changes in one module could affect another. It can affect maintainability as modifications must account for interdependencies.</p>
Signup and view all the answers

The requirements model must primarily achieve three objectives including to describe what the customer requires, to establish a basis for the creation of a ______ design and to define a set of requirements that can be validated once the software is built.

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

Associate each UML diagram with its corresponding use in requirements modeling:

<p>Activity Diagram = Represents the processing flow within a specific scenario or use case. Sequence Diagram = illustrates how events cause flow from one object to another as a function of time. State Diagram = Represents the active states for each class and the events that cause changes between these active states. Use Case Diagram = Shows the relations among the use cases in the usage scenario.</p>
Signup and view all the answers

In the context of defining analysis classes, what is the primary differentiation between a class in the 'solution space' versus a class in the 'problem space'?

<p>Solution space classes are required to implement a specific solution, while problem space classes are necessary only to describe the problem. (C)</p>
Signup and view all the answers

The primary objective of behavioral modeling is to define the static structure of the system, focusing on class relationships and attribute definitions.

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

Explain the trade-offs between using informal narratives and formal, structured formats for documenting use cases in requirements modeling.

<p>Informal narratives are easy to create initially, but lack in completeness. Formal structure is more detailed with clear sections, but can be difficult to form.</p>
Signup and view all the answers

In state diagrams, the guard for a transition depends on the passive ______ of the object.

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

Correspond the types of models to their descriptions.

<p>Scenario-Based Model = Describes software functions and usage. Class-based model = Represents objects that the system will manipulate. Behavioral Model = Depicts how the software reacts to internal or external events.</p>
Signup and view all the answers

Within the context of anomaly or exception handling during use case development, under what condition should an identified exception be formally incorporated into the description of a use case?

<p>When the software can reliably detect the described condition and is equipped to handle it appropriately. (A)</p>
Signup and view all the answers

Data modeling and flow-oriented modeling are considered the most popular requirements modeling techniques.

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

Explain how abstraction in requirements modeling is essential in effectively bridging the gap between high-level stakeholder expectations and the low-level implementation of software systems.

<p>Abstraction facilitates communication among stakeholders by representing complex system aspects in a simplified manner. It enables focusing on essential details while deferring lower-level implementation decisions until later phases.</p>
Signup and view all the answers

The behavior of computer software is driven by interaction with the external ______.

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

Associate the following terms with the concepts.

<p>Actors = Interact with a system object. UML profile = extends an existing model to platforms. Use case = a contract of behavior.</p>
Signup and view all the answers

During the refinement of preliminary use cases, what is the most significant reason for evaluating each step in the primary scenario by asking 'Can the actor take some other action at this point?'?

<p>To identify all possible alternative interactions, enabling a more complete understanding of the function being described in the use case. (C)</p>
Signup and view all the answers

If a model developed early in a requirements analysis phase of a project are not referred to during the design and implementation phases, they are worth updating.

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

Describe the purpose of a "processing narrative" in the context of early-stage requirements modeling, and elucidate how it differs from a conventional use case.

<p>A processing narrative provides an overview of the function to be developed. Compared to a use case, it describes overall functionality instead of one user's scenario.</p>
Signup and view all the answers

The 'essence' of the problem describing requirements modeling is from the ______ perspective.

<p>end-user's</p>
Signup and view all the answers

Associate each requirement type with a description

<p>Operational Characteristics = Indicates the software's interface with other system elements Interface = Specifies software's interface with other system elements Constraints = Specifies limits that software must meet.</p>
Signup and view all the answers

When developing a UML state diagram for a class in a real-time embedded system, what is the most critical consideration in defining the 'guard' condition for a state transition?

<p>Minimizing the computational complexity of the guard condition such that it introduces negligible overhead to the system's real-time performance. (B)</p>
Signup and view all the answers

The best method to use to show how system elements respond to internal events is a state diagram.

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

Describe the process by which a well-structured requirements model facilitates the transition from abstract system goals to concrete architectural, interface, and component-level designs in software.

<p>A well-structured model decomposes abstract goals into specific functions and behaviors. This allows for the design.</p>
Signup and view all the answers

During CRC modeling, ______ are the attributes and are the relevant class.

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

Designate models with their roles.

<p>Data Models = depicts information domain for the problem. Class-Oriented Models = represents object-oriented classes. Flow-Oriented Models = represents functional elements of the system.</p>
Signup and view all the answers

In the context of UML activity diagrams, particularly when applied to modeling complex business processes, what is the primary advantage of employing swimlanes?

<p>Swimlanes clearly delineate responsibilities by visually partitioning activities according to the actors or components responsible for their execution. (D)</p>
Signup and view all the answers

An event is the event that has been exchanged between system and agent.

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

Describe in detail the role and importance of 'nonfunctional requirements' and what makes them unique in comparison to functional requirements.

<p>Nonfunctional requirements specify 'how' well system functions. They set conditions, and quality of the system. Functional specifics 'what' system should do.</p>
Signup and view all the answers

Requirements ______ combines three steps: scenario-based modeling, class modeling, and behavioral modeling.

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

Select the analysis models with roles

<p>Functional = addresses two application processing elements Procedural = the UML activity diagram can be used to represent processing details. Behavioral = indicates how software will respond to internal or external events</p>
Signup and view all the answers

What primary benefit is derived from applying a 'divide-and-conquer' strategy during requirements modeling for complex systems?

<p>It simplifies the task of understanding and managing complex problems by decomposing them into smaller, more manageable subproblems. (D)</p>
Signup and view all the answers

If different statements of the problem cause different accept or reject decisions, then the potential classes may be accepted or rejected for those differences.

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

Distinguish between a passive state and an active state of an object being modeled in the context of behavioral modeling.

<p>Passive state is current values assigned to an objects attributes. An active state indicates the status of the object as it undergoes transformation.</p>
Signup and view all the answers

An exception describes a ______ that causes the system to exhibit somewhat different behavior.

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

Connect the terms with definition

<p>Requirements analysis = results in the specification of software’s operational characteristics Inception and elicitation = provide the information you’ll need to begin writing use cases Sequence Diagram = Shorthand version of the use case</p>
Signup and view all the answers

Flashcards

Requirements Model

The technical representation of a system; a set of models.

Requirements Modeling

A technique using text and diagrams to depict requirements for review and validation.

Modeling Tasks

The initial stage of software engineering leading to requirement specifications and design.

Requirements Modeling Steps

A method that combines scenario-based, class-based, and behavioral modeling.

Signup and view all the flashcards

Usage Scenarios

Stories describing system functions and usage. Often referred to as use cases.

Signup and view all the flashcards

Reviewing Work Products

Ensuring the models are correct, complete, and consistent.

Signup and view all the flashcards

Requirements analysis

Understanding software's operational characteristics and constraints.

Signup and view all the flashcards

Scenario-based models

Models based on interaction viewpoints.

Signup and view all the flashcards

Class-oriented models

Models based on objects, attributes, operations, and collaboration.

Signup and view all the flashcards

Behavioral models

Models showing software reactions to internal/external events.

Signup and view all the flashcards

Data models

Models depicting information flow.

Signup and view all the flashcards

Flow-oriented models

Models of the system's functional elements.

Signup and view all the flashcards

Analysis Focus

Focusing on 'what', not 'how' occurs in the system.

Signup and view all the flashcards

Requirements model objectives

Describes what the customer needs, creates a foundation for design, and defines requirements for validation.

Signup and view all the flashcards

Analysis Rules of Thumb

Focus on business problems, keep abstraction levels high, and seek domain insight.

Signup and view all the flashcards

Information Domain

Domain of a problem must be represented and understood.

Signup and view all the flashcards

Software Functions

Functions that provide direct benefit to end-users.

Signup and view all the flashcards

Models that Uncover Detail

Partition models to find detail in layers.

Signup and view all the flashcards

Analysis task

Shift from essential information towards implementation details.

Signup and view all the flashcards

Scenario-Based Modeling

Modeling approach that uses use cases, activity diagrams, and sequence diagrams.

Signup and view all the flashcards

UML Actor

An entity that interacts with a system object.

Signup and view all the flashcards

Creating Use Cases

Summarizing stakeholders' prospective on system interaction.

Signup and view all the flashcards

Developing Use Cases

Functions performed by a specific actor derived from system functions.

Signup and view all the flashcards

Narrative Use Case Variation

Sequentially ordered user actions.

Signup and view all the flashcards

Secondary Scenarios

Alternative interactions or error conditions in use cases.

Signup and view all the flashcards

Use Case Exception

Situation causing the system to exhibit somewhat different behavior.

Signup and view all the flashcards

Goal in Context

Identifies the overall scope of a use case

Signup and view all the flashcards

Use Case Diagram

Relates the relations among the use cases in the usage scenario

Signup and view all the flashcards

Identifying analysis classes

identifying classes by examining the usage scenarios.

Signup and view all the flashcards

Analysis Classes

Nouns must be isolated.

Signup and view all the flashcards

Attributes

Describes the class clarifies

Signup and view all the flashcards

Operations

Defines an objects' behavior

Signup and view all the flashcards

Associations

Class is related to one another

Signup and view all the flashcards

CRC

Provides a simple means for identifying the classes

Signup and view all the flashcards

Behavioral Modelling

To indicate how software will respond to internal or external responses.

Signup and view all the flashcards

UML

Whenever event occurs when systems need to exchange information.

Signup and view all the flashcards

Analysis' key

An analysis rule of thumb?

Signup and view all the flashcards

Study Notes

  • Requirements modeling employs text and diagrams for depicting requirements.
  • This provides clarity, ease of understanding, and facilitates reviews for correctness, completeness, and consistency.
  • A software engineer or analyst constructs these models from stakeholder-provided requirements.
  • Requirements models aid in early feedback and serve as the basis for software design.
  • It comprises scenario-based, class, and behavioral modeling.
  • Work products include use cases for software functions and UML diagrams for system behavior.
  • Ensure the models undergo reviews for correctness, completeness, and consistency.

Requirements Analysis

  • This specifies software's operational characteristics
  • It defines the software's interface with other system elements
  • It establishes software constraints
  • It elaborates on basic requirements
  • It involves inception, elicitation, and negotiation
  • It generates scenario-based, class-oriented, behavioral, data, and flow-oriented models.
  • These models enable software designers to translate requirements into architectural, interface, and component-level designs.
  • The model also facilitates quality assessment after the software is built.

Analysis Focus

  • Focus on what needs to be done, not how to do it
  • Address user interactions, manipulated objects, system functions, behaviors, defined interfaces, and applicable constraints

Evolutionary Approach

  • Requirements specifications may be incomplete initially
  • An iterative approach to requirements analysis and modeling is favored

Modeling Requirements

  • Should only create the models that will be used by the development team
  • Analysis models helps to create the base design for the software increment

Key Objectives

  • Describe customer requirements
  • Establish a basis for software design
  • Define requirements for validation
  • Models bridge system-level descriptions of functionality and business functions with software design elements.

Key Qualities

  • Model elements must be directly traceable to design model parts.
  • There is a division between analysis and design but they can occur together

Rules of Thumb for Analysis Modeling

  • Focus on the problem or business domain.
  • Keep the abstraction level high.
  • Analysis must provide insight into the information domain, function, and software behavior.
  • Software architecture and nonfunctional details should be delayed until later.
  • Be aware of how software elements interconnect.
  • Models should be valuable to stakeholders and simple without sacrificing clarity.

Principles for Requirements Modeling

  • The information domain of a problem must be represented and understood.
  • Software functions must be defined.
  • Software behavior must be represented.
  • Models must be partitioned to uncover detail in a layered fashion,
  • Move from essential information towards implementation details

Scenario-Based Modeling

  • User satisfaction is top priority for computer-based systems
  • The software team should properly characterize requirements and build meaningful analysis and design models.
  • It begins with use case diagrams, activity diagrams, and sequence diagrams

Actors and User Profiles

  • UML actors model entities that interact with a system
  • Actors represent human stakeholders or external hardware roles exchanging information with system objects.
  • A single physical entity can be portrayed by multiple actors if it takes on different roles for different system functions.
  • UML profiles extends existing models to other domains or platforms, allowing revision for Web-based and mobile systems, and viewpoints from different users such as system administrators versus end users.

Creating Use Cases

  • User stories summarize stakeholders' perspectives but lack precision, so developers need use cases for clear interaction descriptions.
  • A use case defines how an actor uses a system to achieve a goal, capturing interactions between information producers and consumers.
  • Inception and elicitation provide information for writing use cases, while requirements gathering identifies stakeholders, scopes, goals, priorities, functional requirements, and manipulated objects.
  • To develop use cases, list functions or activities performed by an actor from system functions, conversations, or activity diagrams.
  • It can be written in an informal narrative or as an ordered sequence of user actions.

Scenarios

  • Use cases of this type are called primary scenarios
  • Alternative interaction descriptions gives complete function understanding

Reviewing Scenarios

  • Important questions to check include.
  • Can the actor can take some other action at this point?
  • Is it possible that the actor will encounter some error condition at this point?
  • Is it possible that the actor will encounter some other behavior at this point?
  • These result in secondary scenarios representing alternative behaviors.

Addressing Error Conditions

  • Error conditions can be related to computer-based operation
  • Secondary scenarios should be directly related to the action from steps 6 and 7

Alarm Conditions

  • Not integrated with current action set
  • A secondary scenario for describing alarm conditions occuring can be integrated

Use Case Exceptions

  • Situations that represent failures or alternative actions by actors leading to different behaviors

Exception Rationalization

  • Is when the system can detect and handle the condition in the exception

Identifying Extensions

  • Additional questions for uncovering exceptions include.
  • Are there cases in which some “validation function” occurs during this use case?
  • Are there cases in which a supporting function (or actor) will fail to respond appropriately?
  • Poor system performance can result in unexpected or improper user actions?

Documenting Use Cases

  • Informal use cases are sufficient for requirements modeling
  • For critical activities, a more formal approach may be desirable when there are many exceptions

Formal Use Cases

  • Typical format is:
    • Goal in context: Identifies the overall scope of the use case
    • Precondition: Describes what is known to be true before the use case is initiated
    • Trigger: Identifies the event or condition that "gets the use case started"
    • Scenario: Lists the specific actions required by the actor and appropriate system responses
    • Exceptions: Identifies situations uncovered during use case refinement
  • Additional headings included may be self-explanatory

UML use case diagram

  • Diagrammatic representation of use case facilitate better understanding by all stakeholders, particularly when the scenario is complex
  • It helps relationships within the usage scenario
  • Each is represented by an oval.

Class-Based Modeling

  • Classes are physical objects that can be easily identified, classified, and defined in terms of attributes and operations
  • They are more difficult to comprehend in a software application

Identifying Analysis Classes

  • Examine usage scenarios developed as part of the requirements model.
  • Perform a grammatical parse on the use cases developed for the system.
  • Classes are determined by underlining each noun or noun phrase and entering it into a simple table
  • Synonyms should be noted.
  • If the class (noun) is required to implement a solution, then it is part of the solution space
  • If a class is necessary only to describe a solution, it is part of the problem space.

Analysis Classes

  • Manifest in one of the following ways
    • External entities that produce or consume information used by a computer-based system
    • Things that are part of the information domain for the problem
    • Occurrences or events that occur within the context of system operation
    • Roles played by people who interact with the system
    • Organizational units that are relevant to an application
    • Places that establish the context of the problem and the overall function of the system
    • Structures that define a class of objects or related classes of objects.

Selection Characteristics

  • Useful for consideration for inclusion to analysis model
    • Retained information: The potential class will be useful during analysis only if information about it must be remembered so that the system can function
    • Needed Services: The potential class must have a set of identifiable operations that can change the value of its attributes in some way
    • Multiple attributes: During requirement analysis, the focus should be on "major” information. A class with a single attribute may, in fact, be useful during design but is probably better represented as an attribute of another class during the analysis activity
    • Common attributes: A set of attributes can be defined for the potential class, and these attributes apply to all instances of the class
    • Common operations: A set of operations can be defined for the potential class, and these operations apply to all instances of the class
    • Essential requirements: External entities that appear in the problem space and produce or consume information essential to the operation of any solution for the system will almost always be defined as classes in the requirements model.

Attributes

  • Describes a class that has been selected for inclusion in the analysis model.
  • It is the attributes that define the class—that clarify what is meant by the class in the context of the problem space.

Analysis Class Development

  • Study each use case and select those “things” that reasonably "belong” to the class
  • Answer the question: What data items (composite and/or elementary) fully define this class in the context of the problem at hand?

Operations

  • Define the behavior of an object
  • They can generally be divided into four broad categories:
    • Operations that manipulate data in some way
    • Operations that perform a computation
    • Operations that inquire about the state of an object
    • Operations that monitor an object for the occurrence of a controlling event
  • Functions are accomplished by operating on attributes and/or associations
  • An operation must have "knowledge" of the nature of the class attributes and associations

UML Class Models

  • Study information and select operations that reasonably belong to the class
  • The grammatical parse is again studied, and verbs are isolated
  • Some of these verbs will be legitimate operations and can be easily

UML-Relationships

  • Expressed as associations that connect to a specific class

CRC (Class-Responsibility-Collaborator) Modeling

  • Provides a simple means for identifying and organizing the classes that are relevant to system or product requirements

Model Qualities

- CRC model can be viewed as a collection of index cards
- Each index card contains a list of responsibilities on the left side and the corresponding collaborations that enable the responsibilities to be fulfilled on the right side
- Responsibilities are the attributes and operations that are relevant for the class
- Collaborators are those classes that provide a class with the information needed or action required to complete a responsibility

Implementation Qualities

 - Responsibilities can be one of:
    - Fulfillment by itself, so long as it can not interact or need to interact with another class
    - Collaborated through determination of class collaborations

Model Review Approach

  • Participants review through being given a subset of the CRC model index cards
  • Review leader leads through use case deliberately
  • Holder of the class card is the one asked to describe responsibilities
  • The group determines whether the responsibilities satisfies use case
  • Modifications can be made if wrong

Functional Modeling

  • Addresses two application processing elements
    • User observable elements delivered to the app
    • Operations contained within the analysis classes

Implementation details

  • Made through implementing operations within analysis classes

Technical Implementation consideration

  • UML activity diagrams for complex functions
  • Not so much the complexity of the functions themselves

Behavioral Modeling

  • Model to indicated how software will respond to internal or external events or stimuli
  • Help provide design guidance for the system being built
  • Activity diagrams model system to internal
  • State diagrams model system to external

Model Creation

  • steps include evaluation, identification, creation, building, and review
  • Evaluate all use cases for proper interaction
  • Identify events that drive interaction
  • Create sequence for use case
  • Build state diagram
  • Review behavioral model

Identifying Events

  • From use case, events occur when the system and actor exchange information

Describing Events

  • Identify
    • actor for each event
    • what information is being exchanged
    • Any conditions and constraints

States for model implementation

  • Passive: current values of assigned objects
  • Active : indicates the status of continuing transformation

Actions (trigger)

  • Forces object to make a transition from one state to another

State implementation

UML Diagrams

  • A way to represent states and events for classes
  • Arrows represent transitions from states
  • State models are useful (life history of model), depth of understanding the behavior of the model
  • Model event must be specified to show action to be carried out

UML Activity Diagrams

  • supplements the use case
  • Graphical representation of flow of interaction within scenario
  • Engineers can describe activity diagrams as a way of representing system reactions

Activity

can add additional detail that is implcit through use

  • Decision diamond

Swimlane

A variation for activity diagram,

  • to represent the flow through the use of activities through cases and indicates actors

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 Modeling Techniques
12 questions

System Modeling Techniques

SufficientIrrational avatar
SufficientIrrational
System Modeling and Boundaries
47 questions
Requirements Determination and UML Modeling
20 questions
Use Quizgecko on...
Browser
Browser