<?xml version="1.0" standalone="no" ?>

<!--  FAI_OOAD_UML_DesPatts.xml   Custom Course Outline in XML format
 *
 * Copyright 2009 Affinity IT Training, LLC. All Rights Reserved.
 *
 -->

<!DOCTYPE FAI:CourseOutline SYSTEM "FAI_CourseOutline.dtd">

<?xml-stylesheet type="text/xsl" href="FAI_CourseOutline.xsl" ?>

<FAI:CourseOutline FAI:link="FAI_OOAD_UML_DesPatts.xml"
     xmlns:FAI="http://www.fisher-assoc.com/DTDs/FAI_CourseOutline.dtd" >

  <FAI:CourseTitle FAI:level="Introduction"  FAI:code="OOAD_UML_DessPatts">
	OOAD, UML, &amp; Design Patterns
  </FAI:CourseTitle>

 
  <FAI:CourseCategory>J2SE</FAI:CourseCategory>
  <FAI:CourseCategory>Microsoft</FAI:CourseCategory>
  <FAI:CourseCategory>.NET</FAI:CourseCategory>
  <FAI:CourseCategory>C#</FAI:CourseCategory>
  <FAI:CourseCategory>Development</FAI:CourseCategory>
  <FAI:CourseCategory>Design</FAI:CourseCategory>

  <FAI:SummaryInfo>

    <FAI:CourseDesc  FAI:version="Jan08" >
	Presents the classic Gang of Four(GoF), Architectural, and other selected  Design Patterns.
	Numerous example implementations in Java and C# are provided.
	Context is established with early discussions of Object Oriented Design and Unified Modeling Language
	and special emphasis is placed on techniques for Testing Design Pattern implementations.
    </FAI:CourseDesc>

    <FAI:CourseDuration>
	3-5 Days (with/without labs)
	<BR/>
	Labs recommended.
    </FAI:CourseDuration>

    <FAI:CourseAudience>
	Experienced Java developers seeking to enhance their design capabilities 
	with standard and proven solutions to common problems.
    </FAI:CourseAudience>

    <FAI:CourseObjectives>

      <FAI:Objective FAI:desc="Be familiar with Object Oriented Design Principles"/>
      <FAI:Objective FAI:desc="Be familiar with UML Class and Sequence Diagrams"/>
      <FAI:Objective FAI:desc="Understand the definition and purpose of Design Patterns"/>
      <FAI:Objective FAI:desc="Be familar with the GoF Design Patterns, their implementation, and application."/>
      <FAI:Objective FAI:desc="Be familiar with selected Architectural Design Patterns and their application"/>
      <FAI:Objective FAI:desc="Have reviewed source code implementations of selected patterns"/>
      <FAI:Objective FAI:desc="Be familiar with strategies for testing Design Pattern implementations"/>

    </FAI:CourseObjectives>

    <FAI:CourseSetupList>
      <FAI:Setup FAI:desc="If Labs included:" />
      <FAI:Setup FAI:desc="Java 2 SDK (J2SE)" FAI:link="http://www.java.sun.com/downloads"/>
      <FAI:Setup FAI:desc="Optional Text Editor or Java IDE" />
      <FAI:Setup FAI:desc="Apache Tomcat Application Server (or equivalent)" 
                 FAI:link="http://tomcat.apache.org/download-55.cgi"/>

    </FAI:CourseSetupList>

    <FAI:CourseTextList>
      <FAI:Text FAI:title="Course Workbook" />
      <FAI:Text FAI:title="Design Patterns in Java, Metsker and Wake"
                FAI:link="http://www.amazon.com/Design-Patterns-Java-TM-Software/dp/0321333020/ref=pd_bbs_sr_1/103-3393052-5374255?ie=UTF8&amp;s=books&amp;qid=1193949379&amp;sr=8-1"/>
      <FAI:Text FAI:title="Patterns of Enterprise Architecture, Martin Fowler"
                FAI:link="http://www.amazon.com/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1196350656&amp;sr=1-1"/>
    </FAI:CourseTextList>

    <FAI:CoursePrerequisiteList></FAI:CoursePrerequisiteList>

  </FAI:SummaryInfo>

  <FAI:TopicList>

  <FAI:SuperTopic FAI:title="Introduction">
    <FAI:Topic FAI:title="Welcome"/>
    <FAI:Topic FAI:title="Prerequisites"/>
    <FAI:Topic FAI:title="Overview"/>
    <FAI:Topic FAI:title="What is a Design Pattern ?"/>
    <FAI:Topic FAI:title="Taxonomy of Design Patterns"/>
    <FAI:Topic FAI:title="Object Oriented Analysis"/>
    <FAI:SuperTopic FAI:title="Object Oriented Design Principles">
	<FAI:Topic FAI:title="Classes"/>
	<FAI:Topic FAI:title="Abstraction"/>
	<FAI:Topic FAI:title="Attributes"/>
	<FAI:Topic FAI:title="Methods"/>
	<FAI:Topic FAI:title="Encapsulation"/>
	<FAI:Topic FAI:title="Inheritance"/>
	<FAI:Topic FAI:title="Interfaces"/>
	<FAI:Topic FAI:title="Composition"/>
	<FAI:Topic FAI:title="Polymorphism"/>
	<FAI:Topic FAI:title="Delegation"/>
	<FAI:Topic FAI:title="Cohesion"/>
	<FAI:Topic FAI:title="Coupling"/>
    </FAI:SuperTopic>
    <FAI:Topic FAI:title="Common Design Mistakes"/>
    <FAI:Topic FAI:title="Refactoring"/>
    <FAI:Topic FAI:title="Lab Exercises"/>
    <FAI:Topic FAI:title="Quiz"/>
  </FAI:SuperTopic>

  <FAI:SuperTopic FAI:title="UML">
	<FAI:Topic FAI:title="What is UML?"/>
	<FAI:Topic FAI:title="UML Diagram Types"/>
	<FAI:SuperTopic FAI:title="Class Diagrams">
		<FAI:Topic FAI:title="Purpose"/>
		<FAI:Topic FAI:title="Sample High-Level Diagram"/>
		<FAI:Topic FAI:title="Interface"/>
		<FAI:Topic FAI:title="Attributes"/>
		<FAI:Topic FAI:title="Data Types"/>
		<FAI:Topic FAI:title="Operations"/>
		<FAI:Topic FAI:title="Inheritance Notation"/>
		<FAI:Topic FAI:title="Association Notation"/>
		<FAI:Topic FAI:title="Aggregation Notation"/>
	</FAI:SuperTopic>
  </FAI:SuperTopic>
  <FAI:SuperTopic FAI:title="Sequence Diagrams">
	<FAI:Topic FAI:title="Purpose"/>
	<FAI:Topic FAI:title="Typical Sequence Diagram"/>
	<FAI:Topic FAI:title="Object Lifeline"/>
	<FAI:Topic FAI:title="Activation"/>
	<FAI:Topic FAI:title="Messages"/>
  </FAI:SuperTopic>

  <FAI:SuperTopic FAI:title="Gang of Four (GoF) Design Patterns">
    <FAI:SuperTopic FAI:title="Basic Patterns">
      <FAI:Topic FAI:title="Delegation"/>
      <FAI:Topic FAI:title="Functional Design"/>
      <FAI:Topic FAI:title="Interface"/>
      <FAI:Topic FAI:title="Proxy"/>
      <FAI:Topic FAI:title="Facade"/>
      <FAI:Topic FAI:title="Composite"/>
    </FAI:SuperTopic>
    <FAI:SuperTopic FAI:title="Creational Patterns">
      <FAI:Topic FAI:title="Abstract Factory"/>
      <FAI:Topic FAI:title="Factory"/>
      <FAI:Topic FAI:title="Builder"/>
      <FAI:Topic FAI:title="Lazy Initialization"/>
      <FAI:Topic FAI:title="Object Pool"/>
      <FAI:Topic FAI:title="Prototype"/>
      <FAI:Topic FAI:title="Singleton"/>
    </FAI:SuperTopic>
    <FAI:SuperTopic FAI:title="Structural Patterns">
      <FAI:Topic FAI:title="Adaptor"/>
      <FAI:Topic FAI:title="Bridge"/>
      <FAI:Topic FAI:title="Decorator"/>
      <FAI:Topic FAI:title="Extensibility"/>
      <FAI:Topic FAI:title="Flyweight"/>
      <FAI:Topic FAI:title="Proxy"/>
      <FAI:Topic FAI:title="Pipes and Filters"/>
      <FAI:Topic FAI:title="Private Class Data"/>
    </FAI:SuperTopic>
    <FAI:SuperTopic FAI:title="Behavioral Patterns">
      <FAI:Topic FAI:title="Chain of Responsibility"/>
      <FAI:Topic FAI:title="Command"/>
      <FAI:Topic FAI:title="Interpretter"/>
      <FAI:Topic FAI:title="Iterator"/>
      <FAI:Topic FAI:title="Mediator"/>
      <FAI:Topic FAI:title="Memento"/>
      <FAI:Topic FAI:title="Observer"/>
      <FAI:Topic FAI:title="State"/>
      <FAI:Topic FAI:title="Strategy"/>
      <FAI:Topic FAI:title="Specification"/>      
      <FAI:Topic FAI:title="Template Method"/>
      <FAI:Topic FAI:title="Visitor"/>
    </FAI:SuperTopic>
    <FAI:Topic FAI:title="Lab Exercises"/>
    <FAI:Topic FAI:title="Quiz"/>
  </FAI:SuperTopic>

  <FAI:SuperTopic FAI:title="Architectural Patterns">
    <FAI:Topic FAI:title="Model-View-Controller (MVC)"/>
    <FAI:Topic FAI:title="Model"/>
    <FAI:Topic FAI:title="View"/>
    <FAI:Topic FAI:title="Controller"/>
    <FAI:Topic FAI:title="Model-View-Controller II (MVC2)"/>
    <FAI:Topic FAI:title="Page-Controller"/>
    <FAI:Topic FAI:title="Front-Controller"/>
    <FAI:Topic FAI:title="Composite View"/>
    <FAI:Topic FAI:title="Data Access Object"/>
    <FAI:Topic FAI:title="Intercepting Filter"/>
    <FAI:Topic FAI:title="Service Locator"/>
    <FAI:Topic FAI:title="Session Facade"/>
    <FAI:Topic FAI:title="Transfer Object"/>
    <FAI:Topic FAI:title="Value List Handler"/>
    <FAI:Topic FAI:title="View Helper"/>
    <FAI:Topic FAI:title="Lab Exercises"/>
    <FAI:Topic FAI:title="Quiz"/>
  </FAI:SuperTopic>

  </FAI:TopicList>

  <FAI:Appendix FAI:title="Concurrency Patterns">
    <FAI:Topic FAI:title=""/>
    <FAI:Topic FAI:title="Lab Exercises"/>
    <FAI:Topic FAI:title="Quiz"/>
  </FAI:Appendix>

</FAI:CourseOutline>
