Path: utzoo!utgpu!water!watmath!clyde!bellcore!faline!thumper!ulysses!andante!princeton!udel!rochester!cornell!uw-beaver!mit-eddie!ll-xn!ames!oliveb!bunker!rha
From: rha@bunker.UUCP
Newsgroups: comp.software-eng
Subject: Re: Structured Analysis ques.
Message-ID: <3650@bunker.UUCP>
Date: 3 Jun 88 13:54:49 GMT
References: <4150003@hpcilzb.HP.COM>
Reply-To: rha@bunker.UUCP (Robert H. Averack)
Organization: Bunker Ramo, an Olivetti Company, Shelton, Ct
Lines: 69
Posted: Fri Jun  3 09:54:49 1988

In article <4150003@hpcilzb.HP.COM> chris@hpcilzb.HP.COM (Chris Toomey) writes:

>  I'm doing structured analysis for the first time and am a little confused
>about a few of its concepts.

     Hi Chris - don't worry, the concepts ARE very confusing in the beginning.
Now, let's see if we can sort this out.

>  I'm using an automated tool (HP Teamwork) to develop a set of leveled
>data flow diagrams and the accompanying data dictionary; I want to use
>these in place of a formal written requirements spec.  I'm confused over
>the identification of the net inputs/outputs of the system as specified
>in the top-level DFD (the context diagram).  I'll use a simple example
>to illustrate my point.

     Let's get this clear up front.  The System Dictionary (DFD's, Data
Dictionary) alone IS NOT SUFFICIENT.  This document must always accompany
a formal, written Requirements Specification.  The purpose of the System
Dictionary is to better understand the current and proposed system from
the perspective of data only.

>  Let's say I'm developing a very simple spelling program (similar to UNIX's
>spell) which will repeatedly prompt the user for words, which are to be input
>one at a time following the prompt. The program will check the spelling of the
>words and place them accordingly into the files "correct" and "incorrect." This
>will continue until the user enters ctrl-d at the prompt.

>  Now, for the context diagram:

>                       -------                   ---------
> ----------   words   /        \ --------------> correct
> | user   | -------->|  spell   |                ---------
> ----------           \        / --------------> incorrect
>                       --------                  ---------

>  As this DFD illustrates, the net input to the program is the words the user 
>enters, and the net output is the two files correct and incorrect. Is this the
>right assessment of the system I've described? If so, then it seems to me that
>the system cannot be fully specified by this approach because it fails to 
>consider the module(s) which are responsible for prompting the user and reading
>words. In other words, how can DFDs and data dictionary entries be used in 
>place of a written requirements spec. if they don't encompass the entire 
>system being developed? Is my context diagram incorrect? Should the net input
>be "keystrokes"?

     Your Context Diagram is absolutely correct, my friend.  The fact that the
system prompts the user for a word does not constitute a flow of data in this
context.  Furthermore, your conclusion that the DFD's and Data Dictionary
cannot be used *in place of* a formal, written Requirements Specification is
also correct, as I stated above.

     The DFD is a logical view only...one should never be concerned with the
manner of implementation (modules, keystrokes, etc.).

>  Also, if the system was extended to display a menu to the user, would the
>menu be considered net output to the user or merely "control information" (and
>thus not shown on the DFD)?

     In this regard, the menu is no different than a simple prompt.

     I hope that I was able to help you.  Good luck on your project - E-mail
me if you have any further questions.


-- 
                       {yale!,decvax!,philabs!}bunker!rha                    
                                  Bob Averack                           
                        Bunker Ramo, an Olivetti Company                      
               Two Enterprise Drive - Shelton, Connecticut 06484