Podcast
Questions and Answers
What do analysis models in object-oriented software engineering primarily represent?
What do analysis models in object-oriented software engineering primarily represent?
Which of the following should not be included in an analysis model?
Which of the following should not be included in an analysis model?
In the context of object-oriented software engineering, what is a primary goal of requirements elicitation?
In the context of object-oriented software engineering, what is a primary goal of requirements elicitation?
What type of diagrams are used to represent user-level interactions in object-oriented analysis?
What type of diagrams are used to represent user-level interactions in object-oriented analysis?
Signup and view all the answers
Which statement accurately describes the purpose of the dynamic model?
Which statement accurately describes the purpose of the dynamic model?
Signup and view all the answers
What is the main goal of the object modeling process?
What is the main goal of the object modeling process?
Signup and view all the answers
In class identification during object modeling, which assumption is NOT typically made?
In class identification during object modeling, which assumption is NOT typically made?
Signup and view all the answers
What defines the system boundary in the context of class identification?
What defines the system boundary in the context of class identification?
Signup and view all the answers
What activity identifies abstract concepts from lower-level ones in object-oriented modeling?
What activity identifies abstract concepts from lower-level ones in object-oriented modeling?
Signup and view all the answers
What is a significant challenge faced during class identification?
What is a significant challenge faced during class identification?
Signup and view all the answers
Which object type is responsible for handling procedures or control logic in a system?
Which object type is responsible for handling procedures or control logic in a system?
Signup and view all the answers
What is the primary purpose of dividing objects into types such as Entity, Control, and Boundary?
What is the primary purpose of dividing objects into types such as Entity, Control, and Boundary?
Signup and view all the answers
According to Abbott’s Technique, which of the following should be used to analyze use cases for identifying objects?
According to Abbott’s Technique, which of the following should be used to analyze use cases for identifying objects?
Signup and view all the answers
Which of the following is NOT a type of object discussed?
Which of the following is NOT a type of object discussed?
Signup and view all the answers
Which statement correctly reflects the communication capability of Controllers?
Which statement correctly reflects the communication capability of Controllers?
Signup and view all the answers
What aspect of the system is likely to change more frequently than the Entity Objects?
What aspect of the system is likely to change more frequently than the Entity Objects?
Signup and view all the answers
In the context of Smalltalk’s MVC, what does the 'Model' refer to?
In the context of Smalltalk’s MVC, what does the 'Model' refer to?
Signup and view all the answers
What characterizes a Low-Priority Incident?
What characterizes a Low-Priority Incident?
Signup and view all the answers
Which type of object represents persistent information tracked by the system?
Which type of object represents persistent information tracked by the system?
Signup and view all the answers
What is the primary role of Control Objects in an object-oriented system?
What is the primary role of Control Objects in an object-oriented system?
Signup and view all the answers
Which of the following is an example of a Boundary Object?
Which of the following is an example of a Boundary Object?
Signup and view all the answers
How many types of Incidents are defined in the content?
How many types of Incidents are defined in the content?
Signup and view all the answers
What is the purpose of using UML Stereotype mechanism in modeling?
What is the purpose of using UML Stereotype mechanism in modeling?
Signup and view all the answers
An Emergency Incident requires:
An Emergency Incident requires:
Signup and view all the answers
Which of these roles does NOT belong to Entity Objects?
Which of these roles does NOT belong to Entity Objects?
Signup and view all the answers
Study Notes
Object-Oriented Software Engineering (OOSE)
- OOSE involves using UML, patterns, and Java.
- Chapter 5 focuses on analysis and object modelling.
Ambiguity
- Figure 5-1 illustrates ambiguity.
- It highlights the need for clear definition of system boundaries and identification of objects.
OOSE Development Activities and Products
- An overview of OOSE development activities and their products is presented graphically.
- Activities include problem statement, requirements elicitation, analysis, functional modeling, dynamic modeling, analysis object model, and system design.
- Products include use case diagrams, sequence diagrams, state diagrams, and activity diagrams.
Analysis
- Analysis models represent user-level concepts, not software classes.
- Models are high-level abstractions that are later realized in more detail for software.
- Specific domain concepts and software classes are identified and distinguished.
- Domain concepts should be represented in analysis object model.
- Software classes that should NOT be represented in analysis model are defined.
Activities During Object Modeling
- Main goal of object modeling is to find important abstractions (things and actions).
- Steps include identifying classes and their attributes, methods, and associations between classes.
- The order of activities is secondary; often iterative and revised based on analysis.
Class Identification
- Crucial to Object-Oriented (OO) modeling.
- Identifying important entities in a system.
- Two basic assumptions:
- Finding classes for new systems (Forward Engineering).
- Identifying classes in existing systems (Reverse Engineering).
- Class identification is a complex issue because it depends on context of a system, especially on what the system boundaries are. Understanding how end users view and use a system is crucial.
- Identifying the purpose of a system using scenarios and use cases leads to Functional models.
Generalization vs. Specialization
- Generalization identifies abstract concepts from lower-level ones.
- Specialization identifies more specific concepts from a high-level one.
- Useful for creating a hierarchy/taxonomy of abstractions to improve understanding.
Class Hierarchy
- Example of a UML generalization hierarchy.
- Shows relationships between generalized and specialized classes.
Different Object Types
- Entity Objects represent persistent information.
- Boundary Objects represent interactions with users.
- Control Objects mediate between boundaries and entities, implementing logic.
2BWatch Modeling Example
- Demonstrates how to distinguish between different object types using UML stereotypes.
- Different object types assigned to entities (e.g year, month), control objects (e.g., ChangeDate), and boundary objects (e.g., Button, LCD).
UML Stereotypes
- UML provides stereotypes mechanism.
- Provides a way to name object types, methods and attributes with symbols, making models easy to understand.
- Notation: <
>name of element (e.g., <<Entity>>Year).
UML as an Extensible Language
- UML is extensible.
- Stereotypes can be used for classifying method behavior (e.g., <
>). - Icons can be used to represent stereotypes.
Icons for Stereotypes
- Using icons improves the visual aspects of class diagrams.
- Icons are displayed next to or above an element name to identify the stereotype.
Pros and Cons of Stereotype Graphics
- Advantages: Improve diagrams and class diagrams by using graphics/icons.
- Disadvantages: Graphics/icons can be difficult to grasp for developers who aren't already familiar with them.
Communication Among Objects
- Defines rules for communication between objects.
- Actors can talk to boundary objects.
- Boundaries objects can talk to controllers.
- Entity objects communicate with controllers.
- Controllers interact with boundaries, entities, and other controllers, not actors.
Benefit of Object Types
- Object types allow changes/adaptations to systems, enhancing system resilience and making it easy to change features.
Finding Participating Objects in Use Cases
- Use cases are used to discover participating objects.
- Use a textual analysis approach to identify objects and classes.
- Include real-world entities, procedures that are kept in models, and interface artifacts (examples provided).
Mapping Parts of Speech to Model Components
- Mapping techniques help identify the elements in a model.
- Example using Abbot's technique to map words to model components (e.g., "Buy," "toy," "is-a").
Generating a Class Diagram from Flow of Events
- Example demonstrating how to create a Class Diagram from a use case/scenario flow of events.
Ways to Find Objects
- Various ways, including flow of events in use cases, problem statements, end users/experts knowledge, and general knowledge.
Order of Activities for Object Identification
- Sequence of steps for identifying objects, including formulating scenarios, eliciting use cases through expert input(s), and analyzing events with the help of a textual analysis technique (e.g., Abbot's).
Steps in Generating Class Diagrams
- Steps involved in creating class diagrams: identifying classes, their attributes/operations, and relationships (associations, multiplicities, inheritance).
Who Uses Class Diagrams?
- Users, including domain experts, identify static properties of a system, helping in requirements/analysis (e.g., application domain)
- Developers identify and use diagrams to create software systems during analysis, design , object design and implementation stages.
Who Does Not Use Class Diagrams?
- Clients and end users may not be interested in detailed class diagrams. They are more focused on project management, and application functionality.
Developers' Different Views on Class Diagrams
- Developers' perspectives on class diagrams vary based on their specific role within the development process.
- Roles include analyst, system designer, object designer, and implementor/development engineer.
The View of the Analyst
- The analyst focuses on the application domain's classes and operations and uses inheritance for relationships.
- Analyst is not interested in solution domain operations or classes.
The View of the Designer
- Focuses on the solution and the interfaces of subsystems, using references (pointers) between classes.
Goals of the Designer
- Goals include ensuring system usability through interface design, and maintainability/reusability, as well as identifying opportunities/potential for reuse of parts within existing or potential software systems (e.g., class libraries, frameworks, design patterns).
The View of the Implementor / Developer Engineer
- Roles include:
- Implementing methods/interfaces of classes using programming languages.
- Considering appropriate data structures and algorithms for attributes and operations.
- Extending (or adapting classes for) new or changed situations.
- Class users focus on how classes operate without worrying about individual components.
Why Distinguish Users of Class Diagrams?
- Models may not immediately distinguish application and solution classes.
- Distinguishing these is a preferred approach but not always practiced in all design settings.
- Avoiding solution classes in analysis models is preferred.
Analysis Model vs. Object Design Model
- Analysis model is created during analysis phase; focuses on application domain classes; main users include stakeholders and analysts.
- Object design model (or Specification model) is created during object design phase; encompasses application and solution domain classes; and is created by/for developers, including class specifiers and extenders.
Summary
- System modeling includes Functional + object + dynamic modeling.
- Object modeling is a central activity in the development process, including identifying classes and applying rules for creating relationships between them (e.g., Abbot's technique).
- Analysis/UML activity diagrams present development steps, from defining use cases, objects, interactions, and associations and attributes to consolidating/reviewing the model.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
This quiz covers Chapter 5 of Object-Oriented Software Engineering, which focuses on analysis and object modeling. It explores the importance of clear definitions, OOSE development activities, and the products involved in the analysis process. Test your knowledge on UML, modeling, and the distinctions between domain concepts and software classes.