ITM305 Final Exam - System Analysis and Design
61 Questions
0 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 is the purpose of a dependency relationship in package diagrams?

  • To visualize the flow of data between packages
  • To indicate a relationship where one component can function independently of the other
  • To represent a relationship where a change in one component may affect another (correct)
  • To show how classes are grouped together informally
  • Which of the following responsibilities does the View Layer Class NOT perform?

  • Capture input events such as clicks
  • Establish and maintain connections to the database (correct)
  • Edit and validate input data
  • Display electronic forms and reports
  • Which layer in a three-layer design handles the business rules and logic of the domain?

  • View Layer
  • Domain Layer (correct)
  • Presentation Layer
  • Data Access Layer
  • In a use case analysis, what type of classes does the Data Access Layer need to interact with?

    <p>Persistent classes (D)</p> Signup and view all the answers

    What is indicated by the dashed line in a package diagram?

    <p>A dependency relationship between components (A)</p> Signup and view all the answers

    What is an appropriate characteristic of a persistent class?

    <p>Its objects are designed to remain after the system shuts down. (B)</p> Signup and view all the answers

    Which type of class acts as a mediator between boundary classes and entity classes?

    <p>Controller class (D)</p> Signup and view all the answers

    In which diagram would you primarily represent use cases?

    <p>Use case diagram (D)</p> Signup and view all the answers

    What does the visibility indicator '+' signify in class attributes?

    <p>The attribute can be accessed directly by other objects. (B)</p> Signup and view all the answers

    What describes a boundary class in object-oriented design?

    <p>It acts as an interface between the entity and external users. (B)</p> Signup and view all the answers

    In object-oriented design, the process of identifying classes and their messages is referred to as?

    <p>Use case driven design (D)</p> Signup and view all the answers

    What is the primary function of a data access class?

    <p>To retrieve and send data to a database. (B)</p> Signup and view all the answers

    What aspect of the design class diagram do stereotypes convey?

    <p>The characteristics of model elements. (C)</p> Signup and view all the answers

    What is the primary function of a base Controller in a system?

    <p>To reduce coupling between the user interface and the domain layer (C)</p> Signup and view all the answers

    In a sequence diagram, what does the activation lifeline represent?

    <p>The duration when an object is executing a message (C)</p> Signup and view all the answers

    Which guideline should be followed when extending input messages in object-oriented design?

    <p>Determine all internal messages and flesh out each message with precision (D)</p> Signup and view all the answers

    What does the design principle 'Protection from Variations' emphasize?

    <p>Separating parts of the system that are not likely to change from those that will (D)</p> Signup and view all the answers

    When instantiating a new object using the data layer, which method sends a message to the data access object?

    <p>Send a message to obtain required persistent data method (B)</p> Signup and view all the answers

    In object-oriented design, what must be identified when choosing a use case?

    <p>Input models such as activity diagrams, SSD, and classes (B)</p> Signup and view all the answers

    What is the role of messages in a sequence diagram?

    <p>To show the origins and destinations of communication between objects (B)</p> Signup and view all the answers

    What assumption is made regarding technology during the development process?

    <p>There is a perfect technology assumption (D)</p> Signup and view all the answers

    Which layer is responsible for displaying data fields and capturing input events?

    <p>View Layer (C)</p> Signup and view all the answers

    What indicates a dependency relationship in package diagrams?

    <p>Dashed line with an arrow (A)</p> Signup and view all the answers

    Which responsibility is NOT associated with the Data Access Layer?

    <p>Display electronic forms (A)</p> Signup and view all the answers

    In a three-layer design, which layer prepares persistent classes for storage to the database?

    <p>Domain Layer (C)</p> Signup and view all the answers

    Which class responsibility involves processing the results of executed SQL statements?

    <p>Data Access Layer (B)</p> Signup and view all the answers

    What is the role of system operations in system behavior analysis?

    <p>They provide high-level operations triggered by external events. (A)</p> Signup and view all the answers

    Which class type is primarily responsible for managing communication between the user interface and the data model?

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

    In a design class diagram, what does the visibility symbol '-' signify for attributes?

    <p>Attribute is private and cannot be accessed outside the class. (C)</p> Signup and view all the answers

    Which diagram would best represent the flow of actions in a use case?

    <p>System sequence diagram (SSD) (A)</p> Signup and view all the answers

    What characterizes a persistent class in object-oriented design?

    <p>It retains its state even after the system shuts down. (A)</p> Signup and view all the answers

    Which of the following is NOT a part of the steps of object-oriented design?

    <p>Determining user interface design (B)</p> Signup and view all the answers

    In object-oriented design, which of the following elements is categorized by the use of guillemots (>), as seen in stereotypes?

    <p>Classes (C)</p> Signup and view all the answers

    How is a use case realization typically represented in object-oriented design?

    <p>As a domain model class diagram (A)</p> Signup and view all the answers

    What type of class serves as an identifier for a specific problem domain in object-oriented design?

    <p>Entity class (D)</p> Signup and view all the answers

    What does a System Sequence Diagram (SSD) primarily represent?

    <p>The interaction between an actor and the system for one use case scenario (A)</p> Signup and view all the answers

    In message formats for an SSD, how are parameter names formatted?

    <p>Lowercase letters with no spaces, upper-case letters separate words (B)</p> Signup and view all the answers

    What does an asterisk (*) in the message notation of an SSD represent?

    <p>Repeating or looping of the message (D)</p> Signup and view all the answers

    Which of the following best describes the notation '[true/false condition]' in the message format?

    <p>It tests a condition that determines if a message is sent (A)</p> Signup and view all the answers

    What must every outgoing message in an SSD be derivable from?

    <p>Input to the use case and stored data (D)</p> Signup and view all the answers

    What is represented by the 'object lifeline' in a System Sequence Diagram?

    <p>The complete system being treated as a single object (D)</p> Signup and view all the answers

    Which of the following statements is NOT true about messages in a System Sequence Diagram?

    <p>Every message must have an associated return value (C)</p> Signup and view all the answers

    What is a concrete class?

    <p>A class that can be instantiated (C)</p> Signup and view all the answers

    What does 'Separation of Responsibility' achieve in a software design?

    <p>Grouping classes into segregated packages or groups (A)</p> Signup and view all the answers

    Why is it beneficial for classes to be loosely coupled?

    <p>It allows for easier system modifications and enhancements (C)</p> Signup and view all the answers

    What does high cohesion in a class imply?

    <p>The methods and responsibilities of the class are consistent (A)</p> Signup and view all the answers

    What is the principle behind 'Protection from Variations'?

    <p>Isolating stable components from those likely to change (C)</p> Signup and view all the answers

    Which aspect does encapsulation primarily enhance?

    <p>Bundling of data with relevant operations into a single unit (D)</p> Signup and view all the answers

    What does it mean for a class to have low cohesiveness?

    <p>It has diverse and unrelated responsibilities (C)</p> Signup and view all the answers

    What is a characteristic of tightly coupled classes?

    <p>They share many associations and direct communications (C)</p> Signup and view all the answers

    In object-oriented design, what does encapsulation facilitate?

    <p>Protection of data integrity by restricting access (B)</p> Signup and view all the answers

    Which scenario is an example of applying the 'Separation of Concerns' principle?

    <p>Creating separate classes for different functionalities within a system (D)</p> Signup and view all the answers

    What is the main benefit of encapsulation in software design?

    <p>It reduces system complexity and increases robustness. (C)</p> Signup and view all the answers

    What does a superclass represent in inheritance?

    <p>A base class that provides attributes and methods to subclasses. (D)</p> Signup and view all the answers

    In indirection, what is the primary role of the intermediate class?

    <p>To provide security and reduce coupling between classes. (A)</p> Signup and view all the answers

    Which of the following best describes polymorphism?

    <p>The implementation of multiple methods with the same name and different parameters. (A)</p> Signup and view all the answers

    What does it mean for a class to have low coupling?

    <p>The class operates independently of other classes. (B)</p> Signup and view all the answers

    How does indirection enhance security in software design?

    <p>By directing messages through an intermediate class, similar to a firewall. (C)</p> Signup and view all the answers

    What is meant by method signature in the context of polymorphism?

    <p>The name of the method along with its parameters. (D)</p> Signup and view all the answers

    Which statement accurately describes inheritance?

    <p>It allows a class to inherit attributes and methods from another class. (C)</p> Signup and view all the answers

    What is an example of a class that typically utilizes polymorphism?

    <p>Constructors that initialize instances of a class. (D)</p> Signup and view all the answers

    Flashcards

    System Operations

    High-level operations offered by a system in response to external events.

    Use Case Driven Design

    Designing objects and methods for a use case, one use case at a time.

    Persistent Class

    A class whose objects exist even after the system shuts down.

    Entity Class

    Represents a problem domain class, often persistent.

    Signup and view all the flashcards

    Boundary Class

    A class representing the system's interface (e.g., input forms).

    Signup and view all the flashcards

    Controller Class

    Mediates between boundary and entity classes.

    Signup and view all the flashcards

    Data Access Class

    Handles data retrieval and storage.

    Signup and view all the flashcards

    Stereotype

    A way of categorizing model elements by their characteristics.

    Signup and view all the flashcards

    Package Diagram

    A diagram used to group and organize classes or packages for better understanding, or to formally define subsystems.

    Signup and view all the flashcards

    Dependency Relationship (Package/Class)

    A relationship between packages or classes where a change in one component may require a change in another dependent component.

    Signup and view all the flashcards

    View Layer (Three-Tier Architecture)

    The layer responsible for displaying information and handling user input to the application.

    Signup and view all the flashcards

    Domain Layer (Three-Tier Architecture)

    The layer responsible for business logic and data processing within the application.

    Signup and view all the flashcards

    Data Access Layer (Three-Tier Architecture)

    The layer responsible for interacting with the database, fetching and storing data.

    Signup and view all the flashcards

    Controller Role

    A controller acts as an intermediary between user interfaces and the application's domain logic. It decouples the view from the domain layer.

    Signup and view all the flashcards

    Sequence Diagram Lifeline

    A dashed line representing an object in a sequence diagram, showing its existence throughout the interaction.

    Signup and view all the flashcards

    Activation (Sequence Diagram)

    A vertical box on a lifeline, indicating when an object is actively processing a message.

    Signup and view all the flashcards

    Multilayer Sequence Diagram

    A sequence diagram that includes multiple layers, such as view, domain, and data layers, reflecting the system's architecture.

    Signup and view all the flashcards

    Data Layer

    The part of a system that handles data storage and retrieval, like reading or updating persistent objects.

    Signup and view all the flashcards

    Instantiating a New Object (Method 1)

    Creating a new object in memory and having it retrieve its persistence data.

    Signup and view all the flashcards

    Use Case in OOD

    To design and model a real-world activity by considering the required inputs, creating the required outputs and possible ways of connecting these inputs and the outputs

    Signup and view all the flashcards

    Fundamental Design Principle: Protection from Variations

    Separating parts of a system that are likely to change from those that are unlikely to change, thus making the system more adaptable.

    Signup and view all the flashcards

    Use Case

    A description of how a user interacts with a system to achieve a specific goal.

    Signup and view all the flashcards

    Design Class Diagram

    A diagram that shows the classes in a system, their attributes, methods, and relationships.

    Signup and view all the flashcards

    System Sequence Diagram (SSD)

    A diagram that shows the interaction between an actor and the system for a specific use case scenario. It outlines the messages sent and received by the system, including actors and external systems, along with their sequence.

    Signup and view all the flashcards

    SSD Focuses on Input Content

    A system sequence diagram (SSD) primarily focuses on the content and structure of the system's input, showing what information the system expects to receive for a successful interaction.

    Signup and view all the flashcards

    SSD Message Format

    The format for messages in SSD follows the UML convention: message name followed by a parameter list in parentheses. Names use lowercase letters, no spaces, and uppercase letters separate words. Parameter names are separated by commas even if empty.

    Signup and view all the flashcards

    SSD Outgoing Messages

    These are messages sent by the system in response to an input. They can be responses completing events or requests to external systems requiring actions and replies.

    Signup and view all the flashcards

    SSD Message Notation

    A message notation [true/false condition] return-value := message-name (parameter-list) is used in SSD. It shows conditional messages, return values, message names and parameter lists with repetition marked by '*' and parameter list without parentheses for return messages.

    Signup and view all the flashcards

    SSD: What is important for the system to receive (input) for a particular use case?

    The SSD should reveal what the system needs (input) to properly process a specific action and provide an appropriate response.

    Signup and view all the flashcards

    SSD: What does the system respond with (output) based on the input it receives?

    The SSD should show all system outputs (responses) to each input, including conditional outputs and output messages to other systems.

    Signup and view all the flashcards

    Concrete Class

    A class that can be instantiated, meaning you can create objects (instances) from it.

    Signup and view all the flashcards

    Object Responsibility

    The principle that objects should be responsible for carrying out tasks within a system.

    Signup and view all the flashcards

    Separation of Responsibility (Concern)

    Dividing a system's functionality into distinct classes or packages, each handling specific tasks.

    Signup and view all the flashcards

    Protection from Variations

    A design principle that safeguards stable parts of a system from changes in other parts.

    Signup and view all the flashcards

    Coupling

    A measure of how interconnected classes are, with 'tight' coupling meaning lots of dependencies and 'loose' coupling meaning fewer.

    Signup and view all the flashcards

    Cohesion

    A measure of how focused a class's responsibilities are, with 'high' cohesion meaning tasks relate to the class's purpose and 'low' cohesion meaning tasks are unrelated.

    Signup and view all the flashcards

    Encapsulation

    Combining data and methods that operate on that data within a single class, hiding internal workings.

    Signup and view all the flashcards

    Tight Coupling

    Classes heavily rely on each other, requiring many interactions and making changes difficult.

    Signup and view all the flashcards

    Loose Coupling

    Classes are independent, interacting minimally, allowing for easier changes.

    Signup and view all the flashcards

    High Cohesion

    A class focuses on a specific set of related tasks, enhancing its purpose and clarity.

    Signup and view all the flashcards

    Dependency Relationship

    A relationship between packages or classes where a change in one component may require a change in another dependent component.

    Signup and view all the flashcards

    Three-Layer Package Diagram

    A diagram illustrating the three layers of a system: View, Domain, and Data Access.

    Signup and view all the flashcards

    View Layer Responsibilities

    The layer responsible for displaying information and handling user input to the application.

    Signup and view all the flashcards

    Domain Layer Responsibilities

    The layer responsible for business logic and data processing within the application.

    Signup and view all the flashcards

    Inheritance

    Creating a new class (subclass) based on an existing class (superclass), inheriting its attributes and methods without needing to redefine them. This allows for code reuse and creating hierarchies of related classes.

    Signup and view all the flashcards

    Indirection

    An intermediate class acts as a go-between, decoupling two other classes while still linking them. This promotes flexibility and reduces direct dependencies.

    Signup and view all the flashcards

    Polymorphism

    The ability of a single method name to have multiple implementations, each with different parameters. This lets you handle different situations with the same method name.

    Signup and view all the flashcards

    Constructor Method

    A special method that creates a new instance of a class in memory when an object is instantiated. It initializes the object's state.

    Signup and view all the flashcards

    Method Signature

    The unique combination of a method's name and its parameters (number and types). Different signatures allow for method overloading.

    Signup and view all the flashcards

    Reduce System Complexity

    A benefit of encapsulation where limiting access to internal data and methods simplifies interactions among software components, improving robustness and maintainability.

    Signup and view all the flashcards

    Robustness

    The ability of a system to handle unexpected inputs and situations without crashing or producing incorrect results.

    Signup and view all the flashcards

    Security (Indirection)

    Indirection can enhance security by directing messages through an intermediate class, like a firewall, protecting sensitive information.

    Signup and view all the flashcards

    Study Notes

    ITM305 Final Exam - System Analysis and Design (Toronto Metropolitan University)

    • System Sequence Diagram (SSD): Shows the interaction between an actor and the system for one use case scenario.
    • The system is represented as a black box.
    • Initiating actors are depicted.
    • External systems sending messages to the system are shown.
    • Message sequence within the system is detailed.
    • Special cases for sequences are noted.
    • Actor and one object are shown.
    • Object represents the entire system.
    • Input and output message requirements are demonstrated.
    • Actor, System, and Object lifelines are focused on.
    • Message content and structure are emphasized.
    • Repeated or alternative messages are identified.

    Message Formats in SSD

    • UML format for messages: Message name followed by (parentheses) parameter list.
    • All message names start with a lowercase letter.
    • No spaces in names; uppercase letters separate words within names.
    • Parameter list items are separated by commas.
    • Empty parentheses are used if no parameters exist.

    Outgoing Messages (System Outputs)

    • System's response to complete an event.
    • Messages from the system to other systems requiring action and a reply.
    • Each output is derived from input and stored data.

    Message Notation

    • [true/false condition]: a message-name and parameter-list. The asterisk (*) signifies repetition/looping. Brackets indicate true/false conditions for message evaluation.
    • Message name (verb-noun) describes the service requested.
    • Parameter list shows data passed with the message (parentheses for initiating messages, no parentheses for return messages.)
    • Return value is the data returned from destination object to the source.

    System Events and System Operations

    • System operations are the operations accessible in a black-box component.
    • They're high-level operations triggered by system or external events.
    • System behavior analysis assigns system operations to conceptual class system.

    Extending and Integrating Requirements Models

    • Use case diagram, use case descriptions, activity diagram, system sequence diagram, and domain class diagram.

    Steps of Object-Oriented Design

    • Process of identifying classes, methods and messages needed for a use case.
    • Design is use-case driven.

    Design Class Diagrams

    • Stereotypes categorize model elements.
    • Persistent class: class whose objects remain after system shutdown.
    • Entity class: identifier for a problem domain class (usually persistent).
    • Boundary/View class: exists on a system's boundary (input window, web page).
    • Controller class: mediates between boundary and entity classes.
    • Data access class: handles database interactions.

    Notation for Design Classes

    • Attribute names use lower camel case notation.
    • Type expression specifies data types like class/string/integer.
    • Default values are indicated.

    Method Signature

    • Notations specify method invocation information, visibility (public/private), method name (verb-noun), parameters, and return type.
    • Visibility ( + / - ) indicates access to the method (other objects).

    Class-level Methods/Attributes

    • Class-level methods apply to the class rather than instances (static methods).
    • Class-level attributes apply to the class rather than objects (static attributes).

    Fundamental Design Principles

    • Object Responsibility Principle - Objects are accountable for system tasks.
    • "Knowing" and "doing" functionality.
    • Separation of Concerns (responsibility).
    • Protection from variations (separating parts of a system likely to change.)

    Quantitative Measure of Coupling

    • Measures how closely related classes are. Tightly/loosely coupled.
    • High coupling - numerous connections between classes.
    • Low coupling - fewer connections between classes is better.

    Cohesion

    • Measures the focus/unity within a class.
    • High cohesion - class has consistent responsibilities.
    • Low cohesion - inconsistent spread of responsibilities.

    Encapsulation

    • Bundles data and methods operating on data to limit complexity & improve robustness.

    Inheritance

    • Enables deriving classes from other classes (hierarchy) with shared attributes and methods.
    • Simplifies development by avoiding redundancy.

    Indirection

    • Placing an intermediary class between two other classes.
    • Decreases coupling, but maintain a link.
    • Controllers and firewall examples.

    Polymorphism

    • Allows same method name with various implementations.
    • Differentiated based on parameter sets.
    • Useful for method flexibility and reuse.
    • Constructors exemplify polymorphism.

    Use Case Controller

    • A switchboard between UI and domain layer classes.
    • Reduces coupling and provides greater security.
    • Can be combined for groups of related use cases.

    Understanding Sequence Diagrams

    • Lifeline shows lifetime and interaction points.
    • Activation shows a method execution period.
    • Messages indicate interactions with origin and destination.
    • Return values are shown for method results.

    OOD with Sequence Diagrams

    • Choose a use case, create a first-cut UML sequence diagram, extend messages and refine the diagram, and update the diagram.

    Guidelines for Sequence Diagrams

    • Establish messages from input.
    • Identify involved objects (origin/destination).
    • Describe each message with conditions/parameters/return values.

    Assumptions for Sequence Diagrams

    • Perfectly functioning technology.
    • No login or technical issues.
    • Perfect solution is assumed.
    • No exceptions expected.

    Week 10: Fundamental Design Principles

    • Protection from variations: Separating elements likely to change from those that won't.
    • Multilayer sequence diagrams: Adding view and data layers for a clear picture of interactive flows.

    Data Layer & Access

    • Handles the data layer for reading/writing persistent objects.
    • Data access method 1/2 to create and get data for persistent objects.

    Package Diagrams

    • Method to define formal packages like subsystems (formal).
    • Identifying classes or packages for understanding (informal).
    • Dependency relationships using dashed lines.

    Three-Layer Design Implementation Issues

    • View layer responsibilities- display forms, handle input, and forward data to the domain layer.

    Week 11: Agile Development

    • Agile philosophies and guidelines.
    • Agile values: responding to change, individuals and interactions, working software.

    Scrum Project Management

    • Scrum is a time-constrained, mini-project approach for executing parts of a larger system using short, tightly controlled cycles

    • The main components of a scrum project are: Product backlog, Product owner, Scrum master and Scrum team, scrum sprint

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    ITM305 Final Exam PDF

    Description

    Prepare for the ITM305 final exam on System Analysis and Design at Toronto Metropolitan University. This quiz covers System Sequence Diagrams (SSD), including interaction examples, message formats, and detailed analysis of actors, systems, and objects. Test your understanding of UML message structures and their applications.

    More Like This

    UML System Sequence Diagrams
    10 questions
    System Sequence Diagrams Overview
    41 questions
    System Sequence Diagrams in UML
    45 questions

    System Sequence Diagrams in UML

    IntegratedRainbow1809 avatar
    IntegratedRainbow1809
    Use Quizgecko on...
    Browser
    Browser