119
1 Historical Perspective

Historical Perspective

  • Upload
    mayda

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

Historical Perspective. 1965. 1 Got Married 2 First Computer Course. Got Married. Got Married. Got Married. Got Married. Got Married. Got Married. Got Married. Got Married. Got Married. First Computer Course Fortran. Fortran - PowerPoint PPT Presentation

Citation preview

Page 1: Historical Perspective

1

Historical Perspective

Page 2: Historical Perspective

2

1965

Page 3: Historical Perspective

3

1 Got Married2 First Computer Course

Page 4: Historical Perspective

4

Got Married

Page 5: Historical Perspective

5

Got Married

Page 6: Historical Perspective

6

Got M

arried

Page 7: Historical Perspective

7

Got Married

Page 8: Historical Perspective

8

Got Married

Page 9: Historical Perspective

9 G

ot M

arrie

d

Page 10: Historical Perspective

10 Got

Mar

ried

Page 11: Historical Perspective

11

Got

Mar

ried

Page 12: Historical Perspective

12

Got Married

Page 13: Historical Perspective

13

First Computer Course Fortran

Page 14: Historical Perspective

14

Fortran Fortran was only 8 years old Already Several Versions

Fortran IV

Page 15: Historical Perspective

HOW DO YOU GET THE PROGRAM IN THE COMPUTER?

One of the Big Issues

15

Page 16: Historical Perspective

Historical Computing

• Computers were very expensive

16

Page 17: Historical Perspective

Historical Computing

• Computers were very expensive

• Could only run one program a time

17

Page 18: Historical Perspective

Historical Computing

• Computers were very expensive

• Could only run one program a time

• So one object was to get the program into the computer as fast as possible

18

Page 19: Historical Perspective

A Good Media

• The Punched Card • Card Readers

19

Page 20: Historical Perspective

A Fortran Cardand Key Punch Machine

20

Page 21: Historical Perspective

21

Page 22: Historical Perspective

22

Page 23: Historical Perspective

23

Page 24: Historical Perspective

24

Page 25: Historical Perspective

IBM 7094

• Fastest Machine• .35 MIPS• 32K Memory (36 bit

word)• Very Expensive

25

Page 26: Historical Perspective

26

Page 27: Historical Perspective

IBM 7094

• Fastest Machine• .35 MIPS• 32K Memory (36 bit

word)• Very Expensive• Over 3 Million Dollars

27

Page 28: Historical Perspective

28

Page 29: Historical Perspective

29

Page 30: Historical Perspective

30

Page 31: Historical Perspective

31

Page 32: Historical Perspective

32

Page 33: Historical Perspective

Contract Programmer

• Go from Job to Job• Sometimes call

ourselves gypsies • Subject to technical

interviews

33

Page 34: Historical Perspective

Technical Interviews

• Contract programmers

• Level of questions are often quite simple

• Have to do a lot of technical interviews

34

Page 35: Historical Perspective

Technical Interviews

• What PROC do you use for printing?

35

Page 36: Historical Perspective

Technical Interviews

• What PROC do you use for printing?

• What manual describes the PROCs?

36

Page 37: Historical Perspective

SESUG 2012, Durham NC

• Once in a discussion about the quality of questions, a fellow contractor spoke up and said that the best he ever got was:

37

Page 38: Historical Perspective

SESUG 2012, Durham NC

• Can you describe the life cycle of a software system?

38

Page 39: Historical Perspective

SESUG 2012, Durham NC

• This fellow had just reviewed software • development methods.

• And answer was: Yes

39

Page 40: Historical Perspective

40

Needs analysis Systems analysis System design Unit design Unit coding Subsystem coding System coding System acceptance

Page 41: Historical Perspective

41

Needs analysis Systems analysis System design Unit design Unit coding Subsystem coding System coding System acceptance

Then it goes forever into maintenance

Page 42: Historical Perspective

42

WOW

Page 43: Historical Perspective

SESUG 2012, Durham NC

That is what you might do for a Huge System

• With dozens of pages of documentation• If not hundreds

43

Page 44: Historical Perspective

SESUG 2012, Durham NC

That is not what we are doing today!

• For a small ad hoc program• ONE sheet (keep it simple)

44

Page 45: Historical Perspective

45

Needs analysis Analysis Design

Page 46: Historical Perspective

SESUG 2012, Durham NC

The Request

• Usually an email • Stating what the requestor wants

46

Page 47: Historical Perspective

SESUG 2012, Durham NC

The Request – part 1

• The Marketing Group is planning to do a telephone survey to determine the interest level for using solar as part of an individual household electrical supply. Needed is a sample of 10,000 customers meeting for following qualifications:

47

Page 48: Historical Perspective

SESUG 2012, Durham NC

The Request – part 2Qualifications

• Residential• Household income of at least $75,000• Monthly power usage of at least 2500 Kwh• Live in the metro area

48

Page 49: Historical Perspective

SESUG 2012, Durham NC

The Request – part 3

• Needed for each person in the sample: Name Address Telephone number Age Solar user

49

Page 50: Historical Perspective

I build single sheet starting with three columns

• Item number• Flag• User request

50

Page 51: Historical Perspective

51

Spec Sheet

Item Flag User request

1Residential

2Income level

3Power usage

4Metro

5Name

6Address

7Phone Num

8Age

9Solar user

Page 52: Historical Perspective

SESUG 2012, Durham NC

Note that in the items in the request fall into two categories:

• Selection criteria (items 1 - 4)• Needed information (items 5 – 9)

52

Page 53: Historical Perspective

SESUG 2012, Durham NC

I use the flag column

• S - selection criteria • I - needed information

53

Page 54: Historical Perspective

54

Spec Sheet

Item Flag User request

1S Residential

2S Income level

3S Power usage

4S Metro

5I Name

6I Address

7I Phone Num

8I Age

9I Solar user

Page 55: Historical Perspective

SESUG 2012, Durham NC

As Programmers and Analysts Know

• Now the work begins – • Finding the needed items (data)

55

Page 56: Historical Perspective

SESUG 2012, Durham NC

Identification of data includes:

• Databases, • Tables, • Variables, • Values for the variables,

56

Page 57: Historical Perspective

SESUG 2012, Durham NC

And – Oh Yes

• Specialized routines if needed.

57

Page 58: Historical Perspective

SESUG 2012, Durham NC

More columns are needed in the spec sheet.

• Database (DB)• Table • Variable (Var)• Values• Footnote (FN) {to identify special routines}

58

Page 59: Historical Perspective

59

Spec SheetItem Flag User request BK DB /

LibTable Var Values FN

1S Residential

2S Income level

3S Power usage

4S Metro

5I Name

6I Address

7I Phone Num

8I Age

9I Solar user

Page 60: Historical Perspective

60

Data discovery time is a luxury that programmers don’t always have when starting a new project

Page 61: Historical Perspective

61

Large organizations have a lot of databases and tables to explore.

Page 62: Historical Perspective

62

A neophyte programmer or even a seasoned programmer new on the job can be challenged to find source locations for all of the data required on a new report.

Page 63: Historical Perspective

63

Imagine walking through the office trying to network with others about where to find data.

Page 64: Historical Perspective

64

Having a printed copy of a spec sheet will be helpful to use as a visual aid during conversations.

Page 65: Historical Perspective

SESUG 2012, Durham NC

Fill in what you can on your own

65

Page 66: Historical Perspective

66

Spec SheetItem Flag User request BK DB /

LibTable Var Values FN

1S Residential CQ bill tartyp 1

2S Income level

3S Power usage

4S Metro

5I Name

CQ bill name as shown

6I Address

CQ bill serv_ad

7I Phone Num

CQ bill phone

8I Age

9I Solar user

Page 67: Historical Perspective

SESUG 2012, Durham NC

Then Go get Help!

• Before going after help you might pencil in the names of the most likely people that would have the answer

• If you do not have a clue leave it blank and ask every one

67

Page 68: Historical Perspective

68

Spec SheetItem Flag User request BK DB /

LibTable Var Values FN

1S Residential CQ bill tartyp 1

2S Income level BH

3S Power usage LG

4S Metro BB

5I Name

CQ bill name as shown

6I Address

CQ bill serv_ad

7I Phone Num

CQ bill phone

8I Age C

9

I Solar user

Do not have a clue

Page 69: Historical Perspective

SESUG 2012, Durham NC

As you go from person to person getting answers

• Pencil in the information

69

Page 70: Historical Perspective

70

Spec SheetItem Flag User request BK DB /

LibTable Var Values FN

1S Residential CQ bill tartyp 1

2S Income level

MON monthly

income 7 or above

3S Power usage

Use usage kwh_nn ge 2500 1

4S Metro

CNTY cnty_cd county 2

5I Name

CQ bill name as shown

6I Address

CQ bill serv_ad 3

7I Phone Num

CQ bill phone 4

8I Age

MON monthly

age

9I Solar user

CQ bldg tariff u1,v1

Page 71: Historical Perspective

SESUG 2012, Durham NC

You have a choice

• Use it as is or• Go back to your work station (computer) and

enter the new information into the sheet

71

Page 72: Historical Perspective

72

Page 73: Historical Perspective

SESUG 2012, Durham NC

OOPs

• Some one slipped in an old frame• Were back on the dark ages

73

Page 74: Historical Perspective

SESUG 2012, Durham NC

• Put in the updated information and • Do not forget the footnotes

74

Page 75: Historical Perspective

75

Spec SheetItem

Flag User requirement

BK DB Table Var Values FN

1 S Residential CQ bill tartyp 12 S Income level MON monthl

yincome 7 or

above3 S Power usage Use usage kwh_nn ge 2500 14 S Metro CNT

Ycnty_cd county 2

5 I Name CQ bill name as shown

6 I Address CQ bill serv_ad 37 I Phone num CQ bill phone 48 I Age MON monthl

yage

9 I Solar user CQ bldg tariff u1,v110 I NO CONTACT CNT contact nocontac

tnc,nmnc

Footnote 1: average the past 12 months where nn=01…12Footnote 2: select only metro area countiesFootnote 3: %inc ‘parseAD’Footnote 4: %inc ‘parsePH’

Page 76: Historical Perspective

Do You see any Advantages in Creating a Spec Sheet?

76

Page 77: Historical Perspective

Do You see any Advantages in Creating a Spec Sheet?

• Structured guide in finding the data

77

Page 78: Historical Perspective

Do You see any Advantages in Creating a Spec Sheet?

• Structured guide in finding the data

• Provides a visual when consulting with co-workers

78

Page 79: Historical Perspective

Do You see any Advantages in Creating a Spec Sheet?

• Structured guide in finding the data

• Provides a visual when consulting with co-workers

• Provides a check list when writing the program

79

Page 80: Historical Perspective

SESUG 2012, Durham NC

Cross Reference Between Spec Sheet and Program

Wouldn’t it be good to link each item in the spec sheet to a location in the program

80

Page 81: Historical Perspective

SESUG 2012, Durham NC

Back in the days of Fortran

• We used statements numbers

• In SAS line numbers could work• Except that when • Adding or deleting a line • The line numbers change

81

Page 82: Historical Perspective

82

A Better Way

Page 83: Historical Perspective

83

Back in my teaching days

Page 84: Historical Perspective

SESUG 2012, Durham NC

Three Block Postulates

• A program consists of blocks• A block must be entered at the top and exited

from the bottom• Blocks can be nested

84

Page 85: Historical Perspective

SESUG 2012, Durham NC

No Way!

• We are not going to be that rigorous today• SAS naturally is block structured• Data steps• PROCs

85

Page 86: Historical Perspective

SESUG 2012, Durham NC

Blocks in SAS

• A block can be as small as one data step or one PROC

• Or you and group a few together (think about one function)

86

Page 87: Historical Perspective

SESUG 2012, Durham NC

Blocks in SAS

• All you have to do is place a comment before and after the block (with a number)

• Blocks should be numbered in sequence

87

Page 88: Historical Perspective

88

*Block 1; lines of SAS code . .*End Block 1;

*Block 2; lines of SAS code . .* End Block 2;

Page 89: Historical Perspective

SESUG 2012, Durham NC

Connecting Lines in the Spec Sheet to the Program

• Simple:• Just place the block number of the block that

satisfies the requirement in the Block column (BK) of the spec sheet

89

Page 90: Historical Perspective

90

*Block 1;Proc SQL; create table grump as select id, tartyp, name, add, phone from CQ.bill where tartyp = 1;quit;

*Block 2; lines of SAS code . .* End Block 2;

Page 91: Historical Perspective

91

Spec SheetItem

Flag User requirement

BK DB Table Var Values FN

1 S Residential 1 CQ bill tartyp 12 S Income level MON monthl

yincome 7 or

above3 S Power usage Use usage kwh_nn ge 2500 14 S Metro CNT

Ycnty_cd county 2

5 I Name 1 CQ bill name as shown

6 I Address CQ bill serv_ad 37 I Phone num CQ bill phone 48 I Age MON monthl

yage

9 I Solar user CQ bldg tariff u1,v110 I NO CONTACT CNT contact nocontac

tnc,nmnc

Footnote 1: average the past 12 months where nn=01…12Footnote 2: select only metro area countiesFootnote 3: %inc ‘parseAD’Footnote 4: %inc ‘parsePH’

Page 92: Historical Perspective

92

*Block 1;Proc SQL; create table grump as select id, tartyp, name, add, phone from CQ.bill where tartyp = 1;quit;

*Block 2; Proc SQL; create table inc as select id, income, age from MON.monthly where income ge 7;quit;* End Block 2;

Page 93: Historical Perspective

93

Spec SheetItem

Flag User requirement

BK DB Table Var Values FN

1 S Residential 1 CQ bill tartyp 12 S Income level 2 MON monthl

yincome 7 or

above3 S Power usage Use usage kwh_nn ge 2500 14 S Metro CNT

Ycnty_cd county 2

5 I Name 1 CQ bill name as shown

6 I Address CQ bill serv_ad 37 I Phone num CQ bill phone 48 I Age 2 MON monthl

yage

9 I Solar user CQ bldg tariff u1,v110 I NO CONTACT CNT contact nocontac

tnc,nmnc

Footnote 1: average the past 12 months where nn=01…12Footnote 2: select only metro area countiesFootnote 3: %inc ‘parseAD’Footnote 4: %inc ‘parsePH’

Page 94: Historical Perspective

94

Spec SheetItem

Flag User requirement

BK DB Table Var Values FN

1 S Residential 1 CQ bill tartyp 12 S Income level 2 MON monthl

yincome 7 or

above3 S Power usage 3 Use usage kwh_nn ge 2500 14 S Metro 4 CNT

Ycnty_cd county 2

5 I Name 1 CQ bill name as shown

6 I Address 5 CQ bill serv_ad 37 I Phone num 6 CQ bill phone 48 I Age 2 MON monthl

yage

9 I Solar user 7 CQ bldg tariff u1,v110 I NO CONTACT 8 CNT contact nocontac

tnc,nmnc

Footnote 1: average the past 12 months where nn=01…12Footnote 2: select only metro area countiesFootnote 3: %inc ‘parseAD’Footnote 4: %inc ‘parsePH’

Page 95: Historical Perspective

SESUG 2012, Durham NC

You have a choice

• Use it as is or• Go back to your work station (computer) and

enter the new information into the sheet

95

Page 96: Historical Perspective

96

Page 97: Historical Perspective

SESUG 2012, Durham NC

What are the advantages?

• Provides a guide for program review

97

Page 98: Historical Perspective

SESUG 2012, Durham NC

What are the advantages?

• Provides a guide for program review• Acts as an index into the program

98

Page 99: Historical Perspective

SESUG 2012, Durham NC

What are the advantages?

• Provides a guide for program review• Acts as an index into the program• Enables any programmer to quickly become

familiar with the existing SAS code

99

Page 100: Historical Perspective

SESUG 2012, Durham NC

What are the advantages?

• Provides a guide for program review• Acts as an index into the program• Enables any programmer to quickly become

familiar with the existing SAS code• Easier to work on program modifications

100

Page 101: Historical Perspective

101

Features Matrix

Page 102: Historical Perspective

SESUG 2012, Durham NC

Features Matrix

• Have you every ask yourself the question: Where have I done this before?

102

Page 103: Historical Perspective

SESUG 2012, Durham NC

Features Matrix

• Have you every ask yourself the question: Where have I done this before? or

• Hmmm: In which program did I do this?

103

Page 104: Historical Perspective

SESUG 2012, Durham NC

Features Matrix

• There is a relatively simple solution

104

Page 105: Historical Perspective

SESUG 2012, Durham NC

Features Matrix

• There is a relatively simple solution• But you do have to spend a few minutes

during or after each program

105

Page 106: Historical Perspective

SESUG 2012, Durham NC

Features Matrix

• There is a relatively simple solution• But you do have to spend a few minutes

during or after each program• Build a features matrix

106

Page 107: Historical Perspective

SESUG 2012, Durham NC

Features Matrix

• Build a two dimensional matrix consisting of:• Major Features versus • Program Titles

107

Page 108: Historical Perspective

108

SOLARGREEN

BUS INESSSAMPLE

INDUSTRALSAMPLE

OUTDOORLIGHTING

AUTODEALERS

SINGLEFAMILYHOMES

WATERHEATERTYPES

PAPERLESSCAMPAIGN

CQ X X X X X X

MON X X

USE X X X X

CNTY X X X X X X X

CNT X X X X X X

%inc ‘parseAD’ X X X X X

%inc ‘parsePH’ X X X X X

No contact code

X X X X X X

Ave power code

X X X

PROC IMPORT X X

PROC EXPORT

X X X X X X X X

Page 109: Historical Perspective

109

Flower Box

Page 110: Historical Perspective

SESUG 2012, Durham NC

Flower Box

• flower box (plural flower boxes)1.A container in which flowers or plants are

grown, usually affixed outside just below a window.

110

Page 111: Historical Perspective

SESUG 2012, Durham NC

Flower Box

flower box (plural flower boxes)1.A container in which flowers or plants are

grown, usually affixed outside just below a window.

2.(computing, programming) A comment in source code that spans several lines, each of which begins with an asterisk.

111

Page 112: Historical Perspective

112

\******************************************/ \****************************************/ \**************************************/ \************************************/ \**********************************/ \********************************/

Page 113: Historical Perspective

113

/********************************************//* */ /* *//* */ /* *//* *//* *//********************************************/

Page 114: Historical Perspective

114

/***********************************************//* *//* Program: Solar and Green *//* *//* Objective: Produce a survey list *//* *//* Program Path: S:\ad hoc */ /* \Solar and Green\Programs *//* *//* Author: Robert McCurdy */ /* Date: 25AUG *//***********************************************/

Page 115: Historical Perspective

What should go into the Box

• Name of the program• Brief statement of

objective• Path where the

program is stored• Path where the data is

stored• Input• Output

• Prerequisite programs which need to be executed (if any)

• Hard coded dates or other parameters which may need to be changed (show block numbers)

• Author• Date written

115

Page 116: Historical Perspective

Continued

• Called programs (if any)• Data preparation (if

any)

116

Page 117: Historical Perspective

Take time to smell the flowers

• Go home and plant some flowers

• Or take some flowers to someone you care about

117

Page 118: Historical Perspective

118

The End

Page 119: Historical Perspective

Contact Information

[email protected]

119