Top Banner
1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS, FIE-Aust., MSc,ARMIT
28

1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

Apr 01, 2015

Download

Documents

Thaddeus Milham
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

1

Karl Reed 19/2/2004

A Preliminary Definition of Software Engineering

“those who fail to study history are bound to repeat it”

by Assoc. Prof. Karl Reed,FACS, FIE-Aust., MSc,ARMIT

Page 2: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

2

Karl Reed 19/2/2004

Stages of SE...Immature methodologies, Fortran, Cobol, Assembler-70’s,telephone systems

Systems Analysis and Design methodologies70’s-80’s

Formal Methods, info. Hiding, architecture, strong typing, CASE,RE,SCS,formalised testing, banking networks,internet,PC-OS,

OO,CMM,Process Modelling,re-use, cots,dig.flight control systems,EFTPOS

Large-scale s/w, comsumer

goods,engine management

systems, ABS

time to market, extreme

programming, web systems, free-ware, 94-00’s

Customer req dominate,ROI mandatory

Determinate, quality driven, high reliability, business model oriented

Unreliable, technology history free, ROI independent-business model? s/w surprises

Cottage industry, but well intentioned

Mature?Body of Knowledge but no universal success

Cottage industry, reversion to the old-days

Page 3: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

3

Karl Reed 19/2/2004

Firstly, what is Engineering? Firstly, what is Engineering? Engineers are concerned with maintaining and improving living standards and quality of life. …. Engineers are responsible for finding innovative solutions to various problems while protecting the earth's resources.

Engineering involves the application of science and technical knowledge to create systems, services, products and materials used in everyday life. Engineering skills and designs contribute to almost every aspect of modern living.

Engineers determine how and in what way the objectives of a particular project can be met safely and the wisest uses of the available resources. These resources may be budget, time, materials or even human effort. Often, engineers work together in teams with other professionals such as architects, accountants, economists, doctors, scientists and tradespeople. Each group of professionals provides knowledge and skills from their own particular area of expertise to complement the work of others.

Page 4: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

4

Karl Reed 19/2/2004

What is Engineering? What is Engineering? Engineers build economically useful systems

and artefacts (anon)(anon)

What is NOT Engineering?What is NOT Engineering?(.. .. The people who build bridges etc. are

called welders, riggers plumbers, labourers, bricklayers, etc. NOT Engineers…)

Page 5: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

5

Karl Reed 19/2/2004

ENGINEERS WORK WITH A DEFINED FRAMEWORK..

MUCH ENGINEERING DESIGN KNOWLEDGE

IS EMPIRICAL AND "RULE OF THUMB"Engineers vs software developers…Engineers explicitly…differentiate between…

situations where these methods do not appear to exist..

"problems" whose solution can be achieved using "prescribed" methods, and

Common, Coherent Universe of Discourse! (terms, methods, techniques)

Theoretical basis of knowledge not always visible

Page 6: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

6

Karl Reed 19/2/2004

Engineers… design artefacts to interface with the real world… (Baragry 1997)”

Engineers vs software developers…(cont’d)

“S/W developers… attempt to build models of real-world phenomena

ENGINEERS DON’T BUILD SYSTEMS!!ENGINEERS DON’T BUILD SYSTEMS!!

the result of an “engineering” process is a set of design the result of an “engineering” process is a set of design documents and plans which will be used by someone else of documents and plans which will be used by someone else of lesser training (but higher aptitude)lesser training (but higher aptitude)

Compare with software development....Compare with software development....

ENGINEERS CHEAT!!ENGINEERS CHEAT!!They invent components & methods which guarantee They invent components & methods which guarantee

analyticityanalyticity

Page 7: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

7

Karl Reed 19/2/2004Engineering is...Engineering is... Based upon "abstractions" validated by physical laws which..

Constrain the solution space,

Provides definite failure modes,

Simplifies the process of developing a universe of discourse..

None of this is true for s/w..

Existence of physical laws is neither necessary nor sufficient for engineering properties..

Page 8: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

8

Karl Reed 19/2/2004

In summary.. Engineering is..

“A directed process of decision making leading to the design of a realisable artefact in which criteria exist for choices which guarantee optimal outcomes according to some pre-determined criteria”

Requires.. Mathematics of a particular kind “teachable” to undergrads, plus prescribed processes ..

Physical laws provide basis for pruning the solution space.

Page 9: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

9

Karl Reed 19/2/2004

Page 10: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

10

Karl Reed 19/2/2004

The result of an engineering design

Page 11: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

11

Karl Reed 19/2/2004

Page 12: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

12

Karl Reed 19/2/2004Engineering is...Engineering is... “Design-reasoning Explicit… The design CANNOT be completed without performing

explicit “reasoning”, which MUST be recorded, step by step..

Hence, the documentation is an integral part of the process, NOT SOME EXTERNALLY MANDATED MANAGERIAL REQUIREMENT!

The documentation (I.e. design-reasoning record) is capable of being transmitted to third-parties who are able to use it

DESPITE THIS DISCIPLINE, ENGINEERING IS CREATIVE!

Page 13: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

13

Karl Reed 19/2/2004Engineering is…Creativity Through DisciplineEngineering is…Creativity Through Discipline

QuickTime™ and aPhoto - JPEG decompressor

are needed to see this picture.

Page 14: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

14

Karl Reed 19/2/2004Engineering is…Creativity Through DisciplineEngineering is…Creativity Through Discipline

QuickTime™ and aPhoto - JPEG decompressor

are needed to see this picture.

Alsop ArchitectsBlackfriars StationAlsop & Stormer's project for the reconstruction of Blackfriars Station, …was developed with a multi-disciplinary engineering and design team. The new station extends right across the river, with ticket halls at the City end and on the south bank. (Stringent) technical issues were addressed, arising from this location, (while preserving the) visual context … views across and along the river.Client: Railtrack plc Thameslink 2000 Value: £100 million Completion: Summer 2005

Page 15: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

15

Karl Reed 19/2/2004Engineering is…Creativity Through DisciplineEngineering is…Creativity Through Discipline

QuickTime™ and aPhoto - JPEG decompressor

are needed to see this picture.

Page 16: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

16

Karl Reed 19/2/2004Engineering is…Creativity Through DisciplineEngineering is…Creativity Through Discipline

QuickTime™ and aPhoto - JPEG decompressor

are needed to see this picture.

Corcoran Gallery of Art, Washington DC. Designed by Ghery Partners..“The additions’ rambunctious appearance, pierced by a series of long, sinewy windows, will be a powerful contrast to the hard, repetitive stone surface of the original building, as if the ideals trapped beneath the sombre stone have joyously spilled out into the open”. Nicolai Ourousoff, Architecture Critic, Los Angeles Times

Page 17: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

17

Karl Reed 19/2/2004Engineering is…Creativity Through DisciplineEngineering is…Creativity Through Discipline

QuickTime™ and aGIF decompressor

are needed to see this picture.

Yokahama International Port Terminal-First Prize byAlejadro Zeara-Polo & Fashid Moussavi

Page 18: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

18

Karl Reed 19/2/2004Engineering is…Creativity Through DisciplineEngineering is…Creativity Through DisciplineYokahama International Port Terminal-2 of 3

QuickTime™ and aGIF decompressor

are needed to see this picture.

QuickTime™ and aGIF decompressor

are needed to see this picture.

Page 19: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

19

Karl Reed 19/2/2004

WHAT IS SOFTWARE ENGINEERING?WHAT IS SOFTWARE ENGINEERING?THE IDENTIFICATION OF, DESIGN , CONSTRUCTION AND

WHOLE OF LIFE CYCLE MAINTENANCE OF (SOCIALLY) USEFUL SYSTEMS …using…

Prescribed (validated) design and implementation techniques,

Standardised components,

Tools,

Iteration of design to achieve and determine both functional and performance objectives,

…to…

Predetermined resource and time constraints,

Predeterminedreliability, safety, quality and environmental standards …in a…

Well managed fashion.(Reed, after Fairley and with Zucconi)

Page 20: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

20

Karl Reed 19/2/2004

issuesBaragry’s conjectures and their implications.. The work products problem…

“Engineers build artefacts, s/w developers build models.. s/w development is a theory building process”

§ Baragry compared a number of published software designs for cruise control with a number of actual hardware designs

§ Conclusion - engineers started with a prior, common, abstract model of the solution and “fixed” the design analytically to achieve a desired characteristic

§ A S/W system’s true “meaning” cannot readily be deduced by inspection of physical representation

Page 21: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

21

Karl Reed 19/2/2004

issuesBaragry’s conjectures and their implications.. The work products problem…

§ The conclusion was that engineers started with a prior, common, abstract model (the feed-back control system) of the solution and “fixed” the design analytically to achieve a desired characteristics

§ Software developers started with “mental” concepts derived based on their methodology, and used these to model (different) implementations of feed back model.

§ The engineer’s designs were recognisably similar, the software design’s were not!§ There seemed to be no basis for choosing one set of concepts over another during the s/w designs!

Page 22: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

22

Karl Reed 19/2/2004

issuesBaragry’s conjectures and their implications..

The work products problem…

§ what if there is no basis for choosing one set of concepts over another during s/w designs?

Maybe the design work-products (diagrams, descriptions etc.) mandated don’t represent the “thought processes”

Maybe the design work-products are not transferable between developers, and hence between project phases..

Maybe there are no pre-agreed concepts at the implementation and implementation-solution levels that constitute a universe of discourse amongst the designers ..

missing domain-related universe of discourse...

Page 23: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

23

Karl Reed 19/2/2004

“Extreme programming”?

System Test

Programming

Unit Test

Program Design

Systems Analysis

Feasibility Study

Requirements Analysis

System Integration

Optimal task allocation, observed <1970 one or two people

Waterfall S/W Process Model

No need for ‘third-party” readable work products!

Private s/w process? (PeSP compliant?)

Page 24: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

24

Karl Reed 19/2/2004

issuesD. Baragry’s thesis.. Theory building and its implications for s/w methodology and process

That a “classic” discipline of software engineering maybe extremely difficult to develop and will differ vastly from any other form of engineering

Our lack of progress is due to a combination of the nature of s/w development plus our lack of understanding of engineering--the delta isn’t correctly defined

Progress towards universes of discourse at any level will require deliberate efforts, or it will be slow. Methodologies and language styles will continue to proliferate Study domains where results are “superior” to see if Baragry’s conjecture holds e.g. SCS

Page 25: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

25

Karl Reed 19/2/2004

Iterative Development.. Basic Cocomo II

E =B+0.01× SFjj=1

5

PM =A ×SizeE × EMi1=1

n

∏0.0 < SFj

j=1

5

∑ <3.16

y =aSE (1c) Assumptions…

1. The effort can be calculated by summing the effort for each iteration, yi=aixi

bi

2. There is a ‘cost’ associated with each iteration which can be modelled as a fractional increase in size, ‘c’

3. There is an overhead associated with the initial delivery that is (linearly) dependant on the number of increments

4. The fact that the COCOMO exponent is >1 means that the sum effort for the parts could be less than the effort for the whole

Page 26: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

26

Karl Reed 19/2/2004

Iterative Development.. The basic idea

Approach...

1. Sum the effort for the incremental approach,s and divide each by the monolithic (non-incremental) approach

2. Examine the behaviour of the ratios..

‘n’ Equal sized increments

‘n’ increments, core of fraction ‘k’ of total, plus ‘n-1’ deliveries of equal size (of the (1-k )S remainder

yT

y=r =dn +n

1+cn

⎛ ⎝

⎞ ⎠

b

yT

y=rc =dn +(1+c)b kb +(n−1)

(1+c)(1−k)n−1

⎡ ⎣

⎤ ⎦

b

Page 27: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

27

Karl Reed 19/2/2004

Agile Methods..

Zc, k=0.3, b=1.2

0.50

0.60

0.70

0.80

0.90

1.00

1.10

1.20

1.30

1.40

0 10 20 30 40 50 60 70 80 90

n, no iterations

c=0.05

c=0.10

c=0.15

c=0.20

c=0.25

c=0.30

Zc, k=0.1,b=1.05

0.50

0.60

0.70

0.80

0.90

1.00

1.10

1.20

1.30

1.40

0 20 40 60 80 100 120

c=0.05

c=0.10

c=0.15

c=0.20

c=0.25

c=0.3

Z, b=1.2

0.50

0.60

0.70

0.80

0.90

1.00

1.10

1.20

1.30

0 20 40 60 80 100 120

n, no. iterations

c=0.05

c=0.10

c=0.15

c=0.20

c=0.25

c=0.30

Z, b=1.05

0.50

0.70

0.90

1.10

1.30

1.50

0 20 40 60 80 100 120

n, no. iterations

c=0.05

c=0.10

c=0.15

c=0.20

c=0.25

c=0.30

Interpretation.. ..’b’ is in effect a measure of difficulty, could be impacted by ‘design for evolution’

Page 28: 1 Karl Reed 19/2/2004 A Preliminary Definition of Software Engineering “those who fail to study history are bound to repeat it” by Assoc. Prof. Karl Reed,FACS,

28

Karl Reed 19/2/2004SO, THERE YOU HAVE IT.. A QUICK OVER VIEW OF WHAT IS MEANT BY ENGINEERING