├── Forming Associations Between Objects.md ├── Forming Associations Between Objects ├── 14. Forming Associations Between Objects 1.PNG ├── 14. Forming Associations Between Objects 2.PNG ├── 14. Forming Associations Between Objects 3.PNG └── 14. Forming Associations Between Objects 4.PNG ├── OOD Notes ├── Architectural Modelling.pdf ├── Basic Behavioural Modelling.pdf ├── Interaction Diagrams.pdf ├── Module 1 - Introduction to UML.pdf ├── Module 2 - Basic Structural Modelling.pdf ├── Module 3 - Class and Object Diagrams.pdf ├── Module 4 - Basic Behavioural Modelling-II.pdf └── Module 5 - Architectural Modelling.pdf ├── OOD designs ├── Lab 1 │ └── Lab 1 Problem Statement - Online Food Delivery System.pdf ├── Lab 12 │ ├── Lab12 Component Diagram.pdf │ ├── Lab12 Component Diagram.png │ ├── Lab12 Deployment Diagram.pdf │ └── Lab12 Deployment Diagram.png ├── Lab 2 │ └── Lab 2 SRS Document.pdf ├── Lab 3 │ ├── Lab 3 Use Case Diagram.pdf │ ├── Lab 3 Use Case Diagram.png │ ├── Use_Case_Diagram.vpp │ ├── Use_Case_Diagram.vpp.bak_000f │ └── Use_Case_Diagram.vpp.bak_001d ├── Lab 4 │ ├── Lab 4 Activity diagram.pdf │ └── Lab 4 Activity diagram.png ├── Lab 5 │ ├── Lab 5 Class diagram.pdf │ ├── Lab 5 Class diagram.png │ ├── Online_food_delivery_system_class_diagram.vpp │ ├── Online_food_delivery_system_class_diagram.vpp.bak_000f │ ├── Online_food_delivery_system_class_diagram.vpp.bak_001d │ ├── class diagram for online food delivery app.vpp │ ├── class diagram for online food delivery app.vpp.bak_000f │ ├── class diagram for online food delivery app.vpp.bak_001d │ └── class diagram for online food delivery app.vpp.bak_002d ├── Lab 6 │ ├── Lab 6 Interaction Overview Diagram.pdf │ ├── Lab 6 Interaction Overview Diagram.png │ ├── Lab 6 Sequence Diagram.pdf │ ├── Lab 6 Sequence Diagram.png │ ├── Lab 6 communication diagram.pdf │ ├── Lab 6 communication diagram.png │ └── sequence diagram lab 6.vpp ├── Lab 7 │ ├── Lab 7 State chart diagram.pdf │ └── Lab 7 State chart diagram.png ├── Lab 8 9 10 11 │ ├── Lab 8,9,10,11 Package diagram with layers.jpg │ └── Lab 8,9,10,11 Package diagram with layers.pdf └── Project Presentation │ ├── OOAD Food Delivery presentation.pdf │ └── OOAD Food Delivery presentation.pptx ├── README.md └── _config.yml /Forming Associations Between Objects.md: -------------------------------------------------------------------------------- 1 | **"Forming Associations Between Objects"** lecture notes from the course **"Master Object Oriented Design in Java - Homework + Solutions" by Imtiaz Ahmad**. 2 | 3 | --- 4 | 5 | ## 📘 Lecture Summary: Forming Associations Between Objects 6 | 7 | ### 🔑 Core Lesson: 8 | 9 | Many newcomers to Object-Oriented Design make a common mistake: 10 | They form **associations based on *physical flow*** instead of **object behavior**. 11 | 12 | --- 13 | 14 | ## 🧠 Learning Point #1: Modeling a Real-World Example 15 | 16 | ### Use Case: 17 | 18 | A **Customer** receives newspapers from a **NewspaperCompany**. 19 | 20 | Initially, one might model this association as: 21 | 22 | > "**NewspaperCompany has a Customer**" 23 | 24 | #### Screenshot 1 - UML Diagram: 25 | 26 | 🖼️ ![14. Forming Associations Between Objects 1](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/refs/heads/main/Forming%20Associations%20Between%20Objects/14.%20Forming%20Associations%20Between%20Objects%201.PNG) 27 | 28 | ### Code Snippet 1: 29 | 30 | ```java 31 | public class NewsPaperCompany { 32 | Customer customer; 33 | 34 | public void setCustomer(Customer aCustomer) { 35 | customer = aCustomer; 36 | } 37 | 38 | // other methods... 39 | } 40 | ``` 41 | 42 | --- 43 | 44 | ## ⚠️ Mistake Highlighted: 45 | 46 | This association implies: 47 | 48 | * NewspaperCompany "knows" about its Customer. 49 | * Messages flow **from NewspaperCompany → Customer** 50 | 51 | **BUT this doesn't align with how behavior flows in the real world.** 52 | 53 | --- 54 | 55 | ## 🧠 Learning Point #2: Behavior-Oriented Design 56 | 57 | ### Consider This: 58 | 59 | When a customer wants to cancel their subscription, 60 | **they** initiate the action. So they should be able to tell the newspaper company: 61 | 62 | > `"Hey, stop sending me papers."` 63 | 64 | This calls for **reversing the association**: 65 | 66 | > "**Customer has a NewspaperCompany**" 67 | 68 | ### Screenshot 2 here: 69 | 70 | 🖼️ ![14. Forming Associations Between Objects 3](sandbox:/mnt/data/14.%20Forming%20Associations%20Between%20Objects%203.PNG) 71 | 72 | ### Screenshot 3 here (UML Code Representation): 73 | 74 | 🖼️ ![14. Forming Associations Between Objects 4](sandbox:/mnt/data/14.%20Forming%20Associations%20Between%20Objects%204.PNG) 75 | 76 | ### Code Snippet 2: 77 | 78 | ```java 79 | public class Customer { 80 | NewsPaperCompany paperCompany; 81 | 82 | public void setNewsPaperCompany(NewsPaperCompany aPaperCompany) { 83 | paperCompany = aPaperCompany; 84 | } 85 | 86 | public void cancelSubscription() { 87 | paperCompany.stopPaperDelivery(); 88 | } 89 | } 90 | ``` 91 | 92 | --- 93 | 94 | ## 🧩 Design Insight: 95 | 96 | * The **arrow in UML** points in the **direction of the dependency**. 97 | * Now, the **Customer depends on** the NewspaperCompany (not vice versa). 98 | * This is called a **"has-a" relationship**. 99 | * **Behavior drives association**, not data flow. 100 | 101 | --- 102 | 103 | ## ✅ Key Takeaways 104 | 105 | | Wrong Design (Physical Flow) | Right Design (Behavior-Based) | 106 | | ---------------------------- | ----------------------------------- | 107 | | NewspaperCompany → Customer | Customer → NewspaperCompany | 108 | | Based on who *sends* paper | Based on who *cancels* subscription | 109 | | Physically intuitive | Behaviorally correct | 110 | 111 | --- 112 | 113 | ## 📚 Further Reading & Official References: 114 | 115 | 1. **Oracle Java OOP Documentation**: 116 | [https://docs.oracle.com/javase/tutorial/java/concepts/](https://docs.oracle.com/javase/tutorial/java/concepts/) 117 | 118 | 2. **UML Basics (IBM Guide)**: 119 | [https://www.ibm.com/docs/en/rhapsody/9.0.1?topic=diagrams-class](https://www.ibm.com/docs/en/rhapsody/9.0.1?topic=diagrams-class) 120 | 121 | 3. **Association vs Aggregation vs Composition** (UML Explained): 122 | [https://www.geeksforgeeks.org/association-aggregation-composition-java/](https://www.geeksforgeeks.org/association-aggregation-composition-java/) 123 | 124 | --- 125 | 126 | ## 🧠 Instructor's Intent: 127 | 128 | > “This isn’t a perfect design — it’s simplified to help you start thinking about organizing objects and associations around behavior, not physical processes.” 129 | 130 | --- 131 | -------------------------------------------------------------------------------- /Forming Associations Between Objects/14. Forming Associations Between Objects 1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/Forming Associations Between Objects/14. Forming Associations Between Objects 1.PNG -------------------------------------------------------------------------------- /Forming Associations Between Objects/14. Forming Associations Between Objects 2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/Forming Associations Between Objects/14. Forming Associations Between Objects 2.PNG -------------------------------------------------------------------------------- /Forming Associations Between Objects/14. Forming Associations Between Objects 3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/Forming Associations Between Objects/14. Forming Associations Between Objects 3.PNG -------------------------------------------------------------------------------- /Forming Associations Between Objects/14. Forming Associations Between Objects 4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/Forming Associations Between Objects/14. Forming Associations Between Objects 4.PNG -------------------------------------------------------------------------------- /OOD Notes/Architectural Modelling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Architectural Modelling.pdf -------------------------------------------------------------------------------- /OOD Notes/Basic Behavioural Modelling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Basic Behavioural Modelling.pdf -------------------------------------------------------------------------------- /OOD Notes/Interaction Diagrams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Interaction Diagrams.pdf -------------------------------------------------------------------------------- /OOD Notes/Module 1 - Introduction to UML.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Module 1 - Introduction to UML.pdf -------------------------------------------------------------------------------- /OOD Notes/Module 2 - Basic Structural Modelling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Module 2 - Basic Structural Modelling.pdf -------------------------------------------------------------------------------- /OOD Notes/Module 3 - Class and Object Diagrams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Module 3 - Class and Object Diagrams.pdf -------------------------------------------------------------------------------- /OOD Notes/Module 4 - Basic Behavioural Modelling-II.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Module 4 - Basic Behavioural Modelling-II.pdf -------------------------------------------------------------------------------- /OOD Notes/Module 5 - Architectural Modelling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD Notes/Module 5 - Architectural Modelling.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 1/Lab 1 Problem Statement - Online Food Delivery System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 1/Lab 1 Problem Statement - Online Food Delivery System.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 12/Lab12 Component Diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 12/Lab12 Component Diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 12/Lab12 Component Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 12/Lab12 Component Diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 12/Lab12 Deployment Diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 12/Lab12 Deployment Diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 12/Lab12 Deployment Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 12/Lab12 Deployment Diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 2/Lab 2 SRS Document.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 2/Lab 2 SRS Document.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 3/Lab 3 Use Case Diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 3/Lab 3 Use Case Diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 3/Lab 3 Use Case Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 3/Lab 3 Use Case Diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 3/Use_Case_Diagram.vpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 3/Use_Case_Diagram.vpp -------------------------------------------------------------------------------- /OOD designs/Lab 3/Use_Case_Diagram.vpp.bak_000f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 3/Use_Case_Diagram.vpp.bak_000f -------------------------------------------------------------------------------- /OOD designs/Lab 3/Use_Case_Diagram.vpp.bak_001d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 3/Use_Case_Diagram.vpp.bak_001d -------------------------------------------------------------------------------- /OOD designs/Lab 4/Lab 4 Activity diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 4/Lab 4 Activity diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 4/Lab 4 Activity diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 4/Lab 4 Activity diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 5/Lab 5 Class diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/Lab 5 Class diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 5/Lab 5 Class diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/Lab 5 Class diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 5/Online_food_delivery_system_class_diagram.vpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/Online_food_delivery_system_class_diagram.vpp -------------------------------------------------------------------------------- /OOD designs/Lab 5/Online_food_delivery_system_class_diagram.vpp.bak_000f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/Online_food_delivery_system_class_diagram.vpp.bak_000f -------------------------------------------------------------------------------- /OOD designs/Lab 5/Online_food_delivery_system_class_diagram.vpp.bak_001d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/Online_food_delivery_system_class_diagram.vpp.bak_001d -------------------------------------------------------------------------------- /OOD designs/Lab 5/class diagram for online food delivery app.vpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/class diagram for online food delivery app.vpp -------------------------------------------------------------------------------- /OOD designs/Lab 5/class diagram for online food delivery app.vpp.bak_000f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/class diagram for online food delivery app.vpp.bak_000f -------------------------------------------------------------------------------- /OOD designs/Lab 5/class diagram for online food delivery app.vpp.bak_001d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/class diagram for online food delivery app.vpp.bak_001d -------------------------------------------------------------------------------- /OOD designs/Lab 5/class diagram for online food delivery app.vpp.bak_002d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 5/class diagram for online food delivery app.vpp.bak_002d -------------------------------------------------------------------------------- /OOD designs/Lab 6/Lab 6 Interaction Overview Diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 6/Lab 6 Interaction Overview Diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 6/Lab 6 Interaction Overview Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 6/Lab 6 Interaction Overview Diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 6/Lab 6 Sequence Diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 6/Lab 6 Sequence Diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 6/Lab 6 Sequence Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 6/Lab 6 Sequence Diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 6/Lab 6 communication diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 6/Lab 6 communication diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 6/Lab 6 communication diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 6/Lab 6 communication diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 6/sequence diagram lab 6.vpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 6/sequence diagram lab 6.vpp -------------------------------------------------------------------------------- /OOD designs/Lab 7/Lab 7 State chart diagram.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 7/Lab 7 State chart diagram.pdf -------------------------------------------------------------------------------- /OOD designs/Lab 7/Lab 7 State chart diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 7/Lab 7 State chart diagram.png -------------------------------------------------------------------------------- /OOD designs/Lab 8 9 10 11/Lab 8,9,10,11 Package diagram with layers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 8 9 10 11/Lab 8,9,10,11 Package diagram with layers.jpg -------------------------------------------------------------------------------- /OOD designs/Lab 8 9 10 11/Lab 8,9,10,11 Package diagram with layers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Lab 8 9 10 11/Lab 8,9,10,11 Package diagram with layers.pdf -------------------------------------------------------------------------------- /OOD designs/Project Presentation/OOAD Food Delivery presentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Project Presentation/OOAD Food Delivery presentation.pdf -------------------------------------------------------------------------------- /OOD designs/Project Presentation/OOAD Food Delivery presentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/69ae0a658856b558f34e0fab433257dcc832da1d/OOD designs/Project Presentation/OOAD Food Delivery presentation.pptx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Object Oriented Design (OOD/LLD) 2 | 3 | ## Project: Online Food Delivery System 4 | 5 | This Respository contains my work with my teammates where we performed **Project based learning** on the topic ***Object Oriented Design and Analysis*** also known as ***Low Level Design ( LLD )*** 6 | 7 | --- 8 | 9 | ## List of Contents 10 | 11 | - [Outcomes from learning OOD/LLD](#outcomes-from-learning-oodlld) 12 | - [Project Objectives](#project-objectives) 13 | - [x] [1 Problem Statement](#1-problem-statement) 14 | - [x] [2 SRS Document](#2-srs-document) 15 | - [x] [3 Use Case Diagram](#3-use-case-diagram) 16 | - [x] [4 Activity Diagram](#4-activity-diagram) 17 | - [x] [5 Class Diagram](#5-class-diagram) 18 | - [x] [6 Interaction Diagrams](#6-interaction-diagrams) 19 | - [x] [6 Interaction Overview Diagram](#6-interaction-overview-diagram) 20 | - [x] [6 Communication Diagram](#6-communication-diagram) 21 | - [x] [6 Sequence Diagram](#6-sequence-diagram) 22 | - [x] [7 State chart diagram](#7-state-chart-diagram) 23 | - [x] [8-11 Package diagram with layers](8-11-package-diagram-with-layers) 24 | - [x] [12 Component Diagram](#12-component-diagram) 25 | - [x] [12 Deployment Diagram](#12-deployment-diagram) 26 | - [Resources](#resources) 27 | 28 | 29 | --- 30 | 31 | ## Outcomes from learning OOD/LLD 32 | 33 | - Analyze, design, document the requirements through use case driven approach. 34 | - Identify, analyze, and model structural and behavioral concepts of the system. 35 | - Develop, explore the conceptual model into various scenarios and applications. 36 | - Apply the concepts of architectural design for deploying the code for software. 37 | 38 | --- 39 | 40 | ## Project Objectives 41 | 42 | To develop a project following the 12 exercises listed below: 43 | 44 | 1. To develop a problem statement. 45 | 2. Develop an IEEE standard SRS document. Also develop risk management and project plan (Gantt chart). 46 | 3. Identify Use Cases and develop the Use Case model. 47 | 4. Identify the business activities and develop an UML Activity diagram. 48 | 5. Identity the conceptual classes and develop a domain model with UML Class diagram. 49 | 6. Using the identified scenarios find the interaction between objects and represent them using UML Interaction diagrams. 50 | 7. Draw the State Chart diagram. 51 | 8. Identify the User Interface, Domain objects, and Technical services. Draw the partial layered, logical architecture diagram with UML package diagram notation. 52 | 9. Implement the Technical services layer. 53 | 10. Implement the Domain objects layer. 54 | 11. Implement the User Interface layer. 55 | 12. Draw Component and Deployment diagrams. 56 | 57 | --- 58 | 59 | ## 1 Problem Statement 60 | 61 | [Problem Statement - Online Food Delivery System](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20designs/Lab%201/Lab%201%20Problem%20Statement%20-%20Online%20Food%20Delivery%20System.pdf) 62 | 63 | --- 64 | 65 | ## 2 SRS Document 66 | 67 | [SRS Document - Online Food Delivery System](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20designs/Lab%202/Lab%202%20SRS%20Document.pdf) 68 | 69 | --- 70 | 71 | ## 3 Use Case Diagram 72 | 73 | ![Use Case Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%203/Lab%203%20Use%20Case%20Diagram.png) 74 | 75 | --- 76 | 77 | ## 4 Activity Diagram 78 | 79 | ![Activity Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%204/Lab%204%20Activity%20diagram.png) 80 | 81 | --- 82 | 83 | ## 5 Class Diagram 84 | 85 | ![Class Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%205/Lab%205%20Class%20diagram.png) 86 | 87 | --- 88 | 89 | ## 6 Interaction Diagrams 90 | 91 | ### 6 Interaction Overview Diagram 92 | 93 | ![Interaction Overview Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%206/Lab%206%20Interaction%20Overview%20Diagram.png) 94 | 95 | ### 6 Communication Diagram 96 | 97 | ![Communication Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%206/Lab%206%20communication%20diagram.png) 98 | 99 | ### 6 Sequence Diagram 100 | 101 | ![Sequence Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%206/Lab%206%20Sequence%20Diagram.png) 102 | 103 | --- 104 | 105 | ## 7 State chart diagram 106 | 107 | ![State chart Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%207/Lab%207%20State%20chart%20diagram.png) 108 | 109 | --- 110 | 111 | ## 8-11 Package diagram with layers 112 | 113 | ![Package diagram with layers - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%208%209%2010%2011/Lab%208%2C9%2C10%2C11%20Package%20diagram%20with%20layers.jpg) 114 | 115 | --- 116 | 117 | ## 12 Component Diagram 118 | 119 | ![Component Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%2012/Lab12%20Component%20Diagram.png) 120 | 121 | ## 12 Deployment Diagram 122 | ![Deployment Diagram - Online Food Delivery System](https://raw.githubusercontent.com/AswinBarath/Object-Oriented-Design/main/OOD%20designs/Lab%2012/Lab12%20Deployment%20Diagram.png) 123 | 124 | --- 125 | 126 | ## Resources 127 | 128 | - [Cracking the Low Level Design ( LLD ) Interview](https://www.linkedin.com/pulse/cracking-he-low-level-design-lld-interview-shashi-bhushan-kumar/) 129 | - [Module 1 - Introduction to UML](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Module%201%20-%20Introduction%20to%20UML.pdf) 130 | - [Module 2 - Basic Structural Modelling](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Module%202%20-%20Basic%20Structural%20Modelling.pdf) 131 | - [Module 3 - Class and Object Diagrams](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Module%203%20-%20Class%20and%20Object%20Diagrams.pdf) 132 | - [Module 4 - Basic Behavioural Modelling-II](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Module%204%20-%20Basic%20Behavioural%20Modelling-II.pdf) 133 | - [Module 5 - Architectural Modelling](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Module%205%20-%20Architectural%20Modelling.pdf) 134 | - [Architectural Modelling](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Architectural%20Modelling.pdf) 135 | - [Basic Behavioural Modelling](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Basic%20Behavioural%20Modelling.pdf) 136 | - [Interaction Diagrams](https://github.com/AswinBarath/Object-Oriented-Design/blob/main/OOD%20Notes/Interaction%20Diagrams.pdf) 137 | 138 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-modernist --------------------------------------------------------------------------------