Podcast
Questions and Answers
What is an example of an identifying attribute for the Customer object in an online store system?
What is an example of an identifying attribute for the Customer object in an online store system?
- ProductID
- TotalPrice
- OrderItems
- CustomerID (correct)
How is generalization used in the analysis model?
How is generalization used in the analysis model?
- To remove common attributes from superclasses.
- To consolidate shared attributes and behavior into a superclass. (correct)
- To create more specific subclasses without shared attributes.
- To enhance the redundancy of attributes across classes.
Which of the following attributes is NOT associated with the Payment object?
Which of the following attributes is NOT associated with the Payment object?
- OrderID
- Amount
- StockQuantity (correct)
- TransactionID
What characterizes the Requirement Analysis Document (RAD) once it is published?
What characterizes the Requirement Analysis Document (RAD) once it is published?
What is a common characteristic of the analysis model during its development?
What is a common characteristic of the analysis model during its development?
What is the main objective of the analysis process in system development?
What is the main objective of the analysis process in system development?
Which of the following is NOT a common source of difficulties in requirements gathering?
Which of the following is NOT a common source of difficulties in requirements gathering?
Which of the following is best used to observe user interactions with a system?
Which of the following is best used to observe user interactions with a system?
What is likely a consequence of including unneeded features in a system?
What is likely a consequence of including unneeded features in a system?
What are boundary objects primarily responsible for in analysis?
What are boundary objects primarily responsible for in analysis?
Which of the following describes the role of control objects in system analysis?
Which of the following describes the role of control objects in system analysis?
Why is analysis considered a difficult process?
Why is analysis considered a difficult process?
Which tool is often used for gathering data about a system through direct user feedback?
Which tool is often used for gathering data about a system through direct user feedback?
What do entity objects primarily represent in a system?
What do entity objects primarily represent in a system?
Which of the following is NOT a characteristic of boundary objects?
Which of the following is NOT a characteristic of boundary objects?
What is the primary function of control objects in a system?
What is the primary function of control objects in a system?
How does the Entity-Control-Boundary (ECB) pattern benefit application design?
How does the Entity-Control-Boundary (ECB) pattern benefit application design?
What kind of diagrams represent the analysis object model?
What kind of diagrams represent the analysis object model?
Which object type is responsible for ensuring the integrity of their data over time?
Which object type is responsible for ensuring the integrity of their data over time?
What aspect do dynamic models represent in system analysis?
What aspect do dynamic models represent in system analysis?
Which object type is most likely to profile a user's interactions in a system?
Which object type is most likely to profile a user's interactions in a system?
What does multiplicity in an association model indicate?
What does multiplicity in an association model indicate?
Which association type has a multiplicity of 1 on each end?
Which association type has a multiplicity of 1 on each end?
Which of the following reduces multiplicity by using keys?
Which of the following reduces multiplicity by using keys?
What is the hierarchical structure created through generalization?
What is the hierarchical structure created through generalization?
What is the fundamental step in object-oriented analysis from use cases?
What is the fundamental step in object-oriented analysis from use cases?
Which multiplicity indicates that there can be many links on both ends of an association?
Which multiplicity indicates that there can be many links on both ends of an association?
In the context of association models, why are qualifications important?
In the context of association models, why are qualifications important?
Why is collaboration with stakeholders essential during the transition from use cases to objects?
Why is collaboration with stakeholders essential during the transition from use cases to objects?
What role does the OrderProcessor play in an online store scenario?
What role does the OrderProcessor play in an online store scenario?
Which step is NOT part of identifying associations among objects?
Which step is NOT part of identifying associations among objects?
What indicates a relationship between objects in a use case description?
What indicates a relationship between objects in a use case description?
Which entity is responsible for confirming the order in the online store process?
Which entity is responsible for confirming the order in the online store process?
What type of association involves objects depending on each other?
What type of association involves objects depending on each other?
What is the primary purpose of a sequence diagram?
What is the primary purpose of a sequence diagram?
Which of the following represents a key action between OrderProcessor and Payment?
Which of the following represents a key action between OrderProcessor and Payment?
What is the first step in systematically identifying associations?
What is the first step in systematically identifying associations?
What type of association occurs when one object knows about or interacts with another object?
What type of association occurs when one object knows about or interacts with another object?
Which of the following best describes a Bidirectional Association?
Which of the following best describes a Bidirectional Association?
How does Multiplicity define the relationship between objects?
How does Multiplicity define the relationship between objects?
What is the distinction between Aggregation and Composition in object relationships?
What is the distinction between Aggregation and Composition in object relationships?
What is the role of dependency in object associations?
What is the role of dependency in object associations?
Which of the following statements about UML Class Diagrams is true?
Which of the following statements about UML Class Diagrams is true?
What does CRUD Analysis help determine in relation to an object's attributes?
What does CRUD Analysis help determine in relation to an object's attributes?
What is indicated by defining attribute types like Integer, Float, or String?
What is indicated by defining attribute types like Integer, Float, or String?
Flashcards
What is Analysis?
What is Analysis?
The process of understanding what a system needs to do to meet user requirements.
Analysis Model
Analysis Model
A model that focuses on describing WHAT the system does, not HOW it does it.
Incomplete Requirements
Incomplete Requirements
Incomplete requirements happen when essential information about the system is missing.
Unneeded Features
Unneeded Features
Signup and view all the flashcards
Entity Objects
Entity Objects
Signup and view all the flashcards
Boundary Objects
Boundary Objects
Signup and view all the flashcards
Control Objects
Control Objects
Signup and view all the flashcards
Analyst Tools
Analyst Tools
Signup and view all the flashcards
What are Models?
What are Models?
Signup and view all the flashcards
How are models represented?
How are models represented?
Signup and view all the flashcards
What is ECB Pattern?
What is ECB Pattern?
Signup and view all the flashcards
What are Entity Objects?
What are Entity Objects?
Signup and view all the flashcards
What are Boundary Objects?
What are Boundary Objects?
Signup and view all the flashcards
What are Control Objects?
What are Control Objects?
Signup and view all the flashcards
Why is ECB pattern important?
Why is ECB pattern important?
Signup and view all the flashcards
Identifying Attributes
Identifying Attributes
Signup and view all the flashcards
Generalization
Generalization
Signup and view all the flashcards
Interface vs. Control
Interface vs. Control
Signup and view all the flashcards
Control vs. Domain
Control vs. Domain
Signup and view all the flashcards
One-to-One Association
One-to-One Association
Signup and view all the flashcards
One-to-Many Association
One-to-Many Association
Signup and view all the flashcards
Many-to-Many Association
Many-to-Many Association
Signup and view all the flashcards
Qualified Association
Qualified Association
Signup and view all the flashcards
From Use Cases to Objects
From Use Cases to Objects
Signup and view all the flashcards
Sequence Diagram
Sequence Diagram
Signup and view all the flashcards
Association
Association
Signup and view all the flashcards
Identifying Associations
Identifying Associations
Signup and view all the flashcards
Analyze the Domain Model and Use Cases
Analyze the Domain Model and Use Cases
Signup and view all the flashcards
Identify Direct Interactions
Identify Direct Interactions
Signup and view all the flashcards
Classify the Type of Association
Classify the Type of Association
Signup and view all the flashcards
Represent Relationships Visually
Represent Relationships Visually
Signup and view all the flashcards
Object Collaboration
Object Collaboration
Signup and view all the flashcards
Unidirectional Association
Unidirectional Association
Signup and view all the flashcards
Bidirectional Association
Bidirectional Association
Signup and view all the flashcards
Multiplicity
Multiplicity
Signup and view all the flashcards
Aggregation/Composition
Aggregation/Composition
Signup and view all the flashcards
UML Class Diagrams
UML Class Diagrams
Signup and view all the flashcards
Attributes
Attributes
Signup and view all the flashcards
CRUD Analysis
CRUD Analysis
Signup and view all the flashcards
Define Attribute Types
Define Attribute Types
Signup and view all the flashcards
Study Notes
Chapter 5 Analysis
- Analysis is a process of extracting the needs of a system and what the system must do to satisfy user requirements.
- Analysis focuses on understanding the problem and its domain.
- The main objective of analysis is to capture complete, unambiguous, and consistent requirements of the system.
- Analysis models how the system does something rather than focusing on how the system does it.
- Analysis transforms a fuzzy problem definition into a coherent statement of a system's requirements.
Why Analysis is a Difficult Process
- Analysis is a creative activity requiring understanding the problem, its constraints, and methods of overcoming them.
- Common challenges include:
- Incomplete requirements
- Fuzzy descriptions
- Unneeded features
Incomplete Requirements
- Certain requirements for successful system development are sometimes not included due to high costs, internal politics or oversight (by the developer).
Unneeded Features
- Extra features can affect system performance, complexity, maintenance, stability, and support costs.
- Unnecessary features and shortcuts can impact the product negatively.
Tools for Extracting System Information
- Examination of existing system documentation
- Interviews
- Questionnaires
- Observation
Business Object Analysis
- Business Object analysis helps understand the system's requirements and establishes application goals.
- The outcome identifies classes that construct the business layer and their relationships for achieving system goals.
- Understanding user requirements involves analyzing how users "use" the system through use cases.
USE-Case Driven OOA (OO Analysis)
- The OOA phase uses actors and use cases to describe the system from a user's perspective.
- The OOA process involves the following steps:
- Identifying actors
- Developing a business process model using UML Activity diagrams.
- Developing use cases
- Preparing interaction diagrams (sequence and collaboration diagrams)
- Developing a static UML Class Diagram
- Identifying classes
- Identifying relationships
- Identifying attributes
- Identifying methods
- Iterating and refining the preceding steps if necessary
Use-Case Driven Approach: Identifying Classes
- Use case analysis examines use cases to discover objects and classes for the system being developed.
- Scenarios are detailed graphically in interaction diagrams.
- Classes are grouped into packages.
- Class diagrams are constructed.
Analysis (Producing a Model)
- Analysis focuses on producing the system model called the analysis model.
- This model links requirements elicitation, functional and non-functional requirements, and other significant segments of the system design.
Reality and Model
- Reality is the real world, with real things, people, processes, and relationships, measured over time.
- A model is an abstraction of reality, simplified to focus on essential elements, and relationships between them.
- Models help gain insights into past or present realities and predict future outcomes.
Analysis Results: Models
- Analysis results in analysis object models and dynamic models.
- Analysis object models are represented by class and object diagrams.
- Dynamic models are represented by state machine and sequence diagrams.
Entity, Boundary, and Control Objects
- The analysis object model has entity, boundary, and control objects.
- The Entity-Control-Boundary (ECB) pattern organizes classes by their responsibilities within a use case.
- It promotes modularity, reusability, and testability in applications, often used in Model-View-Controller (MVC) or layered architectures.
Entity Objects
- Entity objects represent core business concepts or real-world entities within a system.
- They typically correspond to nouns in the business domain.
- They maintain their state over time and ensure data integrity.
- Entity objects contain attributes and methods directly tied to the business domain.
- Entity objects usually have unique identifiers.
- Entity objects are persistent within a storage system (e.g., database).
- Examples include Customer, Product, Order, Account.
Boundary Objects
- Boundary objects act as intermediaries between systems and their external entities (users or external systems).
- These objects define system interfaces and manage communications.
- They facilitate interactions between the system and actors.
- Often tied to user interfaces, focusing on input and output.
- Examples include User Interface, Database Gateway, a Web Service Client, or File System Accessor.
Control Objects
- Control objects manage the flow of data and interactions between boundary and entity objects.
- They encapsulate use-case-specific logic.
- They coordinate boundary and entity objects for use cases.
- They contain the rules and algorithms that govern the system's behavior.
- Examples are LoginController, OrderProcessor, PaymentController, and ReportGenerator.
Recommended Diagrammatic Conventions for Object Types
- Diagrams use circles for control objects, rectangles for boundary objects, and ovals for entity objects.
Analysis Concepts: Object Types
- Three types of objects (entity, boundary, and control) to create models that are more resilient to changes in the system interface.
- The system interface is more likely to require modifications compared to the control or application of domain objects.
Analysis Concepts: Association Multiplicity
- Modeling with UML uses integers called multiplicity to label the association end.
- Multiplicity indicates the number of permissible and legitimate links from an instance of a class.
- Three types of associations exist: one-to-one, one-to-many, many-to-many.
Analysis Concepts: Qualified Associations
- Qualification reduces multiplicity by using keys to make one-to-many associations easier to understand.
- Objects in the "many" side of the one-to-many association can be distinguished by names.
Analysis Concepts: Generalization
- Generalization organizes concepts into hierarchies.
- The top of the hierarchy is a general concept, the bottom contains specific concepts.
- Multiple intermediate levels exist between the top and bottom, representing more or less generalized concepts.
Analysis Activities: From Use Cases to Objects
- The transition from use cases to objects is a fundamental step in object-oriented analysis.
- This process involves identifying key concepts and relationships within the system.
- Representing key concepts and relationships as objects and their interactions.
- This process is usually iterative, requiring revisions during the analysis phase.
- Collaboration with stakeholders and domain experts is necessary for accuracy.
- Modeling tools like UML can be used for better visualizations.
Analysis Activities: Key components from Use Cases
- Breaking down a use case into key components reveals actors, inputs, outputs, and processes.
- Examples include who interacts with the system ("actor"), data and artifacts passing through the system ("inputs/outputs"), and steps or actions ("processes").
Analysis Activities: Identifying Entity Objects
- Entity objects represent core business concepts and data.
- Analyzing events in use cases helps identify these objects.
- Nouns in use cases often represent domain concepts.
Analysis Activities: Identifying Boundary Objects
- Boundary objects represent the system interface with actors.
- Focuses on communication handling between systems and external actors.
- Identifies inputs, outputs, and points of interaction.
Analysis Activities: Identifying Control Objects
- Control objects coordinate processes, implement logic, and mediate between boundary and entity objects.
- Looking for verbs or actions that describe tasks in the use case helps identify control objects.
Analysis Activities: Mapping Use Cases to Objects
- Associate use case steps with the responsible objects.
Analysis Activities: Interactions Between Objects (Sequence Diagrams)
- Sequence diagrams link use cases with objects.
- They demonstrate how a use case behavior is distributed among participants.
- Sequence diagrams provide a different perspective for finding missing objects or areas needing clarification.
Identifying Associations
- Associations are connections that facilitate collaboration, information exchange, and dependencies between objects.
- Understanding relationships and interactions is important to fulfill system functionality.
- Analysis of domain model and use cases, direct interactions, classification (unidirectional, bidirectional, multiplicity), and visualization (UML Class Diagrams) steps help identify associations.
Identifying Associations: Analyzing Domain Models and Use Cases
- Analyze use cases and the object model for scenarios where objects interact.
- Establish the core relationships in the domain and how objects communicate.
Identifying Associations: Identifying Direct Interactions
- Look for verbs or actions in use cases to reveal object relationships.
- Identify who interacts with whom and how.
Identifying Associations: Classifying the Association Type
- Determine the nature of the relationship using association types such as:
- Unidirectional Association
- Bidirectional Association
- Multiplicity
- Aggregation/Composition
- Dependency
Identifying Associations: Representing Relationships Visually
- Visualize associations using UML Class Diagrams.
- Use lines between classes to represent associations and label arrows, direction, and multiplicity indicators to clarify relationships.
Identifying Attributes
- Attributes represent object properties and characteristics.
- These are derived from the domain and use cases.
- Analyzing the different data that each object needs to maintain its responsibilities, especially when creating, reading, updating, or deleting these objects, is crucial in determining the attributes.
Identifying Attributes: Defining Attribute Types
- Define attribute data types by examining:
- Basic types like integer, float, string, boolean, and date.
- Collections like lists, arrays, maps, sets for complex data (e.g., lists of products).
- Custom types that link to other objects.
Identifying Attributes: Example Attributes
- Examples of customer, product, order, and payment attributes illustrate how to identify and define attributes.
Analysis Activities: Modeling Generalization Relationships Between Objects
- Generalization eliminates redundancy in the analysis model by consolidating similarities into superclasses when two or more classes have similar attributes or behavior.
Reviewing the Analysis Model
- The analysis model is incrementally and iteratively built.
- Model refinement with client iterations helps achieve an accurate and usable specification for design and implementation.
Documenting Analysis
- Once complete, requirements analysis documents are versioned and kept under configuration management.
- Revision history records changes, including the responsible author, date, and description of changes for managing.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.