Podcast
Questions and Answers
What is the primary role of boundary classes in software design?
What is the primary role of boundary classes in software design?
Which statement best describes the responsibilities of controller classes?
Which statement best describes the responsibilities of controller classes?
How should system intelligence be organized across classes?
How should system intelligence be organized across classes?
What is a key requirement for fulfilling responsibilities within classes?
What is a key requirement for fulfilling responsibilities within classes?
Signup and view all the answers
Which relationship identifies that one class relies on another class to function?
Which relationship identifies that one class relies on another class to function?
Signup and view all the answers
What is the purpose of use-cases in the context of a WebApp?
What is the purpose of use-cases in the context of a WebApp?
Signup and view all the answers
When is explicit analysis particularly necessary in Web and Mobile App development?
When is explicit analysis particularly necessary in Web and Mobile App development?
Signup and view all the answers
What does Configuration Analysis describe in relation to a WebApp?
What does Configuration Analysis describe in relation to a WebApp?
Signup and view all the answers
What are content objects in a WebApp derived from?
What are content objects in a WebApp derived from?
Signup and view all the answers
How are relationships between content objects defined?
How are relationships between content objects defined?
Signup and view all the answers
When does the analysis activity become more explicit in WebApp development?
When does the analysis activity become more explicit in WebApp development?
Signup and view all the answers
What is a key element of analyzing use-cases?
What is a key element of analyzing use-cases?
Signup and view all the answers
What are attributes primarily used for in requirement analysis?
What are attributes primarily used for in requirement analysis?
Signup and view all the answers
Which of the following best describes the function of operations in requirement analysis?
Which of the following best describes the function of operations in requirement analysis?
Signup and view all the answers
What is an example of essential requirements in a requirements model?
What is an example of essential requirements in a requirements model?
Signup and view all the answers
In defining operations, what is one of the four broad categories mentioned?
In defining operations, what is one of the four broad categories mentioned?
Signup and view all the answers
Which statement about attributes and operations in requirement analysis is incorrect?
Which statement about attributes and operations in requirement analysis is incorrect?
Signup and view all the answers
What is the primary purpose of software patterns in requirements modeling?
What is the primary purpose of software patterns in requirements modeling?
Signup and view all the answers
What is a semantic analysis pattern (SAP)?
What is a semantic analysis pattern (SAP)?
Signup and view all the answers
Which statement correctly describes the process of discovering patterns?
Which statement correctly describes the process of discovering patterns?
Signup and view all the answers
What is included in content analysis for WebApps?
What is included in content analysis for WebApps?
Signup and view all the answers
Why is the coherent set of use cases important in requirements modeling?
Why is the coherent set of use cases important in requirements modeling?
Signup and view all the answers
In the context of software requirements modeling, what does domain knowledge refer to?
In the context of software requirements modeling, what does domain knowledge refer to?
Signup and view all the answers
What role does data modeling play in developing WebApps?
What role does data modeling play in developing WebApps?
Signup and view all the answers
How can patterns from one application domain be utilized?
How can patterns from one application domain be utilized?
Signup and view all the answers
Study Notes
Lecture 4 Software Requirements Analysis II
- Requirements Modeling: Class-Based Methods are discussed.
- This lecture is part of a larger text, "Software Engineering: A Practitioner's Approach, 8/e" (McGraw-Hill, 2014).
Requirements Modeling Strategies
- Structured analysis views requirements modeling as separate data and processes transforming data.
- Data objects are modeled by their attributes and relationships.
- Processes handle data transformations.
- Object-oriented analysis defines classes and their collaborations.
Class-Based Modeling
- Class-based modeling focuses on system objects, including operations (manipulating objects), and relationships.
- Collaborations occur between classes for better functionality.
- Class-based models include classes, objects, attributes, operations, CRC models, collaboration diagrams, and packages.
Identifying Analysis Classes
- Examining usage scenarios and a grammatical parse are used to identify classes.
- Classes are found by underlining nouns and nouns phrases.
- Synonyms for nouns/phrases should be noted.
- Classes needed to implement solutions are solution-space classes.
- Classes for describing solutions are problem-space classes.
Manifestations of Analysis Classes
- External entities (e.g., systems, devices, people) that produce/consume information.
- Things (e.g., reports, signals) in the information domain.
- Occurrences (e.g., events, robot movements) in system operation.
- Roles (e.g., manager, engineer) played by interacting people.
- Organizational units (e.g., departments).
- Places (e.g., manufacturing sites)
- Structures (e.g. components, computers)
Potential Classes
- Retained information: Essential for system function, useful during analysis.
- Needed services: Operations changing class attributes in some way.
- Multiple attributes: Focus on major information; single attributes may describe another class.
- Common attributes/operations: Apply to all instances, important for class definition.
- Essential requirements: External entities for system operation are often classes.
Defining Attributes
- Attributes describe classes for inclusion in the analysis model.
- Examples (from the given slides): baseball player attributes, pension fund attributes.
Defining Operations
- Grammatical parse of processing narratives identifies operations.
- Operations categorized are: data manipulation, computation, object inquiries/status checks, and monitoring object events.
CRC Models
- Class-Responsibility-Collaborator (CRC) modeling identifies classes relevant to system requirements.
- A CRC model uses index cards for classes, responsibilities, and collaborators.
CRC Modeling: Example
- Example of a
FloorPlan
class shows its responsibilities and collaborators.
Class Types
- Entity classes (model classes) are described directly from the requirements statement, useful for system structure.
- Boundary classes provide an interface between the system and its users (e.g., interactive screens).
- Controller classes manage complex actions (including updates to entity objects).
Responsibilities
- System intelligence should be distributed, stating each responsibility as clearly as possible.
- Related information and operations should reside within the same class.
- Responsibilities should be shared where classes are related.
Collaborations
- Classes fulfill responsibilities by using their own operations or collaborations with other classes.
- Classes collaborate based on different identified relationships, which are
is-part-of
,has-knowledge-of
, ordepends-upon relationships
.
Composite Aggregate Class
- Visualization diagram of a Player, whose sub-classes are
PlayerHead
,PlayerBody
,PlayerArms
, andPlayerLegs
.
Reviewing the CRC Model
- All participants in review should have specific parts of the CRC model.
- Collaborating classes should be separated.
- Use-case scenarios and diagrams should be categorized.
- Review should use an approach that guides participants to fully describe the responsibilities.
Associations and Dependencies
- Analysis class associations describe inter-class relationship.
- An example would be
client-server
classes with adependency
relationship.
Multiplicity
- Visualization diagram showing
multiplicity
relationships forWall
,WallSegment
,Window
, andDoor
.
Dependencies
- Visualization diagram of
dependency
(<<access>> {password}
) for classesDisplayWindow
andCamera
.
Analysis Packages
- Categorization of analysis model elements (e.g., use cases and analysis classes).
- Packages use plus (+), minus (-), and hash (#) symbols for external visibility, hiding, or accessing internal elements.
- Illustration of the
Environment
andRulesOfTheGame
packages with associated classes.
Behavioral Modeling
- The behavioral model describes system responses to external events, showing the steps for creating such a model.
- Evaluating use-case scenarios to understand step-by-step interactions within the system.
- Identifying the events that drive these interactions and showing how events are related to system objects.
- Creating sequence diagrams for each use case.
- Building state diagrams to visualize system states and transitions.
- Revising the behavioral model for accuracy and consistency.
State Representations
- Different state characterizations in behavioral modeling: state or each class and the overall system.
- A passive state is the current status of an object's attributes.
- An active state describes the ongoing transformations or processing of an object.
State Diagram for the ControlPanel Class
- Visualization of states and transitions for a control panel class.
The States of a System
- Definitions: state, state transition, event, and action.
Behavioral Modeling- steps
- Listing system states.
- Indicating transitions between states.
- Defining the transitions' events or actions.
- Drawing state diagrams or sequence diagrams to describe behaviors.
Sequence Diagram
- Visualization diagram showing sequences or interactions between elements (e.g.,
homeowner
andcontrol panel
).
Writing the Software Specification
- The need to document all details explicitly, using models as needed.
Patterns for Requirements Modeling
- Describing software patterns, including how they capture domain knowledge and provide re-useability.
- Applying patterns by analogy in new scenarios
- Describing how requirements patterns are discovered during work.
Discovering Analysis Patterns
- Use cases as foundational elements for requirements modeling.
- Sets of use cases may indicate analysis patterns.
- Semantic analysis pattern (SAP) describes coherent use cases for certain applications.
Requirements Modeling for WebApps
- Analysis aspects for WebApps (content, interaction, and functionality).
- Showing how analysis of content, interaction, and function are used in WebApp contexts.
- Importance of configuration for describing the environment and infrastructure.
When Do We Perform Analysis?
- Conditions trigger explicit analysis of Web/Mobile app design, including situations about size, complexity, number of stakeholders, and experience with team members.
- The impact of app success on business success.
The Content Model
- Identifying content objects from use cases, describing attributes and relationships.
The Data Model
- Visualization as a data tree with connections from components to data objects, attributes.
The Interaction Model
- Describing the interaction model components (use cases, sequence diagrams, state diagrams, and user interface prototypes) used in defining the flow of interactions with the WebApp.
Sequence Diagram
- Visualization diagram of sequences of interactions (e.g., new customer actions described).
State Diagram
- Visualization of detailed states and transitions of a new customer.
The Functional Model
- Overview of the functional aspects of the WebApp.
- Identification of the elements that are useful from a user perspective.
- Using activity diagrams to show the processing flow.
Activity Diagram
- Visualization diagram showing specific actions (e.g., initializing a total cost, applying discounts).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Test your knowledge on the fundamental concepts of WebApp development, including the roles of boundary and controller classes, the importance of use-cases, and the organization of system intelligence across classes. This quiz will help you understand key terms and analysis techniques relevant to creating efficient web applications.