Get ahead with a $300 test prep scholarship
| Enter to win by Tuesday 9/24
CS 301 Final Exam - Module 3
Terms in this set (32)
Series of sprint cycles which each develop an increment of the system, outline planning phase that establishes general objectives and designs the overall software architecture, closure phase that wraps up and completes documentation
The three phases of the Scrum method
1) Check out sources & tests from code base
2) Create test suite or enlarge existing test suite for new product feature
3) Implement functionality and make software pass tests
4) Refactor software
5) Perform regression testing
6) Check-in software and tests into code base
The order of steps in the common workflow for test driven development
Responding to change, individuals and interactions, working software, customer collaboration
The four most value items in the Manifesto for Agile Software Development
You never miss a deadline, you just deliver less content, Extreme Programming is an incremental software development process designed to cope with change
What is true about Extreme Programming?
A text with a list of features, a text with a set of use cases
Which of the following documents may serve as a functional specification (the outcome of the analysis phase)?
The intentions are different
What is the difference between the state and strategy pattern?
Choose the pattern...
A pattern that accomplishes the following: Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.
A pattern that accomplishes the following: Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
A pattern that accomplishes the following: Attach additional responsibilities to an object dynamically. Provide a flexible alternative to sub-classing for extending functionality.
A pattern that accomplishes the following: Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
A pattern that accomplishes the following: Define a family of algorithms, encapsulate each one, and make them interchangeable. Let the algorithm vary independently from clients that use it.
Classes Responsibilities Collaborators
CRC stands for
The first "C" in CRC stands for
The "R" in CRC stands for
The second "C" in CRC stands for
What is the relationship between customer class and checking account?
What is the relationship between the account class and the checking account class?
An interaction between an actor and a computer system. Each action yields a result and each result has a value to one of the actors.
A Use case is a sequence of actions. Each action is...
Connecting to a remote server over an unreliable network, operating a vending machine, checking of a PIN number for authentication
Under what circumstances would you consider using UML state diagrams? Specify a class whose responsibility is...
Classes and their relationships
Pick the most appropriate completion for a statement to describe what UML class diagrams visualize. UML class diagrams show...
The customer selects "transfer funds into account" option, chooses an account to transfer the funds from, chooses an amount, confirms the transaction, the transaction starts, the funding source has sufficient funds, the transfer is performed and successfully completed. The account balance is updated.
Use cases are often closely related to each other and share a lot of actions. From the following set of use cases, pick the one that would naturally become the base line. All others would the become variations of it.
are good to show interactions among classes allow for self calls, allow for object construction, can naturally visualize steps that are ordered in a partial order, are good to show which classes are involved in the execution of a use case
UML sequence diagrams have a number of properties. Please indicate which of the following statements are correct. Sequence diagrams...
is not comments, it is good programming style
When it comes to code-level documentation, the main contributor...
Comments that tell me the purpose for some code, that tell what the code should do
This type of comment is the most valuable
Some methods should be freely accessible (public), others can be kept secret/private, all attributes of an object should be kept secret/private
For encapsulation, which aspects of an object should be kept secret/private?
Inheritance relies on Liskov's substitution principle to work, In Java, inheritance always results in a hierarchy that takes the form of a tree. The Object class is the root note (most general super class) and all other classes either directly or indirectly inherit from it, a superclass need not be complete. The class and its missing methods can be declared as abstract. This concept is known as "abstract classes", inheritance allows classes to share code based on an "is-a" relationship where the subclasses are special cases of a more general super class
When it comes to inheritance in Java, which of the following statements are correct?
Always on the heap
House x = new House() ;
Variable x is a reference to the new House object we instantiated.
Where is the new House object located (where is the memory located that is needed for its representation)?
It applies to inheritance: you can use a subclass object whenever a superclass object is expected
Which statement describes Liskov's substitution principle?
Software entities should be open for extension, closed for modification
Which statement describes the open / closed principle?
Favor composition over inheritance, encapsulate what varies, program to an interface
These are the principles for good software design
The key concept in software design is to ...