Midterm Flashcards

Kick ass on midterm!

1
Q

a model or pattern, an archetype, for solving
problems.

Defines or structures how
problems are approached.

Constrain the way that we think about problems,
and guide the way problems are solved.

A

paradigm

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

a specific implementation of a paradigm.

A

methodology

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

- State oriented

A

Computational Paradigms

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

– Procedural
– Object Oriented
– Logic
– Functional

A

Programming Paradigms

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

– Waterfall Model
– Iterative/Incremental Development
– Agile Processes
– The Quality Paradigm

A

Development and Process Paradigms

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

Understanding paradigms helps the problem solver avoid _____.

A

biases

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  • Cost estimation, budgeting, scheduling.
  • Requirements analysis.
  • Design.
  • Implementation.
  • Testing.
  • Deployment.
  • Measuring products and processes.
  • Quality improvement.
  • Maintenance.
  • And so on …

These are qualities of what?

A

Software Development

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

Which viewpoint are these questions from?

  • What functionality is provided?
    • What performance characteristics are required
    for the functions provided?
    • What is the user interface?
    • What are the intended uses of the product?
    • What are the customer’s expectations
    regarding the product?
    • How will the product be maintained over time?
    Does the system use resources wisely?
    • How many defects are present in the product?
    • How serious are the defects?
    • What quality attributes are important for the
    product?
    • How will the important quality attributes be
    assessed?
A

Product Viewpoint

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

What type of viewpoint do these questions fall under?

Who is involved? What roles do individuals
have?
• How many individuals are involved?
• What are their individual abilities and
characteristics?
• What are the tasks they perform? How are
tasks allocated to individuals?
• Is there a match between individual’s
characteristics and their assigned tasks? How do you know when a task is complete?
• How long does each task take?
• Are there dependencies such that some tasks must
be complete before other tasks are begun?
• Can some tasks be performed concurrently?
• How is the process coordinated, managed, and
controlled?
• What communications support is required?
• What work products does the process produce?

A

Process Viewpoint

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

Which part of software lifecycle shown to cost the most?

A

Maintenance

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

Which part of software lifecycle shown to cost the least?

A

Requirements

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

What type of current concerns are these?

Programming in the large
– Multi-person teams work for several years to specify
and implement a system.
– Collaboration and communication may be required
between individuals who are separated by space and
time.
– Systems may comprise several programs, possibly
written in different languages and running on different
platforms.
• The efficiency of the process is as important as
the efficiency of the product.
• Solving the right problem!

A

Current Process Concerns

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

• Hardware continues to advance faster than our
ability to write software to take advantage of it.
• Demand for software outpaces production.
• Existing software is difficult to maintain.
• Industry continues to produce poor quality
software.
• All segments of society are increasingly
dependent on software.

A

Current Product Concerns

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

True or False:

Software is more complicated than other
artifacts constructed by human beings.

A

True

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

What characteristic of software do the following statements reflect?

Software is not usually isolated in the world.
• Software is typically an integral part of more
intricate systems. Software, therefore, must
interface with existing systems and conform to the
way existing systems behave.
• Since software is not physical it is seen as the
most flexible.
• If existing hardware and software are
incompatible, nobody ever suggests modifying the
hardware to conform to the software!

A

Software Conformity

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

What characteristic of software do the following statements reflect?

There will always be pressure to change software.
• Software is intended to contribute to people’s
ability to cope and manage their worlds, and their
worlds change.
• When the requirements for a software system are
defined, they are based largely on the nature of
the world before the system is built. When the
new system is introduced, the world is
immediately changed.

A

Software Changeability

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

What characteristic of software do the following statements reflect?

We have yet to achieve an adequate
representation for systems.
• We certainly have various graphical and
textual representations for systems, but we do
not as yet have any way to capture an overview
of the product that allows us to reason or
communicate about the system.

A

Software Invisibility

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

What characteristic of software do the following statements reflect?

Various software products often have very little in
common. What are the similarities between a
word processor, a web server, and an air traffic
control system?
• Software companies are constantly asked to create
novel products unlike anything seen before.
• Compare this situation to the automobile industry
which gradually refines what is essentially the
same product over many years.

A

Software Variety and Novelty

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

On average, professional coders make ___ to

___ errors in every thousand lines of code.

A

100 to 150

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

In almost any phase of tests roughly what percentage of defects are found?

A

Less than half

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

What do these factors represent?

- Number of functions performed
• Novelty of application
• Concurrency
• Multitasking
• Real-time constraints
• Parallel and distributed processing
• Amount and structure of data
• Criticality
• Security
• Interaction with other systems
• Hardware constraints
• Stability of specification
• User sophistication
A

Influencers of difficulty in software engineering

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

What are the 4 Ps of Software Development?

A

People
Problem
Process
Product

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

a hypothetical machine
that can be in only one of a given number of
states at a specific time.

In	response	to	a	stimulus,	the	machine	performs	
an	action	(possibly	generating	output)	and	
changes	state.
A

Finite state machine

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

What type of diagrams capture the behavior of finite state machines?

A

State diagrams

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

The following are characteristics of what?

• Actions are processes that occur “quickly” and
are not interruptible.
• A single state in a state diagram may be
decomposed into several states in a less
abstract view.

A

State Machines

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

The specification of the external behavior of a
system is primarily a description of how the
system outputs relate to the system inputs.
The classic example for is the mathematical function.

A

Function-Oriented model

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

F3(F2(F1(X))) = Y

A

Function-Oriented Model

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

In a Data Flow Diagram, how is a source or destination of data represented?

A

Double Square

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

In a Data Flow Diagram, how is the flow of data represented?

A

Arrow

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

In a Data Flow Diagram, how is a process which transforms the flow of data represented?

A

Rounded Rectangle

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

In a Data Flow Diagram, how is a store of data represented?

A

Open-ended Rectangle

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

These:
• Define the basic elements of a process model
and how they relate to each other.
• Define how process models are decomposed
into greater detail.

A

Process Frameworks

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

In an IDEF0/SADT process model, how is input represented?

A

– Arrow entering the leT side of the box are inputs. Inputs are
transformed or consumed by the func(on to produce outputs.

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

In an IDEF0/SADT process model, how is control/constraint represented?

A

– Arrows entering the box on the top are controls. Controls specify the
conditions required for the function to produce correct outputs.

35
Q

What type of process architecture does the below define?

  • Unit cells are defined to accomplish specific tasks
    • Each cell has required:

– Entry conditions: to met before task initiation
– Exit conditions: results produced
– Task definition: standards, procedures, responsibilities.
– Feedback: in from other cells, out to other cells
– Measurements: task, output, and feedback measures

A

Humphrey’s Process Architecture

36
Q

What are the two main programming paradigms?

A

Imperative and Declarative

37
Q

Name three types of Imperative programming types

A

Procedural, Object-oriented, parallel processing

38
Q

Name three types of Declarative programming types

A

Logic, Functional, Database

39
Q

• In ________ programming languages, a program
is expressed as a set of (mathematical) functions.
The main program is the function that is
evaluated when the program is executed.

A

functional

40
Q

What do the following describe?
Precise definition of the problem
– Relatively simple correctness proofs
– Direct and formal mapping of specification to code
– High degree of modularity and abstraction

A

Advantages of functional programming

41
Q

What are some disadvantages of functional programming?

A

– Slow execution
– Difficult for compilers to optimize code without losing
formal correctness
– Side effects (such as i/o) are not modeled

42
Q

What is the focus of logic programming?

A

On understanding the problem

43
Q

The following are characteristics of what paradigm?

  • characterized by the finite state machine computational model.
    • assumes that the program maintains a modifiable store.
    • By changing the values of variables we alter what
    is stored, thus record state changes.
    • Computations are performed through a sequence
    of steps specified by a list of commands.
A

Imperative/Procedural Paradigm

44
Q

When combined with subprograms, imperative programming is called _______.

A

procedural programming

45
Q

What are some disadvantages of procedural programming?

A
  • The model does not scale well. Large programs are difficult to maintain.
  • Shared store makes it difficult to find which functions are affected when something is changed.
  • Difficulty finding relationships between functions that communicate indirectly through shared store.
46
Q

What are some characteristics of modules?

A
  • each has it’s own store which is shared internally
  • they are encapsulated by a wall through which identifiers are invisible unless explicitly declared part of the interface
  • cannot be instantiated
47
Q

What are 3 advantages of Object Oriented Programming paradigm?

A
  • The Power of Metaphor
  • Computation as simulation
  • Programming by delegation
48
Q

A stack is an example of a(n) ___________.

A

Abstract Data Type (ADT)

49
Q

What are the 4 main features of the Object-Oriented Paradigm?

A
  • Inheritance
  • Overriding
  • Polymorphism
  • Late-binding
50
Q

Describe late-binding.

A

The selection of the method to invoke based on the dynamic (runtime) type of the object receiving the message

51
Q

The ability of a variable to refer to objects of more than one type.

A

Polymorphism

52
Q

The place to be concerned with a message’s correct handling is at the place where it is _______, not the place where it is ________!

A

received, not the place where it is sent!

53
Q

No notion of state

A

Functional Programming

54
Q

• What are the following?

Simplicity
– No explicit manipulation of memory.
– Values are independent of underlying machine with
assignments and storage allocation.
– Garbage collection.

• Power
– Recursion
– Functions as first class values
• Can be value of expression, passed as argument, placed in data structures. Need not be named.

A

Advantages of functional programming

55
Q

Unlike if-else statements in imperative languages,
if-else constructs are _________, i.e. they have a
value.

A

expressions

56
Q

Why is iteration not very useful in functional programming?

A

Because values can’t change on state

57
Q

What is a tuple?

A

A tuple is defined as a comma separated collection of

values.

58
Q

What quality perspective do the following examples embody?

Quality can be identified but not defined.
– “I know it when I see it!!”
– “I know when its missing!!”

A

Transcendental Perspective

59
Q

What quality perspective do the following examples embody?

– The user view of quality is in the context of use.
– Quality is gauged with regard to fitness for use.

A

User Perspective

60
Q

What quality perspective do the following examples embody?

A process perspective.
– View of quality as resulting from performing the right tasks.
– Assumption that an improved process will result in improved products.

A

Manufacturing Perspective

61
Q

What quality perspective do the following examples embody?

  • conformance to specification.
    – Did we build what was wanted as detailed in the specification?
A

Product Perspective

62
Q

What quality perspective do the following examples embody?

  • Equates quality with what customers are willing to pay.
    – It must be good if people will pay a lot for it.
    – This view provides the foundation for trade-offs.
    – This view is typical later in product development
    cycles when change requests are handled.
A

Value-for-money Perspective

63
Q
  • Improvements are based on measurement and experimentation, rather than on theory alone.
  • It is very data oriented and calls for monitoring many variables inside and outside the organization. These numerical measures are used to guide the search for better performance.
  • Statistical analysis of data.
  • Relies on suitable measures of both processes and products.
A

Empirical Approach

64
Q
  • There are a variety of customers. Each customer is the client for a particular product.
  • There are both external customers and internal customers – other employees who depend on your work to be able to perform their jobs properly.
  • Internally you can think of users of your particular artifact as the customer.
  • Hence, having a customer focus becomes a way of thinking.
A

Customer Focus

65
Q
  • The quality paradigm tries to leverage defect prevention.
  • Defect detection and removal is a costly activity.
  • By moving towards preventing defects, you free considerable resources for pursuit of new opportunities.
A

Defect Elimination

66
Q
  • Employees work in the system, but management creates the system.
  • There must be management commitment to quality.
  • Adopting the paradigm implies a move towards continuous process improvement which requires commitment from both management and workers.
A

Managing for Quality

67
Q
  • Most American managers manage, at least in part, this way.
  • In this style of management, the emphasis is on the organizational chart and the key control points within that structure.
  • Each manager, beginning at the top, is given certain goals for the next year. They, in turn, set goals and impose controls on each of their subordinates.
  • For example, the sales department may be told to increase sales by 10%, production to increase productivity by 5%, engineering to get products into production 10% faster, purchasing to reduce costs by 5%, and so on.
  • At the lower levels, these goals become quotas or work standards.
A

Management by results

68
Q
  • Management by Results is simple, logical and consistent.
  • It seems to have been quite successful.
  • It is practiced to some degree by many major American corporations.
  • It is widely taught in business schools.
A

Management by results

69
Q

• Encourages an organization to look inward at its own structures rather than outward at the world in which the customer operates.
• It is a system of controls. The rewarded accomplishments are therefore necessarily measurable and short term.
• The near horizon gets attention and countable accomplishments get priority even though an organization’s survival may depend on the un-measurable activities
undertaken to accomplish long-term results.
• When measurable controls are unattainable or impractical, individuals and groups tend to fabricate conformance.

A

Management by results

70
Q

Behind the worst shortcomings of Management by Results is _______.

A

fear

71
Q

• Process is treated explicitly.
• Emphasis on process improvement rather than individual accountability.
• The process management premise: A quality product is largely governed by the quality of the process used to develop and maintain it.
• The entire software development task is treated as a process that can be controlled, measured, and improved.
• There is guidance for recognizing, defining,
measuring, and improving processes.

A

Process Management

72
Q

Improving process is seen as a way to achieve:

A
  • Better quality product
  • Increased efficiency
  • Increased Effectiveness
  • Reduced Costs
  • Increased Process Flexibility
  • Improved Staff Satisfaction
73
Q

Briefly describe the Hawthorne Effect.

A
  • From 1924-1932 a series of experiments conducted at the Hawthorne Works (owned by Western Electric) studied the effects of lighting level, breaks, length of work day, etc. on worker productivity.
  • They found that whenever a change in conditions was introduced, productivity increased regardless of the change (even if it was a return to the original conditions).
  • The researchers concluded that workers increased their productivity in response to being studied.
74
Q

___________ involves the use of a structured framework to guide the improvement of an organiztiIon’s processes.

A

Model-Based Process Improvement

75
Q

What are the following characteristics of?

  • Processes are generally improvised by practitioners and their management during the course of the project.
  • Even if a software process has been specified, it is not rigorously followed or enforced.
  • The immature software organization is reactionary, and managers are usually focused on solving immediate crises (better known as fire fighting).
  • Schedules and budgets are routinely exceeded because they are not based on realistic estimates.
  • When hard deadlines are imposed, product functionality and quality are often compromised to meet the schedule. Activities intended to enhance quality such as reviews and testing are oXen curtailed or eliminated when projects fall behind schedule.
  • There is no objective basis for judging product quality or for solving product or process problems.
  • Product quality is difficult to predict.
A

Immature software organizations

76
Q

The following is a characteristic of what?

The software process is accurately communicated to both existing staff and new employees, and work activities are carried out according to the planned process.

A

Mature Software Organizations

77
Q

The following is a characteristic of what?

Schedules and budgets are based on historical performance and are realistic; the expected results for cost, schedule, functionality, and quality of the product are usually achieved.

A

Mature Software Organizations

78
Q

What are the 5 levels of process Maturity on the Capability Maturity Model?

A
  1. Initial
  2. Repeatable
  3. Defined
  4. Managed
  5. Optimizing
79
Q

Which is more strict and particular: ISO 9001 or CMMI?

A

CMMI

80
Q

Experience shows that it can take between ____% and ____% of normal engineering effort to support a significant process improvement initiative.

A

2% and 10%

81
Q

What are the 3 types of Process models?

A
  1. Universal
  2. Worldly
  3. Atomic
82
Q

Name the different types of Universal models.

A
  • Build-and-Fix
  • Waterfall
  • Reuse-Oriented Development
  • (concurrent) Waterfall
  • Rapid Prototyping
  • Evolutionary Prototyping
  • Incremental Development
83
Q

Which type of model is favored for projects with:
– Smaller, shorter duration projects
– Stable requirements

A

Waterfall

84
Q

Which type of model is favored for projects with: favored by:
– Large complex projects of long duration
– Unstable requirements

A

Iterative/incremental