5.1/68 the tools of the trade. 5.2/68 overview l stepwise refinement, l cost–benefit analysis, l...

68
5.1/68 The Tools of The Trade

Post on 18-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.1/68

The Tools of

The Trade

Page 2: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.2/68Overview

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools , Productivity Gains With CASE Tools.

Page 3: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.3/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools, Productivity Gains With CASE Tools.

Page 4: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.4/68Stepwise Refinement (SR) …

SR is a basic principle that underlying many SW engineering techniques:– “Postpone decisions as to details as late as possible

to be able to concentrate on the important issues.”, Or,

– “Decide early on the key point area…”, Or,– “Technique for prioritizing the various problems that

have to be solved within a phase“ ,

Some people are doing it naturally, the rest of us – got to work hard to obtain this.

Page 5: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.5/68Stepwise Refinement (SR) …

Miller’s law (1956): “A human being can concentrate on 7±2 chunks of information at a time.”,– On how many things do we have to concentrate while

developing SW? And good SW? ,

Page 6: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.6/68SR – Case Study …

Problem is simple – concentrate on the SR process,

Design a product to update a sequential master file containing name and address data for monthly magazine “true life SW disasters” ,

Abel …..

Brown …..

James …..

Jones ….

Smith ….

Townsend …

Abel ….

Harris …

James ..

Smith …..

Townsend …

Old Master File New Master File,

Page 7: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.7/68SR – Case Study (Cont’d)

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.

Page 8: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.8/68Typical File of Input Transactions

DeleteInsertUpdateDeleteInsert,

Page 9: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.9/68Decompose Process

No further refinement is possible,

Page 10: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.10/68First Refinement

Take couple of minutes to define the process algorithm.

Page 11: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.11/68SR – Case Study (Cont’d)

Assumption – We can produce a record when PROCESS requires it

Separate INPUT and OUTPUT, concentrate on PROCESS

What is this PROCESS? ,

Page 12: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.12/68The Process…

Transaction record key = old master record key:– 1: INSERT – print error message,– 2: MODIFY – change master file record,– 3: DELETE – delete master file record,

Transaction Record Key > Old Master Record Key:– Copy old Master File Record onto new Master File ,

Transaction Record Key < Old Master Record Key:– 1: INSERT – Write Transaction Record to new Master File, – 2: MODIFY – Print error message,– 3: DELETE – Print error message.

Page 13: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.13/68Second Refinement

Page 14: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.14/68SR – Case Study (Cont’d)

Input and output have been deferred, No provision for end-of-file , No specification for error condition.

Page 15: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.15/68Third RefinementThis design has a major fault…

Where? …

Page 16: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.16/68SR – Case Study (Cont’d)

The third refinement is WRONG:– “Modify JONES” followed by “delete JONES”,

the modified record is already written to the new master file, We need to go only one step back, 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.

Page 17: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.17/68Appraisal of SR

A basic principle used in:– Every phase, – Every representation,

The power of SR:– We may concentrate on the relevant aspects,

Problem– What must be handled now?,– What my be deferred? ,

Warning:– Miller’s law is a fundamental restriction on the mental

powers of human beings.

Page 18: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.18/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools, Productivity Gains With CASE Tools.

Page 19: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.19/68Cost–benefit – Glossary Payback period, Return on investment – ROI, Investment cost (lands, building, equipment, HW,

SW…), Operational costs (salaries, wages, consumable,

electricity…), Tangible benefits:

– Measured in $ terms: increase profits, revenue , Intangible benefits:

– Goodwill, confidence, consumer preference, reputation etc.

Page 20: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.20/68Cost–benefit – Analysis …

Compare estimated future benefits, costs:– Estimate costs,– Estimate benefits,– State all assumptions explicitly

especially for intangible benefits!! ,

Build or buy the system – or invest elsewhere ,

If build/buy – which project to implement first?

Page 21: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.21/68Cost–benefit – Analysis (Cont’d) …

Indicators:– Time to recover cost?– Average profit per year? – Net profit over life of investment?– Discounted value of future cash flows from investment? ,

Cash flow– Given a set of costs and returns:– ADD returns,– SUBTRACT costs.

Page 22: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.22/68Cost–benefit – Analysis (Cont’d) …

Payback period (P.P.):– If I invest x$ in a project, with an average annual return

of y$, how long before I return my investment?,

Investment (x$) P.P. = Average Annual Return (y$) ,

Return On Investment (ROI):– If I invest x$ in a project, with an average annual return

of y$, What is the return on my investment? ,

Average Annual Return (y$) ROI = Investment (x$)

Page 23: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.23/68Cost–benefit – Example 1 …

KCEC – Krag central electric company (1965), Manual billing system:

– Mailing bills every two month,– Billing department with 80 clerks,

Computerized billing system:– Mailing bills each month (improved cash flow – 875K$),– Buy / lease HW & SW (1,250K$),– Billing department with 11 data capture clerks,– New data processing department (salary savings 1,575K$),– 1st year conversion cost (350K$)– Explaining change to customers (125K$) ,

1,725k$ VS. 2,475k$.

Page 24: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.24/68Cost–benefit – Example 1 (Cont’d)

Costs Benefits

System cost (7 yr.) 1,250K$

Improved Cash Flow – 875K$

Conversion – 350K$ Salary Savings – 1,575K$

Customers support – 125K$

Total – 1,725K$ Total – 2,450K$

Page 25: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.25/68Cost–benefit – Example 2

A new accounting system costs 80K$. The system will save:10K$ in the 1st year,25K$ in the 2nd year, 25K$ in the 3rd year, and 30K$ in the 4th year.

What is the payback period?

Year Return Profit (Loss)

1 10K$ (70K$)

2 25K$ (45k$)

3 25K$ (20K$)

4 30K$ 10K$

Payback 2/3 way into year 4. I.e. 3.67 years

Page 26: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.26/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools, Productivity Gains With CASE Tools.

Page 27: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.27/68SW Metrics – The Importance

Without measurement it is impossible to detect problems early in the development process,

To detect problems early, it is essential to measure ,

Examples:– LOC per month (coding rate), – Defects per 1000 lines of code (FPKLOC), – Mean Time Between Failures (MTBF),– Staff turnover ,– Cost.

Page 28: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.28/68Different Types of Metrics

Product metrics – Examples:

Size of product (e.g. LOC),Reliability of product (MTBF),

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.

Page 29: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.29/68The Five Basic Metrics

Size:– In lines of code,

Cost:– In dollars,

Duration:– In months,

Effort:– In person months,

Quality:– Number of faults detected.

Page 30: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.30/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools, Productivity Gains With CASE Tools.

Page 31: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.31/68CASE (Computer-aided SW Engineering)

Scope of CASE:– Support the entire SW life-cycle ,

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

Page 32: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.32/68CASE – Taxonomy

Uppercase (front-end) versus lowercase (back-end),

UpperCASE

LowerCASE

Tool versus workbench versus environment,

Page 33: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.33/68CASE – Graphical Tool

Additional features:– Data dictionary – all data defined within the product,– Consistency checker: The various views are always

consistent, – Specifications and design workbench, – Screen and report auto-generators,

Online documentation– Saving trouble with Manuals (tedious work…), Updating ,

Essential online documentation– Help information, – Programming standards,– Manuals (UNIX man for example).

Page 34: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.34/68CASE – Data Dictionary

Data dictionary –RequisitePro® [Rational] ,

Page 35: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.35/68CASE – Essential Coding Tools

Products (such as text editors, debuggers, and pretty printers) designed to:– Simplify programmer’s task,– Reduce frustration,– Increase programmer productivity.

Page 36: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.36/68CASE – Syntax-directed Editor

A structure editor – “understands” language: Detecting syntax faults – as soon as it keyed, 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 SW, two languages:– High-level language of module,– Editing command language ,

Pretty-printer.

Page 37: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.37/68CASE – 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 38: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.38/68CASE – Online I/f. Checker (Cont’d)…

Example:– The user enters the call:

Average = computeAverage (dataArray, numberOfValues);

– Editor immediately responds with a message such as“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.

Page 39: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.39/68CASE – Online I/f Checker (Cont’d) …

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 fault ,

Help facility:– Online information as to parameters of method q :

– Or, even better: editor generates a template for the call:Shows type of each parameter,Programmer replaces formal by actualparameter.

Page 40: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.40/68CASE – Online I/f. Checker (Cont’d) …

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 SW is produced by a team: – If one programmer changes the interface specification, all

modules calling that changed module must be disabled.

Page 41: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.41/68CASE – Online I/f. Checker (Cont’d)

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 42: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.42/68CASE – OS Front-end in Editor …

Single command: – Go or run, – Use of the mouse to choose icon, or menu selection ,

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

Page 43: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.43/68CASE – OS Front-end in Editor (Cont’d)

Online documentation:– Help information regarding:

Operating system,Editor, Programming language,

– Programming standards,– Manuals:

Editor manuals,Programming manuals.

Page 44: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.44/68CASE – Source Level Debugger …

Example: – Product executes terminates abruptly and prints:

Overflow at 4B06,

Core dumped ,

Segmentation fault

Page 45: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.45/68CASE – Source Level Debugger (Cont’d)

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 UNIX dbx).

Page 46: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.46/68CASE – Programming Workbench … Structure editor with:

– Online interface checking capabilities,– Operating system front-end,– Online documentation,– Source level debugger,

Constitutes a simple programming environment …

Overflow Error

Class: CyclotronEnery

Method: performComputation

Line6: newValue= (oldValue + temValue)*tempValue;

oldValue: 3.9583

tempValue: 0.0000

Page 47: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.47/68CASE – Programming Workbench (Cont’d)

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 the old-fashioned way.

Page 48: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.48/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools, Productivity Gains With CASE Tools.

Page 49: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.49/68SW 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 50: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.50/68Revisions and Variations …

Revision: Version to fix a fault in the module,

We cannot throw away an incorrect version:– New version might be erroneous,– It might be that not all sites moved to the latest

version ,

Perfective and adaptive maintenance also results in revisions.

Page 51: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.51/68Revisions and Variations (Cont’d) …

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

e.g. Drivers for different printers,

Revisions ,

Variations

Page 52: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.52/68Revisions and Variations (Cont’d)

PrinterDriver(inkJet)10 PrinterDriver(laser)/15,PrinterDriver(laser)/16,PrinterDriver(laser)/17 ,

Two Variations of PrinterDriver() and,

Three revisions of PrinterDriver(laser)

Page 53: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.53/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools, Productivity Gains With CASE Tools.

Page 54: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.54/68Configuration 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.

Page 55: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.55/68Version Control Tool ...

Suppose SQA report a failure in version 2.5:– Do you know version of each module?,– Is it feasible?,

Essential for team- programming– First step toward configuration management ,

Must handle:– Updates,– Parallel versions.

Page 56: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.56/68Version Control Tool (Cont’d)

Possible notation:– name( variation) / version– printerDriver (laser) / 13– printerDriver (inkjet) / 25– What if a failure in printerDriver (laser) / 13

is to fixed as well in printerDriver (inkjet) / 25 ?,

Problem of multiple variations– Deltas – we define newer code by its ‘deltas’ ,

Version control is not enough — maintenance issues.

Page 57: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.57/68Configuration Control and Maintenance

Two programmers, Dan & Ron, are assigned to fix different bugs ,

The two programmers tracked the bug to the same module mDual / 15.– Dan made his copy – mDual / 16.– Ron made his copy – mDual / 17.– Both fixed some bugs!– What’s next?

Page 58: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.58/68CM – Example …

mDual15…

mDual16…

mDual17

Page 59: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.59/68

mDual15…

CM – Example (Cont’d)

mDual17…

mDual16

Page 60: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.60/68CC and Maintenance … Baselines:

– Configuration of all the modules that are in the product,– Programmers work in their private workspaces,– Once accomplished – freezing, – Setting a new baseline ,

Configuration control during development:– Many versions through coding/testing,– Informal testing,– SQA… - same as maintenance configuration.

Page 61: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.61/68CC and Maintenance Commercial tools:

– Rational ClearCase,– Unix:

RCS Revision Control System, CVS Concurrent Versions System,

– PC : Synergex PVCS,– Comparison….

Page 62: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.62/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control , Build tools, Productivity Gains With CASE Tools.

Page 63: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.63/68Build Tools

Compares the date and time stamp on:– Source code, object code,– Object code, executable load image,

Example:– UNIX make ,

Can check dependencies:– Ensures that correct versions/variations are

compiled and linked.

Page 64: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.64/68

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control , Build tools, Productivity Gains With CASE Tools.

Page 65: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.65/68Productivity Gains With CASE Tools …

Survey of 45 companies in 10 industries [Myers, 1992]– Half information systems,– Quarter scientific,– Quarter real-time aerospace ,

Results– About 10% annual productivity gains,– $125,000 per seat!

Page 66: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.66/68Productivity CASE (Cont’d)

Justifications for CASE:– Improved productivity,– Faster development,– Improved SW quality,– Fewer faults,– Better usability,– Easier maintenance,– Improved morale (once the tools are systematically taught!),

CASE environment should not be used at maturity levels 1 or 2 ,

“A fool with a tool is still a fool”.

Page 67: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.67/68Summary

Stepwise refinement, Cost–benefit analysis, SW metrics, Case

– Taxonomy of CASE,– Scope of CASE,

SW versions, Configuration control, Build tools, Productivity Gains With CASE Tools.

Page 68: 5.1/68 The Tools of The Trade. 5.2/68 Overview l Stepwise refinement, l Cost–benefit analysis, l SW metrics, l Case – Taxonomy of CASE, – Scope of CASE,

5.68/68

The Tools of The Trade

The End