Podcast
Questions and Answers
What is the purpose of a dependency relationship in package diagrams?
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?
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?
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?
In a use case analysis, what type of classes does the Data Access Layer need to interact with?
What is indicated by the dashed line in a package diagram?
What is indicated by the dashed line in a package diagram?
What is an appropriate characteristic of a persistent class?
What is an appropriate characteristic of a persistent class?
Which type of class acts as a mediator between boundary classes and entity classes?
Which type of class acts as a mediator between boundary classes and entity classes?
In which diagram would you primarily represent use cases?
In which diagram would you primarily represent use cases?
What does the visibility indicator '+' signify in class attributes?
What does the visibility indicator '+' signify in class attributes?
What describes a boundary class in object-oriented design?
What describes a boundary class in object-oriented design?
In object-oriented design, the process of identifying classes and their messages is referred to as?
In object-oriented design, the process of identifying classes and their messages is referred to as?
What is the primary function of a data access class?
What is the primary function of a data access class?
What aspect of the design class diagram do stereotypes convey?
What aspect of the design class diagram do stereotypes convey?
What is the primary function of a base Controller in a system?
What is the primary function of a base Controller in a system?
In a sequence diagram, what does the activation lifeline represent?
In a sequence diagram, what does the activation lifeline represent?
Which guideline should be followed when extending input messages in object-oriented design?
Which guideline should be followed when extending input messages in object-oriented design?
What does the design principle 'Protection from Variations' emphasize?
What does the design principle 'Protection from Variations' emphasize?
When instantiating a new object using the data layer, which method sends a message to the data access object?
When instantiating a new object using the data layer, which method sends a message to the data access object?
In object-oriented design, what must be identified when choosing a use case?
In object-oriented design, what must be identified when choosing a use case?
What is the role of messages in a sequence diagram?
What is the role of messages in a sequence diagram?
What assumption is made regarding technology during the development process?
What assumption is made regarding technology during the development process?
Which layer is responsible for displaying data fields and capturing input events?
Which layer is responsible for displaying data fields and capturing input events?
What indicates a dependency relationship in package diagrams?
What indicates a dependency relationship in package diagrams?
Which responsibility is NOT associated with the Data Access Layer?
Which responsibility is NOT associated with the Data Access Layer?
In a three-layer design, which layer prepares persistent classes for storage to the database?
In a three-layer design, which layer prepares persistent classes for storage to the database?
Which class responsibility involves processing the results of executed SQL statements?
Which class responsibility involves processing the results of executed SQL statements?
What is the role of system operations in system behavior analysis?
What is the role of system operations in system behavior analysis?
Which class type is primarily responsible for managing communication between the user interface and the data model?
Which class type is primarily responsible for managing communication between the user interface and the data model?
In a design class diagram, what does the visibility symbol '-' signify for attributes?
In a design class diagram, what does the visibility symbol '-' signify for attributes?
Which diagram would best represent the flow of actions in a use case?
Which diagram would best represent the flow of actions in a use case?
What characterizes a persistent class in object-oriented design?
What characterizes a persistent class in object-oriented design?
Which of the following is NOT a part of the steps of object-oriented design?
Which of the following is NOT a part of the steps of object-oriented design?
In object-oriented design, which of the following elements is categorized by the use of guillemots (>), as seen in stereotypes?
In object-oriented design, which of the following elements is categorized by the use of guillemots (>), as seen in stereotypes?
How is a use case realization typically represented in object-oriented design?
How is a use case realization typically represented in object-oriented design?
What type of class serves as an identifier for a specific problem domain in object-oriented design?
What type of class serves as an identifier for a specific problem domain in object-oriented design?
What does a System Sequence Diagram (SSD) primarily represent?
What does a System Sequence Diagram (SSD) primarily represent?
In message formats for an SSD, how are parameter names formatted?
In message formats for an SSD, how are parameter names formatted?
What does an asterisk (*) in the message notation of an SSD represent?
What does an asterisk (*) in the message notation of an SSD represent?
Which of the following best describes the notation '[true/false condition]' in the message format?
Which of the following best describes the notation '[true/false condition]' in the message format?
What must every outgoing message in an SSD be derivable from?
What must every outgoing message in an SSD be derivable from?
What is represented by the 'object lifeline' in a System Sequence Diagram?
What is represented by the 'object lifeline' in a System Sequence Diagram?
Which of the following statements is NOT true about messages in a System Sequence Diagram?
Which of the following statements is NOT true about messages in a System Sequence Diagram?
What is a concrete class?
What is a concrete class?
What does 'Separation of Responsibility' achieve in a software design?
What does 'Separation of Responsibility' achieve in a software design?
Why is it beneficial for classes to be loosely coupled?
Why is it beneficial for classes to be loosely coupled?
What does high cohesion in a class imply?
What does high cohesion in a class imply?
What is the principle behind 'Protection from Variations'?
What is the principle behind 'Protection from Variations'?
Which aspect does encapsulation primarily enhance?
Which aspect does encapsulation primarily enhance?
What does it mean for a class to have low cohesiveness?
What does it mean for a class to have low cohesiveness?
What is a characteristic of tightly coupled classes?
What is a characteristic of tightly coupled classes?
In object-oriented design, what does encapsulation facilitate?
In object-oriented design, what does encapsulation facilitate?
Which scenario is an example of applying the 'Separation of Concerns' principle?
Which scenario is an example of applying the 'Separation of Concerns' principle?
What is the main benefit of encapsulation in software design?
What is the main benefit of encapsulation in software design?
What does a superclass represent in inheritance?
What does a superclass represent in inheritance?
In indirection, what is the primary role of the intermediate class?
In indirection, what is the primary role of the intermediate class?
Which of the following best describes polymorphism?
Which of the following best describes polymorphism?
What does it mean for a class to have low coupling?
What does it mean for a class to have low coupling?
How does indirection enhance security in software design?
How does indirection enhance security in software design?
What is meant by method signature in the context of polymorphism?
What is meant by method signature in the context of polymorphism?
Which statement accurately describes inheritance?
Which statement accurately describes inheritance?
What is an example of a class that typically utilizes polymorphism?
What is an example of a class that typically utilizes polymorphism?
Flashcards
System Operations
System Operations
High-level operations offered by a system in response to external events.
Use Case Driven Design
Use Case Driven Design
Designing objects and methods for a use case, one use case at a time.
Persistent Class
Persistent Class
A class whose objects exist even after the system shuts down.
Entity Class
Entity Class
Signup and view all the flashcards
Boundary Class
Boundary Class
Signup and view all the flashcards
Controller Class
Controller Class
Signup and view all the flashcards
Data Access Class
Data Access Class
Signup and view all the flashcards
Stereotype
Stereotype
Signup and view all the flashcards
Package Diagram
Package Diagram
Signup and view all the flashcards
Dependency Relationship (Package/Class)
Dependency Relationship (Package/Class)
Signup and view all the flashcards
View Layer (Three-Tier Architecture)
View Layer (Three-Tier Architecture)
Signup and view all the flashcards
Domain Layer (Three-Tier Architecture)
Domain Layer (Three-Tier Architecture)
Signup and view all the flashcards
Data Access Layer (Three-Tier Architecture)
Data Access Layer (Three-Tier Architecture)
Signup and view all the flashcards
Controller Role
Controller Role
Signup and view all the flashcards
Sequence Diagram Lifeline
Sequence Diagram Lifeline
Signup and view all the flashcards
Activation (Sequence Diagram)
Activation (Sequence Diagram)
Signup and view all the flashcards
Multilayer Sequence Diagram
Multilayer Sequence Diagram
Signup and view all the flashcards
Data Layer
Data Layer
Signup and view all the flashcards
Instantiating a New Object (Method 1)
Instantiating a New Object (Method 1)
Signup and view all the flashcards
Use Case in OOD
Use Case in OOD
Signup and view all the flashcards
Fundamental Design Principle: Protection from Variations
Fundamental Design Principle: Protection from Variations
Signup and view all the flashcards
Use Case
Use Case
Signup and view all the flashcards
Design Class Diagram
Design Class Diagram
Signup and view all the flashcards
System Sequence Diagram (SSD)
System Sequence Diagram (SSD)
Signup and view all the flashcards
SSD Focuses on Input Content
SSD Focuses on Input Content
Signup and view all the flashcards
SSD Message Format
SSD Message Format
Signup and view all the flashcards
SSD Outgoing Messages
SSD Outgoing Messages
Signup and view all the flashcards
SSD Message Notation
SSD Message Notation
Signup and view all the flashcards
SSD: What is important for the system to receive (input) for a particular use case?
SSD: What is important for the system to receive (input) for a particular use case?
Signup and view all the flashcards
SSD: What does the system respond with (output) based on the input it receives?
SSD: What does the system respond with (output) based on the input it receives?
Signup and view all the flashcards
Concrete Class
Concrete Class
Signup and view all the flashcards
Object Responsibility
Object Responsibility
Signup and view all the flashcards
Separation of Responsibility (Concern)
Separation of Responsibility (Concern)
Signup and view all the flashcards
Protection from Variations
Protection from Variations
Signup and view all the flashcards
Coupling
Coupling
Signup and view all the flashcards
Cohesion
Cohesion
Signup and view all the flashcards
Encapsulation
Encapsulation
Signup and view all the flashcards
Tight Coupling
Tight Coupling
Signup and view all the flashcards
Loose Coupling
Loose Coupling
Signup and view all the flashcards
High Cohesion
High Cohesion
Signup and view all the flashcards
Dependency Relationship
Dependency Relationship
Signup and view all the flashcards
Three-Layer Package Diagram
Three-Layer Package Diagram
Signup and view all the flashcards
View Layer Responsibilities
View Layer Responsibilities
Signup and view all the flashcards
Domain Layer Responsibilities
Domain Layer Responsibilities
Signup and view all the flashcards
Inheritance
Inheritance
Signup and view all the flashcards
Indirection
Indirection
Signup and view all the flashcards
Polymorphism
Polymorphism
Signup and view all the flashcards
Constructor Method
Constructor Method
Signup and view all the flashcards
Method Signature
Method Signature
Signup and view all the flashcards
Reduce System Complexity
Reduce System Complexity
Signup and view all the flashcards
Robustness
Robustness
Signup and view all the flashcards
Security (Indirection)
Security (Indirection)
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.