Week 2a - Software Architecture

Projects and OCDs

Synopsis:

Last time we discussed the course syllabus, exams and projects, introduced the notion of the Operational Concept Document and packages. Today we focus on software architecture and the Universal Modeling Language (UML).

Readings and Activities for the Week:

Glossary of Terms

Lecture Content:

  1. The Syllabus describes topics to be covered, reading material for you to digest as part of each lecture, and due dates for assigned projects.
  2. Thinking about Projects:

    In these video lectures we will discuss Sample Projects, similar to the ones you will be implementing. In the corresponding synchronous lectures the instructor will provide some limited guidance for each of your projects.
    • Sample Project #1
      Operational Concept Document for Code Repository
      An OCD is concerned with three things:
      • Uses and users
      • Structure
      • Critical issues
    • Sample Project #2
      Local Code Repository implementation
      When starting an implementation you think about:
      • Tasks
      • Organizing Principles
      • Communication
      • Sharing
      You will find Workflowy and gliffy excellent tools1 to help you think about a program's architecture and design.
    • Sample Project #3
      Code prototypes for Remote Code Repository
    • Sample Project #4
      Remote Multi-threaded Code Repository Implementation
    All code will be developed using C# and the .Net Framework Class Library with latest version of Visual Studio.

    How will your submissions be evaluated? OCD grade sheet, Code grade sheet, Grading policy

  3. Primary Focus Today - Software Architecture:

  4. Looking Ahead - Getting to know C#:

  5. C# Code Examples and Tutorials:

  6. Preparation for Synchronous Discussion:

    • Describe the main tasks your Project #2 application must execute.
    • Draw a package diagram for your concept of Project #2 and discuss the responsibilities of each package.
  7. Lecture Take-away:

    The most important things covered today were:
    • What an architecture document covers - that's what we prepare for Project #4.
    • Thinking critically about the architecture and high-level design of a software system. For that we used workflowy and gliffy to develop our ideas for the sample projects #1 and #2.
    • The UML diagrams - Package and Activity diagrams are the most useful for OCDs.
    Next week, in Wk #3a, we will begin discussing C#, using the resources listed above, so please review this weekend.

  1. Both Workflowy and gliffy are Google tools, available without charge, from Google play store. It works best to install them from the chrome browser.