CEN 4065 - Lecture 2: Software Design Vocabulary

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

1/45

flashcard set

Earn XP

Description and Tags

Vocabulary flashcards covering key software design concepts from the lecture slides.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

46 Terms

1
New cards

Software design

The process of defining a system's architecture, components, interfaces, and other characteristics, and the result of that process.

2
New cards

Design fundamentals

Concepts, context, and processes that underlie software design.

3
New cards

Key design issues

Structure and architecture, user interface design, design quality analysis and evaluation, notations, strategies, and design tools.

4
New cards

SOLID Principles

Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion. A set of object-oriented design guidelines aimed at creating software systems that are more maintainable, flexible, scalable, and understandable over time.

5
New cards

Single Responsibility Principle

A class should have one and only one reason to change.

6
New cards

Open/Closed Principle

Objects or entities should be open for extension but closed for modification.

7
New cards

Liskov Substitution Principle

Objects in a program should be replaceable with instances of their subtypes without altering correctness.

8
New cards

Interface Segregation Principle

Many client-specific interfaces are better than one general-purpose interface.

9
New cards

Dependency Inversion Principle

Entities should depend on abstractions, not on concretions.

10
New cards

DRY (Don’t repeat yourself)

Every small piece of knowledge should occur exactly once in the system.

11
New cards

KISS (Keep it simple, stupid)

Keep software simple and avoid unnecessary complexity.

12
New cards

YAGNI (You ain’t gonna need it)

Implement things when you actually need them, not before.

13
New cards

Abstraction

Data and procedural abstraction; separating what is important from how it is implemented.

14
New cards

Architecture

Overall structure of software, how components interact, and data organization.

15
New cards

Design patterns

Reusable solutions to common design problems; patterns describe structure and interactions.

16
New cards

Design Pattern Template

A structured description of a pattern including name, intent, applicability, structure, participants, collaborations, consequences, and related patterns.

17
New cards

Creational Design Patterns

Patterns that provide object creation mechanisms to increase flexibility and reuse (e.g., Factory Method, Builder).

18
New cards

Structural Design Patterns

Patterns that organize classes and objects into larger structures (e.g., Adapter, Facade, Decorator, Proxy).

19
New cards

Behavioral Design Patterns

Patterns that define how objects interact and assign responsibilities (e.g., Observer, Strategy, Command, State).

20
New cards

Observer Pattern

Separates the display of object state from the object and updates observers when state changes.

21
New cards

Model-View-Controller (MVC)

A design pattern that separates data (Model), presentation (View), and input control (Controller) to organize code.

22
New cards

Repository Architecture

Subsystems share a central data repository; data exchange through the central data structure.

23
New cards

Client-Server Architecture

Distributed system model where clients request services from servers over a network.

24
New cards

Pattern (Architectural pattern)

A stylized description of a good design practice that can be reused across contexts and environments.

25
New cards

Class diagrams

A UML diagram showing classes, their attributes, operations, and relationships.

26
New cards

CRC models

Class-Responsibility-Collaborator models used to design class responsibilities and collaborations.

27
New cards

Use cases

Narratives describing system behavior from the user perspective to capture requirements.

28
New cards

Sequence diagrams

Diagrams that show object interactions in time order.

29
New cards

State diagrams

Model the states and transitions of a system or object.

30
New cards

Activity diagrams

Model the workflow of steps or activities in a process.

31
New cards

Interface design elements

Interfaces include UI, external interfaces to other systems, and internal interfaces between design components.

32
New cards

Golden Rule: Place User in Control

Design interaction so the user is in control, with flexible, interruptible, and understandable workflows.

33
New cards

Golden Rule: Reduce User's Memory Load

Minimize memory requirements by using defaults and intuitive shortcuts.

34
New cards

Golden Rule: Make Interface Consistent

Maintain consistency to help users predict behavior and learn quickly.

35
New cards

User Interface Design

Focus on the interface between product and user; plan how information is presented and interacted with.

36
New cards

Usability Guidelines

Principles guiding interface usability, including anticipation, communication, consistency, efficiency, and learnability.

37
New cards

Accessibility Guidelines

Guidelines to ensure interfaces are usable by people with disabilities, addressing response time, help facilities, and error handling.

38
New cards

CBSE (Component-Based Software Engineering)

Building software from pre-existing or reusable components to reduce development effort.

39
New cards

CBSE Benefits

Faster development, ROI improvements, reuse of components, higher quality, easier maintenance.

40
New cards

CBSE Risks

Risks include component selection, integration, quality, security, and evolution.

41
New cards

Refactoring

Reorganizing code to improve quality without changing functionality; reduces technical debt.

42
New cards

Stepwise Refinement

Incremental elaboration of detail for abstractions.

43
New cards

Information Hiding

Hiding implementation details behind controlled interfaces to reduce dependencies and side effects.

44
New cards

Cohesion

The single-mindedness of a module; high cohesion groups related functionality.

45
New cards

Coupling

Degree of interdependence between components; aim for low coupling.

46
New cards

High cohesion, Low coupling

Design goal where components are highly cohesive and loosely coupled to others.