Software Engineering and Maintenance Lecture Notes

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/70

flashcard set

Earn XP

Description and Tags

Comprehensive vocabulary flashcards covering software rejuvenation, maintenance, testing, requirements engineering, object-oriented design, project management, and software process models.

Last updated 11:54 AM on 6/23/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

71 Terms

1
New cards

Redocumentation

A type of software rejuvenation focused on adding or improving documentation.

2
New cards

Restructuring

A type of software rejuvenation that improves code structure while keeping functions the same.

3
New cards

Reverse Engineering

Recovering or creating lost or deleted design and requirements from existing code.

4
New cards

Reengineering

Rebuilding or improving a system from decades ago by recreating the design and improving the code.

5
New cards

Cyclomatic complexity

A metric that measures code complexity.

6
New cards

Maintenance

Any modification made to software after it has been delivered and is being used.

7
New cards

S-system

A type of software system that undergoes no change, such as formal math software.

8
New cards

P-system

A software system with occasional, sometimes incremental, changes, such as a chess program.

9
New cards

E-system

A software system subject to constant change, typical of real-world software.

10
New cards

Corrective maintenance

Maintenance performed specifically to fix bugs or errors.

11
New cards

Adaptive maintenance

Adapting software to new changes or new environments.

12
New cards

Perfective maintenance

Maintenance focused on improving existing functionality.

13
New cards

Preventive maintenance

Maintenance performed to prevent future issues through code cleanup or refactoring.

14
New cards

Maintainability (Conceptual)

The ease of modifying software.

15
New cards

Configuration management

A process that controls software changes, tracks changes, prevents issues, and maintains system consistency.

16
New cards

Impact analysis

Studying the effect of a proposed change before implementing it to reduce maintenance cost and risk.

17
New cards

MTTF

Mean Time to Failure, a measure used to determine Availability.

18
New cards

MTTR

Mean Time to Repair, a measure used to determine Reliability.

19
New cards

MTBF

Mean Time Between Failures, calculated as MTTF+MTTRMTTF + MTTR, used to determine maintainability.

20
New cards

Benchmark test

A type of acceptance testing comparing software against a standard or competitors.

21
New cards

Pilot test

An experimental installation first performed in one working company.

22
New cards

Alpha test

Internal system testing performed inside the company.

23
New cards

Beta test

Testing performed by real customers (e.g., the top 100 customers).

24
New cards

Parallel tests

Running old and new systems together so customers can use both and compare results.

25
New cards

Installation testing

Checks configuration, device connections, and communications with other systems using regression testing.

26
New cards

Function testing

Comparing actual results versus requirements to ensure the system does what requirements specify.

27
New cards

Performance testing

Testing non-functional requirements such as speed, accuracy, response time, and data access.

28
New cards

Stress test

Testing the system under extreme conditions.

29
New cards

Regression testing

Testing performed after modification to ensure that nothing previously working was broken.

30
New cards

Compatibility test

Checks if the software works on different devices and systems like Chrome, Safari, or Firefox.

31
New cards

Reliability

The probability that a system works without failure.

32
New cards

Availability

The probability that software is operational at any given time.

33
New cards

Maintainability (Probability)

The probability that software can be repaired easily within a specific time limit.

34
New cards

Fault

An internal developer mistake made during development, seen by developers.

35
New cards

Failure

An external incorrect system behavior seen by users.

36
New cards

Unit testing

Testing each individual module or node.

37
New cards

Integration testing

Testing that combines individual modules together.

38
New cards

Black box testing

Testing functionality by checking inputs and outputs without examining the internal code.

39
New cards

White box testing

Testing internal code paths and logic.

40
New cards

Bottom-up integration

Starting with the smallest modules and moving upward, using drivers for testing.

41
New cards

Top-down integration

Starting from the main module and moving downward, using stubs for testing.

42
New cards

Information hiding

Hiding implementation details and exposing only what the user needs through the interface.

43
New cards

Abstraction

Showing only important details while hiding unnecessary details.

44
New cards

Generality

Designing modules so they can be reused in different situations.

45
New cards

Class

The blueprint used for creating objects, such as a 'car' class.

46
New cards

Object

An instance of a class.

47
New cards

Inheritance

A mechanism where one class inherits properties from another class to facilitate code reuse.

48
New cards

Composition

Building an object using another object, such as a car having an engine.

49
New cards

Modular design

Dividing a system into independent modules, each with one clear responsibility.

50
New cards

Coupling

A measure of the dependency between modules; a lower value indicates a better design.

51
New cards

Content coupling

The worst type of coupling, where one module changes another module's internals.

52
New cards

Common coupling

When modules share global data.

53
New cards

Data coupling

The best type of coupling, where only the necessary data is passed between modules.

54
New cards

Cohesion

A measure of how closely related the elements inside a module are; higher is better.

55
New cards

Coincidental cohesion

The worst type of cohesion, where unrelated tasks are grouped together randomly.

56
New cards

Functional cohesion

The best type of cohesion, where all parts of a module perform exactly one function.

57
New cards

Validation

Checking if we are building the right system by verifying it meets customer needs.

58
New cards

Verification

Checking if we are building the system right by ensuring document consistency.

59
New cards

SRS

Software Requirements Specification, a document including introduction, scope, general description, and specific requirements.

60
New cards

Functional requirements

Exact behaviors or services the system must provide, such as login or searching.

61
New cards

Non-functional requirements

Quality constraints on the system, such as response time or availability.

62
New cards

Stakeholders

Anyone affected by the system, including users, customers, clients, lawyers, and developers.

63
New cards

Risk Exposure

Calculated as Riskprobability×RiskimpactRisk\,probability \times Risk\,impact.

64
New cards

Milestone

A point in time signifying the completion of a major activity.

65
New cards

Precursor

A task that must occur before a specific activity can start.

66
New cards

Critical path

The longest path in a project's activity graph, determining the minimum time for completion.

67
New cards

Slack time

Calculated as AvailabletimeEstimatedtimeAvailable\,time - Estimated\,time or LateststartEarlieststartLatest\,start - Earliest\,start; if it is 0, the activity is critical.

68
New cards

Waterfall model

A sequential model suitable for well-understood, simple projects with little flexibility.

69
New cards

V model

A model where the left side is design and the right side is testing, which verifies each design level.

70
New cards

Spiral model

A model combining development and risk management through Planning, Goal analysis, Risk evaluation, and Development/Testing.

71
New cards

Agile

A process prioritizing flexibility, quick delivery, working software over documentation, and customer collaboration.