Exam Prep Condensed Flashcards

1
Q

What is Software Engineering?

A
  • Programming integrated over time.
  • Tools and processes used to build and maintain code.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Software Testing?

A

Verify a program has expected behavior on a finite set of test cases selected from an almost infinite execution domain.

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

When does Software Testing take place?

A
  • Should be pervasive through software life cycle.
  • Planning should start early in the software requirements process.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is fault?

A

The cause of a malfunction.

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

What is failure?

A

An undesired effect observed from a system.

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

What term can be applied to both fault and failure when the distinction is not important?

A

Defect.

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

The 4 Levels of Testing

A
  1. Unit Testing
  2. Integration Testing
  3. System Testing
  4. Acceptance Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a unit test?

A

Testing individual components.

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

What is Integration Test?

A

Testing integrated components.

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

What is system test?

A

Testing the entire system.

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

What is acceptance test?

A

Testing the final system.

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

What is regression testing?

A

Selective retesting to verify modification has not caused failures and that requirements are still met.

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

What is the the Trade-Off of Regression Testing?

A

-> Assurance from testing
VS
-> Resources used by testing

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

What are testing techniques?

A

Aids to help to ensure the success of Testing Objectives

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

What are Testing Objectives?

A

Measurements gathered from tests that provide an evaluation of the program tested.

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

Example of a Testing Technique

A

Branch Coverage: How much of the codebase is tested. Meeting a branch coverage metric (i.e. 95%) is a way of improving the chances of finding failures by attempting to systematically exercise every program branch at every decision point.

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

What is Software Maintenance?

A

All activities required to provide cost-effective support to software.

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

What are Pre Delivery Activities?

A

Planning for post delivery, maintenance, and logistics of deployment.

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

What are Post Delivery Activities?

A
  • Modifying software
  • Training for operation of a help desk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What has caused the increased focus on Software Maintenance?

A

Organizations trying to squeeze the most out of their software by keeping it operating as long as possible.

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

Five Key Characteristics of Maintaining Software.

A
  1. Maintaining control over daily functions.
  2. Maintaining control over modification.
  3. Perfecting functionality.
  4. Identifying security threats and fixing security vulnerabilities.
  5. Preventing degradation of software performance.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Technical Issues of Software Testing

A
  • Cost of repeated testing.
  • Re-validating reported problems.
  • Importance of Regression Testing for maintenance.
  • Finding time to test.
  • Coordinating tests.
  • Critical software is hard to bring offline for testing
  • Tests can’t be executed in the production system.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is maintainability?

A

Capability of modification.

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

Why is Maintainability difficult to achieve?

A

Sub-Characteristics Overlooked during development. This causes a lack of Documentation and Test Environments

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

How to enhance Maintainability?

A

By having systematic and mature processes, techniques, and tools.

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

Best approach to estimate Maintenance?

A

Experience combined with historical data.

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

The Four Levels of Maintenance Planning?

A
  1. Organization Level
  2. Transition Level
  3. Software Level
  4. Request Level
28
Q

At the Request Level (individual request), when is planning carried out?

A

During Impact Analysis.

29
Q

Requirements of the release/version planning activity.

A
  • Collect dates of availability of individual requests.
  • Agree on content of future releases/versions
  • Assess risks of a given release and develop a back-out plan
  • Inform all stakeholders
30
Q

Software Development Timeline vs. Software Maintenance Timeline.

A
  • Development –> Takes months to few years
  • Maintenance –> Usually lasts many years
31
Q

What is Refactoring?

A

Re-engineering technique to reorganize a program without changing it’s behavior.

32
Q

What is Reverse Engineering?

A

Process of analyzing software to create representation of software in another form or at higher abstraction.

33
Q

What does Reverse Engineering produce?

A

Call graphs and control flow graphs from source code.

34
Q

What is a system?

A

The combination of interacting elements organized to achieve one or more stated purposes.

35
Q

What is System Configuration?

A

Functional and physical characteristics of hardware or software as described in technical documentation.

36
Q

How to identify items to be Controlled.

A

Understanding the software config in context of:
- System configuration,
- Selecting configuration items,
- Developing a strategy for labeling software items and relationships, and
- Identifying the baselines to use and the procedure for a baseline acquisition of items

37
Q

What is a Baseline?

A

Formally approved version of a configuration item from a fixed point in time during its life cycle.

38
Q

What are types of baselines?

A
  1. Functional -> Reviewed System Requirements
  2. Allocated -> Reviewed Software Requirements
  3. Developmental -> Configuration is selected at times during SDLC
39
Q

What is Software Engineering Management?

A

Planning, Coordinating, Measuring, Monitoring, Controlling, and Reporting to ensure SW products and SWE services are delivered efficiently/effectively to the stakeholder’s benefit.

40
Q

Complications of SEM

A
  • Knowing what is needed or feasible.
  • Impact from clients changing requirements.
  • Increased understanding and changing conditions can cause new/changed software requirements.
  • Software often built using an iterative process rather than a sequence of closed tasks.
41
Q

Define Management in terms of SWE Management.

A

The system of process and control required to achieve organizational objectives

42
Q

Define Measurement in terms of SWE Management.

A

The assignment of values and labels to SWE…
- Work products
- Processes
- Resources + derived models

43
Q

What is Closure?

A
  • Development & processes completed.
  • Requirements to be confirmed.
  • Acceptance documentation
44
Q

Two Objectives of Software Process Management.

A
  1. Realize the effectiveness and efficiency of systematic approach to development.
  2. Introduce new or improved processes
45
Q

What is Software Development Life Cycle (SDLC)?

A

Processes that transform software requirements into a deliverable software product

46
Q

What is Software Product Life Cycle (SPLC)?

A

SDLC + deployment to retirement and aspects like config management and quality assurance.

47
Q

What is an Audit?

A

Conducted to ensure compliance with policies and standards.

48
Q

What is the purpose of SE Models and Methods?

A

Imposes structure on SWE to make activities systematic, repeatable, and success-oriented.

49
Q

What do SE Models provide?

A

Approaches to problem solving, notations, and procedures.

50
Q

What do SE Methods provide?

A

Organized and systematic approach to developing software

51
Q

Three principles related to Software Modeling

A
  1. Model the Essentials
  2. Provide Perspective
  3. Enable Effective Communications
52
Q

Primary Expression Element of a Model

A

Entity:
- Either has Concrete Artifacts or a Abstract Artifacts.
- Connected by relations.

53
Q

What are Preconditions?

A

Conditions that must be satisfied prior to execution of the function or method.

54
Q

What are Postconditions?

A

Conditions guaranteed to be true after execution of the function or method.

55
Q

What are Invariants?

A

Conditions that persist before and after execution of the function or method.

56
Q

Why is the Analysis of Models important?

A

To ensure models serve their intended purpose for the stakeholders.

57
Q

Four Cost of Quality Categories.

A
  1. Prevention
  2. Appraisal
  3. Internal Failure
  4. External Failure
58
Q

What is Cost of Software Quality (CoSQ)?

A

Measurements derived from economic assessment of software quality development and maintenance processes.

59
Q

What are Types of Safety Critical Software?

A
  • Direct -> SW embedded in a safety-critical system
  • Indirect -> SW applications used to develop safety critical software.
60
Q

What are Safety Critical System?

A

System whose failure could result in injury or loss of life.

61
Q

What are Software Quality Management (SQM)?

A

Collection of processes that ensure that all software implementation meets the organization’s software quality objectives and achieves stakeholder satisfaction.

62
Q

Four Categories of Software Quality Management (SQM).

A
  1. SQ Planning –> SQP
  2. SQ Assurance –> SQA
  3. SQ Control –> SQC
  4. SQ Improvement –> SPI
63
Q

Software Quality Planning (SQP)

A
  • Determine quality standards
  • Define goals
  • Estimate effort
64
Q

Software Quality Assurance (SQA)

A
  • IS NOT TESTING!
  • Define and assess software process quality to gain confidence that software products are produced with quality and function with intended purpose
65
Q

Walkthrough

A

An informal presentation of a product in order to gain feedback

66
Q

Software Engineering Process

A

Consists of inputs/outputs and consumes resources

67
Q

SQM: Static vs Dynamic Techniques

A
  • Static Techniques -> Software is NOT executed
  • Dynamic Techniques -> Software IS executed