ITM305 Final Exam - System Analysis and Design
45 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 main purpose of package diagrams?

  • To visualize data flow within a single class
  • To outline the user interface design of an application
  • To define formal packages like subsystems and informally group classes (correct)
  • To showcase the visual representation of hardware components

Which of the following best describes a dependency relationship in package diagrams?

  • A relationship where a change in the independent component may require a change in the dependent component (correct)
  • A direct relationship indicating classes that inherit from one another
  • A relationship where one component must always be used with another
  • An indication that changes in one component may not affect another

What are the responsibilities of the Domain Layer class?

  • Create persistent classes, process business rules, and prepare data for the database (correct)
  • Contain all SQL statements and process results into domain objects
  • Establish connections to external APIs and manage user sessions
  • Display data input forms and manage user interactions

What is one of the responsibilities of the Data Access Layer?

<p>Maintain database connections and handle SQL queries (C)</p> Signup and view all the answers

Which layer is responsible for capturing user input events such as clicks and key entries?

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

What is the purpose of return-value on the same line as the message?

<p>To describe data returned from a destination object to a source object (D)</p> Signup and view all the answers

Which class acts as an intermediary between boundary classes and entity classes?

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

During system behaviour analysis, what is assigned to a conceptual class system?

<p>System operations (B)</p> Signup and view all the answers

What characterizes a persistent class in object-oriented design?

<p>Classes whose objects remain after the system is shut down (D)</p> Signup and view all the answers

What is the main focus of object-oriented design?

<p>To identify classes, methods, and messages required for a use case (D)</p> Signup and view all the answers

What does a boundary class represent in the context of system design?

<p>A class on the automation boundary of a system (D)</p> Signup and view all the answers

Which diagram is NOT typically associated with use case realization?

<p>Entity relationship diagram (A)</p> Signup and view all the answers

What is indicated by the visibility symbol (+ or -) in class attributes?

<p>Whether an attribute is accessible from other objects (B)</p> Signup and view all the answers

What is the primary purpose of a System Sequence Diagram (SSD)?

<p>To show the interaction between actors and the system for a use case scenario (C)</p> Signup and view all the answers

Which of the following best describes the notation for an outgoing message in a System Sequence Diagram?

<p>[true/false condition] return-value := message-name(parameter-list) (D)</p> Signup and view all the answers

What is the primary characteristic of a concrete class?

<p>It can be instantiated. (A)</p> Signup and view all the answers

What does an asterisk (*) indicate in the message notation for SSD?

<p>A repeat of the message (C)</p> Signup and view all the answers

What is a key characteristic of the parameter list in a message name for SSD?

<p>Parameters are separated by commas and enclosed in parentheses (B), It may be omitted if no parameters are needed (D)</p> Signup and view all the answers

Which design principle emphasizes the separation of different responsibilities in classes?

<p>Separation of responsibility (A)</p> Signup and view all the answers

What is the goal of protecting parts of a system from variations?

<p>To isolate stable components from those expected to change. (C)</p> Signup and view all the answers

What type of information does a special case sequence diagram emphasize?

<p>Input and output messaging requirements for a single use case (B)</p> Signup and view all the answers

Which of the following statements regarding messages in SSD is true?

<p>Messages can be represented as verbs followed by nouns (D)</p> Signup and view all the answers

What does high cohesion in a class indicate?

<p>The class is focused on a single purpose. (D)</p> Signup and view all the answers

Which type of coupling is considered optimal in class design?

<p>Loosely coupled classes. (C)</p> Signup and view all the answers

Which of the following is NOT a component of a System Sequence Diagram?

<p>Detailed system architecture (D)</p> Signup and view all the answers

When using message formats in SSD, how should names be structured?

<p>Lowercase letters with uppercase letters separating words and no spaces (B)</p> Signup and view all the answers

What does encapsulation refer to in object-oriented design?

<p>Combining methods with data into a single unit. (A)</p> Signup and view all the answers

Which statement is true regarding the responsibilities of objects in a system?

<p>Objects should know and do what they are asked to do. (D)</p> Signup and view all the answers

Which of the following best describes the principle of coupling?

<p>It measures how closely classes are related. (A)</p> Signup and view all the answers

What is the primary goal of Agile development?

<p>Develop software (B)</p> Signup and view all the answers

Which principle is emphasized in the Agile Manifesto?

<p>Value individuals and interactions over processes and tools (B)</p> Signup and view all the answers

What does a product backlog represent in SCRUM?

<p>A prioritized list of user requirements (B)</p> Signup and view all the answers

Who is responsible for controlling the backlog in SCRUM?

<p>The product owner (B)</p> Signup and view all the answers

In Agile modeling, what is considered a crucial aspect of building models?

<p>Minimizing modeling activity to only what is necessary (B)</p> Signup and view all the answers

What defines a 'scrum sprint'?

<p>A time-controlled mini-project to implement part of the system (D)</p> Signup and view all the answers

What is a critical attitude toward change in Agile development?

<p>Change should be embraced and carried out incrementally (C)</p> Signup and view all the answers

What is the main role of a controller in a system architecture?

<p>To switch between user-interface classes and domain layer classes. (D)</p> Signup and view all the answers

What role does open communication play in Agile development?

<p>It helps learn from each other and enhances project outcomes (B)</p> Signup and view all the answers

What does an activation lifeline represent in sequence diagrams?

<p>The time duration when an object is actively executing. (B)</p> Signup and view all the answers

Which guideline should be followed when detailing messages in a sequence diagram?

<p>Elaborate each message with true/false conditions, parameters, and returned values. (A)</p> Signup and view all the answers

What assumption is made when designing a system according to the principles outlined?

<p>Technology functions perfectly without issues. (B)</p> Signup and view all the answers

Which layer should be added to a multilayer sequence diagram to handle data interactions?

<p>Data layer to read and write persistent data. (D)</p> Signup and view all the answers

What is the purpose of separating user interface elements from application logic?

<p>To protect stable components from variations and changes. (A)</p> Signup and view all the answers

How can a new object be instantiated according to the provided methods?

<p>By sending a message to a data access object for persistent data. (C)</p> Signup and view all the answers

Which of the following is not a characteristic of a controller?

<p>It is essential for direct user interaction with the domain layer. (D)</p> Signup and view all the answers

Flashcards

System Sequence Diagram (SSD)

A diagram that shows the interaction between a user (actor) and a system for a specific use case, focusing on the sequence of messages.

SSD - Actor

The user or external system initiating interaction with the system in a specific use case.

SSD - system message format

It follows a structure of the name of the message, separated by upper-case letters and enclosed in parentheses, with parameters (if any).

SSD - Outgoing Messages

System outputs, generated as a response to inputs/use case or requests to other systems.

Signup and view all the flashcards

SSD - Message Notation

SSD use a special notation ([condition] return-value := message-name (parameter-list)) to represent messages, including conditions (true/false).

Signup and view all the flashcards

SSD - Conditionals (brackets)

Conditions used in SSD messages [ ] to control whether a certain message is sent based on a specific truth value (true/false).

Signup and view all the flashcards

SSD - Parameter List

List of data values passed with messages within the SSD, enclosed in parentheses.

Signup and view all the flashcards

Message Repetition in SSD

Indicates repeating or looping of messages (specified by asterisk - '*').

Signup and view all the flashcards

System Operations

High-level operations offered by a system, triggered by external input or events from actors.

Signup and view all the flashcards

Use Case Driven Design

The object-oriented design process focusing on individual use cases.

Signup and view all the flashcards

Persistent Class

A class whose objects' data persists after system shutdown.

Signup and view all the flashcards

Entity Class

A design identifier for a problem domain class, often persistent.

Signup and view all the flashcards

Boundary Class

A class on the system's boundary (e.g., input forms, web pages).

Signup and view all the flashcards

Controller Class

A mediator between boundary and entity classes.

Signup and view all the flashcards

Data Access Class

Retrieves/sends data to a database.

Signup and view all the flashcards

Stereotype

A way to categorize a model element by its characteristics (e.g., using guillemots).

Signup and view all the flashcards

Concrete Class

A class that can be instantiated, meaning you can create objects from it. It's like a blueprint for real-world objects.

Signup and view all the flashcards

Object Responsibility

Each object is responsible for carrying out specific tasks in the system, like a team member having a specific role.

Signup and view all the flashcards

Separation of Concerns

Breaking down a system into separate, independent parts that each handle a specific area of logic or functionality.

Signup and view all the flashcards

Protection from Variations

Designing a system so that parts that are likely to change are separate from those that are stable.

Signup and view all the flashcards

Coupling

A measure of how tightly interconnected classes are. High coupling means classes are heavily dependent on each other.

Signup and view all the flashcards

Loose Coupling

Classes have minimal dependencies on each other, making the system more flexible and easier to modify.

Signup and view all the flashcards

Cohesion

A measure of how focused and unified a single class is in terms of its responsibilities. High cohesion means the class has a clear purpose.

Signup and view all the flashcards

Encapsulation

Bundling data and the methods that operate on that data within a single class, hiding internal details from the outside.

Signup and view all the flashcards

Controller Role

A class acting as an intermediary between the user interface (view) and the domain logic (model), reducing their direct interaction.

Signup and view all the flashcards

Controller's Purpose

To manage user requests, interact with the domain layer, and return results to the view, promoting loose coupling and modularity.

Signup and view all the flashcards

Lifeline in a Sequence Diagram

A dashed line representing an object or actor's existence throughout the interaction, serving as the origin and destination for messages.

Signup and view all the flashcards

Activation Lifeline

A vertical box on a lifeline indicating the time period when an object is active, processing a message.

Signup and view all the flashcards

Message Origins and Destinations

Messages are sent between objects, originating from one lifeline and arriving at another, indicating interaction.

Signup and view all the flashcards

Sequence Diagram for Design

A tool for visualizing interactions between objects and actors, aiding in understanding and refining class design and relationships.

Signup and view all the flashcards

Protection from Variations Principle

Separating parts of a system that are likely to change from those that are stable, reducing the impact of modifications.

Signup and view all the flashcards

Multilayer Sequence Diagrams

Sequence diagrams expanded to include the view layer for handling user input and the data layer for data storage, providing a comprehensive view of system interactions.

Signup and view all the flashcards

Package Diagram

A diagram that visually represents the organization of software components into packages, often used to define subsystems or group classes for better understanding.

Signup and view all the flashcards

Dependency Relationship

A connection between packages or classes where a change in one component might require a change in another. Indicated by a dashed line with an arrow pointing from the dependent to the independent component.

Signup and view all the flashcards

Three-Layer Architecture

A common software design pattern that divides an application into three distinct layers: View, Domain, and Data Access, each responsible for a specific task.

Signup and view all the flashcards

View Layer Responsibilities

Responsible for displaying user interfaces, handling input events, displaying data, accepting and validating input, and forwarding data to the domain layer.

Signup and view all the flashcards

Domain Layer Responsibilities

Responsible for processing business rules, manipulating problem domain objects, and preparing data for storage.

Signup and view all the flashcards

Agile Development

A philosophy and set of guidelines for building systems in an unknown and changing environment, emphasizing flexibility and adaptability.

Signup and view all the flashcards

Chaordic

Describes agile projects as simultaneously chaotic and ordered.

Signup and view all the flashcards

Agile Values

Principles prioritizing responsiveness to change, individual contributions, working software, and customer collaboration.

Signup and view all the flashcards

Agile Modeling Principles

Guidelines for creating useful models, focusing on practicality and minimizing unnecessary complexity.

Signup and view all the flashcards

SCRUM

A framework for agile projects, combining rugby principles and agile values.

Signup and view all the flashcards

Product Backlog

A prioritized list of user requirements for an agile project.

Signup and view all the flashcards

Product Owner

The client representative in a scrum project, responsible for the product backlog.

Signup and view all the flashcards

Scrum Sprint

A time-boxed mini-project within a scrum, focused on completing specific tasks.

Signup and view all the flashcards

Study Notes

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

  • System Sequence Diagram (SSD): Shows interactions between an actor and the system for a use-case scenario. The system is visualized as a black box. Initiating actors and external systems are identified. The messages exchanged, and their sequence within the system, are detailed. Special cases for sequence diagrams illustrate object use within the system, highlighting inputs and outputs for a use case. Actor, system, and object lifelines are part of the diagram. Messages show content and structures of system inputs and outputs. Formatted messages in SSD follow UML format (lowercase letters, no spaces, using commas to separate parameters. Empty parentheses are used if no parameters needed)

  • Message Formats in SSD: Message names are followed by parameters. Names start with lowercase letters. Compound words are combined with uppercase letters as delimiters. Parameters are separated by commas. If no parameters exist, empty parentheses are used. True/False conditions are indicated by [true/false condition]. Return values, if any, are included with :=. An asterisk (*) indicates repetition or looping. Brackets [] are used for true/false conditions. The message-name (verb-noun description) and a parameter-list (with parentheses, if applicable) denote the service and passed data. Return values (denoted by :=) return data between source and destination objects.

  • System Events and System Operations: System operations are public, black-box functions offered by the system. These are triggered by external inputs/system events, initiated by actors.

  • Extending and Integrating Requirements Models: Includes use case diagrams, use case descriptions, activity diagrams, system sequence diagrams (SSDs), and domain class diagrams to illustrate use case realizations. Domain classes, using models, are part of the diagram.

  • Steps of Object-Oriented Design: Object-oriented design methods identify classes, their methods, and messages to complete a use case. The primary driving component in the design methodology is use cases.

  • Design Class Diagrams: Stereotype descriptions use guillemots (<< >>). Persistent classes persist after shut downs (e.g., data). Entity classes denote problem domain classes. Boundary classes represent system boundaries (input/output). Controller classes control communication between boundary and entity classes. Data access classes manage database interaction. A class's attributes have visibility (e.g. +public, −private).

  • Fundamental Design Principles (Week 9): Object responsibility, knowing and doing, separation of concerns, and protection from variations are core principles. Objects are fundamental to system processing. Segregation by class into groups or packages improves overall organization. Parts of a system less likely to change are separated to protect from major variations.

  • Quantitative Measurement of Coupling (Week 9): Measures how tightly related classes are linked, ranging from tightly to loosely coupled. Fewer associations or messages reduce coupling, which is the desired outcome.

  • Cohesion (Week 9): Measures internal unity of purpose in a class. High cohesion implies cohesive responsibilities (e.g., all customer-related responsibilities are in one class). Conversely, low cohesion suggests broad or mismatched responsibilities. Higher is better to increase system organization.

  • Encapsulation (Week 9): Bundles data with methods operating on that data within a single unit. Objects encapsulate data, using methods to hide data members/methods, improving system robustness. This decreases interdependence between system components.

  • Inheritance (Week 9): A mechanism to derive class attributes and methods from a parent (super) class into child (subsidiary) classes. Inheritance creates a hierarchy, inheriting from parents. It avoids redundant code. Parent/superclass attributes/methods don't need to be redefined in child/subclasses.

  • Indirection (Week 9): Introduces an intermediate class between interacting entities. Improves system decoupling, but still links them. Security can also be supported to handle messages and maintain robustness. Example including a controller class between UI and problem domain classes.

  • Polymorphism (Week 9): Allows same-named methods with differing parameters in the class. Reduces code, improving the flexibility and extensibility of class systems within a given class, using same names with different parameters which provides different operations or implementations for each use.

  • Use Case Controller (Week 9): Acts as a switchboard between user interfaces and domain layers. Reduces coupling between layers, improves organization and maintains a central location for directing communications between system layers. It can be created for a use case or group of related use cases (e.g., artifact).

  • Understanding Sequence Diagrams (Week 10): Sequence diagrams clarify interactions between system objects and actors, using lifelines, activations, and messages. The dashed lines under objects are lifelines, which are origin/destination points for messages. Activation (vertical box on the lifeline) indicates actions. Messages (arrows) identify exchanges and return values.

  • OOD with Sequence Diagrams (Week 10): Guides use case selection, creation of initial Data Class Diagrams (DCDs) and extending the DCDs with further messages (add input messages).

  • Guidelines for Sequence Diagrams (Week 10): Details the format of the input use case messages, the messages, determining origin and destination objects, elaborating messages. Fleshing out each message with true/false, parameters, and return values.

  • Assumptions for Sequence Diagrams (Week 10): Assumes a perfect technology, no logon or tech issues, and no exceptions are handled which maintains a simplistic view of the system.

  • Fundamental Design Principles (Week 10): Emphasizes Protection from Variations: Separating parts of a system that are likely to change from those that remain stable (e.g., UI vs application logic).

  • Multilayer Sequence Diagrams (Week 10): Incorporates view layers and data layers for input handling and data access. View layer manages input screens, sends messages to the data layer, which accesses relevant data systems.

  • Data Layer (Week 10): Handles persistent object reading and updating, including reading/writing data to systems. Instantiate objects and send messages managing data persistence. Methods provide data access and object instantiation.

  • Package Diagrams (Week 10): Categorize, group, and visually represent classes or subsystems within the system. Package usage creates a method of classifying components/subsystems in the system. A dependency relationship, indicated by dashed lines, denotes a component/module dependency.

  • Implementation Issues Three Layer Design (Week 10): Lists Responsibilities of the View Layer for handling user interactions and reports, displaying data as well as receiving and validating user input.

  • Agile Development (Week 11): A philosophy and guidelines, emphasizing responding to change and customer collaboration over plans and documentation in a rapidly changing environment. Chaordic projects, as a guide, refer to chaotic yet ordered projects.

  • Agile Values (Week 11): Emphasizes customer collaboration and working software, not comprehensive documentation or sticking to strict plans. This leads to flexibility, adapting to changing environments.

  • Agile Principles (Week 11): Describes responsive project design and development values, in contrast to fixed plans, using principles (build only necessary, next effort as secondary goal), minimizing modeling efforts to achieve forward movement, adapting to change, which can reversed if necessary. All build on the fundamentals of understanding and communicating requirements during the software development cycle.

  • SCRUM (Week 11): Combining principles of rugby and agility in software development, using time-boxed projects as important methodologies. Scrum methods are used for project management.

  • Scrum Sprint (Week 12): Project implementation, time-boxed, part of the system.

  • Product Backlog (Week 12): A prioritized list of user requirements for the system, to be followed in the project management cycle.

  • Product Owner (Week 12): The client stakeholder who controls the product backlog, as part of the project management cycle.

  • Scrum Master (Week 12): The project manager who leads and supports the project team, as part of the project management lifecycle.

  • Domain Layer Classes (Week 12): Classes related to the problem being solved. They carry out the business logic and are the core of the system. This can include creating and managing data storage, such as data persistence (database).

  • Data Access Layer Classes (Week 12): Responsible for data interaction with the database. Functions include establishing database connections, executing SQL statements on databases, and converting database result-set information into domain objects.

  • Domain Layer and Data Access Layer Responsibilities (Week 12): Details specific responsibilities of the Domain (business logic) and Data Access layers to be considered.

  • Start and Shutdown (Week 12): The initiation and completion of system operations and activities.

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

Test your knowledge on System Analysis and Design concepts with a focus on System Sequence Diagrams (SSD). This quiz covers key topics like interactions, message formats, and UML conventions that are critical for understanding system use-case scenarios. Perfect for Toronto Metropolitan University students preparing for their final exam.

More Like This

UML System Sequence Diagrams
10 questions
System Sequence Diagrams Overview
41 questions
Hoofdstuk 5
33 questions

Hoofdstuk 5

Adamamor095 avatar
Adamamor095
System Sequence Diagrams in UML
45 questions

System Sequence Diagrams in UML

IntegratedRainbow1809 avatar
IntegratedRainbow1809
Use Quizgecko on...
Browser
Browser