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:
- Text: C#: Chapters 2, 3, .Net Framework: Chapters 5, 6
- Look carefully at your first Project assignment, to Develop a concept for Project #2: Projects > Project #1
- Look carefully at your second Project assignment - Implement C# Application: Projects > Project #2
- Operational Concept Document (OCD): Review Study Guides > OCD Help.
- Software Architecture: Software Architecture, pptx
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:
- The Syllabus describes topics to be covered, reading material for you to digest as part of each lecture, and due dates for assigned projects.
-
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: -
Sample Project #2
Local Code Repository implementation When starting an implementation you think about: -
Sample Project #3
Code prototypes for Remote Code Repository -
Sample Project #4
Remote Multi-threaded Code Repository Implementation
-
Sample Project #1
-
Primary Focus Today - Software Architecture:
-
Problem with Dependencies,
ppt,
Components are Building Blocks
Motivation for a lot of what we do in this course. -
Software Architecture and the Operational Concept Document (OCD),
pptx
-
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. - Example diagrams:
Package Diagram, Activity Diagram, Simple Class Diagram, Detailed Class Diagram
Sequence Diagram, Structure Chart, State Diagram, Data Flow Diagram, Ad Hoc Diagram -
Project Center Use Cases,
pptx
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. - Getting Started!, Study Guide - OCD, Operational Concept Document (OCD) Survival Guide
- Example OCDs prepared by students in previous classes:
-
Writing with Style, Third Edition,
John Trimble, Prentice-Hall, 2010, ISBN 978-0205028801
This book has nothing to do with software, but is the best book I've seen on writing well. It's written with great style, brief, humorous, and filled with good ideas and advice.
-
Problem with Dependencies,
ppt,
Components are Building Blocks
-
Looking Ahead - Getting to know C#:
-
C# versus C++
- Class text C# 6.0 in a Nutshell, Chapters 1-3.
-
C# versus C++
-
C# Code Examples and Tutorials:
-
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.
-
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.
- Both Workflowy and gliffy are Google tools, available without charge, from Google play store. It works best to install them from the chrome browser.