Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
78 Cards in this Set
- Front
- Back
01:01 - It is common that new Object Oriented development teams underestimate the difficulty of using a full analysis and design methodology
|
True
|
|
01:02 - The template method provides the underlying foundation of the 1:N Recursive Connection Metapattern
|
True
|
|
01:03 - During an Object-Oriented, iterative Software Development Life Cycle, the time spent on the specification, analysis and design activities is different in all subsequent iterations
|
True
|
|
01:04 - When analyzing system requirements it is not important to understand why a requirement exists, only that it is something the system must do.
|
False
|
|
01:05 - The 1:N Unification Metapattern can be used to describe the Observer design pattern
|
False
|
|
01:06 - In a system, each instance of a class should be restricted to preforming only one role.
|
False
|
|
01:07 - Metapatterns provide a way to describe the overall functionality of a system at a very high level
|
False
|
|
01:08 - Frequent refactoring of code results in better designs evolving
|
True
|
|
01:09 - The State pattern allows the internal state of an object to be externalized without breaking encapsulation, and restored at a later stage
|
False
|
|
01:10 - One of the major tasks in refactoring is the decomposition of large methods
|
True
|
|
09:01 - As a designer you are expected to be representative of the end users of the software you design.
|
False
|
|
09:02 - A result of the complexity of software is that a single designer will rarely have complete knowledge of a given system they design
|
True
|
|
09:03 - A requirements specification is an agreement with the customer about how their problem will be solved by a software system.
|
False
|
|
09:04 - When using object-oriented design techniques it is sometimes difficult to know when an attribute, relationship or behavior should be a class
|
True
|
|
09:05 - When capturing system requirements, the software designer must learn as much about the domain of the problem as possible
|
False
|
|
09:06 - An iterative design cycle allows for changes to be made to designs while minimizing potential rework
|
True
|
|
09:07 - The Singleton pattern comes from the structural category of patterns.
|
False
|
|
09:08 - Frameworks and Architectures are alternative names for Design Patterns.
|
False
|
|
09:09 - Layering is a common technique for abstracting architectures
|
False
|
|
09:11 - Refactoring is useful…
a) Before attempt add functionality to existing code b) When designing components of a system that are to be added to an existing code base c) When reviewing code d) When preparing test suites e) When discussing requirements with the customer |
a) Before attempt add functionality to existing code
b) When designing components of a system that are to be added to an existing code base c) When reviewing code |
|
09:12 - The State design pattern…
a) Can be used to delegate execution of behavior to another object b) Is used to limit the creation of possible states for an object c) Provides a mechanism to allow code to more closely reflect state models produced in design d) can used when different behaviors are required in different states of a country. e) Should not be used in a system that also implements the Strategy pattern |
a) Can be used to delegate execution of behavior to another object
c) Provides a mechanism to allow code to more closely reflect state models produced in design d) can used when different behaviors are required in different states of a country. |
|
09:13 - When gathering requirements…
a) It is essential for the requirement writer to assume that they are domain experts. b) The development team must be involved in the collection of requirements. c) Requirements must be written to that they can be understood by all stakeholders d) It is expected that the requirements will reflect the scope of the project. e) It is inappropriate to use any UML diagrams |
c) Requirements must be written to that they can be understood by all stakeholders
d) It is expected that the requirements will reflect the scope of the project. |
|
09:14 - Which of the following are phases of the Rational Unified Process?
a) Interception: capturing requirements from stakeholders b) Elaboration: Taking requirements and creating an architecture and design from which a fixed quote can be made for implementation of the system c) Collaboration: bringing the requirements, analysis, design and implementation teams to ensure that the system scope is clearly understood. d) Trialing: Establishing that the requirements were captured correctly from stakeholders e) Transition: deploying the system to users, including training and documentation |
b) Elaboration: Taking requirements and creating an architecture and design from which a fixed quote can be made for implementation of the system
e) Transition: deploying the system to users, including training and documentation |
|
08:1 - It is common that new Object Oriented development teams find that projects are more likely to be developed with more resources than they used previously.
|
False
|
|
08:2 - The 1:N Recursive Connection Metapattern can be used to describe the Observer design pattern
|
False
|
|
07:01 - Analysis is the task of understanding how the systems in a solution are going to need to interact to solve the problem which has been presented.
|
False
|
|
07:02 - Design patterns are a tool used by software engineers to communicate ways of successfully designing and implementing parts of solutions
|
True
|
|
07:03 - The “Bridge” design pattern is used to allow two or more distinct systems to work together
|
False
|
|
07:04 - Abstraction is the act of selectively ignoring details which distinguish entities so that they can be treated as a single class of objects.
|
True
|
|
07:05 - It is important to record the design decisions that have been made while analyzing or designing a system
|
True
|
|
07:06 - During the design phase of a project, a significant proportion of the work is involved in the definition of both user and system interfaces.
|
False
|
|
07:07 - The UML stereotype <<abstract>> when applied to a class indicates that a class only contains declarations of the methods in that class, without defining the implementation of these
|
False
|
|
07:08 - Change management is used to ensure that system configuration does not change during the implementation and testing phases.
|
False
|
|
07:09 - A state diagram is used to communicate the sequence of events that might take place during the lifetime of an object.
|
False
|
|
07:10 - Refactoring is the process of changing the observable behavior of a piece of code without making any changes to existing code
|
False
|
|
06:01 - Risk analysis is a technique that helps simplify complex systems
|
False
|
|
06:02 The design phase of a system attempts to identify what the system.must do, and implements this understanding..
|
False
|
|
06:03 - When discussing the types of reuse, client-server relationship.represents an has-a relationship..
|
True
|
|
06:04 - A good use case factors common behavior by pushing such behavior.into other use cases which extend it..
|
False
|
|
06:05 - It is not necessary to maintain a history of the design phases of.software, since it is most important to reflect the current state of the.system being built or designed..
|
False
|
|
06:06 - The Observer pattern has similarities to, and can be built up from, the.Mediator pattern.
|
True
|
|
06:07 - A UML class with the <<interface>> stereotype is used to capture.common implementation behavior in a system.
|
False
|
|
06:08 - A software component or library should have published interfaces.that must only be changed by adding to the interface, never by.removing methods nor changing their behavior..
|
True
|
|
06:09 - When discussing a UML sequence diagram, a timeout message is one that the server will reject if the client does respond immediately.
|
False
|
|
06:10 - The command pattern encapsulates a request as an object, which.can be assigned to a class or object as a parameter.
|
True
|
|
05:01 The inability of developers to deal with the inherent complexity of.software systems results in missed opportunities.
|
True .
|
|
05:02 The testing of a software system is a phase of the software.development life-cycle which takes place independently of all other.phases.
|
False.
|
|
05:03 Traceability is a technique used to help identify the potential.candidate architectures of a system.
|
False.
|
|
05:04 In a large project spanning many years, a sequential development.approach leads to frustration since the short term.goals are frequently intangible.
|
True .
|
|
05:05 The analysis should contain no details which, when left out, make no.difference to the mapping from requirements to analysis model..
|
True.
|
|
05:06 Completeness is the measure of whether a module captures all of an.abstractions useful characteristics.
|
True .
|
|
05:07 Reuse of designs in systems is made more difficult because a design.can be defined at one of many different levels of abstraction.
|
True.
|
|
05:08 The State Pattern, as described by Gamma, aims to capture and.externalize an object’s internal state so that the object can be.restored to this state later. It achieves this without violating.encapsulation,.
|
False.
|
|
05:09 Refactoring is an important technique when implementing systems.because it limits the possibilities for the introduction of new faults in.software systems..
|
True.
|
|
05:10 When describing a pattern at a meta-pattern level, a hotspot refers to.any part of a mechanism or structure that remains constant.regardless of the domain in which the pattern is to be deployed
|
False.
|
|
08:03 - The Template Method pattern allows the internal state of an object to be externalized without breaking encapsulation, and restored at a later stage.
|
False
|
|
08:04 - One of the major tasks in refactoring is the renaming of methods and classes to make their function more easily identified
|
True
|
|
08:05 - It is important to record the design decisions that have been made while analyzing or designing a system
|
True
|
|
08:06 - During an Object-Oriented, iterative Software Development Life Cycle, the majority of time is spend in the design and implementation phases.
|
False
|
|
08:07 - The UML stereotype <<interface>> when applied to a class indicates that a class only contains declarations of the methods in that class, without defining the implementation of these.
|
True
|
|
08:08 - When discussing the types of reuse, client-server relationship represents a “has-a” relationship.
|
True
|
|
08:09 - An activity diagram is particularly useful for communicating a timebased flow of interactions between classes.
|
False
|
|
08:11 - The use of Design Patterns has which of the following advantages?
a) They provide a communication tool with which experience can be captured and passed on b) They provide a common point of understanding between developers and their clients c) They reduce the solution space by expressing solutions for commonly encountered problems d) They identify common business practices and provide examples of the implementation of these e) They provide a target for refactoring in a system. |
a) They provide a communication tool with which experience can be captured and passed on
c) They reduce the solution space by expressing solutions for commonly encountered problems e) They provide a target for refactoring in a system. |
|
08:12 - During the analysis phase in an iterative and incremental software development life-cycle which of the following might happen?
a) Representing the requirements expressed by the customer in a suitable modeling language b) Integration testing c) Capturing definitions for terms which might be misunderstood d) Defining a suitable architecture e) Discussion of requirements with the customer |
a) Representing the requirements expressed by the customer in a suitable modeling language
c) Capturing definitions for terms which might be misunderstood |
|
08:13 - The Rational Unified Process …
a) is a phase locked process for software development b) can describe many of the aspects of the Extreme Programming paradigm c) must have all of its components used to ensure traceability of requirements d) should be tailored to match the requirements of the project it is used for e) is both iterative and incremental |
b) can describe many of the aspects of the Extreme Programming paradigm
d) should be tailored to match the requirements of the project it is used for e) is both iterative and incremental |
|
08:14 -When might you choose to refactor software?
a) When you have identified a bug and need to make the code easier to read b) When a client requests a change to the requirements for the system c) When you identify a section of code that is a candidate for reuse elsewhere in the system d) Before documenting the code e) After the target deployment environment for the system has been changed. |
a) When you have identified a bug and need to make the code easier to read
c) When you identify a section of code that is a candidate for reuse elsewhere in the system |
|
07:11 - Which of the following are important when collecting requirements from a customer?
a) Identifying what classes and objects exist in the system b) Identifying all relevant stakeholders for the project c) Understanding why each stakeholder has an interest in the success of the system d) Identifying processes and behaviors in the problem e) Building a user interface prototype |
b) Identifying all relevant stakeholders for the project
c) Understanding why each stakeholder has an interest in the success of the system d) Identifying processes and behaviors in the problem |
|
07:12 - During the design phase in an iterative and incremental software development life-cycle which of the following might happen?
a) Returning to the analysis phase to refine the analysis model b) Integration testing c) Capturing definitions for terms which might be misunderstood d) Identifying interfaces for subsystems e) Discussion of requirements with the customer |
a) Returning to the analysis phase to refine the analysis model
c) Capturing definitions for terms which might be misunderstood d) Identifying interfaces for subsystems |
|
07:13 - Which of the following types of diagram are a part of the UML?
a) Data Flow Diagram (DFD) b) Object Diagram c) Sequence Diagram d) Entity-Relationship Diagram e) Schema Map |
b) Object Diagram
c) Sequence Diagram |
|
07:14 - When might you choose to refactor software?
a) Before attempting to debug a piece of code b) Before publishing a release version of the code c) Before adding new functionality to the code d) Before restructuring the code e) Before applying a design pattern to the code |
a) Before attempting to debug a piece of code
c) Before adding new functionality to the code |
|
06:11 - The analysis process involves:
a) Identifying what classes and objects exist in the system b) Identifying the desired behavior of the system c) Identifying the key abstractions for a system d) Identifying where each class or object should be declared e) Implementing a coded prototype of the system |
b) Identifying the desired behavior of the system
c) Identifying the key abstractions for a system |
|
06:12 - When analyzing a problem specification, the following may give clues to the existence of key structural abstractions:
a) Concrete and logical things b) Organization of things c) Roles played by things d) Interfaces to external things e) Nouns and adjectives f) Nouns and verbs |
a) Concrete and logical things
b) Organization of things e) Nouns and adjectives |
|
06:13 - Which of the following might indicate that refactoring is required?
a) Duplicated Code b) Large numbers of classes c) long variable and class names d) Descriptive comments e) large numbers of loop constructs |
a) Duplicated Code
b) Large numbers of classes d) Descriptive comments |
|
06:14 - An association class
a) implements the classification of a group of similar associations between classes b) implements an association relationship between two classes c) might be necessary to implement an association whose multiplicity is one to many d) would be necessary to implement an association whose multiplicity is one to one e) may describe the relationship between two use cases |
b) implements an association relationship between two classes
c) might be necessary to implement an association whose multiplicity is one to many |
|
05:11 - The reasons we perform an analysis of the problem space before progressing to design are:
a) to identify a specify a preliminary solution for a problem that has been identified. b) to identify the various aspects of the problem that needs to be solved c) to identify the roles and attributes of any entities that contribute to the problem domain d) to not include the identification of potential interactions with external agents, actors and or systems e) to identify how the entities identified in the problem space need to interact with the various components that are required to implement the system. f) to ensure that we have a thorough understanding of that is required by the client before we start introducing the complexities that are necessary to implement the solution |
b) to identify the various aspects of the problem that needs to be solved
c) to identify the roles and attributes of any entities that contribute to the problem domain f) to ensure that we have a thorough understanding of that is required by the client before we start introducing the complexities that are necessary to implement the solution |
|
05:12 - Design :
a) Is a process we employ to take the requirements from a client and create a solution in terms of software systems b) Examines what classes need to exist and how these classes need to interact c) Identifies what mechanisms will be required to create a solution for a problem d) Requires that we identify what processes need to be deployed on various processing components of the system solution |
b) Examines what classes need to exist and how these classes need to interact
c) Identifies what mechanisms will be required to create a solution for a problem d) Requires that we identify what processes need to be deployed on various processing components of the system solution |
|
05:13 - Requirements for a system:
a) Should only be provided by the client, since requirements written by the solution team often result in the introduction of unnecessary features, or worse result in a solution that is unsatisfactory to the client. b) Are used to give system developers a better understanding of the requirements on the system. c) Are used to delimit the scope of the problem being addressed by a system d) Form the basis for the technical deliverables during the life-cycle of a system |
b) Are used to give system developers a better understanding of the requirements on the system.
c) Are used to delimit the scope of the problem being addressed by a system |
|
05:14 - Abstractions in a software design can be measured using…
a) Cohesion - the measure of how much of a system design has been inherited from patterns, or systems that have been shown to work in the past. b) Sufficiency - the measure of whether the module captures enough characteristics of the abstraction to permit meaningful and efficient interaction. c) Completeness - the measure of whether a module has been designed to a point that it can be completely implemented without ambiguity d) Primitiveness - the measure of whether a module has been constructed only from a set of well defined and accessible primitive operations e) Coupling - the measure of strength of association established by a connection from one module to another |
b) Sufficiency - the measure of whether the module captures enough characteristics of the abstraction to permit meaningful and efficient interaction.
e) Coupling - the measure of strength of association established by a connection from one module to another |