The document discusses the GRASP (General Responsibility Assignment Software Principles) patterns and principles for assigning responsibilities in object-oriented design. It defines GRASP as helping to clearly outline which objects are responsible for which actions. There are nine GRASP principles covered: Creator, Controller, Information Expert, Low Coupling, High Cohesion, Indirection, Polymorphism, Protected Variations, and Pure Fabrication. These principles provide guidelines for assigning responsibilities to classes to achieve well-structured and maintainable code. The document then explains each principle in more detail using a chess game as an example domain.
Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility.
Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility.
Agreement Protocols, Distributed Resource Management: Issues in distributed File Systems, Mechanism for building distributed file systems, Design issues in Distributed Shared Memory, Algorithm for Implementation of Distributed Shared Memory.
THIS DESCRIBES VARIOUS ELEMENTS OF TRANSPORT PROTOCOL IN TRANSPORT LAYER OF COMPUTER NETWORKS
THERE ARE SIX ELEMENTS OF TRANSPORT PROTOCOL NAMELY
1. ADDRESSING
2. CONNECTION ESTABLISHMENT
3.CONNECTION REFUSE
4.FLOW CONTROL AND BUFFERS
5.MULTIPLEXING
6.CRASH RECOVERY
A distributed system is a collection of computational and storage devices connected through a communications network. In this type of system, data, software, and users are distributed.
Real Life Applications of Distributed Systems:
1. Distributed Rendering in Computer Graphics
2. Peer-To-Peer Networks
3. Massively Multiplayer Online Gaming
Agreement Protocols, Distributed Resource Management: Issues in distributed File Systems, Mechanism for building distributed file systems, Design issues in Distributed Shared Memory, Algorithm for Implementation of Distributed Shared Memory.
THIS DESCRIBES VARIOUS ELEMENTS OF TRANSPORT PROTOCOL IN TRANSPORT LAYER OF COMPUTER NETWORKS
THERE ARE SIX ELEMENTS OF TRANSPORT PROTOCOL NAMELY
1. ADDRESSING
2. CONNECTION ESTABLISHMENT
3.CONNECTION REFUSE
4.FLOW CONTROL AND BUFFERS
5.MULTIPLEXING
6.CRASH RECOVERY
A distributed system is a collection of computational and storage devices connected through a communications network. In this type of system, data, software, and users are distributed.
Real Life Applications of Distributed Systems:
1. Distributed Rendering in Computer Graphics
2. Peer-To-Peer Networks
3. Massively Multiplayer Online Gaming
ANSWER SET PROGRAMMING (DLV – CLINGO):CONNECT 4 SOLVERijaia
Answer set programming is an approach that has recently gained a lot of popularity in solving complex
problems due to its efficient knowledge representation and reasoning. Knowledge is represented as answer
set programs, and reasoning is performed by answer set solvers. Answer set programming enables default
reasoning, which is required in commonsense reasoning. In this paper, we discuss the potential role of
answer set programming (ASP) in the context of approaches to the development of agents especially in the
realm of Computational Logic. So, we focus on the usage of DLV for solving problems in a declarative
manner particularly, in the solution of the game “connect four”. Additionally, we present the solution to
this same problem from Clingo's perspective. We address this challenge with the ASP system clingo and its
grounding and solving components by equipping them with well-defined generic interfaces facilitating the
manifold integration efforts.
ANSWER SET PROGRAMMING (DLV – CLINGO):CONNECT 4 SOLVERgerogepatton
Answer set programming is an approach that has recently gained a lot of popularity in solving complex
problems due to its efficient knowledge representation and reasoning. Knowledge is represented as answer
set programs, and reasoning is performed by answer set solvers. Answer set programming enables default
reasoning, which is required in commonsense reasoning. In this paper, we discuss the potential role of
answer set programming (ASP) in the context of approaches to the development of agents especially in the
realm of Computational Logic. So, we focus on the usage of DLV for solving problems in a declarative
manner particularly, in the solution of the game “connect four”. Additionally, we present the solution to
this same problem from Clingo's perspective. We address this challenge with the ASP system clingo and its
grounding and solving components by equipping them with well-defined generic interfaces facilitating the
manifold integration efforts.
what is COCOMO Model in software project management
COCOMO Model in software project management defined
COCOMO Model in software project management
what is cocomo model
cocomo model and its application
Resource Allocation In Software Project ManagementSyed Hassan Ali
Resource Allocation In Software Project Management
what is Resource Allocation In Software Project Management
define Resource Allocation In Software Project Management
how to allocate resource in software project management
Accountability And Auditing In Professional PracticeSyed Hassan Ali
Accountability And Auditing In Professional practice
what is accountability
what is auditing
pillar of accountability
types of auditing
internal auditing
external auditing
example of auditing
real life example of auditing
real life example of accountability
why we use auditing
the main purpose of auditing
what is Software Generic Design Process.
Software Generic Design Process
what is software generic model
what is software process model
what is sdlc model
how to use design process model in software
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxEduSkills OECD
Andreas Schleicher presents at the OECD webinar ‘Digital devices in schools: detrimental distraction or secret to success?’ on 27 May 2024. The presentation was based on findings from PISA 2022 results and the webinar helped launch the PISA in Focus ‘Managing screen time: How to protect and equip students against distraction’ https://www.oecd-ilibrary.org/education/managing-screen-time_7c225af4-en and the OECD Education Policy Perspective ‘Students, digital devices and success’ can be found here - https://oe.cd/il/5yV
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
The Art Pastor's Guide to Sabbath | Steve ThomasonSteve Thomason
What is the purpose of the Sabbath Law in the Torah. It is interesting to compare how the context of the law shifts from Exodus to Deuteronomy. Who gets to rest, and why?
We all have good and bad thoughts from time to time and situation to situation. We are bombarded daily with spiraling thoughts(both negative and positive) creating all-consuming feel , making us difficult to manage with associated suffering. Good thoughts are like our Mob Signal (Positive thought) amidst noise(negative thought) in the atmosphere. Negative thoughts like noise outweigh positive thoughts. These thoughts often create unwanted confusion, trouble, stress and frustration in our mind as well as chaos in our physical world. Negative thoughts are also known as “distorted thinking”.
Ethnobotany and Ethnopharmacology:
Ethnobotany in herbal drug evaluation,
Impact of Ethnobotany in traditional medicine,
New development in herbals,
Bio-prospecting tools for drug discovery,
Role of Ethnopharmacology in drug evaluation,
Reverse Pharmacology.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
1. GRASP PATTERNS
AND ITS TYPES
PRESENTED BY:
SAIRA BANO
RAMSHA GHAFFAR
SYED HASSAN ALI HASHMI
2. DEFINITION
GRASP or General Responsibility Assignment Software Principles help
guide object-oriented design by clearly outlining WHO does WHAT.
object or class is responsible for what action or role? GRASP also helps us
define how classes work with one another. The key point of GRASP is to
have efficient, clean, understandable code
3. PATTERNS
In OO design, a pattern is a named description of a problem and solution
that can be applied to new contexts; ideally, a pattern advises us on how to
apply its solution in varying circumstances and considers the forces and
trade-offs. Many patterns, given a specific category of problem, guide the
assignment of responsibilities to objects.
4. PRINCIPLES
Within GRASP there are nine principles that we want to cover. They are:
Creator
Controller
Information Expert
Low Coupling
High Cohesion
Indirection
Polymorphism
Protected Variations
Pure Fabrication.
5. We'll be talking about a chess game and the various responsibilities and
relationships between the objects and classes within the game.
6. CREATOR
The Creator defines WHO instantiates WHAT object. In object-oriented
design lingo, we need to ask the question of who creates an object A. The
solution is that we give class B the role of instantiating (creating an
instance of) a class A if:
B contains A
B uses most of A's features
B can initialize A
7. So far this doesn't really help us understand how this works. Let's use a real-world
example of a chess game. A chess game includes 2 players, 32 pieces (16 per player)
and a game board with 64 squares.
8. CONTROLLER
In our chess example, the end user is going to interact with our program through a user
interface (UI). The Controller is the FIRST object to receive a command from the UI. In
our case, when the user presses Play, the first object that should be triggered is the Chess
Game.
9. INFORMATION EXPERT
Information expert is a principle used to determine where to delegate
responsibilities. These responsibilities include methods, computed fields,
and so on.
Using the principle of information expert, a general approach to assigning
responsibilities is to look at a given responsibility, determine the
information needed to fulfill it, and then determine where that information
is stored.
Information expert will lead to placing the responsibility on the class with
the most information required to fulfill it
10. The Information Expert pattern states that we need to assign responsibilities to the right
expert. Is the game board itself the expert on how pieces can move or are the pieces
themselves the experts at their moves? In the case of the chess board, the piece is the
expert on the possible move options for that piece.
INFORMATION EXPERT
11. LOW COUPLING
Coupling is a measure of how strongly one element is connected to, has
knowledge of, or relies on other elements. Low coupling is an evaluative
pattern that dictates how to assign responsibilities to support
lower dependency between the classes,
change in one class having lower impact on other classes,
higher reuse potential.
12.
13. Low Coupling can be described as following the path of least resistance.
Coupling is a measure of how much objects are tied to one another. We
can follow the information expert for the lowest level of coupling. So, to
get the moves available to a piece, we start with the information expert,
and not some other class. In the chess game, the MovePiece class
needs to get information from the board and the place it intends to move
to. We can couple all of this together in one flow:
LOW COUPLING
14. HIGH COHESION
It is important to have code that is clean. Objects need to be manageable,
easy to maintain and have clearly-stated properties and objectives. This
is High Cohesion which includes defined purposes of classes, ability to
reuse code, and keeping responsibility to one unit. High Cohesion, Low
Coupling, and clearly defined responsibilities go together. To achieve High
Cohesion, a class should have ONE job. A game piece should move across
the board. It should not need to setup the board or define moves for other
players.
15. INDIRECTION
In order to support lower coupling between objects, we look
for Indirection, that is creating an intersection object between two or more
objects so they aren't connected to each other. Indirection and
Polymorphism go hand in hand.
16. POLYMORPHISM
This sounds like a science fiction term, but Polymorphism really means
that one thing can be performed in different ways. All chess pieces can
move, but each has a special way of moving.
17. PROTECTED VARIATION
The protected variations pattern protects elements from the variations on
other elements (objects, systems, subsystems) by wrapping the focus of
instability with an interface and using polymorphism to create various
implementations of this interface.
18. PURE FABRICATION
A pure fabrication is a class that does not represent a concept in the
problem domain, specially made up to achieve low coupling, high
cohesion, and the reuse potential thereof derived (when a solution
presented by the information expert pattern does not). This kind of class is
called a "service" in domain-driven design.
19. OVERVIEW
Informational Expert Assign a responsibility to the class that has the information
needed to fulfill it..
Creator Assign class B the responsibility to create an instance
class A if one of these is true (the more the better):
• B ”contains” or compositely aggregates A.
• B records A.
• B closely uses A.
• B has the initializing data for A that will be passed
A when it is created. Thus B is an Expert with
to creating A.
Controller Assign the responsibility to a class representing one of
the following choices:
• Major subsystem classes
• A use case scenario classes within which the system
event occurs.
Low Coupling Assign a responsibility so that coupling remains low.
High Cohesion Assign a responsibility so that cohesion remains high.
20. OVERVIEW
Polymorphism The same name operations (methods) in the difference
classes is defined. And assign a responsibility to the class
the class that the behavior is changed.
Pure Fabrication Define a class for convenience sake that doesn’t express
the concept of the problem area at all.
Indirection Assign the responsibility to an intermediate object to
mediate between other components or services, so that
they are not directly coupled.
Protected Variations Assign responsibility to create a stable interface around
unstable or predictably variable subsystem or