0% found this document useful (0 votes)
19 views

Software Design Principles - Software Design Principles Cheatsheet - Codecademy

oftware Design Principles Cheatsheet

Uploaded by

Afroz Khan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Software Design Principles - Software Design Principles Cheatsheet - Codecademy

oftware Design Principles Cheatsheet

Uploaded by

Afroz Khan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

9/22/24, 3:19 AM Software Design Principles: Software Design Principles Cheatsheet | Codecademy

Cheatsheets / Software Design Principles

Software Design Principles

Software Complexity

As software gets more complex over time, it becomes


harder to change, slowing the rate of development.

What is Software Design?

Software design is the process of defining the


responsibilities of software components as well as how
they interact together. The aim of software design is to
make it easy to implement future changes in code.

Software Design Diagrams

Diagrams are often used in software design to represent a


system’s components, data, and interactions.

Software Design Principles

The principles YAGNI, KISS, and DRY all emphasize keeping


the design of a system as simple as possible to reason
about and adapt.

https://www.codecademy.com/learn/software-design-principles/modules/software-design-principles/cheatsheet 1/5
9/22/24, 3:19 AM Software Design Principles: Software Design Principles Cheatsheet | Codecademy

Software Architecture

Software architecture describes a model of a system,


broken down into components and a description of how
those components fit together.

MVC Design Pattern

MVC is a software design pattern that organizes an


application into three types of components (Model, View,
and Controller) based on their functionality.

The View Component

In the MVC pattern, the View handles the application’s


visual presentation. The View components display the
Model’s data and communicate user actions to the
Controller.

The Controller Component

In the MVC pattern, the Controller defines the behavior


of an application and communicates with both the Model
and the View. Controller components are responsible for
communicating with the Model and handling user
interactions from the View.

https://www.codecademy.com/learn/software-design-principles/modules/software-design-principles/cheatsheet 2/5
9/22/24, 3:19 AM Software Design Principles: Software Design Principles Cheatsheet | Codecademy

Pros and Cons of MVC

Following the MVC pattern adds complexity to a project’s


organization, but separating concerns offers the
developer more flexibility in implementing each
component and simplifies making changes later on.

Unified Modeling Language

UML is means of creating a design diagram to visualize the


properties of a software component and can be used to
document objects at the name, method, and attribute
level.

Object Oriented Programming (OOP)

Object-Oriented Programming (OOP) is a design paradigm


that organizes code into separate objects that interact
with each other. OOP has four primary aspects:
encapsulation, abstraction, inheritance, and
polymorphism. Each plays a role in making a software
system adaptable to change.

Abstraction in OOP

Abstraction is the concept of representing a complex


series of steps and actions through another “higher level”
concept.

https://www.codecademy.com/learn/software-design-principles/modules/software-design-principles/cheatsheet 3/5
9/22/24, 3:19 AM Software Design Principles: Software Design Principles Cheatsheet | Codecademy

Inheritance in OOP

Inheritance is the concept of a subclass acquiring the


attributes and methods of a superclass.

Polymorphism in OOP

In object-oriented programming, polymorphism is the


ability to access the behavior of multiple subclasses
through the shared interface of a superclass.

UML class diagrams

UML class diagrams contain the names of classes,


attributes, method signatures, and relationships among
objects.

Single Responsibility Principle

According to the Single Responsibility Principle (SRP),


components should have only one reason to change.

Open-Closed Principle

New functionality should be able to be added to a system


through the creation of new classes rather than the
modification of existing ones.

https://www.codecademy.com/learn/software-design-principles/modules/software-design-principles/cheatsheet 4/5
9/22/24, 3:19 AM Software Design Principles: Software Design Principles Cheatsheet | Codecademy

Liskov Substitution Principle

Software should use interchangeable parts. Any usage of


a superclass should be able to be substituted with its
subclass.

Dependency Inversion Principle

Classes should depend on abstract rather than concrete


classes. Concrete classes should not interact with other
concrete classes when possible.

Print Share

https://www.codecademy.com/learn/software-design-principles/modules/software-design-principles/cheatsheet 5/5

You might also like