Object-Oriented Software Engineering Chapter 5
25 Questions
3 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What do analysis models in object-oriented software engineering primarily represent?

  • Detailed implementation specifications
  • Actual software components and classes
  • Non-functional requirements
  • User-level concepts and abstractions (correct)
  • Which of the following should not be included in an analysis model?

  • Specific software components like Database (correct)
  • Use cases analyzing user scenarios
  • User interactions and requirements
  • High-level abstractions of user needs
  • In the context of object-oriented software engineering, what is a primary goal of requirements elicitation?

  • To create software documentation
  • To validate existing software features
  • To define the technical architecture
  • To uncover user needs and expectations (correct)
  • What type of diagrams are used to represent user-level interactions in object-oriented analysis?

    <p>Sequence diagrams</p> Signup and view all the answers

    Which statement accurately describes the purpose of the dynamic model?

    <p>It details the behavior of the system over time</p> Signup and view all the answers

    What is the main goal of the object modeling process?

    <p>To find important abstractions</p> Signup and view all the answers

    In class identification during object modeling, which assumption is NOT typically made?

    <p>Classes are always found intuitively without analysis.</p> Signup and view all the answers

    What defines the system boundary in the context of class identification?

    <p>Actors that interact with the system</p> Signup and view all the answers

    What activity identifies abstract concepts from lower-level ones in object-oriented modeling?

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

    What is a significant challenge faced during class identification?

    <p>Determining the system's purpose and boundaries</p> Signup and view all the answers

    Which object type is responsible for handling procedures or control logic in a system?

    <p>Control Object</p> Signup and view all the answers

    What is the primary purpose of dividing objects into types such as Entity, Control, and Boundary?

    <p>To better manage changes in the system</p> 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?

    <p>Noun-verb analysis</p> Signup and view all the answers

    Which of the following is NOT a type of object discussed?

    <p>Participant Object</p> Signup and view all the answers

    Which statement correctly reflects the communication capability of Controllers?

    <p>Controllers can communicate with Entity Objects and other Controllers.</p> Signup and view all the answers

    What aspect of the system is likely to change more frequently than the Entity Objects?

    <p>User interface</p> Signup and view all the answers

    In the context of Smalltalk’s MVC, what does the 'Model' refer to?

    <p>Entity Object</p> Signup and view all the answers

    What characterizes a Low-Priority Incident?

    <p>It does not need to be addressed if resources are needed for higher-priority incidents.</p> Signup and view all the answers

    Which type of object represents persistent information tracked by the system?

    <p>Entity Objects</p> Signup and view all the answers

    What is the primary role of Control Objects in an object-oriented system?

    <p>To implement logic that manages interactions between boundary and entity objects.</p> Signup and view all the answers

    Which of the following is an example of a Boundary Object?

    <p>A user interface screen</p> Signup and view all the answers

    How many types of Incidents are defined in the content?

    <p>Three types</p> Signup and view all the answers

    What is the purpose of using UML Stereotype mechanism in modeling?

    <p>To distinguish between different types of objects in a model.</p> Signup and view all the answers

    An Emergency Incident requires:

    <p>Immediate handling by a single agency.</p> Signup and view all the answers

    Which of these roles does NOT belong to Entity Objects?

    <p>Representing system users.</p> 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.

    Quiz Team

    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.

    More Like This

    UML and Object-Oriented Dynamics
    5 questions
    CSC 2210 Object Oriented Analysis & Design
    40 questions
    Use Quizgecko on...
    Browser
    Browser