1/29
Vocabulary flashcards covering key terms from the lecture on objects, interfaces, UML, object relationships, OO vs. process-oriented approaches, and supporting methodologies such as traceability, testing, measurement, and security.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software Object
A programming construct that encapsulates data (attributes/state) and behavior (methods) into a single, self-contained unit.
Method (Operation)
A callable procedure defined inside an object that specifies an acceptable service the object can perform.
Method Signature
The name of a method together with its parameters, parameter types, and return type; defines how clients may call the method.
Interface
A set of method signatures that describes the services an object offers while hiding its internal state.
Encapsulation
The principle of hiding an object’s internal state and exposing functionality only through its interface.
Client Object
An object that sends messages (method calls) requesting services from other objects.
Server Object
An object that receives messages, performs requested services, and returns results.
Message
A method call sent from a client object to a server object to request a service.
On-Demand Design
Design approach where interfaces and their implementations are created to satisfy the immediate needs of client objects rather than pre-defining features.
Attributes (State)
Variables maintained inside an object that represent its current condition or data.
Software Module
A loose grouping of subprograms and data; lacks the strict encapsulation enforced by objects.
Subprogram (Behavior)
A standalone procedure or function inside a module; equivalent to a method inside an object.
Composition
An object relationship in which one object contains references to other objects to use their services (has-a relationship).
Inheritance
An object relationship where a derived class acquires the attributes and methods of a base class (is-a relationship).
Change Propagation
The effect where modifications in a base class automatically affect derived classes, creating potential risk for new bugs.
UML Class Notation
A diagram element with three compartments: class name, attributes, and operations.
UML Interface
A stereotype «interface» element that lists only operation signatures, implemented by one or more classes.
Base Class
A general class whose properties are inherited by another class.
Derived Class
A class that extends a base class, inheriting and possibly overriding its behavior.
Front-End Class
In composition, the object that acts as a façade, delegating work to the contained (back-end) object.
Process-Oriented Approach
Development mindset centered on sequential steps and actions; intuitive but hard to scale for complex systems.
Object-Oriented Approach
Development mindset centered on organizing responsibilities among collaborating objects; scales better but is harder to design well.
Traceability
The ability to follow every requirement through design, implementation, and testing artifacts without unexplained gaps.
Test-Driven Development (TDD)
A practice where tests are written first and development proceeds only when code passes those tests.
Measurement (in SE)
The use of metrics and tools to monitor product quality and developer productivity.
Security Development Lifecycle (SDL)
Microsoft’s structured process for integrating security considerations throughout software development.
Prime Factorization
The expression of an integer as a product of prime numbers (e.g., 905 = 5 × 181).
Coprime (Relatively Prime)
Two integers with no common factor other than 1; equivalently, their greatest common divisor is 1.
Greatest Common Divisor (GCD)
The largest integer that divides two numbers without remainder; equals 1 for coprime pairs.
Rube Goldberg Machine (TDD Example)
Illustrates that passing a single test case doesn’t guarantee robustness; a system may work for one scenario yet remain fragile.