Final Exam Prep Deck Flashcards

1
Q

What is Software Engineering?

A
  1. Programming integrated over time.
  2. All the tools and processes and organization uses to build and maintain code over time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Software Testing?

A

The dynamic verification that a program provides expected behaviors on a finite set of test cases, suitably selected from the usually 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
  1. It should be pervasive throughout the entire development and maintenance life cycle.
  2. Planning for testing should start with the early stages of the software requirements process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a 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 a failure?

A

A undesired effect observed in the system’s delivered service

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

What are four levels of testing?

A
  1. Unit Test
  2. Integration Test
  3. System Test
  4. Acceptance Test
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 an integration test?

A

Testing integrated component

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 an 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 of a system/component to verify that motification have not caused unintended effects & the system/component still complies with its specified requirements.

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

What tradeoff must be made in regression testing?

A

The tradeoff is between the assurance given by regression testing every time a change is made and resources required to perform the regression test.

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

What are testing techniques?

A

Aids that help ensure the achievement of test objectives

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

What are testing objectives?

A

Test-related measures that provide an evaluation of the program under test

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

Give an 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

The totality of 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 is pre delivery activities?

A

Planning for post delivery operations, maintainability and logistics determination for transition activities.

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

What are the five key characteristics of maintaining software?

A
  1. Maintaining control over the software’s day-to-day functions.
  2. Maintaining control over software modification.
  3. Perfecting existing functions.
  4. Identifying security threats and fixing security vulnerabilities.
  5. Preventing software performance from degrading to unacceptable levels.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Describe the technical issues with software testing.

A
  1. Cost of repeating full testing on major piece of software is significant.
  2. Validating reported problems need to be replicated by the maintainer.
  3. Regression testing is important to maintenance.
  4. Finding time to test can be difficult.
  5. Coordinating test between members of maintenance team can be challenging
  6. Critical software may be difficult to bring offline for testing.
  7. Tests cannot be executed in the most meaningful place - the production system.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is maintainability?

A

The capability of software product to be modified.

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

Why is maintainability often difficult to achieve?

A

Because the sub characteristics are often not an important focus during the process of software development. The developers are often focused on other things which results in lock of software documentation and test environments.

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

How can we enhance maintainability?

A

The presence of systematic and mature processes, techniques, and tools to help enhance the maintainability of software.

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

What is the best approach to maintenance estimation?

A

Experience combined with historical data.

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

What are four levels of maintenance planning?

A
  1. Organizational Level
  2. Transition Level
  3. Software Level
  4. Request Level
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

At the request level (Individual Request), when is planning carried out?

A

During impact analysis.

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

State the requirements of the release/version planning activity?

A
  1. Collect the dates of availability of individual requests.
  2. Agree with users on the content of subsequent release/versions
  3. Assess the risks of a given release and develop a back-out plan.
  4. Inform all stakeholders.
29
Q

What is the timeline difference between software development & software maintenance?

A

Development can typically last from months to years while maintenance usually lasts for many years.

30
Q

What is software maintenance plan? When should it be prepared?

A

The plan should specific how users will request software modifications or report problems and should be prepared during software development.

31
Q

What is refactoring?

A

A reengineering technique that aims at reorganizing a program without changing its behavior.

32
Q

What is reverse engineering?

A

The process of analyzing software to identify the software components and their interrelationships and to create representation of the software in another form or at higher levels of 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

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

35
Q

What is configuration of a system?

A

The functional and physical characteristics of hardware or software as set forth in technical documentation or achieved in a product.

36
Q

What is configuration management?

A

The discipline of identifying configuration of a system at distinct points in time for the purpose of systematically controlling changes to the configuration and maintain the integrity and traceability of the configuration through system life cycle.

37
Q

How do we identify items to be controlled?

A

By understanding the software configuration within the context of the system configuration, selecting configuration items, developing a strategy for labeling software items and describing the relationships, and identifying both the baselines to be used and the procedures for a baseline acquisition of the items.

38
Q

What is software baseline?

A

A formally approved version of a configuration item (regardless of media) that is formally designated and fixed at specific point in time during the configuration item’s life cycle.

39
Q

What are some common baselines & their correspondants?

A
  1. Functional: Reviewed system requirements
  2. Allocated: Reviewed software requirements & interface specification
  3. Developmental: Represents the evolving configuration at selected times during SDLC
  4. Product: None Given
40
Q

What is software Engineering Management?

A

The application of management activities (planning, coordinating, measuring, monitoring, controlling and reporting) to ensure that software products & services are delivered efficiently, effectively & to the benefit of stakeholders.

41
Q

What are some complications specific to software engineering management?

A
  1. Clients often don’t know what is needed or feasible.
  2. Clients often lack appreciation for complexities inherent in SE, particularly regarding the impact of changing requirements.
  3. It is likely that increased understanding & changing conditions will generate new or changed software requirements.
  4. Software is often built using an iterative process rather than sequence of closed tasks.
42
Q

Define management as it relates to Software Engineering Management?

A

A system of processes and controls required to achieve the strategic objectives set by the organization.

43
Q

Define Measurement as it relates to SE Management?

A

The assignment of values and labels to software SE work products, processes, and resources plus the models that are derived from them, whether these models are developed using statistical or other techniques.

44
Q

When does a project reach closure?

A

When a major phase or iterative development cycle has had all plans and processes enacted and completed. The software requirements should be able to be confirmed as satisfied or not. The processes should involve relevant stakeholders and result in documentation of acceptance and known problems.

45
Q

What is a Software Engineering process?

A

A set of interrelated activities that transform input work products into output work products.

46
Q

What are the objectives of Software Process Management?

A
  1. To realize the efficiency and effectiveness that result from a systematic approach to accomplishing software processes and producing work products.
  2. Introduce new or improved processes
47
Q

What is a Software Development Life Cycle?

A

Includes the software processes used to specify and transform software requirements into a deliverable software product.

48
Q

What is a Software Product Life Cycle?

A

SDLC plus additional software processes that provide for deployment, maintenance, support, evolution, retirement, and all other aspect from inception including configuration management and quality assurance.

49
Q

What do audits do?

A

They are conducted to ascertain compliance with policies and standards. They provide management visibility into the actual operations being performed in the organization so that accurate and meaningful decisions can be made.

50
Q

What is the purpose of SE models and methods?

A

To impose structure on software engineering with the goal of making that activity systematic, repeatable, and ultimately more success-oriented.

51
Q

What do SE models provide?

A

An approach to problem solving, notation, and procedures.

52
Q

What do SE methods provide?

A

An organized and systematic approach to developing software for a target computer.

53
Q

What are three principles as it relates to software modeling?

A
  1. Model the essentials
  2. Provide perspective
  3. Enable Effective communications
54
Q

What is the primary expression element of a model?

A

An entity, which may represent either concrete artifacts or abstract artifacts. These are connected via relations.

55
Q

What are preconditions?

A

A set of conditions that must be satisfied prior to execution of the function or method.

56
Q

What are post conditions?

A

A set of conditions that is guaranteed to be true after the function or method has executed successfully.

57
Q

What are invariants?

A

A set of conditions within the operational environment that persist before and after execution of the function or method.

58
Q

Why is analysis of models important?

A

To ensure these models are complete, consistent, and correct enough to serve their intended purpose for the stakeholders.

59
Q

What are the four cost of quality categories?

A

Prevention, appraisal, internal failure, external failure.

60
Q

What is cost of software quality?

A

A set of measurements derived from the economic assessment of software quality development and maintenance processes.

61
Q

What are the categories of Safety critical software?

A

Direct - sw embedded in a safety-critical system such as the flight control computer of an aircraft.

Indirect - sw applications used to develop safety critical software. This would be software included in SE environments and test environments.

62
Q

What is a safety critical system?

A

Systems in which a failure could harm human life, other living things, physical structures, or the environment.

63
Q

What is software quality management?

A

The collection of all processes that ensure that software products, services, and life cycle process implementations meet organizational software quality objectives and achieve stakeholder satisfaction.

64
Q

What are the four sub categories of software quality management (SQM)?

A

SW quality planning, SW quality assurance (SQA), SW quality control (SQC), and SW quality improvement (SPI)

65
Q

What is software quality planning?

A

Determining which quality standards are to be used, defining goals, and estimating effort.

66
Q

What is software quality assurance?

A

NOT TESTING! It is the set of activities that define and assess the adequacy of software processes to provide evidence that establishes confidence that the software processes are appropriate and produce SW products of suitable quality for their intended purposes.

67
Q

What is a walkthrough?

A

A presentation of a product to other participants explaining and showing the material to solicit feedback. Unlike an inspection, participants may not have seen the product prior to the meeting. May be conducted less formally.

68
Q

What is the difference between static and dynamic techniques as it relates to SQM?

A

static techniques analyze the source code and software documentation without executing the code. Dynamic techniques involve executing the software.