Midterm 1 Flashcards
What does “agile approach” mean?
light/flexible
What is a simple definition of “Use Case”?
written stories
What needs to be defined in a “Domain Model”?
concepts, attributes, and associations that are considered noteworthy
What do “Interaction Diagrams” show?
the flow of messages between software objects, and thus invocation methods
What does a “Design Class Diagram” show?
a static view of the class definitions
What is “Inception”?
initial short step at the start of a project that establishes a common vision and the basic scope which the project should cover. Includes analysis of 10% of the use cases.
What are some “Inception: pitfalls”?
Takes a long time, plans are expected to be reliable, there is an attempt to define most requirements
Define “Waterfall” requirements.
collect all requirements before starting any implementation
Define “Evolutionary” requirements.
iterative methodology, tests/implement as you plan.
What are pitfalls from “Waterfall” and “Evolutionary” requirements.
Waterfall: 45% of planned features are never used, studies show waterfall is strongly associated with the highest failure rates.
Evolutionary: Could run into an unexpected roadblock that prevents you from continuing.
Give examples of “Functional vs Non-Functional” requirements.
Functional (behavioral): display, choosing shipping methods (What does the system need to perform)
Non-Functional (everything else): documentation, price (What does the system need in order to work)
What is an activity diagram?
Flowchart
In a Use-Case what is an “Actor vs Scenario”?
Actor: something with behavior, person, computer system, organization.
Scenario: specific sequence of actions and interactions between actors and the system, successfully purchasing an item with cash
What is a “Use-Case”?
a collection of related success and failure scenarios that describe an actor using a system to support a goal
What are the three types of actors?
Primary Actor: has user goals fulfilled through their services
Supporting Actor: provides a service
Offstage Actor: has an interest in the behavior of the use case, but is not primary or supporting
Give an example of the three types of actors.
Primary: Cashier
Secondary: automated payment authorization service
Offstage: government tax agency
Name all sections of a fully dressed use case table as well as come up with an example. (see lab 03)
Use Case Name:
Scope:
Level:
Primary Actor:
Stakeholders and Interests:
Preconditions:
Success Guarantee:
Main Success Scenario:
Extensions:
Special Requirements:
Frequency of Occurrence:
What is a use case diagram
see lab 02
What is generalization?
Identifying commonality among concepts (subclass)
Explain Is-a Test.
Helps identify child classes. Credit payment is-a payment
Explain 100% rule.
100% of the conceptual parents definition should be applicable to the subclass
Explain Object vs Class
Class is a template and a Object is the instance of the template
Explain has-a test.
helps identify attributes of a class
Explain an Abstract class.
empty method in the parent acts as a template to force sub-classes to implement the method
Generalization vs Specialization
Attributes of a parent class vs Attributes of a child class.
What does Aggregation look like in UML
Either a filled (only 1) or hollow diamond (multiple)
How to know if a relationship is aggregation
Is-a/Has-a Test
What is a derived element?
an attribute that is calculated with a method
What is Qualified Association?
It distinguishes the set of objects at the far end of the association based on the qualifier value. (Smaller box used in a association
What is a Reflexive Association?
A concept that has an association with itself
Sequential vs Iterave
- 5 Differences
- 3 Potential Problems with Sequential
1) Waterfall defines all requirements before development.
2) Waterfall has a strict schedule/budget while iterave has a more flexible approach
3) Waterfall follows a sequential, linear process where each phase is completed before the next one while iterative allows overlap and working on multiple phases at once
4) Waterfall takes longer to be deployed but is deployed in a more complete state, while iterative is deployed sooner in a more beta phase that is meant to improve the project from feedback
5) Waterfall is less adaptable to change because everything is planned before starting while iterative is more flexible to change during the development of a project
What are the 3 UP: characteristics
Iterative and incremental, Architecture Centric, Risk Focused
Define Iterative and Incremental
phases are divided into a series of timeboxed iterations
Define Architecture Centric
insists that architecture is at the heart of the projects team’s efforts to shape the system
Define Risk Focused
requires the project team to focus on addressing the most critical risks early in the project life cycle
What is UP
Unified Process, a combination of waterfall and evolutionary
What does timeboxed mean?
iterations that are fixed in length.
What are good practices for agile methods?
apply timeboxed iterative and evolutionary deployment. employ adaptive planning. promote incremental delivery.
Why do companies like agile?
Part of the products are ready after three or four weeks.
What are the 4 UP phases
Inception, Elaboration, Construction, Transition
What are the four design phases of a project?
Use cases, domain model, interaction diagrams, design class diagrams
What is the difference between domain model and design class diagram?
design class diagram is more detailed with behaviors/methods/features
What is the main purpose of a domain model?
Help visualize the problem
What is association in OOP?
Inheritance
What is an attribute in a domain model?
a variable in a class
In a domain model, how do you distinguish between private and public?
- private
+ public
In UML what is “Sale”?
Class
In UML what is “:Sale” (Underlined)
Instance of the class (Object)
In UML what is “S1:Sale” (Underlined)
Named Instance
What does a double box mean in UML?
multiple objects
What is a static attribute?
use the name of the class to change the attribute (math.pi)
What is a Static method?
A Method used to change the value of a static attribute