Design & Implementation Notes
CSE681 - Software Modeling & Analysis

Project Helpers

Project #1 - F14Project #2 - F14
Blog entry - thoughts about role of OCD

Project #1: OCD for Type Analysis

Project Center Use Cases: - an example of how to think about users and uses

Gliffy - a nice, simple diagramming tool.
Now available in Chrome Desktop App Launcher - open in Chrome!

Diagram Examples:
Package Diagram, Activity Diagram, Simple Class Diagram, Detailed Class Diagram, Sequence Diagram, Structure Chart, State Diagram, Ad Hoc Diagram

Critical Issues:

  • Your class notes about our discussions: context of Project #2, size of working set, complexity, program output
  • John Walthour's OCD Example

Architecuture Concept Survival Guide - checklist for your document

OCD Study Guide

Project #2 - Type Analysis
Finding type definitions and relationships between found types.

Comments on Project #2:

  • Parser is your friend! Parser static structure
  • You only need to change the ActionsAndRules file in parser
  • Things you may consider leaving out (will lose some requirements points): namespace effects, braceless scope part of complexity, xml output
  • Build each package in isolation then add to Project2.sln
Project2HelpF14 - Helper code:
Shows you how to find files, open text files, read file contents, parse source code, and illustrates syntax for type relationships.

Command Line:

Types and Collections: Files:
  • Class Text, chap 15
  • File Class - MSDN
  • Project2HelpF14 - see above
  • FileReadWrite - reads and writes file bytes and strings
  • DemoFiles - finds files using System.IO.Directory, interrogates Assembly info. This demo does some simple type parsing. Strongly recomment you use parser, not string handling this demo uses.
Strings: XML Submissions: - uploading, compile.bat, and run.bat files

Project2HelpF14 - has sample compile.bat and run.bat files. Run those from Visual Studio developer's command prompt.

Project #3 - F13Project #4 - F13
Project #3: OCD for Dependency Analyzer

Same helpers as for Project #1

Motivation:

  1. Using dependencies to structure testing
  2. Using dependencies to create release builds
  3. Using Type relationships to learn code
  4. Using Type relationships to judge code quality
Critical Issues discussed in class:
  1. Specifying code to analyze - should clients need to know server directory structures?
  2. Managing file contention
  3. File Transfer with chunking
  4. Complete and Up-to-date Type Tables
  5. Performance
  6. Display - Mapping data into information
Project #4: Dependency Analyzer

Project4Help - not available yet
Demo of how to do navigation operations, driven by messages
BlockingQueueCS-Monitor
Blocking queue that uses a Monitor for signaling an enqueue operation
FileService-SelfHost
WCF File Upload service that sends file chunks
WCF_MessagePassingComm
WCF message-passing communication
WPF_DispatcherDemo
WPF GUI that uses FolderBrowserDialog and child thread
Concurrent File Access
Example of how a server could deal with concurrent file access requests