Synopsis:
This lecture is an introduction to the on-line CSE681 course. We discuss topics to be covered in this course, its projects, examinations, and grading. We then introduce the notions of Software Architecture, the Operational Concept Document, packages, and discuss a standard notation to be used throughout the course. We will be quickly surveying a lot of topics which will be examined in more detail in following lectures.
Tools needed for this course:
-
Class text: C# in a Nutshell.
You will need a least C# 6.0 in a Nutshell, and should prefer later editions when they become available. -
This website:
www.syr.edu/faculty/fawcett
You may also use Google search with the phrase "Jim Fawcett"
Once you've reached the home page, select Courses > CSE681-OnLine. -
A laptop or desktop running Windows 7 or 10.
If you are a Mac or Linux user you will need to install a virtual machine, like Parallels or VirtualBox, and install Windows 10 in that. - Microsoft's Visual Studio Development Environment. You can download that, at no cost, here: Visual Studio.
Readings and Activities for the Week:
- Text: Chapter 1 - Read quickly
- Get familiar with website: Syllabus, lectures, notes, projects.
- Look quickly at your first project assignment - to develop an OCD for Project #2: Projects > Project #1
- Look quickly at your second project assignment - Implement C# Application: Projects > Project #2
- Operational Concept Document (OCD): Review Study Guides > OCD Help.
-
Download gliffy, a simple but effective drawing tool.
Open Google Chrome browser, go to the Chrome Web Store, and download gliffy (free).
You may also find the workflowy app useful for this course.
Glossary of Terms
-
Software Architecture:
An abstraction for a software part (System, Program, Package, Class) that focuses on uses, structure, issues, and risks. The representation of an architecture consists of diagrams and text. -
Operational Concept Document (OCD):
A text document that explores project uses and users, package structure, package activities, and critical issues. OCDs represent the core part of a Software Architecture.
Lecture Content:
-
Course mechanics:
- The Syllabus describes topics to be covered, reading material for you to digest as part of each lecture, and due dates for assigned projects.
- Projects & Exams, Grading, References, on-line help
- Getting started: Getting Started with CSE681 - SMA, Projects->Getting Started with C#
- Resources for all courses: Projects->Code, Projects->Presentations, Technical Links
- Other notes: SMA OCD Guide, SMA Architecture Notes, SMA Resources, Blog
- Prior Midterm (Fall 2016) - Instructor's solution
- Structure of handouts directories, Piazza signup, Using Piazza
-
Projects:
What projects are required? The specific projects you will work on this quarter will be discussed in the first synchronous session, Wk #1b. Today we will look at sample projects that are very similar to the projects you will be assigned.-
Sample Project #1
Operational Concept Document for Code Repository -
Sample Project #2
Local Code Repository -
Sample Project #3
Code prototypes for Communication Channel -
Sample Project #4
Remote Code Repository
-
Sample Project #1
-
Motivation - What is a program?
- What is a Program?, Software Size Matters!, Package Structure Matters!
-
Example: BlockingQueue Package
Packages are the building blocks for a complex architecture. -
Incremental Development
A rational way of building large, complex software systems.
-
OK, Now What?
-
Software Architecture:
Software Architecture and the Operational Concept Document (OCD), pptx
Project Center Use Cases, ppt
This presentation was developed for a Software Studio project. It gives you a good idea of the kind of analyses you need for an OCD. UML Notation, UML - uml-diagrams.org, UML - Embarcadero.com
The Universal Modeling Language is used to describe software with means other than code. You will use these diagramming techniques in your OCD.Sample Diagrams:
Package Diagram, Activity Diagram, Simple Class Diagram, Detailed Class Diagram, Class Relationships, Object Relationships, Structure Chart, State Diagram, Data Flow Diagram, Ad Hoc Diagrams -
Questions to Discuss in the Synchronous Session:
- When writing an Operational Concept Document (OCD), how do we get started?
- What are the most important topics to consider for an OCD?
-
Lecture Take-away:
The most important things we discussed today were:Motivation:
Projects:
These you should look at carefully. Everything else you can review quickly,
get the idea, and come back later when you need details.Next Lecture:
We will begin by discussing some fundamental ideas about software parts, but spend most of our time discussing OCDs and Software Architecture. Please look carefully at links for those things on the Week #1b page.