Software Engineering Tools - PowerPoint PPT Presentation


PPT – Software Engineering Tools PowerPoint presentation | free to view - id: 2715c2-N2NhM


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation

Software Engineering Tools


'Postpone decisions as to details as late as possible to be able ... Surprisingly, some programmers still implement code Ye Olde-Fashioned Way. Software Versions ... – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 47
Provided by: coursew


Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Software Engineering Tools

Software Engineering Tools
  • MOE 225 Software Engineering
  • Topic 6

Stepwise Refinement
  • A basic principle underlying many software
    engineering techniques
  • Postpone decisions as to details as late as
    possible to be able to concentrate on the
    important issues
  • Millers law (1956)
  • A human being can concentrate on 72 items at a

Stepwise Refinement Case Study
  • Design a product to update a sequential master
    file containing name and address data for monthly
    magazine True Life Software Disasters
  • Three types of transactions
  • Type 1 INSERT (new subscriber into master file)
  • Type 2 MODIFY (existing subscriber record)
  • Type 3 DELETE (existing subscriber record)
  • Transactions are sorted into alphabetical order,
    and by transaction code within alphabetical order

Typical file of input transactions
Decompose Process
  • No further refinement is possible

First Refinement
Stepwise Refinement Case Study (contd)
  • Assumption
  • We can produce a record when PROCESS requires it
  • Separate INPUT and OUTPUT, concentrate on PROCESS
  • What is this PROCESS?

Second Refinement
Third Refinement
  • This design has a major fault

Stepwise Refinement Case Study (contd)
  • The third refinement is WRONG
  • Modify JONES followed by Delete JONES
  • After the third refinement has been corrected
  • Details like opening and closing files have been
    ignored up to now
  • Fix after the logic of the design is complete
  • The stage at which an item is handled is vital
  • Opening and closing files is
  • Ignored in early steps, but
  • Essential later

Appraisal of Stepwise Refinement
  • A basic principle used in
  • Every phase
  • Every representation
  • The power of stepwise refinement
  • The software engineer can concentrate on the
    relevant aspects
  • Warning
  • Millers Law is a fundamental restriction on the
    mental powers of human beings

CostBenefit Analysis
  • Compare estimated future benefits, costs
  • Estimate costs
  • Estimate benefits
  • State all assumptions explicitly

Software Metrics
  • To detect problems early, it is essential to
  • Examples
  • Lines of code (LOC) per month
  • Defects per 1000 LOC

Different Types of Metrics
  • Product Metrics
  • Examples
  • Size of product
  • Reliability of product
  • Process Metrics
  • Example
  • Efficiency of fault detection during development
  • Metrics specific to a given phase
  • Example
  • Number of defects detected per hour in
    specification reviews

The Five Basic Metrics
  • Size
  • In Lines of Code, or better
  • Cost
  • In dollars
  • Duration
  • In months
  • Effort
  • In person months
  • Quality
  • Number of faults detected

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

Automated process support (CASE)
  • Computer-aided software engineering (CASE) is
    software to support software development and
    evolution processes
  • Activity automation
  • Graphical editors for system model development
  • Data dictionary to manage design entities
  • Graphical UI builder for user interface
  • Debuggers to support program fault finding
  • Automated translators to generate new versions of
    a program

Case technology
  • Case technology has led to significant
    improvements in the software process though not
    the order of magnitude improvements that were
    once predicted
  • Software engineering requires creative thought -
    this is not readily automatable
  • Software engineering is a team activity and, for
    large projects, much time is spent in team
    interactions. CASE technology does not really
    support these

Taxonomy of CASE
  • UpperCASE versus lowerCASE
  • Tool versus workbench versus environment

CASE classification
  • Classification helps us understand the different
    types of CASE tools and their support for process
  • Functional perspective
  • Tools are classified according to their specific
  • Process perspective
  • Tools are classified according to process
    activities that are supported
  • Integration perspective
  • Tools are classified according to their
    organisation into integrated units

Functional tool classification
Activity-based classification
CASE integration
  • Tools
  • Support individual process tasks such as design
    consistency checking, text editing, etc.
  • Workbenches
  • Support a process phase such as specification or
    design, Normally include a number of integrated
  • Environments
  • Support all or a substantial part of an entire
    software process. Normally include several
    integrated workbenches

Tools, workbenches, environments
Graphical Tool
  • Additional features
  • Data dictionary
  • Screen and report generators
  • Consistency checker the various views are always
  • Specifications and design workbench
  • Online Documentation
  • Problems with
  • Manuals
  • Updating
  • Essential online documentation
  • Help information
  • Programming standards
  • Manuals

Essential Coding Tools
  • Coding tools
  • Products (such as text editors, debuggers, and
    pretty printers) designed to
  • Simplify programmers task
  • Reduce frustration
  • Increase programmer productivity
  • Conventional coding scenario for
  • Editor-compiler cycle
  • Editor-compiler-linker cycle
  • Editor-compiler-linker-execute cycle
  • There must be a better way

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

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
  • Editor must know name of every procedure
  • Interface checking is an important part of

Online Interface Checker (contd)
  • Example
  • The user enters the call
  • average computeAverage (dataArray,
  • Editor immediately responds with a message such
  • Procedure 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

Online Interface Checker (contd)
  • Example
  • Declaration of q is
  • void q (float floatVar, int intVar, String s1,
    String s2)
  • Call (invocation) is
  • q (intVar, floatVar, s1, s2)
  • Online interface checker detects the fault
  • Help facility
  • Online information as to parameters of method q
  • Better Editor generates a template for the call
  • Shows type of each parameter
  • Programmer replaces formal by actual parameter

Online Interface Checker (contd)
  • Advantages
  • No need for different tools with different
  • Hard-to-detect faults are immediately flagged for
  • 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

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
  • Must adjust to the JCL, compiler, and linker

Operating System Front-End in Editor
  • Single command
  • go or run
  • Use of the mouse to choose icon, or menu
  • Causes editor to invoke the compiler, linker,
    loader, and execute the product

Operating System Front-End in Editor (contd)
  • Online documentation
  • Help information regarding
  • Operating system
  • Editor
  • Programming language
  • Programming standards
  • Manuals
  • Editor manuals
  • Programming manuals

Source Level Debugger
  • Example
  • Product executes terminates abruptly and prints
  • Overflow at 4B06, or
  • Core dumped, or
  • Segmentation fault

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 language
  • We need
  • Interactive source level debugger (like dbx)

Programming Workbench
  • Structure editor with
  • Online interface checking capabilities
  • Operating system front-end
  • Online documentation
  • Source level debugger
  • Constitutes a simple programming environment

Programming Workbench (contd)
  • This is by no means new
  • All the above features are supported by FLOW
  • The technology has been in place for years
  • Surprisingly, some programmers still implement
    code Ye Olde-Fashioned Way

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

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

Revisions and Variations (contd)
  • Variation
  • Version for different operating systemhardware
  • Variations are designed to coexist in parallel

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

Version Control Tool
  • Essential for programming-in-the-many
  • First step toward configuration management
  • Must handle
  • Updates
  • Parallel versions

Version Control Tool (contd)
  • Possible notation
  • printerDriver (laser) / 13
  • printerDriver (inkJet) / 25
  • Problem of multiple variations
  • Deltas
  • Version control is not enoughmaintenance issues

Configuration Control and Maintenance
  • Two programmers working on the same module
  • mDual / 16
  • mDual / 17
  • Baselines
  • Private workspaces
  • Freezing
  • Configuration control during development
  • Informal testing
  • SQA

Build Tools
  • Example
  • UNIX make
  • Compares the date and time stamp on
  • Source code, object code
  • Object code, executable load image
  • Can check dependencies
  • Ensures that correct versions/variations are
    compiled and linked