CIS 375 SOFTWARE ENGINEERING

University Of Michigan-Dearborn

Dr. Bruce Maxim, Instructor

 

Regression And Correlation.


Mean = (å xi)/n

Variance d = (å xi2)/n - (mean)2

Covariance m xy = (å xi yi)/n - (x)(y)

Correlation = r

Regression; y = mx + b

X

Y

X^2

X*Y

Y^2

1

1

1

1

1

3

2

9

6

4

4

4

16

16

16

6

4

36

24

16

8

5

64

40

25

9

7

81

63

49

11

8

121

88

64

14

9

190

126

81

S= 56

40

524

364

256

 

Regression Models


1. Linear Model

E = Co + S Cix

{Effort in Person Months} {Intercept} {Regression Coefficient}

2. Static Non-Linear Model

n

E = Co + S Cix xi2i

i=1

Often rewritten using size of code as a factor

E = a + b Sc m (x) n

{where a, b & c are constants, S = size, m = multiplier, and x = S Cix xi2i }

i=1

COCOMO Model

COnstructive COst MOdel

Contains 3 levels

1. Basic: Computes software development effort (and cost) as a function of program size, expressed in estimated lines of code.

2. Intermediate: Computes software development effort as a function of program size and a set of "cost drivers" that include subjective assessments of product, hardware, personnel, and project attributes.

3. Detailed: Includes all characteristics of the intermediate version with an assessment of the cost driver’s impact on each step (analysis, design, ect.) of the software engineering process.

Model: E = a Sb m(x)

 

BASIC

INTERMEDIATE

MODE

a

b

a

b

Organic

2.4

1.05

3.2

1.05

Semidetached

3.0

1.12

3.0

1.12

Embedded

3.6

1.20

2.8

1.20

in the basic COCOMO model x=1

in the intermediate model a questionnaire is used

Product Attributes

Computer Attributes

RELY

Reliability

TIME

Execution Time

DATA

Size of database

STOR

Amount of Storage

CPLX

Complexity of System

VIRT

Virtual Volatility

*

*

TURN

Response Time

Personnel

Project

ACAP

Analyst Capabilities

MODP

Modern Practices

AEXP

Analyst Experience

TOOL

Software Tools

PCAP

Programmer Capabilities

SCED

Development Schedule

PEXP

Programmer Experience

*

*

VEXP

Machine Experience

*

*

LEXP

Language Experience

*

*

Dynamic Estimation Models:

  1. Putnam Model (initially based on 200 military models).

(Rayliegh curve -> skewed, median & mean offset from one another).


Based on:

    1. Volume of work.
    2. Difficulty gradient (complexity).
    3. Project technology factor.
    4. Time constraints, delivery.

E = y(t ) = 0.3945 K;

{t represents optimal time} {K represents the area under the Rayliegh curve}.

D = K / t 2;

{difficulty measure based on t 2 and K}.

P = C2D-2/3;

{productivity measure}.

Ss = c K-1/5 t 4/3;

{ lines of code measure} {c represents the technology factor from survey}.

  1. Parr Model (variation of above):

Staff (t) = sech2 [(a t + c)/2].

  1. Jensen Model:

(less sensitive to compression)

Ss = Cte T K 1/2

{ Cte represents technology constraint with environmental adjustment}.

  1. COPMO (cooperative programming model):

E = E1 (S) + E2 (m);

{E represents total effort}.

{E1(S) represents the effort of one or people working independently

E1(S) = a + bs ,where a & b are empirically derived constants}.

{E2(m) represents the effort required to coordinate the development process

E2(m) = cm2 where m is the average number of team members}.

Make-Buy-Decision:

  1. Is a computer-based necessary (cost effective?):
  1. Can an existing software package be purchased for the task?

Decision Steps:

  1. Develop specifications.
  2. Estimate internal cost & delivery.
  3. Select 3 or 4 candidate packages.
  4. Select reasonable components.
  5. Build a cost-benefit comparison matrix, or Benchmarking (if from scratch you can’t do this).
  6. Evaluate each software package or component based on history with the product or vendor.
  7. Contact other users.

Now you’re in a good position to evaluate.

One way: build a decision tree.