SlideShare a Scribd company logo
SOFTWARE DESIGNING
              AND
            NEED OF
        DESIGN PATTERNS




Delivered By : Jayant V Mhatre
Date : 2nd Dec 2011.
NEED OF SOFTWARE

      Programming tasks originate from the
desire to find business solution to a particular
problem.

      Software Design Has 3 Phases

            1.   Analysis Phase.
            2.   Design Phase.
            3.   Implementation Phase.
ANALYSIS PHASE
   Understand business requirement.
   Business Analyst has major role .
   Outcome of Analysis Phase :

Documentation    of Business requirement which Includes
         1. Business Requirement Document(BRD)
         2.System Requirement Specification
            document (SRD).
         3. Use Case Diagrams.

** These Documents should be understand by both
Programmer and Client.

** Analysis only describes what is to be done and not how
it to be done.
DESIGN PHASE (OOL)
Mainly Consist of Identifying :
        1. Classes
        2. Responsibilities of Classes.
        3. Relationship Among Classes.


Requirement : Business Document generated in
Analysis phase.



** Programming Language is not essential in Design
Phase it is general for all (exa:java,.net).
RELATIONSHIP AMONG CLASSES.
    Identify Dependency :
      Good Software design requires that dependency should be minimized .

    Association :

    Generalization Relationship :
       Is a Relation

 Aggregation :
   Takes place if object of one class contain object of another class .
( has a relation)

    Composition (Stronger Aggregation):

Outcome of Design Phase :
1.     ERD Diagrams.
2.     UML Diagrams.
3.     Class Diagrams
4.     Sequence Diagrams.
5.     State Diagrams.
IMPLEMENTATION PHASE
   Coding.
   Testing.
   Integrations of modules.
   Design is implemented.
HISTORY OF DESIGN PATTERNS

 Patterns originated as an architectural concept by
 Christopher Alexander (1977/79). In 1987.


 For Example : Houses near to see shore, Or houses in
 Cold areas. Have same patterns to suit to the
 environment situations .


 Thousands of people goes under a different ways and
 the best way gets consider as Pattern.


 Same Concepts are used in Design Patterns
WHAT IS DESIGN PATTERNS.

 General Definition : Design Patterns are standard
solutions to solve problems of same type.


 Standard Definition : Design patterns are Recurring
solutions to software design problems you find again
and again in real world applications.


 A pattern presents Proven advice in a standard
format.


   Gives standard rules of coding.


D.P. are used for Code to be more Usable, more
Maintainable, can used in future to changes with
minimum effort.
WHAT IS DESIGN PATTERNS.
   D.P. are about design and integration of objects.
   As well as D.P. are providing
   Communication Platform
 reusable solutions to commonly encountered
programming challenges/ problems.
DESIGN PATTERNS
 First book on Design Patterns was written by 4 Authors
Gamma Erich; Richard Helm, Ralph Johnson, and John
Vlissides in (1995) .
Which is known as Gang of Four.

 They Described Total 23 Patterns. Which are known as
Foundation patterns. Today we have more than 100
patterns.

   These 23 patterns can be categorized in 3 parts.
                    1. Structural Patterns.
                   2.  Creational Patterns.
                   3.  Behavioral Patterns.
STRUCTURAL PATTERNS.

These  concern class and object composition. They
use inheritance to compose interfaces and define
ways to compose objects to obtain new functionality.
 Adapter:-Match interfaces of different classes .
• Bridge:-Separates an object’s abstraction from its
implementation.
• Composite:-A tree structure of simple and composite
objects.
• Decorator:-Add responsibilities to objects dynamically.
• Façade:-A single class that represents an entire
subsystem.
• Flyweight:-A fine-grained instance used for efficient
sharing.
• Proxy:-An object representing another object.
CREATIONAL PATTERNS.
Creational patterns are ones that create objects for
you, rather than having you instantiate objects
directly. This gives your program more flexibility in
deciding which objects need to be created for a given
case.



Abstract Factory groups object factories that have a
common theme.
Builder constructs complex objects by separating
construction and representation.
Factory Method creates objects without specifying the
exact class to create.
Prototype creates objects by cloning an existing
object.
Singleton restricts object creation for a class to only
one instance.
BEHAVIORAL PATTERNS.
Most  of these design patterns are specifically concerned
with communication between objects.

• Mediator:-Defines simplified communication between
classes.
• Memento:-Capture and restore an object's internal state.
• Interpreter:- A way to include language elements in a
program.
• Iterator:-Sequentially access the elements of a collection.
• Chain of Resp: - A way of passing a request between a
chain of objects.
• Command:-Encapsulate a command request as an object.
• State:-Alter an object's behavior when its state changes.
• Strategy:-Encapsulates an algorithm inside a class.
• Observer: - A way of notifying change to a number of
classes.
• Template Method:-Defer the exact steps of an algorithm to
a subclass.
• Visitor:-Defines a new operation to a class without change.
FACTORY PATTERN

 Factory pattern is one of the types of creational patterns
 factory pattern is meant to centralize creation of objects.



Consider   a general example :

    if (intInvoiceType == 1)
      {
         objinv = new clsInvoiceWithHeader();
      }
    else if (intInvoiceType == 2)
      {
         objinv = new clsInvoiceWithOutHeaders();
      }
  First we have lots of ‘new’ keyword scattered in the
client. In other ways the client is loaded with lot of object
creational activities which can make the client logic very
complicated.
  Second issue is that the client needs to be aware of all
types of invoices. So if we are adding one more invoice
class type called as ‘InvoiceWithFooter’ we need to
reference the new class in the client and recompile the
client also.
 So we will create ‘Factory Pattern’ which has two
concrete classes ‘ClsInvoiceWithHeader’ and
‘ClsInvoiceWithOutHeader’.

 The first issue was that these classes are in direct
contact with client which leads to lot of ‘new’ keyword
scattered in the client code. This is removed by introducing
a new class ‘ClsFactoryInvoice’ which does all the creation
of objects.
 The second issue was that the client code is aware of
both the concrete classes i.e. ‘ClsInvoiceWithHeader’ and
‘ClsInvoiceWithOutHeader’.
This leads to recompiling of the client code when we add
new invoice types. For instance if we add
‘ClsInvoiceWithFooter’ client code needs to be changed
and recompiled accordingly.
 To remove this issue we have introduced a common
interface ‘IInvoice’. Both the concrete classes
‘ClsInvoiceWithHeader’ and ‘ClsInvoiceWithOutHeader’
inherit and implement the ‘IInvoice’ interface.
 The client references only the ‘IInvoice’ interface which
results in zero connection between client and the concrete
classes ( ‘ClsInvoiceWithHeader’ and
‘ClsInvoiceWithOutHeader’). So now if we add new
concrete invoice class we do not need to change any thing
at the client side.
 In one line the creation of objects is taken care by
‘ClsFactoryInvoice’ and the client disconnection from the
concrete classes is taken care by ‘IInvoice’ interface.
http://www.dotnetfunda.com/articles/article130.aspx#C
anyouexplainfactorypattern.


http://msdn.microsoft.com/en-
us/magazine/cc188707.aspx


http://userpages.umbc.edu/~tarr/dp/lectures/Factory.p
df


http://www.codeproject.com/KB/architecture/FactoryPa
ttBasics.aspx


http://www.developerfusion.com/article/8307/aspnet-
patterns-every-developer-should-
BENEFITS OF DESIGN PATTERNS
   It will check how less code is manipulate in future.
 Try to have more loose Coupling of classes or objects is
there.
   enable large scale reuse of S/W
Helps   in improve developer communication
captureexpert knowledge and design trade-offs and
make expertise widely available
DRAWBACKS OF DESIGN PATTERNS
   . Complex in nature
   Do not lead to direct code reuse.
 They consume more memory because of generalized
format they are written, to store any kind of data .
THANK YOU.
THANK YOU.

More Related Content

What's hot

Java adapter
Java adapterJava adapter
Java adapter
Arati Gadgil
 
Uml Omg Fundamental Certification 5
Uml Omg Fundamental Certification 5Uml Omg Fundamental Certification 5
Uml Omg Fundamental Certification 5Ricardo Quintero
 
Unit 2(advanced class modeling & state diagram)
Unit  2(advanced class modeling & state diagram)Unit  2(advanced class modeling & state diagram)
Unit 2(advanced class modeling & state diagram)
Manoj Reddy
 
Intake 37 6
Intake 37 6Intake 37 6
Intake 37 6
Mahmoud Ouf
 
Part 12 built in function vb.net
Part 12 built in function vb.netPart 12 built in function vb.net
Part 12 built in function vb.net
Girija Muscut
 
Creational Design Patterns
Creational Design PatternsCreational Design Patterns
Creational Design Patterns
Jamie (Taka) Wang
 
GUI Programming In Java
GUI Programming In JavaGUI Programming In Java
GUI Programming In Java
yht4ever
 
Chapter 8 - Exceptions and Assertions Edit summary
Chapter 8 - Exceptions and Assertions  Edit summaryChapter 8 - Exceptions and Assertions  Edit summary
Chapter 8 - Exceptions and Assertions Edit summary
Eduardo Bergavera
 
GUI Programming in JAVA (Using Netbeans) - A Review
GUI Programming in JAVA (Using Netbeans) -  A ReviewGUI Programming in JAVA (Using Netbeans) -  A Review
GUI Programming in JAVA (Using Netbeans) - A Review
Fernando Torres
 
Intake 37 4
Intake 37 4Intake 37 4
Intake 37 4
Mahmoud Ouf
 
Visitor design patterns
Visitor design patternsVisitor design patterns
Visitor design patterns
Nishant Mevawala
 
behavioral model (DFD & state diagram)
behavioral model (DFD & state diagram)behavioral model (DFD & state diagram)
behavioral model (DFD & state diagram)
Lokesh Singrol
 
Unit I Advanced Java Programming Course
Unit I   Advanced Java Programming CourseUnit I   Advanced Java Programming Course
Unit I Advanced Java Programming Course
parveen837153
 
Uml Omg Fundamental Certification 2
Uml Omg Fundamental Certification 2Uml Omg Fundamental Certification 2
Uml Omg Fundamental Certification 2Ricardo Quintero
 
Advanced behavioral modeling chapter 4 of omd
Advanced behavioral modeling chapter 4 of omdAdvanced behavioral modeling chapter 4 of omd
Advanced behavioral modeling chapter 4 of omd
jayashri kolekar
 
Session 05 – mel and expression
Session 05 – mel and expressionSession 05 – mel and expression
Session 05 – mel and expression
Trí Bằng
 
PATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design PatternsPATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design Patterns
Michael Heron
 
Interfaces & Packages V2
Interfaces & Packages V2Interfaces & Packages V2
Interfaces & Packages V2
Dr Anjan Krishnamurthy
 
Visitor Pattern
Visitor PatternVisitor Pattern
Visitor Pattern
Ider Zheng
 
Gui in java
Gui in javaGui in java
Gui in java
Gaurav Raj
 

What's hot (20)

Java adapter
Java adapterJava adapter
Java adapter
 
Uml Omg Fundamental Certification 5
Uml Omg Fundamental Certification 5Uml Omg Fundamental Certification 5
Uml Omg Fundamental Certification 5
 
Unit 2(advanced class modeling & state diagram)
Unit  2(advanced class modeling & state diagram)Unit  2(advanced class modeling & state diagram)
Unit 2(advanced class modeling & state diagram)
 
Intake 37 6
Intake 37 6Intake 37 6
Intake 37 6
 
Part 12 built in function vb.net
Part 12 built in function vb.netPart 12 built in function vb.net
Part 12 built in function vb.net
 
Creational Design Patterns
Creational Design PatternsCreational Design Patterns
Creational Design Patterns
 
GUI Programming In Java
GUI Programming In JavaGUI Programming In Java
GUI Programming In Java
 
Chapter 8 - Exceptions and Assertions Edit summary
Chapter 8 - Exceptions and Assertions  Edit summaryChapter 8 - Exceptions and Assertions  Edit summary
Chapter 8 - Exceptions and Assertions Edit summary
 
GUI Programming in JAVA (Using Netbeans) - A Review
GUI Programming in JAVA (Using Netbeans) -  A ReviewGUI Programming in JAVA (Using Netbeans) -  A Review
GUI Programming in JAVA (Using Netbeans) - A Review
 
Intake 37 4
Intake 37 4Intake 37 4
Intake 37 4
 
Visitor design patterns
Visitor design patternsVisitor design patterns
Visitor design patterns
 
behavioral model (DFD & state diagram)
behavioral model (DFD & state diagram)behavioral model (DFD & state diagram)
behavioral model (DFD & state diagram)
 
Unit I Advanced Java Programming Course
Unit I   Advanced Java Programming CourseUnit I   Advanced Java Programming Course
Unit I Advanced Java Programming Course
 
Uml Omg Fundamental Certification 2
Uml Omg Fundamental Certification 2Uml Omg Fundamental Certification 2
Uml Omg Fundamental Certification 2
 
Advanced behavioral modeling chapter 4 of omd
Advanced behavioral modeling chapter 4 of omdAdvanced behavioral modeling chapter 4 of omd
Advanced behavioral modeling chapter 4 of omd
 
Session 05 – mel and expression
Session 05 – mel and expressionSession 05 – mel and expression
Session 05 – mel and expression
 
PATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design PatternsPATTERNS04 - Structural Design Patterns
PATTERNS04 - Structural Design Patterns
 
Interfaces & Packages V2
Interfaces & Packages V2Interfaces & Packages V2
Interfaces & Packages V2
 
Visitor Pattern
Visitor PatternVisitor Pattern
Visitor Pattern
 
Gui in java
Gui in javaGui in java
Gui in java
 

Viewers also liked

Designing and using group software through patterns
Designing and using group software through patternsDesigning and using group software through patterns
Designing and using group software through patternsKyle Mathews
 
Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
Chetan Gole
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1
Shahzad
 
Customer Relationship Management
Customer Relationship ManagementCustomer Relationship Management
Customer Relationship ManagementDr. Praveen Pillai
 
Customer Relationship Management
Customer Relationship ManagementCustomer Relationship Management
Customer Relationship Management
Joveria Beg
 
Customer relationship management
Customer relationship managementCustomer relationship management
Customer relationship management
charanreddy589
 
Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns ppt
mkruthika
 
The Basics Of CRM
The Basics Of CRMThe Basics Of CRM
The Basics Of CRM
Amal Biswas
 
Customer Relationship Management (CRM)
Customer Relationship Management (CRM)Customer Relationship Management (CRM)
Customer Relationship Management (CRM)
Jaiser Abbas
 

Viewers also liked (9)

Designing and using group software through patterns
Designing and using group software through patternsDesigning and using group software through patterns
Designing and using group software through patterns
 
Design Patterns Presentation - Chetan Gole
Design Patterns Presentation -  Chetan GoleDesign Patterns Presentation -  Chetan Gole
Design Patterns Presentation - Chetan Gole
 
Design Pattern For C# Part 1
Design Pattern For C# Part 1Design Pattern For C# Part 1
Design Pattern For C# Part 1
 
Customer Relationship Management
Customer Relationship ManagementCustomer Relationship Management
Customer Relationship Management
 
Customer Relationship Management
Customer Relationship ManagementCustomer Relationship Management
Customer Relationship Management
 
Customer relationship management
Customer relationship managementCustomer relationship management
Customer relationship management
 
Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns ppt
 
The Basics Of CRM
The Basics Of CRMThe Basics Of CRM
The Basics Of CRM
 
Customer Relationship Management (CRM)
Customer Relationship Management (CRM)Customer Relationship Management (CRM)
Customer Relationship Management (CRM)
 

Similar to Sofwear deasign and need of design pattern

Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
GlobalLogic Ukraine
 
5 Design Patterns Explained
5 Design Patterns Explained5 Design Patterns Explained
5 Design Patterns Explained
Prabhjit Singh
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
Dr. C.V. Suresh Babu
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
CS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT ICS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT I
pkaviya
 
Prophecy Of Design Patterns
Prophecy Of Design PatternsProphecy Of Design Patterns
Prophecy Of Design Patterns
pradeepkothiyal
 
Se chapter 1,2,3 2 mark qa
Se chapter 1,2,3   2 mark  qaSe chapter 1,2,3   2 mark  qa
Se chapter 1,2,3 2 mark qa
Aruna M
 
Design patterns
Design patternsDesign patterns
Design patterns
F(x) Data Labs Pvt Ltd
 
Design Pattern Notes: Nagpur University
Design Pattern Notes: Nagpur UniversityDesign Pattern Notes: Nagpur University
Design Pattern Notes: Nagpur University
Shubham Narkhede
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptx
anguraju1
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptx
BereketMuniye
 
kuyper_instructionalscience29
kuyper_instructionalscience29kuyper_instructionalscience29
kuyper_instructionalscience29Michiel Kuijper
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)
Jamie (Taka) Wang
 
Elaboration
ElaborationElaboration
Elaboration
SripriyaP3
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
Kuwait10
 
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
NicheTech Com. Solutions Pvt. Ltd.
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
B.T.L.I.T
 
Java Design Pattern Interview Questions
Java Design Pattern Interview QuestionsJava Design Pattern Interview Questions
Java Design Pattern Interview Questionsjbashask
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Luis Valencia
 

Similar to Sofwear deasign and need of design pattern (20)

Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
5 Design Patterns Explained
5 Design Patterns Explained5 Design Patterns Explained
5 Design Patterns Explained
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
CS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT ICS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT I
 
Prophecy Of Design Patterns
Prophecy Of Design PatternsProphecy Of Design Patterns
Prophecy Of Design Patterns
 
Se chapter 1,2,3 2 mark qa
Se chapter 1,2,3   2 mark  qaSe chapter 1,2,3   2 mark  qa
Se chapter 1,2,3 2 mark qa
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Design Pattern Notes: Nagpur University
Design Pattern Notes: Nagpur UniversityDesign Pattern Notes: Nagpur University
Design Pattern Notes: Nagpur University
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptx
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptx
 
kuyper_instructionalscience29
kuyper_instructionalscience29kuyper_instructionalscience29
kuyper_instructionalscience29
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)
 
Elaboration
ElaborationElaboration
Elaboration
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
Objective of c in IOS , iOS Live Project Training Ahmedabad, MCA Live Project...
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Java Design Pattern Interview Questions
Java Design Pattern Interview QuestionsJava Design Pattern Interview Questions
Java Design Pattern Interview Questions
 
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
Typescript design patterns applied to sharepoint framework - Sharepoint Satur...
 

Recently uploaded

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 

Recently uploaded (20)

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 

Sofwear deasign and need of design pattern

  • 1. SOFTWARE DESIGNING AND NEED OF DESIGN PATTERNS Delivered By : Jayant V Mhatre Date : 2nd Dec 2011.
  • 2. NEED OF SOFTWARE Programming tasks originate from the desire to find business solution to a particular problem. Software Design Has 3 Phases 1. Analysis Phase. 2. Design Phase. 3. Implementation Phase.
  • 3. ANALYSIS PHASE  Understand business requirement.  Business Analyst has major role .  Outcome of Analysis Phase : Documentation of Business requirement which Includes 1. Business Requirement Document(BRD) 2.System Requirement Specification document (SRD). 3. Use Case Diagrams. ** These Documents should be understand by both Programmer and Client. ** Analysis only describes what is to be done and not how it to be done.
  • 4. DESIGN PHASE (OOL) Mainly Consist of Identifying : 1. Classes 2. Responsibilities of Classes. 3. Relationship Among Classes. Requirement : Business Document generated in Analysis phase. ** Programming Language is not essential in Design Phase it is general for all (exa:java,.net).
  • 5. RELATIONSHIP AMONG CLASSES.  Identify Dependency : Good Software design requires that dependency should be minimized .  Association :  Generalization Relationship : Is a Relation  Aggregation : Takes place if object of one class contain object of another class . ( has a relation)  Composition (Stronger Aggregation): Outcome of Design Phase : 1. ERD Diagrams. 2. UML Diagrams. 3. Class Diagrams 4. Sequence Diagrams. 5. State Diagrams.
  • 6. IMPLEMENTATION PHASE  Coding.  Testing.  Integrations of modules.  Design is implemented.
  • 7. HISTORY OF DESIGN PATTERNS Patterns originated as an architectural concept by Christopher Alexander (1977/79). In 1987. For Example : Houses near to see shore, Or houses in Cold areas. Have same patterns to suit to the environment situations . Thousands of people goes under a different ways and the best way gets consider as Pattern. Same Concepts are used in Design Patterns
  • 8. WHAT IS DESIGN PATTERNS.  General Definition : Design Patterns are standard solutions to solve problems of same type.  Standard Definition : Design patterns are Recurring solutions to software design problems you find again and again in real world applications.  A pattern presents Proven advice in a standard format.  Gives standard rules of coding. D.P. are used for Code to be more Usable, more Maintainable, can used in future to changes with minimum effort.
  • 9. WHAT IS DESIGN PATTERNS.  D.P. are about design and integration of objects.  As well as D.P. are providing  Communication Platform  reusable solutions to commonly encountered programming challenges/ problems.
  • 10. DESIGN PATTERNS  First book on Design Patterns was written by 4 Authors Gamma Erich; Richard Helm, Ralph Johnson, and John Vlissides in (1995) . Which is known as Gang of Four.  They Described Total 23 Patterns. Which are known as Foundation patterns. Today we have more than 100 patterns.  These 23 patterns can be categorized in 3 parts. 1. Structural Patterns. 2. Creational Patterns. 3. Behavioral Patterns.
  • 11. STRUCTURAL PATTERNS. These concern class and object composition. They use inheritance to compose interfaces and define ways to compose objects to obtain new functionality.  Adapter:-Match interfaces of different classes . • Bridge:-Separates an object’s abstraction from its implementation. • Composite:-A tree structure of simple and composite objects. • Decorator:-Add responsibilities to objects dynamically. • Façade:-A single class that represents an entire subsystem. • Flyweight:-A fine-grained instance used for efficient sharing. • Proxy:-An object representing another object.
  • 12. CREATIONAL PATTERNS. Creational patterns are ones that create objects for you, rather than having you instantiate objects directly. This gives your program more flexibility in deciding which objects need to be created for a given case. Abstract Factory groups object factories that have a common theme. Builder constructs complex objects by separating construction and representation. Factory Method creates objects without specifying the exact class to create. Prototype creates objects by cloning an existing object. Singleton restricts object creation for a class to only one instance.
  • 13. BEHAVIORAL PATTERNS. Most of these design patterns are specifically concerned with communication between objects. • Mediator:-Defines simplified communication between classes. • Memento:-Capture and restore an object's internal state. • Interpreter:- A way to include language elements in a program. • Iterator:-Sequentially access the elements of a collection. • Chain of Resp: - A way of passing a request between a chain of objects. • Command:-Encapsulate a command request as an object. • State:-Alter an object's behavior when its state changes. • Strategy:-Encapsulates an algorithm inside a class. • Observer: - A way of notifying change to a number of classes. • Template Method:-Defer the exact steps of an algorithm to a subclass. • Visitor:-Defines a new operation to a class without change.
  • 14. FACTORY PATTERN  Factory pattern is one of the types of creational patterns  factory pattern is meant to centralize creation of objects. Consider a general example : if (intInvoiceType == 1) { objinv = new clsInvoiceWithHeader(); } else if (intInvoiceType == 2) { objinv = new clsInvoiceWithOutHeaders(); }
  • 15.  First we have lots of ‘new’ keyword scattered in the client. In other ways the client is loaded with lot of object creational activities which can make the client logic very complicated.  Second issue is that the client needs to be aware of all types of invoices. So if we are adding one more invoice class type called as ‘InvoiceWithFooter’ we need to reference the new class in the client and recompile the client also.
  • 16.  So we will create ‘Factory Pattern’ which has two concrete classes ‘ClsInvoiceWithHeader’ and ‘ClsInvoiceWithOutHeader’.  The first issue was that these classes are in direct contact with client which leads to lot of ‘new’ keyword scattered in the client code. This is removed by introducing a new class ‘ClsFactoryInvoice’ which does all the creation of objects.  The second issue was that the client code is aware of both the concrete classes i.e. ‘ClsInvoiceWithHeader’ and ‘ClsInvoiceWithOutHeader’. This leads to recompiling of the client code when we add new invoice types. For instance if we add ‘ClsInvoiceWithFooter’ client code needs to be changed and recompiled accordingly.  To remove this issue we have introduced a common interface ‘IInvoice’. Both the concrete classes ‘ClsInvoiceWithHeader’ and ‘ClsInvoiceWithOutHeader’ inherit and implement the ‘IInvoice’ interface.
  • 17.  The client references only the ‘IInvoice’ interface which results in zero connection between client and the concrete classes ( ‘ClsInvoiceWithHeader’ and ‘ClsInvoiceWithOutHeader’). So now if we add new concrete invoice class we do not need to change any thing at the client side.  In one line the creation of objects is taken care by ‘ClsFactoryInvoice’ and the client disconnection from the concrete classes is taken care by ‘IInvoice’ interface.
  • 18.
  • 19.
  • 20.
  • 22. BENEFITS OF DESIGN PATTERNS  It will check how less code is manipulate in future.  Try to have more loose Coupling of classes or objects is there.  enable large scale reuse of S/W Helps in improve developer communication captureexpert knowledge and design trade-offs and make expertise widely available
  • 23. DRAWBACKS OF DESIGN PATTERNS  . Complex in nature  Do not lead to direct code reuse.  They consume more memory because of generalized format they are written, to store any kind of data .