Software Engineering and Object-Oriented Programming with Java

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

1/46

flashcard set

Earn XP

Description and Tags

Vocabulary practice flashcards covering software engineering fundamentals, Git version control, object-oriented design and Java programming, inheritance, polymorphism, interfaces, exception handling, and software testing.

47 Terms

1
New cards

Waterfall Model

A sequential, plan-driven process model suited for safety-critical systems, such as vehicle and aviation controls.

2
New cards

Incremental / Evolutionary Model

An iterative software process model where each iteration is typically 22 weeks long, driven by features (Agile methods), and suited for business applications.

3
New cards

Agile Manifesto

A software development approach focused on adapting to changes better, delivering frequently through continuous integration and delivery, and involving customers throughout development.

4
New cards

Pair Programming in XP

An Extreme Programming practice where two developers share a single workstation—one acting as the driver and the other as the navigator—swapping roles every few minutes.

5
New cards

Object-Oriented Analysis (OOA)

The development of an object model of the application or problem domain to define "what" the system does.

6
New cards

Object-Oriented Design (OOD)

The development of an object-oriented system model to implement requirements, focusing on "how" the system works.

7
New cards

Git Staging Area

An intermediate area between the working directory and the local repository where changes are staged using the Add command before being committed.

8
New cards

Git Commit

The command that permanently saves staged snapshot changes from the staging area into the local repository.

9
New cards

Git Checkout

The Git command used to switch the current active working branch.

10
New cards

Data Encapsulation

An OOP feature that bundles data (private variables) and operations (public methods) together within an object to better protect data.

11
New cards

Information Hiding

The practice of decoupling the dependency between an API and its implementation so that client code does not need to change when the internal implementation changes.

12
New cards

Class

An abstract data type (ADT) and blueprint/template that defines the data fields and operations for a group of similar objects.

13
New cards

Instantiation

The process of creating an object instance of a class, which involves allocating memory at runtime.

14
New cards

Constructor

A special method with the exact same name as the class and no return type (not even void), invoked using the new operator to create and initialize objects.

15
New cards

Anonymous Object

An object that is instantiated without being assigned to a named reference variable (e.g., new Circle(5.0).getArea()).

16
New cards

Garbage Collection

A Java runtime mechanism that automatically detects and reclaims memory occupied by objects that are no longer pointed to by any reference variable.

17
New cards

Method Overloading

Defining multiple methods within the same class that share the same name but have different method signatures (different parameter lists).

18
New cards

Method Overriding

Defining a method in a subclass with the same signature and a compatible return type as a method in its superclass to provide a specialized implementation.

19
New cards

Static Variable

A class-level variable shared by all objects of that class and stored in a single common memory space.

20
New cards

Coupling

The degree to which software modules depend on one another; high coupling causes a change in one component to trigger a ripple effect of required modifications across others.

21
New cards

Immutable Object

An object whose internal state and contents cannot be altered once it has been created (e.g., instances of String).

22
New cards

Autoboxing

The automatic conversion performed by the Java compiler from a primitive data type into its corresponding wrapper class object.

23
New cards

Auto-unboxing

The automatic conversion performed by the Java compiler from a wrapper class object back into its corresponding primitive type value.

24
New cards

Interned String

A memory optimization wherein the JVM maintains a single shared instance for distinct string literals that have the exact same character sequence.

25
New cards

Enum Class

A specialized Java class used to define a predefined set of constants in uppercase letters, inheriting directly from java.lang.Enum without allowing external instantiation via new.

26
New cards

Dependency (OOD)

A relationship where one class depends on another such that changes to the second might necessitate changes to the first (e.g., passing an object as a method parameter).

27
New cards

Aggregation

A "has-a" ownership relationship between classes where the aggregated component can exist independently of the aggregating owner object, designated in UML with a hollow diamond.

28
New cards

Composition

A strict form of aggregation where the lifetime of the aggregated object depends entirely on the owner object and cannot exist independently, designated in UML with a solid diamond.

29
New cards

Refactoring

The process of altering the internal structure of software without altering its external behavior to improve readability, eliminate redundancy, and facilitate debugging.

30
New cards

Bad Code Smell

A surface indicator or structural defect in code (such as duplicate code, long methods, lazy classes, or data clumps) that suggests deeper architectural problems.

31
New cards

super Keyword

A keyword used as the first line of code in a subclass constructor to explicitly call a superclass constructor, or used to reference an overridden superclass method.

32
New cards

Polymorphism

The principle that an instance of a subclass can be used wherever a superclass object is expected, enabling dynamic runtime dispatch of overridden methods.

33
New cards

Dynamic Binding

The runtime resolution process by which the JVM determines which implementation of an overridden method to execute based on the actual object type rather than the declared reference type.

34
New cards

Abstract Class

A class defined with the abstract keyword that cannot be instantiated directly and can contain constructors, instance variables, concrete methods, and abstract methods.

35
New cards

Interface

A reference type specifying common operations across classes that contains only abstract methods and constants, implemented by concrete classes via realization.

36
New cards

Template Method Pattern

A design pattern wherein the parent class defines the invariant sequence of execution steps while allowing subclasses to customize specific step implementations.

37
New cards

Exception

A runtime object that represents an error or abnormal condition preventing normal program execution from continuing.

38
New cards

Checked Exception

An exception that the Java compiler requires the programmer to explicitly catch with a try-catch block or declare in the method signature with throws (e.g., IOException).

39
New cards

Unchecked Exception

An exception subclassing RuntimeException that reflects programming logic errors and is not enforced by the compiler for try-catch handling.

40
New cards

finally Block

A block following a try block that executes regardless of whether an exception occurs or is caught, commonly utilized to perform cleanup actions like closing resources.

41
New cards

Exception Propagation

The automatic backward traversal of an uncaught thrown exception through the call stack until an appropriate matching catch handler is encountered.

42
New cards

Software Testing

The activity of executing a software application to find defects and verify whether it fulfills specified requirements.

43
New cards

Test Oracle

A source or mechanism that determines what the expected output or result of a given test case should be.

44
New cards

White-Box Testing

A software testing technique that analyzes internal code structures, execution paths, conditions, and branch coverage.

45
New cards

Black-Box Testing

A software testing technique that tests inputs and outputs against functional specifications without reference to internal source code implementation.

46
New cards

Equivalence Class Partitioning

A black-box testing strategy that divides input data ranges into distinct groups of equivalent values from which representative test inputs are selected.

47
New cards

Boundary Value Analysis

A test design technique focused on selecting test values specifically at the extreme upper and lower boundaries of equivalence partitions.