1/57
Vocabulary practice flashcards covering Object-Oriented Analysis, Design Standards, and Object-Oriented Software Testing.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Object Oriented Analysis (OOA)
The first phase of the OOAD lifecycle in which the problem domain and user requirements are studied and modelled in terms of objects, without deciding how the system will be implemented.
Use Case Model
A collection of use cases, actors, and their relationships that captures the functional requirements of a system from the perspective of its users.
Actor
A role played by a user or external system interacting with the system under design, represented as a stick figure in a UML use case diagram.
Use Case
A discrete unit of functionality expressed as a goal an actor wants to achieve, representing a sequence of actions the system performs.
System Boundary
A rectangle in a UML use case diagram that separates what is inside the system (use cases) from what is outside (actors).
Object Analysis
The process of examining the use case model and requirement text to identify candidate objects, their attributes, behaviours, and relationships before implementation decisions are made.
Noun Phrase Approach
An object identification technique of underlining nouns and noun phrases in requirement text to discover candidate classes, where adjectives suggest attributes and verbs suggest operations.
Classification
The process of grouping objects that share common attributes and behaviour into classes, and organizing those classes into meaningful hierarchies.
Classical Approach to Classification
A classification approach based on a fixed set of necessary and sufficient properties, where an object either belongs to a class or does not.
Conceptual Clustering
A classification approach where objects are grouped based on the concept they describe, allowing class membership to depend on how well an object fits a described concept.
Prototype-Based Classification
A classification approach where a class is defined by a representative prototype, and an object belongs to the class if it closely resembles that prototype.
Generalization
An "is-a" relationship created bottom-up by factoring out common attributes and behaviour of several classes into a more general superclass.
Specialization
A top-down classification process starting from a general class and creating more specific subclasses that add extra attributes or behaviour.
Association
A general structural link between two classes where instances of one class are connected to instances of another class.
Aggregation
A "whole-part" relationship where the part can exist independently of the whole, representing weak ownership.
Composition
A strong "whole-part" relationship where the part's lifetime depends on the whole, meaning deleting the whole deletes the parts.
Dependency
A weaker relationship where one class uses another class temporarily, such as a method parameter or return type.
Object Relationships Summary
Summary table listing descriptions and examples for Association, Aggregation, Composition, Generalization, and Dependency.
Multiplicity
A specification on an association indicating how many instances of one class relate to how many instances of another class (e.g., 1, 0..1, 1.., 0..).
Attribute
A property or characteristic of an object that represents data and describes object properties.
Method
An operation or behaviour performed by an object to represent behaviour and perform operations.
Attributes vs. Methods
Comparison showing that attributes represent data and describe properties, whereas methods represent behavior and perform operations.
Responsibility
An obligation an object has to provide a service (a doing responsibility) or to maintain information (a knowing responsibility).
CRC Card
A Class-Responsibility-Collaborator index card used in brainstorming to allocate a class's name, its responsibilities, and its collaborating classes.
Independence Axiom (Axiom 1)
A design axiom stating that component independence must be maintained so each component satisfies one functional requirement without adversely affecting others.
Information Axiom (Axiom 2)
A design axiom stating that among all designs satisfying the Independence Axiom, the design with the minimum information content (least complexity) should be selected.
Corollary
A practical design guideline derived from design axioms that translates abstract axioms into day-to-day architectural rules.
Design Pattern
A general, reusable solution template to a commonly occurring problem in software design, describing structural or interaction rules for classes and objects.
Design Pattern Categories
Classification of GoF design patterns into Creational (object creation), Structural (composition), and Behavioral (communication and responsibility assignment).
Singleton Pattern
A creational pattern that ensures a class has only one instance and provides a single global point of access to it.
Factory Method Pattern
A creational pattern that defines an interface for creating an object, but lets subclasses decide which class to instantiate.
Observer Pattern
A behavioral pattern that defines a one-to-many dependency so that when one object changes state, all its dependents are notified automatically.
Strategy Pattern
A behavioral pattern that defines a family of interchangeable algorithms, encapsulating each one and allowing them to vary independently of clients.
Adapter Pattern
A structural pattern that converts the interface of a class into another interface clients expect, allowing incompatible classes to work together.
Facade Pattern
A structural pattern that provides a simplified, unified interface to a complex subsystem.
Access Layer
The layer in a layered architecture responsible for communication between business/domain objects and the underlying storage mechanism, isolating business logic from storage details.
OODBMS
An Object-Oriented Database Management System that stores data directly as objects—preserving identity, encapsulation, and inheritance—rather than rows and columns.
OODBMS vs. RDBMS Comparison
Detailed comparison of OODBMS and RDBMS regarding storage units, schema, relationships, query languages, and impedance mismatch.
Table Class Mapping Strategies
Standard strategies for persisting object-oriented class structures into relational database tables.
Single Table Inheritance
An ORM strategy where an entire class hierarchy is mapped to a single table, using a discriminator column to indicate which subclass each row represents.
Class Table Inheritance
An ORM strategy where each class in a hierarchy gets its own table, and a subclass row is joined to its parent row via a shared key.
Concrete Table Inheritance
An ORM strategy where each concrete (leaf) class gets its own table containing all inherited and own attributes, with no table created for abstract superclasses.
View Layer
The topmost layer in a layered architecture responsible for displaying information to users and capturing input, operating without business logic.
Software Testing
The process of executing a program or system with the intent of finding errors and verifying that it satisfies specified requirements.
Verification
The process checking "Are we building the product right?", ensuring software work products conform to their specifications.
Validation
The process checking "Are we building the right product?", determining whether the finished software satisfies actual user needs.
Quality Assurance (QA)
A planned and systematic set of process-oriented activities that ensures the development process and software products conform to established standards.
Test Case
A documented set of conditions, inputs, test steps, and expected results created to verify whether a specific feature, method, or requirement behaves as intended.
State-Based Testing
A class-level testing approach where a method is exercised across every relevant state an object can be in.
Boundary Value Analysis
A test design technique that tests input values at the upper and lower edges of valid input ranges.
OO Unit Testing
Unit testing focused on the class as the primary unit under test, testing its methods and state variables together.
Thread-Based Testing
An OO integration testing strategy that integrates and tests the set of collaborating classes required to respond to a single input event or system thread.
Cluster Testing
An integration strategy that groups collaborating classes into a cluster and tests them together to expose interaction faults.
Regression Testing
The re-running of existing test cases after code changes to confirm no new defects were introduced in dependent classes.
Test Plan
A formal document describing the scope, approach, resources, schedule, deliverables, and pass/fail criteria of intended testing activities.
Usability Testing
Evaluation of a software product by observing representative users completing realistic tasks to identify problems in interaction design.
User Satisfaction Testing
Measurement of subjective user comfort and experience with a system using surveys, interviews, or standardized instruments like SUS.
Online Course Registration System Diagram
UML class diagram illustrating the relationships, attributes, and multiplicities between Student, Enrollment, and Course.