CSE681 - Software Modeling and Analysis

Revised: 18 July 2006
Home  Courses  SWTrack  Code  Handouts  StudCult  CoreTech  Books  Articles  Math  Research  CASE Projects  Project Topics  SWDev  WebDev  News  OtherLinks  SiteDesign  Graduates  AllPages  Office Hours  Seminars  Notices  Contents

CSE681-SWMAA  CSE686-IP  CSE687-OOD  CSE691-CP  CSE775-DO  CSE776-DP  CSE778-AWP  CSE784-SWS

Resources: Lectures Code Syllabus Projects
File Download ScreenShot Project Upload Instructions
  

Best Final Projects

Fall 2004:  Vijay Appadurai, Bassem El Karablieh
Fall 2003:  Rohit Jhangiani, Carmen Vaca Ruiz, Ghanashyam Namboodiripad, Priyaa Nachimuthu
Fall 2002:  Riddhiman Ghosh, Saket Satta

Course Scope:

This course is concerned with modeling software - especially large distributed systems - including architecture, design, and implementation. To do this we introduce: One major focus is the representation of software and software systems with means other than code, although we do develop code in this course.

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.

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.

Required Texts, Notes, and Projects:

  1. Pro C# 2005 and the .Net 2.0 Platform, Andrew Troelsen, Apress, 2005, ISBN 1-59059-419-3
  2. Class Notes, available on www.ecs.syr.edu/faculty/fawcett/handouts/cse681
  3. UML www.gotdotnet.com Core Technologies .Net Code Samples by Mike Woodring
  4. Five projects 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.

Prerequisites:

Students are expected to have a good working knowledge of the C Programming Language. No prior knowledge of C# is required.

Syllabus - Summer 2006:

Lecture
Topics
Read before class
Project
Lecture #1
Mon, May 22
Discuss Syllabus, Assignments, Examination, class text
What is analysis? software architecture,
Handouts
UML notes
Module notes
Text chap 1
hand out
Pr1 & Pr2
Lecture #2
Wed, May 24
Architectural Models, Modules, Universal Modeling Lanaguage (UML) UML notes
Module notes
Text chap 2
Pr1 - OCD
Holiday
Mon, May 29
Memorial Day Observed - No Classes  
 
Lecture #3
Wed, May 31
C# Programming Language
.Net Platfrom
Text chaps 3, 4, 5
Pr1 - OCD
Lecture #4
Mon, Jun 5
C#, prototype code
.Net Platfrom
Text chaps 3, 4, and 5
Pr1 - OCD
due
Lecture #5
Wed, Jun 7
WinForms programming
.Net Platfrom
Text chaps 19, 20, 21
Pr2 - code
Lecture #6
Mon, Jun 12
XML, XML code prototypes using C#,
.Net Platfrom, Win32 Platform
XML Notes
prototype code
Pr2 - code
Lecture #7
Wed, Jun 14
.Net Sockets
.Net Platfrom
Sockets Notes
prototype code
Pr2 - code
Lecture #8
Mon, Jun 19
Interprocess communication, and .Net Remoting Remoting Notes
Text Chap 18
prototype code
Pr2 - code
due
Lecture #9
Wed, Jun 21
.Net Remoting Examples Remoting Notes
Text Chap 18
prototype code
Pr3 - OCD
Lecture #10
Mon, Jun 26
Processes, Threads, Kernel Objects,
Multi-threaded systems, queues
Text chaps 13, 14
prototype code
Pr3 - OCD
Lecture #11
Wed, Jun 28
Review for Midterm
Threading examples, shared resources, synchronization
Text chaps 13, 14
prototype code
Pr3 - OCD
Lecture #12
Mon, Jul 3
Hand out, and discuss, Project #5
Asynchronous systems, Message-passing Systems
Asynchronous notes
prototype code
Pr3 - OCD
due
Lecture #13
Wed, Jul 5
Common Language Runtime (CLR)
appdomains
Text chap 13
prototype code
Pr4 - code
Lecture #14
Mon, Jul 10
Midterm Examination All Previous lecture notes
Pr4 - code
Lecture #15
Wed Jul 12
Queuing Theory, Back-of-the-Envelope Analysis, Pr#5 Topics, Handouts Queuing notes
Pr4 - code
Lecture #16
Mon Jul 17
Random Processes, Queuing topics, Web Services, Pr#5 Topics class notes
prototype code
Pr4 - code
due
Lecture #17
Wed Jul 19
Web services, Message-Passing systems, Pr#5 Topics class notes
Text chap 14
prototype code
Pr5
OCD & code
Lecture #18
Mon, Jul 24
Midterm Exam Results, Pr#5 Topics class notes
Text chap 25
prototype code
Pr5
OCD & code
Lecture #19
Wed, Jul 26
Topics in Managed Computing
Help with Pr5
class notes
chap 12
prototype code
Pr5
OCD & code
Lecture #20
Mon, Jul 31
Enterprise computing - web model,
Help with Pr5
Course Summary, what next?
class notes
prototype code
Pr5 due
Arch Report
Class meets twice per week for two hours.