WEEK TWELVE
What is Idioms?
Tuesday, May 15, 2007
Thursday, May 10, 2007
WEEK TEN - Architectural Patterns?
However, the difficulty is we want to make distinctions as clearly as possible between a 'design pattern' and an architectural pattern. Clearly, design patterns will also have an impact on these various software qualities, so what is it that then distinguishes an architecture pattern from a design pattern?
A different way of looking at the difference between a design pattern and an architecture pattern is think about the questions considered in the development of the software architecture. These include things like:
What are the subsystems or components of the software system?
How should the interfaces between components be structured?
What are the characteristics of component communication?
If we consider that the purpose of the software architecture is to ensure that the system meet the goals of the stakeholders with respect to various software qualities such as maintainability, scalability, testability, etc.
However, the difficulty is we want to make distinctions as clearly as possible between a 'design pattern' and an architectural pattern. Clearly, design patterns will also have an impact on these various software qualities, so what is it that then distinguishes an architecture pattern from a design pattern?
A different way of looking at the difference between a design pattern and an architecture pattern is think about the questions considered in the development of the software architecture. These include things like:
What are the subsystems or components of the software system?
How should the interfaces between components be structured?
What are the characteristics of component communication?
WEEK NINE - AntiPatterns
There are patterns of communication, or lack there of. There are patterns of requirements for software projects. There are patterns of implementations for vendor solutions.
Now what?! Maybe it's the Domino Effect AntiPattern. Better look here to learn what to do ...
After you have been at something long enough, you begin to recognize patterns.
There are patterns of communication, or lack there of. There are patterns of requirements for software projects. There are patterns of implementations for vendor solutions.
Now what?! Maybe it's the Domino Effect AntiPattern. Better look here to learn what to do ...
Do you have a favorite pattern site?
Wednesday, May 09, 2007
WEEK EIGHT - Software Patterns
Patterns for software are similar in some way to the another thing of solutions that enable electrical engineers and civil engineers to avoid having to derive every new circuit or bridge design from first principles. This course will introduce the concept of software patterns, and explore the wide variety of patterns that may be applied to the production, analysis, design, implementation, and maintenance of software.
Patterns for software are similar in some way to the another thing of solutions that enable electrical engineers and civil engineers to avoid having to derive every new circuit or bridge design from first principles. This course will introduce the concept of software patterns, and explore the wide variety of patterns that may be applied to the production, analysis, design, implementation, and maintenance of software.
The format of the course will emphasize the discussion of patterns and their application. Each student will be expected to lead a discussion and to actively participate in others. Students will also be expected to introduce new patterns or pattern languages through research or developed from their own experience. Programming exercises performed outside of class will be used enhance discussion and illustrate the application of patterns.
Tuesday, May 08, 2007
WEEK SIX - GoF Patterns
elements of reusable software Publ. Addison Wesley ISBN 0-201-63361-2 A.K.A. "Gang of Four Book (GoF)"
Captures a wealth of experience about the design of object-oriented software. Patterns discussed allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions.
elements of reusable software Publ. Addison Wesley ISBN 0-201-63361-2 A.K.A. "Gang of Four Book (GoF)"
Describe what patterns are and how they can help you in the design process. They then systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. All patterns are compiled from real-world examples and include code that demonstrates how they may be implemented in object-oriented programming languages such as C++and Smalltalk.
Captures a wealth of experience about the design of object-oriented software. Patterns discussed allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions.
WEEK FIVE - Decorator Pattern
It’s important to know why you're using it and to learn how to communicate about it with other developers.
It’s important to know why you're using it and to learn how to communicate about it with other developers.
The main reason to use the Decorator pattern—also known as the Wrapper pattern—is a need to add functionality to a class without modifying its code or disturbing its inheritance. While you may want the class to have more functionality, using the Decorator pattern means that your improved functionality version doesn’t have to reuse the existing functionality by extending the class.
Here's an example. Given an interface named Action with two methods, act1() and act2(), and a concrete version of this interface named ConcreteAction, the Decorator would be a class that implements Action and whose constructor takes an Action (usually ConcreteAction).
WEEK FOUR - Adapter Pattern
Class adapters have a problem with name conflicts if methods of the same signature exist on both the target and the adaptee. Just because two objects have methods that have the same signature, it does not guarantee that the two methods have the same meaning or behavior. That is, the two methods do not necessarily map directly to each other. Object adapters do not have this problem.
Class adapters are simpler than object adapters in that they involve fewer classes and are useful if total decoupling of the client and adaptee is not needed.
Adapters come in two, object adapters and class adapters. These two methods to express the difference between the use of inheritance and composition to solve problems.
Class adapters have a problem with name conflicts if methods of the same signature exist on both the target and the adaptee. Just because two objects have methods that have the same signature, it does not guarantee that the two methods have the same meaning or behavior. That is, the two methods do not necessarily map directly to each other. Object adapters do not have this problem.
Class adapters are simpler than object adapters in that they involve fewer classes and are useful if total decoupling of the client and adaptee is not needed.
Monday, May 07, 2007
WEEK THREE - Strategy Pattern
Most developers have used them in different development scenarios, some theorize about them, few people use them continuously in their day-to-day development. Why?
So, this series of posts is aimed at describing the most common patterns. This post in the series descries the "Strategy Pattern"...
The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable.
This pattern describes a way to abstract out most commonly changing code from code that never changes and encapsulate this commonly changing code so that it can be used or interchanged with other similar code to provide behavior like functionality.
Design patterns are an ever growing collection of tried and tested best practices for implementing software code. No matter if your language of choice is C#, Java, C++, or Visual Basic, design patterns present blue prints for development of common object oriented principles.
Most developers have used them in different development scenarios, some theorize about them, few people use them continuously in their day-to-day development. Why?
So, this series of posts is aimed at describing the most common patterns. This post in the series descries the "Strategy Pattern"...
The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable.
This pattern describes a way to abstract out most commonly changing code from code that never changes and encapsulate this commonly changing code so that it can be used or interchanged with other similar code to provide behavior like functionality.
Saturday, May 05, 2007
WEEK TWO - Design Patterns
http://www.mindspring.com/%7Emgrand/pattern_synopses.htm#Snapshot
How to understand them, how to use them, and then how to implement them into their programs. Most developers do not understand enough about design patterns.
On teaching design patterns instead of giving more specialized patterns to the relatively few. The design patterns to illustrate fundamental object-oriented principles. It also shows how to use design patterns at a more conceptual level to assist in the analysis and design of an application's architecture.
http://www.mindspring.com/%7Emgrand/pattern_synopses.htm#Snapshot
How to understand them, how to use them, and then how to implement them into their programs. Most developers do not understand enough about design patterns.
On teaching design patterns instead of giving more specialized patterns to the relatively few. The design patterns to illustrate fundamental object-oriented principles. It also shows how to use design patterns at a more conceptual level to assist in the analysis and design of an application's architecture.
Friday, May 04, 2007
WEEK ONE - Patterns
This module describes what is patterns, how to write a pattern language and most of the sections are organised into areas of study where students have found useful.
Often you will find patterns in this section and you will be able to click on various parts of it to discover just how pattern will help think and learn clearly. Other sections in the module contain examples of patterns.
http://www.tech.port.ac.uk/staffweb/chandlej/PAFSD.html
Have fun with Learning about Patterns!
This module describes what is patterns, how to write a pattern language and most of the sections are organised into areas of study where students have found useful.
Often you will find patterns in this section and you will be able to click on various parts of it to discover just how pattern will help think and learn clearly. Other sections in the module contain examples of patterns.
http://www.tech.port.ac.uk/staffweb/chandlej/PAFSD.html
Have fun with Learning about Patterns!
Subscribe to:
Posts (Atom)