Creating a Data Flow Model
12.6.2 Creating a Data Flow Model
The data flow diagram enables the software engineer to develop models of the infor- mation domain and functional domain at the same time. As the DFD is refined into greater levels of detail, the analyst performs an implicit functional decomposition of the system, thereby accomplishing the fourth operational analysis principle for func- tion. At the same time, the DFD refinement results in a corresponding refinement of data as it moves through the processes that embody the application.
Are there any ? Are there any
useful
diagram: (1) the level 0 data flow diagram should depict the software/system as a
guidelines for
single bubble; (2) primary input and output should be carefully noted; (3) refinement
creating DFDs?
should begin by isolating candidate processes, data objects, and stores to be repre- sented at the next level; (4) all arrows and bubbles should be labeled with meaning- ful names; (5) information flow continuity must be maintained from level to level, and (6) one bubble at a time should be refined. There is a natural tendency to overcom- plicate the data flow diagram. This occurs when the analyst attempts to show too much detail too early or represents procedural aspects of the software in lieu of infor- mation flow.
Again considering the SafeHome product, a level 0 DFD for the system is shown in Figure 12.20. The primary external entities (boxes) produce information for use by the system and consume information generated by the system. The labeled arrows represent data objects or data object type hierarchies. For example, user commands and data encompasses all configuration commands, all activation/deactivation
PA R T T H R E E C O N V E N T I O N A L M E T H O D S F O R S O F T WA R E E N G I N E E R I N G
Control Context-level
F I G U R E 12.20
panel DFD for
Control
User commands
Display
display SafeHome
panel
and data
number tones
commands, all miscellaneous interactions, and all data that are entered to qualify or expand a command.
The level 0 DFD is now expanded into a level 1 model. But how do we proceed?
A simple, yet effective approach is to perform a "grammatical parse" on the processing narrative that describes the context level bubble. That is, we isolate all nouns (and noun phrases) and verbs (and verb phrases) in the SafeHome narrative originally pre- sented in Chapter 11. To illustrate, we again reproduce the processing narrative under- lining the first occurrence of all nouns and italicizing the first occurrence of all verbs. 3
SafeHome software enables the homeowner to configure the security system when it is installed, monitors all sensors connected to the security system, and interacts with the home- owner through a keypad and function keys contained in the SafeHome control panel shown
The grammatical parse in Figure 11.2. is not foolproof, but it will provide you with
During installation, the SafeHome control panel is used to "program" and configure the
an excellent jump start system. Each sensor is assigned a number and type, a master password is programmed for if you’re struggling to
arming and disarming the system, and telephone number(s) are input for dialing when a
define data objects
sensor event occurs.
and transforms.
When a sensor event is recognized, the software invokes an audible alarm attached to the system. After a delay time that is specified by the homeowner during system configura- tion activities, the software dials a telephone number of a monitoring service, provides infor- mation about the location, reporting the nature of the event that has been detected. The telephone number will be redialed every 20 seconds until telephone connection is obtained.
All interaction with SafeHome is managed by a user-interaction subsystem that reads input provided through the keypad and function keys, displays prompting messages on the LCD display, displays system status information on the LCD display. Keyboard interaction takes the following form . . .
Referring to the "grammatical parse," a pattern begins to emerge. All verbs are SafeHome processes; that is, they may ultimately be represented as bubbles in a sub-
3 It should be noted that nouns and verbs that are synonyms or have no direct bearing on the mod- eling process are omitted.
Control panel
User commands
Configure
and data
system
Configuration data
Configuration information
user
Configuration Password
system A/d msg.
Valid ID msg.
messages
panel
and status
Display display
Sensor information
Alarm
Alarm type
number tones
line
F I G U R E 12.21 Level 1 DFD for SafeHome
sequent DFD. All nouns are either external entities (boxes), data or control objects (arrows), or data stores (double lines). Note further that nouns and verbs can be attached to one another (e.g., sensor is assigned number and type). Therefore, by performing a grammatical parse on the processing narrative for a bubble at any DFD
Be certain that the level, we can generate much useful information about how to proceed with the refine- processing narrative
you intend to parse is ment to the next level. Using this information, a level 1 DFD is shown in Figure 12.21. written at the same
The context level process shown in Figure 12.20 has been expanded into six processes level of abstraction
derived from an examination of the grammatical parse. Similarly, the information throughout.
flow between processes at level 1 has been derived from the parse.
It should be noted that information flow continuity is maintained between levels
0 and 1. Elaboration of the content of inputs and output at DFD levels 0 and 1 is post- poned until Section 12.7. The processes represented at DFD level 1 can be further refined into lower levels. For example, the process monitor sensors can be refined into a level 2 DFD as shown in Figure 12.22. Note once again that information flow continuity has been main- tained between levels.
PA R T T H R E E C O N V E N T I O N A L M E T H O D S F O R S O F T WA R E E N G I N E E R I N G
F I G U R E 12.22
Sensor
Level 2 DFD
information
that refines the
sensors process
display
Alarm Configuration information
Generate
type
Sensor ID
location Configuration
against setup
Telephone number
Sensor ID,
Sensor status
Telephone number tones
The refinement of DFDs continues until each bubble performs a simple function. That is, until the process represented by the bubble performs a function that would
be easily implemented as a program component. In Chapter 13, we discuss a con- cept, called cohesion, that can be used to assess the simplicity of a given function. For now, we strive to refine DFDs until each bubble is "single-minded."
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more