Post on 05-Dec-2014
description
Session # 1Ahmed Safwat
Muhamad HeshamAbdelrahman Al-Ogail
Where are we? Someone has already solved your problems! History of design patterns. Why design patterns? How to start ? Road Map. Introduction to session’s project. Why all of this?
Where are we
Start
• A small program to save customer information on MS DOS
Last Decade
• Each Bank has a system connected to the internet so that you can access your account from any branch
Now
• A full automation banking all around the world with secure payments over the internet, trading in stock markets, money withdrawal from any ATM in the world
Software Scale and Size
Where are we
“While component technology was a great framework for reuse, Developers didn’t put the effort into making sure the components themselves were actually designer for reuse”MS Architecture Journal Motivation
Service Based Computing {SOA}
Where are we
Global architecture
Enterprise architecture
System architecture
Application architecture
Macro-architecture
Micro-architecture
Objects
The seven layers of architecture
ORB
OO architecture
Frameworks
Subsystem
Design patterns
OO programming
Where are we
1. Make sure your software does what
customer wants it to do
Great Software
Where are we
1. Make sure your software does what
customer wants it to do
Great Software
2. Apply basic OO princibles to add
more flexibility
Where are we
1. Make sure your software does what
customer wants it to do
Great Software
2. Apply basic OO princibles to add
more flexibility
3. Strive for maintainability and
reusable design
What is Design Patterns
•Pattern: A solution to a problem in a context.
•Well-structured object-oriented systems have recurring patterns ofclasses and objects
• old men always know a solution
Problem
Context
Forces
Solution
Benefits Related patterns consequences
Someone has already solved your problems
1987 - Cunningham and Beck used Alexander’s ideas to develop a small pattern language for Smalltalk
1990 - The Gang of Four (Gamma, Helm, Johnson and Vlissides) begin work compiling a catalog of design patterns
1991 - Bruce Anderson gives first Patterns Workshop at OOPSLA
1993 - Kent Beck and Grady Booch sponsor the first meeting of what is now known as the Hillside Group
1994 - First Pattern Languages of Programs (PLoP) conference
1995 - The Gang of Four (GoF) publish the Design Patterns book
Why Design Patterns? Job Requirements
Why Design Patterns
•"Designing object-oriented software is hard and designing reusable object-oriented software is even harder." - Erich Gamma
•Knowledge of the patterns that have worked in the past allows a designer to be more productive and the resulting designs to be more flexible and reusable
This can be you
Run successful projects
Is willing to teach others
Has the respect of her
peers
Is an important part of the
development community
Earn A lot of money
This Can Be YOU
How does it work?
How does it work?
Here is my game. Change the game theme Here is the game assets. I will come by tommorow.
Who Wins ?
VS
He won
Abdelrahman wins
But …………….2al by2oly
design patterns
Guess what?
“The one constant in software development”
Guess what?
“The one constant in software development”
CHANGE
Never Stop Changing his mind
My sons likes different themes.
My sons want to be able to change theme while playing.
Change it Today.
Our Clients
AGAIN
VS
Who wins
MEEEEEEEEEEEEEEEEE
Conclusion
Zikas MuhamadWhy did I win ?• Genius ?
• Super speed writer ?
• Teneeen ?!
How to start?
Acceptance Recognition Initialization
there is a slow induction period after we’ve read about a pattern followed by the proverbial “Aha!” when we see how we can apply them in our work
Road Map
How to read patterns?
Classifications pattern
Some GOF patterns Factory. Singleton. Adapter. Façade. Command. Observer. State. Mediator. Composite.
We’ll Study:
1. Factory.
2. Singleton.
3. Observer.
4. State.
Our Sessions Content
Road Map
We’ve non-patterned feature. CHANGE. Let’s Google it. Pattern it! CHANGE. Conclusion. Break. Pattern details.
Session’s Approach
Session’s Project
Learning through Game Programming
Why Game Programming ?
Session’s Project
Learning through Game Programming
Why Game Programming ?
1.Fun & Interesting
OOD & Design patterns in action
Session’s Project Platformer Skeleton
Main Actors • Level• Player• Enemy• Gem
Finally
Where are our scientists? HF & DS authors. Taha & Elmasri. Previous:
▪ Algorithm, Algebra, 1,2,3, Camera, NASA.
Hospital. Nueclar scientist. Stat.
What about efforts? Thomas Edison. Reading books. Ebn Makhld. Quotes.
“No pain, no gain”Anonymous.
”ال ُيستطاع العلم براحة الجسم“يحى بن كثير
“My inventions comes from 2% inspiration and 98% of efforts”Thomas Edison.
“Science is what we understand well enough to explain to a computer. Art is everything else we do”Donald Knuth.
Why all of this?
Questions??Ahmedaliyossef@acm.orgMhesham.fcis@gmail.com
Zikas_zak@hotmail.com