● Design Patterns
A pattern is a so-called insight nugget that transmits the essence of a known in a certain context, in the midst of conflicting problems, solutions to a recurrent problem. StatedA design pattern defines a design framework that addresses a specific design problem within a particular context and in the midst of "forces" that may influence the way the pattern is implemented and used. Each design pattern is intended to provide a definition that helps a designer to decideFunction Oriented design | Object Oriented design |
Real world functions are the simple abstractions that are provided to the user. | The fundamental abstractions are not the functions of the physical world, but the representation of data where real world entities are represented. |
Functions are grouped together by having a higher-level function. | On the basis of the data they run, functions are grouped together as the groups are correlated with their methods. |
State data is often interpreted in this approach and is often represented in a centralized shared memory. | The state data is not represented in this method and is not represented in a centralized memory but is implemented or distributed among the device objects. |
This method is primarily used for applications that are sensitive to computing. | This technique is used specifically for the evolution of a method that mimics a company or business scenario. |
It is an approach from the top down. | It is an approach from the bottom up. |
We decompose at the function /procedure level in function-oriented design. | We decompose in class level. |
Start by considering the case diagrams and the scenarios for use. | It begins by defining classes and artefacts. |
● Complete and sufficient
● Primitiveness
● High cohesion
● Low coupling
Q10) Write about refinement, abstract and aspects?A10) RefinementStepwise refinement is a technique for top-down design. The creation of a software is By successively refining procedural information levels. A hierarchy is defined by stepwise decomposing a macroscopic function statement (a procedural abstraction) until programming language statements are reached.In reality, refinement is a process of elaboration that starts with a function statement (or knowledge description) that is described at a high level of abstraction. As design advances, sophistication allows you to uncover low-level information. Aspects A collection of "concerns" is discovered as the review of requirements occurs. These “Include requirements, use cases, features, data structures, quality of service problems, variants, boundaries of intellectual property, collaborations, trends and contracts".Ideally, a model of requirements should be designed in a way that allows you to separate each problem (requirement) so that it can be independently considered. However, in fact, some of these problems span the entire structure and cannot be easily compartmentalized. AbstractionWhen you consider every problem to be a modular solution, several levels of abstraction may be posed. At the highest level of abstraction, using the language of the problem setting, a solution is described in general terms. A more detailed explanation of the solution is provided at lower levels of abstraction. Finally, the solution is described in a way that can be explicitly applied at the lowest level of abstraction.A procedural abstraction relates to a set of instructions that have a particular and restricted purpose. These functions are indicated by the name of a procedural abstraction, but precise specifics are suppressed. A data abstraction is a set of named data representing a data object.