• Keine Ergebnisse gefunden

– For system analysis and requirements definition – Means of Representation

N/A
N/A
Protected

Academic year: 2022

Aktie "– For system analysis and requirements definition – Means of Representation"

Copied!
32
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

4. Non-Formal Development Methods

4.1 Hierarchy-Plus-Input-Process-Output (HIPO)

- Introduced by IBM in 1974 (as a "panacea"); however, mainly for design and specification.

- Two components

- VTOC (Visual Table of Components): Decomposition of the program into sub-functions

- IPO (Input-Process-Output) diagrams: Linking the output data of the VTOC functions with the input data

- Overview IPO Diagram - Detailed IPO Diagram

(2)

4.1.1 Example: Payroll Accounting VTOC (Visual Table of Contents)

Payroll

Accounting 1.0

Add

Gross Wage 2.0

Calculate Net Wage 3.0

Add Working Hours

2.1

Determine Wage

2.2

Determine Gross Wage 2.3

Calculate Deductions 3.1

Transfer 3.2

Validate Validate Determine Validate

Hierachy Diagram

(3)

IPO Diagram

Author: R. Ratlos System: Accounting Datum: 07.12.1997 Diagram ID: 1.0 Program: Payroll Page: 1 of 1

Input Process Output

Employee Wage Movement Data

Employee Master Data

Data for Deductions

Eymployee Master Data

Gross Wage

Net Wage

Error Message 2.0 Calculate Gross Wage

3.0 Calculate Net Wage

after 1.0

from 1.0

(4)

4.1.2 Comments on HIPO

– Easy to learn

– Good presentation of hierarchical relations

– DT, structure diagrams provide details on the functions.

– No tools available, expensive to maintain – Networking of the functions is problematic.

– “Large interfaces” between functions

– Exception handling, structured programming, modularization, data abstraction, information hiding, etc. are not supported.

(5)

4.2 Structured Analysis (SA)

– Introduced in the 70s by Tom deMarco

– For system analysis and requirements definition – Means of Representation

– Data Flow Diagrams (DFD): Data flows and functions – Data Dictionary: Definition / Description of the data – Mini Specification: Duties of individual functions

– "Data Preservation Principle"

– Each transformation generates outputs for which it receives the relevant input.

– Correspondence of I / O in different levels.

– Memory representation for multiple transformations: On the top

(6)

Example for Data Dictionary (Based on BNF - Backus-Naur Form) Legend: {... } := Iteration; + :=Link (Sequence)

(... | ...) := Optional Address file = {Address}

Address = Title + Name + Street + House Number + Postal Code + Place Name = (Title +) First Name + Last Name

Title = (Mr | Mrs | Company)

Mini Specification: User-oriented description of the transformations, by means of decision tables, structure diagrams, pseudo-code, etc.: Contains no program- technical details. A maximum of one DIN A4 page (if not, transformations should

(7)

4.2.1 Rules for Creating Data Flow Diagrams

– Each transformation generates outputs for which it receives the relevant input (Data Preservation Principle).

– If a diagram does not fit on one page (or it is confusing), transformations will be represented top-down as separate programs.

– The I/O of the parent diagrams must comply with the I/O of the child programs.

– The data storage required by multiple transformations is described at the topmost level.

– Only the data flow relations are described. Control flow (e.g., temporal- dependence of the functions) is disregarded.

– Data flows, transformations have meaningful names.

(8)

Data Flow Diagram

: Data flow

<Info. unit>

<Action> :Transformations/Functions

<Repository> : Data Storage

<Interface> : End Nodes

(9)

4.2.2 Example

Address Management (Storage, Evaluation, and Printing)

Record Check+

Evaluation

Print Address File

Evaluation File

Address User

Address List Address

Selection Criteria

Evaluated Addresses

Correct Address Addre

sses to be corrected

Address

(10)

4.2.3 Comments on SA

– Advantages

– Requirement validation by user involvement – Easily updatable

– Simple approach – Formal analysis

– Disadvantages

– Not an analysis mean (more of a representation mean), so not a definitive method – Can not be formalized, so no extensive computer support

– Design / detailed specification and real-time apllications are not supported.

(11)

4.3 Structured Analysis and Design Technique (SADT)

– Developed since the early 70s developed; commerical marketing – More than a representation mean; methods character.

– Mainly for system analysis, requirement definition, design.

– Four components: Actigrams, datagrams, node index (overview diagram), policy catalog.

(12)

GENERAL:

Datum (Object) Control

Input Output

Mechanism

DATAGRAM:

Input

Data Datum (Object) Control data

Output Data

"Activity Data" / Auxiliary Values Storage Elements / Data Transfer Unit

Input Activities

Datum (Object) Control Activities

Output Activities ACTIGRAM:

(13)

Actigram

(Surrounded by data)

No mirror image Datagram

(Surrounded by activities)

A ...

A∅...

A1...

A2...

A21...

A22...

A3...

A31...

A311...

...

Node Index (als overview of diagrams)

(14)

4.3.1 Example: Payroll Accounting S1: Tax Law / Tax Regulation

S2: premium policy Calculate

Wage E1: Employee Master Data

E2: Employee Movement Data E3: Tax File / Social Tax Data

Gross Wage: A1 Net Wage: A2

ACTIGRAM M1: Bank Transfer

Refinement yields:

S3: Operation Agreement ( )

( )

Spec. Software

S1

A2 S2

Calculate Gross Wage

Calculate Net Wage

E1 A1

E2

E3

(15)

S1: Determine wage group

S2: Check if tax law changes Lohn A1: Transfer tax

E1: Calculate

A2: Transfer net wage

M1: Calculate DATAGRAM

Refine

Determine tax Look up tax table Calculate

S1 S2

M1 M1

Gross Wage

Net Wage Income Tax E1

A2 A1

(16)

4.3.2 Comments on SADT

– The perspective (use, development) can be indexed.

– Supports top-down (hierarchical) approach

– Between three and six components for each level – Dual representation of the data and the functions – Control flow can not be represented explicitly.

– Detailed specification / implementation is not supported.

(17)

4.4 Composite Design/Structured Design (CD/SD)

– Originally: Initially developed by Larry L. Constantine (SD) since the mid-60s to mid 70s. Further developed by G.J. Myers (till the late '70s), then by W.P.

Stevens (till the early 80s).

– Method character and function orientation are gradually more pronounced.

– Components

– Decomposition scheme in five steps

– Quantitative evaluation scheme of modularization ("small/weak" data

coupling between modules, "high functional binding/rigidity" of the module) – Decomposition of the system into independent ("loosely coupled") sections

Step 1: Creation of the Data Flow Diagram with SA, SADT, etc.

Step 2: Transfer of main input/output data streams in a linear chain of functions Step 3: Transform Analysis: Determination of the points of congruent abstraction/concretization (Thesis of Optimal Decomposition)

(18)

Step 4: Identification of the modules of the optimal decomposition Step 5: If necessary, repeating steps 1 to 4 for partial functions

– Processing a file with n messages (strings) as follows

– Count the normal (e.g., length <25 characters) and long (otherwise) words of each message

– Calculate the fee for each message according to a predetermined schema – Make a list of results

– Assumptions

– End of file mark: "EOF"

– End of Message mark: "***"

4.4.1 Example

(19)

Get characters

Form normal/

long words

Determine the amount of

normal/long words

Calculate charges

List ...

User Message

File

Word Repository

Words

Charge Repositoy

Words

Step 1: Data Flow Diagram (Simplified)

Sentences

Charges

Characters

Character Stream Characters

Amounts

Amount Repository

Amounts

Amounts 1.

2.

3.

4.

Amounts

(20)

Step 2: Determination of Data Streams

Get characters

Form

normal/long words

Determine the amount of

normal/long words

Calculate charges

List ...

Messages/Sentences

Amounts + Charges Amounts Words

Characters Step 3:

Transformation Analysis

Boundary between output / process

Boundary between input / process

(21)

Step 4: Optimal Division

Message Processing

Count Words Get Words

List Relevant Amounts and Charges

Determine Relevant Amounts

Calculate Charges Structure Diagram

Legend:

# : Number of ...

4 5

3 1

2

6

(22)

Parameter Table

Input

“****“, #Words,

#Long Messages#, Words

#Long, Charge Characters

Words

Input/Output

#Words, #Long, Charge

#Words/#Long

Output

#Words, #Long

EOF Charges /

each Message

— Word, EOF

Number of Words Characters, EOF 1

2 3 4 5 6

(23)

4.4.2 Generalization

– SD/SC supports the decomposition according to a certain schema. In simplified terms, this schema is:

– In this decomposition, a module structure arises in staircase form with Coordination

Input Process Output

Source Transformation Sink

(24)

Carry out

Determine C

Transform C to D

Pass D on

Determine B

Transform D to E Transform

B to C

Pass E on

Transform Transform

≈ ≈

5 6 7

General:

_

3 4 8 9

1 2 10 11

(25)

with the parameter table:

# 1 2 3 4 5

In - B

- C

-

Out A B B C C

In C D D E E F

Out D

- E

- F

-

# 6 7 8 9 10 11

– There is no direct communication between “Determine ..." and “Pass ... on". All information is exchanged through transformations.

– The result is a tree hierarchy "x uses y", where the following special cases of the

(26)

4.4.3 Inter-Modular Relationships

Module A calls module B.

Module A calls modules B or C conditionally.

A

B

A

B C

usualstructures

(27)

Module A calls modules B and C successively on.

A

B C

usualstructures

Module A module B and C calls iteratively.

A

B C

(28)

sometimes useful

Module A calls itself (recursion).

A

(29)

improperstructures

A module contains a jump into module B.

A

B A

B

Module A calls module B and module B uses the data from the module A.

(30)

improper meaningless "Pathological"

A module has several outputs.

A

(31)

4.4.4 Comments on SD/CD

– The structure of the tree "left: input, middle: process, right: output" is common but not mandatory.

– The actions “Pass data up, distribute, transform" can collaborate with multiple modules.

– More than two points can also lead to the highest abstraction; accordingly, more than three sub-problems are possible.

– The two points of the highest abstraction can also coincide: Two sub-problems, the transformation is not necessary.

– Evaluation of module coupling:

– The coupling is more loose, as the interface is less complex (simpler, narrower) - (small number of specified parameters).

– The coupling is more loose, as the global data is used less.

(32)

• The coupling is stronger, as the interface of the called module gets more transparent.

• The coupling is (unnecessarily) strong, when the call contains control information in addition to data.

• The coupling is very (improperly) strong, when the call changes the code of the called module.

• The internal cohesion (module rigidity, functional binding), however,

must be as strong as possible with respect to (in order): random, logical, temporally causal, communicative, sequential and functional contexts.

– A system is better structured, as the internal connection of individual modules is stronger, and the couplings between the modules are more loose.

– SD/CD supports and evaluates the structuring by top-down, hierarchical approach (functional abstraction).

– Data Abstraction: Disregarded; no support of interface specification.

Referenzen

ÄHNLICHE DOKUMENTE

• statically collect information about values of variables and expressions at certain program points?. • statically collect information about the usage of variables at certain

• When , is &amp; we require the greatest sets that solve the equations and we are able to detect properties satisfied by all execution paths reaching (or leaving) the entry (or

Transparencies based on Chapter 2 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis.. Springer

The datasets presented here belong to an investigation of the elasticity and conicity of porous silicon (pSi) in a dry and squalene filled state.. pSi is compared to wafer quality

parameter-data-definition Anstatt eine Parameter Data Area zu definieren, können Parameter auch direkt in einem Programm oder einer Routine definiert werden; siehe Definition

Wenn Sie BY VALUE weglassen, wird ein Parameter gemäß den Angaben in der Inline-Definition der Parameter Data Area des Dialogs über seine Adresse (d.h.&#34;by

In particular, we have derived reconstruction methods for step functions, linear com- binations of non-uniform B-splines, and linear combinations of non-uniform translates of

During the International Geophysical Year 1957/58 the World Data Center System (WDC) was established by the International Council for Science (ICSU) in order to archive and