Object Modeling and Design

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/35

flashcard set

Earn XP

Description and Tags

Flashcards reviewing key concepts in object modeling, UML, and object-oriented design principles.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

36 Terms

1
New cards

Object-Oriented Programming (OOP)

A paradigm based on objects that contain data (attributes, properties) and code (methods, functions). Objects are instances of classes.

2
New cards

Object-Oriented Design (OOD)

The process of using objects and object-oriented programming when designing a software solution.

3
New cards

Object Calling

Objects don’t accept arbitrary calls. Acceptable calls are defined by methods.

4
New cards

Operations, Procedures, Subroutines, and Functions

Another word for Methods

5
New cards

Method Signature

The name, parameters, and types of a method.

6
New cards

Object Interface

The set of method signatures for that object.

7
New cards

Information Hiding

Restricting access to an object's state (attributes) through an interface

8
New cards

Client Object

Object calling the method.

9
New cards

Server Object

Object receiving and executing the call.

10
New cards

Interface

A set of functional properties that a software object provides or requires.

11
New cards

On-demand design

Design based on the needs of the client objects.

12
New cards

Modular Programming

A software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules (packages).

13
New cards

Modules are loose groupings of subprograms and data, while objects encapsulate data

Difference between Modules and Objects

14
New cards

UML (Unified Modelling Language)

A standardized visual language used in software engineering to represent different aspects of a system's structure and behaviour.

15
New cards

Class Diagrams

Represents the structure of a system by showing classes, their attributes, methods, and relationships.

16
New cards

Use Case Diagrams

Illustrate interactions between actors (users or external systems) and the system to achieve specific goals.

17
New cards

Sequence Diagrams

Depict interactions between objects in a scenario or use case over time.

18
New cards

Activity Diagrams

Model the flow of activities or actions within a system or use case.

19
New cards

State Machine Diagrams

Describe the states of an object or system and transitions between those states triggered by events.

20
New cards

Component Diagrams

Show the components of a system and their relationships.

21
New cards

Deployment Diagrams

Visualize the physical deployment of software components across hardware nodes.

22
New cards

Package Diagrams

Organize and structure the elements of a system into logical groupings.

23
New cards

Association

One object accesses the other in some way (i.e. calling a method, accessing an attribute, etc.)

24
New cards

Inheritance (aka generalisation)

An object inherits the properties of another object through class extension; “is a” relationship

25
New cards

Composition

An object references another object as an instance variable; “has a” relationship

26
New cards

Aggregation

Implies the child class can exist without the parent.

27
New cards

Composition

Implies the child class cannot exist without the parent.

28
New cards

Inheritance

Change in the “base” class propagates to the derived class and its client classes.

29
New cards

Composition

More adaptive to change, because change in the “base” class is easily “contained” and hidden from the clients of the front-end class.

30
New cards

Polymorphism

The ability of objects of different classes to be treated as objects of a common superclass.

31
New cards

Compile-time Polymorphism (Static Binding or Early Binding)

Decision on which method to call is made at compile time; Method & operator overloading

32
New cards

Runtime Polymorphism (Dynamic Binding or Late Binding)

Decision about which method to call is made at runtime based on the type of the object; achieved through method overriding and interface implementation.

33
New cards

Duck Typing

An object’s type/class is less important than the methods it defines.

34
New cards

Subtyping

A type of polymorphism where code written for a supertype will work on a subtype; often achieved with inheritance

35
New cards

Ad-hoc polymorphism

A single name or symbol having multiple implementations depending on the arguments.

36
New cards

TDD

Test-Driven Development