Final Exam Flashcards

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
Q

What are the 4 main elements of a software process?

A

Specification
Design and implementation
Validation
Evolution

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

What are some types of software components that can come out of the box?

A
  • 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,
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What is the TDD circle of life?

A

test passes, test fails, refactor

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

What are some characteristics of paired programming?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What are the advantages of paired programming?

A
  • supports collective ownership and responsibility
  • informal review process
  • supports refactoring
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

What are the objectives of continuous integration?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What are the elements of CI?

A
  • 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
Q

What are some characteristics of self documenting code?

A
  • use javadocs
  • careful choice of class names
  • careful choice of variable names
33
Q

What is ant?

A
  • 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
Q

What is a structural model?

A

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
Q

What is a uses relationship?

A
Needed to accomplish work, but not “part of” the
object itself (needs and uses)
36
Q

What is a has-a relationship?

A

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
Q

What is an is-a relationship?

A

Another fundamental object-oriented modelling technique
• Manifested in inheritance
• derived types inherit behaviour and attributes from more basic types

38
Q

What is the structure of a pattern?

A
  • 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
Q

What are some OO design patterns?

A

• 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
Q

What is an observer pattern?

A

Define a one-to-many dependency between objects
so that when one object changes state, all its
dependents are notified and updated automatically

41
Q

What is a singleton pattern?

A

Intent: “Ensure a class has only one instance, and provide a global point of access to it.”

42
Q

What is a factory pattern?

A
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
Q

What is the proxy pattern?

A

• Intent: “Provide a surrogate or placeholder for another object to control access to it.”
[GoF, p207]
• 4 types: virtual, remote, protective, smart

44
Q

What is object-relational mapping?

A
  • 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
Q

Why refactor?

A

Improve maintainability, reusability, legibility, extensibility

46
Q

What is a code smell?

A

an indication that there may be a deeper problem or design flaw in your code

47
Q

How to identify code smells?

A

Experience, code review, metrics, tools

48
Q

What is architecture design?

A

The design process for identifying the sub-systems making up a system and the framework for sub-system control and communication

49
Q

What is software architecture?

A

the sub-systems making up a system and the framework for sub-system control

50
Q

What is architecture in the small vs architecture in the large?

A

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
Q

What is the pipe and filter pattern?

A

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
Q

What is the MVC pattern?

A

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
Q

What is the client server pattern?

A

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
Q

What is the layered architecture pattern?

A

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
Q

What is the repository problem?

A

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
Q

What is a library?

A
  • sometimes just a term to mean precompiled code imported into a project
  • loose definition: reusable, importable code, typically single purpose
57
Q

What is a toolkit?

A

• a codebase you can use to build applications with a target set of features

58
Q

What is a framework?

A
• "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
Q

What is a component?

A

• “… a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.”

60
Q

Pattern definitions contain what four elements?

A
  • identification of problem
  • summary of solution
  • details about when to apply solution
  • examples of the pattern in use
61
Q

What is the iterator pattern?

A

Provide a way to access the elements of
an aggregate object sequentially without exposing
its underlying representation.

62
Q

What is the adapter pattern?

A

“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
Q

What is the decorator pattern?

A

Attach additional responsibilities to an object
dynamically. Decorators provide a flexible alternative to
subclassing for extended functionality.” (provide an enhanced interface)

64
Q

Java EE offers the potential for….

A

scalability, robustness, reuse, separation of concerns, flexibility.

65
Q

What are enterprise Java Beans?

A

distributed, transactional, server-side component model”

66
Q

What is “the bean”?

A
  • 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
Q

What is the facade pattern?

A

A façade is an object that provides a simplified interface to a larger body of code

68
Q

What does ACID stand for?

A

Atomicity, Consistency, Isolation, Durability

69
Q

What is user centered design?

A
  • 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
Q

What are the products at each phase of the UCD process model?

A
  • User and task descriptions
  • Throw away paper prototypes
  • Testable prototypes
  • Alpha/beta systems or complete spec
71
Q

What is the rational unified process?

A
  • 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
Q

What are the 4 phases in RUP?

A

Inception, Elaboration, Construction, Transition

73
Q

What are the 6 best practices of RUP?

A
iterative development.
requirements management
use of components
use of diagramming
quality assurance
change management
74
Q

What is the OOD process?

A
  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
Q

What is a system context model?

A

A system context model is a structural model that
demonstrates the relationship to other systems in the
environment of the system being developed.

76
Q

What is an interaction model?

A

An interaction model is a dynamic model that shows how the system interacts with its environment as it is used.