Final Exam Flashcards

(76 cards)

1
Q

What is engineering?

A

The meeting of science an economics.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is software engineering?

A

A systematic approach to the development of software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the factors that drive the selection of the SE approach?

A

Scale, quality, consistency, productivity, rate of change

SATISFYING USER NEEDS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the goals of software engineering?

A

Consistently develop software that addresses user needs with high quality and productivity for varied scale problems under change

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are quality and productivity governed by?

A

people, processes, and technology

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some characteristics of agile?

A
  • lightweight
  • welcomes change
  • emphasizes teamwork
  • short minimal planning
  • iterative development
  • heavy client involvement
  • high standards of quality
  • devoted to simplicity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What questions does a user story answer?

A

WHO, WHAT and WHY

who the user is, what they want to accomplish and why they want to accomplish it

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a user story?

A

A proto-requirement
action oriented, face to face elicitation with the client
leads directly to a short term development goal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What makes a good user story?

A

User stories should provide enough detail to make a reasonable time estimate.

User stories should lead directly to one or more concrete acceptance tests that will verify that the story has been realized.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are acceptance tests?

A

Criteria that must be passed in order to verify that the user story has been realized. Should be validated with the client.

I user should be able to do something so that some behaviour occurs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the (6) steps in the XP release cycle?

A
Select user stories for release
task breakdown
Plan release
Develop/Integrate/Test software
Release software
evaluate
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the 10 XP principles?

A
Incremental planning
Small releases
Test Driven Development
Paired Programming
Simple design
Refactoring
Collective ownership
Continuous integration
On-site Client
Sustainable pace
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the 4 themes of XP?

A

Fine scale feedback
Continuous process
Shared understanding
Programmer well being

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is fine scale feedback in the context of XP?

A

TDD
Paired programming
Whole team
Planning game

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is continuous process in the context of XP?

A

Continuous integration
Small releases
Refactoring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is shared understanding in the context of XP?

A

Coding standards
Collective ownership
Simple design
System metaphor

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is sustainable pace in the context of XP?

A

Programmer well being.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

When is risk management performed?

A

At the start of a project
Whenever there are significant changes
At every major project phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are the 4 steps of risk management

A

Identification
Analysis
Planning
Review

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

How do we calculate risk priority?

A

Likelihood * Impact

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What is meant by risk management is implicit and continuous in agile

A

risk management should be baked into the agile processes.

Continuous client engagement, TDD, Risk management of user stories, velocity tracking, sustainable pace, small releases

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is Brookes rule of thumb for software cost?

A

A story with 2 points is 3x the effort of 1,
a story with 3 points is 3x the effort of 1
a story with 4 points is 9x the effort of 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is the Iron triangle

A

Scope, Resources, Schedule = quality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What are the three steps of the Planning Game?

A

Exploration: Business provides user stories, Development estimates time required or asks for clarification, splitting
Commitment: Business sorts stories by value, Development sorts stories by risk (confidence of estimate), Development states team velocity (productivity), Business selects stories
Steering: Business determines stories for iteration, Development can ask for re-evaluation if velocity estimate wrong, Business can add new stories, Development will estimate and insert new story, or re-estimate entire project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What are the 4 main elements of a software process?
Specification Design and implementation Validation Evolution
26
What are some types of software components that can come out of the box?
* Web services that are developed according to service standards and which are available for remote invocation. * Collections of objects that are developed as a package to be integrated with a component framework such as .NET or J2EE. * Stand-alone software systems (COTS) that are configured for use in a particular environment. * Software frameworks offer a different path for reuse,
27
What is the TDD circle of life?
test passes, test fails, refactor
28
What are some characteristics of paired programming?
- pairs sit at same workstations together - pairs are created dynamically so every person works with every other person during the process - the sharing of knowledge reduces the impact of team members leaving in the future - not necessarily inefficient
29
What are the advantages of paired programming?
- supports collective ownership and responsibility - informal review process - supports refactoring
30
What are the objectives of continuous integration?
- minimize duration and effort of each integration - be able to deliver a product version suitable for the release at any moment - any effort related to producing intermediate products should be included in CI
31
What are the elements of CI?
* use of a version control tool * automated build and product release process * build triggers unit and acceptance tests any time any change is submitted * build alerts team when any test fails, so resolution can be found
32
What are some characteristics of self documenting code?
- use javadocs - careful choice of class names - careful choice of variable names
33
What is ant?
- Is configured with a build file that is an XML document - Is generally platform independent - Can take care of archiving/versioning, compilation, execution, documentation, deployment,and more
34
What is a structural model?
display the organization of a system in terms of the components that make up that system and their relationships. Might be static or dynamic
35
What is a uses relationship?
``` Needed to accomplish work, but not “part of” the object itself (needs and uses) ```
36
What is a has-a relationship?
A more integral relationship, “whole/part” • compound objects exhibit this relationship • Parts do not “contain the container” • A key object-oriented modeling technique • Think “composing a system from smaller systems”
37
What is an is-a relationship?
Another fundamental object-oriented modelling technique • Manifested in inheritance • derived types inherit behaviour and attributes from more basic types
38
What is the structure of a pattern?
* identification of problem * summary of solution, justification based on identified values * details about when to apply solution (context) * example(s) of the pattern in use
39
What are some OO design patterns?
• Creational patterns typify methods of instantiating objects concerned with decoupling instantiation from the need for functionality • Structural patterns typify ways of organizing and combining objects concerned with increasing flexibility through class and object composition • Behavioural patterns typify inter-object communication concerned with fundamental object services/actions and details of their provision
40
What is an observer pattern?
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically
41
What is a singleton pattern?
Intent: “Ensure a class has only one instance, and provide a global point of access to it.”
42
What is a factory pattern?
``` Subclass Creator to provide specific implementation of creation method Subclass decides what to instantiate Or use “parameterized Factory Method” (e.g., static factory idiom) class determined by parameters to method ```
43
What is the proxy pattern?
• Intent: “Provide a surrogate or placeholder for another object to control access to it.” [GoF, p207] • 4 types: virtual, remote, protective, smart
44
What is object-relational mapping?
* common technique for representing data used in object-oriented, server-side “domain” logic * allows relational databases to be accessed via data objects, rather than SQL queries * maintains a consistent programming model for both data and logic * a variant of “Entity-Relationship” modelling, which is a step in relational database schema definition
45
Why refactor?
Improve maintainability, reusability, legibility, extensibility
46
What is a code smell?
an indication that there may be a deeper problem or design flaw in your code
47
How to identify code smells?
Experience, code review, metrics, tools
48
What is architecture design?
The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication
49
What is software architecture?
the sub-systems making up a system and the framework for sub-system control
50
What is architecture in the small vs architecture in the large?
Architecture in the small is concerned with the architecture of individual programs and the way that an individual program is decomposed into components. Architecture in the large is concerned with the architecture of complex systems that include other systems, programs, and program components.
51
What is the pipe and filter pattern?
The processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. The data flows (as in a pipe) from one component to another for processing
52
What is the MVC pattern?
Separates presentation and interaction from the system data. The system is structured into three logical components that interact with each other. The Model component manages the system data and associated operations on that data. The View component defines and manages how the data is presented to the user. The Controller component manages user interaction (e.g., key presses, mouse clicks, etc.) and passes these interactions to the View and the Model.
53
What is the client server pattern?
In a client–server architecture, the functionality of the system is organized into services, with each service delivered from a separate server. Clients are users of these services and access servers to make use of them.
54
What is the layered architecture pattern?
Organizes the system into layers with related functionality associated with each layer. A layer provides services to the layer above it so the lowest level layers represent core services that are likely to be used throughout the system. (Stack)
55
What is the repository problem?
All data in a system is managed in a central repository that is accessible to all system components. Components do not interact directly, only through the repository
56
What is a library?
* sometimes just a term to mean precompiled code imported into a project * loose definition: reusable, importable code, typically single purpose
57
What is a toolkit?
• a codebase you can use to build applications with a target set of features
58
What is a framework?
``` • "A framework is a set of cooperating classes that make up a reusable design for a specific class of software" Frameworks permit realization or specialization primarily by subclassing at “well-articulated extension points” ```
59
What is a component?
• “... a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.”
60
Pattern definitions contain what four elements?
- identification of problem - summary of solution - details about when to apply solution - examples of the pattern in use
61
What is the iterator pattern?
Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
62
What is the adapter pattern?
“Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
63
What is the decorator pattern?
Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extended functionality.” (provide an enhanced interface)
64
Java EE offers the potential for....
scalability, robustness, reuse, separation of concerns, flexibility.
65
What are enterprise Java Beans?
distributed, transactional, server-side component model"
66
What is "the bean"?
* the class that implements the domain logic * has the same method names as the remote/local interface (implements it) * can have additional methods (not accessible via interface)
67
What is the facade pattern?
A façade is an object that provides a simplified interface to a larger body of code
68
What does ACID stand for?
Atomicity, Consistency, Isolation, Durability
69
What is user centered design?
* end user is given credence throughout the entire design process, often through direct participation * requires discipline, empathy and humility * continual validation of assumptions, refinement of understanding of user context, needs and desires relevant to the system being designed
70
What are the products at each phase of the UCD process model?
- User and task descriptions - Throw away paper prototypes - Testable prototypes - Alpha/beta systems or complete spec
71
What is the rational unified process?
* Emphasizes distinctly phased, iterative development * Emphasizes completeness in design specifications (per iteration), roles and responsibilities * a process framework, requiring adaptation * Employs a multifaceted diagramming approach (UML) supporting all phases
72
What are the 4 phases in RUP?
Inception, Elaboration, Construction, Transition
73
What are the 6 best practices of RUP?
``` iterative development. requirements management use of components use of diagramming quality assurance change management ```
74
What is the OOD process?
1. Understand the context, and external interactions (architecture in the large) 2. Design the system architecture 3. Identify principal components and/or objects in the system 4. Develop design models 5. Specify interfaces AKA a top-down approach.
75
What is a system context model?
A system context model is a structural model that demonstrates the relationship to other systems in the environment of the system being developed.
76
What is an interaction model?
An interaction model is a dynamic model that shows how the system interacts with its environment as it is used.