watch?v=hxtz446tbze tacoma narrows newsreel

29
http://www.youtube.com/watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

Upload: others

Post on 16-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

http://www.youtube.com/watch?v=HxTZ446tbzETacoma Narrows Newsreel

Page 2: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

software crisis

a term coined at the first NATO Software Engineering Conferences (1968)http://homepages.cs.ncl.ac.uk/brian.randell/NATO/

Page 3: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

does not meet requirements

inefficient

of low quality

difficult to maintain

Software is ...

Page 4: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

over-budget

over-time(or never delivered)

unmanageable

Projects are...

Page 5: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

1968

Page 6: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.

Edsger Dijkstra, inThe Humble Programmer

This is an issue of size. Small programs are relatively easy to write and maintain. As the tasks we want to solve grow, so do the programs we write. As a program grows, so does its complexity. We need to find ways to tame the complexity.

Page 7: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

Complexitymatters.

Size matters, but only because of complexity.Size of what we can do, and size of what we want to do.

Page 8: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

... the creative application of scientific principles to design or develop structures, machines, apparatus, or manufacturing processes ... with full cognizance of their design ... as respects an intended function, economics of operation, and safety to life and property.

How to manage the complexity? Engineers practice disciplines and follow processes that enable the creation of artifacts repeatable, predictable, measurable, high quality.

Engineering as defined by ABET’s predecessor.

Page 9: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

After having watched the video at the top of class, I can’t help but chuckle at the irony...

(courtesy of http://www.viruscomix.com/page329.html)

Page 10: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

<quiz>

I am not grading this. It isn’t a quiz. It is a self-assessment.Honesty is the best policy.Your answers will help me design and implement this course better.

Page 11: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

Software Development

Lifecycle

Page 12: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

analysisdesign

implementationtesting

deploymentmaintenance

These are things we can or should do when we create a program.They are often called stages because software roughly progresses through them in order.

Page 13: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

NA

TO

SO

FTW

ARE E

NG

INEERIN

G C

ON

FEREN

CE 1

968

13

3. S

oftw

are

En

gin

eerin

g

IDENTIFIES PROBLEMAND PRODUCES FIRSTTENTATIVE DESIGN

COMPLETESYSTEM

SPECIFICATIONPROBLEMRECOGNITION

AN ERROR-PRONETRANSLATION PROCESS

SYSTEM

ACCEPT-

ANCE

COMPLETELYOPERATIONAL

SYSTEMOBSOLESCENCE

MAINTENANCEIMPLEMENTATION

WORKING SYSTEM

DETERMINES FORMAND METHODOF SYSTEM

DESCRIPTIONOF

PROBLEM

ANALYSIS DESIGN

TRADITIONAL CONCEPTS OFPROGRAMMING COVER THIS SPAN

IN PRACTICE PROGRAMMERS PERFORM DUTIES OVER THIS SPAN

SCHEMATIC FOR THE TOTAL PROGRAMMING(SOFTWARE SYSTEM-BUILDING) PROCESS

ADAPTS SYSTEMTO ENVIRONMENT

CORRECTS ANDMODIFIES SYSTEM

INSTALLATION

Figure 2. From Selig: Documentation for service and users. Originally due to Constantine.

Notice: Page 13 of the report of the 1968 NATO conference.-- no testing-- “obsolescence”-- discussion of programming and what programmers do

Page 14: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

analysisdesign

implementationtesting

deploymentmaintenance

That diagram had feedforward, but no feedback.When we lock these stages in a time progression, they become a process for development.

Page 15: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

Waterfall Model

This once was how people were taught to build software.

Page 16: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

It is now frequently derided in the literature and in practice.But...It is also still a model you will seen used in practice by many, many companies.(Some, even as they tell you they aren’t doing it!)

Page 17: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

http://www.stsc.hill.af.mil/crosstalk/1995/01/Comparis.asp“A Comparison of Software Development Methodologies”Reed Sorensen, Software Technology Support Center

Page 18: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

metaphor

We liken our activity to another and learn from the connection.

Page 19: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

Making software

isengineering.

If so, then we should do what engineers do.

Page 20: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

Making software

is likeengineering.

Many people take a broader view.SE is like engineering, and we should learn as much as we can from engineers, who have been practicing much longer than we, and in harsher circumstances. (Bridges fall down!)

Page 21: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

analysisdesign

implementationtesting

deploymentmaintenance

These things are definitely part of making software. Engineers can teach us a lot.

But making software is also not like engineering. How?

Page 22: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

Programming is not like material craft in that undoing something you’ve done is easy far more often than not.

Courtesy of Brian Marick, a long-time software developer and consultant.

This is one example. There are others. (Can you think of some?)

Page 23: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

We will consider similarity and dissimilarity, and learn what both can teach us.The dominant metaphor of this courseis engineering.But we will also look at responses to traditional engineering, at other approaches.Learning anything involves learning it both inside and out. Skepticism.

Page 24: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

http://www.cs.uni.edu/~wallingf/teaching/172/

The mechanics of course: readings, assignments, project, exams.My course design is agile development:-- identify essential requirements, prioritized, implement the top priorities first.The questions you answered earlier are a part of my analysis.

Page 25: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

what this courseis and isn’t

Page 26: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

not(only)

the software engineeringof large corporations

software at different scalesPrincipal and Microsoft Word, and also the small companies you will work forGoogle and boutique web siteslarge programs — and small programs

Page 27: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

the skills and techniques that make usproductiveand good

I would like for you to begin thinking about software development as something worth doing better, something worth thinking about so that you can do better.Learn and develop practices that make you a star.

Page 28: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

One can never trust an engineer who does not have to wash his hands before he eats dinner.

Kiichiro Toyoda,the founder of Toyota

Software engineers make software.We should learn skills and tools that will help us do that better.

Page 29: watch?v=HxTZ446tbzE Tacoma Narrows Newsreel

<quiz>

problem ... weakness ... pain ... gap in your knowledge or skill set

Be specific.