29
Transitional Analysis Guidelines for transforming DFD models to Structure Chart models Ernest Cachia Department of Computer Science

Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Transitional Analysis

Guidelines for transforming DFD models toStructure Chart models

Ernest CachiaDepartment of Computer Science

Page 2: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

The Reasons

To move from an abstract system representation to a more physical one.

To offer some guidelines to this procedure. To reduce ambiguity which may arise from

subjective interpretations. To move from data flow concepts to program

structure concepts.

Page 3: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

General Steps Involved (1)

1. The type of data flow is established What is the nature of the data flowing between

processes?

2. Determine flow boundaries (switch points) Input↔Output boundaries Hub↔Action boundaries

3. Map the abstract DFD on to a particular program structure

Transformational structure Transactional structure

Page 4: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

General Steps Involved (2)

4. Define a valid control structure Also known as “first-level” factoring Depends on whether transformational or transactional

models are used. “Call-and-return” for transformational “Call-and-act” for transactional

5. Refine (tune) the resulting structure Also known as “second-level factoring” Map IO flow bounded parts of DFD

Page 5: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

General Steps Involved (3)

6. Supplement and tune the final architectural structure

Apply basic module independence concepts (i.e. Explode or implode modules according to coupling/cohesion requirements) to obtain an easier implementation.

Please also visit the slides on the web-site “www.sei.cmu.edu/ata/ATAM/index.htm” for a more comprehensive and interesting approach to architectural analysis known as “Architectural Trade-off Analysis – ATA”.

Page 6: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Transformational Analysis(aka Transformational Mapping)

SafeHomesystem*

* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman.

Controlpanel

Sensors

Controlpanel

display

Alarm

Telephoneline

Dialtones

User cmdsand data

Sensorstatus

Displayinformation

Alarmtype

Context level (level 0) Example

Errormsg

Sys parametersand data

Page 7: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 1 Example

Interactwithuser

configuresystem

Enable/disablesystem

Processpassword

Displaymsgs &status

Monitorsensors

Configuration data

Alarmtype

Dial tonesSensor status

Password

Startstop

Configurerequest

Configurationdata

Configurationdata

a/d msg

Valid id msg

Sensor informationConfigurationdata

Display information

User cmds anddata

Error msg

Sys parametersand data

Page 8: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 2 Example (Monitor sensors)

Assessagainstsetup

Formatfor

display

Gen.alarmsignal

Readsensors

Dialphone

Alarmtype

Sensor status

Sensor idand setting

alarmdata

Sensor id,type andlocation

Sensorinformation

Telephonenumber

Dial tones

Configurationdata

Page 9: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 3 Example (Assess against setup)

Acquireresponse

info.

Selectphone

number

Sensor idand setting

Configurationdata

Estab.alarmconds.

Telephonenumber

Alarm cond.Code,

sensor id, andtiming info.

List ofnumbers

alarmdata

Sensor id,type andlocation

Page 10: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 3 Example (Format for display)

Formatdisplay

GeneratedisplaySensor id,

type andlocation

Formatted id,type andlocation

Sensorinformation

Page 11: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 3 Example (Dial phone)

Setupconn

to phonenet

Gen.pulses to

lineTelephonenumber

Tone-readytelephonenumber

Dial tones

Page 12: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Putting Level 3 Together

Afferent branch (input)Central transform (processing)Efferent branch (output)

This DFD exhibits definite transform flow character.

Page 13: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

First-Level Factoring

Monitorsensors

Sensor inputcontroller

Alarm condscontroller

Alarm outputcontroller

Page 14: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Second-Level Factoring (1)

Formatdisplay

GeneratedisplaySensor id,

type andlocation

Formatted id,type andlocation

Sensorinformation

Setupconn

to phonenet

Gen.pulses to

lineTelephonenumber

Tone-readytelephonenumber

Dial tones

Gen.alarmsignal

Alarmtype

alarmdata

These are all the processes in the efferent branch:

Page 15: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Second-Level Factoring (2)

Monitorsensors

Sensor inputcontroller

Alarm condscontroller

Alarm outputcontroller

Generatealarm signal

Formatdisplay

Setup conn.to phone net

Generatedisplay

Generatepulses to line

Now, do the same for the other branches (i.e. Afferent and Central)...

For the efferent branch:

Page 16: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Second-Level Factoring (3)

Monitorsensors

Sensor inputcontroller

Alarm condscontroller

Alarm outputcontroller

Establishalarm conds

Select phonenumber

Selectphone

number

Configurationdata

Estab.alarmconds.

Telephonenumber

Alarm cond.Code,

sensor id, andtiming info.

List ofnumbers

Alarmdata

Sensor id,type andlocation

For central transform:

Page 17: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Second-Level Factoring (4)

Finally, for the afferent branch:

Monitorsensors

Sensor inputcontroller

Alarm condscontroller

Alarm outputcontroller

Acquireresponse info.

Readsensors

Readsensors

Sensor idand setting

Sensor status

Acquireresponse

info.Alarm cond.

Code,sensor id, and

timing info.

Configurationdata

Page 18: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Design Refinement Some degree of refinement can sometimes be carried out on the

initial “rough-cut” of the system's structure.

Monitorsensors

Sensor inputcontroller

Establishalarm conds.

Alarm outputcontroller

Generatealarm signal

Producedisplay

Setup conn.to phone net

Generatepulses to line

Readsensors

Implode (single flow)

Implode & assimilate (inherent functionality)

Implode (triviality and single flow)

Page 19: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

What next...?

1. Check out your coupling and cohesionThis was discussed earlier

1. Check out your “fan-in” and “fan-out”Fan-in should be highFan-out should be low(see next slide)

1. Go through a predefined final check-listThis will be organisation dependent(see example two slide on)

Page 20: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Fanning

High fan-in example:(good)

Calculateaverage

Determinefee

Extractgender

Get unitregistration

Accessstudentrecord

High fan-out example:(watch out – usually bad)

Retrievestudent ID

Determinename

Retrieveunit list

Calculategrades

Issueresult

Calculatederived

Page 21: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Final Check-list ExampleTypical check-list content(Example taken and adapted form Alan Dennis: “Systems Analysis & Design”)

Library modules have been created whenever possible (reuse and portability).

The diagram has a high fan-in structure(reuse).

Control modules have no more than 7 subordinates (efficiency).

Each module performs only one distinct function(cohesive).

Modules sparingly share information(de-coupled).

Data couples passed are actually used by recipient(stamp coupling).

Control couples are passed from “child” to “parent” module?(control coupling)

Each module has a reasonable amount of code in it(a discernible system function).

Page 22: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Transactional Analysis(aka Transactional Mapping)

First step of this analysis is exactly the same as for transformational – i.e. refine the DFD.

The initial “SafeHome*” example will be used.

The level one DFD will be decomposed to level two as necessary.

A “transactional centre” will then be determined.

* Taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman.

Page 23: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 1 (reproduced)

Interactwithuser

configuresystem

Enable/disablesystem

Processpassword

Displaymsgs &status

Monitorsensors

Configuration data

Alarmtype

Dial tonesSensor status

Password

Startstop

Configurerequest

Configurationdata

Configurationdata

a/d msg

Valid id msg

Sensor informationConfigurationdata

Display information

User cmds anddata

Error msg

Sys parametersand data

Page 24: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 2 Example (Interact with user)

Readusercmd

Invokecmd

processing

Password

Commandtype

User commands

startstop

Configurerequest

Page 25: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 2 Example (Process password)

Readpassword

Comparepasswordwith file

Password

Four digits Invalidpassword

Produceerrormsg

Validid msg

Error msg

Configurationdata

Page 26: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Level 2 Example (Configure system)

Readsystem

data Raw confdata

Buildconfig

file

Configurationdata

Configurerequest

Sys parametersand data

Page 27: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Putting Level 2 Together

Transaction centre (dispatching)

This DFD exhibits transaction flow character.

Page 28: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Transaction Structure Mapping

userinteraction

Read usercmd

Invoke cmdprocessing

Enable/disable sys.

Configurationcontroller

Passwordcontroller

Page 29: Guidelines for transforming DFD models to …staff.um.edu.mt/ecac1/files/transformation.pdf* Example taken from “Software Engineering – A Practitioner's Approach” by R. S. Pressman

Refining The StructureFully refining the DFD could yield the following structure:

userinteraction

Read usercmd

Invoke cmdprocessing

Enable/disable sys.

Configurationcontroller

Passwordcontroller

Readpassword

Comparepasswordwith file

Produceerror msg

Build configfile

Read systemdata

Display msgs& status