Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
Slide 5.2
© The McGraw-Hill Companies, 2002
Taxonomy of CASE
UpperCASE versus lowerCASE
Tool versus workbench versus environment
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”
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
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
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
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
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
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
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
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
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
Slide 5.13
© The McGraw-Hill Companies, 2002
Online Documentation
Problems with– Manuals– Updating
Essential online documentation– Help information – Programming standards– Manuals
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
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)
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
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
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
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
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
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