|
 |
A Tutorial Of Software Design: Overview, Part 1
By Joe Purcell
Expert Author
Article Date: 2011-08-16
In software development there are a number of design and architecture patterns. Most are familiar with the Model-View-Controller (MVC) pattern, but is it the best? Here we will look at an overview of two core aspects of software design: design patterns and architecture patterns.
TerminologyIt should be first noted that there is some confusion in terminology of the difference between design patterns and architecture patterns. One article puts the distinction quite well,If the elements of a software diagram can be mapped one to one to a programming language syntactical construction, then is Design, if not is Architecture. Another article describes the difference saying, "Architecture is more about what we want the system to do and and Design is about how we want to achieve that." In other words, architecture has a higher level of abstraction.Design PatternsThere are three categories of design patterns: creational, structural, and behavioral. Design patterns not only speed up the process of development, but its evolution and expansion. Understanding design patterns serves two purposes. First, it provides a standard way to solve generic problems which speeds up the development process. Second, it gives developers a framework in which to relate problems to. One of the main barriers to software development is running into dead ends that have to be overcome through critical thinking and problem solving. Understanding design patterns gives developers a tool bag in which to grab solutions for those problems.Architecture PatternsArchitectural patterns, as mentioned, are more overarching and abstract. Using an architecture pattern divides roles of the overall software system and defines the relationships between them. Fitting code into an architecture pattern makes collaboration much easier and can potentially allow for code to be re-used across projects. The most commonly known architecture pattern is MVC, as mentioned. However, there are other viable architectures available.
Later we will look at these design and architecture patterns more closely. In the mean time, see below for further reading. The site fromDev lists several top books along with links to free PDF downloads of part or all of the books.Further Reading
About the Author:
Joe Purcell is a technology virtuoso, cyberspace frontiersman, and connoisseur of Linux, Mac, and Windows alike.
|
|
|