Podcast
Questions and Answers
Scrum benefits include the product being broken down into a set of manageable and understandable chunks.
Scrum benefits include the product being broken down into a set of manageable and understandable chunks.
True (A)
Agile methods have not proved to be successful for small and medium sized projects that can be developed by a small co-located team.
Agile methods have not proved to be successful for small and medium sized projects that can be developed by a small co-located team.
False (B)
Scaling up agile methods involves changing the methods to cope with smaller, shorter projects where there are multiple development teams, perhaps working in different locations.
Scaling up agile methods involves changing the methods to cope with smaller, shorter projects where there are multiple development teams, perhaps working in different locations.
False (B)
Scaling out is concerned with how agile methods can be introduced across a large organization with many years of software development experience.
Scaling out is concerned with how agile methods can be introduced across a large organization with many years of software development experience.
Improved communication is not a key reason for the success of agile methods for small and medium sized projects.
Improved communication is not a key reason for the success of agile methods for small and medium sized projects.
Unstable requirements do not hold up progress in Scrum.
Unstable requirements do not hold up progress in Scrum.
Making the stack a subclass of the linked list is considered a good design choice.
Making the stack a subclass of the linked list is considered a good design choice.
The delegating method in the delegator class should call a method in the delegate class to perform the required task.
The delegating method in the delegator class should call a method in the delegate class to perform the required task.
The delegation pattern encourages favoring inheritance over association for flexible design.
The delegation pattern encourages favoring inheritance over association for flexible design.
Generalization is often overused in delegation anti-patterns.
Generalization is often overused in delegation anti-patterns.
Duplication of chunks of code is a common issue associated with the delegation pattern.
Duplication of chunks of code is a common issue associated with the delegation pattern.
To minimize development costs by reusing methods, an association must exist between the delegator and delegate classes.
To minimize development costs by reusing methods, an association must exist between the delegator and delegate classes.
A System Sequence Diagram should not be done for frequent or complex alternative scenarios of a use case.
A System Sequence Diagram should not be done for frequent or complex alternative scenarios of a use case.
A System Sequence Diagram (SSD) shows the interactions between actors and systems, whereas a Use Case Diagram focuses on external actors only.
A System Sequence Diagram (SSD) shows the interactions between actors and systems, whereas a Use Case Diagram focuses on external actors only.
In a System Sequence Diagram, loops or iterations are indicated to show repetitive steps in the interaction between actors and systems.
In a System Sequence Diagram, loops or iterations are indicated to show repetitive steps in the interaction between actors and systems.
A System Sequence Diagram for buying a beverage from a vending machine should include details about external actors and the return values associated with messages invoked by them.
A System Sequence Diagram for buying a beverage from a vending machine should include details about external actors and the return values associated with messages invoked by them.
Use Case Diagrams are more detailed than System Sequence Diagrams in terms of showing the order of events and interactions between actors and systems.
Use Case Diagrams are more detailed than System Sequence Diagrams in terms of showing the order of events and interactions between actors and systems.
System Sequence Diagrams are prepared to model interactions between external actors only, excluding any system events.
System Sequence Diagrams are prepared to model interactions between external actors only, excluding any system events.
Sequence diagrams are useful for showing the overall architecture of a system.
Sequence diagrams are useful for showing the overall architecture of a system.
It is recommended to start building a sequence diagram by considering the use case scenarios to be modeled.
It is recommended to start building a sequence diagram by considering the use case scenarios to be modeled.
The initial message in a sequence diagram should always originate from a user interface.
The initial message in a sequence diagram should always originate from a user interface.
To determine where the initial message should be sent, you need to consider which class should have the corresponding method in its protocol.
To determine where the initial message should be sent, you need to consider which class should have the corresponding method in its protocol.
Using a pair of object diagrams showing the states before and after the operation can be helpful when building a sequence diagram.
Using a pair of object diagrams showing the states before and after the operation can be helpful when building a sequence diagram.
Sequence diagrams only need to consider the main scenario of a use case, not the alternative scenarios.
Sequence diagrams only need to consider the main scenario of a use case, not the alternative scenarios.
The Abstraction-Occurrence pattern is used to represent a set of related objects that share common information but also differ from each other in important ways.
The Abstraction-Occurrence pattern is used to represent a set of related objects that share common information but also differ from each other in important ways.
The Abstraction-Occurrence pattern requires creating a one-to-one association between the abstraction and occurrence classes.
The Abstraction-Occurrence pattern requires creating a one-to-one association between the abstraction and occurrence classes.
The Abstraction-Occurrence pattern is most useful when the members of a set of occurrences have no common information and are completely unrelated.
The Abstraction-Occurrence pattern is most useful when the members of a set of occurrences have no common information and are completely unrelated.
The Abstraction-Occurrence pattern is primarily used to represent sets of unrelated objects that happen to share a common name or identifier.
The Abstraction-Occurrence pattern is primarily used to represent sets of unrelated objects that happen to share a common name or identifier.
The Abstraction-Occurrence pattern can be used to represent a set of book copies in a library, where each copy has the same title, author, and other metadata, but different physical attributes like condition or location.
The Abstraction-Occurrence pattern can be used to represent a set of book copies in a library, where each copy has the same title, author, and other metadata, but different physical attributes like condition or location.
The Abstraction-Occurrence pattern can be used to represent a set of flights that leave at the same time every day for the same destination, where each flight may have different aircraft, crew, and other unique details.
The Abstraction-Occurrence pattern can be used to represent a set of flights that leave at the same time every day for the same destination, where each flight may have different aircraft, crew, and other unique details.
Study Notes
Delegation Pattern
- Delegation is used when inheritance is not appropriate (e.g., because the is-a rule does not apply).
- It allows for the reuse of methods by calling a method in the delegate class to perform the required task.
- An association must exist between the delegator and delegate classes.
- Example: The stack class could be created using an existing class in the Java collection framework called LinkedList using delegation pattern.
Delegation Anti-Patterns
- Overusing generalization and inheriting the method that's to be reused.
- Duplication of chunks of code.
Delegation Pattern Principles
- Favoring association over inheritance when the full power of inheritance is not needed.
- Avoiding duplication of chunks of code.
Scrum Benefits
- Breaking down the product into manageable and understandable chunks.
- Unstable requirements do not hold up progress.
- The whole team has visibility of everything, and team communication is improved.
- Customers see on-time delivery of increments and gain feedback on how the product works.
- Trust between customers and developers is established, and a positive culture is created.
Scaling Agile Methods
- Agile methods have proved to be successful for small and medium-sized projects that can be developed by a small co-located team.
- Scaling up agile methods involves changing these to cope with larger, longer projects where there are multiple development teams, perhaps working in different locations.
- There are two types of scaling: scaling up and scaling out.
- Scaling up is concerned with using agile methods for developing large software systems that cannot be developed by a small team.
- Scaling out is concerned with how agile methods can be introduced across a large organization with many years of software development experience.
System Sequence Diagram (SSD)
- SSD shows the events that external actors generate, their order, and possible inter-system events.
- All systems are treated as a black box; the diagram places emphasis on events that cross the system boundary from actors to systems.
- SSD should be done for the main success scenario of the use case and frequent or complex alternative scenarios.
- SSD should specify and show the following:
- External actors.
- Messages (methods) invoked by these actors.
- Return values (if any) associated with previous messages.
- Indication of any loops or iteration area.
Abstraction-Occurrence Pattern
- Context: In a domain model, you find a set of related objects "occurrences"; the members of such a set share common information but also differ from each other in important ways.
- Problem: What is the best way to represent such sets of occurrences?
- Forces: You want to represent the members of each set of occurrences without duplicating the common information.
- Solution:
- Create an "abstraction" class that contains the common data.
- Create an "occurrence" class representing the occurrences of this abstraction.
- Connect these classes with a one-to-many association.
Sequence Diagrams
- A sequence diagram shows the participants (objects) in an interaction (a use case or part of it) and the sequence of messages among them.
- Each use case requires one or more sequence diagrams to describe its behavior.
- Weaknesses: Not easy to see the overall pattern of message flow; actual sequence of messages is difficult to see.
- Tips for building a sequence diagram:
- Begin by looking at interactions implied by use cases.
- Consider a use case scenario to be modeled.
- You need to know where the first message in the use case originates.
- You need to consider the message flow and to where the initial message should be sent.
- Use the post-condition(s) of the use cases which reflect how the system must change.
- Take into consideration the main scenario and the alternative ones.
- It may be helpful to use a pair of object diagrams, showing the states before and after the operation in question.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Explore the benefits of using Scrum methodology for team communication and product development. Learn about breaking down products into manageable chunks, addressing unstable requirements, improving team visibility and communication, and gaining customer feedback through on-time delivery.