﻿<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="CSE681">
 
  <btitle>CSE681</btitle>
  <theme src="CoursesTheme.css" />
  
  <visible>  
  <title>CSE681 - Software Modeling and Analysis</title>
  <revised>31 August 2010</revised>
  
  <hnav/>
  <cnav/>

  <html><img src="students/cse681strip1.jpg" width="100%"/></html>
  <!-- <caption>Class Text</caption> -->
   
  <html><a name="contents"/></html>
  <section title="Resources:">
  <lhilight>
    <html>
      <a href="cse681.xml#Syllabus">Syllabus</a>
    </html>&#32;
    <ifile title="Lectures">../CSE681/Lectures/cse681codeL1.xml</ifile>&#32;
    <ifile title="SG - SMA">../CSE681/Lectures/StudyGuideSMA.xml</ifile>&#32;  
    <ifile title="SG - OCD">../CSE681/Lectures/StudyGuideOCD.xml</ifile>&#32;
    <ifile title="SG - Notes">../CSE681/Lectures/StudyGuideNotes.xml</ifile>&#32;
    <ifile title="Project Upload Instructions">uploads.doc</ifile>
  </lhilight>
  </section>
  <section title="Best Final Projects">
    <ifile title="Spring 2010:">../cse681/BestFinalProjects</ifile>&#32;&#32;John Walthour, ArunKumar Manikantan<br/>
    <ulist>
      <litem>
        John's Final Project has, by far, the highest grade score per page of any final project I've ever
        had the pleasure to read - elegant, concise, very well targeted discussions, and technically mature point of view.
      </litem>
      <litem>
        Arunkumar's Final Project was also outstanding in a very different way.  His coverage was broad, thoughtful, and very
        complete.  I agreed with almost all of his commentary and admired the completeness of his discussions.
      </litem>
    </ulist>
  </section>
  <section title="Course Scope:">
  This course is concerned with modeling software - especially large distributed systems 
  - including architecture, design, and implementation.  To do this we introduce:
  <ulist>
    <litem>
      UML diagrams: activity, dataflow, class, event-trace, structure charts, and state.
    </litem>
    <litem>
      Analysis based on load models and some queuing theory.
    </litem>
    <litem>
      Prototype code, using C# and the .Net Framework Class Libraries.
    </litem>
  </ulist>
  One major focus is the representation of software and software systems with means other 
  than code, although we do develop code in this course.
  <p/>
  Five projects are required that are progressively more challenging.  
  The first and second projects are concerned with describing the architecture needed to 
  realize a set of requirements and its implementation, respectively.
  The third and fourth projects repeat this for a more complex, distributed, system.
  The final project requires the creation of an architecture for a large, complex, 
  distributed system.
  <p/>
  The use of C# and the .Net Framework Class Libraries are required.  This is covered by
  the class text and in help sessions conducted by the instructor and teaching 
  assistants.
  A lot of work outside of class is expected.  Students that complete this
  course with good grades will understand how to lay the foundations for the successful
  development of large, distributed systems.
  </section>
 
  <section title="Required Texts, Notes, and Projects:"/>
  <olist>
    <litem>
      Pro C# 2010 and the .Net 4 Platform, Andrew Troelsen, Apress, 2010,
      ISBN 978-1-59059-884-9
    </litem>
<!--
    <litem>
      Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002,
      ISBN 0-7356-1376-1<br/>
      We will use parts I and III only.
    </litem>
-->
    <litem>
      Class Notes, available on 
      <ilink title="www.ecs.syr.edu/faculty/fawcett/handouts/cse681">www.ecs.syr.edu/faculty/fawcett/handouts/cse681</ilink>
    </litem>
    <litem>
      Tutorial links:<br/>
      <link title="UML">edn.embarcadero.com/article/31863</link>&#32;
      <link title="dotnet quickstarts - dotnetheaven.com">asp.dotnetheaven.com</link>&#32;
      <link title="dotnet quickstarts - learnasp.com">www.learnasp.com/quickstart/</link>&#32;
      <link title="dotnetjunkies">www.dotnetjunkies.com/</link>&#32;
      <file title="Core Technologies">CoreTechnologies.xml</file>&#32;
      <link title=".Net Code Samples by Mike Woodring">www.bearcanyon.com/dotnet/</link>&#32;
    </litem>
    <litem>
      Five <ifile title="projects">../CSE681/projects</ifile> are required: three require creation of an Operational Concept Document (OCD)
      to record a software architecture.  Three require code to implement the systems of the first two OCDs and to provide prototypes for the
      final project.
    </litem>
  </olist>
 
  <section title="Prerequisites:"/>
  <block>
    Students are expected to have a good working knowledge of the C Programming Language.
    No prior knowledge of C# is required.
  </block>
  
  <section title="Syllabus - Fall 2010:"/>
  <html><a name="Syllabus" id="Syllabus"/></html>
  <syllabus>
    <syllHeading>
      <sd>Lecture</sd>
      <hd>Topics</hd>
      <hd>Read before class</hd>
      <hd>Project</hd>
    </syllHeading>
    <lecture><!-- #1 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#1">../CSE681/Lectures/cse681codeL1.xml</ifile>
        <br/>Mon Aug 30
      </ld>
      <ld>
         Discuss Syllabus, Assignments, Examination, class text<br/>
         What is analysis? software architecture,<br/>
        <ilink title="Handouts">www.ecs.syr.edu/faculty/fawcett/handouts/cse681</ilink>
      </ld>
      <ld>UML notes<br/>Package notes<br/>Text chap 1</ld>
      <cd>hand out<br/><ifile title="Pr1">../CSE681/Projects/Pr1F10.doc</ifile> &amp; <ifile title="Pr2">../CSE681/Projects/Pr2F10.doc</ifile></cd>
    </lecture>
    <lecture><!-- #2 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#2">../CSE681/Lectures/cse681codeL2.xml</ifile>
        <br/>Wed Sep 01
      </ld>
      <ld>
         Architectural Models, Packages, UML
      </ld>
      <ld>UML notes<br/>Package notes<br/>Text chap 2</ld>
      <cd><ifile title="Pr1">../CSE681/Projects/Pr1F10.doc</ifile> - OCD</cd>
    </lecture>
    <emlecture>
      <ld>Holiday</ld>
      <ld>No classes</ld>
      <ld>Labor Day</ld>
      <ld></ld>
    </emlecture>
    <lecture><!-- #3 ===================================== -->
      <ld>
        <ifile title="Lecture&#32;#3">../CSE681/Lectures/cse681codeL3.xml</ifile>
        <br/>Wed Sep 08
      </ld>
      <ld>
         Architectural Models<br/>Help with Projects #1 and #2
      </ld>
      <ld>UML notes<br/>Package notes<br/>Text chap 2</ld>
      <cd><ifile title="Pr1">../CSE681/Projects/Pr1F10.doc</ifile> - OCD</cd>
    </lecture>    
    <lecture><!-- #4 ===================================== -->
      <ld>
        <ifile title="Lecture&#32;#4">../CSE681/Lectures/cse681codeL4.xml</ifile>
        <br/>Mon Sep 13
      </ld>
      <ld>
         C# Programming Language<br/>.Net Platfrom
      </ld>
      <ld>Text chaps 2-11</ld>
      <cd><ifile title="Pr1">../CSE681/Projects/Pr1F10.doc</ifile> - OCD</cd>
    </lecture>    
    <lecture><!-- #5 ===================================== -->
      <ld>
        <ifile title="Lecture&#32;#5">../CSE681/Lectures/cse681codeL5.xml</ifile>
        <br/>Wed Sep 15
      </ld>
      <ld>
         C# Programming Language<br/>.Net Platfrom
      </ld>
      <ld>Text chaps 2-11</ld>
      <ed><ifile title="Pr1">../CSE681/Projects/Pr1F10.doc</ifile><br/>OCD due</ed>
    </lecture>    
    <lecture><!-- #6 ====================================== -->
      <ld>
        <ifile title="Lecture&#32;#6">../CSE681/Lectures/cse681codeL6.xml</ifile>
        <br/>Mon Sep 20
      </ld>
      <ld>
         C#, prototype code<br/>.Net Platfrom
      </ld>
      <ld>Text chaps 3, 4, and 5</ld>
      <cd><ifile title="Pr2">../CSE681/Projects/Pr2F10.doc</ifile> - code</cd>
    </lecture>
    <lecture><!-- #7 ====================================== -->
      <ld>
        <ifile title="Lecture&#32;#7">../CSE681/Lectures/cse681codeL7.xml</ifile>
        <br/>Wed Sep 22
      </ld>
      <ld>
         WinForms programming<br/>.Net Platfrom
      </ld>
      <ld>Text chaps 19, 20, Appendix A</ld>
      <cd><ifile title="Pr2">../CSE681/Projects/Pr2F10.doc</ifile> - code</cd>
    </lecture>
    <lecture><!-- #8 ====================================== -->
      <ld>
        <ifile title="Lecture&#32;#8">../CSE681/Lectures/cse681codeL8.xml</ifile>
        <br/>Mon Sep 27
      </ld>
      <ld>
         WinForms programming<br/>.Net Platfrom
      </ld>
      <ld>Text chaps 19, 20, Appendix A</ld>
      <cd><ifile title="Pr2">../CSE681/Projects/Pr2F10.doc</ifile> - code</cd>
    </lecture>
    <lecture><!-- #9 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#9">../CSE681/Lectures/cse681codeL9.xml</ifile>
      <br/>Wed Sep 29</ld>
      <ld>XML, XML code prototypes using C#, LINQ, .Net Platform, Win32 Platform</ld>
      <ld>Text Chaps 13, 24, XML Notes<br/>prototype code</ld>
      <cd><ifile title="Pr2">../CSE681/Projects/Pr2F10.doc</ifile> - code</cd>
    </lecture>
    <lecture><!-- #10 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#10">../CSE681/Lectures/cse681codeL10.xml</ifile>
      <br/>Mon Oct 04</ld>
      <ld>Windows Presentation Foundation (WPF), <ifile title="Handouts">../cse681/presentations/WindowsPresentationFoundation.ppt</ifile></ld>
      <ld>Text Chaps 27, 28, Class notes<br/>prototype code</ld>
      <ed><ifile title="Pr2">../CSE681/Projects/Pr2F10.doc</ifile><br/>code due</ed>
    </lecture>
    <lecture><!-- #11 ===================================== -->
      <ld>
        <ifile title="Lecture&#32;#11">../CSE681/Lectures/cse681codeL11.xml</ifile>
      <br/>Wed Oct 06</ld>
      <ld>Windows Presentation Foundation (WPF), <ifile title="Handouts">../cse681/presentations/WindowsPresentationFoundation.ppt</ifile></ld>
      <ld>Text Chaps 27, 28, Class notes<br/>prototype code</ld>
      <cd><ifile title="Pr3">../CSE681/Projects/Pr3F10.doc</ifile> - OCD</cd>
    </lecture>
    <lecture><!-- #12 ===================================== -->
      <ld>
        <ifile title="Lecture&#32;#12">../CSE681/Lectures/cse681codeL12.xml</ifile>
      <br/>Mon Oct 11</ld>
      <ld>Three-Tier, MVC and MVVM Structures</ld>
      <ld>Text Chaps 27, 28, Class notes<br/>prototype code</ld>
      <cd><ifile title="Pr3">../CSE681/Projects/Pr3F10.doc</ifile> - OCD</cd>
    </lecture>
    <lecture><!-- #13 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#13">../CSE681/Lectures/cse681codeL13.xml</ifile>
      <br/>Wed Oct 13</ld>
      <ld>Assemblies, Reflection, and Application Domains</ld>
      <ld>Text Chaps 15, 16, 17, Class notes</ld>
      <cd><ifile title="Pr3">../CSE681/Projects/Pr3F10.doc</ifile> - OCD</cd>
    </lecture>
    <lecture><!-- #14 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#14">../CSE681/Lectures/cse681codeL14.xml</ifile>
      <br/>Mon Oct 18</ld>
      <ld>Project #4, Test Harness Prototype</ld>
      <ld>Text Chaps 15, 16, 17, Class notes</ld>
      <cd><ifile title="Pr3">../CSE681/Projects/Pr3F10.doc</ifile> - OCD</cd>
    </lecture>
    <lecture><!-- #15 ====================================== -->
      <ld>
        <ifile title="Lecture&#32;#15">../CSE681/Lectures/cse681codeL15.xml</ifile>
      <br/>Wed Oct 20</ld>
      <ld>.Net Sockets<br/>Web Services</ld>
      <ld>Sockets &amp; Service Notes<br/>prototype code</ld>
      <cd><ifile title="Pr3">../CSE681/Projects/Pr3F10.doc</ifile><br/> - OCD</cd>
    </lecture>
    <lecture><!-- #16 ====================================== -->
      <ld>
        <ifile title="Lecture&#32;#16">../CSE681/Lectures/cse681codeL16.xml</ifile>
      <br/>Mon Oct 25</ld>
      <ld>Windows Communication Foundation (WCF)</ld>
      <ld>Text Chap 25<br/>class notes<br/>prototype code</ld>
      <ed><ifile title="Pr3">../CSE681/Projects/Pr3F10.doc</ifile><br/>OCD due</ed>
    </lecture>
    <lecture><!-- #17 ====================================== -->
      <ld>
        <ifile title="Lecture&#32;#17">../CSE681/Lectures/cse681codeL17.xml</ifile>
      <br/>Wed Oct 27</ld>
      <ld>Windows Communication Foundation (WCF)</ld>
      <ld>Text Chap 25<br/>class notes<br/>prototype code</ld>
      <cd><ifile title="Pr4">../CSE681/Projects/Pr4F10.doc</ifile> - code</cd>
    </lecture>
    <lecture><!-- #18 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#18">../CSE681/Lectures/cse681codeL18.xml</ifile>
      <br/>Mon Nov 1</ld>
      <ld>
         Processes, Threads, Kernel Objects,<br/>
         Multi-threaded systems, queues
      </ld>
      <ld>Text chap 19<br/>prototype code</ld>
      <cd><ifile title="Pr4">../CSE681/Projects/Pr4F10.doc</ifile> - code</cd>
    </lecture>
     <lecture><!-- #19 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#19">../CSE681/Lectures/cse681codeL19.xml</ifile>
      <br/>Wed Nov 03</ld>
      <ld>Review for Midterm
      </ld>
      <ld>All previous notes<br/>code demos</ld>
      <cd><ifile title="Pr4">../CSE681/Projects/Pr4F10.doc</ifile> - code</cd>
    </lecture>
    <emlecture><!-- #20 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#20">../CSE681/Lectures/cse681codeL20.xml</ifile>
      <br/>Mon Nov 08</ld>
      <ld>Midterm Examination</ld>
      <ld>You may bring in one page of notes, with entries on both sides, if you wish.</ld>
      <ed>&#32;</ed>
    </emlecture>
    <lecture><!-- #21 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#21">../CSE681/Lectures/cse681codeL21.xml</ifile>
      <br/>Wed Nov 10</ld>
      <ld>
         Processes, Threads, Kernel Objects,<br/>
         Multi-threaded systems, queues
      </ld>
      <ld>Text chap 19<br/>prototype code</ld>
      <cd><ifile title="Pr4">../CSE681/Projects/Pr4F10.doc</ifile> - code</cd>
    </lecture>
    <lecture><!-- #22 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#22">../CSE681/Lectures/cse681codeL22.xml</ifile>
      <br/>Mon Nov 15</ld>
      <ld>Midterm Exam Results</ld>
      <ld>Class notes</ld>
      <ed><ifile title="Pr4">../CSE681/Projects/Pr4f10.doc</ifile><br/>code due</ed>
    </lecture>
    <lecture><!-- #23 ===================================== -->
      <ld>
        <ifile title="Lecture&#32;#23">../CSE681/Lectures/cse681codeL23.xml</ifile>
      <br/>Wed Nov 17</ld>
      <ld>Asynchronous Systems</ld>
      <ld>Asynchronous notes<br/>Text Chap 11<br/>prototype code</ld>
      <cd><ifile title="Pr5">../CSE681/Projects/Pr5F10.doc</ifile><br/>arch report</cd>
    </lecture>
   <lecture><!-- #24 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#24">../CSE681/Lectures/cse681codeL24.xml</ifile>
      <br/>Mon Nov 22</ld>
      <ld>Final Project Topics</ld>
      <ld>class notes<br/>prototype code</ld>
      <cd><ifile title="Pr5">../CSE681/Projects/Pr5F10.doc</ifile><br/>arch report</cd>
    </lecture>
    <lecture><!-- #25 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#25">../CSE681/Lectures/cse681codeL25.xml</ifile>
      <br/>Tues Nov 23</ld>
      <ld>Queuing Theory, Back-of-the-Envelope Analysis, Pr#5 Topics, <ifile title="Handouts">../cse681/presentations/queueAnalysis.doc</ifile></ld>
      <ld>Queuing notes</ld>
      <cd><ifile title="Pr5">../CSE681/Projects/Pr5F10.doc</ifile><br/>arch report</cd>
    </lecture>
    <emlecture><!-- Holiday ============================== -->
      <ld>Holiday<br/>Wed Nov 24</ld>
      <ld>No classes</ld>
      <ld>Thanksgiving</ld>
      <ld></ld>
    </emlecture>
    <lecture><!-- #26 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#26">../CSE681/Lectures/cse681codeL26.xml</ifile>
      <br/>Mon Nov 29</ld>
      <ld>Enterprise Computing</ld>
      <ld>Class notes</ld>
      <cd><ifile title="Pr5">../CSE681/Projects/Pr5F10.doc</ifile><br/>arch report</cd>
    </lecture>
    <lecture><!-- #27 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#27">../CSE681/Lectures/cse681codeL27.xml</ifile>
      <br/>Wed Dec 01</ld>
      <ld>Topics in Software Architecture</ld>
      <ld>class notes</ld>
      <cd><ifile title="Pr5">../CSE681/Projects/Pr5F10.doc</ifile><br/>arch report</cd>
    </lecture>
    <lecture><!-- #28 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#28">../CSE681/Lectures/cse681codeL28.xml</ifile>
      <br/>Mon Dec 06</ld>
      <ld>Enterprise computing - web model,<br/>Help with <ifile title="Pr5">../CSE681/Projects/Pr5F10.doc</ifile><br/>Course Summary, what next?</ld>
      <ld>class notes<br/>prototype code</ld>
      <cd><ifile title="Pr5">../CSE681/Projects/Pr5F10.doc</ifile><br/>arch report</cd>
    </lecture>
    <lecture><!-- #29 ==================================== -->
      <ld>
        <ifile title="Lecture&#32;#29">../CSE681/Lectures/cse681codeL29.xml</ifile>
      <br/>Wed Dec 08</ld>
      <ld>Help with Project #5</ld>
      <ld>class notes<br/>prototype code</ld>
      <ed><ifile title="Pr5">../CSE681/Projects/Pr5f10.doc</ifile><br/>Arch Report due</ed>
    </lecture>
<!--
    <lecture>     #30 ==================================== 
      <ld>
        <ifile title="Lecture&#32;#30">../CSE681/Lectures/cse681codeL30.xml</ifile>
      <br/>Wed Dec 08</ld>
      <ld>Help with Project #5</ld>
      <ld>class notes</ld>
      <ed><ifile title="Pr5">../CSE681/Projects/Pr5S10.doc</ifile><br/>Arch Report due</ed>
    </lecture>
-->
  </syllabus>
  Section M1 meets twice per week for 1.5 hours each.  Section M2 meets once per week for 3 hours.
<!--
  <images>
    <imageItem src="students/cse681strip2.jpg" size="246"/>
    <imageItem src="students/cse681strip5.jpg" size="400"/>
  </images>
-->
  </visible>
</courses>
