0% found this document useful (0 votes)
167 views21 pages

Problem Solving Strategies PDF

The document discusses various problem-solving strategies and design approaches used in software development. It describes problem-solving strategies as methods to identify, analyze, and resolve issues during development. Some common design strategies discussed include modular design, design patterns, functional design, and object-oriented design. Key aspects of object-oriented design like abstraction, inheritance, encapsulation, and polymorphism are also summarized.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
167 views21 pages

Problem Solving Strategies PDF

The document discusses various problem-solving strategies and design approaches used in software development. It describes problem-solving strategies as methods to identify, analyze, and resolve issues during development. Some common design strategies discussed include modular design, design patterns, functional design, and object-oriented design. Key aspects of object-oriented design like abstraction, inheritance, encapsulation, and polymorphism are also summarized.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

PROBLEM-SOLVING

STRATEGIES
PROBLEM-SOLVING
STRATEGIES
Problem-solving strategies in software design
refer to the methods, techniques, and approaches
used by software designers to identify, analyze, and
resolve issues that arise during the software
development process.
IMPORTANCE OF PROBLEM-
SOLVING STRATEGIES
Problem-solving strategies are critical in software design
because they enable developers to effectively and efficiently solve
complex problems and create software that meets the needs of
their users. Here are some reasons why problem-solving
strategies are important in software design:

Identify and Define the Problem


Efficiency and Accuracy
Collaboration
User Experience
Adaptability
SOFTWARE DESIGN
PROCESS
SOFTWARE DESIGN
PROCESS
The software design process refers to the
systematic approach of defining the
architecture, components, interfaces, and
other important aspects of software
systems.
PHASES OF SOFTWARE
DESIGN PROCESS
The software design process involves the creation of a plan or blueprint for a
software system. This process typically involves the following:

Requirements Gathering
Analysis and Specification
Detailed Design
Implementation
Testing and Verification
Deployment and Maintenance
DESIGN

STRATEGY
DESIGN STATEGY
R EF ER TO T H E TE C H N I QUES ,

PR I NCI PLES, AN D

MET HODOLOG I E S US E D TO

CR EATE A PL AN OR BL U EP RI NT

FOR A SOFT WARE S YS T EM . HERE

AR E S OME COMMON DES I GN

S TR ATEGI ES:
MODULARITY
THI S STRATE G Y ENTAI L S DI S AS S E M B L I N G T H E
SOF TWARE SYS TEM I NTO S M AL L E R ,

I NDEPENDENT C O MP O N E N T S O R MO DU L E S .

THI S T ACTI C MAK ES I T SI MPL E R T O DE S I GN

AND C ONSTRUC T THE S YS T E M , AS W E L L AS

T O TEST AND MAI NTAI N I T .


DESIGN PATTERNS
TYPI CAL SOL UTI ON S TO CO M M O NLY

OCCURRI NG PROBL E MS I N S O FTWA RE

DES I GN. THE Y ARE L I K E P RE-M A DE

BLUEPRI NTS TH AT YOU CA N CUS TO M I Z E

TO SOLVE A RE C URRI N G DES I GN P RO BLEM

I N YOUR CO DE . YOU C A N' T J US T FI ND A

PAT TERN AN D C OPY I T I NTO Y O UR

PR OGRAM, TH E WAY YO U CA N WI TH O FF-

THE- SHELF FUN C TI ON S O R LI BRA RI ES .


FUNCTIONAL DESIGN

STRATEGY
I DENTI FI ES WHAT I TS DE S I GN O B J E CT I S T O

DO AND I S MO RE C O NC ER N E D W I T H W H AT I S

TO BE DONE AND L ES S WI T H H O W I T

HAP PENS.
FUNCTION DESIGN

STRATEGY
THE F UNCT I ON AL DE S I GN (FD) P HA S E O F

A DEVELOPME N T PROJECT FO CUS ES O N

THE ACTI ON S OF A N E W O R REV I S ED

PR ODUCT, PROG RAM, SERV I CE, O R

PR OCESS. TH E FUN C TI O NA L DES I GN

S PECI F I CATI ON ( FDS ) I DENTI FI ES WHA T

I TS DESI GN OBJE C T I S T O DO A ND I S

MOR E CONCE RN E D WI TH WHA T I S TO BE

DON E AND L E S S WI TH HO W I T HA P P ENS .


OBJECT ORIENTED

DESIGN
I S THE PROC ES S O F P L ANN I N G A SY S TEM

OF I N TERACTI NG O BJ EC T S F OR T HE

PUR POSE OF S O L VI NG A S O F T W AR E

PR OBL EM. I T I S O NE AP P R O ACH T O

SOF TWARE D ES I G N.

Abs tracti on
I nh eri t ance
Encapsul ati on
Pol ymorphi s m
Cl ass and Obj ec t Di a g ra ms
ABSTRACTION

HI DI N G UNNE C E S S ARY DETA I LS A ND

FOCUSI NG ON TH E E S S ENTI A L FEA TURES

AND F UNCTI ON AL I TI E S A ND A LS O

“DI SPLAYS” ON L Y TH E RELEV A NT

ATT RI BUTES OF OBJE C T S A ND “HI DES ”

THE UNNEC E S S ARY DE TA I LS .


PERSONAL

DATA
First Name: First Name:

Last Name: Last Name:



Birth Date: Birth Date:



Occupation: Occupation:

First Name:
First Name:

Last Name:
Last Name:

Birth Date:
Birth Date:

Occupation:
Occupation:

INHERITANCE
I NHERI TANCE I S T H E P RO CE D U RE IN

WHI CH ONE CL AS S I N H E RITS TH E

ATTRI BUTES AN D MET HO D S O F A N O TH E R

CLASS. THE CL AS S WH O SE P RO P E RTIE S

AND METHOD S AR E I N H E RITE D IS

KNOWN AS T H E PAR EN T CL A SS. A N D TH E

CLASS THAT I N H ER I T S TH E P RO P E RTIE S

F ROM THE P AR EN T CL A SS IS TH E CH IL D

CLASS.
ENCAPSULATION
HIDING DATA AND COMPLEXITY

Encapsulation is used to hide the values or

state of a structured data object inside a

class, preventing unauthorized parties'

direct access to them.

LETS GET STARTED


POLYMORPHISM
Polymorphism is a feature of object-

oriented programming languages

that allows a specific routine to use

variables of different types at

different times.
CLASS AND OBJECT

DIAGRAMS
A Class diagram shows your classes and their

relationships. An Object Model Diagram

shows the interaction between objects at

some point, during run time. A Class

Diagram will show what the Objects in your

system consist of (members) and what they

are capable of doing (methods) mostly static.

You might also like