21
Slide 5.1 © The McGraw-Hill Companies, 2002 CASE (Computer-Aided Software Engineering) Scope of CASE Can support the entire life-cycle Graphical display tools (many for PCs) Data flow diagrams Entity-relationship diagrams Module-interconnection diagrams Petri nets Structure charts

CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.1

© The McGraw-Hill Companies, 2002

CASE (Computer-Aided Software Engineering)

Scope of CASE– Can support the entire life-cycle

Graphical display tools (many for PCs) – Data flow diagrams– Entity-relationship diagrams– Module-interconnection diagrams– Petri nets– Structure charts

Page 2: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.2

© The McGraw-Hill Companies, 2002

Taxonomy of CASE

UpperCASE versus lowerCASE

Tool versus workbench versus environment

Page 3: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.3

© The McGraw-Hill Companies, 2002

Essential Coding Tools

Coding tools– Products (such as text editors, debuggers, and

pretty printers) designed to» Simplify programmer’s task» Reduce frustration» Increase programmer productivity

Conventional coding scenario for programming-in-the-small– Editor-compiler cycle– Editor-compiler-linker cycle– Editor-compiler-linker-execute cycle

“There must be a better way”

Page 4: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.4

© The McGraw-Hill Companies, 2002

Graphical Tool

Additional features– Data dictionary – Screen and report generators– Consistency checker; the various

views are always consistent » Specifications and design workbench

Page 5: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.5

© The McGraw-Hill Companies, 2002

Syntax-Directed Editor

“Understands” language – Speeds up implementation – User interface of an editor is different to that of a compiler

» There is no need to change thinking mode» No mental energy is wasted on these adjustments

– One piece of system software, two languages» High-level language of module» Editing command language

– Pretty-printer

Page 6: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.6

© The McGraw-Hill Companies, 2002

Online Interface Checker

Example– The programmer tries to call procedure

computeAverage, but the linker cannot find it– The programmer realizes that the actual name

of the procedure is computeMean

A structure editor must support online interface checking – Editor must know name of every procedure

Interface checking is an important part of programming-in-the-large

Page 7: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.7

© The McGraw-Hill Companies, 2002

Online Interface Checker (contd)

Example– The user enters the call

average = computeAverage (dataArray, numberOfValues);

– Editor immediately responds with a message such asProcedure computeAverage not known

Programmer is given two choices– Correct the name of the procedure– Declare new procedure computeAverage and specify its

parameters Enables full interface checking

Page 8: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.8

© The McGraw-Hill Companies, 2002

Online Interface Checker (contd)

Example– Declaration of q is

void q (float floatVar, int intVar, String s1, String s2);

– Call (invocation) isq (intVar, floatVar, s1, s2);

– Online interface checker detects the faultHelp facility– Online information as to the parameters of

method q

– Better: Editor generates a template for the call» Shows type of each parameter» Programmer replaces formal by actual parameter

Page 9: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.9

© The McGraw-Hill Companies, 2002

Online Interface Checker (contd)

Advantages– No need for different tools with different interfaces– Hard-to-detect faults are immediately flagged for

correction» Wrong number of parameters» Parameters of wrong type

Essential when software is produced by a team – If one programmer changes the interface specification,

all modules calling that changed module must be disabled

Page 10: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.10

© The McGraw-Hill Companies, 2002

Online Interface Checker (contd)

Remaining problem– The programmer still has to exit from the editor to

invoke the compiler (to generate code)– Then, the linker must be called to link the product– Must adjust to the JCL, compiler, and linker output

Page 11: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.11

© The McGraw-Hill Companies, 2002

Operating System Front-End in Editor

Single command – go or run

– Use of the mouse to choose icon, or menu selection

Causes the editor to invoke the compiler, linker, loader, and execute the product

Page 12: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.12

© The McGraw-Hill Companies, 2002

Operating System Front-End in Editor (contd)

Online documentation– Help information regarding

» Operating system» Editor» Programming language

– Programming standards– Manuals

» Editor manuals» Programming manuals

Page 13: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.13

© The McGraw-Hill Companies, 2002

Online Documentation

Problems with– Manuals– Updating

Essential online documentation– Help information – Programming standards– Manuals

Page 14: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.14

© The McGraw-Hill Companies, 2002

Source Level Debugger

Example: – Product executes terminates abruptly and prints

Overflow at 4B06, orCore dumped, or Segmentation fault

Page 15: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.15

© The McGraw-Hill Companies, 2002

Source Level Debugger (contd)

The programmer works in a high-level language, but must examine– Machine code core dumps– Assembler listings– Linker listings– Similar low-level documentation

Destroys the advantage of programming in a high-level languageWe need– Interactive source level debugger (like dbx)

Page 16: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.16

© The McGraw-Hill Companies, 2002

Programming Workbench

Structure editor with – Online interface checking capabilities– Operating system front-end– Online documentation– Source level debugger

Constitutes a simple programming environment

Page 17: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.17

© The McGraw-Hill Companies, 2002

Programming Workbench (contd)

This is by no means new– All the above features are supported by FLOW (1980)– The technology has been in place for years

Surprisingly, some programmers still implement code Ye Olde-Fashioned Way

Page 18: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.18

© The McGraw-Hill Companies, 2002

Software Versions

During maintenance, at all times there are at least two versions of the product:– The old version, and – The new version

Two types of versions: revisions and variations

Page 19: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.19

© The McGraw-Hill Companies, 2002

Revisions and Variations

Revision– Version to fix a fault in the module– We cannot throw away an incorrect version

Perfective and adaptive maintenance also results in revisions

Page 20: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.20

© The McGraw-Hill Companies, 2002

Revisions and Variations (contd)

Variation– Version for different operating system–hardware– Variations are designed to coexist in parallel

Page 21: CASE (Computer-Aided Software Engineering) · CASE (Computer-Aided Software Engineering) zScope of CASE – Can support the entire life-cycle zGraphical display tools (many for PCs)

Slide 5.21

© The McGraw-Hill Companies, 2002

Configuration Control

Every module exists in three forms– Source code;

object code; executable load image

Configuration– Version of each

module from which a given version of a product is built