<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10401827</id><updated>2011-04-21T13:12:16.300-07:00</updated><title type='text'>Danny's CIS327 BLOG</title><subtitle type='html'>I never-ever thought I'D be BLOGGING...I'm a Wiki-man myself...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10401827.post-111093942625631463</id><published>2005-03-15T18:09:00.000-08:00</published><updated>2005-03-15T18:17:06.256-08:00</updated><title type='text'>.NET Intro links</title><content type='html'>&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9b3a2ca6-3647-4070-9f41-a333c6b9181d&amp;displaylang=en"&gt;.NET 1.1 SDK &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.icsharpcode.net/OpenSource/SD/"&gt;SharpDevelop (open source C# IDE)&lt;/a&gt;  I haven't used this yet, just downloaded it the other day.  We use VS.NET at work and I have an MSDN subscription through work too, so I haven't had much need to dig into the free offerings.  But I'm starting to.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=49"&gt;Other alternates&lt;/a&gt;  Again, I haven't had a chance to check them out in depth, but their starting to gain some momentum.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.go-mono.com"&gt;Mono (cross-platform .NET runtime)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp"&gt;.NET help&lt;/a&gt;  Check out the .NET Framework Class Library.  There are also some decent "Getting Started" examples and stuff.  It's just kind of hard to get used to finding stuff because there's so much of it.  I have the same problem when I try to learn a specific Java thing from the Sun web site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-111093942625631463?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/111093942625631463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=111093942625631463' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/111093942625631463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/111093942625631463'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/03/net-intro-links.html' title='.NET Intro links'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110913039778583254</id><published>2005-02-22T19:45:00.000-08:00</published><updated>2005-02-22T19:46:37.786-08:00</updated><title type='text'>Composites</title><content type='html'>...are strong aggregations.  In this type of relationship the component parts usually cannot 'stand on their own'.  One example might be a Chair associated with Legs.  Legs alone are pretty worthless (at least for chair legs).  This association is represented with a closed diamond in UML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110913039778583254?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110913039778583254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110913039778583254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110913039778583254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110913039778583254'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/composites.html' title='Composites'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110913008335124151</id><published>2005-02-22T19:37:00.000-08:00</published><updated>2005-02-22T19:41:23.353-08:00</updated><title type='text'>Aggregation</title><content type='html'>...is when a class consists of a bunch of other classes that represent components of the 'main' class.  These are basic associations between a class and its components in a whole-part relationship.  As mentioned under associations, these are represented in UML with an open diamond.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110913008335124151?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110913008335124151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110913008335124151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110913008335124151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110913008335124151'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/aggregation.html' title='Aggregation'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912986713477902</id><published>2005-02-22T19:35:00.000-08:00</published><updated>2005-02-22T19:37:47.136-08:00</updated><title type='text'>Inheritance &amp; Generalization</title><content type='html'>Generalization is the UML term for &lt;a href="http://dgcis327.blogspot.com/2005/02/inheritance.html"&gt; inheritance&lt;/a&gt; in which a parent or base class is a more general case of the child or subclass.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912986713477902?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912986713477902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912986713477902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912986713477902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912986713477902'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/inheritance-generalization.html' title='Inheritance &amp; Generalization'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912971875243908</id><published>2005-02-22T19:31:00.000-08:00</published><updated>2005-02-22T19:35:18.753-08:00</updated><title type='text'>Reflexive Association</title><content type='html'>...this is when a class is associated with itself in a recursive manner.  In UML this is represented by drawing the associative line back to the class it started in with both ends stipulating the role in the association.  A an example of this might be something where multiple roles are performed by the class in question, like a ClassRoomOccupant.  An instance of this class could be a Teacher or a Student, in which case there would be a single Teacher with multiple students.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912971875243908?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912971875243908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912971875243908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912971875243908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912971875243908'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/reflexive-association.html' title='Reflexive Association'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912948488857981</id><published>2005-02-22T19:27:00.000-08:00</published><updated>2005-02-22T19:31:24.890-08:00</updated><title type='text'>Qualified Association</title><content type='html'>A qualified association helps resolve the 'lookup problem' in a one-to-many association.  By specifying a unique ID the 'many' class, the 'one' class can essentially reduce the association to a 1 - 1 by looking up a single desired instance from the list of many associated with it.  In UML this is denoted with a rectangle attached to the class that does the lookup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912948488857981?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912948488857981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912948488857981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912948488857981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912948488857981'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/qualified-association.html' title='Qualified Association'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912922603234718</id><published>2005-02-22T19:24:00.000-08:00</published><updated>2005-02-22T19:27:06.033-08:00</updated><title type='text'>Multiplicity</title><content type='html'>...denotes the magnitude of an association, the number of one class vs. the other in the relationship.  Multiplicy expresses the limits of the relationship on both ends.  For example, with the Book and Page association, you have a many-to-one relationship.  Multiplicity values for my Java book would be 1 - 1447 (counting only the numbered pages).  For the Car and SteeringWheel association the multiplicity would be 1 - 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912922603234718?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912922603234718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912922603234718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912922603234718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912922603234718'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/multiplicity.html' title='Multiplicity'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912900527350762</id><published>2005-02-22T19:17:00.000-08:00</published><updated>2005-02-22T19:23:25.273-08:00</updated><title type='text'>Association</title><content type='html'>An association defines a relationship between two classes.  This relationship is usually in the for of aggregation, or a 'has-a' relationship.  For instance, a Book has Pages, so the relationship is an association (many-to-one) between Pages and Book.  In UML these aggregations are denoted with an open diamond at the (has-a) end of the association line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912900527350762?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912900527350762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912900527350762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912900527350762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912900527350762'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/association.html' title='Association'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912862036098410</id><published>2005-02-22T19:10:00.000-08:00</published><updated>2005-02-22T19:17:00.360-08:00</updated><title type='text'>Encapsulation</title><content type='html'>...is the act of keeping the attributes and behaviors (properties and methods) of objects together in cohesive units, which are classes.  Encapsulation provides objects with the ability to limit access to their internal data, &lt;em&gt;information hiding&lt;/em&gt;, through public interfaces that can enforce rules on how that data is manipulated.&lt;br /&gt;&lt;br /&gt;When used properly this technique helps prevent problems with objects entered unknown or invalid states in their data.  The whole concept of 'getters' and 'setters' is a standardized way of providing public access to data with a formal interface.  The implementation of these methods can ensure the data being entered is truly valid for the object.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912862036098410?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912862036098410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912862036098410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912862036098410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912862036098410'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/encapsulation.html' title='Encapsulation'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912810170304941</id><published>2005-02-22T19:02:00.000-08:00</published><updated>2005-02-22T19:10:26.870-08:00</updated><title type='text'>Polymorphism</title><content type='html'>The OOP concept of polymorphism allows you to treat many different classes exactly the same by dealing with them 'in the general' rather than 'in the specific'.  There are some rules to follow when using this in an implementation.  First, the types must be 'compatible'.  For instance, if I have a class called Object with a method toString(), and a subclass of object called MyObject.  I can create a function that outputs to the console the string representation of all instances of type Object (and derived types) simply by having it utilize the basic Object type.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public void outputToConsole(object data)&lt;br /&gt;{&lt;br /&gt;     System.out.println(data.toString());&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I can use any instance of type Object or MyObject with this routine because of polymorphism. It works well with interfaces too, which is a very good way to create extensible frameworks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912810170304941?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912810170304941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912810170304941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912810170304941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912810170304941'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/polymorphism.html' title='Polymorphism'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110912744408000790</id><published>2005-02-22T18:48:00.000-08:00</published><updated>2005-02-22T18:57:24.080-08:00</updated><title type='text'>Inheritance</title><content type='html'>... is where once class derives from another, thereby aquiring the interface and implementation of the derived class (based on scoping rules of course).  This allows for a significant amount of code reuse and for adapting existing, proven, tested code only as needed to create the needed functionality.  &lt;br /&gt;&lt;br /&gt;In a more sing-song way, inheritance represents and 'is-a' relationship between one class and another.  For example, a Dog 'is-a' Mammal and would inherit several features from that class such as live birth, suckling young, warm-blooded and so on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110912744408000790?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110912744408000790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110912744408000790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912744408000790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110912744408000790'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/inheritance.html' title='Inheritance'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110730726771589945</id><published>2005-02-01T17:17:00.000-08:00</published><updated>2005-02-01T17:29:09.826-08:00</updated><title type='text'>Design Patterns References</title><content type='html'>If you're interested further in design patterns, this is the book by the GOF:&lt;br /&gt;&lt;br /&gt;Design Patterns&lt;br /&gt;Elements of Reusable  Object-Oriented Code&lt;br /&gt;&lt;br /&gt;Erich Gamma&lt;br /&gt;Richard Helm&lt;br /&gt;Ralph Johnson&lt;br /&gt;John Vlissides&lt;br /&gt;(Gang of Four)&lt;br /&gt;&lt;br /&gt;My well-warn copy has ISBN: 0-201-63361-0&lt;br /&gt;&lt;br /&gt;A decent online companion to it, from a Java perspective, is at: &lt;a href="http://www.fluffycat.com/java/patterns.html"&gt;http://www.fluffycat.com/java/patterns.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are several others too.  Just Google "Design Patterns".  Also, check out the Wiki at http://c2.com which has a LOT of conversation around software architecture, design, and craftsmanship.  Plus Wiki's are cool.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110730726771589945?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110730726771589945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110730726771589945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110730726771589945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110730726771589945'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/02/design-patterns-references.html' title='Design Patterns References'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110671174509697457</id><published>2005-01-25T19:32:00.000-08:00</published><updated>2005-01-25T20:00:13.590-08:00</updated><title type='text'>Abstraction</title><content type='html'>This is the process of extracting the similar attributes (commonalities) of entities within a model. To use an time-honored example from an impromptu hierarchical species classification system, a &lt;strong&gt;Boxer&lt;/strong&gt; and a &lt;strong&gt;Bulldog&lt;/strong&gt; can be abstractly described as &lt;strong&gt;Canine&lt;/strong&gt;, which can be abstractly described as &lt;strong&gt;Carnivore&lt;/strong&gt;, which can be abstractly defined as &lt;strong&gt;Mammal, ...&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;All Canines have four legs, binocular vision, social behavior, (and so on) and Boxers and Bulldogs certainly fit within that more generic description. Then each of them specializes upon that generic definition to varying degrees, exhibiting properties that are not necessarily present in ALL Canines (like excessive drooling).&lt;br /&gt;&lt;br /&gt;And while &lt;strong&gt;Feline&lt;/strong&gt; certainly fits within the Carnivore description, they definitely are different from Canines (sheesh, the two can't even live together without mayhem!), so that defines another branch of &lt;u&gt;Abstraction&lt;/u&gt; below Carnivores that might contain &lt;strong&gt;Leopard, Margay, Ocelot, Tabby, &lt;/strong&gt;yaddah, yaddah.&lt;br /&gt;&lt;br /&gt;For what it's worth, I've found that for real systems, the more compact and 'differentiating' the layers of abstraction are, the easier the system is to conceptualize and maintain, meaning that more abstract classes can be easier to use in a variety of situations. For instance, it might not make sense to actually model Boxer and Bulldog, as the attributes specific to those types of Canines may not be relevent to the model, or they may be handled by 'enumerated properties' in the more abstract class. This can kind of lead away from PURE OOP depending on how it is handled, but huge object hierarchies where only one property is overridden in a subclass can be a bear to keep your head around. And while Polymorphism goes a long way, some design patterns (like Visitor) can help alleviate the need for both highly specialized classes AND specific logic codified into more generalized classes.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110671174509697457?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110671174509697457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110671174509697457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110671174509697457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110671174509697457'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/01/abstraction.html' title='Abstraction'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10401827.post-110670376842128216</id><published>2005-01-25T17:40:00.000-08:00</published><updated>2005-02-22T19:44:14.996-08:00</updated><title type='text'>Definitions Assignment</title><content type='html'>Our assignment is to create BLOG entries for each of the following terms:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://dgcis327.blogspot.com/2005/01/abstraction.html"&gt;Abstraction &lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://dgcis327.blogspot.com/2005/02/inheritance.html"&gt;Inhertiance &lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://dgcis327.blogspot.com/2005/02/polymorphism.html"&gt;Polymorphism &lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://dgcis327.blogspot.com/2005/02/encapsulation.html"&gt;Encapsulation &lt;/a&gt;&lt;br /&gt;5. &lt;a href="http://dgcis327.blogspot.com/2005/02/association.html"&gt;Association &lt;/a&gt;&lt;br /&gt;6. &lt;a href="http://dgcis327.blogspot.com/2005/02/multiplicity.html"&gt;Multiplicity &lt;/a&gt;&lt;br /&gt;7. &lt;a href="http://dgcis327.blogspot.com/2005/02/qualified-association.html"&gt;Qualified Association&lt;/a&gt;&lt;br /&gt;8. &lt;a href="http://dgcis327.blogspot.com/2005/02/reflexive-association.html"&gt;Reflexive Association&lt;/a&gt;&lt;br /&gt;9. &lt;a href="http://dgcis327.blogspot.com/2005/02/inheritance-generalization.html"&gt;Inheritance &amp;amp; Generalization&lt;/a&gt;&lt;br /&gt;10. &lt;a href="http://dgcis327.blogspot.com/2005/02/aggregation.html"&gt;Aggregations&lt;/a&gt;&lt;br /&gt;11. &lt;a href="http://dgcis327.blogspot.com/2005/02/composites.html"&gt;Composites&lt;/a&gt;&lt;br /&gt;12. Contexts&lt;br /&gt;13. Interfaces and Realizations&lt;br /&gt;14. Use Case Diagrams&lt;br /&gt;15. Class Diagrams&lt;br /&gt;16. Object Diagrams&lt;br /&gt;17. State Diagrams&lt;br /&gt;18. Sequence Diagrams&lt;br /&gt;19. Acitivity Diagrams&lt;br /&gt;20. Collaboration Diagrams&lt;br /&gt;21. Component Diagrams&lt;br /&gt;22. Deployment Diagrams&lt;br /&gt;&lt;br /&gt;I'll be creating an entry for each as time goes on...they'll be available by clicking on the individual list items above, as I get to defining them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10401827-110670376842128216?l=dgcis327.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dgcis327.blogspot.com/feeds/110670376842128216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10401827&amp;postID=110670376842128216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110670376842128216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10401827/posts/default/110670376842128216'/><link rel='alternate' type='text/html' href='http://dgcis327.blogspot.com/2005/01/definitions-assignment.html' title='Definitions Assignment'/><author><name>II</name><uri>http://www.blogger.com/profile/17034018257126359054</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
