Concurrency
Concurrency in Object Oriented Analysis and Design (OOAD) is like managing multiple tasks at at the same time, just as people multitask in every day life.
Imagine you’re a chef in a restaurant. You have several orders to prepare, and each order consists of different dishes. You can’t cook one disk at a time and move to the next dish because customers are hungry and waiting for their food. So, you need to work on multiple dishes simultaneously
Now, let’s relate this to OOAD:
- Tasks as Objects: In OOAD, think of each dish you’re cooking as an object or a task. Each dish has its recipe ad cooking instructions, just like objects have their method and properties.
- Concurrency in Kitchen: You are working concurrently in kitchen, managing multiple dishes simultaneously. While one dish is simmering, you might be chopping ingredients for another or seasoning a third. You switch between tasks efficiently to serve all orders.
In OOAD, concurrency is about managing multiple tasks or processes within a software system simultaneously. It’s like juggling different tasks efficiently to make the most of your time.
Object Oriented Principles in OOAD
Object-oriented principles are a set of guidelines for designing and implementing software systems that are based on the idea of objects. Objects are self-contained units of code that have both data and behavior. They can interact with each other to perform tasks.
Object-Oriented Analysis and Design (OOAD) is a software engineering methodology that uses object-oriented principles to design and implement software systems. OOAD involves a number of techniques and practices, including:
- Object-Oriented Modelling: This involves using visual diagrams to represent the different objects in a software system and their relationships to each other.
- Use Cases: This involves describing the different ways in which users will interact with a software system.
- Design Patterns: This involves using reusable solutions to common problems in software design.
Important Topics for Object Oriented Principles in OOAD
- Abstraction
- Encapsulation
- Modularity
- Hierarchy
- Typing
- Concurrency
- Persistence
- Conclusion