SYSTEMS ANALYSIS
The following is taken from Structured Analysis and Systems Specification by Tom DeMarco
"Analysis is the study of a problem, prior to taking some action...The most important product of systems analysis...is the specification document."
"Successful completion of the analysis phase involves all of the following:
- 1. selecting an optimal target
- 2. producing detailed documentation of that target in such a manner that subsequent implementation can be evaluated to see whether the target has bee attained
- 3. producing accurate predictions of the important parameters associated with the target, including costs, benefits, schedules and performance characteristics
- 4. obtaining concurrence on each of the items above from each of the affected parties
"
Data Flow Diagrams
Data Flow Diagrams are made of only four basic elements:
- data flows, represented by named vectors
- processes, represented by circles or "bubbles"
- files, represetned by straight lines
- data sources and sinks, represented by boxes
A data flow is a pipeline through which packets of information of known composition flow.
- Data flow names are hyphenated, using title capitalization
- No two data flows have the same name
- Names are chosen to represent not only the data which moves over the pipeline, but also what we know about the data
- data flows may converge and diverge
- data flows moving into and out of simple files do not require names (the file name will suffice to describe the pipeline)
- A process is a transformation of incoming data flow(s) into outgoing data flow(s).
- A file is a temporary repository of data. Only net flow is shown to and from a file.
- A source or sink is a person or organization, lying outside the context of a system, that is a net originator or receiver of systems data.
Guidelines for Drawing DFDs
1. Identify all net input and output data flows. Draw them in around the outside of your diagram.
Select a context that is large enough to include everything relevant to the development effort, but small enough to include little or nothing that is irrelevant.
2. Work your way from inputs to outputs, backwards from outputs to inputs, or from the middle out.
3. Label all interface data flows carefully.
- be sure to give a name to each and every data flow.
- make sure the name is honest. It has to apply to the whole data flow, not just its major component
- avoid wishy-washy names like "data" or "information"
- be careful not to group disparate items into one data flow when they have no business being treated as a whole
4. Label the bubbles in terms of their inputs and outputs
- Make sure your names are honest.
- Try for names that consist of a single strong action verb and a singular object
- Beware of wishy-washy words. The worst offenders are "process" and "handle". If the best names you can come up with requires the use of such a word, you have got an unnameable process.
- Repartition to avoid unnameable processes. Break them into two or three parts, or group them with others in order to come up with something you can name easily.
5. Ignore initialization and termination
6. Omit details of trivial error paths (for now).
7. Do not show flow of control or control information.
Ask yourself what information flows over the pipeline
8. Be prepared to start over.
Systems Analysis and DFDs are iterative in nature.