Synopsis:
This lecture focuses on the Projects you will implement, especially the first. That requires you to write an Operational Concept Document (OCD) for the first project.
Lecture Content:
-
Projects:
What projects are required?-
Project #1
Operational Concept Document for Code Analysis, OCD Study Guide -
Project #2
Local Code Analyzer -
Project #3
Code prototypes for Communication Channel -
Project #4
Remote Code Analyzer
-
Project #1
-
So, what is an OCD?
The goal of an OCD is to disclose your concept for a project you will be constructing.- That may be targeted to the stakeholders from whom you seek funding.
- It may be intended for the development team to give them a quick-start.
- Most important, it helps you to make critical decisions about the structure and features of your product, before you write any code, other than early prototypes.
- What are the uses for this project, who are the users, and what are its benefits?
- What are the projects parts, e.g., processes, packages, important data structures?
- Are there any critical issues we must deal with during construction?
-
Package Structure:
- 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.
-
O.K., Now What?
-
Software Architecture:
Software Architecture and the Operational Concept Document (OCD)
Operational Concept Document (OCD) Survival Guide Project Center Use Cases
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 UML Diagrams:
-
Package Diagram
A package in C# is a single file with comments containing a prologue, description of the package operations, and maintenance history. It continues with class definitions and ends with a test stub. A package diagram displays a project's packages and their calling relationships. -
Activity Diagram
An activity diagram describes the flow of program activities, places where activity waits for events, and may show possible concurrencies. -
Simple Class Diagram
A simple class diagram shows the classes and relationships in some package or set of packages, without showing any detail, other than the class name. -
Detailed Class Diagram
A detailed class diagram adds details about some or all of the methods and some or all of each class's member data. -
Class Relationships
This diagram illustrates the four class relationships: inheritance, composition, aggregation, and using. -
Object Relationships
This diagram shows how composite objects are logically structured, and the resulting layouts in memory. -
Structure Chart
A structure chart shows calling relationships between functions, with the caller shown above the callee. -
State Diagram
State diagrams are used to show states and their transitions. -
Data Flow Diagram
Data flow diagrams are really miss-named. They show information flow between processing segments in a program. They represent the same kinds of processing flow as activity diagrams, but they emphasize the information that flows between logical processing blocks. -
Ad Hoc Diagrams
Sometimes we need to show information for which there is no standard diagram. We do that with Ad-Hoc diagrams like this sample.
-
Package Diagram
-
Lecture Take-away:
The most important things we discussed today were:Projects: